stringtranslate.com

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

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

Точнее, у Алисы есть входные данные 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 [1] , обнаруженном Евгением Сидоровым.

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

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

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

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

Примеры

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

  1. ^ «CVE — CVE-2015-2141» . cve.mitre.org . Проверено 13 декабря 2023 г.

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