4.5. Алгоритми за пермутация

В алгоритмите за пермутация символите в обикновен текст променят реда си според правило, което се определя от ключа.

Най-простият пример за пермутация: знаците в обикновен текст не са отляво надясно, а отгоре надолу, докато дължината на колоната е ограничена. Резултатът ще бъде текст, изписан ред по ред.

Ориз. 6. Най-простият шифър за пермутация.

Такъв шифър би бил много уязвим на груба сила на ключ (дължината на колоната ще бъде ключът), тъй като ключът във всеки случай не може да бъде по-дълъг от дължината на самото съобщение.

Помислете за по-интересен пример: решетката на Флайберг. Ключът към този шифър е квадратна решетка, чиито страни съдържат четен брой клетки. Една четвърт от клетките на решетката се изрязват по следния принцип: ако се изрязва някаква клетка, тогава

7 Събирането става по модул на степента на азбуката. Ако двоичният текст се шифрова, тогава операцията за шифроване е изключително или (XOR), приложено към ключа и обикновения текст.

невъзможно е да се изрежат онези клетки, в които преминава, когато решетката се завърти на 90, 180 и 270 градуса.

За да се шифрова текстът, върху очертан квадрат се наслагва решетка с прорези, след което буквите от текста се записват последователно в прорезите. Когато всички слотове са запълнени, решетката се завърта на 90 градуса и, според принципа на изграждане на решетката, тогава слотовете ще бъдат на мястото на незапълнените клетки. Продължението на текста се изписва в процепа, след което решетката се завърта отново и по този начин процедурата се повтаря още два пъти. Ако текстът не се побира в едно квадратче, следващият се попълва по същия начин. Останалите празни клетки от последния квадрат се запълват с произволни символи.

Ориз. 7. Примеркриптиране с помощта на решетката на Flayberg

Шифърът на Flaiberg очевидно е уязвим за криптоанализ с известен открит текст, а за двоичната азбука тази уязвимост е много по-малка, отколкото за естествените азбуки.

4.6. Съвременни симетрични алгоритми за криптиране

Съвременните алгоритми за симетрично криптиране използват както заместване, така и пермутация. Стандартът е множество кръгове на криптиране с различни ключове, които се генерират от един и същ споделен ключ. Повечето съвременни алгоритми имат структура, подобна на тази на шифъра на Фейстел, разработен през 1973 г.

Шифърът Feistel е създаден като пример за практическото прилагане на идеята на Клод Шен-

nona: Силният алгоритъм за криптиране трябва да отговаря на две свойства: дифузия и кофузия.

Дифузия - всеки бит от открития текст трябва да повлияе на всеки бит от шифрования текст. Същността на дифузията е дисперсията на статистическите характеристики на открития текст в рамките на шифрования текст.

Объркване - липсата на статистическа връзка между ключа и шифрования текст. Дори ако противникът определи статистическите характеристики на шифрования текст, те не трябва да са достатъчни, за да се получи информация за ключа.

Помислете за структурата на шифъра на Фейстел.

пермутация

обем (т.е. както обикновеният, така и шифрираният текст са представени от поредица от битове) и е предназначен за внедряване на компютър.

Входът на алгоритъма за криптиране е блок с обикновен текст с четна дължина 2l и ключ K . Блокът е разделен на две равни части — дясна R0 и лява L0. След това тези части преминават през m кръга на обработка, след което отново се комбинират в шифрования текст.

Всеки кръг се състои от генериране на подключ K i (базиран на споделения ключ K) иприлагане на някаква зависима от ключа трансформация F към блока R i. Резултатът се добавя към блока L i с помощта на операцията XOR (изключващо или) и се получава блокът R i+1. Блок Ri непроменен се приема като блок L i+1.

Процесът на декриптиране не е по същество различен, но шифрованият текст се дава като вход, а ключовете K i се изчисляват в обратен ред.

Ориз. 8. Схема на кръга на криптиране на шифъра на Фейстел

Различни алгоритми, използващи структурата на шифъра на Feistel, могат да се различават по следните параметри:

1. Дължина на ключа. Колкото по-дълъг е ключът, предоставен от алгоритъма, толкова по-трудно е да се изброи. Понастоящем дължина на ключ от поне 1024 бита се счита за надеждна.

2. Размер на блока. Колкото по-голям е размерът на блока, толкова по-силен е шифърът, но скоростта на операциите за криптиране / декриптиране е намалена.

3. Брой кръгове на обработка. С всеки нов кръг на обработка надеждността на шифъра се увеличава.

4. Round F функция – колкото по-сложна е тя, толкова по-трудно е да се криптоанализира шифъра.

5. Алгоритъм за изчисляване на междинни ключове K i .

Дълго време най-популярният алгоритъм за симетрично криптиране беше DES (Стандарт за криптиране на данни), приет през 1977 г. Този алгоритъм се основава на структурата на шифъра на Feistel с размер на блока от 64 бита и ключ.

Функцията F round използва набор от осем т.нар. Всяка матрица се състои от 4 реда, като всеки ред представлява пермутация на числа от 0 до 15 (съответно 16 колони). Матриците са твърдо кодирани 8 . Всяка матрица

8 се смятаха за най-съмнителната част от алгоритъма DES, тъй като създателите на алгоритъма не разкриха принципите за попълването им - защо са избрани точно тези матрици и дали алгоритъмът съдържа

получава шест бита като вход и извежда четири битарезултат. Първият и последният бит на входната стойност определят реда на матрицата, а останалите четири бита определят колоната. Резултатът от преобразуването ще бъде двоичното представяне на числото, намиращо се в тяхното пресичане. Всъщност трансформацията F е следната:

1. Блокът R i се разширява до 48 бита с помощта на специална таблица чрез дублиране на около 16 бита.

2. Полученият резултат се добавя към подключа K i чрез операцията XOR.

3. Резултатът от добавянето се разделя на 8 шест-битови блока и всеки от тях се преобразува с помощта на подходящия

4. Полученият блок се подлага на твърдо кодирана пермутация в алгоритъма.

Дълго време DES беше федералният стандарт за криптиране на САЩ. Този алгоритъм показва добър лавинообразен ефект (промяната на един бит от обикновения текст или ключа променя много битове от шифрования текст) и успешно издържа години на опити за хакване. Въпреки това, дължината на ключа от 56 бита с повишена производителност на компютъра направи шифъра потенциално уязвим за груба сила на ключове, така че през 1997 г. беше обявен конкурс за нов алгоритъм, който трябваше да се превърне в крипто стандарт за следващите няколко години.

Победителят в конкурса беше определен през 2000 г. - това беше белгийският шифър

RIJNDAEL, който е преименуван на AES (Advanced Encryption Standard). Той е-

Xia нетрадиционен блоков шифър, тъй като не използва мрежата Feishtel. Всеки блок от входни данни се представя като двуизмерен масив от байтове (4x4, 4x6 или 4x8 в зависимост от размера на блока, който може да варира). В зависимост от размера на блока и дължината на ключа, алгоритъмът съдържа от 10 до 14 кръга, във всеки от които се извършват редица трансформации - или на независими колони, или на независими редове, илиобикновено върху отделните байтове в таблицата.

Други съвременни алгоритми за симетрично криптиране включват IDEA, Blowfish, RC5,

4.7. Режими на функциониране на блокови шифри

"тайни проходи". Въпреки това, през годините на опити за кракване на този алгоритъм, слабостите не са идентифицирани.