/ / Existuje predvolený štítok pre vstavané šifrovanie RSA-OAEP v jazyku Java? - rsa, verejný kľúč

Existuje predvolený štítok pre zabudované šifrovanie RSA-OAEP v jazyku Java? - rsa, verejný kľúč

Implementujem vlastnú verziu RSA-OAEPSHA-256. Chcem ho otestovať porovnaním s výstupom triedy Cipher v jazyku Java pomocou RSA-OAEP a SHA-256. Podľa PKCS # 1 RSA-OAEP vyžaduje označenie, ktoré je štandardne prázdny reťazec. Avšak nemôžem nájsť spôsob, ako zadať štítok v zabudovanej triede. Zdá sa, že moja implementácia funguje správne pre šifrovanie aj dešifrovanie, ale trieda Cipher produkuje iný výstup. Existuje predvolený štítok, ktorý používa trieda Cipher?

odpovede:

2 pre odpoveď č. 1

Čo sa nazýva označenie L v PKCS1v2.1 RSAES-OAEP sa nazýva kódovacie parametre P vo v2.0; pozri popis pSourceAlgorithm v A.2.1. Java API zachováva starú terminológiu, pravdepodobne pre kompatibilitu, a predvolený je skutočne prázdny oktetový reťazec, implementovaný v jazyku Java ako byte pole dĺžky 0. Pozri https://docs.oracle.com/javase/7/docs/api/javax/crypto/spec/PSource.PSpecified.html , Všimnite si, že aj keď je P-call-me-L prázdny, jeho hašiš ktorý je v DB pred maskovaním nie je prázdny.

Keď poviete "iný výstup", uvedomíte si tože OAEP je randomizovaný (spôsobom, ktorý preukázateľne neprináša informácie protivníkovi) a každé šifrovanie toho istého holého textu by malo produkovať jedinečný ciphertext, ale všetky by mali dešifrovať späť na rovnaký holý text, že?