Ослепление (криптография)

редактировать

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

Точнее, Алиса имеет вход x, а Оскар имеет функцию f. Алиса хотела бы, чтобы Оскар вычислил для нее y = f (x), не раскрывая ему ни x, ни y. Причина ее желания может заключаться в том, что она не знает функцию f или у нее нет ресурсов для ее вычисления. Алиса «слепит» сообщение, кодируя его на какой-то другой вход E (x); кодировка E должна быть биекцией во входном пространстве f, в идеале случайной перестановкой. Оскар дает ей f (E (x)), к которому она применяет декодирование D, чтобы получить D (f (E (x))) = y.

Не все функции позволяют выполнять слепые вычисления. В других случаях ослепление следует применять с осторожностью. Примером последнего являются подписи Рабина – Вильямса. Если к отформатированному сообщению применяется ослепление, но случайное значение не соответствует требованиям Якоби для p и q, это может привести к восстановлению закрытого ключа. Демонстрацию восстановления можно увидеть в CVE - 2015-2141, обнаруженной Евгением Сидоровым.

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

Одноразовый блокнот (OTP) - это приложение, скрывающее проблему защищенной связи по самой своей природе. Алиса хотела бы тайно послать сообщение Бобу, однако все их сообщения могут быть прочитаны Оскаром. Таким образом, Алиса отправляет сообщение после того, как закрывает его секретным ключом или OTP, которым она делится с Бобом. Боб отменяет ослепление после получения сообщения. В этом примере функция f является идентификатором, а E и D обычно являются операцией XOR.

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

Например, в RSA ослепление включает вычисление операции ослепления E (x) = (xr) mod N, где r - случайное целое число от 1 до N и относительно простое на N (т. Е. Gcd (r, N) = 1), x - это открытый текст, e - это публичная экспонента RSA, а N - это модуль RSA. Как обычно, применяется функция дешифрования f (z) = z mod N, что дает f (E (x)) = (xr) mod N = xr mod N. Наконец, он не слепится с помощью функции D (z) = zr mod N. Умножение xr mod N на r mod N дает x, если требуется. При расшифровке таким образом злоумышленник, который может измерить время, затраченное на эту операцию, не сможет использовать эту информацию (путем применения временных атак, к которым, как известно, RSA уязвим), поскольку он не знает константу r и следовательно, не знает реальных входных данных, поступающих на примитивы RSA.

Примеры
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-12 10:34:56
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте