Digital Signatures Last Updated: Oct 14, 2017
Digital Signatures Diagram illustrating how to digitally sign a message Why do we use a one-way hash? How does this relate to a collision or 2nd pre-image attack?
Digital Signatures What assurances do we get with a digital signature? Authentication Confidentiality Integrity Non-repudiation MAC vs. Digital Signature MAC does not offer non-repudiation. Why? With a MAC, either Alice or Bob could have generated the mac.
Message Authentication Three approaches Benefits of each? Drawbacks? Third option is broken, use HMAC
HMAC Government standard for HMAC H(K || H(K || M)) Prevents extension attack
Public Key Distribution Problem Symmetric encryption – exponential key distribution problem (n^2 key pairs for group of size n) Public keys – we all distribute our own public key (n keys) How can I trust that I have received your public key? Trusted third party hands out signed documents containing user ID and public key Signed documents are known as certificates
Digital Certificates Who has a digital certificate? Which private key is used to sign a certificate? Whose public key is in the certificate? What are common uses for certificates?
Performance of Crypto Primitives
Performance Test Goal: figure out the relative computing time for algorithms (one block) SHA-1 AES RSA Encrypt RSA Signature Order the above, fastest to slowest
Performance Test Average of 10, 000 iterations SHA-1 – 0.0017 ms AES – 0.0142 ms RSA encrypt – 0.3647 ms 3515x slower than a hash RSA signature – 5.9751 ms 8x slower than a hash 215x slower than a hash 26x slower than AES 421x slower than AES 16x slower than RSA enc.
Or: “How RSA should really be used” RSA Padding Or: “How RSA should really be used” (See PKCS #1)
RSA Primitives RSA Encryption : me = c (mod n) RSA Decryption : cd = m (mod n) Pitfalls of using RSA What if m is very small? Remember that e is usually small. Take the e’th root of c Brute force the domain of m Solution: RSA Padding Before encrypting/signing a key/hash, pad it so that it is a large number and comparable to the modulus n Implementation flaws – timing attacks Insert constant delays or binding RSA Labs publishes the standards for using RSA Public Key Cryptography Standard #1 (PKCS #1)