公钥密码标准PKCS系列
PKCS 是公钥密码标准(Public Key Cryptography Standards
)缩写,它是一组规范,以推动公钥密码的发展。
PKCS#1
RSA Cryptography Standard
,RSA 密码标准 定义了基于 RSA 公钥算法的加密解密和签名验签机制,其最新跟踪标准为 RFC 8017,主要包括以下内容:
- 密钥类型:包括公钥和私钥
- 数据转换原子操作
- 密码原子操作
- 加密解密方案
- 签名验签方案
- 签名编码方法
PKCS#3
Diffie-Hellman Key Agreement Standard
DH密钥协商标准 描述了一种基于 DH 算法进行密钥协商的方法。无需预先沟通,交易双方就可以协商出一个只有双方知道的秘密密钥,该密钥可以对后续双方的数据通信进行加密保护。
PKCS#5
Password-Based Cryptography Standard
基于口令的密码标准 描述了一种基于口令产生的对称密钥的方法。使用 MD2
或 MD5
从口令中派生密钥,并采用 DES
的 CBC
模式加密。这个功能主要用于加密从一个计算机传送到另一个计算机的私人密钥,而不是用于加密消息。该方法在 RFC 8018 重新发布。
PKCS#6
Extended-Certificate Syntax Standard
扩展的证书语法标准 描述扩展证书的语法格式,该扩展证书只是对 X.509
证书格式进行了扩展,并兼容了 X.509
证书格式。
PKCS#7
Cryptographic Message Syntax Standard
密码消息语法标准 描述了密码消息的通用语法。该语法允许嵌套,如一个数字信封可以包含另一个数字信封,或可以对已做数字信封的数据进行签名。该语法也允许扩展各种属性,还可以用于分发证书和 CRL。
PKCS#7 与 PEM 兼容,可以直接将加密的消息转换为 PEM 消息。PKCS#7 支持多种基于证书的管理系统,PEM 就是其中之一,在 RFC 5652 中有增强定义。
该标准主要包括消息通用语法和 6 种内容类型:明文、签名、信封、签名信封、摘要、密文。
PKCS#8
Private-Key Information Syntax Standard
私钥信息语法标准 描述私钥信息的语法格式,私钥信息包括私钥和一组属性。该标准还描述了私钥密文的语法,且允许使用基于口令的加密算法来加密私钥,在 RFC 5208 中又重新定了。
PKCS#9
Selected Attribute Types
可供选择的属性类型 定了了两个新的辅助对象类和精选的属性类型。
PKCS#10
Certification Request Syntax Standard
证书请求语法标准 描述了证书请求的语法格式。证书请求包括 DN 名称、公钥和一组可选属性,以及请求方对上述信息的签名。一个证书请求包括可辨别名、公开密钥和可选的一组属性,所有这些均由请求证书的用户签名。
证书请求被发送给 CA,由 CA 基于证书请求中的内容签发数字证书,在 RFC 2896 重新定义。
PKCS#11
Cryptographic Token Interface Standard
密码 Token 接口标准 定义了一种与密码设备无关的编程接口技术。
PKCS#12
Personal Information Exchange Syntax Standard
个人信息交换语法标准 描述了用于存储和传递个人身份信息的语法格式。个人身份信息包括私钥、证书、各种秘密及扩展等。它的目标是为各种应用提供一个标准的单一密钥文件。
常见的 PFX
文件就是遵循 PKCS #12 格式的文件。
PKCS#15
Cryptographic Token Information Format Standard
密码 Token 信息格式标准 描述了存储于密码 Token 中密码凭证的一种格式标准,允许密码令牌的用户向应用程序标识自己。