Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН
Некоммерческое акционерное общество
«Алматинский университет энергетики и связи»
РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА №1
По теме: Алгоритм шифрования E2
Выполнил:
ст. группы СИБ-11-02
Салимжанов Даурен
Проверил:
ст. преподаватель
Алматы 2013
Содержание
Ведение
Шифрова́ние обратимое преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованнымпользователям доступа к ней. Главным образом, шифрование служит задачей соблюдения конфиденциальности передаваемой информации. Важной особенностью любого алгоритма шифрования является использование ключа, который утверждает выбор конкретного преобразования из совокупности возможных для данного алгоритма.[1][2]
Пользователи являются авторизованными, если они обладают определенным аутентичным ключом. Вся сложность и, собственно, задача шифрования состоит в том, как именно реализован этот процесс.[1]
В целом, шифрование состоит из двух составляющих зашифрование и расшифрование.
С помощью шифрования обеспечиваются три состояния безопасности информации:[1]
Шифрование используется для сокрытия информации от неавторизованных пользователей при передаче или при хранении.
Шифрование используется для предотвращения изменения информации при передаче или хранении.
Шифрование используется для аутентификации источника информации и предотвращения отказа отправителя информации от того факта, что данные были отправлены именно им.
Для того чтобы прочитать зашифрованную информацию, принимающей стороне необходимы ключ и дешифратор (устройство реализующее алгоритм расшифровывания). Идея шифрования состоит в том, что злоумышленник, перехватив зашифрованные данные и не имея к ним ключа, не может ни прочитать, ни изменить передаваемую информацию. Кроме того, в современных криптосистемах (с открытым ключом) для шифрования, расшифрования данных могут использоваться разные ключи. Однако, с развитием криптоанализа, появились методики позволяющие дешифровать закрытый текст не имея ключа, они основаны на математическом анализе перехваченных данных.
Шифрование применяется для хранения важной информации в ненадёжных источниках и передачи её по незащищенным каналам связи. Такая передача данных представляет из себя два взаимно обратных процесса:
Шифрование изначально использовалось только для передачи конфиденциальной информации. Однако, впоследствии, шифровать информацию начали с целью ее хранения в ненадежных источниках. Шифрование информации с целью ее хранения применяется и сейчас, это позволяет избежать необходимости в физически защищенном хранилище.[4][5]
Шифром называется пара алгоритмов, реализующих каждое из указанных преобразований. Эти алгоритмы применяются над данными с использованием ключа. Ключи для шифрования и для расшифровывания могут отличаться, а могут быть одинаковыми. Секретность второго(расшифровывающего) из них делает данные недоступными для несанкционированного ознакомления, а секретность первого (шифрующего) делает невозможным навязывание ложных данных. В первых методах шифрования использовались одинаковые ключи, однако в 1976 году были открыты алгоритмы с применением разных ключей. Сохранение этих ключей в секретности и правильное их разделение между адресатами является очень важной задачей с точки зрения сохранения конфиденциальности передаваемой информации. Эта задача исследуется в теории управления ключами (в некоторых источниках она упоминается как разделение секрета).
В настоящий момент существует огромное количество методов шифрования. Главным образом эти методы делятся, в зависимости от структуры используемых ключей, на симметричные методы и асимметричные методы. Кроме того методы шифрования могут обладать различной криптостойкостью и по разному обрабатывать входные данные блочные шифры и поточные шифры. Всеми этими методами их созданием и анализом занимается наука криптография.
Алгоритм Шифрования Е2
E2 - в криптографии семейство симметричных блочных криптоалгоритмов на основе ячейки Фейстеля. E2 использует блок размером 128 бит и ключи длиной 128, 162, 256 бит. Создан в компании NTT (Nippon Telegraph and Telephone) в 1998 году и был представлен на AES конкурсе. Наследником данного шифра является шифр Camellia, который также является результатом творчества компании NTT (Nippon Telegraph and Telephone).
ИСТОРИЯ
Шифр E2, созданный компанией NTT, был представлен на конкурсе AES вместе с другими четырнадцатью шифрами. E2 прошел тест на криптостойкость успешно. Стойкость шифра E2 не повлияла на его быстродействие. E2 занял одну из лидирующих позиций как в соревновании на скорость шифрования/расшифрования, так и в быстроте формирования ключей. В частности, реализация шифра E2 (компилятор Borland) показала скорость шифрования/расшифрования 26 Мбит/сек. Впрочем, скорость свыше 25 Мбит/сек была показана и пятью другими лидерами. Несмотря на то, что показатели шифра менялись в зависимости от компилятора, платформы и логики, общая тенденция оставалась неизменной. Большинство авторов, писавших о конкурсе AES, утверждают, что E2 наряду с некоторыми другими шифрами успешно прошел первый круг. Однако E2 не попал в финал в пятерку лучших шифров. НИСТ было отмечено, что несмотря на хорошие показатели скорости и отсутствиеуязвимостей, требования к энергонезависимой памяти слишком высоки (аналогично пострадал и CAST-256)
Алгоритм шифрования
Работу алгоритма шифрования можно разделить на три основные части: IT-функция, или преобразователь начальных данных (англ. initial transformation (IT)), ячейка Фейстеля на базе F-функции, повторяющаяся 12 раз, и FT-функция, или преобразователь конечных данных (англ. finale transformation (FT)). Блок алгоритма, отвечающий за планировку ключей (англ. key sheduling part), до начала шифрования из секретного ключа К создает шестнадцать подключей {k1,..k16}, каждый из которых является 128-разрядным битовым вектором (элементом поля Галуа(2^128)). Первое преобразование открытого текста M производится с помощью IT-функции и двух сгенерированных ключей под номерами 13 и 14( и )
M=IT(M,,)
M` разбивается на два блока и равной длины, каждый из элементов и является битовым вектором размерностью 64 бита. Затем выполняются 12 циклов преобразований в ячейке Фейстеля, в которой правый блок на текущей итерации цикла определяется сложением по модулю два левой части предыдущей итерации цикла и результата функции F, аргументами которой являются правая часть предыдущей итерации и ключ , а левому блоку на r шаге цикла присваивается значение правого блока на r-1 шаге. Цикл повторяется 12 раз, то есть r изменяется от 1 до 12
=
= .
Финальный этап шифрования - выполнение FT-функции. Результат FT-функции, аргументами которой являются конкатенация правой и левой частей на выходе 12 итерации ячейки Фейстеля и ключи :
`
Алгоритм расшифрования
Расшифрование происходит по схеме, аналогичной шифрованию. Работу алгоритма расшифрования, можно разделить на три основные части: IT-функция (начальное преобразование - англ. initial information (IT)), 12 циклов ячейки Фейстеля с F-функцией и в конце FT-функция (англ. finale transformation (FT)). Блок алгоритма, отвечающий за планировку ключей (англ. key sheduling), изсекретного ключа непосредственно перед шифрованием генерирует 16 подключей {}, которые являютсябитовыми векторами размерностью 128 (элементом поля Галуа GF(2^128)). На первом этапе происходит выполнение IT-функции, аргументами которой являются криптограмма С и два подключа
`
Результат IT-функции C` разбивается на 2 равные части по 64 бита(половина блока): правую и левую (). Далее выполняются 12 циклов ячейки Фейстеля на базе F-Функции ( меняется от 12 до 1).
По завершении последнего цикла ячейки Фейстеля осуществляется конкатенация половинок блока (). И в конце - финальное преобразование: выполняется FT-функция, аргументами которой являются результат конкатенации ` и два ключа . Результатом выполнения FT-функции является открытый текст .
Генератор Ключей
На основе секретного ключа ( {} имеет размерность половины блока, то есть 64 бита и является аргументом для функций шифрования и расшифрования) генерируются подключи {i=1;2...16} (битовые вектораразмерности 128 ) с помощью G-функции и S-функции. Процедура генерации ключей остается почти неизменной, если длина секретного ключа равна 128, 192 или 256 бит. Если заданная длина 128 бит, в качестве значений выбираются константы следующим образом: , . Если длина ключа 192 бита, значение ключа - , где S() - S-функция.
Элементарные функции
F-функция
BRS(),S(),P() - соответственно BRS-функция, S-функция, P-функция; X,Y - слова двоичного алфавита размерностью 64 бита (половина блока); - ключи размерностью 128 бит каждый. H - пространство размерности 64 бита.
Суть F-функции - преобразование слов бинарного алфавита размерности 64 бита при заданном ключе размерности 128 бит. Результат преобразования - слово бинарного алфавита размерности 64 бита.
IT-функция или преобразователь начальных данных:
H - пространство слов бинарного алфавита размерности 64 бит; X,A,B - бинарные слова размерности 128 бит; BP() - BP-функция; - бинарная операция.
FT-функция или преобразователь конечных данных:
.
H - пространство слов бинарного алфавита размерности 64 бит; X,A,B - бинарные слова размерности 128 бит; () - функция, обратная BP-функции; - бинарная операция de.
FT-функция - это функция, обратная IT-функции:
.
BRL-функция(англ. byte rotate left function), или циклический сдвиг влево, - составляющая часть F-функции:
{} - бинарное слово размерности 8 бит(байт) или, иными словами, элемент поля Галуа .
S-функция - часть F-функции, которая определяется s-box:
.
P-функция - составляющая часть F-функции
P - матрица преобразования описывающая P-функцию
f-функция необходима для вычисления G-функции. f-функция определяется следующим образом:
, где
P() - P-функция, S() - S-функция.
Бинарный оператор определяется следующим образом:
, где
- логическое побитовое сложение (логическое "или") с 1 в кольце .
Бинарный оператор de определяется следующим образом:
, где
- логическое побитовое сложение (логическое "или") с 1 в кольце .
BP- функция, или функция перестановки байтов (англ. byte permutation), является частью IT-функции и FT - функции. Она определяется следующим образом:
,где
.
Обратное к BP - преобразованию, или BP^{-1}, вычисляется следующим образом:
,где
Криптоанализ алгоритма
Сотрудниками компании Information Technology R&D Center Mitsubishi Electric Corporation Мицуру Мацуи (Mitsuru Matsui) и Тосио Токита (Toshio Tokita) была обнаружена нестойкость шифра к дифференциальному криптоанализу. Несмотря на это шифр (использующий 12 циклов шифрования) остается стойким с практической точки зрения. Хотя Мицуру Мацуи и Тосио Токита удалось показать, что уровень безопасность шифра E2 с меньшим числом циклов шифрования существенно ниже того, что заявлено разработчиками. Дифференциальный криптоанализ метод криптоанализа симметричных блочных шифров (и других криптографических примитивов, в частности, хэш-функций ипоточных шифров). Шифр простой замены легко вскрывается с помощью частотного анализа, так как не меняет частоты использования символов в сообщении.
Однозвучные шифры сложнее для вскрытия, хотя они и не скрывают всех статистических свойств текста.
Многоалфавитные шифры шифруют каждый символ с помощью некоторого одноалфавитного шифра. Стойкость такого шифра сильно зависит от количества используемых шифров простой замены. Но при использовании компьютера криптоаналитик не испытает трудностей при вскрытии.
Список литературы
1. Брюс Шнайер. Прикладная криптография 2-е издание
2. www.ssl.stu.neva.ru/psw/crypto/algorithms.html
3. П.А. Анохин. Анализ обобщения Алгоритма Е2