Криптосистема Рабина
Криптосистема Рабина — это семейство шифрования с открытым ключом схем .основан на функции-ловушке , безопасность которой, как и у RSA , связана со сложностью факторизации целых чисел . [1] [2]
Преимущество функции-лазейки Рабина состоит в том, что математически доказано, что ее инвертирование так же сложно, как и факторизация целых чисел, в то время как для функции-лазейки RSA такого доказательства не существует.Его недостаток заключается в том, что каждый выходной сигнал функции Рабина может быть сгенерирован любым из четырех возможных входных данных; если каждый вывод представляет собой зашифрованный текст, при расшифровке требуется дополнительная сложность, чтобы определить, какой из четырех возможных входных данных был истинным открытым текстом.Наивные попытки обойти эту проблему часто либо позволяют атаковать выбранный зашифрованный текст для восстановления секретного ключа, либо, закодировав избыточность в пространстве открытого текста, делают недействительным доказательство безопасности относительно факторинга. [1]
Схемы шифрования с открытым ключом, основанные на лазейке Рабина, используются в основном для примеров в учебниках.Напротив, RSA лежит в основе стандартных схем шифрования с открытым ключом, таких как RSAES-PKCS1-v1_5 и RSAES-OAEP , которые широко используются на практике.
История [ править ]
Функция лазейки Рабина была впервые опубликована как часть схемы подписи Рабина в 1978 году Майклом О. Рабином . [3] [4] [5] Схема подписи Рабина была первой схемой цифровой подписи , в которой было доказано, что подделка подписи столь же сложна, как факторинг.
Функция лазейки позже была использована в учебниках как пример схемы шифрования с открытым ключом . [6] [7] [1] которая стала известна как криптосистема Рабина, хотя Рабин никогда не публиковал ее как схему шифрования.
Алгоритм шифрования [ править ]
Как и все асимметричные криптосистемы, система Рабина использует пару ключей: открытый ключ для шифрования и закрытый ключ для дешифрования. Открытый ключ публикуется для использования всеми, а закрытый ключ остается известным только получателю сообщения.
Генерация ключей [ править ]
Ключи для криптосистемы Рабина генерируются следующим образом:
- Выберите два больших различных простых числа. и такой, что и .
- Вычислить .
Затем это открытый ключ и пара это закрытый ключ.
Шифрование [ править ]
Сообщение можно зашифровать, предварительно преобразовав его в число используя обратимое отображение, затем вычисляя . Зашифрованный текст .
Расшифровка [ править ]
Сообщение можно восстановить из зашифрованного текста взяв его квадратный корень по модулю следующее.
- Вычислить квадратный корень из модуль и используя эти формулы:
- Используйте расширенный алгоритм Евклида, чтобы найти и такой, что .
- Используйте китайскую теорему об остатках , чтобы найти четыре квадратных корня из модуль :
Одно из этих четырех значений является исходным открытым текстом. , хотя какой из четырёх правильный, без дополнительной информации определить невозможно.
Вычисление квадратных корней [ править ]
Мы можем показать, что формулы на шаге 1 выше фактически производят квадратные корни из следующее. Для первой формулы мы хотим доказать, что . С показатель степени является целым числом. Доказательство тривиально, если , поэтому мы можем предположить, что не делит . Обратите внимание, что подразумевает, что , поэтому c — квадратичный вычет по модулю . Затем
Последний шаг оправдан критерием Эйлера .
Пример [ править ]
В качестве примера возьмем и , затем . Брать в качестве нашего открытого текста. Таким образом, зашифрованный текст .
Расшифровка происходит следующим образом:
- Вычислить и .
- Используйте расширенный алгоритм Евклида для вычисления и . Мы можем это подтвердить .
- Вычислите четырех кандидатов открытого текста:
и мы видим это это желаемый открытый текст. Обратите внимание, что все четыре кандидата представляют собой квадратные корни из 15 по модулю 77. То есть для каждого кандидата , поэтому каждый шифруется с тем же значением, 15.
цифровой подписи Алгоритм
Криптосистема Рабина может использоваться для создания и проверки цифровых подписей . Для создания подписи требуется закрытый ключ . Для проверки подписи требуется открытый ключ .
Подписание [ править ]
Сообщение может быть подписан закрытым ключом следующее.
- Генерировать случайное значение .
- Используйте криптографическую хэш-функцию вычислить , где двойная черта означает конкатенацию. должно быть целым числом меньше, чем .
- Найдите квадратный корень из используя закрытый ключ . Это даст обычные четыре результата: .
- Можно было бы ожидать, что возведение каждого в квадрат будет производить . Однако это будет верно только в том случае, если оказывается квадратичным вычетом по модулю и . Чтобы определить, так ли это, возведите квадрат . Если это не даст , повторите этот алгоритм с новым случайным . Ожидаемое количество раз, которое необходимо повторить этот алгоритм, прежде чем будет найден подходящий вариант. это 4.
- Найдя квадратный корень из , подпись .
Проверка подписи [ править ]
Подпись для сообщения можно проверить с помощью открытого ключа следующее.
- Вычислить .
- Вычислить
- Подпись действительна, если а в остальном подделка.
Оценка алгоритма [ править ]
Эффективность [ править ]
Расшифровка дает три ложных результата в дополнение к правильному, так что правильный результат необходимо угадать. Это основной недостаток криптосистемы Рабина и один из факторов, помешавших ей найти широкое практическое применение.
Если открытый текст предназначен для представления текстового сообщения, догадаться нетрудно; однако, если открытый текст предназначен для представления числового значения, эта проблема становится проблемой, которую необходимо решить с помощью какой-то схемы устранения неоднозначности. можно выбрать открытый текст со специальной структурой или добавить отступы Чтобы устранить эту проблему, . Способ устранения неоднозначности инверсии был предложен Блюмом и Уильямсом: два используемых простых числа ограничиваются простыми числами, конгруэнтными 3 по модулю 4, а область возведения в квадрат ограничивается набором квадратичных остатков. Эти ограничения превращают функцию возведения в квадрат в с люком перестановку , устраняя двусмысленность. [8]
Эффективность [ править ]
квадрат по модулю n Для шифрования необходимо вычислить . Это более эффективно, чем RSA , который требует расчета как минимум куба.
Для расшифровки китайская теорема об остатках применяется , а также два модульных возведения в степень . Здесь эффективность сравнима с RSA.
Безопасность [ править ]
Было доказано, что любой алгоритм, который находит один из возможных открытых текстов для каждого зашифрованного Рабином зашифрованного текста, может использоваться для факторизации модуля. . Таким образом, расшифровка Рабина для случайного открытого текста по крайней мере так же сложна, как и задача факторизации целых чисел, что не было доказано для RSA. Обычно считается, что не существует алгоритма факторизации с полиномиальным временем, а это означает, что не существует эффективного алгоритма для расшифровки случайного значения, зашифрованного Рабином, без закрытого ключа. .
Криптосистема Рабина не обеспечивает неотличимости от атак с использованием выбранного открытого текста, поскольку процесс шифрования является детерминированным. Злоумышленник, имея зашифрованный текст и сообщение-кандидат, может легко определить, кодирует ли зашифрованный текст сообщение-кандидат (просто проверяя, дает ли шифрование сообщения-кандидата данный зашифрованный текст).
Криптосистема Рабина небезопасна против атаки с выбранным зашифрованным текстом (даже когда сообщения-запросы выбираются равномерно случайным образом из пространства сообщений). [6] : 214 Добавляя избыточность, например повторение последних 64 битов, можно заставить систему производить один корень. Это предотвращает атаку с выбранным зашифрованным текстом, поскольку алгоритм дешифрования создает только тот корень, который уже известен злоумышленнику. Если применить этот метод, доказательство эквивалентности с проблемой факторизации не удастся, поэтому по состоянию на 2004 год неясно, безопасен ли этот вариант. Однако «Справочник по прикладной криптографии» Менезеса, Ооршота и Ванстона считает эту эквивалентность вероятной, пока нахождение корней остается процессом, состоящим из двух частей (1. корни и и 2. применение китайской теоремы об остатках).
См. также [ править ]
- Темы криптографии
- Блюм Блюм Шуб
- Алгоритм Шэнкса – Тонелли
- Криптосистема Шмидта – Самоа
- Криптосистема Блюма – Гольдвассера
- Алгоритм Кунерта
Примечания [ править ]
- ^ Jump up to: Перейти обратно: а б с Гэлбрейт, Стивен Д. (2012). «§24.2: Учебник по криптосистеме Рабина». Математика криптографии с открытым ключом . Издательство Кембриджского университета. стр. 491–494. ISBN 978-1-10701392-6 .
- ^ Белларе, Михир ; Гольдвассер, Шафи (июль 2008 г.). «§2.3.4 Кандидат в функцию квадратурного люка Рабина». Конспекты лекций по криптографии (PDF) . стр. 29–32.
- ^ Рабин, Майкл О. (1978). «Цифровые подписи». В Демилло, Ричард А .; Добкин, Дэвид П .; Джонс, Анита К .; Липтон, Ричард Дж. (ред.). Основы безопасных вычислений . Нью-Йорк: Академическая пресса. стр. 155–168. ISBN 0-12-210350-5 .
- ^ Рабин, Майкл О. (январь 1979 г.). Цифровые подписи и функции открытого ключа, столь же неразрешимые, как и факторизация (PDF) (Технический отчет). Кембридж, Массачусетс, США: Лаборатория компьютерных наук Массачусетского технологического института. ТР-212.
- ^ Белларе, Михир ; Рогауэй, Филипп (май 1996 г.). Маурер, Ули (ред.). Точная безопасность цифровых подписей — как подписывать с помощью RSA и Rabin . Достижения в криптологии – EUROCRYPT '96 . Конспекты лекций по информатике. Том. 1070. Сарагоса, Испания: Спрингер. стр. 399–416. дои : 10.1007/3-540-68339-9_34 . ISBN 978-3-540-61186-8 .
- ^ Jump up to: Перейти обратно: а б Стинсон, Дуглас (2006). «5,8». Криптография: теория и практика (3-е изд.). Чепмен и Холл/CRC. стр. 211–214. ISBN 978-1-58488-508-5 .
- ^ Менезес, Альфред Дж .; ван Оршот, Пол С .; Ванстон, Скотт А. (октябрь 1996 г.). «§8.3: Шифрование с открытым ключом Рабина». Справочник по прикладной криптографии (PDF) . ЦРК Пресс. стр. 292–294. ISBN 0-8493-8523-7 .
- ^ Белларе, Михир ; Гольдвассер, Шафи (июль 2008 г.). «§2.3.5 Возводящую в квадрат перестановку, которую так же трудно инвертировать, как и факторизацию». Конспекты лекций по криптографии (PDF) . стр. 32–33.
Ссылки [ править ]
- Бухманн, Джон. Введение в криптографию . Второе издание. Берлин: Спрингер, 2001. ISBN 3-540-41283-2
- Менезес, Альфред; ван Оршот, Пол К.; и Ванстон, Скотт А. Справочник по прикладной криптографии . CRC Press, октябрь 1996 г. ISBN 0-8493-8523-7
- Рабин, Майкл. Цифровые подписи и функции открытого ключа, столь же неразрешимые, как факторизация (в PDF). Лаборатория компьютерных наук Массачусетского технологического института, январь 1979 г.
- Скотт Линдхерст, Анализ алгоритма Шэнка для вычисления квадратных корней в конечных полях. в Р. Гупте и К.С. Уильямсе, Proc 5th Conf Can Nr Theo Assoc, 1999 г., том 19 CRM Proc & Lec Notes, AMS, август 1999 г.
- Р. Кумандури и К. Ромеро, Теория чисел с компьютерными приложениями, Alg 9.2.9, Prentice Hall, 1997. Вероятностный метод извлечения квадратного корня из квадратичного вычета по модулю простого числа.