/ / ¿Hay una etiqueta predeterminada para el cifrado RSA-OAEP incorporado en Java? - rsa, clave pública

¿Hay una etiqueta predeterminada para el cifrado RSA-OAEP incorporado en Java? - rsa, clave pública

Estoy implementando mi propia versión de RSA-OAEP conSHA-256. Quiero probarlo comparándolo con la salida de la clase de cifrado en Java usando RSA-OAEP y SHA-256. Según PKCS # 1, RSA-OAEP requiere una etiqueta, que por defecto es una cadena vacía. Sin embargo, no puedo encontrar una manera de ingresar una etiqueta en la clase incorporada. Mi implementación parece funcionar correctamente tanto para el cifrado como para el descifrado, pero la clase Cipher produce un resultado diferente. ¿Hay alguna etiqueta predeterminada que use la clase Cipher?

Respuestas

2 para la respuesta № 1

Lo que se llama etiqueta L en PKCS1v2.1 RSAES-OAEP se denominó parámetros de codificación P en v2.0; vea la descripción de pSourceAlgorithm en A.2.1. La API de Java mantiene la terminología antigua, presumiblemente por compatibilidad, y la predeterminada es de hecho una cadena de octetos vacía, implementada en Java como un byte matriz de longitud 0. Ver https://docs.oracle.com/javase/7/docs/api/javax/crypto/spec/PSource.PSpecified.html . Tenga en cuenta que incluso cuando P-call-me-L está vacío, su picadillo que va en DB antes de enmascarar no está vacío.

Cuando dices "salida diferente", te das cuentaque OAEP es aleatorio (de una manera que probablemente no filtre información al adversario) y cada encriptación del mismo texto simple debería producir un texto cifrado único, pero todos deberían descifrar de nuevo al mismo texto simple, ¿verdad?