Алгоритмы формирования псевдослучайных чисел.



Данные алгоритмы являются рекуррентными, т.е. формируют следующие числа через предыдущие, а самое 1-ое число определяется начальным состоянием.

 

Метод Фон-Неймана.

А1 – 1-ое начальное состояние.

Береться произвольное четырехразрядное число, чтобы сформировать следующее число Аi+1, через Аi, Аi возводят в квадрат в качестве Аi+1 , берут средние четыре цифры.

Аi =1204 Аi2=1459616 Аi+1=4596.

Недостаток – в некторых случаях алгоритм вырождается и начинает формировать одни и те же числа с маленьким периодом. Период ГПСЧ – величина отрезка на котором формируемые числа не повторяются.

Конгруэнтные датчики ПСП

 

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

Од­ним из хо­ро­ших кон­гру­энт­ных ге­не­ра­то­ров яв­ля­ет­ся ли­ней­ный кон­гру­энт­ный дат­чик ПСЧ. Он вы­ра­ба­ты­ва­ет по­сле­до­ва­тель­но­сти псев­до­слу­чай­ных чи­сел T(i), опи­сы­вае­мые со­от­но­ше­ни­ем

T(i+1) = (A*T(i)+C)mod m,

где А и С - кон­стан­ты, Т(0) - ис­ход­ная ве­ли­чи­на, вы­бран­ная в ка­че­ст­ве по­ро­ж­даю­ще­го чис­ла. Оче­вид­но, что эти три ве­ли­чи­ны и об­ра­зу­ют ключ.

Та­кой дат­чик ПСЧ ге­не­ри­ру­ет псев­до­слу­чай­ные чис­ла с оп­ре­де­лен­ным пе­рио­дом по­вто­ре­ния, за­ви­ся­щим от вы­бран­ных зна­че­ний А и С. Зна­че­ние m обыч­но ус­та­нав­ли­ва­ет­ся рав­ным 2n , где n - дли­на машинного сло­ва в би­тах. Дат­чик име­ет мак­си­маль­ный пе­ри­од М до то­го, как ге­не­ри­руе­мая по­сле­до­ва­тель­ность нач­нет по­вто­рять­ся. По при­чи­не, от­ме­чен­ной ра­нее, не­об­хо­ди­мо вы­би­рать чис­ла А и С та­кие, что­бы пе­ри­од М был мак­си­маль­ным. Как по­ка­за­но Д. Кну­том, ли­ней­ный кон­гру­энт­ный дат­чик ПСЧ име­ет мак­си­маль­ную дли­ну М то­гда и толь­ко то­гда, ко­гда С - не­чет­ное, и Аmod 4 = 1.

Для шиф­ро­ва­ния дан­ных с по­мо­щью дат­чи­ка ПСЧ мо­жет быть вы­бран ключ лю­бо­го раз­ме­ра. На­при­мер, пусть ключ со­сто­ит из на­бо­ра чи­сел x(j) раз­мер­но­стью b, где j=1, 2, ..., n. То­гда соз­да­вае­мую гам­му шиф­ра G мож­но пред­ста­вить как объ­е­ди­не­ние не­пе­ре­се­каю­щих­ся мно­жеств H(j).

 

Требования к ГПСЧ.

 

1. Большой период.

2. Равномерность распределения.

3. Непредсказуемость.

 

Требования к стойким алгоритмам шифрования:

 

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

2. Знание алгоритма шифрования не должно влиять на надежность защиты.

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

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

5. Незначительное изменение ключа должно приводить к существенному изменению закрытого текста.

 

4.4.6 Стан­дарт шиф­ро­ва­ния дан­ных ГОСТ 28147-89[1].

 

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

Вве­дем ас­со­циа­тив­ную опе­ра­цию кон­ка­те­на­ции, ис­поль­зуя для нее муль­ти­п­ли­ка­тив­ную за­пись. Кро­ме то­го бу­дем ис­поль­зо­вать сле­дую­щие опе­ра­ции сло­же­ния:

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

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

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

Алгоритм криптографического преобразования предусматривает несколько режимов работы. Во всех режимах используется ключ 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 обозначает номер итерации. Функция f – функция шифрования.

Функция шифрования включает две операции над 32-разрядным аргументом.

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

Вторая операция - циклический сдвиг влево 32-разрядного вектора, полученного в результате подстановки К. 64-разрядный блок зашифрованных данных Т представляется в виде

Т=А(32)В(32).

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

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

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

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

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

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

Ш(i)=A(Y(i-1) Å C2, Z(i-1)) {+} C(1) Å T(i)=Г(i) Å T(i)

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

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

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

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

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

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

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

Ш(1)=A(S)ÅT(1)=Г(1)ÅT(1),

Ш(i)=A(Ш(i-1)ÅT(i)=Г(i)ÅT(i), i=2, 3, ..., m.

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

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

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

Шифр Rijndael.

Данный алгоритм разработан двумя специалистами по криптографии из Бельгии. Он является нетрадиционным блочным шифром, поскольку не использует сеть Фейштеля для криптопреобразований. Алгоритм представляет каждый блок кодируемых данных в виде двумерного массива байт размером 4х4, 4х6 или 4х8 в зависимости от установленной длины блока. Далее на соответствующих этапах преобразования производятся либо над независимыми столбцами, либо над независимыми строками, либо вообще над отдельными байтами в таблице.

Все преобразования в шифре имеют строгое математическое обоснование. Сама структура и последовательность операций позволяют выполнять данный алгоритм эффективно как на 8-битных так и на 32-битных процессорах. В структуре алгоритма заложена возможность параллельного исполнения некоторых операций, что на многопроцессорных рабочих станциях может еще поднять скорость шифрования в 4 раза.

Алгоритм состоит из некоторого количества раундов (от 10 до 14 – это зависит от размера блока и длины ключа), в которых последовательно выполняются следующие операции :

  • ByteSub – табличная подстановка 8х8 бит (рис.1),


Рис.1.

  • ShiftRow – сдвиг строк в двумерном массиве на различные смещения (рис.2),


Рис.2.

  • MixColumn – математическое преобразование, перемешивающее данные внутри столбца (рис.3),


Рис.3.

  • AddRoundKey – добавление материала ключа операцией XOR (рис.4).


Рис.4.

В последнем раунде операция перемешивания столбцов отсутствует, что делает всю последовательность операций симметричной. Соответственно для него ещё присутствуют методы расширения материала ключа, методы создания таблицы подстановок (S'box-ов), но размер лекций не позволяют нам рассмотреть эти моменты.

 

 

Ассиметричные криптосистемы.

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

 

Шифратор
Дешифратор
Открытый Ключ (k1)
Закрытый Ключ (k2)
Отправитель (А)
Получатель (В)
Исходное сообщение (X)
Зашифрованное сообщение Y=Ek1(X)
X=Dk2(Ek1(X))

 


Криптосистема с открытым ключом определяется тремя алгоритмами: генерация ключей, шифрования и расшифрования. Алгоритм генерации ключей открыт, всякий может подать ему на вход случайную строку r надлежащей длины и получить пару ключей (k1,k2). Один из ключей (например k1) публикуется, он называется открытым, а второй, называемый секретным, хранится в тайне. Алгоритм шифрования Ek1 и расшифрования Dk2 таковы, что для любого открытого текста m выполняется Dk2(Ek1(m))=m.

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

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

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

 

 

Алгоритм шифрования с открытым ключом:

Шифратор
Дешифратор
Открытый Ключ (kUb)
Закрытый Ключ (kRb)
Отправитель (А)
Получатель (В)
Исходное сообщение (X)
Зашифрованное сообщение Y=Ek1(X)
X=Dk2(Ek1(X))

 


 

  1. Пользователь В создает пару ключей kUb и kRb, используемых для шифрования и дешифрования передаваемых сообщений.
  2. Пользователь В делает доступным некоторым надежным способом свой ключ шифрования, т.е. открытый ключ kUb. Составляющий пару закрытый ключ KRb держится в секрете.
  3. Если А хочет послать сообщение В, он шифрует сообщение, используя открытый ключ В KUb .
  4. Когда В получает сообщение, он дешифрует его, используя свой закрытый ключ KRb. Никто другой не сможет дешифровать сообщение, так как этот закрытый ключ знает только В.

Если пользователь (конечная система) надежно хранит свой закрытый ключ, никто не сможет подсмотреть передаваемые сообщения.

Создание и проверка подписи состоит из следующих шагов:

Создание подписи (Шифратор)
Проверка подписи (Дешифратор)
Открытый Ключ (kUa)
Закрытый Ключ (kRa)
Отправитель (А)
Получатель (В)
Исходное сообщение (X)
Зашифрованное сообщение Y=Ek1(X)
X=Dk2(Ek1(X))

 

 


 

  1. Пользователь А создает пару ключей kRA и kUA, используемых для создания и проверки подписи передаваемых сообщений.
  2. Пользователь А делает доступным некоторым надежным способом свой ключ проверки, т.е. открытый ключ kUA. Составляющий пару закрытый ключ kRA держится в секрете.
  3. Если А хочет послать подписанное сообщение В, он создает подпись EKRa[M] для этого сообщения, используя свой закрытый ключ kRA.
  4. Когда В получает подписанное сообщение, он проверяет подпись DKUa[M], используя открытый ключ А kUA. Никто другой не может подписать сообщение, так как этот закрытый ключ знает только А.

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

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

В этой схеме все сообщение подписывается, причем для подтверждения целостности сообщения требуется много памяти. Каждое сообщение должно храниться в незашифрованном виде для использования в практических целях. Кроме того, копия сообщения также должна храниться в зашифрованном виде, чтобы можно было проверить в случае необходимости подпись. Более эффективным способом является шифрование небольшого блока битов, который является функцией от сообщения. Такой блок, называемый аутентификатором, должен обладать свойством невозможности изменения сообщения без изменения аутентификатора. Если аутентификатор зашифрован закрытым ключом отправителя, он является цифровой подписью, с помощью которой можно проверить исходное сообщение. Далее эта технология будет рассматриваться в деталях.

4.5.1 Алгоритм RSA.

Генерация ключа.

1. Выбираются два простых числа p и q.

Простое число - это число, которое делится только на себя (без остатка).

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

2. Вычисляется их произведение n=p*q

3. Выбирается произвольное число e (e<n), такое что НОД(e, (p-1)(q-1))=1, т.е. другими словами e должно быть взаимно простым числом с (p-1)(q-1).

4. Методом Евклида решается в целых числах уравнение e*d+(p-1)(q-1)*y=1. Здесь неизвестными являются d и y – метод Евклида как раз находит множество пар (d,y), каждая из которых является решением уравнения в целых числах.

5. Два числа (e,n) – публикуются как открытый ключ. (d,n) – закрытый ключ.

Шифрование.

1. Отправитель разбивает свое сообщение на блоки, равные k=[log2(n)] бит, где квадратные скобки обозначают взятие целой части от дробного числа.

2. Подобный блок, интерпритируется как число из диапазона (0;2k-1). Для каждого такого числа (назовем его mi) вычисляется выражение сi=((mi)e)mod n. Блоки сi и есть зашифрованное сообщение.

Расшифрование.

((сi)d)mod n = mi

 

Согласно теореме Эйлера, частный случай которой утверждает, что если число n представимо в виде двух простых чисел p и q, то для любого x имеет место равенство

(x(p-1)(q-1)) mod n=1

Для дешифрования RSA сообщения воспользуемся этой формулой.

Возведем обе её части в степень (-y): (x(-y)(p-1)(q-1))mod n=1(-y)=1

Теперь умножим обе её части на x: (x(-y)(p-1)(q-1)+1)mod n= x

А теперь вспомним как мы подбирали с помощью алгоритма Евклида d такое, что e*d+(p-1)(q-1)*y=1, т.е. e*d=(-y)(p-1)(q-1)+1.

Получим:

(xe*d) mod n = x

Т.е. для того чтобы прочесть сообщение сi=((mi)e)mod n, достаточно возвести его в степень d по модулю m:

((сi)d)mod n = ((mi)e*d)mod n = mi

 

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

 

 

Пример Зашифруем сообщение “САВ”. Для простоты будем использовать маленькие числа (на практике применяются гораздо большие).

1. Выберем p=3 и q=11.

2. Определим n=3*11=33.

3. Найдем (p-1)(q-1)=20. Следовательно, в качестве d, взаимно простое с 20, например, d=3.

4. Выберем число е. В качестве такого числа может быть взято любое число, для которого удовлетворяется соотношение (е*3) (mod 20) = 1, например 7.

5. Представим шифруемое сообщение как последовательность целых чисел с помощью отображения: А®1, В®2, С®3. Тогда сообщение принимает вид (3,1,2). Зашифруем сообщение с помощью ключа {7,33}.

ШТ1 = (37) (mod 33) = 2187 (mod 33) = 9,

ШТ2 = (17) (mod 33) = 1 (mod 33) = 1,

ШТ3 = (27) (mod 33) = 128 (mod 33) = 29.

6. Расшифруем полученное зашифрованное сообщение (9,1,29) на основе закрытого ключа {3,33}:

ИТ1 = (93) (mod 33) = 729 (mod 33) = 3,

ИТ2= (13) (mod 33) = 1 (mod 33) = 1,

ИТ3 = (293) (mod 33) = 24389 (mod 33) = 2.

 

4.5.2. Алгоритм Эль-Гамаля.

 

Данная система является альтернативой RSA и при равном значении ключа обеспечивает ту же криптостойкость .

Протокол передачи выглядит следующим образом:

1. Пользователям извеcтны числа P и G,  первое из которых «большое простое число», насчитывающее около 1024 битов, такое что p-1 делится на другое «среднее простое число» Q,  а второе – целое, причем

G(P-1)/Q(mod P) ≠ 1.

2. После выбора параметров домена определяют открытый и секретный ключи. Секретным ключом может быть любое натуральное число x, а открытый ключ получается по следующей формуле:             

H = Gx mod P.

3. Для шифрования поступают следующим образом:

- генерируют случайный эфемерный ключ k;

- вычисляют C1 = Gk;

- находят С2 = m * Hk,

- выдают получившийся шифротекст в виде пары С = (C1, С2).

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

Чтобы расшифровать пару данных С = (C1, C2), производят следующие преобразования:

 

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

Пусть Q = 101, Р = 809 и G = 3.

Легко проверить, что Q действительно делит число Р — 1, а порядок элемента G в группе Fp делится на Q, Порядок элемента G равен 808, поскольку

3808 (mod P) = 1;

И ни при каких меньших степенях такого равенства не получается.

В качестве пары открытого и секретного ключа выберем

x= 68 и H = Gx = 368 = 65 (mod P).

Допустим, нам нужно зашифровать сообщение, численное представление которого равно m = 100. Поступаем следующим образом.

- Генерируем случайный эфемерный ключ k = 89,

- Находим C1= Gk = 389 = 345 (mod P).

- Получаем C2 = m * Hk =100 • 6589 = 517 (modP).

- Отправляем шифротекст С = (345,517).

Партнер сможет восстановить текст, делая также вычисления:

Хэш-функции.

Хеш-функция — функция, выполняющая одностороннее преобразование входных данных, называемая также хешированием.

Хеширование – это преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины таким образом, чтобы изменение входных данных приводило к непредсказуемому изменению выходных данных. Такие преобразования также называются функциями свёртки, а их результаты называют хешем, хеш-кодом или дайджестом сообщения (англ. message digest).

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

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

Криптографическая хеш-функция должна обеспечивать:

· стойкость к коллизиям (два различных набора данных должны иметь различные результаты преобразования)

· необратимость (невозможность вычислить исходные данные по результату преобразования)

 

(Для специальностей 230101 Можно привести алгоритм MD5)

ЭЦП

 

Электро́нная цифрова́я по́дпись (ЭЦП)— реквизит ( - элементы документа, которые должны обязательно в нем присутствовать, иначе документ будет считаться недействительным) электронного документа.

Цели, преследуемые созданием ЭЦП:

1. Удостоверение источника документа. (получателю сообщения требуется убедиться, что оно исходит от конкретного отправителя). В зависимости от деталей определения документа могут быть подписаны такие поля, как «автор», «внесённые изменения», «метка времени» и т. д.

2. Защиту от изменений документа. При любом случайном или преднамеренном изменении документа (или подписи) изменится хэш, следовательно, подпись станет недействительной.

3. Невозможность отказа от авторства. Так как создать корректную подпись можно лишь, зная закрытый ключ, а он известен только владельцу, то владелец не может отказаться от своей подписи под документом.

 

4.7.1 Схемы ЭЦП

             Схема 1.

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

 

Участник A зашифровывает сообщение на своем секретном ключе KA, знание которого разделено с арбитром, затем шифрованное сообщение передается арбитру с указанием адресата данного сообщения (информация, идентифицирующая адресата, передается также в зашифрованном виде).

Арбитр расшифровывает полученное сообщение на ключе КА, производит необходимые проверки и затем зашифровывает на секретном ключе участника B (KB). Далее зашифрованное сообщение посылается участнику B вместе с информацией, что оно пришло от участника A.

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

Схема 2.

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

 

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

Схема 3.

Наиболее распространенная схема ЭЦП использует зашифрование окончательного результата обработки ЭД хэш-функцией при помощи асимметричного алгоритма.

Генерация подписи происходит следующим образом.

Участник A вычисляет хэш-код от ЭД. Полученный хэш-код проходит процедуру преобразования с использованием своего секретного ключа. После чего полученное значение (которое и является ЭЦП) вместе с ЭД отправляется участнику B.

Участник B должен получить ЭД с ЭЦП и сертифицированный открытый ключ участника A, а затем произвести расшифрование на нем ЭЦП, сам ЭД подвергается операции хэширования, после чего результаты сравниваются, и если они совпадают, то ЭЦП признается истинной, в противном случае ложной.

 

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

4.7.2 Схема цифровой подписи на алгоритме RSA

           Подпись  сообщения  вычисляется с использованием секретного ключа по формуле (обозначения используемые ранее):

Для проверки правильности подписи нужно убедиться, что выполняется равенство


Стеганография.

Стеганогра́фия (пер. с греч., «тайнопись») — это наука о скрытой передаче информации путём сохранения в тайне самого факта передачи. В отличие от криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает само его существование.

 

Классификация стеганографии

В конце 90-х годов выделилось несколько направлений стеганографии:

Классическая стеганография

Компьютерная стеганография

Цифровая стеганография

Классическая стеганография

Стеганография в Древнем мире

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

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

Симпатические чернила

Одним из наиболее распространенных методов классической стеганографии является использование симпатических (невидимых) чернил. Текст, записанный такими чернилами, проявляется только при определенных условиях (нагрев, освещение, химический проявитель и т. д.) Изобретенные еще в в I веке н. э. Филоном Александрийским, они продолжали использоваться как в средневековье, так и в новейшее время, например, в письмах русских революционеров из тюрем.


Дата добавления: 2018-05-12; просмотров: 831; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!