Смекни!
smekni.com

Современные криптографические методы (стр. 2 из 4)

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

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

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

Открытые данные, разбитые на 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

0 1 2 3 4 5 6 7 8 9 A B C D E F
K(1) 1 0 0 1 5 9 8 4 6 5 2 3 13 12 7 4
K(2) 0 3 8 1 11 13 6 10 2 15 7 4 14 5 12 9
K(3) 4 7 13 5 0 3 12 1 9 8 10 14 6 2 11 15
K(4) 10 15 2 12 9 14 7 6 8 4 0 13 3 11 5 1
K(5) 6 1 4 10 2 12 0 15 8 13 3 11 5 9 14 7
K(6) 8 11 7 14 15 5 12 2 0 9 10 1 6 13 3 4
K(7) 11 5 9 4 3 1 15 8 7 2 14 0 13 12 10 6
K(8) 4 13 15 5 0 3 12 7 10 11 8 9 6 1 14 2

Международный алгоритм шиф­ро­ва­ния дан­ных IDEA

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

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

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


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

Алгоритм RSA

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

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

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

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


Асимметричные крип­то­гра­фи­че­ские сис­те­мы ис­поль­зу­ют так называемые не­об­ра­ти­мые или од­но­сто­рон­ние функ­ции, ко­то­рые об­ла­да­ют сле­дую­щим свой­ст­вом: при за­дан­ном зна­че­нии x от­но­си­тель­но про­сто вы­чис­лить зна­че­ние f(x), од­на­ко ес­ли y=f(x), то нет про­сто­го пу­ти для вы­чис­ле­ния зна­че­ния x.

Ал­го­рит­мы шиф­ро­ва­ния с от­кры­тым клю­чом по­лу­чи­ли ши­ро­кое рас­про­стра­не­ние в со­вре­мен­ных ин­фор­ма­ци­он­ных сис­те­мах. Так, ал­го­ритм RSA стал ми­ро­вым стан­дар­том де-фак­то для от­кры­тых сис­тем.

Ал­го­рит­мы криптосистем с открытым ключом мож­но ис­поль­зо­вать в 3 на­зна­че­ни­ях.

1. Как са­мо­стоя­тель­ные сред­ст­ва за­щи­ты пе­ре­да­вае­мых и хра­ни­мых дан­ных.

2. Как сред­ст­ва для рас­пре­де­ле­ния клю­чей.

3. Сред­ст­ва ау­тен­ти­фи­ка­ции поль­зо­ва­те­лей.

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

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