Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Схемы шифрования AES, RC4, RC5, RC6, Twofish, Mars

Название: Схемы шифрования AES, RC4, RC5, RC6, Twofish, Mars
Раздел: Рефераты по информатике, программированию
Тип: реферат Добавлен 18:31:20 15 ноября 2009 Похожие работы
Просмотров: 3037 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Федеральное агентство по образованию

Пензенский Государственный Университет

Кафедра «Информационная безопасность систем и технологий»

Реферат

на тему: «Схемы шифрования AES, RC4, RC5, RC6, Twofish, Mars»

Дисциплина: КМЗИ

Группа:

Выполнил:Принял:

Пенза 2006


Содержание

1. Алгоритм шифрования AES

2. Алгоритм шифрования MARS

3. Алгоритм шифрования RC4

4. Алгоритм шифрования RC5

5. Алгоритм шифрования RC6

6. Алгоритм шифрования Twofish

Список использованных источников


1. Алгоритм шифрования AES

Алгоритм DES (Data Encryption Standard), разработанный корпорацией IBM и являвшийся с 1977 федеральным стандартом шифрования данных США, использовался для шифрования не только правительством США, но и получил широкое распространение по всему миру среди частных пользователей. С ростом вычислительной мощности компьютеров стали возникать вопросы о криптостойкости DES'a перед вскрытием методом "грубой силы", но стандарт успешно проходил повторные сертификации, проводившиеся в 1983, 1988 и 1993. Хотя к середине 90х годов стало очевидным несоответствие общепринятого стандарта шифрования DES (Data Encryption Standard) современным требованиям. В первую очередь из-за недостаточной длины ключа всего в 56 бит. По данным Брюса Шнайера уже в 1993 году существовали устройства способные вскрыть DES за приемлемое время.

Процесс разработки нового федерального информационного стандарта (FIPS) для шифрования данных Advanced Encryption Standard (AES) был инициирован Национальным Институтом стандартов и технологий (NIST).

В начале января 1997 года NIST объявил о начале разработки AES, выпустив документ "Announcing development of a federal information processing standard for advanced encryption standard", содержащий первичные требования к алгоритму. [2]

Алгоритм шифрования AES должен быть открыто опубликован.

Алгоритм должен быть симметричным блочным шифром.

AES должен предусматривать возможность увеличения длины ключа.

AES должен быть легко реализуем и аппаратной и программно.

AES должен распространяться бесплатно или быть общедоступным в рамках патентов ANSI.

В сентябре 1997 года вышел уточняющий документ "Call for AES Candidate Algorithms", объявлявший о проведении конкурса на AES и содержащий официальные требования к кандидатам. В частности алгоритм должен поддерживать следующие комбинации длин блока и ключа 128-128, 128-192 и 128-256 битов. К 15 июню 1998 году был заявлен 21 криптографический алгоритм, но только 15 из которых удовлетворяли первоначальным требованиям. [3]

Страна происхождения Алгоритм Авторы
Australia LOKI97 Lawrie Brown, Josef Pieprzyk, Jennifer Seberry
Belgium RIJNDAEL Joan Daemen, Vincent Rijmen
Canada CAST-256 Entrust Technologies, Inc
DEAL Richard Outerbridge, Lars Knudsen
Costa Rica FROG TecApro Internacional S.A.
France DFC Centre National pour la Recherche Scientifique
Germany MAGENTA Deutsche Telekom AG
Japan E2 Nippon Telegraph and Telephone Corporation
Korea CRYPTON Future Systems, Inc
USA HPC Rich Schroeppel
MARS IBM
RC6 RSA Laboratories
SAFER+ Cylink Corporation
TWOFISH Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson
UK, Israel, Norway SERPENT Ross Anderson, Eli Biham, Lars Knudsen

В конце августа 1998 года в Калифорнии состоялась конференция, посвященная отбору кандидатов на AES, получившая название AES1. На конференции давались краткие описания алгоритмов шифрования, и были даны ответы на накопленные вопросы.

В качестве основных критериев оценки алгоритмов были [3]:

- Криптостойкость. Проводилось сравнение алгоритмов на степень независимости выходного блока от случайной перестановки битов входного блока, подверженность известным криптоатакам. Каждый кандидат должен был представить оценочную криптостойкость алгоритма.

-Стоимость. Кандидат предоставлял информацию о лицензионных соглашениях и патентах на алгоритм. Также учитывалась производительность алгоритма (скорость шифрования), необходимый для шифрования размер памяти.

-Особенности алгоритма и его реализации. Гибкость, аппаратное и программное удобство реализации.

В апреле 1999 года в Риме состоялась конференция AES2, в рамках которой проводились сравнение производительности программных реализаций алгоритмов с оптимизациями под языки С и Java. Наибольшую скорость шифрования/дешифрования показал алгоритм Crypton (40 Мбайт/с), наименьшую Magenta и НРС (2Мбайт/с). Хотя при проведении тестов на разных платформах и с различными компиляторами, полученные результаты довольно сильно различались. Все блочные алгоритмы можно разбить на две основные группы:

использующие сети Фейстеля

сети перестановок-подстановок (SP-сети) основанные на последовательных перестановках и подстановках, зависящих от ключа.

Среди алгоритмов-претендентов к первым относятся CAST-256, DEAL, DFC, E2, LOKI97, MAGENTA, MARS, RC6, TWOFISH, ко вторым CRYPTON, Rijndael, SAFER+ и SERPENT. Алгоритмы FROG и НРС не подпадали ни под одну из категорий, но входе обсуждения кандидатов не выявлено каких-либо выдающихся качеств данных алгоритмов.

В результате первичного обсуждения была выявлена слабая криптостойкость алгоритма MAGENTA, вскоре появились данные по криптоанализу алгоритмов FROG, LOKI, показывающие слабости алгоритмов относительно других алгоритмов. Также часть алгоритмов имели низкие шансы на успех из-за крайне малой скорости шифрования/дешифрования.

Отбор финалистов по названным критериям продолжался до начала августа 1999г.

9августа NIST выпустила пресс-релиз "Announces AES Finalists", в котором объявлялось о пяти финалистах: MARS, RC6, Rijndael, Serpent, TwoFish.

Rijndael

Формат блоков данных и число раундов

RIJNDAEL - это симметричный блочный шифр, оперирующий блоками данных размером 128 и длиной ключа 128, 192 или 256 бит - название стандарта соответственно "AES-128", "AES-192", и "AES-256".

Введем следующие обозначения:

Nb — число 32-битных слов содержащихся во входном блоке, Nb - 4;

Nk - число 32-битных слов содержащихся в ключе шифрования, Nk = 4,6,8;

Nr - число раундов шифрования, как функция от Nb и Nk, Nr = 10,12,14.

Входные (input), промежуточные (state) и выходные (output) результаты преобразований, выполняемых в рамках криптоалгоритма, называются состояниями (State). Состояние можно представить в виде матрицы 4 х Nb, элементами которой являются байты (четыре строки по Nb байт) в порядке S00,S10,S20,S30,Sm,Sn,S21,S31,---. Рисунок 1.1 демонстрирует такое представление, носящее название архитектуры «Квадрат».

Рисунок 1.1 «Пример представления блока в виде матрицы 4xNb».

На старте процессов шифрования и дешифрования массив входных данных то, щ, ..., щ 5 преобразуется в массив State по правилу s[r,c] = in[r + 4c], где 0<г<4 и 0 < с < Nb. В конце действия алгоритма выполняется обратное преобразование out[r + 4c] = s[r,c], где 0<г<4 и 0<c<Nb - выходные данные получаются из байтов состояния в том же порядке.

Четыре байта в каждом столбце состояния представляют собой 32-битное слово, если г - номер строки в состоянии, то одновременно он является индексом каждого байта в этом слове. Следовательно состояние можно представить как одномерный массив 32-битных слов wo,...,wN , где номер столбца состояния с есть индекс в этом массиве. Тогда состояние можно представить так:

Ключ шифрования также как и массив State представляется в виде прямоугольного массива с четырьмя строками. Число столбцов этого массива равно Nk.

Для алгоритма AES число раундов Nr определяется на старте в зависимости от значения Ж (Таблица 1.1):

Nk Nb Nr
AES-128 4 4 10
AES-192 6 4 12
AES - 256 8 4 14

Таблица 1.1 «Зависимость значения Nr от Nk и Nb »

Функция зашифрования

Введем следующие обозначения:

SubBytes() - замена байтов- побайтовая нелинейная подстановка в State-блоках (S-Вох) с использованием фиксированной таблицы замен размерностью 8x256 (affain map table);

ShiftRows() - сдвиг строк - циклический сдвиг строк массива State на различное количество байт;

MixColumns() - перемешивание столбцов - умножение столбцов состояния, рассматриваемых как многочлены над GF(28);

AddRoundKey() - сложение с раундовым ключом - поразрядное XOR содержимого State с текущим фрагментом развернутого ключа.

На псевдокоде операция зашифрования выглядит следующим образом:

Рисунок 1.2 «Операция зашифрования, реализованная на псевдокоде»

После заполнения массива State элементами входных данных к нему применяется преобразование AddRoundKeyQ, далее, в зависимости от величины Nk, массив State подвергается трансформации раундовой 10, 12 или 14 раз, причем в финальный раунд является несколько укороченным - в нем отсутствует преобразование MixColumnsQ. Выходными данными описанной последовательности операций является шифротекст - результат действия функции зашифрования AES.

Функции расшифрования

В спецификации алгоритма AES предлагаются два вида реализаций функции расшифрования отличающихся друг от друга последовательностью приложения преобразований обратных преобразованиям функции зашифрования и последовательностью планирования ключей (см. ниже).

Введем следующие обозначения:

InvSubBytes() — обратная SubBytes() замена байтов- побайтовая нелинейная подстановка в SWe-блоках с использованием фиксированной таблицы замен размерностью 8x256 (inverse affain map);

InvShiftRows() — обратный сдвиг строк ShiftRows()— циклический сдвиг строк массива State на различное количество байт;

InvMixColumns() - восстановление значений столбцов - умножение столбцов состояния, рассматриваемых как многочлены над GF(28);

Функция обратного расшифрования

Если вместо SubBytes{), ShiftRows{ ), MixColumns{) и AddRoundKey{) в обратной последовательности выполнить инверсные им преобразования, можно построить функцию обратного расшифрования. При этом порядок использования раундовых ключей является обратным по отношению к тому, который используется при зашифровании. На псевдокоде она выглядит так:

Рисунок 1.3 «Операция обратного расшифрования реализованная на псевдокоде»

Функция прямого расшифрования


Рисунок 1.4 «Операция прямого расшифрования реализованная на псевдокоде»

Алгоритм обратного расшифрования, описанный выше имеет порядок приложения операций-функций обратный порядку операций в алгоритме прямого зашифрования, но использует те же параметры развёрнутого ключа. Изменив определенным образом после- довательность планирования ключа можно построить еще один алгоритм - алгоритм прямого расшифрования (Рисунок 3.4).

Два следующих свойства позволяют сделать это:

Порядок приложения функций SubBytes() и ShiftRows() не играет роли. То же са мое верно и для операций InvSubBytes() и InvShiftRows(). Это происходит потому, что функции SubBytes() и InvSubBytes() работают с байтами , а операции ShiftRows() и InvShiftRows() сдвигают целые байты, не затрагивая их значений.

Операция MixColumns() является линейной относительно входных данных, что означает InvMixColumns(State XOR RoundKey) = = InvMixColumns(State) XOR InvMixColumns(RoundKey)

Эти свойства функций алгоритма шифрования позволяют изменить порядок применения функций InvSubBytes() и InvShiftRows(). Функции AddRounKey() и InvMixCol-umns() также могут быть применены в обратном порядке, но при условии, что столбцы (32-битные слова) развёрнутого ключа расшифрования предварительно пропущены через функцию InvMixColumns().

Таким образом, можно реализовать более эффективный способ расшифрования с тем же порядком приложения функций как и в алгоритме зашифрования.

Алгоритм выработки ключей (Key Schedule)

Введем следующие обозначения: Rconf] - массив 32-битных раундовых констант;

RotWord() — операция циклической перестановки входного 4-байтного слова в выходное по следующему правилу [а0, ai, а2, а3 ] —> [ах, а2, а3, а0 ];

SubWord() - операция замены в 4-байтном слове с помощью S-Box каждого байта;

Å - операция исключающего или XOR.

Рисунок 1.5 «Операция планирования (расширения) ключа реализованная на псевдокоде»


Раундовые ключи получаются из ключа шифрования посредством алгоритма выработки ключей. Он содержит два компонента: расширение ключа (Key Expansion) и выбор раундового ключа (Round Key Selection). Основополагающие принципы алгоритма выглядят следующим образом:

общее число битов раундовых ключей равно длине блока, умноженной на число раундов, плюс 1;

ключ шифрования расширяется в расширенный ключ (Expanded Key);

раундовые ключи берутся из расширенного ключа следующим образом: первый раундовый ключ содержит первые Nb слов, второй - следующие Nb слов и т. д.

Расширение (планирование) ключа

Расширенный ключ (Рисунок 3.6) представляет собой линейный массив w[i] состоящий из A(Nr +1) 4-байтовых слов, i = О,4(Nr +1).

Рисунок 1.6 «Процедуры расширения и выборки раундового ключа для Nk = 4».

Светло-серым цветом выделены слова расширенного ключа, которые формируются без использования функций SubWord() и RotWord().

Темно-серым цветом ,выделены слова расширенного ключа, при вычислении которых используются преобразования SubWord() и RotWord())»

Первые Nk слов содержат ключ шифрования. Каждое последующее слово w[i] получается посредством XOR предыдущего слова w[i-1] и слова на Nk позиций ранее:

w[i- Nk]: w[i]= w[i-1] Åw[i- Nk].

Для слов, позиция которых кратна Nk, перед XOR применяется преобразование к w[i-1], а затем еще прибавляется раундовая константа Rcon[i] . Преобразование реализуется с помощью двух дополнительных функций: RotWord() и SubWord().

Значение Rcon[j] равно 2j-1 . Значение w[i] в этом случае определяется выражением: w[i] = SubWord(RotWord(w[i-1]) Å Rcon[i/Nk] Å M[i-Nk].

Выбор раундового ключа i-тый раундовый ключ выбирается из слов массива расширенного ключа в промежутке от W[Nb * i] до W[Nb * (i+1)].

Для функции зашифрования расширенный ключ генерируется алгоритмом Рисунок 1.5. Для функции обратного расшифрования используется этот же ключ, но в обратной последовательности начиная с последнего раундового подключа зашифрования.

Для функции прямого расшифрования используется несколько модифицированный алгоритм планирования ключа. При формировании развёрнутого ключа в процедуру планирования необходимо добавить в конце дополнительное преобразование (Рисунок 3.7), причем расширенный ключ используется при прямом расшифровании в той же последовательности, что и при зашифровании.

Рисунок 1.7 «Дополнительное преобразование расширенного ключа для функции прямого расшифрования»

Раундовое преобразование

Раундовое преобразование состоит из последовательного применения к массиву State ряда трансформаций.. Сейчас обсудим детали его реализации.

Нелинейная замена байтов массива состояния посредством трансформации SubBytesQ имеет вид:

Многократное вычисление в процессе зашифрования данного выражения оказывало бы неоправданную вычислительную нагрузку на исполняющую систему, поэтому для практической реализации наиболее приемлемым решением является использование предварительно вычисленной таблицы замены S-Box. Логика работы S-Box при преобразовании байта {ху} отражена в шестнадцатеричном виде на Рисунке 1.8:

Рисунок 1.8 «Таблица S-Box замены байт»

Ее использование сводит операцию SubBytesQ к простейшей выборке байта из массива λ(f) = Sbox[f].

В функциях расшифрования применяется операция обратная InvSub-Bytes().

Она реализуется так же просто, как и предыдущая посредством инверсной таблицы S-Box – λ-1(f) = InvSbox[f]., ее логика работы при преобразовании байта {ху} отражена в шестнадцатеричном виде на Рисунке 1.9

Рисунок 1.9 «Таблица S-Box инверсной замены байт»

Рисунок 1.10 иллюстрирует применение преобразования замены байт к состоянию в функциях зашифрования и расшифрования:

Рисунок 1.10 «Преобразование состояния посредством таблицы замены S-Box»

В преобразовании сдвига строк (ShiftRows) последние 3 строки состояния циклически сдвигаются ВЛЕВО на различное число байтов. Строка 1 сдвигается на С1 байт, строка 2 - на С2 байт, и строка 3 - на Сз байт. Значения сдвигов С1, С2 и С3 в Rijndael зависят от длины блока Nb .

Рисунок 1.11 «Преобразование сдвига строк в функции зашифрования»

В преобразовании обратного сдвига строк InvShiftRows последние 3 строки состояния циклически сдвигаются ВПРАВО на различное число байтов. Строка 1 сдвигается на С1байт, строка 2 - на С2 байт, и строка 3 - на С3 байт.

Перемешивание столбцов

В преобразовании перемешивания столбцов (MixColumns) столбцы состояния рассматриваются как многочлены над GF(2S) и подвергаются преобразованию /j,(g) = с * gmod(Y4 +1), где с = (Х,1,1,Х +1), т.е умножаются по модулю х4 + 1 на многочлен с(х), выглядящий, как: с(х) = {03}х3 + {01}х2 + {01}х + {02}.

Это преобразование может быть представлено в матричном виде следующим образом:

Применение этой операции ко всем четырем столбцам состояния обозначается, как MixColumns(State). Рисунок 1.13 демонстрирует применение преобразования MixColumnsQ к столбцу состояния.


Рисунок 1.13. «Операция перемешивания действует на столбцы состояния»

В обратном преобразовании InvMixColumnsQ столбцы состояния рассматриваются как многочлены над GF(2S), но, естественно, подвергаются обратному преобразованию v(g) = ^-1(g) = d-gmod(Y4+l), где d = (Х3+Х2 + Х,Х3+l,X3+X2+l,X3+X + 1), т.е умножаются по модулю х4 + 1 на многочлен d(x), выглядящий следующим образом: d(x) = {Ob}x3 + {0d}x2 + {09}х + {0e}.

Это может быть представлено в матричном виде следующим образом:

Добавление раундового ключа AddRoundKey()

В данной операции раундовый ключ добавляется к состоянию посредством поразрядного XOR. Длина ключа (в 32-разрядных словах) равна длине блока Nb .

Рисунок 1.14 иллюстрирует действие данной операции на состояние. Это преобразование обозначается как AddRoundKey(State, RoundKey).

Основные особенности AES

В заключении сформулируем основные особенности AES:

новая архитектура «Квадрат», обеспечивающая быстрое рассеивание и перемеши вание информации, при этом за один раунд преобразованию подвергается весь входной блок;

байт-ориентированная структура, удобная для реализация на 8-разрядных микро контроллерах;

• все раундовые преобразования суть операции в конечных полях, допускающие эффективную аппаратную и программную реализацию на различных платформах

2. Алгоритм шифрования MARS

Коропорация IBM, создавшая DES, представила алгоритм MARS, обладающий как хорошей криптостойкостью так и высокой скоростью шифрования.

Процесс шифрования состоит из трех стадий: прямого и обратного перемешивания, которые оборачивают шифрование и состоят из 8 раундов, и 16 раундового шифрования. Обратное перемешивание производят для более быстрого достижение лавинного эффекта и нарушения симметричности при перемешивании. Стадии прямого и обратного перемешивания инвертированы относительно друг друга.

Перед прямым перемешиванием происходит входное забеливание (добавление к входному блоку ключей). Далее в течение 8 раундов производится перемешивание без использования ключа. На стадии перемешивания используются операции битового сдвига, исключающего "ИЛИ", сложения и Sbox'ы.

Рис. 2.1 Схема алгоритма MARS

Непосредственное шифрование представляет собой сеть Фейстеля с 4 ветвями. От первой ветви вычисляется функция F. На вход функции F подается 32 битное слово, функция выдает на выход три 32 битных слова. Полученные слова складываются с тремя оставшимися ветвями, далее выполняется перестановка ветвей. Структура функции представлена на рис. 2.2

Рис 2.2 Структура функции зашифрования и расшифрования алгоритма MARS

B первых восьми раундах производится прямое шифрование, в следующих восьми раундах обратное. Прямое и обратное шифрование отличаются порядком функций, выполняемых над выходами функции F.

MARS поддерживает переменную длину ключа от 128 до 448 битов, используя процедуру расширения входного ключа до 40 32-битовых слов, которые используются при шифровании и дешифровании.

Одним из недостатков алгоритма является сложность его криптоанализа из-за использования двойного перемешивания. Алгоритм показал хорошую скорость шифрования. Скорость шифрования на Intel-Pentium 200 МГц достигала 65 Мбит/с, скорость выполнения блока прямого и обратного шифрования достигала 100 Мбит/с.

3. Алгоритм шифрования RC4

Алгоритм RC4 состоит из трех частей:

Создание ключа (иногда называют - расширение ключа).

Алгоритм шифрования.

Алгоритм расшифровки.

Создание ключа

Ключ в RC4 представляет собой последовательность байтов произвольной длинны, по которой строится начальное состояние шифра S - перестановка всех 256 байтов. Алгоритм получения начального состояния изображен на рис.3.1.

Рис 3.1 Алгоритм получения начального состояния шифра RC4

Первоначально S заполняется последовательными значениями от 0...255. Затем каждый очередной элемент S обменивается местами с элементом , номер которого определяется элементом ключа K, самим элементом и суммой номеров элементов, с которыми происходил об мен на предыдущих итерациях.

Значения счетчиков i и с изначально равны 0. Сплошные стрелки означают передачу значений между элементами схемы ( присваивание ), двусторонние стрелки - обмен значениями, пунктирные стрелки - индексацию в массиве.

Алгоритм шифрования.

Алгоритм схематически изображен на рис. 3.2.

Рис 3.2 Алгоритм шифрования RC4

Очередной элемент псевдослучайной перестановки S всех байтов обменивается с другим, номер которого равен сумме элементов, выбрнных на предыдущих шагах. В качестве очередного байта выдается значение третьего элемента S, номер которого равен сумме первых двух. Значение счетчика x первоначально равно 0, но оно увеличивается на 1 уже перед первой выборкой S(x). Значение y первоначально равно 0. Но затем высчитывается как элемент ключа по номеру x + предыдущее значение y и вся сумма по mod 256.

Некоторые полезные свойства алгоритма RC4.

Преобразование очередного состояния генератора (S,x,y) обратимо, так что все возможные состояния повторяются с одинаковой частотой с некоторым периодом.

Поскольку S содержит каждый байт ровно один раз, маловероятно, что одни байты будут выдаваться в качестве результата чаще, чем другие.

4. Алгоритм шифрования RC5

RC5 представляет собой блочный фильтр с большим числом параметров: размером блока, размером ключа и количеством этапов. Он был изобретен Роном Ривестом и проанализирован в RSA Laboratories [1324, 1325].

Используется три действия: XOR, сложение и циклические сдвиги. На большинстве процессоров операции циклического сдвига выполняются за постоянное время, переменные циклические сдвиги являются нелинейной функцией. Эти циклические сдвиги, зависящие и от ключа, и от данных, представляют собой интересную оп е-рацию.

RC5 использует блок переменной длины, но в приводимом примере мы остановимся на 64-битовом блоке данных. Шифрование использует 2r+2 зависящих от ключа 32-битовых слов - So, Si, S2, ... S2r+i – где r - число этапов. Эти слова мы сгенерируем позднее. Для шифрования сначала блок открытого текста делится на два 32-битовых слова: А и В. (RC5 предполагает следующее соглашение по упаковке байтов в слова: первый байт занимает младшие биты регистра А, и т.д.) Затем:

A=A + S0

B = B + S1

For i = 1 to r:

A = ((AÅ B) <« B) + S2i

В = ((В Å A) <« A) + S2i+1

Результат находится в регистрах А и В.

Дешифрирование также просто. Блок открытого текста разбивается на два слова, А и В, а затем:

For i = r down to 1:

B = ((B-S2i+1)>>>A) Å A

A = ((A-S2i)>>>B) Å B

B = B – S1

A=A - S0

Символ ">>>" обозначает циклический сдвиг направо. Конечно же, все сложения и вычитания выполняются по модулю 232.

Создание массива ключей более сложно, но также прямолинейно. Сначала, байты ключа копируются в ма с-сив L из с 32-битовых слов, дополняя при необходимости заключительное слово нулями. Затем массив S инициализируется при помощи линейного конгруэнтного генератора по модулю 232:

S = P

For I =1 to 2(r+1)-1

Si = (Si-1 + Q) mod 232

P = 0xb7el5163 и Q = 0х9е377989, эти константы основываются на двоичном представлении е и phi. Наконец, подставляем L в S:

i=j = 0

А=В = 0

выполнить п раз (где п - максимум 2(r + 1) и с):

А = Si = (Si + А+ В)<<<3

B = Li = (Li +A+B) <<< (А + В) ;

i = (i+1) mod 2(r+l)

j = (j + 1 ) mod с

По сути, RC5 представляет собой семейство алгоритмов. Только что мы определили RC5 с 32-битовым cл овом и 64-битовым блоком, не существует причин, запрещающих использовать тот же алгоритм с 64-битовым словом и 128-битовым. Для w = 64, Р и Q равны 0xb7el51628aed2a6b и 0x9e3779b97f4a7cl5, соответственно. Ривест обозначил различные реализации RC5 как RC5- wlrlb, где w - это размер слова, r - число этапов, а b -длина ключа в байтах.

RC5 является новым алгоритмом, но RSA Laboratories потрптила достаточно много времени, анализируя его работу с 64-битовым блоком. После 5 этапов статистика выглядит очень хорошо. После 8 этапов каждый бит открытого текста влияет по крайней мере на один циклический сдвиг. Дифференциальное вскрытие требует 2 24 выбранных открытых текстов для 5 этапов, 245 для 10 этапов, 253 для 12 этапов и 268 для 15 этапов. Конечно же, существует только 264 возможных открытых текстов, поэтому такое вскрытие неприменимо против алгоритма с 15 и более этапами. Оценка для линейного криптоанализа показывает, что алгоритм безопасен после 6 этапов. Ривест рекомендует использовать не меньше 12 этапов, а лучше 16 [1325]. Это число может меняться.

RSADSI в настоящее время патентует RC5, а это названия заявлено, как торговая марка. Компания утверждает, что плата за лицензирование будет очень мала, но это лучше проверить.

5. Алгоритм шифрования RC6

Авторы: Рональд Райвест (Ronald Rivest), а также:М. Робшоу (M. Robshaw), Р. Сидни (R.Sidney), Y. Yin. Архитектура:Архитектура на базе сбалансированной сети Файстеля с существенными отклонениями от классического варианта:

другая схема разбиения блока на части: блок делится на четыре подблока одинакового размера, изменяемые и неизменные подблоки чередуются, между раундами подблоки циклически меняются местами;

другой способ использования ключевой информации: ключевой элемент не используется при выработке функции шифрования, вместо этого его половины прибавляются к модифицируемым подблокам на выходе каждого раунда, перед первым и после последнего раунда к двум подблокам также прибавляются половинки ключевого элемента;

после комбинирования с результатом вычисления функции шифрования и до прибавления половины ключевого элемента каждый изменяемый на раунде подблок циклически сдвигается на переменное число разрядов.

Параметры:

pазмер блока, бит переменный (w), степень 2
pазмер ключа, бит 8-256 (целое число байт)
число раундов переменное (r)
pазмер ключевого элемента, бит w/2 (половина размера блока)
число ключевых элементов r+2 (на 2 больше числа раундов)

Особенности:

RC6 представляет собой целое семейство шифров с переменным размером блока, переменным размером ключа от 1 до 32 байт и переменным числом раундов. В шифре вовсе не используются узлы замен, вместо этого используется умножение и циклические сдвиги на переменное число разрядов w/4-битовых чисел, где w - размер блока данных в битах. В силу этого алгоритм неэффективно реализуется на процессорах без быстрой команды умножения и без команды циклического сдвига на переменное число битов. Кроме того, операция умножения ресурсоемка при аппаратной реализации. По указанным причинам RC6 не был избран в качестве усовершенствованного стандарта шифрования США, хотя на ряде 32-битовых платформ его реализация оказалась существенно эффективней, чем реализация AES.

Замечания

(1) В версии RC6, номинировавшейся на место нового стандарта размер блока фиксировани и равен 128 бит, число раундов также фиксировано и равно равно 20, размер ключа может принимать одно из трех значениий: 128, 192 или 256 бит.

Схема алгоритма представлена RC6 на рис 5.1

Рис. 5.1 Схема алгоритма RC6

Характерной особенностью алгоритма является отказ от привычных Sbox'ов и введение операция квадратичной трансформации. Простота и высокая скорость шифрования являются его основными достоинствами, к тому же RC6 имеет наибольшую скорость среди финалистов AES (12.6 Мбайт/с)

6. Алгоритм шифрования TwoFish

Алгоритм, разработанный Шнайером, является модификацией алгоритма BlowFish, созданного в 1993г. Алгоритм TwoFish основан на 16 раундовой сети Фейстеля. В алгоритме используются преобразование РНТ (Pseudo-Hadamard Transforms), MDS матрицы, зависимые от ключа Sbox'ы, по сравнению с другими алгоритмами TwoFish имеет довольно сложную структуру, которая представлена на рисунке 6.1

Рисунок 6.1 Структура алгоритма Twofish

Входное отбеливание

Один раунд шифрования

Еще 15 раундов

Отмена последнего обмена местами пар слов

Выходное отбеливание

128-битовый блок P открытого текста (16 байт p0 ,…, p15) разбивается на четыре 32-битовых слова P0, P1, P2 и P3 c сохранением прямого порядка байтов (Little-Endian Convention):

На этапе входного «отбеливания» выполняется операция XOR между этими словами и четырьмя ключами K0, K1, K2 и K3:

После этого следуют 16 раундов шифрования. В каждом раунде два «левых» слова являются входными для функций g (биты одного из входных слов сначала циклически сдвигаются на 8 позиций влево). К полученным выходным словам функций g затем применяется псевдопреобразование Адамара (PHT - Pseudo-Hadamard Transform) и добавляются два раундовых ключа K2r+8 и K2r+9, где r — номер раунда шифрования. Далее между модифицированными таким образом «левыми» словами и двумя «правыми» словами (биты одного из которых прежде циклически сдвигаются на одну позицию влево) выполняется операция XOR, после чего циклическому сдвигу на 1 бит вправо подвергается другое из теперь уже видоизмененных «правых» слов. «Левая» и «правая» пары слов затем меняются местами для следующего раунда шифрования. Таким образом,

где r = 0 , …, 15, а аббревиатурами ROR и ROL обозначены функции двух аргументов, выполняющие побитовый циклический сдвиг первого аргумента вправо и влево соответственно на число позиций, равное второму аргументу.

После реализации всех 16-ти раундов шифрования последний обмен местами «левой» и «правой» пар слов отменяется, и между полученными 32-битовыми словами и ключами K4, K5, K6 и K7 выполняется операция XOR (этап выходного «отбеливания»):

Сi = R16,(i+2)mod4 Å K i=0,…,3

Полученные слова C0, C1, C2 и C3 затем объединяются в 128-битовый блок C (16 байт c0 ,… , c 15) зашифрованного текста:

где ëxû - целая часть х.

Несколько слов по поводу криптостойкости Twofish.

Разработчики алгоритма уже изначально были уверены в неприступности своего творения для криптоаналитиков. Во время первого раунда конкурса на новый американский правительственный стандарт шифрования Б. Шнайером был даже объявлен конкурс на лучшую криптоатаку против Twofish с призовым фондом в 10 тысяч долларов. Задача была действительно непростая: сложность алгоритма сыграла свою роль (и стала, кстати, одной из причин, по которой Twofish не стал новым стандартом шифрования США).

Тем не менее, определенные успехи в криптоанализе Twofish все же были достигнуты. Один из известных методов (Impossible Differential Attack), принадлежащий Ларсу Нудсену (Lars Knudsen), для 6-раундового Twofish (без «отбеливаний») имеет сложность 2128 для 128-битового ключа, 2160 для 192-битового ключа и 2192 для 256-битового ключа. Также была предложена атака на 7-раундовый Twofish (опять же без «отбеливаний») со сложностью 2256 для 256-битового ключа.

С «отбеливаниями» наилучшая атака «ломала» 6-раундовый Twofish cо сложностью 2256 и только с длиной ключа, равной 256 бит.

Таким образом, значительный запас криптостойкости Twofish очевиден.


Список использованных источников

1. Брюс Шнайер Прикладная криптография 2-е издание

2.О процессе принятия AES. Б. Киви http://byrd.narod.ru/aes/aes2.htm

3.Конкурс на новый криптостандарт AES. Б. Киви http://kiwibyrd.chat.ru/ru/aes1 .htm

4.Общие сведения о конкурсе AES http://www.citforum.ru/internet/infsecure/its2000 21 .shtml

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений07:40:04 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
08:12:46 29 ноября 2015

Работы, похожие на Реферат: Схемы шифрования AES, RC4, RC5, RC6, Twofish, Mars
Интегральная атака против блочного симметричного шифра Crypton
ВВЕДЕНИЕ Стремительное развитие современных информационных технологий в Украине, начавшееся в конце XX века, не снижает своих темпов и в начале XXI ...
Описание алгоритма было взято из книги автора шифра CRYPTON Че Хун Лим [16] В CRYPTON, каждый блок данных 128 бит представлен в форме массива 4`4 байта.
Рассмотрим теперь результат преобразования MC в третьем раунде байтов входного массива данных A в байты выходного массива данных B. Покажем, что и в этом случае поразрядная сумма ...
Раздел: Рефераты по информатике, программированию
Тип: дипломная работа Просмотров: 3050 Комментариев: 2 Похожие работы
Оценило: 1 человек Средний балл: 5 Оценка: неизвестно     Скачать
Шпаргалки по криптографии
I. Общая часть. Q: Что такое криптография, криптология, криптоанализ? A: Криптология - это наука о шифрах и всем, что с ними связано. Криптологию ...
играет алгоритм шифрования) шифрование ключей с обратной связью.
- размер блока 128, 192, 256 бит, в качестве AES допускается
Раздел: Рефераты по информатике, программированию
Тип: шпаргалка Просмотров: 1056 Комментариев: 3 Похожие работы
Оценило: 1 человек Средний балл: 5 Оценка: неизвестно     Скачать
Композиции шифров
МПС РФ Московский Государственный Университет Путей Сообщения (МИИТ) Кафедра "Электроника и защита информации" Курсовая работа по дисциплине ...
У этого алгоритма 16 раундов, 128-битовые блоки и более простая, чем в DES, схема развертки ключа.
Полный размер ключа алгоритма Khufu равен 512 бит (64 байт), алгоритм предоставляет способ генерации S-блоков по ключу.
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 1807 Комментариев: 3 Похожие работы
Оценило: 1 человек Средний балл: 2 Оценка: неизвестно     Скачать
Защита информации в системах дистанционного обучения с монопольным ...
АННОТАЦИЯ Данная диссертация посвящена вопросам построения систем защиты информации для программных пакетов, используемых в монопольном доступе. В ...
О выравнивании данных по 4 байта заботятся более высокоуровневые механизмы, использующие виртуальную машину и полиморфные алгоритмы для шифрования и расшифрования данных.
Как было сказано ранее, алгоритмы шифрования и расшифрования генерируются одним алгоритмом и функционально различаются только блоками преобразований данных.
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 1381 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Технологии создания сетей
[Aббревиатура] [1]AARP Apple Adress Resolution Protocol [1]ABM Asynchronous Balanced Mode [1]AC Access Control [1]ACK Acknowledment [1]ACSE ...
представлены битами, блоками битов, байтами или большими блоками.
[битовых байтов] [1 или 2]
Раздел: Рефераты по компьютерным наукам
Тип: реферат Просмотров: 1829 Комментариев: 3 Похожие работы
Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать
Техническая диагностика средств вычислительной техники
ГОУ СПО Астраханский колледж вычислительной техники М.В. Васильев преподаватель специальных дисциплин Астраханского колледжа вычислительной техники ...
5. SU (Segmentation Unit) - блок сегментации, осуществляет первую ступень преобразования адресов, и состоит из 16-битовых регистров для хранения базовых текущих адресов, или ...
3) размещение байтов в регистрах различно: обычно информация о составе байтов, заключенных в ячейки памяти, разделяется двоеточием, а при акцентировании конкретного бита, входящего ...
Раздел: Рефераты по информатике, программированию
Тип: учебное пособие Просмотров: 8252 Комментариев: 3 Похожие работы
Оценило: 1 человек Средний балл: 5 Оценка: неизвестно     Скачать
Защита информации виртуальных частных сетей
Содержание Введение 1 Основы безопасности ВЧС 1.1 Пользовательские процессоры 1.2 Заказные и принудительные туннели 1.2.1 Заказное туннелирование 1.2 ...
Применяемые при шифровании алгоритмы, особенно с ключами длиной более 128 бит, практически полностью исключают возможность дешифрования информации посторонними.
Нельзя забывать и о том, что в алгоритме шифрования со 128-битовым ключом, использованном корпорацией Microsoft, в основу ключа шифрования кладется не только сложный пароль, но и ...
Раздел: Рефераты по информатике, программированию
Тип: дипломная работа Просмотров: 1861 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Розробка імовірнісної моделі криптографічних протоколів
МІНІСТЕРСТВО ВНУТРІШНІХ СПРАВ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ВНУТРІШНІХ СПРАВ ФАКУЛЬТЕТ управління ТА інформатики КАФЕДРА ЗАХИСТУ ІНФОРМАЦІЇ І ...
1. У 64-бітовому ключі К усуваються біти 8, 16..., 64.
Хай а - відкритий текст, z - ключ, y - шифрований текст, Е(а, z) - криптограма, одержана в результаті шифрування відкритого тексту а на ключі z.
Раздел: Рефераты по информатике, программированию
Тип: дипломная работа Просмотров: 641 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Система криптозащиты в стандарте DES. Система взаимодействия ...
Рис.6.3. Подпрограмма обработки прерываний от INT1(низкий приоритет) Ввод байта ключа Через Р0 по @R1 Сохранание PSW Сохранение Аккумулятора Установка ...
Шифрование (Encryption)- преобразование при помощи ключа открытого текста в недоступную для понимания форму.
Алгоритм засекречивания данных разработан для шифрования и дешифрования блоков данных, состоящих из 64 бит, при воздействии на них ключа, также 64 бита.
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 556 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Средства безопасности Windows Server 2003
Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Дальневосточный государственный ...
Стандарт шифрования данных (Data Encryption Standard, DES) - формирование цепочки шифрованных блоков (Cipher Block Chaining, CBC) - алгоритм шифрования с закрытым ключом ...
- стандартный алгоритм шифрования - Advanced Encryption Standard, AES (Rijndael) (256 бит).
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 2571 Комментариев: 2 Похожие работы
Оценило: 1 человек Средний балл: 4 Оценка: неизвестно     Скачать

Все работы, похожие на Реферат: Схемы шифрования AES, RC4, RC5, RC6, Twofish, Mars (1617)

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(150052)
Комментарии (1830)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru