Реферат: Современные криптографические методы
--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--
еще рефераты
Еще работы по математике