Основы теории защиты информации
Криптосистема без передачи ключей
Пусть абоненты условились организовать между собой секретную переписку. Для этой цели они выбирают достаточно большое простое число такое, что хорошо разлагается на не очень большие простые множители. Затем каждый из абонентов независимо один от другого выбирает себе некоторое натуральное число, взаимно простое с . Пусть число абонента - , абонента - и т.д. Числа составляют первые секретные ключи соответствующих абонентов. Вторые секретные ключи ( для , для и т.д.) находятся из уравнений: для из , ; для - из , и т.д. Пересылаемые сообщения, коды-числа, должны быть меньше . В случае, когда сообщение больше или равно , оно разбивается на части таким образом, чтобы каждая часть была числом, меньшим .
Предположим абонент решил отправить сообщение ( ) . Для этого он сначала зашифровывает свое сообщение ключом , получая по формуле шифрованное сообщение , которое отправляется . , получив , зашифровывает его своим ключом , получая по формуле шифрованное сообщение , которое отправляется обратно к . шифрует полученное сообщение ключом по формуле и окончательно отправляет к . , используя ключ , сможет теперь расшифровать исходное сообщение . Действительно, , т.к. , следовательно, для некоторого целого и , т.к. по теореме Эйлера-Ферма.
Пример. Абоненты и вместе выбрали ( ), выбрал , а - . Затем из уравнения находит , а из подобного уравнения находит . При передаче сообщения от к сначала отправляет к , из вычисляет и отправляет его обратно , из вычисляет для , наконец, может прочитать посланное ему сообщение .
Упражнение 48 Между абонентами и установлен секретный канал связи без передачи ключей при заданных и их первых ключах 15 и 21. Описать процесс передачи сообщений 22 (от к ) и 17 (от к ).
Криптосистема с открытым ключом
Первую и наиболее известную систему с открытым ключом разработали в 1978 году американцы Р. Ривест (Rivest R.), Э. Шамир (Shamir A.) и Л. Адлеман (Adleman L.). По их именам эта система получила название RSA.
Пусть абоненты и решили организовать для себя возможность секретной переписки. Для этого каждый из них независимо выбирает два больших простых числа ( , и , ), находит их произведение ( и ), функцию Эйлера от этого произведения ( и ) и случайное число ( и ), меньшее вычисленного значения функции Эйлера и взаимно простое с ним. Кроме того, из уравнения находит ( ), а из уравнения находит ( ). Затем и печатают доступную всем книгу паролей вида:
Теперь кто-угодно может отправлять конфиденциальные сообщения или . Например, если пользователь книги паролей хочет отправить сообщение для ( должно быть меньшим , или делиться на куски, меньшие ), то он использует ключ из книги паролей для получения шифрованного сообщения по формуле , которое и отправляется . для дешифровки использует ключ в формуле , т.к. , следовательно, для некоторого целого и , т.к. по теореме Эйлера-Ферма. Доказано112, что задача нахождения секретного ключа по данным из книги паролей имеет ту же сложность, что и задача разложения числа на простые множители.
Пример. Пусть для и , тогда , , , (из уравнения ). Следовательно, запись в книге паролей для будет иметь вид . Если кто-то захочет отправить секретное сообщение , то он должен сначала превратить его в шифровку по формуле . Когда получит он дешифрует его по формуле .
Упражнение 49 Нужно послать секретные сообщения 25 и 2 для JB и 14 для CIA, используя следующие записи открытой книги паролей криптосистемы RSA:
JB: 77,7; CIA: 667,15.
Упражнение 50 Пользователь системы RSA выбрал и . Какие из чисел 12, 33, 125, 513 он может выбрать для открытого ключа? Вычислить для них закрытый ключ.
Упражнение 51 Пользователь системы RSA, выбравший , и , получил шифрованное сообщение . Дешифровать .