1. Introduction (简介)
本文档为基于RSA算法 [RSA] 的公钥密码学实现提供建议,涵盖以下方面:
- 密码学原语 (Cryptographic primitives)
- 加密方案 (Encryption schemes)
- 带附录的签名方案 (Signature schemes with appendix)
- 用于表示密钥和标识方案的ASN.1语法
这些建议旨在在计算机和通信系统中通用应用,因此包含相当大的灵活性. 基于这些规范的应用标准可能会包含额外的约束. 这些建议旨在与IEEE 1363 [IEEE1363]、IEEE 1363a [IEEE1363A]和ANSI X9.44 [ANSIX944]标准兼容.
本文档取代PKCS #1版本2.1 [RFC3447],但包含兼容的技术.
本文档的组织结构如下:
-
第1节是简介.
-
第2节定义本文档中使用的一些符号约定.
-
第3节定义RSA公钥和私钥类型.
-
第4节和第5节定义几个原语 (Primitives),或基本数学运算. 数据转换原语在第4节,密码学原语 (加密-解密和签名-验证) 在第5节.
-
第6、7和8节涉及本文档中的加密和签名方案. 第6节给出概述. 除了PKCS #1 v1.5中的方法外,第7节定义基于最优非对称加密填充 (Optimal Asymmetric Encryption Padding, OAEP) [OAEP]的加密方案,第8节定义基于概率签名方案 (Probabilistic Signature Scheme, PSS) [RSARABIN] [PSS]的带附录签名方案.
-
第9节定义第8节中签名方案的编码方法.
-
附录A定义第3节中定义的密钥以及第7节和第8节中方案的ASN.1语法.
-
附录B定义本文档中使用的哈希函数 (Hash Functions) 和掩码生成函数 (Mask Generation Function, MGF),包括这些技术的ASN.1语法.
-
附录C给出ASN.1模块.
-
附录D和E概述PKCS #1的修订历史,并提供关于公钥密码学标准 (Public-Key Cryptography Standards) 的一般信息.
本文档代表RSA实验室公钥密码学标准 (PKCS) 系列中PKCS #1 v2.2 [PKCS1_22]的重新发布.
1.1. Requirements Language (要求语言)
本文档中的关键词 "MUST" (必须)、"MUST NOT" (禁止)、"REQUIRED" (必需)、"SHALL" (应)、"SHALL NOT" (不应)、"SHOULD" (应该)、"SHOULD NOT" (不应该)、"RECOMMENDED" (推荐)、"MAY" (可以) 和 "OPTIONAL" (可选) 应按照 [RFC2119] 中的描述进行解释.