DES
Из пројекта Википедија
DES (engl. Data Encryption Standard) алгоритам је највише коришћен алгоритам за криптовање на свету. Дуго година, DES је међу људима био синоним за сигурно шифрирање. Упркос напору Electronic Frontier фондације у креирању $250.000 машине за разбијање DES-шифрованих порука.
Садржај |
[уреди] Историјат
15. маја 1973. год. америчка национална управа за стандарде (енгл. NBS - National Bureau of Standards) издала је обавештење у којем траже пропозиције за криптографске алгоритме ради заштите података током преноса и складиштења. NBS је чекао на реакцију, и она је стигла 6. aвгуста 1974., три дана пре Никсонове оставке, када је IBM поднео свог кандидата под именом LUCIFER. После процењивања алгоритма, уз помоћ америчке владине установе задужене за сигурност (NSА), NBS је усвојио модификацију LUCIFER алгоритма јула 1977. и назвао га DES . Најозбиљнија примедба се односила на величину кључа (128 за LUCIFER, 56 бита за DES ). DES је брзо прихваћен у недигиталним медијима, као у јавним телефонским линијама. Нпр. међународна удружења која су се бавила патентима за мирисе и парфеме су слали њихове вазне формуле, криптоване DES-ом, преко телефона. У међувремену, банкарска индустрија, која ја највећи корисник енкрипције изван владе, је прихватила DES као стандард за њихове трансакције 1980.-те од ANSI X3.92. 1998. године, под водјством Џон Гилмор, ЕFF тим је потрошио 250.000 долара да направи машину која би провалила цео DES кључ у просеку за око 4,5 дана. 17. јула 1998., објавили су да су одредили 56-битни кључ за 56 сати. Та машина је названа Deep Crack, и садржала је 27 плоча са по 64 чипа, и била способна да тестира 90 билиона кључева у секунди.
[уреди] Опис
DES представља криптирање које трансофмише 64 битне блокове података у 64 битне криптиране блокове података. Дужина кључа криптирања је 64 бита, од којих 8 отпада на проверу паритета, тако да је ефективна дужина кључа 56 бита.
DES криптирање/декриптирање се спроводи у неколико корака, како је то приказано на слици . Прво се битови улазног блока дужине 64 бита пермутирају неком пермутацијом IP. Тада се улазни блок подиели на два дела по 32 бита, леви L0 и десни дeo R0. Над десним блоком се обавља функција F(Ri,Ki), односно F(Ri,K16 − i + 1) код декриптирања, где је Ri десних 32 бита, а Ki је 48 битни кључ који се генерира из заданог тајног кључа криптирања. Вредност добиjена операцијом XOR између вредности функције F и левих 32 бита података, постаје Ri + 1, тј. десних 32 бита за следећи корак итерације. Li + 1 за слиједећи корак је Ri. Након 16 таквик корака блокови се замењују те се спајају и обавља се коначна пермутација која је инверзна почетној, тј. IP − 1. Добиjених 64 бита су криптирани блокови. Будући да се након две узастопне операције XOR са истим бројем добија почетна вредност, тј. а = (аĹ b)Ĺ b , поступак декриптирања може се спровести тако да се операције обављају обрнутим редоседом. Због симетричности алгоритма то се постиже тако да се криптитрани блок пусти кроз исти алгоритам са том разликом да се уместо кључа Ki у и-том кораку употријеби кључ K16 − i + 1.
Поступак генерисања шестнаест 48 битних кључева од заданог, тајног кључа спроводи се у неколико корака. Прво се помоћу задане таблице пермутације из кључа генеришу два блока по 28 бита. Затим следи 16 следећих корака: сваки се блок ротира у лево за одређени број бита (у зависности о којем је кораку реч) те се из насталих блокова (2x28) помоћу таблицом задате пермутације генерше кључ Ki, где је i број корака. Функција енкрипције F јесте заправо најкритичнији део алгоритма, тј. управо због њене комплексности не постоји (барем колико је за сада познато) начин проваљивања DES-а (осим грубом рачунарском силом). Вредност функције добија се у неколико корака. Најпре се од улазних 32 бита (Ri) проширењем заданом таблицом добиjа 48 бита. Та се вредност збраја логичком операцијом XOR са кључем Ki паралелно над сваким битом. Добиjена се 48 битна вредност дели на осам делова од по шест бита. Први и задњи бит сваког дела представља адресу реда, а средња четири адресу колоне у таблици селекције, односно, помоћу шест одређена су четири бита. Истим поступком над сваком шесторком од улазних 48 бита селекцијом добијамо 32 бита. Тих се 32 бита још пермутира задатом таблицом те се добија коначна вредност функције F.
[уреди] Сигурност и криптоанализа
DES алгоритам се данас не може сматрати сигурним алгоритмом, и због релативно мале дужине кључа као и због низа других недостатака који су омогућили криптоаналитичарима широм света да објаве низ алгоритама за разбијање овог алгоритма. Најпознатији напади на овај алгоритам су :
- Brute force attack - овим нападо се испробавају сви могући кључеви, и уз помоћ ове технике напада DES алгоритам је разбијен 1998 године уз помоћ Deep Crack рачунара, за шта је било неопходно свега 56 сати
- Диференцијална анализа - откривена касне 1980. од стране Елија Бихама и Адија Шамира, али је била позната и раније од стране IBM-a и NSA-a, али је била чувана у тајности.
- Линеарна криптоанализа
- Унапређени Дејвисов напад
[уреди] Заменe DES
Данас се DES све мање користи пре свега због мале дужине кључа од 56 бита и све бржим рачунарима и бољим алгоритмима за разбијање DES-а. Тако данас уместо овог алгоритма све више се користе AES(енгл. Advanced Encription Standard) алгоритам. За овај стандард прихваћен је алгоритам RIJNDAEL, који су креирали белгијски математичари Џон Демен и Винсент Римен. Овај алгоритам је напреднији у односу на DES алгоритам јер може користити променљиву дужину кључа (128, 192 или 256 бита) као и променљиву дужину блока (128, 192 или 256 бита) независно од дужине кључа. Остале предности овог алгоритма су симетрична и паралелна структура, као и погодност за реализацију модерним процесорима, специјализованим хардвером или у паметним картицама (које карактерише мала меморија). Врло је важно је напоменути да се код овог алгоритма је појава слабих кључева немогућа пошто алгоритми шифрирања и дешифрирање користе различите компоненте. Такође AES је отпоран на линеарну и диференцијалну криптоанализу, као и на друге публиковане нападе на блок шифре.
Новији блок шифарски алгоритми који се данас најчешће користе:
- AES
- Triple DES - овај алгоритам је уствари унапређени DES