Здавалка
Главная | Обратная связь

Новое направление в криптографии , постулаты У. Диффи и М. Хеллмана



В середине 70-х гг. ХХ столетия произошел настоящий прорыв в современной криптографии – появление асимметричных криптосистем, которые не требовали передачи секретного ключа между сторонами. Здесь

отправной точкой принято считать работу, опубликованную Уитфилдом Диффи и Мартином Хеллманом в 1976 г. под названием "Новые направления в современной криптографии". В ней впервые сформулированы принципы обмена шифрованной информацией без обмена секретным ключом.

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

В 1980–90-е гг. появились совершенно новые направления криптографии: вероятностное шифрование, квантовая криптография и другие. Осознание их практической ценности еще впереди. Актуальной остается и задача совершенствования симметричных криптосистем. В этот же период были разработаны нефейстелевские шифры (SAFER, RC6 и др.), а в 2000 г.после открытого международного конкурса был принят новый национальный стандарт шифрования США – AES.

Постулаты У. Диффи и М. Хеллмана:

1. Ключ KA для шифрования сообщений входящих к абоненту А должен изготовить сам абонент А. Он же изготавливает ключ KA-1 - для расшифрования данных сообщений.

2. Ключ KA рассылается всем желающим, отправлять сообщения абоненту A, ключ KA-1 держится в секрете.

3. Ключ KA-1 не восстанавливается по ключу KA.

Алгоритм Диффи-Хелмана (1976) использует функцию дискретного возведения в степень и используется для открытого распределения ключей по открытому каналу связи.

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

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

Алгоритм основан на трудности вычислений дискретных логарифмов. Дискретный логарифм определяется следующим образом. Вводится понятие примитивного корня простого числа Q как числа, чьи степени создают все целые от 1 до Q – 1. Это означает, что если А является примитивным корнем простого числа Q, тогда числа

A mod Q, A2 mod ……AQ-1 mod Q

являются различными и состоят из целых от 1 до Q – 1 с некоторыми перестановками. В этом случае для любого целого B < Q и примитивного корня A простого числа Q можно найти единственную экспоненту Х, такую, что

Y =AX mod Q ,где 0≤ X ≤ (Q-1).

Экспонента X называется дискретным логарифмом, или индексом Y, по основанию A mod Q. Это обозначается как

indA,Q(Y)

Теперь опишем алгоритм обмена ключей Диффи-Хеллмана.

Общеизвестные элементы
Q Простое число
A A < Q и A является примитивным корнем Q
Создание пары ключей пользователем I  
Выбор случайного числа X i (закрытый ключ) Xi<Q  
Вычисление числа Y i (открытый ключ) Yi=AXimod Q  
Создание открытого ключа пользователем J
Выбор случайного числа X j (закрытый ключ) X j< Q
Вычисление случайного числа Y j (открытый ключ) Yj=A Ximod Q
       

 

Создание общего секретного ключа пользователем I
K= (Yi)Ximod Q

 

Создание общего секретного ключа пользователем J
K=(Yj)Xjmod Q

 

Предполагается, что существуют два известных всем числа: простое число Q и целое A, которое является примитивным корнем Q. Теперь предположим, что пользователи I и J хотят обменяться ключом для алгоритма симметричного шифрования. Пользователь I выбирает случайное число Xi< Q и вычисляет Y i=AXi mod Q. Аналогично пользователь J независимо выбирает случайное целое число Xj<Q и вычисляет Y i=AXj mod Q. Каждая сторона держит значение Х в секрете и делает значение Y доступным для другой стороны. Теперь пользователь I вычисляет ключ как K=(Yi)Xi mod Q, и пользователь J вычисляет ключ как K= (Yj)Xj mod Q. В результате по правилам модульной арифметики оба получат одно и то же значение:

K= (Yj)Xi mod Q= (AXj mod Q)Xi mod Q = (A Xj)Xi mod Q = A XjXi mod Q =

(A Xi)Xj mod Q= ( A Xi mod Q)Xj mod Q = ( Yi)Xj mod Q.

 

Таким образом, две стороны обменялись секретным ключом. Так как Xi и Xj являются закрытыми, противник может получить только следующие значения: Q, A, Yi и Yj. Для вычисления ключа атакующий должен взломать дискретный логарифм, т. е. вычислить

Xj = ind a,q(Yj)

39)







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.