所批准的算法是基于NIST SP 800-57 Part1 Rev.4第4节中所列出的算法。
Hash函数:只允许SHA2和SHA3家族额算法,输出大小需要>255bit。MD5和SHA-1不能使用。
用于加密和解密的对称密钥算法:必须使用AES(密钥大小>=128位)或TDES(密钥大小>=112位)。
消息验证码(MAC):CMAC或GMAC可以与AES一起使用,也可以使用经过批准的哈希函数和密钥大小>=128的HMAC。
签名算法: DSA, RSA(PKCS1-v1.5或PSS)和ECDSA,密钥长度要求后面会给出。
通过认证的密钥建立方案为:NIST SP800-56A(基于ECC/FCC的密钥协商方案), NIST SP800-56B(基于IFC的密钥协商方案)和SP800-38F(基于AES的密钥加密/封装)
当算法应用于与密钥传输、交换或建立相关的数据保护时,PCI关于算法及最小密钥长度的要求如下。(其它密钥长度和算法可用于非PCI相关的交易):
补充说明:
1. 除特别说明外,在满足PCI安全要求的设备上使用的所有数字签名都禁止使用SHA-1。这包括设备使用的非设备证书和厂商PKI的一部分,并包括厂商根证书。唯一的例外是,在设备启动时ROM上的初始代码可以使用SHA-1验证自己,但所有后续代码必须使用SHA-2验证。
推荐使用SHA-2或更安全的算法用于其他用途,但SHA-1可以与生成HMAC值和代理PANs(带有salt值)一起使用,用于在密钥派生函数(即KDF)中生成密钥。在使用SHA-1的情况下,测试要求中描述的密钥长度最小值仍需要满足。
2. IFC: Integer Factorization Cryptography, 整数分解密码; ECC: Elliptic Curve Cryptography