Криптосистема Рабина

Криптосистема Рабина

Криптосистема Рабинакриптографический алгоритм с открытым ключом. Ее безопасность, как и у RSA, связана с трудностью разложения на множители.

Безопасность схемы Рабина опирается на сложность поиска квадратных корней по модулю составного числа. Сложность этого алгоритма аналогична проблеме разложения на множители.

Главным неудобством практического применения криптосистемы Рабина является то, что при расшифровке текста получается четыре различных сообщения. И нужно применить дополнительные усилия для нахождения истинного исходного текста.

Содержание

История

Данный алгоритм был опубликован в январе 1979 Майклом О. Рабином. Криптосистема Рабина была первой асимметричной криптосистемой, для которой было доказано, что восстановление исходного текста от зашифрованного столь же трудно как факторизация больших чисел. Точнее, она связана с трудностью извлечения квадратного корня по модулю составного числа N = р • q. Эти две задачи эквивалентны, т. е. - зная простые делители числа N, мы можем извлекать квадратные корни по модулю N, - умея извлекать квадратные корни по модулю N, мы в состоянии разложить N на простые множители.

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

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

Процесс генерации ключей следующий:

  • Выбираются два больших простых числа p и q, которые удовлетворяют условию p \equiv q \equiv 3 \pmod{4}. Такой специальный вид простых чисел сильно ускоряет процедуру извлечения корней по модулю р и q.
  • Тогда n = p \cdot q. n - открытый ключ. Числа p и q - закрытый ключ.

Для шифрования сообщения необходим открытый ключ n. Чтобы расшифровать зашифрованный текст нужны p и q.

Рассмотрим простой пример. Пусть p = 7 и q = 11, тогда n = 77. Открытый ключ, 77, публикуется для всеобщего обозрения, с помощью его шифруются сообщения. Закрытые ключи, 7 и 11, остаются известны только владельцу, и с помощью их расшифровываются сообщения. Такой выбор ключей – хорошо подходит для примера. Но плохой для практического использования, т.к. разложение на множители 77 тривиально.

Шифрование

Для шифрования используется только открытый ключ n. С помощью его исходный текст преобразовывается в зашифрованный. Для шифрования сообщения m нужно просто вычислить:

c = m^2 \, \bmod \, n.

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

В нашем примере. Пусть исходным текстом является m = 20. Тогда зашифрованным текстом будет:

c = m^2 \, \bmod \, n = 400 \, \bmod \, 77 = 15.

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

Расшифрование в этом алгоритме более сложное. Для него нужен закрытый ключ p и q. Процесс выглядит следующим образом:

Сначала, используя алгоритм Эвклида, из уравнения y_p \cdot p + y_q \cdot q = 1 находим числа y_p и y_q.

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

\begin{matrix}
r  & = & ( y_p \cdot p \cdot m_q + y_q \cdot q \cdot m_p) \, \bmod \, n  \\
-r & = & n - r  \\
s  & = & ( y_p \cdot p \cdot m_q - y_q \cdot q \cdot m_p) \, \bmod \, n  \\
-s & = & n - s 
\end{matrix}.

Один из этих корней r, -r, s, -s является истинным открытым текстом m .


Вернемся в нашему примеру: В результате расшифровки получаем: m \in \{ 64, \mathbf{20}, 13, 57 \}. Видим, что один из корней является исходным текстом m.

Оценка алгоритма

Эффективность

Расшифровка текста кроме правильного приводит еще к трем ложным результатам. Это является главным неудобством криптосистемы Рабина и одним из факторов, которые препятствовали тому, чтобы она нашла широкое практическое использование.

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

Скорость вычислений

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

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

Выбор нужного текста из четырех приводит к дополнительным вычислительным затратам. И это послужило тому, что криптосистема Рабина не получила широкого практического использования.

Безопасность

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

Криптосистема Рабина является доказуемо стойкой к атаке на основе подобранного открытого зашифрованного текста в рамках подхода “все или ничего”, тогда и только тогда, когда задача о разложении целого числа на простые множители является трудноразрешимой.

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

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

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

Процесс дополнительно уязвим, так как при кодировании используются только квадратные остатки. В примере при n = 77 только используется только 23 из 76 возможных состояний.

См. также

Криптосистема с открытым ключом

Ранцевая криптосистема Меркля-Хеллмана

Литература

1. http://www.ssl.stu.neva.ru/pws/crypto/appl_rus/ac_18_20.pdf

2. http://www.williamspublishing.com/PDF/5-8459-0847-7/part.pdf


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Криптосистема Рабина" в других словарях:

  • Односторонняя функция — Нерешённые проблемы computer science: Существуют ли односторонние функции ? Односторонняя функция (англ. one way function, OWF) э …   Википедия

  • Односторонняя функция с потайным входом — (англ. trapdoor function)  это функция, которая легко вычисляется в одном направлении, но трудно вычисляется в обратном без специальной информации (секрета), называемой «лазейкой» или «потайным входом». Односторонние функции с потайным… …   Википедия

  • Электронная цифровая подпись — Стиль этой статьи неэнциклопедичен или нарушает нормы русского языка. Статью следует исправить согласно стилистическим правилам Википедии. Электронная подпись (ЭП) информация в электронной форме, присоединенная к другой информации в электронной… …   Википедия

  • Простое число — Простое число  это натуральное число, имеющее ровно два различных натуральных делителя: единицу и само себя. Все остальные натуральные числа, кроме единицы, называются составными. Таким образом, все натуральные числа больше единицы… …   Википедия

  • Проблема Ландау — Простое число это натуральное число, которое имеет ровно 2 различных делителя (только 1 и самого себя). Все остальные числа, не равные единице, называются составными. Таким образом, все натуральные числа, за исключением единицы, разбиваются на… …   Википедия

  • Проблемы Ландау — Простое число это натуральное число, которое имеет ровно 2 различных делителя (только 1 и самого себя). Все остальные числа, не равные единице, называются составными. Таким образом, все натуральные числа, за исключением единицы, разбиваются на… …   Википедия

  • Простые множители — Простое число это натуральное число, которое имеет ровно 2 различных делителя (только 1 и самого себя). Все остальные числа, не равные единице, называются составными. Таким образом, все натуральные числа, за исключением единицы, разбиваются на… …   Википедия

  • Простые числа — Простое число это натуральное число, которое имеет ровно 2 различных делителя (только 1 и самого себя). Все остальные числа, не равные единице, называются составными. Таким образом, все натуральные числа, за исключением единицы, разбиваются на… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»