Este es un intento mal redactado para explicar las firmas RSA. La operación básica, la exponenciación modular, es la misma para todas las operaciones RSA. Entonces, en ese sentido, puede pensar en la verificación de la firma RSA como "descifrado" con la clave pública.
Sin embargo, tanto el tipo de clave como el relleno de mensajes son parte integral de las operaciones de RSA. Se requieren para asegurar las operaciones de RSA. El relleno RSA es diferente para el cifrado y la generación de firmas, incluso si ambos son informalmente llamados PKCS # 1 v1.5 padding. Los parámetros de entrada son generalmente también diferentes; la generación de firmas requiere que el relleno se aplique internamente en un valor hash formateado específico.
Las operaciones de clave pública y privada difieren de varias maneras. Ambos utilizan exponenciación modular. Sin embargo, las claves privadas requieren protección adicional para asegurarse de que los componentes secretos que conforman la clave privada no se filtren a través de ataques de canales laterales. La clave privada también usó un exponente grande o varios valores que permiten cálculos utilizando el Teorema del Resto Chino (CRT). Decir que la generación de firmas es cifrado con la clave privada es, por lo tanto, una declaración muy peligrosa; internamente deberían ser operaciones bastante diferentes.
Le insto a que simplemente lea las especificaciones RSA PKCS # 1 v2.1 en RFC 3447 . Son bastante legibles, y hacen una clara distinción entre los diversos primitivos en la sección 5.2:
La operación matemática principal en cada primitiva es
exponenciación, como en las primitivas de cifrado y descifrado de
Sección 5.1. RSASP1 y RSAVP1 [EDIT: para generación / verificación de firma] son lo mismo que RSADP y RSAEP [EDIT: para descifrado / cifrado, en ese orden]
excepto los nombres de sus argumentos de entrada y salida; son
Distinguidos ya que están destinados a diferentes propósitos.
Esto fue diferente para PKCS # 1 v1.5 y versiones anteriores del estándar PKCS # 1. El cambio en la redacción en PKCS # 1 fue muy deliberado . Desafortunadamente, la confusión se mantiene cuando se trata del OID que especifica una clave pública RSA, incluso una que se usa para la verificación de firmas:
{iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) rsaEncryption(1)}
Este es un legado de los antiguos estándares PKCS # 1 versión 1, me temo.
Para obtener más información, consulte también enlace .