一种动态密码生成方法及系统的制作方法

文档序号:7643513阅读:82来源:国知局
专利名称:一种动态密码生成方法及系统的制作方法
技术领域
本发明属于信息安全技术领域,特别涉及一种动态密码生成方法及系统。
背景技术
随着互联网应用服务的普及,用户在网络上进行的交易越来越多。由于互联网的开放性、不可靠性及对等性,使得信息安全成为一个关键问题。尤其对基于互联网的网上银行服务来说,信息安全是最基础、最关键、最需要关注的部分。用户在使用网上银行的高风险业务时,如转账业务、支付业务等,必须输入正确的密码,银行才会为用户提供服务。通常,用户输入的密码是其账户的固有密码,因为用户输入的固有密码必须通过互联网传送给业务中心的服务器,所以输入固有密码会降低交易的安全性,非法攻击者很容易通过网络攻击等方式盗取用户的固有密码。为了防止因用户的固有密码被盗而带来的危险,目前增加了动态密码进行验证的方式来进行交易,即用户不仅需要输入固有密码,还需要输入每次交易均会变化的动态密码,如现有技术的动态口令牌就提供了这样一种动态密码。现有技术的动态口令牌主要使用N位种子和时间生成密码,黑客获知N位种子和动态口令的生成算法,就能破解密码;此外动态口令牌生成密码所采用的密码库中的字符主要为数字,使得生成的动态密码的值域范围很小,降低了破解的难度。

发明内容
为了解决现有技术的上述问题,本发明的目的是提供一种结合了随机数算法的难 以破解的动态密码生成方法及系统。为了实现上述目的,本发明提供了一种动态密码生成方法,其特征在于,包括步骤A :将多种动态异构信息拼接形成明文S,对明文S进行数字签名得到加密字节流S’,将S’与S移位拼接后再进行数字签名得到加密字节流S”,重复上述签名过程直至数字签名次数等于预先设定的签名次数N,得到加密字节流S2 ;步骤B :从所述加密字节流S2中选取一个字节,转换为数值a,并将该字节从S2中删除;步骤C :执行取余操作i = a%动态密码字符库的长度,其中所述动态密码字符库包括用于生成动态密码的多个字符;步骤D :从所述动态密码字符库中选取第i个字符,补进动态密码;步骤E :判断动态密码的长度是否达到要求,如果达到要求,则结束动态密码的生成,如果未达到要求,则重复步骤B至步骤E的过程。作为优选,所述步骤A中,所述多种动态异构信息包括交易信息、操作员信息、时间、随机数、预留文本库中的随机字段和高斯随机数,其中,所述预留文本库中存储公开网页,所述预留文本库中的随机字段的长度的最小值为10位。作为优选,所述步骤C和步骤D中,所述动态密码字符库中的字符为数字、英文字母和标点符号。作为进一步地优选,所述步骤C和步骤D中,所述动态密码字符库不包括数字0和字母O,数字I和字母1,数字2和字母z。作为优选,所述步骤C和步骤D中,所述动态密码字符库中的字符的排列顺序定期进行调整。作为优选,所述步骤E中,所述动态密码的长度要求的范围是6-10位。
作为优选,所述步骤A中,所述数字签名的方法为MD5或SHA。本发明同时还提供了一种动态密码生成系统,包括明文拼接模块、签名模块、转换模块、动态密码字符库、取余模块、密码拼接模块和判别模块,其中
所述明文拼接模块,用于将多种动态异构信息拼接形成明文S ;所述签名模块,用于对明文S进行数字签名得到加密字节流S’,将S’与S移位拼接后再进行数字签名得到加密字节流S”,重复上述签名过程直至数字签名次数等于预先设定的签名次数N,得到加密字节流S2 ;所述转换模块,用于从所述加密字节流S2中选取一个字节,转换为数值a,并将该字节从S2中删除;所述动态密码字符库,包括用于生成动态密码的多个字符;所述取余模块,用于执行取余操作i = a%动态密码字符库的长度;所述密码拼接模块,用于从所述动态密码字符库中选取第i个字符,补进动态密码;所述判别模块,用于判断动态密码的长度是否达到要求,如果达到要求,则结束动态密码的生成,如果未达到要求,则继续动态密码的生成。作为优选,所述多种动态异构信息包括交易信息、操作员信息、时间、随机数、预留文本库中的随机字段和高斯随机数,其中,所述预留文本库中存储公开网页,所述预留文本库中的随机字段的长度的最小值为10位。作为优选,所述签名模块是MD5加密系统或SHA加密系统。与现有技术相比,本发明具有以下有益效果(I)动态密码字符库包括数字、英文字母和标点符号,较动态口令牌大为扩展,使得动态密码的值域范围扩大,动态密码难于理解,增加了破解的难度;(2)结合了交易独特性和操作员身份唯一性,集中了随机数算法和数字签名算法的优点,使得同样的交易、同样的操作员不同时间来操作,所获得动态密码绝不一样;且动态密码仅在使用时产生,一次有效,重复率极低,具备较高的安全性;(3)动态密码生成过程中使用了数字签名,具备较高的加密强度、计算复杂性和不可倒推性,因此很难从密码本身推导出明文,很难掌握动态密码的生成规律,密码生成算法在保密性上不逊色于动态口令牌;(4)签名所使用的明文中加入了随机数,即使黑客获知签名所用的明文和签名算法,还需同步随机数发生器才有可能破解密码,破解难度大为增加。


图I为本发明的动态密码生成方法的流程示意图。
图2为本发明的动态密码生成系统的结构示意图。
具体实施例方式下面结合附图对本发明的实施例进行详细说明。图I为本发明的动态密码生成方法的流程示意图。如图I所示,本发明提供的动态密码生成方法包括步骤A :将多种动态异构信息拼接形成明文S,对明文S进行数字签名得到加密字节流S’,将S’与S移位拼接后再进行数字签名得到加密字节流S”,重复上述签名过程直至数字签名次数等于预先设定的签名次数N,得到加密字节流S2 ;步骤B :从所述加密字节流S2中选取一个字节,转换为数值a,并将该字节从S2中删除; 步骤C :执行取余操作i = a%动态密码字符库的长度,其中所述动态密码字符库包括用于生成动态密码的多个字符;步骤D :从所述动态密码字符库中选取第i个字符,补进动态密码;步骤E :判断动态密码的长度是否达到要求,如果达到要求,则结束动态密码的生成,如果未达到要求,则重复步骤B至步骤E的过程。所述步骤A中,所述明文S可以通过以下方法拼接形成I、从预留文本库中随机截取三个不同的字符串R1、R2和R3 ;所述预留文本库为自建字符串库,其中存储着大量公开网页,截取的字符串R1、R2和R3的长度最小值为10位;2、将操作员信息、R1、时间值、R2、随机数、交易信息、R3与高斯随机数组合拼接在一起,形成明文S。由于签名所使用的明文中加入了随机数,即使黑客获知签名所用的明文和签名算法,还需同步随机数发生器才有可能破解密码,破解难度大为增加。所述步骤A中,所采用的数字签名的算法不唯一,签名的主要目的是以字符串明文为输入,产生一个看似与明文毫无关系并极为混乱的加密字节流,可供选择的数字签名算法有 MD5 (Message Digest Algorithm MD5,消息摘要算法第五版)、SHA (Secure HashAlgorithm,安全散列算法)等。所述步骤B中,所述数值a是指选取的字节在计算机中对应的数值。所述步骤C和步骤D中,所述动态密码字符库中的字符有数字、英文字母和标点符号,并且删去容易混淆的数字和英文字母,如数字0和字母O,数字I和字母1,数字2和字母z等,以免用户在使用动态密码时弄错;动态密码字符库中的字符举例如下c,x, ,%,
7 V !,e,6,£L,h,},n,,; ft tC^ f p (,),, ,W,i,U,+,\,d,
q, &, [, k, r, ], {等。由于所述动态密码字符库包括数字、英文字母和标点符号,较动态口令牌大为扩展,使得动态密码的值域范围扩大,动态密码难于理解,增加口了破解的难度。因为动态密码的生成依赖于动态密码字符库中的字符的排列顺序,所以,为了确保本发明的动态密码生成方法的安全,需要定期对动态密码字符库中字符的排列顺序进行调整,如一年调整一次,以防范破解者进行共谋破解。
所述步骤E中,生成动态密码时,动态密码的初始长度设为0,生成的所述动态密码的长度要求的范围是6-10位,该长度范围内的动态密码不但能保证安全性,而且使用起来比较方便。本发明提供的动态密码生成方法结合了交易独特性和操作员身份唯一性,集中了随机数算法和数字签名算法的优点,使得同样的交易、同样的操作员不同时间来操作,所获得动态密码绝不一样,增加了破解的难度。由于动态密码生成过程中使用了数字签名,具备较高的加密强度、计算复杂性和不可倒推性,因此很难从密码本身推导出明文,很难掌握动态密码的生成规律,密码生成算法在保密性上不逊色于动态口令牌。图2为本发明的动态密码生成系统的结构示意图。如图 2所示,本发明提供的动态密码生成系统包括明文拼接模块、签名模块、转换模块、动态密码字符库、取余模块、密码拼接模块和判别模块,其中所述明文拼接模块,用于将多种动态异构信息拼接形成明文S ;所述多种动态异构信息包括交易信息、操作员信息、时间、随机数、预留文本库中的随机字段和高斯随机数,其中,所述预留文本库中存储公开网页,所述预留文本库中的随机字段的长度的最小值为10位;所述签名模块,用于对明文S进行数字签名得到加密字节流S’,将S’与S移位拼接后再进行数字签名得到加密字节流S”,重复上述签名过程直至数字签名次数等于预先设定的签名次数N,得到加密字节流S2 ;所述签名模块采用的数字签名的算法不唯一,签名的主要目的是以字符串明文为输入,产生一个看似与明文毫无关系并极为混乱的加密字节流,可供选择的签名系统有MD5加密系统(Message Digest Algorithm MD5,消息摘要算法第五版)、SHA加密系统(Secure Hash Algorithm,安全散列算法)等;所述转换模块,用于从所述加密字节流S2中选取一个字节,转换为该字节在计算机中的数值a,并将该字节从S2中删除;所述动态密码字符库,包括用于生成动态密码的多个字符,如数字、英文字母和标点符号,并且为了避免用户在使用动态密码时弄错,删去容易混淆的数字和英文字母,如数字0和字母O,数字I和字母1,数字2和字母z等;动态密码字符库中的字符举例如下c,X, ,/o V !,e,6,£i,h,},n,,;,#,,9,g,*,〈,f,p,〉,@,5,(,),, ,w,i,u,+,\’ d, q,&,[,k,r,],{等;并且由于动态密码的生成依赖于动态密码字符库中的字符的排列顺序,所以,为了确保本发明的动态密码生成系统的安全性,需要定期对动态密码字符库中字符的排列顺序进行调整,如一年调整一次,以防范破解者进行共谋破解;所述取余模块,用于执行取余操作i = a%动态密码字符库的长度,得到数值a对动态密码字符库的长度取余的结果i ;所述密码拼接模块,用于从所述动态密码字符库中选取第i个字符,补进动态密码;所述判别模块,用于判断动态密码的长度是否达到要求,如果达到要求,则结束动态密码的生成,如果未达到要求,则继续动态密码的生成。以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视 为落在本发明的保护范围内。
权利要求
1.一种动态密码生成方法,其特征在于,包括 步骤A :将多种动态异构信息拼接形成明文S,对明文S进行数字签名得到加密字节流S’,将S’与S移位拼接后再进行数字签名得到加密字节流S”,重复上述签名过程直至数字签名次数等于预先设定的签名次数N,得到加密字节流S2 ; 步骤B :从所述加密字节流S2中选取一个字节,转换为数值a,并将该字节从S2中删除; 步骤C :执行取余操作i = a%动态密码字符库的长度,其中所述动态密码字符库包括用于生成动态密码的多个字符; 步骤D :从所述动态密码字符库中选取第i个字符,补进动态密码; 步骤E :判断动态密码的长度是否达到要求,如果达到要求,则结束动态密码的生成, 如果未达到要求,则重复步骤B至步骤E的过程。
2.根据权利要求I所述的动态密码生成方法,其特征在于,所述步骤A中,所述多种动态异构信息包括交易信息、操作员信息、时间、随机数、预留文本库中的随机字段和高斯随机数,其中,所述预留文本库中存储公开网页,所述预留文本库中的随机字段的长度的最小值为10位。
3.根据权利要求I所述的动态密码生成方法,其特征在于,所述步骤C和步骤D中,所述动态密码字符库中的字符为数字、英文字母和标点符号。
4.根据权利要求3所述的动态密码生成方法,其特征在于,所述步骤C和步骤D中,所述动态密码字符库不包括数字0和字母O,数字I和字母1,数字2和字母z。
5.根据权利要求I所述的动态密码生成方法,其特征在于,所述步骤C和步骤D中,所述动态密码字符库中的字符的排列顺序定期进行调整。
6.根据权利要求I所述的动态密码生成方法,其特征在于,所述步骤E中,所述动态密码的长度要求的范围是6-10位。
7.根据权利要求I所述的动态密码生成方法,其特征在于,所述步骤A中,所述数字签名的方法为MD5或SHA。
8.一种动态密码生成系统,其特征在于,包括明文拼接模块、签名模块、转换模块、动态密码字符库、取余模块、密码拼接模块和判别模块,其中 所述明文拼接模块,用于将多种动态异构信息拼接形成明文S ; 所述签名模块,用于对明文S进行数字签名得到加密字节流S’,将S’与S移位拼接后再进行数字签名得到加密字节流S”,重复上述签名过程直至数字签名次数等于预先设定的签名次数N,得到加密字节流S2 ; 所述转换模块,用于从所述加密字节流S2中选取一个字节,转换为数值a,并将该字节从S2中删除; 所述动态密码字符库,包括用于生成动态密码的多个字符; 所述取余模块,用于执行取余操作i = a%动态密码字符库的长度; 所述密码拼接模块,用于从所述动态密码字符库中选取第i个字符,补进动态密码;所述判别模块,用于判断动态密码的长度是否达到要求,如果达到要求,则结束动态密码的生成,如果未达到要求,则继续动态密码的生成。
9.根据权利要求8所述的动态密码生成系统,其特征在于,所述多种动态异构信息包括交易信息、操作员信息、时间、随机数、预留文本库中的随机字段和高斯随机数,其中,所述预留文本库中存储公开网页,所述预留文本库中的随机字段的长度的最小值为10位。
10.根据权利要求8所述的动态密码生成系统,其特征在于,所述签名模块是MD5加密系统或SHA加密系统。全文摘要
本发明公开了一种动态密码生成方法及系统,所述方法包括将多种动态异构信息拼接形成明文S,对明文S进行N次数字签名得到加密字节流S2;从S2中选取一个字节,转换为数值a;执行取余操作i=a%动态密码字符库的长度;从动态密码字符库中选取第i个字符,补进动态密码;重复上述动态密码生成过程,直至动态密码长度达到要求;所述系统包括明文拼接模块、签名模块、转换模块、动态密码字符库、取余模块、密码拼接模块和判别模块。本发明提供的动态密码生成方集中了随机数算法和数字签名算法的优点,使得同样的交易、同样的操作员不同时间来操作,所获得动态密码绝不一样;且动态密码仅在使用时产生,重复率极低,具备较高的安全性。
文档编号H04L9/32GK102752110SQ20111009829
公开日2012年10月24日 申请日期2011年4月19日 优先权日2011年4月19日
发明者庄向友, 方晨, 林启琴, 潘定, 王海炜, 王炯, 陈丹霞 申请人:中国银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1