# Did the formalization of PKCS#1 RSA key formats come before or after X.509?

• The paper introducing the RSA cryptosystem titled "A Method for Obtaining Digital Signature and Public-Key Cryptosystems" was published in 1978.

• The initial version of X.500 published by CCITT (predecessor of ITU-T) dates back to 1988, with the then X.509 document specifying in its Annex.C a version of RSA cryptosystem with public key format as the ASN.1 structure:

SEQUENCE {INTEGER,INTEGER}

• Versions 1.0-1.3 of PKCS #1 were circulated among participants in RSA Data Security, Inc.'s Public-Key Cryptography Standards meetings in February and March 1991. (according to RFC 2313)

Obviously formal RSA specs come after X.500 framework, but is it because of that reason, PKCS #1 choose to specify its key formats in terms of ASN.1? What happened during those early meetings?

Obviously formal RSA specs come after X.500 framework, but is it because of that reason, PKCS #1 choose to specify its key formats in terms of ASN.1?

Yes, initial versions of PKCS #1 obviously had the intention to complement the RSA algorithm as described in X.509 - especially in terms of logical arguments of security (use of padding, etc.)

In the linked RFC-2313, it is said PKCS #1 v1.4 was published as NIST/OSI Implementors' Workshop document SEC-SIG-91-18. This implementors' workshop had several special interest groups (SIGs), and security SIG is one of them, hence the prefix SEC-SIG (although, as of 2021, not much relevant result would turn up in search engines if you just search the document ID).

As I've answered elsewhere, this workshop resulted in a multi-part output titled

Stable implementation agreements for open systems interconnection protocols

which is available from NIST as Special Publication 500-202 part 1 and 2. The image scanning of the PDF files are having JPEG DCT corruption artifacts, but the text information are mostly integral. This excerpt from part 1 explains the purpose of the workshop:

In February, 1983, at the request of industry, NIST organized the OSI Implementors' Workshop (OIW) for Implementors of OSI to bring together future users and potential suppliers of OSI protocols. The Workshop accepts as input the specifications of emerging standards for protocols and produces as output agreements on the implementation and testing particulars of these protocols. This process is expected to expedite the development of OSI protocols and promote interoperability of independently manufactured data communications equipment.

It may be interesting to know for some people that, SSL version 1 was introduced in 1994 by Netscape, just a few years after PKCS #1 ver1.4 and before ver1.5, and it's a guess of mine that Netscape might have wanted to utilize existing technology developed for the OSI stack for SSL's authentication of the server (I'm not sure if there was client authentication in SSLv1 as it's never published).