Реферати українською » Информатика, программирование » Інтегральна атака проти блокового симетричного шифру Crypton


Реферат Інтегральна атака проти блокового симетричного шифру Crypton

Страница 1 из 6 | Следующая страница

ЗАПРОВАДЖЕННЯ

Бурхливий розвиток сучасних інформаційних технологій у Україні, розпочате кінці ХХ століття, не знижує своїх темпів і на початку ХХІ сторіччя. Комп'ютерні технології усі більший вплив попри всі сфери людської діяльності. Постійне збільшення швидкості і обсягу що передаються у інформаційних системах даних підвищує ефективність виробничих процесів, сприяє розширенню ділових операцій.

Саме тому посилюються вимоги до інформаційну безпеку. Під нею розуміється захищеність інформації та підтримує інфраструктури випадкових і навмисних впливів, які можуть опинитися зашкодити власникам чи користувачам інформації. Безпека інформаційної системи є одним із найважливіших завдань при експлуатації даної системи, тому що від збереження конфіденційності, цілісності і доступності інформаційних ресурсів великою мірою залежить швидкість прийняття рішень, ефективність яких і надійність роботи [1] . Розробка і аналіз блокових шифрів, є дуже актуальною завжди і необхідної завданням, що має бути реалізована державному рівні, оскільки від цього залежить державна безпека України. Україна повинна мати свійБСШ.

Однією з основних елементів загалом комплексі засобів і методів забезпечення інформаційну безпеку є писав криптографічні засоби захистуинформации[2]. На цьому етапі розвитку застосовується як симетричні, і несиметричні писав криптографічні засоби захисту. Це обумовлюється тим, перші здатні забезпечити високу швидкість шифрування, а другі – модель взаємного недовіри та цивільного захисту, тобто. ситуацію, коли користувачі інформаційних систем США нікому довіряти свої власні ключі і параметри, та заодно хочуть мати гарантію компенсації втрат, якщо їх обмануть.

Широке використання симетричній криптографії визначає необхідність дослідження стійкості симетричних шифрів до існуючим методамкриптоанализа.

Однією з найефективніших, нині, є інтегральний методкриптоанализа.

Метою згаданої роботи є підставою вивчення теоретичних підвалин життя і реалізація інтегральної атаки практично для усіченою моделі блокового симетричного шифруСrypton, і навіть вивчення особливостей та застосування атаки.

Досягнення цього вирішити такі:

- Вивчити методику застосування інтегральної атаки проти блокового симетричного шифруCrypton.

- Адаптувати методику застосування інтегральної атаки від використання проти усіченого варіанта блокового симетричного шифруCrypton.

- Виконати програмну реалізацію інтегральної атаки проти усіченого варіанта блокового симетричного шифруCrypton.

У цьому дипломної роботі розраховується економічна ефективність розробки методики визначення стійкості блокового симетричного шифруСrypton проти інтегральної атаки.

У розділі "Безпека життєдіяльності" дипломного проекту необхідно розробити питання БЖД і під час робіт з розробці інтегральної атаки на шифрCrypton, які виконуються в науково-дослідної лабораторії (>НИЛ). У розділі слід виконати аналіз умов праці, розробити питання техніки безпеки, виробничої санітарії і гігієни праці, пожежної профілактики.


1.БЛОЧНЫЕСИММЕТРИЧНЫЕШИФРЫ ТА ЇХНІ МІСЦЕ У СУЧАСНИХИНФОРМАЦИОННЫХСИСТЕМАХ

1.1 Найвища вимога доБСШ як до механізму що забезпечує конфіденційність

Сьогодні розроблено досить багато стійких блокових шифрів. Практично всі алгоритми використовують із перетворень певний набірбиективних (оборотних) математичних перетворень.

Характерною ознакою блоковихкриптоалгоритмов є також те, що під час своєї роботи вони виробляють перетворення блоку вхідний інформації фіксованою довжини й отримують результуючий блок тієї самої обсягу, але недоступний для прочитання стороннім особам, не що володіє ключем. Отже, схему роботи блокового шифру можна описати функціями

>Z=EnCrypt(X,Key) іX=DeCrypt(Z,Key)[3]

КлючKey є параметром блоковогокриптоалгоритма і становить певний блокдвоичной інформації фіксованого розміру. Вихідний (X) і зашифрований (Z) блоки даних також мають фіксовану розрядність, рівну між собою, але не обов'язково рівну довжині ключа.

>Блочние шифри є основою, де реалізовані майже всікриптосистеми[4]. Методика створення ланцюжків з зашифрованих блоковими алгоритмами байт дозволяє шифрувати ними пакети інформації необмеженої довжини. Таке властивість блокових шифрів, як швидкість роботи, використовується асиметричнимикриптоалгоритмами, повільними за своєю природою. Відсутність статистичної кореляції між бітами вихідного потоку блокового шифру використовується для обчислення контрольних сум пакетів даних, і вхешировании паролів.

Стійкістькриптоалгоритмов описано на [5], [6].Криптоалгоритм іменується ідеально стійким, якщо прочитати зашифрований блок даних можна тільки перебравши всіх можливих ключі, до того часу, поки повідомлення бракуватиме осмисленим. Бо за теорії ймовірності шуканий ключ буде знайдено з імовірністю 1/2 після перебору половина всіх ключів, то, на зламування ідеально стійкогокриптоалгоритма з ключем довжини N знадобиться загалом2N-1 перевірок. Отже, у випадку стійкість блокового шифру залежить від довжини ключа зростає експоненціально з її зростанням. Навіть допустивши, що перебір ключів виготовляють спеціально створеноїмногопроцессорной системі, у якій завдякидиагональному паралелізму на перевірку 1 ключа йде лише 1 такт, то, на зламування 128 бітного ключа сучасній техніці знадобиться щонайменше 1021 років. Природно, все сказане стосується лише ідеально стійким шифрам, якими, наприклад, з великою часткою впевненості є наведені у таблиці вище алгоритми.

Крім його запровадження до ідеально стійкимкриптоалгоритмам застосовується ще дуже жорстку вимогу, якому вони мають обов'язково відповідати. При відомих вихідному і зашифрованому значеннях блоку ключ, яким вироблено це перетворення, можна почути також лише повним перебором. Ситуації, у яких сторонньому спостерігачеві відома частина вихідного тексту зустрічаються повсюдно. Це може бути стандартні написи в електронних бланках, фіксовані заголовки форматів файлів, частенько які з тексту довгі слова чи послідовності байт. У цьому світлі цієї проблеми описане вище вимога перестав бути нічим надмірним і суворо виконується стійкимикриптоалгоритмами, як і перше.

Отже, на функцію стійкого блокового шифруZ=EnCrypt(X,Key) накладаються такі умови:

- функціяEnCrypt мусить бути оборотного.

- на повинен існувати інших методів прочитання повідомлення X відомим блоку Z, інакше як повним перебором ключівKey.

- на повинен існувати інших методів визначення яким ключемKey було виконано перетворення відомого повідомлення XX ст повідомлення Z, інакше як повним перебором ключів.

Давайте розглянемо методи, з допомогою яких розробники блоковихкриптоалгоритмов домагаються одночасного виконання цих умов з дуже великі часткою достовірності. Усі дії, вироблені над даними блоковимкриптоалгоритмом, засновані увагу на тому, що преутворений блок то, можливо подано у вигляді цілогонеотрицательного числа з діапазону, відповідного його розрядності. Приміром,32-битний блок даних можна інтерпретувати і кількість з діапазону 0..4'294'967'295. З іншого боку, блок, розрядність котрого зазвичай є "ступенем двійки", можна трактувати як дещо незалежнихнеотрицательних чисел з меншого діапазону (розглянутий вище32-битний блок можна також ознайомитися у вигляді 2 незалежних чисел з діапазону 0..65535 або у вигляді 4 незалежних чисел з діапазону 0..255). Ці числами блоковимкриптоалгоритмом і виготовляють за схемоюпоказаной наТаб 1.1 (зліва дано умовні позначення операцій на графічних схемах алгоритмів):

Як параметра V нічого для будь-якого з цих перетворень можна використовувати:

- фіксований число (наприклад,X'=X+125)

- число, одержуване з ключа (наприклад,X'=X+F(Key))

- число, одержуване з незалежної частини блоку (наприклад,X2'=X2+F(X1))


Таблиця 1.1 Умовні позначення операцій на графічних схемах алгоритмів.

Останній варіант використовують у схемою, названої під назвою її творця мережеюФейстеля (ньому.Feistel).

Послідовність виконуваних над блоком операцій, комбінації перелічених вище варіантів V й існують самі функції F і вони становлять "ноу-хау" кожної конкретної блоковогокриптоалгоритма. Розмір блоків й довжину ключа сучасних (1999 рік) алгоритмів були нами розглянуті раніше. Одна-дві дитини рази на рік дослідницькі центри світу публікують черговий блоковий шифр, що під нещадній атакоюкриптоаналитиков або набуває кілька років статус стійкогокриптоалгоритма, або (що відбувається незмірно частіше) безславно іде у історію криптографії.

Характерним ознакою блокових алгоритмів є багаторазове і непрямий використання матеріалу ключа. Це диктується насамперед вимогою неможливості зворотного декодування щодо ключа при відомих вихідному і зашифрованому текстах. Аби вирішити це завдання в наведених вище перетвореннях найчастіше використовується саме значення ключа або його частини, а деяка, іноді необоротна (>небиективная) функція від матеріалу ключа. Понад те, у таких перетвореннях і той ж блок чи елемент ключа використовується багаторазово. Це дозволяє і під час умови оборотності функції щодо величини X зробити функцію необоротною щодо ключаKey.

Оскільки операціязашифровки чи розшифровки окремого блоку у процесі кодування пакета інформації виконується багаторазово (іноді до сотень тисяч разів), а значення ключа і, отже, функційVi(Key) залишається незмінною, іноді стає доцільно заздалегідь одноразово обчислити дані значення й зберігатиме їх у оперативної пам'яті що з ключем. Оскільки цих значень залежать тільки від ключа, тооин в криптографії називаються матеріалом ключа. Слід зазначити, що це операція у разі не змінює ні довжину ключа, нікриптостойкость алгоритму загалом. Тут відбувається лише оптимізація швидкості обчислень шляхомкеширования (анг.caching) проміжних результатів. Описані дії зустрічаються практично у багатьох блоковихкриптоалгоритмах й носять назва розширення ключа (анг.keyscheduling)


1.2 Огляд відомихБСШ

1.2.1 Аналіз симетричного блокового шифруRijndael

>Шифр реалізує цілком нетрадиційну криптографічну парадигму, повністю відмовившись від мережіФейстела[7],[8]. До переваг алгоритму відносять: дуже добре швидкодія усім платформах від8-битних до64-битних, найвищий потенційний паралелізм серед претендентів, мінімальні вимоги до ресурсів оперативної та постійної пам'яті у реалізації безкеширования деяких операцій, опірність переважна більшість атак за часом виконання й споживаної потужності, структура шифру дозволяє вживати будь-які комбінації розмірів блоки і довжин ключа, кратні 32 біт (під час досягнення розміром блоку певної межі потрібно лише посилення числа раундів). У цьому процедуришифрования/дешифрования та проведення операції розширення ключів різняться між собою досить сильно проти простим зміною порядку ключів або операцією накладення, притаманних мережіФейстела, що підвищує сумарний обсяг коду алгоритму.

Як засвідчили попередні дослідження [9],[10],Rijndael може дуже ефективно реалізований практично на всіх процесорах і з надзвичайно успішно протистоїть відомимкриптоаналитическим атакам.

>Rijndael є ітеративний блоковий шифр, має зміну довжину блоків й різні довжини ключів. Довжина ключа й довжину блоку може бути незалежно друг від друга 128, 192 чи 256 біт.

Різноманітні перетворення працюють із проміжним результатом, званим Станом (State).

Стан можна як прямокутного масиву байтів. Цей масив має 4 рядки, а число шпальт позначений якNb і одно довжині блоку, діленої на 32.

Ключ шифрування також подано у вигляді прямокутного масиву з чотирма рядками. Кількість шпальт позначений якNk і одно довжині ключа, діленої на 32. Це показано малюнку 1.4.

Малюнок 1.4. Приклад уявлення Стану (>Nb=6) і Ключ шифрування (>Nk=4).

У окремих випадках ключ шифрування показаний як лінійний масив4-байтових слів. Слова складаються з 4 байтів, що у одному стовпці (при поданні до вигляді прямокутного масиву) як показано малюнку 1.4 узятий з [11].

Вхідні дані для шифру ("відкритий текст", якщо використовується режим шифруванняECB) позначаються як байти стану гараздa0,0,a1,0,a3,0,a0,1,a1,1,a3,1 ,>a4,1 ... Після закінчення дії шифру вихідних даних виходять з байтів стану у тому порядку.

Кількість циклів позначений якNr і від значеньNb іNk. Воно наведено вТаблице 1.2

Таблиця 1.2 Кількість циклів (>Nr) як функція від довжини ключа і довжини блоку.


>Цикловое перетворення складається з чотирьох різних перетворень. Напсевдо-Си це відбувається так:

>Round (State,RoundKey)

{

>ByteSub(State); // заміна байт

>ShiftRow(State); // зрушення рядків

>MixColumn(State); //замешивание шпальт

>AddRoundKey(State,RoundKey); // додаванняциклового ключа

}

Останній цикл шифру трохи відрізняється. Ось як виглядає:

>FinalRound(State,RoundKey)

{

>ByteSub(State); // заміна байт

>ShiftRow(State); // зрушення рядків

>AddRoundKey(State,RoundKey); // додаванняциклового ключа

}

У наведеній записи, "функції" -Round,ByteSub тощо. виконують свої дії над масивами, покажчики (тобто. State,RoundKey) куди їм передаються.

Як можна побачити, останній цикл відрізняється від простого циклу лише відсутністюзамешивания шпальт. І з наведених перетворень розібране далі.

ПеретворенняByteSub є нелінійну заміну байт, виконувану незалежно з кожним байтом стану. Таблиці заміни (чиS-блоки) єинвертируемими і побудовано з композиції двох перетворень:

1. Перше - отримання зворотного елемента щодо множення на поліGF(28), '00' переходить сам у собі.

2. Застосуванняафинного перетворення (надGF(2)), певного як:

>Табл. 1.3. Таблиці заміни

Застосування описаногоS-блока всімбайтам стану позначений якByteSub(State). Малюнок 1.5 ілюструє застосування перетворенняByteSub до стану.

Малюнок 1.5ByteSub діє кожен байт стану.

Останні 3 рядки стану циклічно зсуваються на різне число байт.Строка 1 зсувається на С1 байт, рядок 2 - наС2 байт і рядок 3 - на С3 байт. Значення зрушень С1,С2 і С3 залежить від довжини блокуNb. Їх величини наведені у таблиці 1.4.


Таблиця 1.4. Величина зсуву для різною довжини блоків.

Операція зсуву останніх 3 рядків стану на певну величину позначена якShiftRow(State). Малюнок 1.5 показує вплив перетворення на стан.

Малюнок 1.5ShiftRow діє рядки стану.

У перетвореннязамешивания шпальт (>MixColumn) стовпчики стану розглядаються як багаточлени надGF(28) і примножуються по модулюx4+1 на багаточленc(x),виглядящий так:

>c(x)='03'x3 + '01'x2 + '01' x + '02'(1.8)

Це то, можливо представлено як матричного множення. Нехайb(x)=c(x)a(x),

>Табл. 1.6Матричное множення


Застосування цієї операції до всіх чотирьохстолбцам стану позначений якMixColumn(State). Малюнок 1.7 демонструє застосуванняMixColumn до стану.

Малюнок 1.7MixColumn діє стовпчики стану.

У наступній операції циклової ключ додається до стану у вигляді простогоEXOR.Цикловой ключ виробляється з ключа шифрування у вигляді алгоритму вироблення ключів (>keyschedule). Довжинациклового ключа дорівнює довжині блокуNb.

Перетворення, що містить додавання у виглядіEXORциклового ключа до стану, позначений якAddRoundKey(State,RoundKey). Вонопроиллюстрированно малюнку 1.8.

Малюнок 1.8. Додавання ключа

При додаванні ключа циклової ключ складається у виглядіEXOR зі станом.

>Цикловие ключі виходять з ключа шифрування у вигляді алгоритму вироблення ключів. Він має два компонента: розширення ключа (>KeyExpansion) і вибірциклового ключа (>RoundKeySelection).

Основні принципи алгоритму виглядають так:

- загальна кількість біт циклових ключів одно довжині блоку, помноженою на число циклів плюс 1 (наприклад, для довжини блоку 128 біт і десяти циклів потрібно 1408 бітциклового ключа).

- ключ шифрування розширюється в Розширений Ключ (>ExpandedKey).

-цикловие ключі беруть із Розширеного ключа так: перший циклової ключ містить першіNb слів, другий - такіNb слів тощо.

Розширений ключ є лінійний масив4-ехбайтових слів і означене якW[Nb*(Nr+1)]. ПершіNk слів містять ключ шифрування.

Решта слова визначаютьсярекурсивно з слів з меншими індексами. Алгоритм вироблення ключів залежить від величиниNk: нижче приведено версія дляNk рівного чи меншого 6 і версія дляNk більшого 6.

ДляNk<6 чиNk=6 маємо:

>KeyExpansion(CipherKey,W)

{

>for (і = 0; і <Nk; і++)W[i] =CipherKey[i];

>for (j =Nk; j <Nb*(Nk+1);j+=Nk)

{

>W[j] =W[j-Nk] ^SubByte(Rotl(W[j-1] ) ) ^Rcon[j/Nk];

>for (і = 1; і

Страница 1 из 6 | Следующая страница

Схожі реферати:

Навігація