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)


 

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

47296. Интерполяция, экстраполяция и аппроксимация данных 1.4 MB
  Тема проекта Выполнить расчеты связанные с обработкой экспериментальных данных методами интерполяции экстраполяции и аппроксимации в математической системе Mthcd и Microsoft Ecxel. Описание используемых функций табличного процессора Microsoft Excel и Mthcd. Реализация заданий по обработке экспериментальных данных методами интерполяции экстраполяции и аппроксимации в математической системе Mthcd
47297. Расчет привода с червячным одноступенчатым редуктором электродвигателя марки 4А132S4 914.11 KB
  Технический уровень всех отраслей народного хозяйства в значительной мере определяется уровнем развития машиностроения. На основе развития машиностроения осуществляется комплексная механизация и автоматизация производственных процессов в промышленности, строительстве, сельском хозяйстве, на транспорте.
47298. Дизайн інтер’єру футбольного кафе «Сокер» Вул.Федорова7 44.8 MB
  3 Виникнення спорткафе та його значення в суспільстві. Футбольна тематика у створенні кафе. Вітчизняний і закордонний досвід у проектува нні футбольних кафе.
47299. Исследование института авторских прав в российском гражданском праве 97.32 KB
  Первооткрывателем в сфере авторского права стала Великобритания где в 1710 г. Однако практическая реализация указанных прав и обеспечение их эффективной охраны в некоторых случаях зависят от добросовестности лиц обладающих субъективными правами на произведения науки литературы и искусства. Систематизация законодательства об авторских и смежных правах и об интеллектуальной собственности в целом в том числе норм об обязательствах позволила исключить некоторые противоречия например между законодательством о произведениях и программах для...
47300. Электроснабжение района города и развивающегося промышленного предприятия 8.61 MB
  Проверка выбранных кабелей по потерям напряжения. Проверка кабелей 10 кВ по нагреву в послеаварийном режиме и допустимым потерям напряжения.3 Проверка кабелей 10 кВ по допустимым потерям напряжения. Проверка кабелей 10 кВ по нагреву в послеаварийном режиме и допустимым потерям напряжения.
47301. Контроль знаний и умений учащихся по математике в школе 390 KB
  Проблема контроля за учебной деятельностью учащихся не нова, и педагогический опыт накопленный в этой области богат и разносторонен. В этой работе систематизированы накопленные сведения по проблеме контроля знаний учащихся. Эта система сведений применена при изучении темы “Тела вращения”
47302. Качество напряжения на электроприемниках жилых и общественных зданий микрорайона 2.33 MB
  Объектом электроснабжения является район города, состоящий из двух микрорайонов и располагающийся в г. Казань. Все потребители электроэнергии в заданном районе условно можно разделить на две группы: жилые дома и общественно-коммунальные учреждения. В состав района входят электроприемники, относящиеся к I категории надежности электроснабжения. Это лифтовые установки, аварийное освещение и системы противопожарной безопасности в 25-этажных жилых домах.
47303. Теория и методика преподавания иностранных языков и культур 125.5 KB
  Методическое пособие по подготовке и защите выпускной квалификационной работы для студентов специальностей 031201. кандидат педагогических наук Челябинск 2008 НАЗНАЧЕНИЕ ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЫ ОБЩИЕ ТРЕБОВАНИЯ ПО СОДЕРЖАНИЮ РАБОТЫ Одним из видов итоговой аттестации выпускника специальностей ТИМ и Перевод и переводоведение является защита выпускной квалификационной работы которая выполняется в форме дипломной работы. Написание дипломной работы имеет целью: систематизацию закрепление и расширение...
47304. Промышленное и гражданское строительство 404 KB
  Методические указания разработаны с учетом содержания учебного плана ГОУ ВПО ТюмГАСУ составленного на основании Государственного образовательного стандарта высшего и профессионального образования требований кафедры СПОФ и смежных кафедр к содержанию и объему соответствующих разделов дипломного проекта для студентов очной и заочной форм обучения специальности 270102 Промышленное и гражданское строительство.3 Методика работы над дипломным проектом. 7 2 Разработка отдельных разделов дипломного проекта.2 Вариантное...