Practic, sunt doi pași în acest sens:
- codificați textul în octeți - acest lucru necesită, în general, o codificare de caractere, cum ar fi UTF-8 sau codificare latină;
- codifică octeții în număr întreg - asta este parte din operația de criptare în RSA, așa cum este specificat în PKCS#1, și este efectuată folosind o funcție numită OS2IP.
În cazul dvs., textul este, evident, deja codificat ca octeți; fișierele constau, până la urmă, din octeți și deschideți fișierul ca fișier binar (b din steag-ul rb).
OS2IP înseamnă șir de octet la primitivă întreg. Un șir de octet nu este altceva decât o matrice de octeți. Dacă octeții sunt deja în forma corectă, atunci este doar o chestiune de interpretarea octeții ca număr, deoarece computerul gestionează întotdeauna totul ca binar oricum.
Totuși, în RSA bazat pe PKCS#1, OS2IP nu este utilizat direct: mai întâi se aplică o umplutură relevantă pentru securitate. Aceasta ar fi fie umplutura definită PKCS#1 v1.5, fie umplutura OAEP. Adăugarea de umplutură înseamnă că se adaugă o cantitate nu nesemnificativă de suprasarcină înainte ca mesajul să fie aplicat; cantitatea de text simplu este mult mai mică decât modulul RSA.
Acesta este unul dintre motivele pentru care fișierele nu sunt, în general, criptate folosind RSA direct. Celălalt motiv principal este că operațiunile de criptare RSA și în special de decriptare sunt foarte ineficiente în comparație cu de ex. Criptare bazată pe AES. În schimb, folosim un protocol precum PGP care realizează criptarea hibridă. RSA într-un mod de operare securizat are o anumită suprasarcină și un maxim pe operațiune, deci, în general, o cheie simetrică este criptată sau derivată folosind în schimb RSA; această cheie simetrică este apoi utilizată pentru a cripta datele. Cifrurile simetrice, cum ar fi AES, operează direct pe date binare, astfel încât, pe lângă manipularea IV-ului și umplutura, datele pot fi criptate direct fără conversie.