一种用于高速加密的新型对称型密钥算法的制作方法

文档序号:11147363阅读:来源:国知局

技术特征:

1.一种用于高速加密的新型对称密钥算法,其特征在于,所述对称密钥算法包括加密算法和解密算法,所述的加密算法的步骤包括:

S11:对明文M进行分组,得到Mi,Mi∈{M0,M1,···,Mn-1};

S12:利用随机数生成器生成n位基础密钥R1和R2

S13:统计明文长度L,并对Mn-1进行明文填充,在明文后首先填充二进制密钥生成器识别码,计算剩余位数,并用随机二进制码填充;

S14:获得密钥偏移生成器G;

S15:对Mn-1明文组进行加密;

S16:获得加密密钥Keyi

S17:对所有明文组进行加密;

S18:对基础密钥R1和R2进行加密,得到密文密钥CR

S19:完成加密,并将密文密钥CR与密文进行传输;

所述的解密算法的步骤包括:

S21:对密文密钥CR进行解密,得到基础密钥R1和R2

S22:解密得到Mn-1

S23:得到密钥偏移生成器G;

S24:对所有密文进行解密,得到明文M。

2.根据权利要求1所述的对称密钥算法,其特征在于,所述的加密算法的S12步骤中,R1和R2为1024位的二进制序列随机数,R1∈{0,1}1024,R2∈{0,1}1024

3.根据权利要求1所述的对称密钥算法,其特征在于,所述的加密算法的S13步骤中,如果Mn-1∈(0,1000)时,在明文后首先填充二进制密钥生成器识别码,剩余的位数使用随机二进制码填充,使得Mn-1最终满足1024位;如果Mn-1∈[1000,1024]之间,那么填充需要扩展,即在Mn-1之后首先进行密钥生成器识别码的填充,并在之后的位数填充二进制序列随机数,这样便组成了两段1024位的明文组Mn-1和Mn;所述的二进制密钥生成器识别码位数为24位,该识别码为(0000-1111-1111-1111-1111-0000)。

4.根据权利要求1所述的对称密钥算法,其特征在于,所述的加密算法的S14步骤中,当Mn-1∈(0,1000)时,模运算的计算公式为G=1024-Lmod1024,当Mn-1∈[1000,1024]时,模运算的计算公式为G=2048-Lmod1024,所述的密钥偏移生成器G的取值范围为[25,1048]。

5.根据权利要求1所述的对称密钥算法,其特征在于,所述的加密算法的S15步骤中,对Mn-1明文组进行加密时,将基础密钥R1和R2分别根据n的值进行左偏移和右偏移,异或加密得到密文;当Mn-1∈(0,1000)时,计算公式为当Mn-1∈[1000,1024]时,计算公式为

6.根据权利要求1所述的对称密钥算法,其特征在于,所述的加密算法的S16步骤中,将子明文组i代入密钥偏移生成器G中,计算出偏转量Xj,计算公式为Xj=(Gmod512×(i+G)+19)mod512,并将偏移量代入基础密钥R2中进行左循环或右循环产生偏移密钥R2(j),计算公式为R2(j)=R2<<Xj Xjmod2=0或R2(j)=R2>>Xj Xj mod2≠0;基础密钥R1则每次右偏移i位得到R1(i),计算公式为R1(i)=R1>>(imod1024);将R1(i)和R2(j)进行异或运算得到加密密钥Keyi,计算公式为

7.根据权利要求1所述的对称密钥算法,其特征在于,所述的加密算法的S17步骤中,从M0开始到Mn-2,将加密密钥Keyi与相对应明文进行异或加密,得到密文Ci,计算公式为

8.根据权利要求1所述的对称密钥算法,其特征在于,所述的加密算法的S18步骤中,对基础密钥R1和R2进行RSA加密,采用最有非对称加密(RSA-OAEP)方案得到密文密钥CR

9.根据权利要求1所述的对称密钥算法,其特征在于,所述的对称密钥算法每加密n个明文组时需要更换基础密钥,其步骤如下:

S31:一组基础密钥R1和R2,其加密的明文空间为n×n位,这个加密后的等量空间为密文块(C-block);

S32:当需要对基础密钥进行重新构造时,新的基础密钥从前一个密文块中选择;

S33:新的基础密钥为R1’和R2’;

在S33步骤中,基础密钥R1’的计算公式为基础密钥R2’的计算公式为其中,Cx和Cy中的x和y,分别代表加密后从C0开始的密文段数(与明文代表的段数相同),其计算公式分别为x=(17×i+G)mod512和y=(13×(i+G)+i)mod512+512,R1’中的R1>>x与Cx中的R1(i)完全相同,R2’中的Xj(y)就是明文段数为y的情况下的R2偏移量,偏移后与R2(j)完全相同;将R1’和R2’进行异或运算得到加密密钥Key,计算公式为

10.根据权利要求1所述的对称密钥算法,其特征在于,所述的对称密钥算法还包括摘要算法,其步骤如下:

S41:加密前,首先使用摘要算法对明文进行摘要得到哈希值,即Hash(Mess);

S42:将哈希值存储在密文的末尾,并一同进行传输保存;

S43:解密前,将哈希值单独取出;

S44:使用摘要算法对解密后的明文进行摘要得到新的哈希值,即Hash(Mess’);

S45:将Hash(Mess)与Hash(Mess’)进行对比,若Hash(Mess)=Hash(Mess’),则密文未被篡改,证明信息完整性或通信线路安全性与可靠性;;若Hash(Mess)≠Hash(Mess’),则密文篡改,存储环境或通信线路存在隐患,需要及时保护。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1