Рейтинг:1

Сравнение сложности расшифровки RSA с/без CRT

флаг in

(Перекрестный список на математическом стеке, ответов не получил) Для контекста, это вопрос домашнего задания из уже сданного задания. Я ищу лучшего понимания задействованных концепций, в основном теории сложности, поскольку я не видел ее раньше за пределами этого класса (и предполагалось предварительное знание).

Меня просят оценить сложность расшифровки RSA с использованием и без использования CRT, без использования асимптотической сложности. Вместо этого используйте $c_1$ как константа модульного умножения, $c_2$ для модульного возведения в степень и $c_3$ для нахождения мультипликативного обратного.

Моя попытка: пусть $s_1$ быть длиной $р$, $s_2$ быть длиной $q$, $s$ длина $n$, и $х$ длина $д$. Обратите внимание на следующие сложности:

вычисление сложность
$m_1=c^d\mod p$ $c_2s_1^2x$
$m_2=c^d\мод д$ $c_2s_2^2x$
$q^{-1}\mod p$ $c_3s_1$
$p^{-1}\mod q$ $c_3s_2$

Таким образом, сложность использования ЭЛТ для вычисления $m=m_1(q^{-1}\mod p)q+m_2(p^{-1}\mod q)p\mod n$ является $c_1^2c_2c_3s_1^3x+c_1^2c_2c_3s_2^3x=c_1^2c_2c_3x(s_1^3+s_2^3)$.

При этом сложность вычисления $m=c^d\мод п$ является $c_2s^2x$, поэтому разница $c_2x(s^2-c_1^2c_3(s_1^3+s_2^3))$.

Я считаю, что это неправильно, так как я не думаю, что в целом верно, что $s^2\geq s_1^3+s_2^3$ (CRT должен ускорить расшифровку), и я не знаю, можем ли мы делать какие-либо предположения о константах.

fgrieu avatar
флаг ng
Подсказки: Обычно это $m_1:=c^{d_p}\bmod p$, где $d_p=d\bmod(p-1)$ предварительно вычисляется. То же самое для $m_2$. Обычно предварительно вычисляется $q_{\text{inv}}=q^{-1}\bmod p$. При использовании формулы $m:=((m_1-m_2)\,q_{\text{ inv}}\bmod p)\,q+m_2$. [Стандартный формат закрытого ключа](https://pkcs1.grieu.fr#page=41) включает $d_p$, $d_q$, $q_{\text{inv}}$. Отвечать на собственный вопрос умно! $a=b\bmod n$ подразумевает $0\le a
Daniel S avatar
флаг ru
Вы умножаете затраты на этапы, когда должны их добавлять. Так, например, вычисление $m_1(q^{-1}\mod p)$ стоит $c_2s_1^2x+c_3s_1+c_1s_1^2$ (при использовании школьных методов умножения).
mrose avatar
флаг in
@DanielS как ты нашел $c_1s_1^2$? У меня было $c_1^2$ за двойное умножение модов.Спасибо за исправление, я где-то читал, что O (m) * O (n) = O (mn) и подумал, что это применимо.
poncho avatar
флаг my
Другая проблема заключается в том, что у вас есть $m_1 = c^d \bmod p$ со сложностью $c_2 s_1^2 x$; на самом деле, реальные реализации вычисляют $m_1 = c^{d \bmod p-1} \bmod p$; это дает сложность $c_2 s_1^3$, что значительно меньше (при предварительном вычислении $d_p = d \bmod p-1$, как упоминал fgrieu). Это эффективное уменьшение частного показателя вдвое дает большую часть ускорения.
mrose avatar
флаг in
@poncho, значит, мы предполагаем $s_1
poncho avatar
флаг my
Итак, $s_1$ — это длина $p$, а $x$ — это длина $d$. Если $d$ настолько короткий, что на самом деле меньше, чем $p$, что ж, это известная слабость; следовательно, $s_1

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

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