Imagine a verifier approving a message signed by someone who never signed it. A signature forgery attack creates an accepted signature without the legitimate signer's private key. For RSA PKCS#1 v1.5, the attack targets flawed implementations of signature verification rather than correctly implemented mathematics. section 7.3.1
The RSA PKCS#1 v1.5 failure pattern is:
- The signer hashes and pads a message, then applies the private exponent; the verifier applies the public exponent and checks the padded hash. section 7.3.1
- A verifier that misimplements the standard may accept a forged result, enabling variants of Bleichenbacher's attack. section 7.3.1
- Use caution when retaining RSA PKCS#1 v1.5 for backward compatibility; RSA signatures as a whole are not thereby insecure. section 7.3.1
Figure 7.9 RSA PKCS#1 v1.5 for signatures. To sign, hash then pad the message with the PKCS#1 v1.5 padding scheme. The final step exponentiates the padded hashed message with the private key d modulo N. To verify, simply exponentiate the signature with the public exponent e modulo N and verify that it matches the padded and hashed message.
Trace the hash, padding, private-key signing, public-key verification, and matching steps behind the attack surface. section 7.3.1

