Știm că un mesaj scurt criptat cu RSA poate fi ușor forțat.
Un mesaj scurt criptat cu manual RSA poate fi ușor forțat. Problema este că nu că mesajul este scurt. Un mesaj mult mai lung ales într-un set mic (cum ar fi identitatea unei persoane din lista publică) poate fi, de asemenea, forțat brut prin aceeași tehnică. Problema este că mesaj cu entropie scăzută combinat cu utilizarea criptării RSA pentru manuale (fără umplutură aleatoare).
Bob criptează (..) mesajele cu cheia sa privată.
Acel „criptează” este o terminologie eronată pentru aplicarea transformării $m\mapsto f(m)=m^d\bmod n$ Unde $(n,d)$ este cheia privată RSA a lui Bob. Asta nu cripta, deoarece acel termen desemnează transformarea unui mesaj pentru a-l face de neinteligibil pentru adversari, iar aici oricine poate anula transformarea folosind publicul $(n,e)$. Termenul „criptează” trebuie schimbat în „transformă” sau „semnează”. Rezultatul $f(m)$ a acelei operațiuni este semnătura manuală RSA a mesajului $m$ de cheia privată a lui Bob.
Ar putea atacatorul să falsifice cumva un nou mesaj cu unul sau două personaje, astfel încât să pară că ar fi venit de la Bob?
Da. Instrumentul de bază folosit este proprietatea multiplicativă a funcției $f$: pentru toți $m_1,m_2$ tine $f(m_1\cdot m_2\bmod n)\ =\ f(m_1)\cdot f(m_2)\bmod n$. Astfel, un adversar știind manualul RSA semnătura mesajelor $m_1$ și $m_2$ puteți găsi semnătura RSA a mesajului manual $m_1\cdot m_2\bmod n$, sau ${m_1}^i\cdot{m_2}^j\bmod n$ pentru orice pereche de numere întregi $i,j$.
Pentru mesajele constrânse să aibă un sens, o posibilitate este să aibă $m_1\cdot m_2=m_3\cdot m_4$ care permite calcularea semnăturii RSA a manualului $m_4$ din cea a $m_1$, $m_2$ și $m_3$, la fel de $f(m_4)\ =\ f(m_1)\cdot f(m_2)\cdot f(m_3)^{-1}\bmod n$.