一、定义
PKCS(Public Key Cryptography Standards)是一系列的密码学标准,用于定义在公钥密码体系中涉及的一些基本结构和算法。PKCS#1 和 PKCS#8 是两个不同的标准,分别定义了不同的公钥私钥编码和封装格式。
PKCS#1
PKCS#1 定义了一种用于RSA算法的公钥和私钥的编码格式。在这种格式下,公钥和私钥的具体结构是明确定义的,通常包括模数(Modulus)和指数(Exponent)等字段。PKCS#1的公钥编码通常以 `SubjectPublicKeyInfo` 结构的形式存在,私钥编码通常以 `RSAPrivateKey` 结构的形式存在。
在PKCS#1中,公钥和私钥的编码格式通常是DER编码的ASN.1结构。
PKCS#8
PKCS#8 定义了一种通用的私钥信息语法(Private-Key Information Syntax),可以用于描述不同公钥密码算法的私钥信息。PKCS#8 标准允许在不同的密码算法中使用相同的私钥信息结构,提高了灵活性。
在PKCS#8中,私钥信息通常包括私钥的算法标识符和私钥的字节串(即私钥的DER编码)。私钥的DER编码可能是由PKCS#1定义的,也可能是由其他算法的专有格式定义的。