Tengo dos bibliotecas criptográficas diferentes que creé, una está en java y usa las bibliotecas criptográficas java incorporadas estándar.
El otro utiliza openssl y se ha envuelto en java a través del JNI.
Actualmente estoy reemplazando el código de la biblioteca java predeterminada con el código de la biblioteca openssl, y verificando los cifrados unos contra otros para asegurar que no se rompa nada para mi usuario final. Tengo curiosidad, porque solo se garantiza que Java admita claves de 128 bits con su implementación de PBKDF2, por lo que estoy usando AES CBC 128 con java. Originalmente había codificado para AES CBC 256 en openssl, sin pensar.
Lo que siento curiosidad es lo siguiente: cuando ingresé una clave de 256 bits en AES CBC 128 de java, obtuve la misma salida que obtuve para el AES CBC 256 de openssl. Cuando ingresé una clave de 128 bits en AES CBC 128 , Obtuve una salida diferente que cuando ingresé la misma clave en el AES CBC 256 de openssl (usé el mismo 16 bytes IV en todas las pruebas)
Supongo que los dos esquemas de cifrado diferentes generarían resultados completamente diferentes, por lo que estoy confundido en cuanto a por qué sucede esto. Pensé que tenía una mejor comprensión del cifrado de lo que parece que realmente tengo.
Le pido disculpas si este es un resultado dolorosamente obvio, todavía soy algo nuevo en criptografía.