Что такое GSM
a65debd7

Алгоритмы с открытым ключом


алгоритмы с открытым ключом.

Классические алгоритмы используют один ключ для шифрования-дешифрования. Алгоритмы с открытым ключом используют два ключа:

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

Алгоритмы шифрования с открытым ключом построены на определении односторонней функции, то есть некоторой функции f, такой, что для любого х из ее области определения f (х) легко вычислима, однако практически для всех у из ее области значений нахождение х, для которого y=f(x) вычислительно, не осуществимо [5.1-5.3]. То есть, односторонняя функция является отдельной функцией, которая легко рассчитывается ЭВМ в приемлемом объеме времени, но время расчета обратной функции в существующих условиях недопустимо большое.

Первый алгоритм шифрования с общим ключом был назван RSA (первые буквы фамилий авторов Rivest, Shamir, Adieman) [5.1-5.3]. Алгоритм базируется на двух функциях Е и D, связанных соотношением:

D (Е(*) = Е (D(*)).

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

Два пользователя А и В могут использовать алгоритм RSA, чтобы передать любое зашифрованное сообщение. Если абонент А хочет отправить сообщение М абоненту В, то он может сделать это следующим образом:

- зашифровать сообщение М;

- подписать сообщение М;

- зашифровать и подписать М. В первом случае: А обеспечивает преобразование М, используя открытый ключ


С = Ев (М)

и посылает его абоненту В. В принимает С и вычисляет db (с) = db (Ев (М)) = М.

Во втором случае: А подписывает М посредством вычисления F = Da (М)

и посылает F абоненту В (эти операции может осуществлять только пользователь А, которому известен секретный ключ Da). В получает F и вычисляет

Еа (F) = Еа (Da (М)) = М.

В теперь известно, что сообщение М действительно послано пользователем А. В этом случае секретность сообщения М не гарантируется, так как все могут осуществить такую же операцию с использованием общего ключа Еа. В третьем случае: А вычисляет

F = Da (М) и С = Ев (F) = Ев (Da (М);

А посылает С к В. В получает С и вычисляет db (с) = db (Ев (F)) = Da (М); В может теперь легко получить М, вычислив Еа (Da (М)) = М.

До операции шифрования и подшей каждое сообщение М должно разделяться на блоки фиксированной длины, затем каждый блок кодируется как совокупность фиксированного числа цифр. RSA кодер оперирует такими отдельными блоками в каждом цикле кодирования. Полное описание алгоритма RSA изложено, например, в [5.1, 5.2].

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

В стандарте GSM термин "безопасность" понимается как исключение несанкционированного использования системы и обеспечение секретности переговоров подвижных абонентов. Определены следующие механизмы безопасности в стандарте GSM [5.4, 5.5]:


Содержание раздела