INFS 766 PKCS Internet Security Protocols

™ Public- standards (PKCS) Lecture 11 ™ Owned by RSA and motivated to promote RSA PKCS ™ Created in early 1990’s ™ Numbered from PKCS1 to PKCS15 ™ Some along the way have ¾ lost interest Prof. Ravi Sandhu ¾ folded into other PKCS ¾ taken over by other standards bodies ™ Continue to evolve

© Ravi Sandhu 2000-2004 2

PKCS 1 PKCS 1

™ RSA Cryptography Standard ™ Specifies how to use the RSA ¾ Version 2.0 onwards (1998) algorithm securely for ™ RSA Encryption Standard and signature ¾ Version 1.5 (1993) ™ Why do we need this? ¾ for encryption ¾ Different schemes for signature

© Ravi Sandhu 2000-2004 3 © Ravi Sandhu 2000-2004 4

PKCS 1 PKCS 1

™ Chosen attack based on ™ Version 1.5, 1993 multiplicative property of RSA ¾ Encryption padding was found defective ¾ Attacker wishes to decrypt c in 1998 by Bleichenbacher e ¾ Choose r, compute c’ = c.r mod n ¾ Possible to generate valid ciphertext ¾ Get victim to decrypt c’ giving cd.r mod n without knowing corresponding ¾ cd.r.r-1 mod n = cd mod n plaintext with reasonable probability of ™ Padding destroys multiplicative success (chosen ciphertext) property

© Ravi Sandhu 2000-2004 5 © Ravi Sandhu 2000-2004 6 PKCS 1 PKCS 1

™ Version 2.0, 1998 ™ Cryptographic primitives ¾ Uses Optimal asymmetric encryption protocol (OAEP) by Bellare-Rogoway 1994 ™ Cryptographic scheme • provably secure in the random oracle model ¾ Encryption scheme • Informally, if hash functions are truly random, then an ¾ Signature scheme adversary who can recover such a message must be able to break RSA • Signature with appendix: supported • plaintext-awareness: to construct a valid OAEP encoded • Signature with message recovery: not supported message, an adversary must know the original plaintext ™ Encoding and decoding ¾ PKCS 1 version 1.5 padding continues to be allowed for backward compatibility ¾ Converting an integer message into an octet ¾ Accommodation for multi-prime RSA string for use in encryption or signature • Speed up private key operations scheme and vice versa

© Ravi Sandhu 2000-2004 7 © Ravi Sandhu 2000-2004 8

PKCS 1 PKCS 1

™ Cryptographic primitives ™ Encryption scheme ¾ Combines encryption primitive with an encryption ¾ Encrypt RSAEP((n,e),m) encoding method ¾ message Æ encoded message Æ integer message ¾ Decrypt RSADP((n,d),c) representative Æ encrypted message ¾ Sign RSASP1((n,d),m) ™ Decryption scheme ¾ Combines decryption primitive with a decryption ¾ Verify RSAVP1((n,e),s) decoding method ¾ encrypted message Æ integer message representative ™ Basically exponentiation with Æ encoded message Æ message differently named inputs ™ Original version 1.5 scheme and new version 2.0 scheme

© Ravi Sandhu 2000-2004 9 © Ravi Sandhu 2000-2004 10

PKCS 1 PKCS 1

™ Signature scheme ™ The future ¾ Combines signature primitive with a signature encoding method ™ Probabilistic signature scheme (PSS) ¾ message Æ encoded message Æ integer message ¾ Provably secure in random oracle model representative Æ signature ¾ Natural extension to message recovery ™ Decryption scheme ¾ Combines verification primitive with a verification decoding method ¾ signature Æ integer message representative Æ encoded message Æ message ™ Original version 1.5 scheme ¾ Signature with appendix

© Ravi Sandhu 2000-2004 11 © Ravi Sandhu 2000-2004 12 PKCS 5 PKCS 5

™ Password-Based Cryptography ™ Password-based Standard ¾ Key = PBKDF(passwd, salt, iteration count) ¾ Version 1.5, 1993 ™ salt allows same password to give many ¾ Version 2.0, 1999 keys ™ Oriented towards protection of ¾ May actually have same password private keys ¾ Separate dictionary attack for every salt ™ Does not specify a standard for ™ Iteration count controls complexity of password format dictionary attack

© Ravi Sandhu 2000-2004 13 © Ravi Sandhu 2000-2004 14

PKCS 5 PKCS 5

™ Version 1.5 PBKDF1 ™ Version 2.0 adds PBKDF2 ¾ Key size limited to 160 bits ¾ Arbitrary length key ¾ Only MD5 and SHA as underlying hash ¾ Any underlying hash function, most likely functions with HMAC ¾ Assumes key will be used for CBC ¾ Salt not fixed at 8 bytes ¾ 8-byte salt ¾ Provable security in random oracle model ¾ No security proof

© Ravi Sandhu 2000-2004 15 © Ravi Sandhu 2000-2004 16

PKCS 5 PKCS 10

™ Encryption schemes ™ Certification Request Syntax Standard ¾ PBES1 ™ Specifies format of unsigned • PBKDF1 with DES or RC2 in CBC certificate requested to be signed ¾ PBES2 • PBKDF2 with some underlying encryption ™ Does not specify format of returned scheme signed certificate ™ MAC scheme ¾ PBMAC1 • PBKDF2 with some underlying MAC scheme

© Ravi Sandhu 2000-2004 17 © Ravi Sandhu 2000-2004 18 PKCS 10 PKCS 10

™ Version 1.0, 1993 ™ CertificationRequestInfo ¾ In widespread use ¾ version ™ Version 1.5, 1998 ¾ subjectName ™ Version 1.7, 2000 ¾ subjectPublicKeyInfo ¾ attributes ¾ Minor changes such as references to PKCS 6 replaced by references to X.509v3

© Ravi Sandhu 2000-2004 19 © Ravi Sandhu 2000-2004 20

PKCS 10 PKCS 8

™ CertificationRequest ™ Private-Key Information Syntax ¾ certificationRequestInfo Standard ¾ signatureAlgorithm ¾ Version 1.2, 1993 ¾ signature ™ Signed with private key corresponding to public key in request ¾ very RSA specific ¾ IETF RFC 2511 defines a different format: certificate request message format

© Ravi Sandhu 2000-2004 21 © Ravi Sandhu 2000-2004 22

PKCS 8 PKCS 8

™ PrivateKeyInfo ™ encryptedPrivateKeyInfo ¾ version ¾ encryptionAlgorithm ¾ privateKeyAlgorithm ¾ encryptedData ¾ privateKey • privateKeyInfo BER-encoded and encrypted ¾ attributes ™ Usually encrypted using PKCS 5

© Ravi Sandhu 2000-2004 23 © Ravi Sandhu 2000-2004 24 PKCS 12 PKCS 12

™ Personal Information Exchange ™ 6 types of information Syntax Standard ¾ PKCS 8 shrouded key ¾ Private key ¾ Version 1, 1999 ¾ Certificates ™ Builds on PKCS 8 • X.509v3 • SDSI ™ Further evolution PKCS 15 ¾ CRLs • X.509 ¾ Secret • Whatever ¾ Recursive composition of these

© Ravi Sandhu 2000-2004 25 © Ravi Sandhu 2000-2004 26

PKCS 12 PKCS 12

™ Each of these can be ™ The entire stuff is then either ¾ Plaintext ¾ Signed ¾ Enveloped • And accompanied with signing certificate • Encrypted using a secret key which is ¾ MAC’ed encrypted using a public key • PKCS 5 based and accompanied with salt ¾ Encrypted and iteration count • Secret key encrypted ™ Notice: opposite of usual sequence • Usually password derived ¾ Encrypt and then authenticate, versus – Use PKCS 5 and a password formatting standard which is part of PKCS 12 ¾ Authenticate and then encrypt

© Ravi Sandhu 2000-2004 27 © Ravi Sandhu 2000-2004 28

PKCS PKCS DISCONTINUED OR DISINTERESTED TAKEN OVER BY OTHERS

™ PKCS 2 ™ PKCS 6 ¾ discontinued, incorporated into PKCS 1 ¾ Extended Certificate Syntax Standard ™ PKCS 3 ¾ Taken over by X.509v3 ¾ Diffie-Hellman Key Agreement, 1993 ™ PKCS 7 ™ PKCS 4 ¾ Cryptographic Message Syntax Standard ¾ discontinued, incorporated into PKCS 1 ¾ Taken over by IETF PKIX CMS

© Ravi Sandhu 2000-2004 29 © Ravi Sandhu 2000-2004 30 PKCS 9 PKCS 11

™ PKCS 9 ™ PKCS 11 ¾ Selected Attribute Types ¾ Cryptographic Token Interface Standard ¾ For use in PKCS 6, 7, 8, 10 ¾ API used by Netscape (pre 6.0) ¾ Microsoft CSP (Cryptographic Service Provider) is a competitor

© Ravi Sandhu 2000-2004 31 © Ravi Sandhu 2000-2004 32

PKCS IN DEVELOPMENT PKCS 11 vs PKCS 15

Crypto Application ™ PKCS 13 (new, in development) (Browser, email client etc) ¾ Elliptic Curve Cryptography Standard ¾ There are IEEE standards, so not clear why Standard Crypto API ™ PKCS 14 (new, in development) (PKCS 11, CSP, etc) ¾ Pseudorandom Number Generation Standard ™ PKCS 15 (new, in development) ¾ Cryptographic Token Information Format Cryptographic Token Standard Information ¾ Crypto API neutral Format Standard (PKCS 15)

© Ravi Sandhu 2000-2004 33 © Ravi Sandhu 2000-2004 34