一种减少RSA密钥变量存储空间的方法技术

技术编号:3546721 阅读:272 留言:0更新日期:2012-04-11 18:40
一种减少RSA密钥变量存储空间的方法,属信息安全和网络安全的技术领域。本发明专利技术的技术方案利用模数N、公钥PK和私钥SK,两个大素数P和Q,以及9个变量三者之间的关系,生成长度总和为106比特的9个变量,把RSA密码系统密钥变量的存储空间减少到使其能用在以存储容量为106比特的磁条卡作为用户身份认证的EFT和POS机等系统中的程度。该方法有以下优点:将生成的9个变量存储在磁条卡上的长度为106比特的磁条卡上,可制得适于与EFT和POS机等系统联用的、既安全又能抵抗小指数攻击的用户身份认证卡或信息认证卡。

【技术实现步骤摘要】
一种减少RSA密钥变量存储空间的方法                    
本专利技术涉及一种减少RSA密钥变量存储空间的方法,属信息安全和网络安全的
                    
技术介绍
随着全球性信息化浪潮的出现,信息安全和网络安全日益受到人们的关注。信息安全和网络安全技术的应用已深入到大型、关键性业务系统如EFT和POS机系统(electronic fund transfer and point of salessystems)等。然而对于用小容量存储设备的系统而言,由于计算能力的限制和存贮设备介质不能存储大数据的物理特性,这些技术的应用受到了限制。公钥密码算法是Difte和Hellman在1976年提出的。他们利用一种特别的数学变换,幂运算,提出基于离散对数难题的密钥分配协议。用户进行两次模幂运算,就可以得到与其相关的一方的相同的密钥。由于这个变换是单向的,所以无法用于加密和解密。在美国专利US 4,218,582的中,Hellman和Merkle利用Difte和Hellman的结果提出一种消除安全信息通道的方法。1978年,Rivest,Shanir和Adleman提出公钥加密算法RSA,同时还提出数字签名,即电子签名的概念。他们为该算法申请了美国专利,并获得授权,专利号为US 4,405,829。该算法是利用两个大素数相乘,得出一个模数N,取一个公钥e,然后通过这两个大素数计算出私钥d,公开公钥e和模数N。这样,如果用户A要给公钥为e和模数为N的用户B发送消息M的话,则只需用模数N和公钥e对消息M进行模幂运算,得到密文C。用户B接到密文C后,用私钥d进行解密。上述过程的逆向运算正好可以用来做电子签名,以证实消息M的完整性、可认证性和不可否认性,因为私钥d只有用户B一人知道。-->由于公钥密码的密钥量巨大,在卡上认证系统里公钥密码一直未被看好。在美国专利US 4,438,824中,Mueller-Schloer用附加数据卡的办法提出了一个身份验证系统。在该系统里,多个终端与安全服务站相连,每个终端都有一个CPU、内存、读卡器和合数模。CPU通过合数模控制数据的加密和解密。而安全服务站的工作也类似,以此来进行验证,这个系统同时兼容了美国数据加密标准算法DES和公钥加密算法RSA。但在商业上,这个系统至今仍未被EFT和POS机系统所接受。因为这些系统采用容量很小的磁条卡作存储介质,来存储私人鉴别号码(PIN),以认证用户身份的合法性。在80年代末和90年代初,人们开始寻求解决将密钥变量存储在小容量存储介质上的办法。在美国专利US 4,408,203中,Canpbell用对称密码(私钥密码)的算法,提出了一个解决法方案。此外,在美国专利US 4,423,287中,Zeidler用一次密钥的方法解决EFT和POS机系统的用户身份认证问题。由于受到磁条卡的容量限制,人们(包括Canpbell和Zeidler)始终没能将更安全的RSA应用到EFT和POS机系统上去。目前安全的RSA合数模是1024比特的整数,而银行等机构的磁条卡上的3个磁道只能存放316,160和432比特的信息,这对于长度为1024比特的合数模、公钥、私钥都是远远不够的。美国专利US4,736,423虽公开了一个400比特的算法,但由于该算法本身的局限性,该算法无法推广到长度为1024比特的RSA上,而且当时小指数攻击方面的技术没有出现,在今天看来,这个方法可能是完全不安全的。所以对公钥密码系统在银行或金融系统的应用,主要取决于两个因素的发展,即要么大容量的存储技术出现,要么找到一种减少密钥存储空间的技术。由于存储技术的局限性,主要的出路便是发展减少密钥存储空间的技术。从实用和安全的角度来看,这又是一对矛盾。因此既安全又密钥存储空间小的密钥生成技术更是重中之重了。-->                    
技术实现思路
本专利技术要解决的技术问题是提出一种减少RSA密钥变量存储空间的方法,即减少RSA密钥变量存储空间的算法。该方法是一项生成既安全、密钥存储空间又小的密钥的技术,有以下优点:能为用小容量存储器,磁条卡的金融电子系统,如EFT和POS机系统等生成用于身份认证、鉴别和消息认证所需的高强度密码。本专利技术采用以下技术方案使上述的技术问题得到解决。根据目前EFT和POS机系统用磁条卡进行身份认证的特点,为满足RSA安全性的要求:RSA密钥变量的长度应为3072比特,其中,公钥PK、私钥SK和模数N各占1024比特;密钥:公钥PK和私钥SK应能抵抗小指数攻击。本专利技术的技术方案先将存储在磁条卡上的106比特的身份认证信息分成9个变量,其中两个变量的长度分别为16和20比特,其余变量的长度均为10比特;接着利用本专利技术的技术方案提供的算法生成所述的9个变量和求出两个大素数P和Q;用两个大素数P和Q的乘积可得到模数N=P*Q和两个能抵抗小指数攻击的密钥KP:公钥PK和私钥SK。综上,本专利技术的技术方案利用模数N、公钥PK和私钥SK,两个大素数P和Q,以及9个变量三者之间的关系,生成长度总和为106比特的9个变量。本专利技术的技术方案把RSA密码系统密钥变量的存储空间减少到使其能用在以存储容量为106比特的磁条卡作为用户身份认证的EFT和POS机等系统中的程度。关于EFT和POS机系统的认证,用公钥密码算法RSA来实现,需要用到减少密钥变量的存储空间的技术,而这个技术的三个主体分别是用户卡(CARD),终端(EFT)和主机处理中心(HPC)。假定用户在银行或其它金融机构已经注册,则他拥有一个基本账号(PAN)。而用户插入终端的卡上信息被读入时,用户只需输入个人的身份证号(PIN)来证实自己的基本账号(PAN)。如果PIN和PAN核对正确,则系统将启动业务服务。但是用户的身份认证实际上是利用卡上的用户个人身份信息:个人密钥KP,通过密码算法如RSA等来保护的。-->图1解释了RSA系统在EFT和POS机系统中的应用。磁条卡的容量不能存储足够安全的RSA密钥变量,成为了一个急需解决的问题。在详细解释减少RSA密钥变量存储空间的方法之前,先来看看整个系统的结构。首先,设用户的身份IDi,个人密钥KPi和模数Ni都被读入终端EFT,且个人的身份证号PINi也已读入终端EFT,这时用户的身份信息IDi和终端的身份信息TIDj被送到主机处理中心HPC。然后,主机处理中心HPC通过随机数发生器(GEN RN)产生随机数T1,并发送至终端EFT,接着终端EFT将随机数T1和业务要求消息TRM做连接运算,同时也把个人的身份证号PINi和个人密钥KPi做模2加运算,产生私钥SKi。用私钥SKi和模数Ni对业务要求消息TRM‖随机数T1做解密运算,得到dSKi(TRM,T1)。终端EFT通过自己的随机数发生器产生随机数T2,将它与dSKi(TRM,T1)一起发送给主机处理中心HPC。在主机处理中心HPC中,通过终端EFT发送的用户身份信息IDi,终端身份信息TIDj,找到用户的个人的身份证号PANi,模数Ni和公钥PKi,用公钥PKi和模数Ni对dSKi(TRM,T1)进行加密处理,恢复出业务要求消息TRM和随机数T1′。若随机数T1′=随本文档来自技高网
...

【技术保护点】
一种减少RSA密钥变量存储空间的方法,其特征在于,具体操作步骤:第一步选取变量D↓[1],使Z=2↑[488]-2D↓[1]+1是一个长度为488比特的素数,下面将利用Z产生其它的参数,所用的运算及其符号罗列如下:OR: 二进制数的‘或’运算,mod:数的模运算,[K]:不超过K的最大整数,a*b:表示a和b的相乘,L(Q):取Q的二进表示的左边373比特,即前373比特构成一个新数,以上未罗列的其它运算均为普通整数运 算;第二步选取D↓[2],D↓[3],得X↓[1]=D↓[2]↑[(D↓[3]+1)]modZ,使P″=(X↓[1])OR(2↑[487]+1)是一个长度为488比特的素数;第三步选取D↓[4],使P′=2(D↓ [4]+2↑[10])P″+1是一个长度为500比特的素数;第四步选取D↓[5],使P=2(D↓[5]+2↑[10])P′+1是一个长度为512比特的素数; 第五步计算X↓[2]=[2↑[1024]/P],将X↓[2 ]的二进制表示的最后一位强制改为1,得X↓[3];第六步选取D↓[6],使Q″=2(D↓[6]+2↑[10])X↓[3]+1是一个长度为488比特的素数;第七步选取D↓[7],使Q′=2(D↓[7]+2↑[10])Q ″+1是一个长度为500比特的素数;第八步选取D↓[8],使Q=2(D↓[8]+2↑[10])Q′+1是一个长度为512比特的素数;第九步计算模数N=P*Q,此时N的长度为1024比特;第十步选取D↓[9 ],计算d=2↑[374]+2(D↓[9]+L(Q))+1,使e*d≡1mod(P-1)(Q-1)中的e≥2↑[17]+1;第十一步令公钥PK=e,私钥SK=d,此时公钥PK和私钥SK的长度均为1024比特;第十二步 至此,变量D↓[1],D↓[2],D↓[3],D↓[4],D↓[5],D↓[6],D↓[7],D↓[8]和D↓[9]均已生成,其中,变量D↓[2]和D↓[9]的长度分别为20和16比特,其余的长度均为10比特。...

【技术特征摘要】
1、一种减少RSA密钥变量存储空间的方法,其特征在于,具体操作步骤:第一步  选取变量D1,使Z=2488-2D1+1是一个长度为488比特的素数,下面将利用Z产生其它的参数,所用的运算及其符号罗列如下:OR:二进制数的‘或’运算,mod:数的模运算,[K]:不超过K的最大整数,a*b:表示a和b的相乘,L(Q):取Q的二进表示的左边373比特,即前373比特构成一个新数,以上未罗列的其它运算均为普通整数运算;第二步  选取D2,D3,得X1=D2(D3+1)modZ,]]>使P″=(X1)OR(2487+1)是一个长度为488比特的素数;第三步  选取D4,使P′=2(D4+210)P″ +1是一个长度为500比特的素数;第四步  选取D5,使P=2(D5+210)P′+1是一个长度为512比特的素数;第五步  计算X2=[21024/P],将X2的二进制表示的最后一位强制改为1,得X3;第六步  选取D6,使Q″=2(D6+210)X3+1是一个长度为488比特的素数;第七步  选取D7,使Q′=2(D7+210)Q″+1是一个长度为500比特的素数;第八步  选取D8,使Q=2(D8+210)Q′+1是一个长度为512比特的素数;第九步  计算模数N=P*Q,此时N的长度为1024比特;第十步  选取D9,计算d=2374+2(D9+L(Q))+1,使e*d≡1 mod(P-1)(Q-1)中的e≥217+1;第十一步  令公钥PK=e,私钥SK=d,此时公钥PK和私钥SK的长度均为1024比特;第十二步  至此,变量D1,D2,D3,D4,D5,D6,D7,D8和D9均已生成,其中,变量D2和D9的长度分别为20和16比特,其余的长度均为10比特。2、根据...

【专利技术属性】
技术研发人员:钱海峰汪振华陈志杰时俭益陆洪文叶家琛李志斌王泽成
申请(专利权)人:上海燕托计算机有限公司上海氯碱化工股份有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利