RSA Laboratories’ PKCS Series - a Tutorial Magnus Nyström, RSA Laboratories October, 1999
Agenda Part I: Background Part II: An ASN.1 Primer (if needed) Some history Cryptographic background information Things that needs to be standardized Part II: An ASN.1 Primer (if needed) Part III: Review of Active Documents: PKCS #1 PKCS #5 PKCS #7 PKCS #8 PKCS #9 PKCS #10 PKCS #11 PKCS #12 PKCS #13 PKCS #14 PKCS #15
…should make for a full half-day!
PKCS “Distinctive” Purpose: Scope: Process: catalyst for formal and de facto standards “missing pieces” Scope: public-key infrastructure, as well as cryptography Process: “informal,” “intervendor”
Background PKCS series created in the early 1990’s to promote public-key cryptography Initial documents defined RSA Encryption/Decryption RSA Signatures/Verification Diffie-Hellman key exchanges Password-based encryption Extended certificates (remember, only X.509v1 available at the time) Enveloping of messages
Background, Continued RSA Laboratories’ role in the standards-making process Publish the documents Solicit opinions and request for changes from developers Publish revised versions whenever appropriate Provide implementation guidelines RSA Laboratories’ retain the sole decision-making authority Different from “normal” standards-committee work
Background, Continued This gives a quick process - normally less than one year for a new specification Goal is not to retain ownership of these documents, but to facilitate “early adoption”, e.g.: PKCS #6 -> X.509 v3 PKCS #7 -> IETF CM PKCS #15 -> ISO (perhaps)
Some Cryptographic Background We’ll look at Public-key cryptography Secret-key cryptography Message-digest algorithms
Public-Key Cryptography “Invented” by Diffie and Hellman in 1976 Each party has one private key and one public Applications Signatures Key agreements (Key exchanges) Authentication Examples: RSA Elliptic Curves Diffie-Hellman
Secret-Key Cryptography Each pair of parties must share a secret key Applications Message encryption Authentication Signatures Examples DES RSA’s RC2, RC4, RC5 and RC6 IDEA (J. Massey)
Message Digests Transform a message of any length to a fixed length Cryptographic hash functions are used for this purpose: Collision-resistant One-way Examples: RSA’s MD2, MD4 and MD5 SHA-1, SHA-2
The Need for Standardization Digital Signatures: Message-Digest algorithms (PKCS #1) Public-Key algorithms (PKCS #1, PKCS #3, PKCS #13) Syntax for signed messages (PKCS #7) Storage of private keys Syntax for private keys (PKCS #1, PKCS #8) Syntax for encrypted private keys (PKCS #8) Methods for deriving secret keys from passwords (PKCS #5)
The Need for Standardization, II Digitally-Enveloped messages Message syntax (PKCS #7) Secret-Key algorithms (PKCS #7) Public-Key algorithms (for wrapping) (PKCS #1) Digital Certificates Syntax (PKCS #6; now historic) Certificate requests (PKCS #10) Signature algorithms (PKCS #1)
The Need for Standardization, III Key agreement Message syntax Key-Agreement algorithms (PKCS #3) Storage, access and exchange of cryptographic credentials Exchange, Storage (PKCS #12, PKCS #15) Access (PKCS #11) Generation of pseudorandom numbers Crucial for security; needs good guidelines (PKCS #14)