Кіріспе

Алғашқы азаматтық блок шифрлары

Криптографияда, Люцифер – Хорст Фейстель мен оның IBM-дегі әріптестері әзірлеген ең алғашқы азаматтық блок шифрларының біріне берілген атау. Люцифер деректерді шифрлау стандартының тікелей алдағысы болды. Оның бір нұсқасы, DTD 1 деп аталды, 1970-ші жылдары электрондық банк саласында коммерциялық тұрғыда қолданылды.

Шолу

Люцифер шифрларды шешуде бастапқы нүкте ретінде транспозиция және алмастыру шифрлаудың комбинациясын пайдаланады. 1971 жылы Фейстель сипаттаған бір нұсқа 48 биттік кілтті қолданады және 48 биттік блоктармен жұмыс істейді. Шифр алмастыру-пермутация желісі болып табылады және екі 4 биттік S-қорапшасын пайдаланады. Кілті қай S-қорапшаны қолдану керектігін анықтайды. Патент шифрлаудың 24 биттен және 8 биттен жұмыс істейтін нұсқаларын сипаттайды. Сол жылы Джон Л. Смит ұсынған тағы бір нұсқа 32 биттік блокпен жұмыс істейтін 64 биттік кілтті қолданады, сондай-ақ бір қосылым (mod 4) және бір 4 биттік S-қорапшасын пайдаланады. Бұл құрылым сағат циклына 4 биттен жұмыс істеуге арналған. Бұл белгілі ең кішкентай блок шифрлеулердің бірі болуы мүмкін. Кейіннен Фейстель 128 биттік кілтті қолданатын және 128 биттік блоктармен жұмыс істейтін күштірек нұсқаны сипаттады. Кейінірек Люцифер 16 раундтық Фейстель желісі ретінде сипатталды, ол да 128 биттік блоктар мен кілттерді қолданады. Бұл нұсқа дифференциалдық криптоанализге осал; кілттердің шамамен жартысына жуығы үшін шифр 236 таңдалған ашық мәтінмен және 236 уақыт күрделілігімен бұзылуы мүмкін. IBM Lucifer-дің Фейстель желілік нұсқасын Деректерді шифрлау стандартына үміткер ретінде ұсынды (жақындағы AES процесімен салыстырыңыз). Ол DES атанды, себебі Ұлттық қауіпсіздік агенттігі шифрдің кілтін 56 битке дейін қысқартты, блок өлшемін 64 битке дейін қысқартты және шифрды дифференциалдық криптоанализге қарсы тұрушы етті, бұл туралы сол кезде тек IBM және NSA ғана білген. "Люцифер" атауы "Демон" сөзіне жасалған ойын еді. Бұл өз кезегінде "Демонстрация" сөзінің қысқартылған түрі, Фейстель жұмыс істеп жатқан құпиялылық жүйесінің аты. Операциялық жүйе ұзын атауды қабылдай алмады.

Соркин нұсқасының сипаттамасы

Сипатталған нұсқада DES сияқты 16 Фейстель раунды бар, бірақ бастапқы немесе соңғы пермутация жоқ. Кілт пен блок өлшемдерінің екеуі де 128 биттен тұрады. Фейстель функциясы 64 биттік жарты блок деректермен, 64 биттік кіші кілтпен және 8 "араласуды басқару битімен" (ICB) жұмыс істейді. ICB-лер алмасу операциясын басқарады. 64 биттік дерек блогы сегіз 8 биттік байттан тұратын тізбек ретінде қарастырылады, егер белгілі бір байтқа сәйкес ICB нөл болса, сол және оң 4 биттік жартысы (нибблдер) ауыстырылады. Егер ICB бір болса, байт өзгеріссіз қалады. Әрбір байт екі 4x4 биттік S-қораптармен өңделеді, олар S0 және S1 деп белгіленеді – S0 сол жақ 4 биттік нибблмен, ал S1 оң жақ нибблмен жұмыс істейді. Нәтижеде алынған шығыстар біріктіріліп, содан кейін кіші кілтпен «ексклюзивті немесе» (XOR) операциясы арқылы біріктіріледі; бұл «кілттің үзілуі» деп аталады. Одан кейін екі кезеңді пермутация операциясы жүзеге асырылады; бірінші кезең әр байтты белгілі бір пермутация бойынша өзгертеді. Екінші кезең байттар арасындағы биттерді араластырады. Кілтті жоспарлау алгоритмі салыстырмалы түрде қарапайым. Бастапқыда 128 кілттік бит ауысу тізіліміне жүктеледі. Әр раундта тізілімнің сол жағындағы 64 бит кіші кілтті, ал оң жағындағы сегіз бит ICB биттерін құрайды. Әр раундтан кейін тізілім 56 битке солға қарай жылдырылады.