Алгоритм шифрования с асимметричным ключом
Криптосистема Блюма–Гольдвассера (BG) — это асимметричный алгоритм шифрования, предложенный Мануэлем Блюмом и Шафи Голдвассером в 1984 году. Блюм–Гольдвассер — это вероятностная , семантически безопасная криптосистема с расширением шифртекста постоянного размера . Алгоритм шифрования реализует потоковый шифр на основе XOR с использованием генератора псевдослучайных чисел Блюма-Блюма-Шуба (BBS) для генерации потока ключей . Расшифровка выполняется путем манипулирования конечным состоянием генератора BBS с использованием закрытого ключа для нахождения начального начального числа и восстановления потока ключей.
Криптосистема BG семантически безопасна на основе предполагаемой неразрешимости целочисленной факторизации ; в частности, факторизации составного значения , где — большие простые числа . BG имеет множество преимуществ по сравнению с более ранними вероятностными схемами шифрования, такими как криптосистема Голдвассера–Микали . Во-первых, ее семантическая безопасность сводится исключительно к целочисленной факторизации, не требуя никаких дополнительных предположений (например, сложности проблемы квадратичного остатка или проблемы RSA ). Во-вторых, BG эффективна с точки зрения хранения, вызывая расширение шифротекста постоянного размера независимо от длины сообщения. BG также относительно эффективна с точки зрения вычислений и хорошо справляется даже по сравнению с криптосистемами, такими как RSA (в зависимости от длины сообщения и выбора экспоненты). Однако BG весьма уязвима для атак с адаптивным выбором шифротекста (см. ниже).
Поскольку шифрование выполняется с использованием вероятностного алгоритма, заданный открытый текст может производить очень разные шифртексты каждый раз, когда он шифруется. Это имеет значительные преимущества, поскольку не позволяет злоумышленнику распознавать перехваченные сообщения, сравнивая их со словарем известных шифртекстов.
Операция
Криптосистема Блюма–Гольдвассера состоит из трех алгоритмов: вероятностного алгоритма генерации ключей, который создает открытый и закрытый ключ, вероятностного алгоритма шифрования и детерминированного алгоритма дешифрования.
Генерация ключей
Открытый и закрытый ключи генерируются следующим образом:
- Выберите два больших различных простых числа и такие, что и .
- Вычислить . [1]
Тогда это открытый ключ, а пара — это закрытый ключ.
Шифрование
Сообщение шифруется открытым ключом следующим образом:
- Вычислить размер блока в битах .
- Преобразовать в последовательность блоков , где каждый блок имеет длину бит.
- Выберите случайное целое число .
- Вычислить .
- Для от 1 до
- Вычислить .
- Вычислите наименее значимые биты .
- Вычислить .
- Наконец, вычислите .
Тогда шифрование сообщения представляет собой все значения плюс конечное значение: .
Расшифровка
Зашифрованное сообщение можно расшифровать с помощью закрытого ключа следующим образом:
- Вычислить .
- Вычислить .
- Вычислить .
- Вычислить .
- Используя расширенный алгоритм Евклида , вычислите и такие, что .
- Вычислить . Это будет то же самое значение, которое использовалось при шифровании (см. доказательство ниже). Затем можно использовать для вычисления той же последовательности значений, которая использовалась при шифровании для расшифровки сообщения, как показано ниже.
- Для от 1 до
- Вычислить .
- Вычислите наименее значимые биты .
- Вычислить .
- Наконец, соберите значения в сообщение .
Пример
Пусть и . Тогда и . Чтобы зашифровать шестибитное сообщение , мы разбиваем его на два 3-битных блока , так что . Мы выбираем случайное и вычисляем . Теперь мы вычисляем значения следующим образом:
Итак, шифрование такое .
Для расшифровки мы вычисляем
Видно, что имеет то же значение, что и в алгоритме шифрования. Расшифровка, следовательно, выполняется так же, как и шифрование:
Доказательство правильности
Мы должны показать, что значение, вычисленное на шаге 6 алгоритма дешифрования, равно значению, вычисленному на шаге 4 алгоритма шифрования.
В алгоритме шифрования по построению есть квадратичный вычет по модулю . Следовательно, он также является квадратичным вычетом по модулю , как и все остальные значения, полученные из него возведением в квадрат. Следовательно, по критерию Эйлера , . Тогда
Сходным образом,
Возводя первое уравнение в степень, получаем
Повторяя это раз, мы имеем
И с помощью аналогичного рассуждения мы можем показать, что .
Наконец, поскольку , мы можем умножить на и получить
откуда , по модулю и , и , следовательно .
Безопасность и эффективность
Схема Блюма–Гольдвассера является семантически безопасной на основе сложности предсказания битов потока ключей, учитывая только конечное состояние BBS и открытый ключ . Однако шифртексты формы уязвимы для атаки с адаптивным выбранным шифртекстом , в которой противник запрашивает расшифровку выбранного шифртекста . Расшифровка исходного шифртекста может быть вычислена как .
В зависимости от размера открытого текста BG может быть более или менее затратным в вычислительном отношении, чем RSA. Поскольку большинство развертываний RSA используют фиксированную экспоненту шифрования, оптимизированную для минимизации времени шифрования, шифрование RSA обычно превосходит BG для всех сообщений, кроме самых коротких. Однако, поскольку экспонента дешифрования RSA распределена случайным образом, модульное возведение в степень может потребовать сопоставимого количества возведений в квадрат/умножений для дешифрования BG для шифртекста той же длины. Преимущество BG заключается в более эффективном масштабировании для более длинных шифртекстов, где RSA требует нескольких отдельных шифрований. В этих случаях BG может быть значительно более эффективным.
Ссылки
- ^ RFC 4086, раздел «6.2.2. Генератор последовательности Blum Blum Shub»
- М. Блюм, С. Голдвассер, «Эффективная вероятностная схема шифрования с открытым ключом, которая скрывает всю частичную информацию», Труды конференции « Достижения в криптологии – CRYPTO '84 » , стр. 289–299, Springer Verlag, 1985.
- Менезес, Альфред; ван Ооршот, Пол К.; и Ванстоун, Скотт А. Справочник по прикладной криптографии . CRC Press, октябрь 1996 г. ISBN 0-8493-8523-7
Внешние ссылки
- Менезес, Ооршот, Ванстоун, Скотт: Справочник по прикладной криптографии (бесплатные загрузки в формате PDF), см. Главу 8