Puncte:2

Puteți utiliza RSA în „modul CBC”?

drapel cn

Există probleme de securitate cu utilizarea RSA în „modul CBC”?

Mai exact: dacă folosesc criptarea RSA ca operație de criptare bloc și aplic operațiunile standard ale modului CBC, inclusiv un IV aleatoriu, va furniza textul de criptare rezultat același nivel de securitate teoretică ca și problema RSA de bază?

Mă gândesc doar la RSA pe cont propriu. Fără schemă de umplutură. Știu că în mod tradițional RSA este nesigur fără umplutură adecvată, dar în modul CBC nu văd de ce ar fi necesară umplutura (și complică problema prin introducerea de elemente nedeterministe)

Înțeleg, de asemenea, că CTR, CFB și alte moduri de criptare bloc care folosesc funcția de criptare bloc atât pentru criptare, cât și pentru decriptare ar eșua îngrozitor cu RSA. Preocupat doar de CBC

drapel cn
Aceasta este o întrebare ipotetică. Nu implementez un sistem care utilizează RSA în acest fel. Sunt doar curios de teorie.
kelalaka avatar
drapel in
posibile duplicate ale 1) [Poate fi utilizat RSA (teoretic) ca un cifru bloc?](https://crypto.stackexchange.com/q/32916/18298) 2) [Care este cel mai bun mod de operare a cifrului bloc pentru RSA? ](https://crypto.stackexchange.com/q/66314/18298) și multe altele [RSA block cipher](https://crypto.stackexchange.com/search?q=RSA+block+cipher)
drapel cn
Este posibil să fi fost întrebat în trecut, dar toate firele pe care le-am găsit la căutarea mea inițială se referă la utilizarea RSA + OAEP în combinație cu un mod de criptare bloc. Asta creează alte complicații.Răspunsul lui Mikero este frumos, deoarece completează spațiul liber pentru mine despre acest scenariu specific.
Puncte:5
drapel us

Aceasta este o idee cu adevărat nebună, așa că te aplaud pentru asta. Dar este foarte nesigur. Interpretarea mea pentru „RSA-CBC” ar funcționa astfel:

$$ \begin{matrice}{l} \textsf{RSA-CBC}\Bigl( (N,e), ​​m_1 \| m_2 \| \ldots \|m_\ell \Bigr): \ \quad c_0 \gets \mathbb{Z}_N \ \quad \mbox{de la $i=1$ la $\ell$:} \ \quad\quad c_i := (c_{i-1} + m_i)^e \bmod N \ \quad \mbox{întoarce } c_0 \| c_1 \| \ldots \| m_\ell \end{matrice}$$

Aici fiecare $m_i$ si fiecare $c_i$ este o $\mathbb{Z}_N$-element. RSA-CBC alege un „IV” aleatoriu (element de $\mathbb{Z}_N$), apoi criptează fiecare bloc de text simplu adăugând blocul de text cifrat anterior și apoi aplicând funcția RSA.

Deci, ce este în neregulă cu asta? Să presupunem că văd o criptare a unui text simplu necunoscut. Dacă am o ghicire pentru $m_i$, apoi pot verifica dacă presupunerea mea este corectă prin $c_i \overset?= (c_{i-1} + m_i)^e \bmod N$. Într-adevăr, pot efectua această verificare deoarece exponentul RSA $e$ este public.

În general, CBC nu funcționează cu operațiuni cu cheie publică. Oricine poate repeta pașii făcuți în timpul criptării CBC, dacă cifrul bloc este înlocuit cu o operație cu cheie publică pe care oricine o poate efectua.

drapel cn
Frumoasa. Știam că îmi lipsește ceva simplu.
kelalaka avatar
drapel in
Ei bine, se poate proiecta acest lucru cu umplutură securizată PKCS și OAEP. $$c_i := (pad(c_{i-1} + m_i))^e \bmod N$$ (dimensiunea redusă a umpluturii este omisă)
drapel us
@kelalaka, $c_{i-1}+m_i$ este deja un element de „dimensiune completă” al lui $\mathbb{Z}_N$, așa că nu sunt sigur ce umplutură ați putea aplica, păstrând în continuare rezultatul în $\ mathbb{Z}_N$.
kelalaka avatar
drapel in
@Mikero trebuie să reducă dimensiunea de intrare a acestei scheme, cum ar fi 11-octeți pentru umplutura PKCS#1 v1.5 (vezi asta pentru [OAEP](https://crypto.stackexchange.com/q/42097/18298)) după cum am spus (s-ar putea să nu fie clar, îmi pare rău pentru asta). Apoi criptările sunt sigure atâta timp cât umplutura PKCS#1 v1.5 sau OEAP este sigură. Oricum, trebuie să folosești ECIES...
drapel us
OK, atunci în acest caz „înlănțuirea CBC” nu adaugă nimic. Ai putea la fel de bine să faci RSA-OAEP în modul „ECB” ;)
kelalaka avatar
drapel in
Da, OAEP și PKCS sunt criptări probabilistice, cu toate acestea, CBC oferă, de asemenea, unele legături pe care s-ar putea dori. și, acest lucru nu trebuie confundat cu autentificare, deoarece se poate ataca deja CBC cu [bit flipping] (https://crypto.stackexchange.com/q/66085/18298).
drapel us
„Dacă am o presupunere pentru mi, atunci pot verifica” acest lucru se aplică în același mod pentru BCE. Deci afirmația dvs. reală este: „CBC nu este nicio îmbunătățire”, iar decalajul de securitate, care permite verificarea presupunerii, provine din cheia publică este cunoscută de un atacator. Gândește-te, într-un protocol TLS nu va avea asta.

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.