Кіріспе
Дифференциалдық криптоанализ – криптоанализдің жалпы түрі, ол негізінен блок шифрларына, сондай-ақ ағын шифрлары мен криптографиялық хэш-функцияларға қолданылады. Ең кең мағынасында, ол кіріс мәліметтеріндегі айырмашылықтар шығыстағы айырмашылыққа қалай әсер ететінін зерттеу болып табылады. Блок шифрінің жағдайында, ол трансформация желісі арқылы айырмашылықтарды қадағалау, шифрдің кездейсоқ емес мінез-құлық көрсететін жерлерін анықтау және құпия кілтті (криптографиялық кілтті) қалпына келтіру үшін мұндай қасиеттерді пайдалануға арналған әдістер жиынтығын білдіреді.
Differential cryptanalysis is a general form of cryptanalysis applicable primarily to block ciphers, but also to stream ciphers and cryptographic hash functions. In the broadest sense, it is the study of how differences in information input can affect the resultant difference at the output. In the case of a block cipher, it refers to a set of techniques for tracing differences through the network of transformation, discovering where the cipher exhibits non random behavior, and exploiting such properties to recover the secret key (cryptography key).
Тарих
Дифференциалдық криптоанализдің ашылуы, әдетте, 1980 жылдардың соңында Эли Бихам мен Ади Шамирге байланыстырылады, олар әртүрлі блок шифрлары мен хэш-функцияларға қарсы бірнеше шабуылдарды жариялады, соның ішінде Деректерді шифрлау стандартының (DES) теориялық осалдығын. Бихам мен Шамир DES-тің дифференциалдық криптоанализге күтпегендей төзімді екенін атап өтті, бірақ алгоритмге енгізілген шағын өзгерістер оны одан да осал ететін еді. 1994 жылы IBM DES командасының мүшесі Дон Копперсмит дифференциалдық криптоанализдің IBM-ге 1974 жылдан бері белгілі болғанын және дифференциалдық криптоанализден қорғану дизайнның мақсаты болғанын мәлімдеген мақала жариялады. Автор Стивен Левидің сөзіне сүйенсек, IBM дифференциалдық криптоанализді өздігінен ашқан, ал NSA бұл техниканы жақсы білген. IBM кейбір құпияларды сақтады, Coppersmith түсіндіреді: "NSA-мен болған келісімдерден кейін, дизайндық ескертулерді жариялау дифференциалдық криптоанализ әдісін ашады деген шешім қабылданды, бұл көптеген шифрларға қарсы қолданылатын қуатты әдіс. Бұл өз кезегінде АҚШ-тың криптография саласындағы басқа елдерге қарағандағы бәсекелестік артықшылығын әлсіретеді". DES дифференциалдық криптоанализге төзімді болу үшін жасалған болса да, басқа заманауи шифрлар осал болып шықты. Шабуылдың алғашқы нысаны FEAL блок шифры болды. Бастапқы төрт раундтан (FEAL 4) тұратын нұсқаны тек сегіз таңдалған ашық мәтінмен бұзуға болады, тіпті FEAL-дың 31 раундтық нұсқасы да шабуылға ұшырайды. Ал, керісінше, бұл схема 247 таңдалған ашық мәтінмен DES-ті сәтті криптоанализдей алады.
Шабуыл жасау механизмі
Дифференциалдық криптоанализ көбінесе таңдалған ашық мәтіндік шабуыл болып табылады, яғни шабуылшы өзі таңдаған ашық мәтіндердің белгілі бір жиыны үшін шифрмәтіндерді алуға мүмкіндік керек. Дегенмен, белгілі ашық мәтін немесе тіпті тек шифрмәтіндік шабуылға мүмкіндік беретін кеңейтімдер де бар. Негізгі әдіс тұрақты айырмашылықпен байланысты ашық мәтіндердің жұптарын пайдаланады. Айырмашылықты бірнеше тәсілмен анықтауға болады, бірақ қосымша OR (XOR) операциясы жиі қолданылады. Содан кейін шабуылшы олардың таралуындағы статистикалық үлгілерді анықтау үмітімен сәйкес шифрмәтіндердің айырмашылықтарын есептейді. Нәтижеде алынған айырмашылықтар жұбы дифференциал деп аталады. Олардың статистикалық қасиеттері шифрлау үшін қолданылатын S-блоктардың табиғатына байланысты, сондықтан шабуылшы әрбір S-блок S үшін (және ⊕ – қосымша немесе) дифференциалды талдайды. Негізгі шабуылда, шифрмәтін айырмашылығының бір ерекше мәні ерекше жиі кездеседі деп күтіледі. Осылайша шифр кездейсоқтықтан ажыратылады. Күрделірек нұсқалар кілтті толық іздеуге қарағанда жылдамырақ қалпына келтіруге мүмкіндік береді. Дифференциалдық криптоанализ арқылы кілтті қалпына келтірудің ең қарапайым түрінде шабуылшы көптеген ашық мәтін жұптарының шифрмәтіндерін сұрайды, содан кейін дифференциал кем дегенде r-1 раундқа сақталады деп есептейді, мұнда r – раундтардың жалпы саны. Шабуылшы содан кейін соңғы раундқа дейінгі блоктар арасындағы айырмашылық белгілі болған жағдайда, қандай раунд кілттері (соңғы раунд үшін) мүмкін екенін анықтайды. Раунд кілттері қысқа болса, бұған әрбір мүмкін раунд кілтімен шифрмәтін жұптарын бір раундқа толық түрде шифрлау арқылы қол жеткізуге болады. Егер бір раунд кілті басқа кілттерге қарағанда әлдеқайда жиі потенциалды раунд кілті болып саналса, ол дұрыс раунд кілті деп есептеледі. Кез келген шифр үшін шабуыл сәтті болуы үшін кіріс айырмашылығын мұқият таңдау қажет. Алгоритмнің ішкі құрылымын талдау жүргізіледі; стандартты әдіс – шифрлаудың әртүрлі кезеңдеріндегі жоғары ықтималды айырмашылықтардың жолын табу, бұл дифференциалдық сипаттама деп аталады. Дифференциалдық криптоанализ жарияланғаннан бері шифр дизайнерлері үшін маңызды мәселе болып табылады. Жаңа жобалар алгоритмнің осы шабуылға төзімді екенін көрсететін дәлелдермен бірге келуі күтіледі, және олардың көптеген, соның ішінде Advanced Encryption Standard, шабуылға қарсы қауіпсіз екені дәлелденді.
(and ⊕ denotes exclusive or) for each such S box S. In the basic attack, one particular ciphertext difference is expected to be especially frequent. In this way, the cipher can be distinguished from random. More sophisticated variations allow the key to be recovered faster than an exhaustive search. In the most basic form of key recovery through differential cryptanalysis, an attacker requests the ciphertexts for a large number of plaintext pairs, then assumes that the differential holds for at least r − 1 rounds, where r is the total number of rounds. The attacker then deduces which round keys (for the final round) are possible, assuming the difference between the blocks before the final round is fixed. When round keys are short, this can be achieved by simply exhaustively decrypting the ciphertext pairs one round with each possible round key. When one round key has been deemed a potential round key considerably more often than any other key, it is assumed to be the correct round key. For any particular cipher, the input difference must be carefully selected for the attack to be successful. An analysis of the algorithm's internals is undertaken; the standard method is to trace a path of highly probable differences through the various stages of encryption, termed a differential characteristic. Since differential cryptanalysis became public knowledge, it has become a basic concern of cipher designers. New designs are expected to be accompanied by evidence that the algorithm is resistant to this attack and many including the Advanced Encryption Standard, have been proven secure against the attack.
Және де толық шабуылдау
Шабуыл негізінен берілген кіріс/шығыс айырмашылық үлгісі тек белгілі бір кіріс мәндері үшін ғана пайда болатындығына байланысты. Әдетте, шабуыл сызықтық емес компоненттерге, олар қатты компонент болғандай қолданылады (көбінесе олар іздеу кестелері немесе S-қораптар болады). Күтілетін шығыс айырмашылығын (екі таңдалған немесе белгілі ашық мәтіндік кіріс арасында) байқау, ықтимал кілт мәндерін ұсынады. Мысалы, егер 1 => 1 дифференциалы (кірістің ең кіші маңызды битіндегі (LSB) айырмашылық, шығыстағы LSB айырмашылығына әкеледі) 4/256 ықтималдығымен пайда болса (мысалы, AES шифрындағы сызықтық емес функцияда мүмкін), онда бұл дифференциал тек 4 мән үшін (немесе 2 жұп үшін) ғана мүмкін болады. Егер бізде кілтті бағалау алдында XOR операциясы қолданылатын сызықтық емес функция болса, ал дифференциалды мүмкін ететін мәндер {2,3} және {4,5} болса, шабуылшы {6, 7} мәндерін жіберсе және дұрыс шығыс айырмашылығын байқаса, кілт 6 ⊕ K = 2 немесе 6 ⊕ K = 4 болады, яғни K кілті 2 немесе 4 болады. Шифрды шабуылдан қорғау үшін, n-биттік сызықтық емес функция үшін дифференциалдық біркелкілікке жақындағанша 2−(n − 1) іздеу қажет. Бұл жағдайда дифференциалдық шабуыл кілтті анықтау үшін күшпен іздеу сияқты көп жұмыс талап етеді. AES сызықтық емес функциясының максималды дифференциалдық ықтималдығы 4/256 (бірақ көптеген жазбалар 0 немесе 2 болады). Теориялық тұрғыдан алғанда, кілтті күшпен іздеудің жартысынан кем жұмыспен анықтауға болады, бірақ AES-тің жоғары тармағы бірнеше раундта жоғары ықтималды жолдардың пайда болуына жол бермейді. Шындығында, AES шифры дифференциалдық және сызықтық шабуылдарға қарсы иммунитетті қамтамасыз етеді, тіпті сызықтық емес функциясы нашар болса да. 25-ке 4R-дің (активті S-қораптарының саны) өте жоғары тармағы 8 раундта ешқандай шабуыл 50 сызықтық емес түрлендіруден кем емес екенін білдіреді, демек, сәттілік ықтималдығы Pr[шабуыл] ≤ Pr[S-қорабына ең жақсы шабуыл]50-ден аспайды. Мысалы, қазіргі S-қорабымен AES (4/256)50 немесе 2−300-ден жоғары ықтималдығы бар тұрақты дифференциалды шығарады, бұл 128-биттік блок шифры үшін қажетті 2−128 шегінен әлдеқайда төмен. Бұл тиімді S-қорабына орын берер еді, тіпті ол 16-біркелкі болса да, шабуыл ықтималдығы 2−200 болар еді. 2-біркелкілікпен тепе-тең кіріс/шығыс үшін биекциялар жоқ. Олар (мысалы, GF(27) сияқты) тақ өрістерде кубтау немесе инверсияны пайдаланып табылады (басқа да көрсеткіштерді қолдануға болады). Мысалы, кез келген тақ екілік өрістегі S(x) = x3 дифференциалдық және сызықтық криптоанализге қарсы тұрады. MISTY дизайндары 16-биттік сызықтық емес функцияда 7 және 9-биттік функцияларды пайдалануының бір себебі осы. Бұл функциялар дифференциалдық және сызықтық шабуылдарға қарсы иммунитетті алады, бірақ алгебралық шабуылдарға қарсы жоғалтады. Яғни, оларды SAT шешуші арқылы сипаттап, шешуге болады. Сондықтан, AES (мысалы) инверсиядан кейін аффиндік түрлендіруге ие.