Кіріспе

Ертедегі жіктелмеген симметриялық кілттік блок шифрлау жүйесі DES салыстырмалы түрде қысқа 56 биттік кілт өлшеміне байланысты қауіпсіз емес. 1999 жылдың қаңтарында distributed.net және Electronic Frontier Foundation бірлесіп DES кілтін 22 сағат 15 минутта бұзды (қараңыз). Шифрдың теориялық әлсіздіктерін көрсететін талдау нәтижелері де бар, бірақ олар тәжірибеде қолданылмайды. Алгоритм Үш еселенген DES (Triple DES) түрінде іс жүзінде қауіпсіз деп саналады, дегенмен теориялық шабуылдар бар. Бұл шифр Advanced Encryption Standard (AES) стандартымен алмастырылды. DES стандарты Ұлттық Стандарттар және Технология Институты (National Institute of Standards and Technology) тарапынан стандарт ретінде алынып тасталды. Осы уақытта инженер Мохамед Атала 1972 жылы Atalla Corporation құрды және 1973 жылы коммерцияланған "Atalla Box" деп аталатын алғашқы аппараттық қауіпсіздік модулін (HSM) жасады. Ол желіден тыс құрылғыларды құпия PIN-кодты жасайтын кілтпен қорғады және коммерциялық сәттілікке жетті. Банктер мен кредиттік карта компаниялары Атала нарыққа үстемдік етеді деп қорқып, халықаралық шифрлау стандартын әзірлеуге түрткі болды. Атала банктік нарықта IBM-ге ерте бәсекелес болды және DES стандартында жұмыс істеген IBM қызметкерлерінің ықпалы ретінде айтылды. IBM 3624 кейіннен бұрынғы Atalla жүйесіне ұқсас PIN-кодты тексеру жүйесін қабылдады. 1973 жылдың 15 мамырында NSA-мен кеңескеннен кейін NBS қатаң жобалау талаптарына сай келетін шифр үшін ұсыныстар сұрады. Ешбір ұсыныс қанағаттандырмады. 1974 жылдың 27 тамызында екінші сұраныс жіберілді. Бұл жолы IBM 1973-1974 жылдар аралығында дамытылған, Horst Feistel-дің Lucifer шифрына негізделген шифрды ұсынды, ол қабылдауға лайық деп танылды. Шифрды жобалау және талдаумен айналысқан IBM командасына Feistel, Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith және Bryant Tuckerman кірді.

Стандартты алгоритм

Сын-пикирлерге қарамастан, DES 1976 жылдың қарашасында федералды стандарт ретінде бекітілді және 1977 жылдың 15 қаңтарында FIPS PUB 46 ретінде жарияланды, барлық құпия емес деректерде қолдануға рұқсат етілді. Кейіннен ол 1983, 1988 (FIPS 46 1 ретінде қайта жаңартылды), 1993 (FIPS 46 2), және 1999 (FIPS 46 3) жылдары стандарт ретінде қайта бекітілді, соңғысы "Қос ДЭС" (төменде қараңыз) талаптарын белгіледі. 2002 жылдың 26 мамырында DES ашық бәйгеден кейін Advanced Encryption Standard (AES) стандартымен алмастырылды. 2005 жылдың 19 мамырында FIPS 46 3 ресми түрде алынып тасталды, бірақ NIST 2030 жылға дейін сезімтал үкіметтік ақпарат үшін Үш еселенген DES-ті мақұлдады. Алгоритм сондай-ақ ANSI X3.92 (қазіргі X3 INCITS деп аталады, ал ANSI X3.92 – ANSI INCITS 92) және NIST SP 800 67 (TDEA құрамында) стандарттарында да көрсетілген. 1994 жылы тағы бір теориялық шабуыл – сызықтық криптоанализ жарияланды, бірақ 1998 жылы Electronic Frontier Foundation ұйымының DES крекері DES-ке нақты шабуыл жасауға болатынын көрсетті және жаңа алгоритмді қажет ететінін айқындады. Осы және басқа криптоанализ әдістері осы мақалада егжей-тегжейлі қарастырылады. DES-тің енгізілуі криптографияны, әсіресе блок шифрларын бұзу әдістерін академиялық тұрғыдан зерттеуге ықпал еткен катализатор болды деп есептеледі. DES туралы NIST-тің ретроспективтік сараптамасына сәйкес, DES шифрлау алгоритмдерін әскери емес зерттеу және дамытуды "серпіліс берді" деуге болады. 1970-ші жылдарда әскери немесе барлау ұйымдарында қызмет ететін криптографтардың саны өте аз болды, ал криптографияны академиялық түрде зерттеу де аз болған. Қазір белсенді академиялық криптологтар көп, криптография бойынша күшті бағдарламалары бар математика кафедралары, сондай-ақ коммерциялық ақпараттық қауіпсіздік компаниялары мен кеңесшілер жетерлік. Криптоанализшілердің бір буыны DES алгоритмін талдау (яғни, "жарып тастауға" тырысу) арқылы тәжірибе жинады. Криптограф Брюс Шнайердің сөздерімен айтқанда, "DES криптоанализ саласын ең көп ынталандырды. Енді зерттеуге арналған алгоритм пайда болды". 1970-80 жылдардағы криптографиядағы ашық әдебиеттің үлкен бөлігі DES-ке арналған, ал DES – барлық симметриялық кілт алгоритмдерінің салыстырылатын стандарты болып табылады.

Хронологиясы

Күн Жыл Іс-шара 15 мамыр 1973 NBS стандартты шифрлау алгоритміне алғашқы сұранысты жариялайды 27 тамыз 1974 NBS стандартты шифрлау алгоритміне екінші сұранысты жариялайды 17 наурыз 1975 DES федералдық тіркелімде пікір алу үшін жарияланады 1976 тамыз DES бойынша алғашқы семинар 1976 қыркүйек DES-тің математикалық негізін талқылайтын екінші семинар 1976 қараша DES стандарт ретінде бекітіледі 15 қаңтар 1977 DES FIPS стандарты ретінде жарияланады FIPS PUB 46 маусым 1977 Диффи мен Хеллман DES шифрын күшпен бұзуға болатынын айтады. 19 мамыр 2005 NIST FIPS 46 3-ті алып тастады (Федералдық тіркелімнің 70 томы, 96 нөмірін қараңыз) 2006 сәуір Бохум және Киль университеттерінің FPGA-ға негізделген параллель машинасы COPACOBANA DES-ті 9 күнде 10 000 долларлық аппараттық шығындармен бұзады. Бір жыл ішінде бағдарламалық қамтамасыз етуді жетілдіру орташа уақытты 6,4 күнге дейін қысқартты. 2008 ж. қараша COPACOBANA-ның ізбасары RIVYERA машинасы орташа уақытты бір күннен де аз уақытқа қысқартты. 2016 жылдың тамызы Ашық кодты құпия сөзді бұзу бағдарламасы hashcat DES-ке жалпы мақсаттағы GPU-да күшпен іздеуді қосты. Тестілеу нәтижесінде Nvidia GeForce GTX 1080 Ti GPU, құны 1000 АҚШ доллары, кілтті орташа есеппен 15 күнде қалпына келтіретіні (толық іздеу 30 күнге созылады) көрсетілді. Сегіз GTX 1080 Ti GPU-мен құрылған жүйелер кілтті орташа есеппен 2 күннің ішінде қалпына келтіре алады. 2017 жылдың шілдесі Таңдалған ашық мәтіндік шабуыл, радуга кестесін пайдаланып, 25 секунд ішінде 1122334455667788 таңдалған ашық мәтіннің DES кілтін қалпына келтіре алады. Әр мәтін үшін жаңа радуга кестесін есептеу қажет. Радуга кестелерінің шектеулі жиынтығы жүктеуге қолжетімді.

Сипаттама

DES – бұл архетиптік блок шифрі – белгілі бір ұзындықтағы ашық мәтін биттерінің тізбегін қабылдап, оны күрделі операциялар сериясы арқылы сол ұзындықтағы шифрланған мәтін биттерінің тізбегіне түрлендіретін алгоритм. DES үшін блок мөлшері 64 бит. DES сондай-ақ трансформацияны бейімдеу үшін кілтті пайдаланады, сондықтан шифрлау үшін қолданылған нақты кілтті білгендер ғана шифрды аша алады. Кілт номиналды түрде 64 биттен тұрады, бірақ алгоритмде олардың тек 56-сы ғана қолданылады. Сегіз бит тек парлықты тексеру үшін пайдаланылады және кейін жойылады. Сондықтан кілттің тиімді ұзындығы 56 бит. Кілт 8 байт түрінде сақталады немесе жіберіледі, олардың әрқайсысы тақ парлықпен. ANSI X3.92 1981 (қазір ANSI INCITS 92–1981 деп белгілі) стандартының 3.5-тармағында былай делінген:

Кілтті жасау, тарату және сақтау кезінде қателерді анықтау үшін кілттің әрбір 8 биттік байтындағы бір бит пайдаланылуы мүмкін. 8, 16, 64 биттер әр байттың тақ парлыққа ие болуын қамтамасыз ету үшін арналған. Басқа блок шифрлары сияқты, DES өзі жеке шифрлаудың қауіпсіз құралы емес, оның орнына жұмыс режимінде қолданылуы керек. FIPS 81 DES-пен пайдалану үшін бірнеше режимдерді анықтайды. DES-ті пайдалану туралы қосымша ақпарат FIPS 74 құжатында келтірілген. Шифрды ашу шифрлаумен бірдей құрылымды пайдаланады, бірақ кілттер кері ретпен қолданылады. (Бұл екі бағытта да бірдей аппараттық немесе бағдарламалық қамтамасыз етуді пайдалану мүмкіндігін береді.)

Жалпы құрылым

Алгоритмнің жалпы құрылымы 1-суретте көрсетілген: өңдеудің 16 бірдей кезеңі бар, олар раундтар деп аталады. Сонымен қатар, бастапқы және соңғы пермутация бар, олар IP және FP деп аталады, олар бір-біріне кері (IP FP әрекетін "кері қайтарады" және керісінше). IP және FP криптографиялық маңызы жоқ, бірақ 1970-ші жылдардың ортасындағы 8-биттік аппараттық базаға блоктарды жүктеуді жеңілдету үшін қосылған. Негізгі раундтар алдында блок екі 32 биттік жартыға бөлінеді және кезекпен өңделеді; бұл өзара алмасу Феистель схемасы деп аталады. Феистель құрылымы шифрлау мен дешифрлеудің өте ұқсас процестер екенін қамтамасыз етеді – жалғыз айырмашылық дешифрлеу кезінде кіші кілттер кері ретпен қолданылады. Алгоритмнің қалған бөлігі толықтай бірдей. Бұл, әсіресе аппараттық құралдарда жүзеге асыруды жеңілдетеді, өйткені жеке шифрлау және дешифрлеу алгоритмдері қажет емес. ⊕ символы эксклюзивті НИМ (XOR) операциясын білдіреді. F функциясы жарты блокты кілттің бір бөлігімен араластырады. F функциясының нәтижесі блоктың екінші жартысымен біріктіріледі, ал жартылары келесі раундқа дейін ауыстырылады. Соңғы раундтан кейін жартылары ауыстырылады; бұл Феистель құрылымының ерекшелігі, ол шифрлау мен дешифрлеуді ұқсас процестерге айналдырады.

Негізгі кесте

3-сурет шифрлау кілт кестесін көрсетеді – кіші кілттерді жасайтын алгоритм. Алдымен, бастапқы 64 биттен 56 биті Пермутацияланған таңдау 1 (PC 1) арқылы таңдалып алынады, ал қалған сегіз биті жойылады немесе паритет тексеру біттері ретінде қолданылады. Содан кейін 56 бит екі 28 биттік бөлікке бөлінеді; әр бөлік одан әрі жеке қарастырылады. Кезекті турларда екі бөлік те бір немесе екі битқа солға қарай жылдырылады (әр тур үшін көрсетіледі), содан кейін 48 кіші кілт биті Пермутацияланған таңдау 2 (PC 2) арқылы таңдалады – сол бөліктен 24 бит және оң бөліктен 24 бит. Айналымдар (суретте «<<<» символымен белгіленген) әр кіші кілтте әртүрлі биттер жиынтығы қолданылатынын білдіреді; әр бит 16 кіші кілттің шамамен 14-інде қолданылады. Дешифрлеу кілт кестесі ұқсас – кіші кілттер шифрлеуге қарағанда кері ретпен орналасқан. Бұл өзгерістен басқа, процесс шифрлеумен бірдей. Барлық айналымдық блоктарға бірдей 28 бит жіберіледі.

Псевкод

DES алгоритмінің псевдокоды төменде келтірілген.

Қауіпсіздік және криптоанализ

DES криптоанализі туралы басқа блок-шифрларға қарағанда көбірек ақпарат жарияланғанмен, қазіргі күнге дейін ең тиімді шабуыл – күш қолдану әдісі болып табылады. Әртүрлі шағын криптоаналитикалық қасиеттер белгілі, сондай-ақ үш теориялық шабуыл мүмкін. Олардың теориялық қиындығы күш қолдану шабуылынан кем болғанымен, оларды жүзеге асыру үшін өте көп мөлшерде белгілі немесе таңдалған қара мәтін қажет, сондықтан олар іс жүзінде маңызды емес.

Қатаң шабуыл

Кез келген шифр үшін шабуылдың ең негізгі әдісі – барлық мүмкін кілттерді кезекпен сынап көру. Кілттің ұзындығы мүмкін кілттердің санын, демек, осы тәсілдің мүмкіндігін анықтайды. DES үшін кілт өлшемі стандарт ретінде қабылданғанға дейін оның жеткіліктілігі туралы сұрақтар туындады, және теориялық криптоанализ емес, кішкентай кілт өлшемі алмастыру алгоритміне қажеттілікті талап етті. Сыртқы консультанттармен, соның ішінде ҰҚК-мен жүргізілген талқылау нәтижесінде кілт мөлшері 256 биттен 56 битке дейін қысқартылды. Академияда DES-ті бұзу машинасына қатысты түрлі ұсыныстар жасалды. 1977 жылы Диффи мен Хеллман бір күнде DES кілтін табуға болатын, шамамен 20 миллион АҚШ долларына тұратын машина ұсынды. 1993 жылы Винер 7 сағат ішінде кілтті табуға болатын 1 миллион АҚШ долларына тұратын кілт іздеу машинасы ұсынды. Алайда, бұл алғашқы ұсыныстардың ешқайсысы жүзеге асырылмады, немесе кем дегенде, жүзеге асырылғаны туралы жария түрде хабарланбады. DES-тің осалдығы 1990 жылдардың соңында тәжірибеде дәлелденді. 1997 жылы RSA Security бірнеше бәйге ұйымдастырып, DES-пен шифрланған хабарды бұзған алғашқы командаға 10 000 АҚШ доллары сыйлық ұсынды. Бұл бәйгеде Рок Версер, Мэтт Кертин және Джастин Долске басшылық еткен DESCHALL жобасы жеңіске жетті, олар Интернеттегі мыңдаған компьютерлердің бос уақытын пайдаланды. DES-ті жылдам бұзудың мүмкіндігі 1998 жылы электрондық шекаралар қоры (EFF), киберкеңістіктегі азаматтық құқықтарды қорғау тобы, шамамен 250 000 АҚШ долларына арнайы DES бұзушысын құрған кезде көрсетілді (EFF DES бұзушысын қараңыз). Олардың мақсаты DES-ті теорияда да, тәжірибеде де бұзуға болатынын көрсету болды: «Өз көзімен көрмейінше, шындыққа сенбейтін адамдар көп. Оларға DES-ті бірнеше күнде бұза алатын физикалық машинаны көрсету – кейбір адамдарды DES-ке өздерінің қауіпсіздігін сендірудің жалғыз жолы». Машина кілтті екі күннен астам іздеу барысында бұзып алды. Келесі расталған DES бұзушысы 2006 жылы Германиядағы Бохум және Киль университеттерінің командалары жасаған COPACOBANA машинасы болды. EFF машинасынан айырмашылығы, COPACOBANA коммерциялық түрде қол жетімді, қайта конфигурацияланатын интегралдық схемалардан тұрады. XILINX Spartan 3 1000 типіндегі 120 өрістегі бағдарламаланатын қақпалар массиві (FPGA) қатар жұмыс істейді. Олар әрқайсысы 6 FPGA құрайтын 20 DIMM модуліне топтастырылған. Қайта конфигурацияланатын аппаратты пайдалану машинаны басқа кодты бұзу тапсырмаларына да қолдануға мүмкіндік береді. COPACOBANA-ның ең қызықты жақтарының бірі – оның құны. Бір машинаны шамамен 10 000 долларға құрастыруға болады. EFF машинасына қарағанда құнның шамамен 25 есеге төмендеуі – цифрлық аппаратты үздіксіз жетілдірудің мысалы. Инфляцияны ескергенде, 8 жыл ішінде жақсарту шамамен 30 есеге жетеді. 2007 жылдан бастап SciEngines GmbH, COPACOBANA-ның екі жобалық серіктесінің еншілес компаниясы, COPACOBANA-ның ұрпақтарын жетілдіріп, дамытты. 2008 жылы COPACOBANA RIVYERA 128 Spartan 3 5000-ды пайдалану арқылы DES-ті бұзу уақытын бір күннен аз уақытқа қысқартты. SciEngines RIVYERA 128 Spartan 3 5000 FPGA-ны пайдаланып, DES-ті бұзған кездегі рекордты ұстады. Олардың 256 Spartan 6 LX150 моделі бұл көрсеткішті одан да төмендетті. 2012 жылы Дэвид Хултон мен Мокси Марлинспайк 48 Xilinx Virtex 6 LX240T FPGA-дан тұратын жүйе туралы хабарлады, әр FPGA-да 400 МГц жылдамдықпен жұмыс істейтін 40 толық құбырлы DES ядросы бар, жалпы сыйымдылығы 768 гигакей/сек. Жүйе шамамен 26 сағат ішінде DES-тің барлық 56 биттік кілт кеңістігін толық іздестіре алады және бұл қызмет онлайн төлем арқылы ұсынылады.

Жәндіктерден жылдам шабуылдау

DES-тің толық 16 раундын бұзуға қабілетті үш шабуыл бар: дифференциалдық криптоанализ (DC), осы шабуыл түрлері кейде сертификациялық әлсіздіктер деп аталады. Дифференциалдық криптоанализ 1980-ші жылдардың соңында Эли Бихам мен Ади Шамир қайта ашты; бұл әдіс бұрын IBM және NSA-ға белгілі болған, бірақ құпия сақталған. Толық 16 раундты бұзу үшін дифференциалдық криптоанализге 247 таңдалған ашық мәтін қажет. DES DC-ге қарсы тұру үшін жасалған. Сызықтық криптоанализді Мицуру Мацуи ашқан, оған 243 белгілі ашық мәтін қажет (Мацуи, 1993); әдіс іске асырылды (Мацуи, 1994) және DES-тің алғашқы тәжірибелік криптоанализі ретінде жарияланды. DES-тің осы типтегі шабуылға қарсы тұру үшін жасалғандығын көрсететін ешқандай дәлел жоқ. Сызықтық криптоанализдің (LC) жалпыланған түрі 1994 жылы (Калиски және Робшоу) ұсынылды және Бірюков және басқалармен одан әрі жетілдірілді (2004); олардың талдауы шабуылға қажетті дерек көлемін кем дегенде 4 есеге азайтуға болатынын көрсетеді, яғни 243 орнына 241. Сызықтық криптоанализдің таңдалған ашық мәтін нұсқасында да дерек көлемін азайтуға болады (Knudsen және Mathiassen, 2000). Junod (2001) сызықтық криптоанализдің нақты уақыт күрделілігін анықтау үшін бірнеше тәжірибелер жүргізді және оның күтілгеннен асып түскенін, 239–241 DES есептеуіне тең уақыт қажет екенін хабарлады. Жақсартылған Дэвис шабуылы: сызықтық және дифференциалдық криптоанализ – жалпы әдістер, оларды көптеген схемаларға қолдануға болады, ал Дэвис шабуылы – DES үшін арнайы әдіс, оны алғаш 1980-ші жылдары Дональд Дэвис ұсынды, ал Бихам мен Бирюков (1997) оны жақсартты. Шабуылдың ең күшті түрі 250 белгілі ашық мәтін қажет етеді, есептеу күрделілігі 250 және 51% сәттілік деңгейіне ие. Шифрдың раундтары кем қысқартылған нұсқаларына, яғни 16 раундтан кем нұсқаларына қарсы шабуылдар да ұсынылды. Мұндай талдау қауіпсіздік үшін қанша раунд қажет екенін және толық нұсқа қанша "қауіпсіздік маржасын" сақтайтынын көрсетеді. Дифференциалдық-сызықтық криптоанализді Лэнгфорд пен Хеллман 1994 жылы ұсынды, ол дифференциалдық және сызықтық криптоанализді бір шабуылға біріктіреді. Шабуылдың жетілдірілген нұсқасы 215,8 таңдалған ашық мәтінмен 9 раундтық DES-ті бұзуға қабілетті және 229,2 уақыт күрделілігіне ие (Biham және басқалар, 2002).

Жайдастырылған DES

Жайлатылған DES (SDES) қазіргі заманғы криптоаналитикалық техникаларды оқуға көмектесу үшін білім беру мақсатында ғана жасалған. SDES құрылымы мен қасиеттері DES-ке ұқсас, бірақ шифрлау және шифрды ашуды қолмен, қарындаш пен қағазбен орындауды жеңілдету үшін оңайлатылған. Кейбір адамдар SDES-ті оқу DES және басқа блок шифрларын, сондай-ақ оларға қарсы түрлі криптоаналитикалық шабуылдарды түсінуге көмектеседі деп есептейді.

Ауыстыру алгоритмдері

Қауіпсіздік туралы алаңдаушылық және бағдарламалық жасақтамада DES-тің салыстырмалы түрде баяу жұмыс істеуі зерттеушілерді 1980-ші жылдардың аяғы мен 1990-шы жылдардың басында пайда бола бастаған әртүрлі баламалы блок шифрын ұсынуға итермеледі: мысалдарға RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 және FEAL кіреді. Бұл жобалардың көпшілігі DES-тің 64 биттік блок өлшемін сақтады және олар әдетте 64 бит немесе 128 бит кілтті қолданғанымен, "түсіру" орнына қолданылуы мүмкін еді. Кеңес Одағында 64 биттік блок көлемі мен 256 биттік кілті бар GOST 28147-89 алгоритмі енгізілді, ол кейін Ресейде де қолданылды. DES-тің өзі қауіпсіз схемада бейімделіп, қайта пайдаланылуы мүмкін. Көптеген бұрынғы DES пайдаланушылары қазір Үш есе DES (TDES) қолданады, ол DES-тің патент иелерінің бірі сипаттаған және талдаған (FIPS Pub 46-3 қараңыз); бұл DES-ті екі (2TDES) немесе үш (3TDES) түрлі кілттермен үш рет қолдануды қамтиды. TDES жеткілікті қауіпсіз деп саналады, бірақ ол өте баяу. Есептеу шығындары аз DES X, DES алдында және кейін қосымша кілт материалдарын XOR операциясы арқылы қосу арқылы кілт өлшемін ұлғайтады. GDES – шифрлауды жылдамдату тәсілі ретінде ұсынылған DES нұсқасы, бірақ ол дифференциалдық криптоанализге осал екені дәлелденді. 1997 жылдың 2 қаңтарында NIST DES-тің орнын алмастырушыны таңдауға ниетті екенін мәлімдеді. 2001 жылы халықаралық бәйгеден кейін NIST жаңа шифрлау стандартын таңдады, ол – Advanced Encryption Standard (AES) болды. AES ретінде таңдалған алгоритмді оның жасаушылары Rijndael деген атпен ұсынды. NIST AES бәйгесінің басқа финалистері RC6, Serpent, MARS және Twofish болды.