21.08.2015 Views

RSA-PSS – Provably secure RSA Signatures and their ...

RSA-PSS – Provably secure RSA Signatures and their ...

RSA-PSS – Provably secure RSA Signatures and their ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

This only works because the first thing done in the whole process is hashingthe message <strong>and</strong> this is the only place in the whole algorithm where the messageis used at all. With the original algorithm, this would be avoided, as the attackercannot precompute a collision of salt||M when he does not know the salt.For this to have an effect, it is crucial that the salt is put in front of themessage. This is due to the nature of most real-world hash functions (includingMD5, SHA-1, SHA-256) - they are all based on the Merkle-Damgard design.They have an internal state. If we have a collision Hash(M 1 ) = Hash(M 2 ),then this also implies Hash(M 1 ||salt) = Hash(M 2 ||salt). At the point whenthe hash function processes the salt, the internal state of the hash functionis identical <strong>and</strong> with an identical input following, both will produce the sameoutput.PKCS #1 v2.1 (chapter 9.1, page 37 inthat gives a hint why this choice was made:[<strong>RSA</strong> Inc., 2002]) contains a noteWithout compromising the security proof for <strong>RSA</strong>SSA-<strong>PSS</strong>, one mayperform steps 1 <strong>and</strong> 2 of EMSA-<strong>PSS</strong>-ENCODE <strong>and</strong> EMSA-<strong>PSS</strong>-VERIFY (the application of the hash function to the message) outsidethe module that computes the rest of the signature operation, sothat mHash rather than the message M itself is input to the module.The design of <strong>RSA</strong>SSA-<strong>PSS</strong> allows to separate the first hashing step fromthe rest of the signature operation. This is especially important for devices likesmart cards where data transfer is limited. One can design applications that onlycalculate the hash of a message <strong>and</strong> transfer that to a cryptographic unit (likea smart card) that does the signature operation. Beside that, existing signaturesoftware implementations often rely on the separation of message hashing <strong>and</strong>the signature operation, because pretty much all signature schemes until nowstart with a hashing operation.So there is a trade-off between a more <strong>secure</strong> design (<strong>PSS</strong>96) <strong>and</strong> less obstaclesin certain implementation scenarios. In the st<strong>and</strong>ardization process, theless <strong>secure</strong> design was chosen. Due to this design decision, the combination of<strong>RSA</strong>SSA-<strong>PSS</strong> <strong>and</strong> a hash function that doesn’t provide collision-resistance createsan in<strong>secure</strong> algorithm. So it is crucial that a <strong>secure</strong> hash function is taken.This is especially important to note as the existing st<strong>and</strong>ards for <strong>RSA</strong>SSA-<strong>PSS</strong> define SHA-1 as the default hash function, which can not be consideredcollision-resistant any more.5.3 R<strong>and</strong>omized HashingIn the aftermath of the collision attacks against MD5 <strong>and</strong> SHA-1, Shai Halevi<strong>and</strong> Hugo Krawczyk proposed a method called r<strong>and</strong>omized hashing at theCrypto 2006 conference [Halevi <strong>and</strong> Krawczyk, 2007]. Later, the NIST hasadopted this in SP-800-106 [Dang, 2009]. Currently there are no efforts underwayin st<strong>and</strong>ardizing r<strong>and</strong>omized hashing in cryptographic protocols.21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!