3934

Фіналіст AES – шифр Serpent

Реферат

Информатика, кибернетика и программирование

Тема доповіді – Фіналіст AES – шифр Serpent. План Загальні відомості про конкурс AES. Основні відомості про шифр Serpent Структура алгоритму Розшифрування та розширення ключа. Алгоритм вибору підключів і...

Украинкский

2012-11-10

134.5 KB

7 чел.

Тема доповіді – Фіналіст AES – шифр Serpent. 

План

  1.  Загальні відомості про конкурс AES.
  2.  Основні відомості про шифр Serpent
  3.  Структура алгоритму
    1.  Розшифрування та розширення ключа.
    2.  Алгоритм вибору підключів із ключа.
    3.  Перестановка, S-box, лінійне перетворення.
    4.  Ефективна реалізація

Список використаних джерел

Контрольні питання до теми

Загальні відомості про конкурс AES

 У 80-х роках у США був прийнятий стандарт симетричного криптоалгоритму для внутрішнього застосування DES (Data Encryption Standard), який отримав досить широке поширення в свій час. Проте на даний момент цей стандарт повністю неприйнятний для використання з двох причин: основна - довжина його ключа 56 біт, що надзвичайно мало на сучасному етапі розвитку ЕОМ,  другорядна - при розробці алгоритм був орієнтований на апаратну реалізацію, тобто містив операції, що виконуються на мікропроцесорах за неприйнятним великий час (наприклад, такі як перестановка біт всередині машинного слова за певною схемою).

Все це спонукало Американський інститут стандартизації NIST - National Institute of Standards & Technology на оголошення в 1997 році конкурсу на новий стандарт симетричного криптоалгоритму. Цього разу вже були враховані основні недоліки шифру-попередника, а до розробки були підключені найбільші центри з криптології з усього світу. Тим самим, переможець цього змагання, названого AES - Advanced Encryption Standard, стане де-факто світовим крипттостандартом на найближчі 10-20 років.

Вимоги, пред'явлені до кандидитом на AES в 1998 році, були гранично прості: алгоритм повинен бути симетричним, алгоритм повинен бути блоковим шифром, алгоритм повинен мати довжину блоку 128 біт, і підтримувати три довжини ключа: 128, 192 і 256 біт. Також були додаткові вимоги: використовувати операції, легко реалізовані як апаратно (у мікрочіпі), так і програмно (на персональних комп'ютерах і серверах), орієнтуватися на 32-розрядні процесори, не ускладнювати без необхідності структуру шифру для того, щоб всі зацікавлені сторони були в змозі самостійно провести незалежний криптоаналіз алгоритму і переконатися, що в ньому не закладено будь-яких незадокументованих можливостей. На подальшому розвитку було обрано п’ять фіналістів у їх число і війшов шифр Serpent, Mars, TwoFish, RC6, Rijndael [слайд 2].

 2 жовтня 2000 NIST оголосив про свій вибір - переможцем конкурсу став бельгійський алгоритм RIJNDAEL.

 

2.Основні відомості про шифр Serpent

 Головна родзинка шифру SERPENT в тому, що всі три його автора - це "аси криптоаналізу", найбільш відомі розкриттям шифрів інших криптографів. Ізраїльський дослідник Елі Біхам - один з творців диференціального криптоаналізу - техніки, що лежить в основі більшості сучасних методів розкриття блокових шифрів. Данець Ларс Кнудсен вже згадувався в цьому огляді у зв'язку з шифром угоди (Кнудсен - єдиний криптограф, що фігурує одразу в двох проектах). Англієць Росс Андерсон з Кембриджського університету з початку 90-х років відомий своїми неординарними криптоаналітичних роботами [2].

Алгоритм був одним з фіналістів 2-го етапу конкурсу AES. Як і інші алгоритми, що беруть участь у конкурсі AES, Serpent має розмір блоку 128 біт і можливe довжинe ключа 128, 192 або 256 біт. Алгоритм представляє собою 32-раундову SP-мережу, що працює з блоком з чотирьох 32-бітових слів. Але Serpent був розроблений так, що всі операції можуть бути виконані паралельно, використовуючи 32 1-бітових потоки.

При розробці Serpent використовувався більш консервативний підхід до безпеки, ніж у інших фіналістів AES, проектувальники шифру вважали, що 16 раундів достатньо, щоб протистояти відомим видам криптоаналізу, але збільшили число раундів до 32, щоб алгоритм міг краще протистояти ще не відомим методам криптоаналізу. Ставши фіналістом конкурсу AES, Serpent алгоритм в результаті голосування зайняв 2 місце.

Особливостями алгоритму є: Алгоритм оптимізовано для програмної реалізації в техніці "бітових зрізів" (bitslice) і має ряд обумовлених цим фактом особливостей: у ньому використовуються початкова та зворотна їй кінцева бітові перестановки, які не впливають на стійкість шифру і призначені для оптимізації його реалізації. При реалізації в техніці "бітових зрізів" виконання цих перестановок в явному вигляді не потрібно, при традиційній реалізації - потрібно. Крім того, з тієї ж самої причини в алгоритмі використовуються вузли замін малого розміру (4 на 4 біта), тому що в рамках зазначеної техніки вони реалізуються у вигляді серії логічних операцій над даними і при більшому розмірі це стає важко реалізованим [3].

3 Структура алгоритму

Алгоритм являє собою мережу Фейштеля для чотирьох гілок змішаного типу: 2 парні гілки змінюють сумісності значення непарних, потім міняються місцями. Як криптоперетворення використовуються тільки  виключне "АБО", табличні підстановки і бітові зрушення. Алгоритм складається з 32 раундів. Самі раунди складені таким чином, що додавання до гілками матеріалу ключа на першому і останньому раундах утворює вхідне і вихідне забілювання [4].

Алгоритм Serpent являє собою SP-мережа, в якій весь блок даних довжиною 128 біт на кожному раунді розбивається на 4 слова довжиною по 32 біта. Всі значення, що використовуються для шифрування, представляються бітовими потоками. Індекси біт пробігають значення від 0 до 31 для 32-бітових слів, від 0 до 127 для 128-бітових блоків, від 0 до 255 для 256-бітових ключів і так далі. Для внутрішніх обчислень всі біти величин представлені в прямому порядку (little-endian).

  Serpent шифрує відкритий текст P довжиною 128 біт в шифротекст C довжиною 128 біт за 32 раунди за допомогою 33 підключений K_ (0), ..., K_ (32), довжиною 128 біт. Довжина використовуваного ключа може приймати різні значення, але для конкретики зафіксуємо їх довжину у 128, 192 або 256 біт. Короткі ключі довжиною менше 256 біт доповнюються до повної довжини в 256 біт.

Шифрування складається з наступних основних кроків:

Початкова перестановка;

32 раунди, кожен з яких складається з операції змішування з 128-бітовим ключем (побітове логічне що виключає «або»), таблична заміна (S-box) і лінійне перетворення. В останньому раунді лінійне перетворення замінюється додатковим накладанням ключа;

Кінцева перестановка;

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

Рівняння структури алгоритму:



,де

,

де  — це застосування таблиці підстановки  32 рази паралельно и  — лінійне перетворення.

Рис 1. Графічне зображення алгоритму [слайд 3]

3.1 Розшифрування та розширення ключа

Розшифрування відрізняється від шифрування тільки тим, що повинні бути використані інверсні (зворотні) таблиці замін, а також зворотні лінійні перетворення, і ключі подаються у зворотному порядку. Як і інші алгоритми, що брали участь у конкурсі AES, Serpent має можливі довжини ключа 128, 192 або 256 біт. "Неповний» ключ довжиною менше 256 біт доповнюється за наступним правилом: додається одиничний біт праворуч, за ним іде стільки нульових бітів, щоб довжина ключа стала дорівнювати 256 бітам.

3.2 Алгоритм вибору підключів із ключа

Спочату при необхідності ключ доповнюється до 256 біт і перетворюється в 33 підключа  довжиною 128 біт наступним чином:

Оригінальний ключ представляється у вигляді 8 32-бітових слів w − 8,...,w − 1 для обчислення проміжного ключа за правилом: , де  — це дробова частина золотого січення або 0x9e3779b9.

Раундовий ключі обчислюються з проміжних ключів використанням таблиць підстановок наступним чином:

Проміжні 32-бітові величини  перенумеровуються і виходять 128-бітові підключі:

При стандартному описі алгоритму ми повинні застосувати початкову перестановку IP  до раундового ключа, щоб розташувати біти ключа в належному порядку, тобто .

3.3 Перестановка, S-box, лінійне перетворення.

Початкова перестановка IP, задається наступною таблицею, де вказується позиція, на яку перейде відповідний біт (наприклад, біт 1 перейде на 32 позицію).

Рис 2. Таблиця початої перестановки [слайд 4]

В алгоритмі Serpent таблиці замін є 4-бітовими перестановками з властивостями стійкості до диференціального криптоаналізу, до лінійного криптоаналізу і тією  властивістю, що порядок вихідних біт, як функції вхідних повинен бути максимальний, тобто бути рівним 3. Таблиця підстановок генерується з відомих і добре вивчених таблиць для алгоритму DES в ітераційному процесі, поки не будуть отримані бажані диференціальні й лінійні властивості. Таким чином, створюється 8 таблиць підстановок.

Рис. 3 Таблиця підстановки [слайд 4]

Лінійне перетворення LT  задається наступною таблицею, де біти перераховані від 0 до 127 (наприклад, вихідний 2 біт утворений 2, 9, 15, 30, 76, 84, 126 бітами, складеними за модулем 2). У кожному рядку описується 4 вихідних бита, які разом складають вхідні дані на одну таблицю замін у наступному раунді. Варто зазначити, що даний набір являє собою таблицю IP (LT (FP (x))), де LT  і є те лінійне перетворення.

Ця перестановка є зворотною до початкової, тобто і задається наступною таблицею:

Рис. 4  Таблиця початої перестановки [слайд 4]

3.4 Ефективна реалізація

Бажання авторів зробити алгоритм саме таким, яким він є стає зрозумілим при розгляді його ефективної низькорівневою реалізації. Serpent був створений таким чином, щоб всі операції в процесі шифрування й розшифрування одного блоку могли бути виконані паралельно в 32 потоку. До того ж низькорівневе опис алгоритму набагато простіше, ніж стандартне опис. Ніяких початкових і кінцевих перестановок не потрібно. Шифрування складається з 32 раундів. Відкритий текст є першими проміжними даними . Після закінчення 32 раунду, i кожен раунд складається з:

1.Змішування з ключем. Проводиться побітове виключне АБО проміжних даних , з ключем довжиною 128 біт;

2. Застосування таблиць підстановок. Вхідні дані довжиною 128 біт поділяються на 4 слова по 32 біта. Таблиця підстановок, реалізована послідовністю логічних операцій (як якщо це було б реалізовано апаратно), застосовується до цих 4 слів. У результаті виходить 4 вихідних слова. Таким чином, центральний процесор виконує підстановку по 32 копій таблиці одночасно;

3.Лінійне перетворення. 32-бітові слова перетворюються наступним чином







                             [слайд 5]




В останньому раунді це лінійне перетворення замінено додатковим змішуванням з ключем

Першою причиною вибору такого лінійного перетворення є максимізація лавинного ефекту. Такі таблиці підстановок мають властивість, що зміна кожного вхідного біта призведе до зміни 2 вихідних бітів. Таким чином, кожен вхідний біт відкритого тексту вже через 3 раунду впливає на всі вихідні біти. Аналогічно кожен біт ключа впливає на результат шифрування. Друга причина полягає в простоті перетворення. Воно може бути реалізовано на будь-якому сучасному процесорі з мінімальними витратами.

Список використаних джерел

  1.  http://kiev-security.org.ua/box/1/56.shtml
  2.  http://kiwibyrd.chat.ru/aes/aes1.htm
  3.  http://www.enlight.ru/crypto/algorithms/serpent/serpent00.htm
  4.  книжка лекції
  5.  Article “Serpent: A Proposal for the Advanced Encryption Standard” - . Ross Anderson, Eli Biham, Lars Knudsen

Контрольні питання позавтра придумаю


Рекомендую одразу поставити собі
MathType6.6 (є у файлообміннику курсу і набирати формули а не картинки, на лекції покажу як правильно вставляти в wiki.tstu.edu.ua)


 

А также другие работы, которые могут Вас заинтересовать

11370. АНКСИОЛИТИКИ (ТРАНКВИЛИЗАТОРЫ) 79 KB
  I. ВВЕДЕНИЕ Термин – 1810 год. Трр = успокоитель франц. Группа в 1950е – мепробамат. Клиническое использование 1960г. – бензадиазепины. Применяются при невротических и неврозоподобных систояниях. Анксиолитики от латинского anxietes – страх тревожное состояние; Ата...
11371. Средства, возбуждающие ЦНС 114.5 KB
  Средства возбуждающие ЦНС. Введение Лекарственные вещества возбуждающие ЦНС можно разделить на несколько групп: Психостимуляторы Ноо..
11372. Пути проведения боли. Анальгетики 132 KB
  ВВЕДЕНИЕ. Боль играет в организме как положительную так и отрицательную роль. Боль – сигнал об опасности; это команда к функциональной перестройке организма от состояния покоя к состоянию активной деятельности направленной на устранение фактора вызывающ
11373. СЕРДЕЧНО - СОСУДИСТАЯ СИСТЕМА 118.5 KB
  ЛЕКЦИЯ Тема.СЕРДЕЧНО СОСУДИСТАЯ СИСТЕМА СанктПетербург Сосуды и сердце мышечные органы. Для сокращения мышц необходимы Са. Са обеспечивает работу сердца суживает сосуды повышает АД. Большинство ССЗ связано с повышенной работой ССС и требуетпо...
11374. АНТИАРИТМИЧЕСКИЕ СРЕДСТВА. Проводящая система сердца (ПС) 97 KB
  АНТИАРИТМИЧЕСКИЕ СРЕДСТВА I Аритмии нарушение ритма сердечных сокращений. Ритмичная активность сердца зависит от работы проводящей системы сердца от биохимических процессов которые происходят в миокарде от кровоснабжения сердца от эфф
11375. АНТИАНГИНАЛЬНЫЕ СРЕДСТВА. Классификация антиангинальных средств 131.5 KB
  АНТИАНГИНАЛЬНЫЕ СРЕДСТВА Антиангинальные средства antianginalia; греч. anti против лат. angina pectoris – грудная жаба лекарственные средства применяемые для купирования и предупреждения приступов стенокардии и лечения других проявлений коронарной недоста...
11376. Антиатеросклеротические средства 43 KB
  Антиатеросклеротические средства I. Атеросклероз хроническое заболевание поражающее артерии которое характеризуется образованием атеросклеротических бляшек во внутренних оболочках сосудов. Это приводит к прогрессирующему сужению просвета артерии вплоть до полн...
11377. ГИПЕРТЕНЗИВНЫЕ СРЕДСТВА 30.5 KB
  ГИПЕРТЕНЗИВНЫЕ СРЕДСТВА Гипотензия может быть острой и хронической. При оказании помощи при острой гипотензии необходимо учитывать причину патологического состояния. Гипотония может быть результатом: а нарушения сердечной деятельности острая сердечная недостат...
11378. ГИПЕРТОНИЯ, АНТИГИПЕРТЕНЗИВНЫЕ СРЕДСТВА 103.5 KB
  В зависимости от этиологии гипертонию подразделяют на два типа:первичную и вторичную симптоматическую. симптоматическая гипертония симптом заболевания какоголибооргана: почек эндокринных желез сосудов сердца ЦНС... Лечат основ...