Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Блок шифрі
Block cipher
Криптографияда 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 таңдалған ашық мәтін талап етеді.
In cryptography, ICE (Information Concealment Engine) is a symmetric key block cipher published by Matthew Kwan in 1997. The algorithm is similar in structure to DES, but with the addition of a key dependent bit permutation in the round function. The key dependent bit permutation is implemented efficiently in software. The ICE algorithm is not subject to patents, and the source code has been placed into the public domain. ICE is a Feistel network with a block size of 64 bits. The standard ICE algorithm takes a 64 bit key and has 16 rounds. A fast variant, Thin ICE, uses only 8 rounds. An open ended variant, ICE n, uses 16n rounds with 64n bit key. Van Rompay et al. (1998) attempted to apply differential cryptanalysis to ICE. They described an attack on Thin ICE which recovers the secret key using 223 chosen plaintexts with a 25% success probability. If 227 chosen plaintexts are used, the probability can be improved to 95%. For the standard version of ICE, an attack on 15 out of 16 rounds was found, requiring 256 work and at most 256 chosen plaintexts.
Құрылымы
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 биттік іздеу кестелерінде сақталады.
ICE is a 16 round Feistel network. Each round uses a 32→32 bit F function, which uses 60 bits of key material. The structure of the F function is somewhat similar to DES: The input is expanded by taking overlapping fields, the expanded input is XORed with a key, and the result is fed to a number of reducing S boxes which undo the expansion. First, ICE divides the input into 4 overlapping 10 bit values. They are bits 30, 31 and 0–7 of the input for the first 10 bit value and for the next values 6–15, 14–23, and 22–31. Second is a keyed permutation, which is unique to ICE. Using a 20 bit permutation subkey, bits are swapped between halves of the 40 bit expanded input. (If subkey bit i is 1, then bits i and i+20 are swapped.) Third, the 40 bit value is XORed with 40 more subkey bits. Fourth, the value is fed through 4 10 bit S boxes, each of which produces 8 bits of output. (These are much larger than DES's 8 6→4 bit S boxes.) Fifth, the S box output bits are permuted so that each S box's outputs are routed to each 4 bit field of 32 bit word, including 2 of the 8 "overlap" bits duplicated during the next round's expansion. Like DES, a software implementation would typically store the S boxes pre permuted, in 4 1024×32 bit lookup tables.