А.А.Молдлвян, Н.А.Молдоовян, Н.Д.Гуц, Б.В.Изотов Криптография. Скоростные шифры.-СПб.: БХВ-Петербург, 2002г. 58-61 срт. Двухключевые криптосистемы Система открытого распределения ключей В 1976 г. У. Диффи и М. Е. Хеллман опубликовали статью, которая ознаменовала собой рождение двухключевой криптографии и привела к значительному росту числа открытых исследований в области криптографии. Она содержала ошеломляющий результат: возможно построение практически стойких секретных систем, которые не требуют передачи секретного ключа. У. Диффи и М. Е. Хеллман ввели понятие односторонней функции с потайным ходом. Под односторонней функцией f понимается функция f(x), которая легко вычислима для любого значения аргументах из области определения, однако для случайно выбранного у из области ее значений вычислительно сложно нахождение значения аргумента х, для которого выполняется f(x) = у. Использование таких функций для защиты входа в вычислительную систему путем одностороннего преобразования паролей было известно. Но как применить одностороннюю функцию в криптографических системах, когда даже законный получатель не сможет выполнить процедуру расшифрования? Для шифрования была предложена односторонняя функция с потайным ходом (секретом). Под односторонней функцией с потайным ходом понимается семейство обратимых функций f z c с параметром z, таких что для данного z можно найти алгоритмы Е, и D,, позволяющие легко вычислить значение f z (x) для всех х из области определения, а также f z1 ( y) для всех у из области значений, однако практически для всех значений параметра z и практически для всех значений у из области значений/, нахождение f z1 ( y) вычислительно неосуществимо даже при известном E z . В качестве односторонней функции У. Диффи и М. Е. Хеллман предложили функцию дискретного возведения в степень f ( x) x (mod p) где х — целое число, 1 x p 1, ( p k ) -битовое простое число. Причем выбирается такое число а<р, степени которого по модулю р представляют собой упорядоченное множество чисел 1 , 2 ,..., p 1 , являющееся некоторой перестановкой чисел 1,2,..., p 1 . (Такое число а называется первообразным корнем по модулю р.) Даже для очень больших модулей р (например, при к= 1024 бит) для данного c легко вычислить значение этой функции. Процедура ее вычисления называется дискретным возведением в степень. Для выполнения этой процедуры достаточно выполнение около 2 log 2 p операций умножения Аг-битовых чисел (или log 2 p умножений и log 2 p делений 2k-битовых чисел на n-битовые). Процедура дискретного возведения в степень основана на предварительном вычислении значений (по модулю p) 1 , 2 , 4 , 8 ,..., 2 k 1 Обратной к функции дискретного возведения в степень является функция f 1 ( y) , которая ставит в соответствие заданному значению у такое значение х, для которого выполняется условие x y(mod p) Задача нахождения такого х называется задачей дискретного логарифмирования (нахождения дискретных логарифмов). Дискретные логарифмы сложно вычисляются, когда число р - 1 содержит один большой простой множитель, например, когда оно представимо в виде p 1 2 p , где p — простое число. При этом условии трудоемкость задачи нахождения дискретного логарифма 1/ 2 равна примерно p умножений по модулю р. Решение такой задачи является вычислительно неосуществимым при больших значениях к (например, при k 512 а, следовательно, при указанных условиях, накладываемых на выбор чисел р и а, функция дискретного возведения в степень является односторонней. Системой (методом) открытого распространения ключей ДиффиХеллмана называется изложенный ниже способ использования дискретного возведения в степень для обмена секретными ключами между пользователями сети с применением только открытых сообщений. Выбирается большое простое число р и соответствующий ему первообразный корень а<р. (Для обеспечения стойкости рассматриваемой системы открытого шифрования на число р накладывается следующее условие — разложение числа р - 1 на множители должно содержать, по крайней мере, один большой простой множитель; размер числам должен быть не менее 512 бит.) Механизм распределения секретных ключей по открытому каналу состоит в следующем. Каждый абонент выбирает случайный секретный ключ х и вырабатывает открытый ключ у, соответствующий выбранному секретному ключу, в соответствии с формулой y x (mod p) . Для любого значения х легко вычислить у, однако при размере числа р равном 512 бит и более вычислительно неосуществимо выполнение дискретного логарифмирования, а следовательно, и определение числа х, для которого значение x mod p равно заданному значению у. Все абоненты размещают свои открытые ключи в общедоступном справочнике. Данный справочник должен быть заверен специально созданным доверительным центром, чтобы исключить возможные нападения путем подмены открытых ключей или навязывания ложных открытых ключей. Если два абонента А и В хотят установить секретную связь, то они поступают следующим образом. Абонент А берет из справочника открытый ключ абонента В и, используя свой секретный ключ, вычисляет общий секретный ключ: x Z AB ( y B ) x ( x ) x (mod p) , где уА и ув — открытые ключи абонентов А и В; хА и хв — соответствующие секретные ключи. Общий секретный ключ ZAB нет необходимости передавать по сети связи, поскольку абонент В по известному A B A BxA из справочника открытому ключу абонента А аналогичным способом вычисляет значение x Z AB ( y A ) x ( x ) x (mod p) . Оппоненту (потенциальному нарушителю) известны значения y B x (mod p) и y A x (mod p) , но для того чтобы вычислить ZAB, ОН должен решить B B A BxA B A трудную задачу дискретного логарифмирования. Общий секретный ключ может использоваться абонентами для шифрования сеансовых секретных ключей, а последние— для шифрования сообщений с использованием симметричных методов шифрования. Решение задачи дискретного логарифмирования существует, но оно вычислительно неосуществимо. Таким образом, стойкость метода Диффи— Хеллмана основана на сложности дискретного логарифмирования. В одноключевых криптосистемах существуют две принципиальные проблемы: □ распределение секретных ключей по защищенному каналу; О аутентификация секретного ключа. Под аутентификацией понимается проведение процедуры, которая позволяет получателю удостовериться, что секретный ключ принадлежит законному отправителю (например, центру распределения ключей). Система открытого распределения ключей решает первую проблему, т. е. она позволяет обойтись без защищенного канала для распределения секретных ключей. Однако она не устраняет необходимости аутентификации. При этом надо отметить, что в двухключевой криптографии проблема аутентификации не возникает, а передвигается на первый план, так как проблема распределения ключей разрешается ее методами.