Перайсьці да зьместу

DES

Зьвесткі зь Вікіпэдыі — вольнай энцыкляпэдыі

DES (скарачэньне ад ангельскага Data Encryption Standard) — сымэтрычны альгарытм шыфраваньня, у якім адзін ключ выкарыстоўваецца як для зашыфравываньня, так і для расшыфраваньня паведамленьняў. Таксама вядомы як альгарытм шыфраваньня зьвестак DEA (ад ангельскага Data Encryption Algorithm). Распрацаваны фірмай IBM і зацьверджаны ўрадам ЗША ў 1977 годзе як афіцыйны стандарт. DES уключае блёкі па 64 біт і 16-цыклавую структуру сеткі Фэйстэля, для шыфраваньня ўжывае ключ у 56 біт. Альгарытм выкарыстоўвае камбінаваньне S-box і P-box. Існуе некалькі рэжымаў DES, напрыклад Electronic Code Book (ECB) і Cipher Block Chaining (CBC).

У 1972, пасьля правядзеньня дасьледаваньня патрэбы ўраду ЗША у кампутарнай бясьпецы, амэрыканскае НБС (Нацыянальнае бюро стандартаў) — цяпер перайменаванае ў НІСТ (Нацыянальны інстытут стандартаў і тэхналёгіяў) — вызначыла неабходнасьць у агульнаўрадавым стандарце шыфраваньня некрытычнай інфармацыі. 15 траўня 1973, пасьля кансультацыі з КНБ (Кіраваньнем нацыянальнай бясьпекі), НБС абвясьціла конкурс на шыфр, які задавальняе строгім крытэрам праекта, але ні адзін канкурсант не забясьпечваў выкананьня ўсіх патрабаваньняў. Другі конкурс быў пачаты 27 жніўня 1974. На гэты раз, шыфр прадстаўлены IBM і разьвіты на працягу пэрыяду 1973—1974 палічылі прымальным, ён быў заснаваны на больш раньнім альгарытме Хорста Фэйстэля.

17 сакавіка 1975 прапанаваны альгарытм DES быў выдадзены ў Фэдэральным Рэгістры. У наступным годзе было праведзена 2 адкрытых сымпозіюма па абмеркаваньні гэтага стандарту, дзе падвергнуліся цьвёрдай крытыцы зьмены занесеныя ў альгарытм КНБ: памяншэньне першапачатковае даўжыні ключа і таямнічыя S-перастановы. КНБ падазравалася ў сьвядомым паслабленьні альгарытму з мэтаю, каб КНБ магло лёгка праглядаць зашыфраваныя паведамленьні. Пасьля чаго сэнатам ЗША была праведзеная праверка дзеяньняў КНБ, вынікам якой стала заява, апублікаваная ў 1978, у якой гаварылася аб тым, што ў працэсе распрацоўкі DES КНБ упэўніла IBM, што паменшанае даўжыні ключа больш чым досыць для ўсіх камэрцыйных дастасаваньняў, якія выкарыстоўваюць DES, ускосна дапамагала ў распрацоўцы S-перастановаў, а таксама, што канчатковы алгарытм DES быў лепшым, па іх меркаваньні, альгарытмам шыфраваньня і быў пазбаўлены статыстычнае або матэматычнае слабасьці. Таксама было выяўлена, што КНБ ніколі ня ўмешвалася ў распрацоўку гэтага альгарытму.

Частка падазрэньняў ва ўтоенай слабасьці S-перастановаў была зьнятая ў 1990, калі былі апублікаваныя вынікі незалежных даследаваньняў Элі Бьяма і Ады Шаміра па дыфэрэнцыйным крыптааналізе — асноўным мэтадзе ўзлому блёкавых альгарытмаў шыфраваньня з сымэтрычным ключом. S-перастановы альгарытму DES апынуліся нашмат больш устойлівымі да атак чым, калі бы іх вылучылі выпадкова. Гэта азначае, што IBM была вядомая такая тэхніка аналізу яшчэ ў 70-х гадах XX стагодьдзя.

Кароткае апісаньне

[рэдагаваць | рэдагаваць крыніцу]
  • уваход — 64-бітавы блёк.
  • пачатковая перастаноўка.
  • блёк падзяляецца на левую і правую палову па 32 біты кожная.
  • 16 кругоў ідэнтычных аперацыяў апісаных функцыяй f, падчас якіх зьвесткі правай паловы мяшаюцца з ужываньнем ключа.

- падчас кожнага круга біты ключа перамяшчаюцца, а наступны 48 бітовы падключ выбіраецца з 56 бітовага ключа. - правая частка зьвестак пашыраецца да 48 бітаў пры дапамозе перастаноўкі пашыраючай і падлягае апэрацыі XOR з 48 бітамі падключа. - вынік перасылаецца да 8 S-боксаў, які прадукуюць новыя 32 біты. - атрыманыя 32 біты перастаўляюцца ў P-боксе

  • вынік тых 4 апэрацыяў выкананых функцыяй f падлягае апэрацыі XOR зь левай паловай і атрымліваецца новая правая палова.
  • старая правая палова становіцца новай левай паловай, і так 16 разоў.
  • перастаноўка канчаткова
  • крыптаграм

Калі Li i Ri гэта левая і правая палова для і-тага круга, Ki — падключ для гэтага круга, то для гэтага круга маем:

Li = Ri−1 Ri = Li−1 ⊕ f(Ri−1,Ki)

  • дэшыфраваньне DES-эм ляжыць на правядзеньні тых самых апэрацыяў, як і для шыфраваньня толькі падключы выступаюць у зваротнай чарзе

Ri−1 = Li Li−1 = Ri ⊕ f(Ri−1,Ki) = Ri ⊕ f(Li,Ki) ведае Li, Ri і Ki можам палічыць Li−1 i Ri−1.

DESсховішча мультымэдыйных матэрыялаў