PKCS#1v2.1RSA密码学规范 下载本文

PKCS#1 v2.1: RSA密码学规范

RSA实验室 2002年6月14日

--翻译:CaesarZou (zoudeqiang1979@tsinghua.org.cn) 1.介绍

这个文档提供了基于RSA算法的公钥密码学的建议实现,包含如下的方面: >密码学单元 >加密方案

>带填充的签名方案

>以ASN.1语法展现的密钥和方案

参考建议基于计算机的通用需求和通讯系统,并且引入了合适数量的灵活性。建议基于这个规范的应用标准可以包含额外的限制。参考建议尝试与IEEE-1353-2000和当前ANSI X9F1开发的讨论版本规范以及IEEE P1363[27]工作组兼容。

这个文档取代PKCS#1 版本2.0。但是包含兼容的技术。

这个文档的组织结构如下: >第一章是一个介绍。

>第二章定义了这个文档中使用的一些符号。 >第三章定义了RSA公钥和四要类型。

>第四章和第五章定义了一些单元或者数学操作的基本单位。

>第六章第七章和第八章解决了这个文档中加密和签名的方案。第六章给出了一个综述,沿着PKCS$1 v1.5定义的方法,第七章定义了OAEP基础的加密算法,第八章定义了PSS基础的填充签名算法。

>第九章定义了第八章定义的签名算法的编码方法。

附录A定义了第三章定义的密钥以及第七章第八章定义的算法的ASN.1语法标识。

附录B定义了这个文档中使用的哈希函数和掩码生成算法。包含算法的ASN.1语法标识。

附录C给出了一个ASN.1模块

附录D,E,F和G包含了一些常见问题,PKCS#1的版本历史,给出到其它出版物和规范的引用,并提供关于公钥算法规范的基本信息。

2 符号

c 密文标识,是一个0到n-1大小的整数。 C 密文标识,一个字符串 d RSA私有指数

di ri的CRT指数的附加因子,一个正整数满足 e * di ≡ 1 (mod(ri-1)), i=3,....,u

dP p的CRT指数,一个正整数满足e*dP≡1(mod(p-1)) dQ q的CRT指数,一个正整数满足e*dQ≡1(mod(q-1)) e RSA公有指数 EM 编码消息,一个字节串 emBits 一个编码消息EM的比特长度 emLen 一个编码消息EM的字节长度 GCD 两个正整数的最大公约数 Hash 哈希函数

hLen 哈希函数Hash输出的字节长度 k RSA模数n的字节长度 K RSA私钥

L 可选的RSAES-OAEP标签,一个字节串 LCM 一系列正整数的最小公倍数 m 消息标识,一个0到n-1的整数

M 消息,一个字节串 mask MGF的输出,一个字节串 mgfSeed mask生成的种子,一个字节串 mLen 消息M的字节长度

n RSA模数,n=r1*r2*....ru, u>=2 (n,e) RSA公钥

p,q RSA模数n的第一分解因子

qinv CRT西数,一个小于p的正整数,满足q.qinv≡1(mod p) ri RSA模数的主因子,包含r1=p, r2=q,如果有的话也包含额外的因子。

s 签名标志,一个0到n-1整数 S 签名,一个字节串 sLen EMSA-PSS的字节长度

ti ri的CRT系数的附加质数,一个小于ri的正整数,满足r1*ri*....*ri-1*ti ≡ 1(mod ri), i=3,.....u

u RSA模数的主因子个数,u大于等于2 x 一个正整数 X x的字节串 xLen X的字节串长度

0x 一个字节或者一个字节串的十六进制标识;\意味着十六进制的值48;\09 0e\意味着由3个连续的十六进制值48,09,03组成的字节串

λ (n) r1-1,r2-1,ru-1的最小公倍数 ⊕两个字节串异或

[.] 上限函数,一个大于等于实数x的最小整数 || 连接符

≡全等符号;a≡b(mod n)意思是n可以被整数a-b整除