Реферат: Современные криптографические методы

--PAGE_BREAK-- 
Симметричные криптосистемы
Все мно­го­об­ра­зие су­ще­ст­вую­щих крип­то­гра­фи­че­ских ме­то­дов мож­но све­сти к сле­дую­щим клас­сам пре­об­ра­зо­ва­ний:

<img width=«453» height=«167» src=«ref-1_300427245-2979.coolpic» v:shapes="_x0000_s1044 _x0000_s1048 _x0000_s1049"> <img width=«175» height=«58» src=«ref-1_300430224-903.coolpic» alt=«Скругленный прямоугольник: Перестановки» v:shapes="_x0000_s1051"> <img width=«175» height=«58» src=«ref-1_300431127-959.coolpic» alt=«Скругленный прямоугольник: Блочные шифры» v:shapes="_x0000_s1050">



Мо­но- и поли­ал­фа­вит­ные под­ста­нов­ки.

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

Пе­ре­ста­нов­ки.

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

Гам­ми­ро­ва­ние.

Этот ме­тод за­клю­ча­ет­ся в на­ло­же­нии на ис­ход­ный текст не­ко­то­рой псев­до­слу­чай­ной по­сле­до­ва­тель­но­сти, ге­не­ри­руе­мой на ос­но­ве клю­ча. 

Блочные шифры.

Пред­став­ля­ют со­бой по­сле­до­ва­тель­ность (с воз­мож­ным по­вто­ре­ни­ем и че­ре­до­ва­ни­ем) ос­нов­ных ме­то­дов пре­об­ра­зо­ва­ния, при­ме­няе­мую к блоку (части) шиф­руе­мого­ тек­ста. Блочные шифры на прак­ти­ке встре­ча­ют­ся ча­ще, чем “чис­тые” пре­об­ра­зо­ва­ния то­го или ино­го клас­са в си­лу их бо­лее вы­со­кой крип­то­стой­ко­сти. Рос­сий­ский и аме­ри­кан­ский стан­дар­ты шиф­ро­ва­ния ос­но­ва­ны имен­но на этом классе шифров.

Стан­дарт шиф­ро­ва­ния дан­ныхГОСТ 28147-89
Российский стан­дарт шифрования является блочным, т. е. преобразование ведется по блокам. Он включает в себя режим замены и два режима гаммирования. Стан­дарт ГОСТ 28147-89 фор­ми­ро­вал­ся с уче­том ми­ро­во­го опы­та, и в ча­ст­но­сти, бы­ли при­ня­ты во вни­ма­ние не­дос­тат­ки и не­реа­ли­зо­ван­ные воз­мож­но­сти ал­го­рит­ма DES, по­это­му ис­поль­зо­ва­ние стан­дар­та ГОСТ пред­поч­ти­тель­нее. Эффективность данного стан­дар­та достаточно высока. Системы, основанные на ГОСТ 28147-89, позволяют зашифровать в секунду до нескольких десятков Кбайт данных. В него заложен метод, с помощью которого можно зафиксировать необнаруженную случайную или умышленную модификацию зашифрованной информации.

Вве­дем ас­со­циа­тив­ную опе­ра­цию кон­ка­те­на­ции. Если L и R – последовательность бит, то LR обозначает кон­ка­те­на­цию последовательностей, то есть LR — последовательность бит с размерностью равной сумме размерностей L и R, причем биты R следуют за битами L. Кро­ме то­го, бу­дем ис­поль­зо­вать сле­дую­щие опе­ра­ции сло­же­ния:

·       A^B — побитовое сложение по модулю 2;

если A+B=>2, то A^B=А+B-2

если A+B<2, то A^B=А+B, где A и B 1-битные числа.

·       A[+]B — сложение по модулю 232;

если A+B=>232, то A[+]B=A+B-232

если A+B<232, то A[+]B=A+В, где A и B 32-битные числа.

·       A{+}B — сложение по модулю 232-1;

если A+B=>232-1, то A{+}B=A+B-232+1

если A+B<232-1, то A{+}B=A+B, где A и B 32-битные числа.

Алгоритм криптографического преобразования предусматривает три режима работы. В стандарте ГОСТ используется ключ W длиной 256 бит, представляемый в виде восьми 32-разрядных чиселx(i).

W=X(7)X(6)X(5)X(4)X(3)X(2)X(1)X(0)

Самый простой из возможных режимов — замена.

Пусть открытые блоки разбиты на блоки по 64 бит в каждом, которые обозначим как T(j).

Очередная последовательность бит T(j) разделяется на две последовательности B(0) и A(0) по 32 бита (правый и левый блоки). Далее выполняется итеративный процесс шифрования, описываемый следующими формулами, вид который зависит от i.

·       Для i=1, 2, ..., 24, j=(i-1) (mod 8);

A(i) = f(A(i-1) [+]X(j)) ^ B(i-1)

B(i) = A(i-1)

·       Для i=25, 26, ..., 31, j=32-i;

A(i) = f(A(i-1) [+]X(j)) ^ B(i-1)

B(i) = A(i-1)

·       Для i=32

A(32) = A(31)

B(32) = f(A(31) [+]X(0)) ^ B(31).

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

·       Для i=32

A(31) = A(32)

B(31) = f(A(32) [+]X(0)) ^ B(32).

·       Для i=31, 30, ..., 25, j=32-i;

A(i-1) = B(i)

B(i-1) = f(B(i) [+]X(j)) ^ A(i)

·       Для i=24, 23, ..., 1, j=(i-1) (mod 8);

A(i-1) = B(i)

B(i-1) = f(B(i) [+]X(j)) ^ A(i)

Полученные A(0), B(0) – расшифрованный текст.

Здесь i обозначает номер итерации. Функция f – функция шифрования.

Функция шифрования состоит из операции подстановки К применяемой к 32-разрядному аргументу. 64-разрядный аргумент  разбивается на два 32-разрядных вектора. Блок подстановки K состоит из 8 узлов замены К(1)… К(8) с памятью 64 бит каждый. Поступающий на блок подстановки 4-разрядный вектор разбивается на 8 последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим таблицу из 16 целых чисел в диапазоне 0...15. Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем 4-разрядные векторы последовательно объединяются в 32-разрядный выходной.

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

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

Другой режим шифрования называется режимом гаммирования.

Открытые данные, разбитые на 64-разрядные блоки T(i) (i=1,2,...,m)(m определяется объемом шифруемых данных), зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бит, т.е.

Гш = (Г(1), Г(2),...., Г(m)).

Уравнение шифрования данных в режиме гаммирования может быть представлено в следующем виде:

Ш(i) =(f(Y(i), f(Z(i)) ^ T(i)=Г(i) ^ T(i)

В этом уравнении Ш(i) обозначает 64-разрядный блок зашифрованного текста, f — функцию шифрования в режиме простой замены (аргументами этой функции являются два 32-разрядных числа). C1 и C2 — константы, заданные в ГОСТ 28147-89. ВеличиныY(i) и Z(i) определяются итерационно по мере формирования гаммы следующим образом:

(Z(0), Y(0)) = f(S), где S — 64-разрядная двоичная последовательность

Y(i) =Y(i-1) [+] C1,   Z(i) = Z(i-1) {+} C2,    i=1, 2, ...,m.

64-разрядная последовательность, называемая синхропосылкой, не является секретным элементом шифра, но ее наличие необходимо как на передающей стороне, так и на приемной.

Режим гаммирования с обратной связью очень похож на режим гаммирования. Как и в режиме гаммирования открытые данные, разбитые на 64-разрядные блоки T(i), зашифровываются путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бит:

Гш=(Г(1), Г(2), ..., Г(m)).

Уравнение шифрования данных в режиме гаммирования с обратной связью выглядят следующим образом:

Ш(1) = f(S) ^ T(1) = Г(1) ^ T(1),

Ш(i) = f(Ш(i-1)) ^ T(i) = Г(i)^T(i),  i=2, 3, ...,m.

В ГОСТ 28147-89 определяется процесс выработки имито­вставки, который единообразен для всех режимов шифрования. Имитовставка — это блок из р бит (имитовставка Ир), который вырабатывается либо перед шифрованием всего сообщения либо параллельно с шифрованием по блокам. Параметр р выбирается в соответствии с необходимым уровнем имитозащищенности.

Для по­лу­че­ния ими­тов­став­ки от­кры­тые дан­ные пред­став­ля­ют­ся так­же в ви­де бло­ков по 64 бит. Пер­вый блок от­кры­тых дан­ных Т(1) под­вер­га­ет­ся пре­об­ра­зо­ва­нию, со­от­вет­ст­вую­ще­му пер­вым 16 цик­лам ал­го­рит­ма ре­жи­ма про­стой за­ме­ны. В ка­че­ст­ве клю­ча ис­поль­зу­ет­ся тот же ключ, что и для шиф­ро­ва­ния дан­ных. По­лу­чен­ное 64-раз­ряд­ное чис­ло сум­ми­ру­ет­ся побитно с от­кры­тым бло­ком Т(2) и сум­ма вновь под­вер­га­ет­ся 16 цик­лам шиф­ро­ва­ния для ре­жи­ма про­стой за­ме­ны. Дан­ная про­це­ду­ра по­вто­рят­ся для всехбло­ков со­об­ще­ния. Из по­лу­чен­но­го 64-раз­ряд­но­го чис­ла вы­би­ра­ет­ся от­ре­зок Ир дли­ной р бит.

Ими­тов­став­ка пе­ре­да­ет­ся по ка­на­лу свя­зи по­сле за­шиф­ро­ван­ных дан­ных. На при­ем­ной сто­ро­не ана­ло­гич­ным об­ра­зом из при­ня­то­го со­об­ще­ния выделяется ими­тов­став­ка и срав­ни­ва­ет­ся с по­лу­чен­ной. В слу­чае не­сов­па­де­ния ими­тов­ста­вок со­об­ще­ние счи­та­ет­ся лож­ным.

КОНСТАНТЫ C1=1538417 341, C2=2591989193

СИНХРОПОСЫЛКА S=134987665736005221


ТАБЛИЦА ПОДСТАНОВОК Kij



    продолжение
--PAGE_BREAK--Международный алгоритм шиф­ро­ва­ния дан­ных IDEA
Шифр IDEA (International Data Encryption Algorithm) был разработан Лэй  и Мэсси  из ETH в Цюрихе. Этот шифр, наряду с RSA, применяется в популярной компьютерной криптосистеме PGP (Pretty Good Privacy).

IDEA представляет собой блочный шифр, использующий 128 битный ключ, для преобразования открытых 64 битных текстовых блоков.

Графическая схема алгоритма IDEA




<img width=«469» height=«696» src=«ref-1_300432086-21855.coolpic» v:shapes="_x0000_s1074">

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

·       A^B — побитовое сложение по модулю 2;

если A+B=>2, то A^B=А+B-2

если A+B<2, то A^B<А+B, где A и B 1-битные числа.

·       A(+)B — сложение по модулю 216;

если A+B=>216, то A(+)B=A+B-216

если A+B<216, то A(+)B=A+В, где A и B 16-битные числа.

·       A(*)B — умножение по модулю 216+1;

если A* B=>216+1, то A(*)B=A*B-216-1

если A* B<216+1, то A(*)B=A*B, где A и B 16-битные числа.
Процесс шифрования представляет собой цикл из восьми шагов:

На первом шаге:

p1 (*) s1 --> d1             p2 (+) s2 --> d2           p3 (+) s3 --> d3           p4 (*) s4 --> d4

d1 ^ d3 --> d5               d2 ^ d4 --> d6

d5 (*) s5 --> d7             d6 (+) d7 --> d8          d8 (*) s6 --> d9           d7 (+) d9 --> d10

d1 ^ d9  --> d11                        d3 ^ d9  --> d12          d2 ^ d10 --> d13         d4 ^ d10 --> d14

p1, p2, p3, p4 – четыре 16 битных блока, на которые разбиваются один блок исходного текста

s1, s2, s3, s4, s5, s6 – шесть 16 битных подключей.

На следующем шаге в качестве p1, p2, p3, p4 используют d11, d13, d12, d14 и новые шесть подключей. Полученные четыре последние 16 битных блока и есть зашифрованный текст. Процесс дешифрования осуществляется аналогично.

Шифрование и дешифрование отличаются только подключами. Первые восемь подключей определяются с помощью 128 битного ключа, который разделяется на восемь частей. Новые восемь подключей определяются следующим образом: начальный ключ смещается на 25 бит, и разделяется на восемь частей.

Подключи для дешифрования определяются таблицей:

1 шаг                                                   s49*  s50#  s51#  s52*  s47  s48

2 шаг                                                   s43*  s45#  s44#  s46*  s41  s42

3 шаг                                                   s37*  s39#  s38#  s39*  s35  s36

4 шаг                                                   s31*  s33#  s32#  s34*  s29  s30

5 шаг                                                   s25*  s27#  s26#  s28*  s23  s24

6 шаг                                                   s19*  s21#  s20#  s22*  s17  s18

7 шаг                                                   s13*  s15#  s14#  s16*  s11  s12

8 шаг                                                   s7*   s9#   s8#   s10*  s5   s6

Последнее преобразование              s1*   s2#   s3#   s4*
sXX* = мультипликативная инверсия sXX по  модулю 216+1

sXX# = аддитивная инверсия sXX по  модулю 216



    продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по математике