Рейтинг:2

Можно ли использовать RSA в «режиме CBC»?

флаг cn

Есть ли проблемы с безопасностью при использовании RSA в «режиме CBC»?

В частности: если я использую шифрование RSA в качестве операции блочного шифрования и применяю стандартные операции режима CBC, включая случайный IV, обеспечит ли полученный зашифрованный текст тот же уровень теоретической безопасности, что и основная проблема RSA?

Я рассматриваю только RSA сам по себе. Нет схемы наполнения. Я знаю, что традиционно RSA небезопасен без надлежащего заполнения, но в режиме CBC я не понимаю, зачем нужно заполнение (и это усложняет проблему, вводя недетерминированные элементы).

Я также понимаю, что CTR, CFB и другие режимы блочного шифрования, использующие функцию блочного шифрования как для шифрования, так и для дешифрования, с RSA потерпят ужасный сбой. Касается только CBC

флаг cn
Это гипотетический вопрос. Я не внедряю систему, использующую RSA, таким образом. Просто интересна теория.
kelalaka avatar
флаг in
возможные дубликаты 1) [Может ли RSA (теоретически) использоваться в качестве блочного шифра?] (https://crypto.stackexchange.com/q/32916/18298) 2) [Каков наилучший режим работы блочного шифра для RSA? ](https://crypto.stackexchange.com/q/66314/18298) и многое другое [блочный шифр RSA](https://crypto.stackexchange.com/search?q=RSA+block+cipher)
флаг cn
Возможно, об этом спрашивали в прошлом, но все темы, которые я нашел в своем первоначальном поиске, касались использования RSA + OAEP в сочетании с некоторым режимом блочного шифрования. Это создает другие сложности.Ответ Микеро хорош, поскольку он заполняет пробел в этом конкретном сценарии.
Рейтинг:5
флаг us

Это действительно безумная идея, так что я аплодирую вам за это. Но это серьезно небезопасно. Моя интерпретация «RSA-CBC» будет работать следующим образом:

$$ \начать{массив}{л} \textsf{RSA-CBC}\Bigl( (N,e), ​​m_1 \| m_2 \| \ldots \|m_\ell \Bigr): \ \quad c_0 \gets\mathbb{Z}_N \ \quad \mbox{для $i=1$ в $\ell$:} \ \quad\quad c_i := (c_{i-1} + m_i)^e \bmod N \ \quad \mbox{возврат} c_0 \| с_1 \| \ldots\| м_\элл \end{массив}$$

Здесь каждый $m_i$ и каждый $c_i$ это $\mathbb{Z}_N$-элемент. RSA-CBC выбирает случайный "IV" (элемент $\mathbb{Z}_N$), затем шифрует каждый блок открытого текста, добавляя предыдущий блок зашифрованного текста, а затем применяя функцию RSA.

Так что же с этим не так? Предположим, я вижу шифрование неизвестного открытого текста. Если у меня есть предположение для $m_i$, то я могу проверить правильность моего предположения с помощью $c_i \overset?= (c_{i-1} + m_i)^e \bmod N$. Я действительно могу выполнить эту проверку, потому что показатель RSA $е$ является публичным.

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

флаг cn
Красивый. Я знал, что мне не хватало чего-то простого.
kelalaka avatar
флаг in
Что ж, это можно спроектировать и с безопасным дополнением PKCS и OAEP. $$c_i := (pad(c_{i-1} + m_i))^e \bmod N$$ (уменьшенный размер заполнения опущен)
флаг us
@kelalaka, $c_{i-1}+m_i$ уже является «полноразмерным» элементом $\mathbb{Z}_N$, поэтому я не уверен, какое заполнение вы могли бы применить, сохраняя при этом результат в $\ mathbb{Z}_N$.
kelalaka avatar
флаг in
@Mikero нужно уменьшить размер ввода этой схемы, например, 11 байт для заполнения PKCS # 1 v1.5 (см. это для [OAEP] (https://crypto.stackexchange.com/q/42097/18298)) как я уже сказал (может быть не ясно, извините за это). Тогда шифрование будет безопасным до тех пор, пока заполнение PKCS#1 v1.5 или OEAP будет безопасным. В любом случае, нужно использовать ECIES...
флаг us
Хорошо, тогда в этом случае «цепочка CBC» ничего не добавляет. С таким же успехом вы можете просто выполнить RSA-OAEP в режиме «ECB»;)
kelalaka avatar
флаг in
Да, OAEP и PKCS являются вероятностными шифрами, однако CBC также обеспечивает некоторую цепочку, которая может понадобиться. и это не следует путать с аутентификацией, поскольку уже можно атаковать CBC с помощью [переворачивания битов] (https://crypto.stackexchange.com/q/66085/18298).
флаг us
«Если у меня есть предположения относительно ми, я могу проверить», то же самое относится и к ЕЦБ. Таким образом, ваше фактическое утверждение таково: «CBC не является улучшением», а брешь в безопасности, позволяющая проверить догадку, возникает из-за того, что открытый ключ известен злоумышленнику. Думаю, в протоколе TLS у него этого не будет.

Ответить или комментировать

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