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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Криптосистема Рабіна — асиметрична криптографічна система, безпека якої забезпечується складністю пошуку квадратних коренів складеного числа. Безпека системи, як і безпека методу RSA, обумовлена ​​складністю розкладання на множники великих чисел. Зашифроване повідомлення можна розшифрувати 4-а способами. Недоліком системи є необхідність вибору істинного повідомлення з 4-х можливих.

Історія[ред. | ред. код]

У січні 1979 року Міхаель Рабін опублікував опис своєї системи. Було доведено, що відновлення початкового тексту з зашифрованого настільки ж важко, як факторизація великих чисел. Система Рабіна стала першою асиметричною криптосистемою, для якої було виконано такий доказ. Складність відновлення пов'язана з трудністю вилучення квадратного кореня за модулем складеного числа . Завдання факторизації і завдання по вилученню квадратного кореня еквівалентні, тобто:

  • знаючи прості дільники числа можна витягувати квадратний корінь по модулю ;
  • вміючи витягувати квадратний корінь по модулю , можна розкласти на прості множники.

Генерація ключа[ред. | ред. код]

Система Рабіна, як і будь-яка асиметрична криптосистема, використовує відкритий і закритий ключі. Відкритий ключ використовується для шифрування повідомлень і може бути опублікований для загального огляду. Закритий ключ необхідний для розшифровки і повинен бути відомий тільки одержувачам зашифрованих повідомлень.

Процес генерації ключів наступний:

  • вибираються два випадкових числа і з урахуванням таких вимог:
    • числа повинні бути великими (див. розрядність):
    • числа повинні бути простими;
    • повинна виконуватися умова: .

Виконання цих вимог сильно прискорює процедуру вилучення коренів за модулем р і q;

  • обчислюється число ;
  • число n — відкритий ключ; числа і  — закритий.

Приклад. Нехай і . Тоді . Число  — відкритий ключ, а числа і  — закритий. Одержувач повідомляє відправникам число 77. Відправники шифрують повідомлення, використовуючи число 77, і відправляють одержувачу. Одержувач розшифровує повідомлення за допомогою чисел 7 і 11. Наведені ключі погані для практичного використання, так як число 77 легко розкладається на прості множники (7 і 11).

Шифрування[ред. | ред. код]

Початкове повідомлення m (текст) шифрується за допомогою відкритого ключа — числа n за такою формулою:

c = m² mod n.

Завдяки використанню множення по модулю швидкість шифрування системи Рабина більше, ніж швидкість шифрування за методом RSA, навіть якщо в останньому випадку вибрати невелике значення експоненти.

Приклад (продовження). Нехай вихідним текстом m = 20. Тоді зашифрованим текстом буде: c = m² mod n = 20² mod 77 = 400 mod 77 = 15.

Розшифровка[ред. | ред. код]

Для розшифровки повідомлення необхідно закритий ключ — числа p і q . Процес розшифровки виглядає наступним чином:

Одне з цих чисел є істинним відкритим текстом m .

Приклад (закінчення). В результаті розшифровки отримуємо: . Бачимо, що один з коренів є вихідним текстом m .

Оцінка алгоритму[ред. | ред. код]

Ефективність[ред. | ред. код]

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

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

Швидкість обчислень[ред. | ред. код]

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

Для декодування китайська теорема про залишки застосована разом з двома зведення в степінь по модулю. Тут ефективність порівнянна RSA.

Вибір потрібного тексту з чотирьох призводить до додаткових обчислювальним затратам. І це послужило тому, що криптосистема Рабіна не отримала широкого практичного використання.

Безпека[ред. | ред. код]

Велика перевага криптосистеми Рабіна полягає в тому, що випадковий текст може бути відновлений повністю від зашифрованого тексту тільки за умови, що дешифрувальник здатний до ефективної факторизації відкритого ключа n.

Криптосистема Рабіна є доказовою стійкою до атаки на основі підібраного відкритого зашифрованого тексту в рамках підходу «все або нічого», тоді і тільки тоді, коли завдання про розкладання цілого числа на прості множники є важкою.

Стійкість за принципом «все або нічого» полягає в тому, що, маючи текст, зашифрований певним алгоритмом, атакуючий повинен відновити блок вихідного тексту, розмір якого, як правило, визначається параметром безпеки криптосистеми. Маючи вихідний і зашифрований текст, атакуючий повинен відновити цілий блок секретного ключа. При цьому атакуючий або домагається повного успіху, або не отримує нічого. Під словом «нічого» мається на увазі, що атакуючий не має ніякої секретної інформації ні до, ні після безуспішної атаки.

Криптосистема Рабіна є абсолютно беззахисною перед атакою на основі обраного шифротекста. Як правило, атакуючий використовує всі наявні у нього можливості. Він вступає в контакт з атакованим користувачем, посилають йому зашифрований текст для подальшої розшифровки і вимагають повернути вихідний текст.

Наприклад, при додаванні надмірності, повторення останніх 64 біта, можна зробити корінь єдиним. Алгоритм розшифрування в цьому випадку видає єдиний корінь, який вже відомий атакуючому.

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

Див. також[ред. | ред. код]

Література[ред. | ред. код]

Книги[ред. | ред. код]

  1. Alfred J. Menezes; Paul C. van Oorschot; Scott A. Vanstone (August 2001). Handbook of Applied Cryptography (вид. Fifth printing). CRC Press. ISBN 0-8493-8523-7.  (англ.)

Інше[ред. | ред. код]

  1. www.williamspublishing.com/PDF/5-8459-0847-7/part.pdf (рос.)

Джерела[ред. | ред. код]