Puncte:1

Compararea complexității decriptării RSA cu/fără CRT

drapel in

(Încrucișat pe math stackexchange, nu a primit răspunsuri) Pentru context, aceasta este o întrebare pentru acasă dintr-o temă deja predată. Caut o mai bună înțelegere a conceptelor implicate, în principal teoria complexității, deoarece nu am mai văzut-o înainte în afara acestei clase (și s-au presupus cunoștințe anterioare).

Mi se cere să evaluez complexitatea decriptării RSA cu și fără utilizarea CRT, fără a utiliza complexitatea asimptotică. În schimb folosiți $c_1$ ca constantă pentru înmulțirea modulară, $c_2$ pentru exponentiație modulară și $c_3$ pentru găsirea inversului multiplicativ.

Încercarea mea: Lasă $s_1$ fi lungimea de $p$, $s_2$ fi lungimea de $q$, $s$ lungimea de $n$, și $x$ lungimea de $d$. Luați în considerare următoarele complexități:

calcul complexitate
$m_1=c^d\mod p$ $c_2s_1^2x$
$m_2=c^d\mod q$ $c_2s_2^2x$
$q^{-1}\mod p$ $c_3s_1$
$p^{-1}\mod q$ $c_3s_2$

Deci, complexitatea utilizării CRT pentru a calcula $m=m_1(q^{-1}\mod p)q+m_2(p^{-1}\mod q)p\mod n$ este $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)$.

Între timp, complexitatea de a calcula $m=c^d\mod n$ este $c_2s^2x$, deci diferența este $c_2x(s^2-c_1^2c_3(s_1^3+s_2^3))$.

Cred că acest lucru este greșit, deoarece nu cred că este adevărat în general $s^2\geq s_1^3+s_2^3$ (CRT ar trebui să facă decriptarea mai rapidă) și nu știu dacă putem face presupuneri despre constante.

fgrieu avatar
drapel ng
Sugestii: în general, este făcut $m_1:=c^{d_p}\bmod p$ unde $d_p=d\bmod(p-1)$ este precalculat. Același lucru pentru $m_2$. În general, este precalculat $q_{\text{inv}}=q^{-1}\bmod p$. Nu este nevoie atât de $q^{-1}\bmod p$ cât și de $p^{-1}\bmod q$ atunci când utilizați formula $m:=((m_1-m_2)\,q_{\text{ inv}}\bmod p)\,q+m_2$. [Formatul standard al cheii private](https://pkcs1.grieu.fr#page=41) include $d_p$, $d_q$, $q_{\text{inv}}$. Răspunsul la propria întrebare este inteligent! $a=b\bmod n$ implică $0\le a
Daniel S avatar
drapel ru
Înmulțiți costurile etapelor când ar trebui să le adăugați. Deci, de exemplu, calcularea $m_1(q^{-1}\mod p)$ costă $c_2s_1^2x+c_3s_1+c_1s_1^2$ (presupunând metode de înmulțire de liceu).
mrose avatar
drapel in
@DanielS cum ai găsit $c_1s_1^2$? Am avut $c_1^2$ pentru utilizarea modului de multiplicare de două ori.Mulțumesc pentru corectare, am citit undeva că O(m)*O(n)=O(mn) și am crezut că se aplică.
poncho avatar
drapel my
O altă problemă este că aveți $m_1 = c^d \bmod p$ cu complexitate $c_2 s_1^2 x$; de fapt, implementările reale calculează $m_1 = c^{d \bmod p-1} \bmod p$; aceasta dă o complexitate de $c_2 s_1^3$, care este considerabil mai mică (cu $d_p = d \bmod p-1$ fiind precalculat, așa cum a menționat fgrieu). Această înjumătățire efectivă a exponentului privat este de unde provine o bună parte a vitezei
mrose avatar
drapel in
@poncho, așa că presupunem $s_1
poncho avatar
drapel my
Ei bine, $s_1$ este lungimea lui $p$, în timp ce $x$ este lungimea lui $d$. Dacă $d$ este atât de scurt încât este de fapt mai mic decât $p$, ei bine, aceasta este o slăbiciune cunoscută; deci $s_1

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.