发明内容
本发明提供了一种加解密方法、装置及系统,以解决现有技术中加解密方法安全性低的问题。
一种加密方法,包括:
获取N位原码,并设定C位校验码,所述N和C为正整数;
根据校验码数值从预先建立的加密算法组中选择对应的加密算法对所述原码进行加密;
根据加密后的N位数码选择预设的加密算法对C位校验码进行加密;
将加密后的N位数码和C位校验码组成N+C位数码,从N+C位数码中任意选择一位作为选择码,根据选择码从预先建立的可逆矩阵组中选择其对应的N+C-1阶可逆矩阵;
将上述步骤中剩余的N+C-1位数码与所述选择的N+C-1阶可逆矩阵相乘;
将所述选择码插入到所述相乘得到的N+C-1位结果中其对应的位置,组成N+C位密码。
优选的,所述加密算法组中的算法为进行模K处理后的算法,所述K为正整数。
优选的,所述预先建立的加密算法组按照算法类型建立,所述加密算法组包括:乱序算法组、对称加密算法组和校验码加密算法组。
优选的,所述对称加密算法组中的每一套对称加密算法为乱序算法和hill加密、vigenere加密或仿射变换算法中的任一个的组合。
优选的,所述根据校验码数值从预先建立的加密算法组中选择对应的加密算法对所述原码进行加密的具体过程为:
根据校验码的前a位数字数值从预先建立的原码乱序算法组中选择对应的乱序算法,并对N位原码进行乱序加密;
根据校验码剩余的b位数字数值从预先建立的对称加密算法组中选择对应的对称加密算法,对乱序后的原码进行对称加密。
优选的,所述根据加密后的N位数码选择预设的加密算法对校验码进行加密的具体过程为:
将加密后的N位数码相加,得到N位数码之和;
将得到的N位数码之和与所述的校验码加密算法组中的种类数D进行模运算;
根据模运算结果选择对应的校验码加密算法对C位校验码进行加密。
优选的,所述将加密后的N位数码和C位校验码组成N+C位数码,从N+C位数码中任意选择一位作为选择码,根据选择码从预先建立的矩阵组中选择其对应的N+C-1阶可逆矩阵的过程具体为:
将加密后的N位数码和C位校验码按照N位数码在前,C位数码在后的顺序组成N+C位数码;
选择所述N+C位数码的第一位作为选择码,根据其数值选择预先建立的可逆矩阵组中对应的N+C-1阶矩阵。
一种解密方法,包括:
获得N+C位密码,所述N+C位密码中包括与原码对应的N位密码和与校验码对应的C位密码,所述获得N+C位密码后还包括:
从N+C位密码中任意选择一位作为选择码,根据选择码从预先建立的可逆矩阵组中选择其对应的N+C-1阶可逆矩阵;
将上述步骤中剩余的N+C-1位密码与所述选择的N+C-1阶可逆矩阵相乘;
将所述选择码插入到所述相乘得到的N+C-1位结果中其对应的位置,组成N+C位数码;
根据所述N+C位数码中与原码对应的N位数码,选择预设的解密算法,对N+C位数码中与校验码对应的C位数码进行解密,得到校验码;
根据所述校验码的数值从预先建立的解密算法组中选择对应的解密算法,对所述N+C位数码中与原码对应的N位数码进行解密。
优选的,所述解密算法组中的算法为进行模K处理后的算法。
一种加密装置,包括:校验码设定单元、原码加密单元和校验码加密单元,其中:
所述校验码设定单元用于,为获取的N位原码设定C位校验码;
所述原码加密单元用于,根据所述校验码设定单元设定的校验码数值从预先建立的加密算法组中选择对应的加密算法对所述原码进行加密;
所述校验码加密单元用于,根据所述原码加密单元加密后的N位数码选择预设的加密算法对C位校验码进行加密;
所述加密装置还包括:第一数码组合单元、第一矩阵选择单元、第一相乘单元和第二数码组合单元,其中:
所述第一数码组合单元用于,将加密后的N位数码和C位校验码组成N+C位数码;
所述第一矩阵选择单元用于,从所述第一数码组合单元组合的N+C位数码中任意选择一位作为选择码,根据选择码从预先建立的可逆矩阵组中选择其对应的N+C-1阶可逆矩阵;
所述第一相乘单元用于,将获取选择码后剩余的N+C-1位数码与所述第一矩阵选择单元选择的N+C-1阶可逆矩阵相乘;
所述第二数码组合单元用于,将所述选择码插入到所述第一相乘单元相乘得到的N+C-1位结果中其对应的位置,组成N+C位密码。
优选的,还包括:模K单元,
所述模K单元用于,对加密算法组中的算法进行模K处理。
一种解密装置,包括:密码获取单元、第二矩阵选择单元、第二相乘单元、第三数码组合单元、校验码解密单元和原码解密单元,其中:
所述密码获取单元用于,获得N+C位密码,所述N+C位密码中包括与原码对应的N位密码和与校验码对应的C位密码;
所述第二矩阵选择单元用于,从N+C位密码中任意选择一位作为选择码,根据选择码从预先建立的可逆矩阵组中选择其对应的N+C-1阶可逆矩阵;
所述第二相乘单元用于,将获取选择码后剩余的N+C-1位密码与所述第二矩阵选择单元选择的N+C-1阶可逆矩阵相乘;
所述第三数码组合单元用于,将所述选择码插入到所述第二相乘单元相乘得到的N+C-1位结果中其对应的位置,组成N+C位数码;
所述校验码解密单元用于,根据所述N+C位数码中与原码对应的N位数码,选择预设的解密算法,对N+C位数码中与校验码对应的C位数码进行解密,得到校验码;
所述原码解密单元用于,根据所述校验码解密单元得到的校验码数值从预先建立的解密算法组中选择对应的解密算法,对所述N+C位数码中与原码对应的N位数码进行解密。
优选的,还包括:模K单元,
所述模K单元用于,对解密算法组中的算法进行模K处理。
一种加解密系统,包括:加密装置和解密装置,其中:
所述加密装置包括:校验码设定单元、原码加密单元、校验码加密单元、第一数码组合单元、第一矩阵选择单元、第一相乘单元和第二数码组合单元,其中:
所述校验码设定单元用于,为获取的N位原码设定C位校验码;
所述原码加密单元用于,根据所述校验码设定单元设定的校验码数值从预先建立的加密算法组中选择对应的加密算法对所述原码进行加密;
所述校验码加密单元用于,根据所述原码加密单元加密后的N位数码选择预设的加密算法对C位校验码进行加密;
所述第一数码组合单元用于,将加密后的N位数码和C位校验码组成N+C位数码;
所述第一矩阵选择单元用于,从所述第一数码组合单元组合的N+C位数码中任意选择一位作为选择码,根据选择码从预先建立的可逆矩阵组中选择其对应的N+C-1阶可逆矩阵;
所述第一相乘单元用于,将获取选择码后剩余的N+C-1位数码与所述第一矩阵选择单元选择的N+C-1阶可逆矩阵相乘;
所述第二数码组合单元用于,将所述选择码插入到所述第一相乘单元相乘得到的N+C-1位结果中其对应的位置,组成N+C位密码;
所述解密装置包括:密码获取单元、第二矩阵选择单元、第二相乘单元、第三数码组合单元、校验码解密单元和原码解密单元
所述密码获取单元用于,获得N+C位密码,所述N+C位密码中包括与原码对应的N位密码和与校验码对应的C位密码;
所述第二矩阵选择单元用于,从N+C位密码中任意选择一位作为选择码,根据选择码从预先建立的可逆矩阵组中选择其对应的N+C-1阶可逆矩阵;
所述第二相乘单元用于,将获取选择码后剩余的N+C-1位密码与所述第二矩阵选择单元选择的N+C-1阶可逆矩阵相乘;
所述第三数码组合单元用于,将所述选择码插入到所述第二相乘单元相乘得到的N+C-1位结果中其对应的位置,组成N+C位数码;
所述校验码解密单元用于,根据所述N+C位数码中与原码对应的N位数码,选择预设的解密算法,对N+C位数码中与校验码对应的C位数码进行解密,得到校验码;
所述原码解密单元用于,根据所述校验码解密单元得到的校验码数值从预先建立的解密算法组中选择对应的解密算法,对所述N+C位数码中与原码对应的N位数码进行解密。
优选的,所述系统还包括:模K单元,所述模K单元用于,对加解密算法组中的算法进行模K处理。
从上述的技术方案可以看出,本发明实施例公开的加解密方法,预先设置了多组加解密算法,根据密文的校验码来确定具体的加解密算法,然后利用加密得到的密码选择加密算法对校验码进行加密,从而实现了双重加密,这就使得密文被破解的难度提高,即使其中某个密文的加密算法被破解,也很难类推到其他密文上去。提高了加密的安全性。
利用加密后的密码中任意一位的数值选择一个矩阵与加密后密码相乘,在一定程度上增加了加密方法的复杂度,同时也增加了解密的复杂度,进一步提高了加解密过程的安全性。
而且将采用的加解密算法进行模K处理,使得加密得到的密文能够根据需要转换到其需要的任意K进制数。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种加密方法,以实现提高加密的安全性的目的。其具体流程如图1所示,包括:
步骤S11、获取N位原码,为N位原码设定C位校验码,N和C都为正整数;
步骤S12、根据校验码从预先建立的加密算法组中选择对应的加密算法对N位原码进行加密;
步骤S13、根据加密后的N位数码选择对应的加密算法对校验码进行加密。
通过上述过程可以对一组原码任意的设定校验码,然后根据校验码从多个算法中选择加密算法,增强了算法选择的随机性,同时,利用加密得到的密码选择加密算法对校验码也进行加密,从而实现了双重加密,增大了密文被破解的难度。
根据上述思想,本发明的具体实施方式如下所述:
实施例一
本发明实施例1公开的加密方法的流程如图2所示,包括:
步骤S21、获取N位原码,为N位原码设定C位校验码;
步骤S22、根据校验码从预先建立的加密算法组中选择对应的加密算法对N位原码进行加密;
步骤S23、根据加密后的N位数码选择对应的加密算法对校验码进行加密。
步骤S24、将加密后的N位数码和C位校验码组成N+C位数码,从N+C位数码中任意选择一位作为选择码,根据选择码从预先建立的矩阵组中选择其对应的N+C-1阶矩阵;
步骤S25、将上述步骤中剩余的N+C-1位数码与所述选择的N+C-1阶可逆矩阵相乘;
步骤S26、将所述选择码插入到所述相乘得到的N+C-1位结果中其对应的位置,组成N+C位密文。
当需要对其他进制的数码进行加密时,所述方法中还包括:将加密算法组中的加密算法进行模K处理;也就是将每个算法的结果模K,使得其加密结果转换为对应的K进制数。K为整数,一般为2-16中的任意值。
上述方法中加入了对加密后密码进行矩阵相乘的过程,在一定程度上增加了加密过程的复杂性,同时也就增加了解密的复杂度。
实施例二
本实施例公开的加密方法的流程如图3所示,包括:
步骤S31、获取N位原码,为N位原码设定C位校验码;
步骤S32、根据校验码的前a位数字从预先建立的原码乱序算法组中选择第a种原码乱序算法,并对N位原码进行乱序;
步骤S33、根据校验码剩余的b位数字从预先建立的对称加密算法组中选择第b种对称加密算法,对乱序后的原码进行对称加密算法。
在此处,利用校验码的数值,对N位原码进行了两次加密,并且选取了不同的加密方法,可以根据实际情况选择任意多种加密算法对原码进行加密。而且利用校验码的数值选择加密算法也可以有其他的形式,例如将检验码奇数位上的数选择乱序算法,偶数位上的数选择对称加密算法,都是可行的。
步骤S34、将加密后的N位数码相加,得到N位数码之和;
步骤S35、将得到的N位数码之和与预先建立的对称加密算法组中的种类数D进行模运算;
也可以对其进行乱序加密或仿射加密。对N位数码之和与D进行模运算的目的是,将数码之和转换为0-D中的数,从而可以找到对应的加密算法。并不限定这种根据N位数码之和进行模运算的方法,也可以是其他的形式,例如选取N位数码中的任意一位与D模,根据结果选择对应的加密算法。
步骤S36、将加密后的N位数码和C位校验码按照N位数码在前,C位数码在后的顺序组成N+C位数码;
步骤S37、选择所述N+C位数码的第一位作为选择码,根据其数值选择预先建立的矩阵组中对应的N+C-1阶可逆矩阵。
步骤S38、将选择码插入到相乘得到的N+C-1位数码的第一位,组成N+C位密文。
上述步骤中也可以选择C位校验码在前,N数码在后的顺序排列,选择码可以任意选取,只要保证在运算结束后将其插入到原来的位置即可。
由上述方案可以看出,本实施例公开的加密方法将实施例一中的步骤进一步细化,对每一次的加密算法选择规则进行了列举,但是,其选择规则并不限定于本实施例列举的类型。
本方法中根据加密算法类型预先设置了加密算法组,加密时,根据设定的C位校验码,来选择不同组中的不同种类的加密算法,同时由于C位校验码的随机性,所以对不同的N位原码进行加密选择的加密算法也存在着随机性,增加了解码的困难,从而解决了加密过程中加密算法单一、安全性低的问题。通过对加密算法的模K处理,也实现了该算法可以应用于多种进制数的加密过程,扩大了其适用范围。
实施例三
本实施例更进一步的公开的加密方法中各个步骤的具体实现,首先预先建立加密算法组,其中包含:10套校验码加密算法、10套对称加密算法和10套乱序算法,预先设定0-9的数值分别对应10套乱序算法L0到L9,20到29分别对应10套对称加密算法S0到S9,0到9分别对应10套校验码加密算法C0到C9。
本实施例中的算法都经过了模10处理,即将其算法后增加模10的步骤,将其加密后的密文转换为十进制数。经过验证,每一套对称加密算法主要是一种乱序算法和三种对称加密算法的复合,本实施例中这三种加密方法是hill加密、vigenere加密和仿射变换。
现假设C=3,N=19,校验码是(1 2 0),待加密的数码是(9 8 7 6 5 4 3 21 0 1 2 3 4 5 6 7 8 9),其加密过程流程图如图4所示,包括:
步骤S41、由校验码的第一位确定算法编号为1的19位数码乱序算法L1,其算法原理为:
设X1…X19为待乱序的原码,现将X19作他用,对前18位十进制数作乱序计算。
将X1…X18按如下方式排列成3×6的矩阵,
给定密钥K1=(6,3,1,5,4,2)定义置换算法f:将原矩阵的第6列放在第1列位置上,第3列放在第2列位置上,第1列放在第3列位置上,第5列放在第4列位置上,第4列放在第5列位置上,第2列放在第6列位置上。得出新矩阵,如下所示:
再按先行后列展开得:
X6 X3 X1 X5 X4 X2 X12 X9 X7 X11 X10 X8 X18 X15 X13 X17 X16X14
再将X19置于首位得到打乱后的数码:
X19 X6 X3 X1 X5 X4 X2 X12 X9 X7 X11 X10 X8 X18 X15 X13 X17X16 X14
根据上述原理经过乱序后的结果是(9 4 7 9 5 6 8 2 1 3 1 0 2 8 5 3 7 6 4)。
步骤S42、由校验码的后两位数字20确定一种对19位数码的对称加密算法S0,其算法原理如下所述:
设X1…X19为乱序后的数码,将此数码乘以一个19阶可逆矩阵,得到19位数码Y1…Y19。
对Y1…Y19,将其按3,3,3,3,3,3,1分成七组,对前六组给定K11所示,进行hill加密,对最后一位给定K12进行仿射变换,其中:
K12=(3 7),其运算过程为:
……
注:
(Yi Yi+1 Yi+2)×K11=(Yi×6+Yi+1×5+Yi+2×4 Yi×5+Yi+1×4+Yi+2×3 Yi×9+Yi+1×7+Yi+2×6)
将一次加密所得数码倒序得:
再将其按3,3,3,3,3,3,1分成七组,对前六组给定P0和K21,用分组链接模式进行vigenere加密,对最后一位给定K22进行仿射变换,其中:
P0=(7,3,2),K21=(6,3,7),K22=(7,3)
其运算过程为:
……
二次加密后得密码:
P11 P12 P13 P21 P22 P23 P31 P32 P33 P41 P42 P43 P51 P52 P53 P61 P62 P63 Z19
为进一步改进加密效果,记上述结果为:T1 T2…T19,还可以由T1的取值决定一个18阶可逆矩阵A,将后18位数码乘以这个18阶矩阵,当T1的值为0,1,2,3,4,5,6,7,8,9时,对应着取18阶矩阵为A1,A2,A3,A4,A5,A6,A7,A8,A9,A10。乘完得19位数码U1 U2…U19(U1=T1),再由U19的取值决定一个18阶可逆阵C,将前18位数码乘以这个18阶矩阵,当U19的值为0,1,2,3,4,5,6,7,8,9时,对应着取18阶矩阵为C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,乘得结果为V1 V2…V19(V19=U19)。
根据上述原理,对上述乱序后的19位数码进行对称加密,得到密文为(8 9 7 7 6 3 7 8 3 7 9 3 1 4 6 0 6 0 3)。
上述原理中选取的密钥可以根据不同情况任意设置。
步骤S43、由以上密文之和mod10得到的结果7确定一种三位校验码对称加密算法C7,其算法原理为:
设原码为a1 a2 a3,给定密钥K1、K2和K3对其进行仿射加密,其中:K1=(3 2)K2=(7 8)K3=(3 4),其运算过程为:
c1c2c3为密码。
根据上述原理,对校验码做对称加密,加密后校验码密文为(5 2 4)。
上述过程中的K1、K2和K3的值可以任意选取,可逆矩阵A和C为满足相乘条件的任意矩阵。
步骤S44、将上述加密后的19位数码与加密后的校验码合并在一起形成一个22位的数码(8 9 7 7 6 3 7 3 8 3 7 9 3 1 4 6 0 6 0 5 2 4),由此22位数码的第一位作为选择码,确定21阶可逆矩阵M如图5所示。
步骤S45、由除去选择码后的21位数码(9 7 7 6 3 7 3 8 3 7 9 3 1 4 6 0 6 05 2 4)乘以M得到21位密文(7 1 3 9 8 5 7 5 6 5 6 6 2 8 9 9 3 4 5 5 8)。
步骤S46、根据密文在后,所述选择码在前组成22位密文(8 7 1 3 9 8 5 75 6 5 6 6 2 8 9 9 3 4 5 5 8)。
本发明实施例公开的加密方法,在选用的加密算法后增加了模10的步骤,使得密文转换为10进制数,这种方式还可以应用到对进制有其他要求的加密算法中,只要将选用的加密算法后采用模K,K为2-16中的任意数,就可将加密结果转换为任意进制,使得加密算法适用于任意进制的要求。本实施例中的矩阵也并不限定其具体值,只要其阶数与过程中需要的矩阵阶数相同皆可。
在步骤S42中,本发明并不限定对称加密算法的组合中为乱序算法、hill加密、vigenere加密和仿射变换。可以用其他对称加密算法替换hill加密,只是经过验证,hill加密加密效果更好一些。
本发明还公开了一种解密算法,对应于上述加密方法,使得整个加解密过程更加安全。其具体流程如图6所示,包括:
步骤S61、获得N+C位密码,所述N+C位密码中包括与原码对应的N位密码和与校验码对应的C位密码;
步骤S62、根据所述N+C位数码中与原码对应的N位密码,选择预设的解密算法,对N+C位数码中与校验码对应的C位数码进行解密,得到校验码;
步骤S63、根据所述校验码的数值从预先建立的解密算法组中选择对应的解密算法,对所述N+C位数码中与原码对应的N位数码进行解密。
当需要对其他进制的数码进行解密时,所述方法中还包括:将解密算法组中的解密算法进行模K处理;也就是将每个算法的结果模K,使得其解密结果转换为对应的K进制数。K为2-16中的任意值。解密时K的取值与加密时的K相同。所述的解密算法组中的解密算法与加密算法组中的算法一一对应。
该方法与加密方法相对应,从而实现将加密后的密文解密出最初的原文。
实施例四
本实施例公开的解密方法的流程如图7所示,包括:
步骤S71、获得N+C位密码后,从N+C位密码中任意选择一位作为选择码,根据选择码从预先建立的可逆矩阵组中选择其对应的N+C-1阶可逆矩阵;
步骤S72、将上述步骤中剩余的N+C-1位密码与所述选择的N+C-1阶可逆矩阵相乘;
步骤S73、将所述选择码插入到所述相乘得到的N+C-1位结果中其对应的位置,组成N+C位密码;
步骤S74、根据所述N+C位数码中与原码对应的N位密码,选择预设的解密算法,对N+C位数码中与校验码对应的C位数码进行解密,得到校验码;
步骤S75、根据所述校验码的数值从预先建立的解密算法组中选择对应的解密算法,对所述N+C位数码中与原码对应的N位数码进行解密。
本实施例公开的解密流程与实施例一中的加密流程相对应,其选择的解密算法也与加密过程中的加密算法相对应。
实施例五
本实施例公开的解密算法与实施例二相对应,其流程如图8所示,包括:
步骤S81、将N位密码和C位密码按照N位在前,C位在后的顺序组成N+C位密码;
步骤S82、选择所述N+C位密码的第一位作为选择码,根据其数值选择预先建立的可逆矩阵组中对应的N+C-1阶矩阵。
在此处,针对于上述加密方法中N+C位原码的排列顺序,此处的密码也采用N位在前C位在后的顺序,而且同样选择数码的第一位作为选择码,从而根据其数值,选择与加密过程中对应的可逆矩阵的逆矩阵。
步骤S83、将前N位数码相加,得到N位数码之和;
步骤S84、将得到的N位数码之和与所述的校验码解密算法组中的种类数D进行模运算;
步骤S83、根据模运算结果选择对应的校验码解密算法对所述N+C位数码中与校验码对应的C位数码进行解密;
也可以对其进行归序解密或仿射解密,其具体的解密算法与加密过程中此步骤中的算法相对应即可。对N位数码之和与D进行模运算的目的同样是,将数码之和转换为0-D中的数,从而可以找到对应的解密算法。同样并不限定这种根据N位数码之和进行模运算的方法,也可以是其他的形式,例如选取N位数码中的任意一位与D模,根据结果选择对应的解密算法,只要其形式与加密过程中此步骤的算法相同,保证其能找到与其对应的解密算法皆可。
步骤S84、根据校验码的后b位数数值从预先建立的对称解密算法组中选择对应的对称解密算法,对所述N+C位数码中与原码对应的N位数码进行对称解密;
步骤S85、根据校验码的前a位数数值从预先建立的归序算法组中选择对应的归序算法,并对解密后的N位数码进行归序。
在此处,根据加密过程,利用校验码的数值,对N位密码进行了两次解密,而且对应于加密算法选取了不同的解密方法,从而可以根据实际情况选择任意多种针对加密过程的解密算法。同样利用校验码的数值选择解密算法的过程也可以有其他的形式,例如将检验码奇数位上的数选择归序算法,偶数位上的数选择对称结密算法,都是可行的,只要保证与加密过程中对应的步骤选择的算法相对应即可。
本方法,针对加密方法过程,采用与其相反的过程对密码进行解密,保证能够安全准确的还原原码,与加密算法配合使用,解决了现有的加解密算法算法单一,安全性低的问题。
实施例六
针对实施例三中加密的过程,其具体的解密方式如下所述:
本实施例公开的解密方法中,预先建立语加密算法组中加密算法一一对应的解密算法组,其中包含:10套校验码解密算法、10套对称解密算法和10套归序算法,预先设定0-9的数值分别对应10套归序算法L0'到L9',20到29分别对应10套对称解密算法S0'到S9',0到9分别对应10套校验码解密算法C0'到C9'。
本实施例中的算法同样都经过了模10处理,即将其算法后增加模10的步骤,将其解密后的密文转换为十进制数。经过验证,每一套对称解密算法同样主要是一种归序算法和三种对称解密算法的复合,本实施例中这三种加密方法是hill加密、vigenere加密和仿射变换。
对加密过程得到的22位密文(8 7 1 3 9 8 5 7 5 6 5 6 6 2 8 9 9 3 4 5 5 8)进行对应的解密,其解密过程如图9所示,包括:
步骤S91、选择根据19位原码加密后密码在前,C位校验码加密后密码在后的原则组成的22位密文中的第一位数字来选择一个对应的21阶可逆矩阵M的逆矩阵M',如图10所示;
步骤S92、将除去选择码后的21位密码(7 1 3 9 8 5 7 5 6 5 6 6 2 8 9 9 3 45 5 8)乘以M'得到(9 7 7 6 3 7 3 8 3 7 9 3 1 4 6 0 6 0 5 2 4),
步骤S93、将选择码插入到相乘得到的结果中,则得到密码为(8 9 7 7 6 37 3 8 3 7 9 3 1 4 6 0 6 0 5 2 4);
步骤S94、根据22位密文的排列顺序可得,后3位(5 2 4)为加密后的校验码,将上述步骤中的前19位数相加之和模10,得到7,根据此数字选择对应的校验码解密算法C7',其原理如下所述:
设密码为c1 c2 c3,求出密钥的逆 再用其对c1 c2 c3进行解密,其过程为:
根据上述原理对(524)进行解密得到校验码(120)。
步骤S95、由校验码的后两位数字20确定一种对19位数码的对称解密算法S0',其算法原理如下所述:
在下述解密过程之前,先要做一下18阶矩阵的解密工作。取出V19即U19对应的加密算法中的18阶可逆阵的逆矩阵,将V1 V2…V19的前18位数码乘以此逆矩阵,得U1 U2…U19,再取出U1即T1所对应的加密算法中18阶可逆阵的逆矩阵,将U1 U2…U19的后18位乘以此逆矩阵,得T1T2…T19。
记上述解密后的数码为:
P11 P12 P13 P21 P22 P23 P31 P32 P33 P41 P42 P43 P51 P52 P53 P61 P62 P63 Z19
将其按3,3,3,3,3,3,1分成七组,对前六组给定P0的逆和K21的逆,对最后一位给定K22,其中:
K21 -1=(6,3,7)-1=(4,7,3)
其计算过程为:
…
将一次解密后所得数码倒序后得:
将其按3,3,3,3,3,3,1分成七组,对前六组给定K11的逆进行hill加密,对最后一组给定K12的逆,进行仿射加密,其中:
计算过程为:
……
解密的数码为:
Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16 Y17 Y18 Y19
将上述数码乘以加密过程中的19阶矩阵R1的逆矩阵,得到乱序后的数码S1…S19。
步骤S96、由校验码的第一位数字1确定一种对19位数码的归序算法L1',其原理如下所述:
设Y1…Y19为乱序后的数码,取出第一位,对后十八位十进制数作归序计算。
将Y2…Y19按如下方式排列成3×6矩阵:
给定密钥K1=(6,3,1,5,4,2)定义置换算法f:将原矩阵的第1列放在第6列位置上,第2列放在第3列位置上,第3列放在第1列位置上,第4列放在第5列位置上,第5列放在第4列位置上,第6列放在第2列位置上。得出新矩阵:
再按先行后列展开得:
Y4 Y7 Y3 Y6 Y5 Y2 Y10 Y13 Y9 Y12 Y11 Y8 Y16 Y19Y15 Y18 Y17 Y14
再将Y1置于末位得到归序后的数码:
Y4 Y7 Y3 Y6 Y5 Y2 Y10 Y13 Y9 Y12 Y11 Y8 Y16 Y19Y15 Y18 Y17 Y14 Y1
即得到原码:(9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9)。
本发明还公开了一种加密装置,其结构如图11所示,包括:校验码设定单元111、原码加密单元112和校验码加密单元113,其中所述校验码设定单元111用于,为获取的N位原码设定C位校验码;所述原码加密单元112用于,根据所述校验码设定单元111设定的校验码数值从预先建立的加密算法组中选择对应的加密算法对所述原码进行加密;所述校验码加密单元113用于,根据所述原码加密单元112加密后的N位数码选择预设的加密算法对C位校验码进行加密。
该装置还包括:第一数码组合单元114、第一矩阵选择单元115、第一相乘单元116和第二数码组合单元117,其中:所述第一数码组合单元114用于,将加密后的N位数码和C位校验码组成N+C位数码;所述第一矩阵选择单元115用于,从所述第一数码组合单元114组合的N+C位数码中任意选择一位作为选择码,根据选择码从预先建立的可逆矩阵组中选择其对应的N+C-1阶可逆矩阵;所述第一相乘单元116用于,将上述步骤中剩余的N+C-1位数码与所述第一矩阵选择单元115选择的N+C-1阶可逆矩阵相乘;所述第二数码组合单元117用于,将所述选择码插入到所述第一相乘单元116相乘得到的N+C-1位结果中其对应的位置,组成N+C位密码。
该装置进一步包括:模K单元118,所述模K单元118用于,对加密算法组中的算法进行模K处理。
本发明还公开了一种对应于上述加密装置的解密装置,其结构如图12所示,包括:密码获取单元121、校验码解密单元122和原码解密单元123;其中,所述密码获取单元121用于,获得N+C位密码,所述N+C位密码中包括与原码对应的N位密码和与校验码对应的C位密码;述校验码解密单元122用于,根据所述N+C位密码中与原码对应的N位数码,选择预设的解密算法,对N+C位数码中与校验码对应的C位数码进行解密,得到校验码;所述原码解密单元123用于,根据所述校验码解密单元122得到的校验码数值从预先建立的解密算法组中选择对应的解密算法,对所述N+C位数码中与原码对应的N位数码进行解密。
该装置还包括:第二矩阵选择单元124、第二相乘单元125和第三数码组合单元126,其中:所述第二矩阵选择单元124用于,从N+C位密码中任意选择一位作为选择码,根据选择码从预先建立的可逆矩阵组中选择其对应的N+C-1阶可逆矩阵;所述第二相乘单元125用于,将上述步骤中剩余的N+C-1位密码与所述第二矩阵选择单元124选择的N+C-1阶可逆矩阵相乘;所述第三数码组合单元126用于,将所述选择码插入到所述第二相乘单元125相乘得到的N+C-1位结果中其对应的位置,组成N+C位数码。
该装置进一步包括:模K单元127,所述模K单元127用于,对解密算法组中的算法进行模K处理。
本发明还进一步公开了一种加解密系统,其结构如图13所示,包括:加密装置131和解密装置132。所述加密装置131和解密装置132的结构分别与图11和图12所示的加解密装置结构类似,在此不再赘述。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。