stringtranslate.com

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

Криптосистема Рабина — это семейство схем шифрования с открытым ключом, основанных на функции-лазере , безопасность которой, как и у RSA , связана со сложностью факторизации целых чисел . [1] [2]

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

Схемы шифрования с открытым ключом, основанные на лазейке Рабина, используются в основном для примеров в учебниках. Напротив, RSA лежит в основе стандартных схем шифрования с открытым ключом, таких как RSAES-PKCS1-v1_5 и RSAES-OAEP , которые широко используются на практике.

История

Функция лазейки Рабина была впервые опубликована как часть схемы подписи Рабина в 1978 году Майклом О. Рабином . [3] [4] [5] Схема подписи Рабина была первой схемой цифровой подписи , в которой было доказано, что подделка подписи так же сложна, как факторизация.

Функция лазейки позже была использована в учебниках как пример схемы шифрования с открытым ключом , [6] [7] [1] которая стала известна как криптосистема Рабина, хотя Рабин никогда не публиковал ее как схему шифрования.

Алгоритм шифрования

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

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

Ключи для криптосистемы Рабина генерируются следующим образом:

  1. Выберите два больших различных простых числа и такие, что и .
  2. Вычислить .

Затем идет открытый ключ, а пара — закрытый ключ.

Шифрование

Сообщение можно зашифровать, сначала преобразовав его в число с помощью обратимого преобразования, а затем вычислив . Шифрованный текст .

Расшифровка

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

  1. Вычислите квадратный корень из модуля и, используя эти формулы:
  2. Используйте расширенный алгоритм Евклида , чтобы найти и такое, что .
  3. Используйте китайскую теорему об остатках , чтобы найти четыре квадратных корня из по модулю :

Одно из этих четырех значений является исходным открытым текстом , хотя какое из четырех является правильным, невозможно определить без дополнительной информации.

Вычисление квадратных корней

Мы можем показать, что формулы на шаге 1 выше фактически дают квадратные корни из следующего. Для первой формулы мы хотим доказать, что . Поскольку показатель степени является целым числом. Доказательство тривиально, если , поэтому мы можем предположить, что не делит . Обратите внимание, что это подразумевает, что , поэтому c является квадратичным вычетом по модулю . Затем

Последний шаг оправдан критерием Эйлера .

Пример

В качестве примера возьмем и , тогда . Возьмем в качестве нашего открытого текста. Зашифрованный текст такой .

Расшифровка происходит следующим образом:

  1. Вычислить и .
  2. Используйте расширенный алгоритм Евклида для вычисления и . Мы можем это подтвердить .
  3. Вычислите четырех кандидатов открытого текста:

и мы видим, что это и есть желаемый открытый текст. Обратите внимание, что все четыре кандидата представляют собой квадратные корни из 15 по модулю 77. То есть для каждого кандидата , поэтому каждый зашифровывает одно и то же значение 15.

Алгоритм цифровой подписи

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

Подписание

Сообщение можно подписать закрытым ключом следующим образом.

  1. Генерация случайного значения .
  2. Используйте криптографическую хэш-функцию для вычисления , где двойная черта обозначает конкатенацию. должно быть целым числом меньше .
  3. Найдите квадратный корень из закрытого ключа . Это даст обычные четыре результата : .
  4. Можно было бы ожидать, что возведение каждого в квадрат даст . Однако это будет верно только в том случае, если это квадратичный вычет по модулю и . Чтобы определить, так ли это, Square . Если это не дает результата , повторите этот алгоритм с новым случайным числом . Ожидаемое количество раз, которое необходимо повторить этот алгоритм, прежде чем будет найден подходящий вариант, равно 4.
  5. Найдя квадратный корень из , подпись будет .

Проверка подписи

Подпись сообщения можно проверить с помощью открытого ключа следующим образом.

  1. Вычислить .
  2. Вычислить
  3. Подпись действительна, если она является подделкой, в противном случае.

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

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

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

Если открытый текст предназначен для представления текстового сообщения, догадаться нетрудно; однако, если открытый текст предназначен для представления числового значения, эта проблема становится проблемой, которую необходимо решить с помощью какой-то схемы устранения неоднозначности. Чтобы устранить эту проблему, можно выбрать открытый текст со специальной структурой или добавить отступы . Способ устранения неоднозначности инверсии был предложен Блюмом и Уильямсом: два используемых простых числа ограничиваются простыми числами, конгруэнтными 3 по модулю 4, а область возведения в квадрат ограничивается набором квадратичных остатков. Эти ограничения превращают функцию возведения в квадрат в перестановку с люком , устраняя двусмысленность. [8]

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

Для шифрования необходимо вычислить квадрат по модулю n . Это более эффективно, чем RSA , который требует расчета как минимум куба.

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

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

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

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

Криптосистема Рабина небезопасна против атаки с выбранным зашифрованным текстом (даже когда сообщения-запросы выбираются равномерно случайным образом из пространства сообщений). [6] : 214  Добавляя избыточность, например, повторение последних 64 битов, можно заставить систему производить один корень. Это предотвращает атаку с выбранным зашифрованным текстом, поскольку алгоритм дешифрования создает только тот корень, который уже известен злоумышленнику. Если применить этот метод, доказательство эквивалентности с проблемой факторизации не удастся, поэтому по состоянию на 2004 год неясно, безопасен ли этот вариант. Однако «Справочник по прикладной криптографии» Менезеса, Ооршота и Ванстона считает эту эквивалентность вероятной до тех пор, пока поиск корней остается процессом, состоящим из двух частей (1. корни и 2. применение китайской теоремы об остатках).

Смотрите также

Примечания

  1. ^ abc Гэлбрейт, Стивен Д. (2012). «§24.2: Учебник по криптосистеме Рабина». Математика криптографии с открытым ключом . Издательство Кембриджского университета. стр. 491–494. ISBN 978-1-10701392-6.
  2. ^ Белларе, Михир ; Гольдвассер, Шафи (июль 2008 г.). «§2.3.4 Кандидат в функцию квадратурного люка Рабина». Конспекты лекций по криптографии (PDF) . стр. 29–32.
  3. ^ Рабин, Майкл О. (1978). «Цифровые подписи». В Демилло, Ричард А .; Добкин, Дэвид П .; Джонс, Анита К .; Липтон, Ричард Дж. (ред.). Основы безопасных вычислений . Нью-Йорк: Академическая пресса. стр. 155–168. ISBN 0-12-210350-5.
  4. ^ Рабин, Майкл О. (январь 1979 г.). Цифровые подписи и функции открытого ключа, столь же неразрешимые, как и факторизация (PDF) (Технический отчет). Кембридж, Массачусетс, США: Лаборатория компьютерных наук Массачусетского технологического института. ТР-212.
  5. ^ Белларе, Михир ; Рогауэй, Филипп (май 1996 г.). Маурер, Ули (ред.). Точная безопасность цифровых подписей — как подписывать с помощью RSA и Rabin . Достижения в криптологии – EUROCRYPT '96. Конспекты лекций по информатике. Том. 1070. Сарагоса, Испания: Спрингер. стр. 399–416. дои : 10.1007/3-540-68339-9_34 . ISBN 978-3-540-61186-8.
  6. ^ Аб Стинсон, Дуглас (2006). «5,8». Криптография: теория и практика (3-е изд.). Чепмен и Холл/CRC. стр. 211–214. ISBN 978-1-58488-508-5.
  7. ^ Менезес, Альфред Дж .; ван Оршот, Пол С .; Ванстон, Скотт А. (октябрь 1996 г.). «§8.3: Шифрование с открытым ключом Рабина». Справочник по прикладной криптографии (PDF) . ЦРК Пресс. стр. 292–294. ISBN 0-8493-8523-7.
  8. ^ Белларе, Михир ; Гольдвассер, Шафи (июль 2008 г.). «§2.3.5 Возводящую в квадрат перестановку, которую так же трудно инвертировать, как и факторизацию». Конспекты лекций по криптографии (PDF) . стр. 32–33.

Рекомендации

Внешние ссылки