Am o întrebare despre cum sunt definite RSADP/RSAEP (în RFC2437 https://datatracker.ietf.org/doc/html/rfc2437#section-5.1.2):
RSADP (și RSAEP) sunt descrise cu aceleași limite pentru mesajul (m) și textul cifrat (c), și anume 0 <= m < n
. În acest caz, primitiva de exponențiere modulară presupune că umplutura a avut loc deja, deci lăsând asta în afara imaginii.
5.1.2 RSADP
RSADP (K, c)
Intrare:
K RSA cheie privată, unde K are una dintre următoarele forme
-o pereche (n, d)
-un cvintuplu (p, q, dP, dQ, qInv)
c reprezentativ pentru text cifrat, un număr întreg între 0 și n-1
Ieșire:
m mesaj reprezentativ, un număr întreg între 0 și n-1; sau
„reprezentant text cifrat în afara intervalului”
Am următoarea întrebare: implementările acceptă de fapt 0 și 1 ca valori c & m valide? Nu ar rămâne zero și unu ambele constante sub exponențiere, astfel încât textul cifrat și textul simplu să nu se schimbe? Nu e rău? Este corect ca o implementare să respingă aceste valori - chiar dacă specificația pare să le permită?
UPDATE: Nu întreb despre padding per-se, deoarece exponențiarea are loc după padding (în cazul criptării), ci mai degrabă De ce specificația pare să permită deloc aceste valori nesigure. De ce specificația nu interzice în mod explicit 0 și 1? Desigur, este rar din punct de vedere statistic dacă rezultatul umpluturii ar fi o astfel de valoare, dar întrebarea mea este dacă funcțiile RSADP/EP nu ar trebui să interzică aceste valori și schema generală OAEP construită pe deasupra acestor funcții să fie specificată pentru a alege o altă intrare de umplutură în cazul acela?
Poate că există ceva care îmi lipsește aici, așa că apreciez orice informație.
Mulțumiri!