Материал: Обеспечение компьютерной безопасности

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.  организуется сеть Фейстела с числом раундов 16.

3.      затем определяется шифр

С= IP(LR),

аргументами функции шифрования является R и K.

Алгоритм выполнения функции f

1.       Расширение R до 48 бит путем копирования крайних элементов из 8 четырех битных подблоков исходного R;

2.      Вычисляется R;

.        Выполнение блока подстановки в котором каждый из 8 шестнадцати битных подблоков R используется для выбора строки и столбцы, соответствующие номеру подблока матрицы элементов со значениями от 0 до 15.

На выходе блока подстановки получается текст 2 бита;

. Выполнение блока перестановки или блока проволочной коммутации.

Алгоритм выбора ключа

Функция ключа шифрования KS

= К(I, K)

1.      начальная перестановка исходного ключа шифрования из 56 бит. Получается Кпреобразованный блок ключа, который потом представляется как 2 подблока каждый по 28 бит.

K’= CD

2.      Дальше осуществляется подблоковой сдвиг Kи C независящий от команды раунда i число разрядов. Получается C и D- блоки преобразования.

3.      Делается конечная перестановка C, D для получения 48 битного K.

Для расшифрования операция производится в обратном порядке. В алгоритме блоков DES используют 4 режима:

1.       режим электронной почтовой книги.

Каждый блок отрытого текста зашифрован независимо от других блоков;

2.       режим сцепления блоков шифра

Каждый блок открытого текста перед шифрованием складывается по mod2 с предыдущим шифром блока текста, а первый блок с вектором инициализации, синхропосылкой;

 i 1in= E(PC) C=IV

3.       Режим обратной связи по шифр-тексту

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

. режим обратной связи по выходу

Используется регистр замены и вектор инициализации. После шифрования блока в регистре замены и сдвига вытесняемая часть замещает свободную область регистра и одновременно складывается по mod2 с очередной порцией отрытого текста. Для повышения криптостойкости алгоритма DES используют модификации 3-DES, DESX. В 3-DES к одному тому же блоку отрытого текста функция шифрования применяется 3 раза с тремя разными ключами K, K, K.

С= EK(Dk(E K(P)))= D K( EK(DK(C)))

К недостаткам 3-DES относят снижение производительности в три раза.

Этого недостатка лишен алгоритм DESX. В О.С. Windows доступ к шифрованному алгоритму DES возможен с помощью функции криптографического интерфейса Crypto API.

9.1 Криптографическая система ГОСТ 28.147-89

С 1989 года с этого алгоритма снят гриф секретности. Используется ключ шифрования 256 бит, который рассматривается как массив из 38 битных элементов K, K, K..К.

Дополнительных элементов является таблица замена h, представляет собой матрицу из 8 строк и 16 столбцов.

Каждая строка таблицы должна содержать 16 различных чисел. Общий замер таблицы составляет 512 бит. Алгоритм основной функции шифрования f представляется следующими операциями.- преобразуемой блок в 64 байта- один из ключей шифрования, 32 бита.- разбивается на блока на 2 блока в 32 бита.

= N║N

Вычисляемая матрица S = N+K (mod2)= S, S, …S(8 элементов по 4 бита)

Для всех i= 0..7

= H[i,S]

Циклический сдвиг S, который состоит из 8 бит на 11 элементов влево.

=SN=N, N=S

Для отрытого текста P=f(P,K) j= 0..7

P=P║P

↔ P- взаимная пересылка

Число раундов 32. Алгоритм расшифрования

=f(C, K)= C║C↔ C

Эта криптосистема может использоваться в трех основных и одном дополнительном.

1.       В режиме простой замены, который соответствует режиму простой электронной книге режима DES.

2.      Режим гаммирования в котором используется дополнительный параметр синхропосылки S= SS. Этот режим похож на режим обратной связи по выходу алгоритма DES.

.        Режим по выходу с обратной связью

Используют дополнительную синхропосылку. Похож на режим обратной связи по синхротексту DES.

4.       Режим генерации и метовставки

Используется с одним из основных режимов и предназначен для подлинности шифр-текста.

= 0..7=f(P, K)= EI(SP)=0

EI- функция реализации алгоритма выработки и метовставки.

Таким образом, для вскрытия шифр-текста необходимо решить z задачи:

·        Вычисляется, не зная ключа шифрования, значения и метовставки,

·        Подобрать открытый текст под данное значение и метовставки.

10. Шифр Ривеста-Шамира-Алдемана

Первой и наиболее известной криптографической системой с открытым ключом была предложенная в 1978 году так называемая система RSA.Ее название происходит от первых букв фамилий авторов Rivest, Shamir и Aldeman, которые придумали ее во время совместных исследований в Массачусетском технологическом институте в 1977 году. Она основана на трудности разложения очень больших целых чисел на простые сомножители.

Алгоритм ее работает так:

. Пользователь выбирает два очень больших простых числа Р и Q и вычисляет два произведения

=PQ и M=(P-1)(Q-1).

. Затем он выбирает случайное целое число D,взаимно простое с М, и вычисляет Е, удовлетворяющее условию

= 1 MOD M.

. После этого он публикует D и N как свой открытый ключ шифрования, сохраняя Е как закрытый ключ.

. Если S - сообщение, длина которого, определяемая по значению выражаемого им целого числа, должна быть в интервале (1.N), то оно превращается в шифровку возведением в степень D по модулю N и отправляется получателю

'=SD MOD N.

. Получатель сообщения расшифровывает его, возводя в степень Е по модулю N, так как

S = S'E MOD N = SDE MOD N.

Таким образом, открытым ключом служит пара чисел N и D, а секретным ключом число Е.Смысл этой системы шифрования становится прозрачным, если упомянуть про малую теорему Ферма, которая утверждает, что при простом числе Р и любом целом числе К, которое меньше Р, справедливо тождество Кр"1=1 MOD P. Эта теорема позволяет определять, является ли какое-либо число простым или же составным.

Приведем простой пример на малых простых числах Р=211 и Q=223. В этом случае N=47053 и М=46620. Выберем открытый ключ шифрования D=16813 и вычислим секретный ключ расшифровывания Е= 19837. Теперь, взяв за сообщение название метода RSA, переведем его в число. Для этого будем считать букву R равной 18, S равной 19, А равной 1 по порядковому номеру их положения в английском алфавите. На представление каждой буквы отведем по 5 бит числа, представляющего открытый текст. В этом случае слову RSA соответствует следующее число:

=((1-32)+19) -32+18-1650.

С помощью открытого ключа получаем шифровку:

S'=SD MOD N=165016813 MOD47053=3071.

Получатель расшифровывает ее с помощью секретного ключа:

S = S'E MOD N=307119837 MOD 47053=1650.

Криптостойкость системы RSA основана на том, что М не может быть просто вычислена без знания простых сомножителей Р и Q, а нахождение этих сомножителей из N считалась трудно разрешимой задачей. Однако недавние работы по разложению больших чисел на сомножители показали, что для этого могут быть использованы разные и даже совершенно неожиданные средства. Сначала авторы RSA предлагали выбрать простые числа Р и Q случайно, по 50 десятичных знаков каждое. Считалось, что такие большие числа очень трудно разложить на простые сомножители при криптоанализе. Райвест полагал, что разложение на простые множители числа из почти что 130 десятичных цифр, приведенного в их публикации, потребует более 40 квадриллионов лет машинного времени. Но математики Ленстра из фирмы Bellcore и Манасси из фирмы DEC разложили число из 155 десятичных цифр на простые сомножители всего за 6 недель, соединив для этого 1000 ЭВМ, находящихся в разных странах мира. Выбранное число, называемое девятым числом Ферма, с 1983 года находилось в списке чисел, разложение которых считалось наиболее желательным. Это число взято потому, что оно считалось неразложимым при существующей вычислительной технике и достаточно большим для того, чтобы его можно считать безопасным для формирования N в RSA. Как заявил Ленстра, ведущий в Bellcore исследования по электронной защите информации и разложению больших чисел, их целью было показать разработчикам и пользователям криптографических систем, с какими угрозами они могут встретиться и насколько осторожны должны быть при выборе алгоритмов шифрования. По мнению Ленстра и Манасси, их работа компрометирует и создает большую угрозу применениям криптографических систем RSA.

Следует учесть, что работа по совершенствованию методов и техники разложения больших чисел только началась и будет продолжена. Те же Ленстра и Манасси в 1991 году нашли делитель тринадцатого числа Ферма, которое состоит примерно из 2500 десятичных разрядов. Теперь разработчикам криптографических алгоритмов с открытым ключом на базе RSA приходится, как чумы избегать применения разложимых чисел длиной менее 200 десятичных разрядов. Самые последние публикации предлагают для этого применять числа в 250 и даже 300 десятичных разрядов. А так как для шифрования каждого блока информации приходится соответствующее число возводить в колоссально большую степень по модулю N, то для современных компьютеров это задача на грани возможного. Поэтому для практической реализации шифрования RSA радиоэлектроники начали разрабатывать специальные процессоры, которые позволили бы выполнять операции RSA достаточно быстро. Лучшими из серийно выпускаемых кристаллов являются процессоры фирмы CYLINK, которые позволяют выполнять возведение в степень целого числа из 307 десятичных знаков за доли секунды.

10.1 Шифр ЭльГамаля

Криптографы постоянно вели поиски более эффективных систем открытого шифрования, и в 1985 году ЭльГамаль предложил следующую схему на основе возведения в степень по модулю большого простого числа. Для этого задается большое простое число Р. Сообщения представляются целыми числами S из интервала (1, Р). Оригинальный протокол передачи сообщения S выглядит в варианте Шамира, одного из авторов RSA, так:

. Отправитель А и получатель В знают лишь Р. А генерирует случайное число X из интервала(1 ,Р) и В тоже генерирует случайное число Y из того же интервала.

. А шифрует сообщение Si=Sx MOD P и посылает В.

. В шифрует его своим ключом 82=8/ MOD P и посылает 82 к А.

. А "снимает" свой ключ S3=S2 x MOD P и возвращает 83 к В.

. Получатель В расшифровывает сообщение: S=S3"Y MOD P.

Этот протокол можно применить, например, для таких неожиданных целей, как игра в очко или блэкджек по телефону. Крупье шифрует карты своим ключом и передает их игроку. Игрок выбирает наугад одну из карт, шифрует карты своим ключом и возвращает их крупье. Крупье "снимает" с выбранной карты свой ключ и отсылает ее игроку. "Сняв" с этой карты свой ключ игрок узнает ее номинал и принимает решение: спасовать, тянуть еще или раскрываться. Теперь, хотя колода находится у крупье, но он не может ее раскрыть, так как карты зашифрованы ключом игрока. Крупье выбирает свою карту аналогично игроку. В системе ЭльГамаля большая степень защиты, чем у алгоритма RSA достигается с тем же по размеру N, что позволяет почти на порядок увеличить скорость шифрования и расшифрования. Криптостойкость системы ЭльГамаля основана на том, что можно легко вычислить степень целого числа, то есть произвести умножение его самого на себя любое число раз так же, как и при операциях с обычными числами. Однако трудно найти показатель степени, в которую нужно возвести заданное число, чтобы получить другое, тоже заданное. В общем случае эта задача дискретного логарифмирования кажется более трудной, чем разложение больших чисел на простые сомножители, на основании чего можно предположить, что сложности вскрытия систем RSA и ЭльГамаля будут сходными. С точки зрения практической реализации, как программным, так и аппаратным способом ощутимой разницы между этими двумя стандартами нет. Однако в криптостойкости они заметно различаются. Если рассматривать задачу разложения произвольного целого числа длиной в 512 бит на простые множители и задачу логарифмирования целых чисел по 512 бит, вторая задача, по оценкам математиков, несравненно сложнее первой. Однако есть одна особенность. Если в системе, построенной с помощью алгоритма RSA, криптоаналитику удалось разложить открытый ключ N одного из абонентов на два простых числа, то возможность злоупотреблений ограничивается только этим конкретным пользователем. В случае же системы, построенной с помощью алгоритма ЭльГамаля, угрозе раскрытия подвергнутся все абоненты криптографической сети.