资源描述:
《PKCS#1v2.1RSA密码学规范》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、PKCS#1v2.1:RSA密码学规范RSA实验室2002年6月14日--翻译:CaesarZou(zoudeqiang1979@tsinghua.org.cn)1.介绍这个文档提供了基于RSA算法的公钥密码学的建议实现,包含如下的方面:>密码学单元>加密方案>带填充的签名方案>以ASN.1语法展现的密钥和方案参考建议基于计算机的通用需求和通讯系统,并且引入了合适数量的灵活性。建议基于这个规范的应用标准可以包含额外的限制。参考建议尝试与IEEE-1353-2000和当前ANSIX9F1开发的讨论版本规范以及IEEEP1363[27]工
2、作组兼容。这个文档取代PKCS#1版本2.0。但是包含兼容的技术。这个文档的组织结构如下:>第一章是一个介绍。>第二章定义了这个文档中使用的一些符号。>第三章定义了RSA公钥和四要类型。>第四章和第五章定义了一些单元或者数学操作的基本单位。>第六章第七章和第八章解决了这个文档中加密和签名的方案。第六章给出了一个综述,沿着PKCS$1v1.5定义的方法,第七章定义了OAEP基础的加密算法,第八章定义了PSS基础的填充签名算法。>第九章定义了第八章定义的签名算法的编码方法。附录A定义了第三章定义的密钥以及第七章第八章定义的算法的ASN.1
3、语法标识。附录B定义了这个文档中使用的哈希函数和掩码生成算法。包含算法的ASN.1语法标识。附录C给出了一个ASN.1模块附录D,E,F和G包含了一些常见问题,PKCS#1的版本历史,给出到其它出版物和规范的引用,并提供关于公钥算法规范的基本信息。2符号c密文标识,是一个0到n-1大小的整数。C密文标识,一个字符串dRSA私有指数diri的CRT指数的附加因子,一个正整数满足e*di≡1(mod(ri-1)),i=3,....,udPp的CRT指数,一个正整数满足e*dP≡1(mod(p-1))dQq的CRT指数,一个正整数满足e*d
4、Q≡1(mod(q-1))eRSA公有指数EM编码消息,一个字节串emBits一个编码消息EM的比特长度emLen一个编码消息EM的字节长度GCD两个正整数的最大公约数Hash哈希函数hLen哈希函数Hash输出的字节长度kRSA模数n的字节长度KRSA私钥L可选的RSAES-OAEP标签,一个字节串LCM一系列正整数的最小公倍数m消息标识,一个0到n-1的整数M消息,一个字节串maskMGF的输出,一个字节串mgfSeedmask生成的种子,一个字节串mLen消息M的字节长度nRSA模数,n=r1*r2*....ru,u>=2(n,
5、e)RSA公钥p,qRSA模数n的第一分解因子qinvCRT西数,一个小于p的正整数,满足q.qinv≡1(modp)riRSA模数的主因子,包含r1=p,r2=q,如果有的话也包含额外的因子。s签名标志,一个0到n-1整数S签名,一个字节串sLenEMSA-PSS的字节长度tiri的CRT系数的附加质数,一个小于ri的正整数,满足r1*ri*....*ri-1*ti≡1(modri),i=3,.....uuRSA模数的主因子个数,u大于等于2x一个正整数Xx的字节串xLenX的字节串长度0x一个字节或者一个字节串的十六进制标识;"0
6、x48"意味着十六进制的值48;"(0x)48090e"意味着由3个连续的十六进制值48,09,03组成的字节串λ(n)r1-1,r2-1,ru-1的最小公倍数⊕两个字节串异或[.]上限函数,一个大于等于实数x的最小整数
7、
8、连接符≡全等符号;a≡b(modn)意思是n可以被整数a-b整除注释。CRT可以使用回调或者非回调的方式提供,本文参照了加纳算法使用的回调算法。参见3.2章的注释1.3密钥类型这个文档的算法和单元提供了两种密钥类型:RSA公钥和RSA私钥。RSA公钥和RSA私钥合在一起称为RSA密钥对。这个规范支持号称“多质数”的
9、可以有两个以上质数因子的RSA模数。多模数的RSA的好处是使用CRT(中国余数算法)的时候是解密和签名运算具有更低的计算代价。在单处理器平台就可以获得很好的表现,并且在多处理器平台上面会有很大的提升,因为可以并行的调用模幂运算。关于多个质数对RSA算法安全的影响的讨论,参见注释[49]3.1RSA公钥基于这个文档的目标,一个RSA公钥由两个组件组成:nRSA模数,一个正整数eRSA公共指数,一个正整数在一个有效的RSA公钥中,RSA模数n是由u个独立的质数ri,i=1,2....,u(u>=2)的乘积,RSA公共指数e是一个介于3到n
10、-1的整数,满足GCD(e,λ(n))=1其中λ(n)=LCM(r1–1,…,ru–1)。按惯例,前两个质数r1和r2也可以被分别的定义为p和q。在不同实现之间交换的公钥建议语法参见附录A.1.1;实现内部的表现可以是不