Кіріспе

Блок шифрі

Криптографияда ICE (Information Concealment Engine) – 1997 жылы Мэтью Кван жариялаған симметриялық кілттік блок шифрі. Алгоритм құрылымы бойынша DES-ке ұқсас, бірақ раунд функциясында кілтке тәуелді биттік пермутациясы қосылған. Кілтке тәуелді биттік пермутация бағдарламалық қамтамасызда жоғары тиімділікпен іске асырылады. ICE алгоритмі патенттелмеген, ал бастапқы коды жалпыға қолжетімді. ICE – 64 биттік блок көлемі бар Фейстель желісі. Стандартты ICE алгоритмі 64 биттік кілтті қабылдайды және 16 раундтан тұрады. Жылдам нұсқасы – Thin ICE, тек 8 раундты пайдаланады. Ашық нұсқасы ICE n, 64n биттік кілтпен 16n раундты қолданады. Ван Ромпай және авторлар тобы (1998) ICE-ге дифференциалдық криптоанализді қолдануға тырысты. Олар Thin ICE-ке жасалған шабуылды сипаттады, ол 223 таңдалған ашық мәтінді пайдаланып, 25% сәттілік мүмкіндігімен құпия кілтті қалпына келтіреді. Егер 227 таңдалған ашық мәтін қолданылса, сәттілік мүмкіндігін 95%-ға дейін арттыруға болады. ICE стандартты нұсқасында 16 раундтың 15-іне шабуыл жасалғаны анықталды, бұл 256 еңбек және ең көп дегенде 256 таңдалған ашық мәтін талап етеді.

Құрылымы

ICE - 16 раундтық Фейстель желісі. Әрбір раундта 60 бит кілттік материалды пайдаланатын 32→32 биттік F функциясы қолданылады. F функциясының құрылымы DES-ке ұқсас: кіріс, бір-біріне жапсарлас өрістерді алу арқылы кеңейтіледі, кеңейтілген кіріс кілтпен XOR операциясынан өтеді, ал нәтиже кеңейтуді кері қайтаратын бірнеше азайтушы S-қораптарына жіберіледі. Біріншіден, ICE кірісті 4 жапсарлас 10 биттік мәнге бөледі. Олар кірістің алғашқы 10 биттік мәні үшін 30, 31 және 0–7 биттері, ал келесі мәндер үшін 6–15, 14–23 және 22–31 биттері. Екіншіден, ICE-ге тән кілттік пермутация қолданылады. 20 биттік пермутациялық кілтті пайдаланып, биттер 40 биттік кеңейтілген кірістің жартылары арасында ауыстырылады. (Егер кілттік бит i 1-ге тең болса, онда i және i+20 биттері ауыстырылады.) Үшіншіден, 40 биттік мән тағы 40 кілттік битпен XOR операциясынан өтеді. Төртіншіден, мән 4 10 биттік S-қораптан өтеді, олардың әрқайсысы 8 биттік шығыс береді. (Бұл DES-тің 8 6→4 биттік S-қораптарынан әлдеқайда үлкен.) Бесіншіден, S-қораптың шығыс биттері пермутацияланады, сонда әр S-қораптың шығысы 32 биттік сөздің әр 4 биттік өрісіне бағытталады, оның ішінде келесі раундтың кеңейту кезінде дубликатталған 8 "жапсарлас" биттің 2-сі бар. DES сияқты, бағдарламалық жасақтамада S-қораптар алдын ала пермутацияланып, 4 1024×32 биттік іздеу кестелерінде сақталады.