一种实现加密的方法及装置的制造方法

文档序号:8489865阅读:196来源:国知局
一种实现加密的方法及装置的制造方法
【技术领域】
[0001]本申请涉及加密技术,尤指一种实现加密的方法及装置。
【背景技术】
[0002]手机游戏支付属于高安全性的支付业务,需要采用安全性高的加解密算法来防止恶意破解;目前,基于RSA技术对手机游戏的支付过程进行加解密,RSA采用非对称的加密方式,每个用户进行支付业务时,都有自己的私钥,由于RSA算法是公开的,加密的安全性取决于密钥的长度,密钥长度越长,加密的安全性越高,加密结果的长度也会增长,当密钥长度为2048位时,加密比较安全。由于密钥长度和加密结果长度的增加,密钥生成时长也会明显增长;如果使用服务器为用户生成RSA的密钥,由于密钥长度及密钥结果增长,密钥长度增加导致计算量成几何状态增加,导致运行时间大幅增加,影响支付业务的工作效率。另外,密钥长度增长,导致在客户端容易查找获得密钥,对支付业务的安全性会造成一定的影响。

【发明内容】

[0003]为了解决上述问题,本发明提供一种实现加密的方法及装置,能够保证支付业务的安全性能,缩短密钥长度,提高生成密钥的工作效率。
[0004]为了达到本发明的目的,本申请提供一种实现加密的方法,包括:
[0005]对加密信息字符串对应的信息数组按照预设的RSA非公算法进行处理,获得非公加密的数组;
[0006]将获得的非公加密的数组通过相关进制算法输出为可见字符串。
[0007]进一步地,按照预设的RSA非公算法进行处理之前,该方法还包括:
[0008]将所述加密信息字符串转换为二进制数并按照预设方式进行拆分,采用随机数填补到拆分生成的字节,对填补后的各字节进行移位运算后,再转换为所述信息数组;
[0009]所述按照预设的RSA非公算法进行处理后,该方法还包括:将填补到拆分生成字节的随机数和移位运算移位方向和移位位数存储在所述RSA非公加密数组中预置的位置。
[0010]进一步地,将加密信息字符串转换为二进制数并按照预设方式进行拆分,采用随机数填补到拆分生成的字节,对填补后的各字节进行移位运算包括:
[0011]将所述加密信息字符串的各二进制数根据高四位和低四位方式拆分为两个字
-K-
T ;
[0012]对拆分后各个字节的空白位填补随机数;
[0013]将填补完空白位的各二进制数分别通过预先设定的移位方向标识和移位位数进行移位运算。
[0014]进一步地,将填补到拆分生成字节的随机数和移位运算移位方向和移位位数存储在所述RSA非公加密数组中预置的位置具体包括:
[0015]在所述RSA非公加密数组预置的位置通过4比特bit存储进行填补的随机数,通过4bit表示移位方向和移位位数。
[0016]进一步地,获得非公加密的数组包括:
[0017]对所述加密信息字符串对应的数组按照预先设定的算法组合生成所述RSA非公算法进行处理;
[0018]所述预先设定的算法组合生成的RSA非公算法由改进的滑动窗口算法、和/或2k进制算法、和/或中国剩余定理、和/或SMM算法组合生成。
[0019]进一步地,预设的RSA非公算法为:由2k进制算法和SMM算法组合生成的RSA非公算法;
[0020]按照所述预设的RSA非公算法进行处理具体包括:
[0021]根据2k进制算法将加密信息字符串对应的数组的指数进行2 k进制化转化;
[0022]将2k进制化算法的迭代法中的乘方后求模的计算调整为在求乘方的过程中求模,计算获得中间结果;
[0023]如果中间结果值大于所述求乘方的过程中求模的模数的一半,则根据SMM算法用模数减去中间结果值得到的差来替代中间结果值,并继续RSA算法计算。
[0024]进一步地,相关进制算法为:自定义的90进制可见字符算法或其它进制算法。
[0025]进一步地,该方法还包括:
[0026]通过获取信息摘要的计算对加密信息字符串产生一串防伪的校验码的签名;
[0027]所述获取信息摘要的计算为:对所述加密信息字符串进行预设次数的消息摘要算法第五版MD5和/或安全哈希算法SHAl转换的计算。
[0028]另一方面,本申请还提供一种实现加密的装置,包括:非公加密单元及输出字符单元;其中,
[0029]非公加密单元,用于对加密信息字符串对应的信息数组按照预设的RSA非公算法进行处理,获得非公加密的数组;
[0030]输出字符单元,用于将获得的非公加密的数组通过相关进制算法输出为可见字符串O
[0031]进一步地,该装置还包括拆分移位单元,用于所述按照预设的RSA非公算法进行处理之前,
[0032]将加密信息字符串的各二进制数根据高四位和低四位方式拆分为两个字节;
[0033]对拆分后各个字节的空白位填补随机数;
[0034]将填补完空白位的各二进制数分别通过预先设定的移位方向标识和移位位数进行移位运算;
[0035]按照所述预设的RSA非公算法进行处理后,在RSA非公加密数组预置的位置通过4bit存储进行填补的随机数,通过4bit表示移位方向和移位位数。
[0036]进一步地,非公加密单元具体用于,
[0037]对加密信息字符串对应的信息数组按照预设的由2k进制算法和SMM算法预先设定组合生成的RSA非公算法,通过
[0038]根据2k进制算法将加密信息字符串对应的数组的指数进行2 k进制化转化;
[0039]将2k进制化算法的迭代法中的乘方后求模的计算调整为在求乘方的过程中求模,计算获得中间结果;
[0040]如果中间结果值大于所述求乘方的过程中求模的模数的一半,则根据SMM算法用模数减去中间结果值得到的差来替代中间结果值,并继续RSA算法计算处理,获得非公加密的数组;
[0041]进一步地,输出字符单元具体用于,将获得的非公加密的数组通过自定义的90进制可见字符算法或其它进制算法输出为可见字符串。
[0042]进一步地,该装置还包括签名单元,用于通过对加密信息字符串进行预设次数的MD5和/或SHAl转换的计算,产生一串防伪的校验码的签名。
[0043]与现有技术相比,本发明提供的技术方案,包括:对加密信息字符串对应的信息数组按照预设的RSA非公算法进行处理,获得非公加密的数组;将获得的非公加密的数组通过相关进制算法输出为可见字符串。本发明通过非预设的RSA非公算法对加密信息字符串对应的信息数组进行处理,保证了加密的安全性,通过相关进制算法输出为可见字符串,降低了密钥长度及密钥结果长度,提高了业务支付中加密算法的工作效率。
[0044]进一步地,通过对加密信息字符串进行拆分、填补及移位处理,也进一步提高了加密算法的安全性。
【附图说明】
[0045]附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
[0046]图1为本发明实现加密的方法的流程图;
[0047]图2为本发明实现加密的装置的结构框图。
【具体实施方式】
[0048]为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0049]图1为本发明实现加密的方法的流程图,如图1所示,包括:
[0050]步骤100、对加密信息字符串对应的信息数组按照预设的RSA非公算法进行处理,获得非公加密的数组。
[0051]需要说明的是,RSA算法是1977年由罗纳德.李维斯特(Ron Rivest)、阿迪?萨莫尔(Adi Shamir)和伦纳德?阿德曼(Leonard Adleman) 一起提出公钥加密的。RSA由他们三人姓氏开头字母拼在一起组成的。
[0052]将加密信息字符串转换为二进制数并按照预设方式进行拆分,采用随机数填补到拆分生成的字节,对填补后的各字节进行移位运算后,再转换为信息数组;
[0053]按照预设的RSA非公算法进行处理后,该方法还包括:将填补到拆分生成字节的随机数和移位运算移位方向和移位位数存储在RSA非公加密数组中预置的位置。
[0054]优选的,将加密信息字符串转换为二进制数并按照预设方式进行拆分,采用随机数填补到拆分生成的字节,对填补后的各字节进行移位运算包括:
[0055]将加密信息字符串的各二进制数根据高四位和低四位方式拆分为两个字节;
[0056]对拆分后各个字节的空白位填补随机数;
[0057]将填补完空白位的各二进制数分别通过预先设定的移位方向标识和移位位数进行移位运算。
[0058]将填补到拆分生成字节的随机数和移位运算移位方向和移位位数存储在RSA非公加密数组中预置的位置具体包括:
[0059]在RSA非公加密数组预置的位置通过4比特(bit)存储进行填补的随机数,通过4bit表示移位方向和移位位数。
[0060]本步骤中,获得非公加密的数组包括:
[0061]对加密信息字符串对应的数组按照预先设定的算法组合生成RSA非公算法进行处理;
[0062]预先设定的算法组合生成的RSA非公算法由改进的滑动窗口算法、和/或2k进制算法、和/或中国剩余定理、和/或SMM算法组合生成。这里,SMM算法是一种现有的基于乘同余对称特性的快速算法
[0063]预设的RSA非公算法为:由2k进制算法和SMM算法组合生成的RSA非公算法;
[0064]按照预设的RSA非公算法进行处理具体包括:
[0065]根据2k进制算法将加密信息字符串对应的数组的指数进行2 k进制化转化;
[0066]将2k进制化算法的迭代法中的乘方后求模的计算调整为在求乘方的过程中求模,计算获得中间结果;这里,通过迭代法可以减少中间结果的数值。
[0067]如果中间结果值大于求乘方的过程中求模的模数的一半,则根据SMM算法用模数减去中间结果值得到的差来替代中间结果值,并继续RSA算法计算。
[0068]需要说明的是,RSA依赖大数运算,目前算法都在1024位大数运算之上,而大多数编译器只能支持64位整数运算。最简单的办法是将大数当作数组进行处理,数组的各元素就是大数每一位上的数字,通常是0-9的十进制数字,然后对“数字数组”编写加减乘除函数,但这样还是效率低,因为二进制为1024位的大数在十进制下也有三百多位,做运算的时候还需要许多额外空间存放进退位标志及中间结果。本发明通过2k进制化算法将大数表示为一个η进制数组,即可以是32位也可以是64位进制数组,这样就可以把1024位的大数变为32位32进制的数组。完成了数组变换,通过减少迭代次数可以提高效率,因此将数组化的大数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1