一种可变密钥多重加密方法与流程

文档序号:13763130阅读:8561来源:国知局
一种可变密钥多重加密方法与流程

本发明涉及一种可变密钥多重加密方法。



背景技术:

目前大多数加密算法的运算过程较为复杂,对于处理速度有限的嵌入式应用来说,往往需要复杂的硬件逻辑进行运算加速,从而导致了成本和功耗上的增加。因此传统的加密算法很难在低软硬件开销和高安全性上同时兼顾。



技术实现要素:

有鉴于此,本发明的目的在于提供一种可变密钥多重加密方法,解决当前多数加密算法在成本和安全性上难以同时兼顾的问题。

为实现上述目的,本发明采用如下技术方案:一种可变密钥多重加密方法,其特征在于:包括密钥生成,明文数据加密和密文数据解密;所述密钥生成通过7比特种子生成128比特伪随机序列作为密钥1,将所述128比特伪随机序列逆序输出,得到密钥2;所述明文数据加密使用密钥1、密钥2对64比特明文进行三重TEA加密算法处理求得64比特密文;所述密文数据解密使用密钥1、密钥2对64比特密文进行三重TEA解密算法处理求得64比特明文。

进一步的,所述密钥1和密钥2由7比特种子通过7阶m序列生成算法生成,具体步骤如下:

步骤S11:输入一个7比特种子,将其作为初始值加载到7阶线性反馈移位寄存器电路中,所述7阶线性反馈移位寄存器电路由7个寄存器串接而成,按移位方向顺序定义为1至7阶寄存器,每输入一个时钟周期作一次移位操作;

步骤S12:生成一个周期的时钟信号提供给所述7阶线性反馈移位寄存器电路;

步骤S13:将寄存器的值往高阶方向移位,将第3阶寄存器与第7阶寄存器的输出值进行异或运算所得的值移入第1阶寄存器,将第7阶寄存器即最后一级寄存器的输出值作为电路输出的比特值;

步骤S14:判断累计生成的时钟周期数,如果小于128,则返回步骤S12,如果等于128则执行步骤S15;

步骤S15:将输出的比特值按顺序排列而成的128比特序列记为密钥1;将密钥1的比特序列逆序输出,得到另一个128比特序列,记为密钥2。

进一步的,所述三重TEA加密算法包括以下三个步骤:

步骤S21:以密钥1对64比特明文做TEA加密处理,结果记为C1;

步骤S22:以密钥2对C1做TEA解密处理,结果记为C2;

步骤S23:以密钥1对C2做TEA加密处理,结果即为所求64比特密文。

进一步的,所述三重TEA解密算法包括以下三个步骤:

步骤S31:以密钥1对64比特密文做TEA解密处理,结果记为P1;

步骤S32:以密钥2对P1做TEA加密处理,结果记为P2;

步骤S33:以密钥1对P2做TEA解密处理,结果即为所求64比特明文。

进一步的,所述TEA加密处理的具体步骤如下:

步骤S41:将待加密的数据分成v(0)和v(l)两部分,各32比特,并定义中间变量y=v(0),z=v(l);将密钥1或密钥2分成k(0),k(1),k(2)和k(3)四部分,各32比特,并定义中间变量a=k(0),b=k(1),c=k(2),d=k(3);定义中间变量并赋初值:Sum=0,Delta=0X9E3779B9,n=16;

步骤S42:判断n的值,若n>0则执行步骤S43,否则执行步骤S44;

步骤S43:顺序执行下列运算并赋值:

Sum=Sum+Delta,

y=y+(((z<<4)+a)∧(z+Sum)∧((z>>5)+b)),

z=z+(((y<<4)+c)∧(y+Sum)∧((y>>5)+d)),

n=n-1,

完成后转跳转至步骤S42;

步骤S44:将计算结果进行保存:v(0)=y,v(1)=z,此时密文在v(0)和v(1)中共64位,TEA加密处理结束。

进一步的,所述TEA解密处理的具体步骤如下:

步骤S51:将待解密的数据分成v(0)和v(l)两部分,各32比特,并定义中间变量y=v(0),z=v(l);将密钥1或密钥2分成k(0),k(1),k(2)和k(3)四部分,各32比特,并定义中间变量a=k(0),b=k(1),c=k(2),d=k(3);定义中间变量并赋初值:Sum=0XC6EF3720,Delta=0X9E3779B9,n=16;

步骤S52:判断n的值,若n>0则执行步骤S53,否则执行步骤S54;

步骤S53:顺序执行下列运算并赋值:

z=z-(((y<<4)+c)∧(y+Sum)∧((y>>5)+d)),

y=y-(((z<<4)+a)∧(z+Sum)∧((z>>5)+b)),

Sum=Sum-Delta,

n=n-1,

完成后转跳转至步骤S52;

步骤S54:将计算结果进行保存:v(0)=y,v(1)=z,此时明文在v(0)和v(1)中共64位,TEA解密处理结束。

进一步的,所述密钥1和密钥2的传递通过所述7比特种子的传递实现。

本发明与现有技术相比具有以下有益效果:本发明的密钥通过数据量很小的种子生成,方便密钥的传递与保管,同时密钥带有伪随机特性,增加了破解难度;加解密过程使用了多重TEA运算,大大提升了加密安全性能;算法精简高速,十分适合低功耗与低成本的应用需求。

附图说明

图1是本发明的密钥生成算法流程图。

图2是本发明的三重TEA加密算法流程图。

图3是本发明的三重TEA解密算法流程图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

本发明提供一种可变密钥多重加密方法,包括密钥生成,明文数据加密和密文数据解密;所述密钥生成由7比特种子通过7阶m序列生成算法生成128比特伪随机序列作为密钥1,将所述128比特伪随机序列逆序输出,得到密钥2;请参照图1,具体步骤如下:

步骤S11:输入一个7比特种子,将其作为初始值加载到7阶线性反馈移位寄存器电路中,所述7阶线性反馈移位寄存器电路由7个寄存器串接而成,按移位方向顺序定义为1至7阶寄存器,每输入一个时钟周期作一次移位操作;

步骤S12:生成一个周期的时钟信号提供给所述7阶线性反馈移位寄存器电路;

步骤S13:将寄存器的值往高阶方向移位,将第3阶寄存器与第7阶寄存器的输出值进行异或运算所得的值移入第1阶寄存器,将第7阶寄存器即最后一级寄存器的输出值输出作为电路输出的比特值;

步骤S14:判断累计生成的时钟周期数,如果小于128,则返回步骤S12,如果等于128则执行步骤S15;

步骤S15:将输出的比特值按顺序排列而成的128比特序列记为密钥1;将密钥1的比特序列逆序输出,得到另一个128比特序列,记为密钥2。

所述明文数据加密使用密钥1、密钥2对64比特明文进行三重TEA加密算法处理求得64比特密文;请参照图2,具体包括以下三个步骤:

步骤S21:以密钥1对64比特明文做TEA加密处理,结果记为C1;

步骤S22:以密钥2对C1做TEA解密处理,结果记为C2;

步骤S23:以密钥1对C2做TEA加密处理,结果即为所求64比特密文。

所述密文数据解密使用密钥1、密钥2对64比特密文进行三重TEA解密算法处理求得64比特明文;请参照图3,具体包括以下三个步骤:

步骤S31:以密钥1对64比特密文做TEA解密处理,结果记为P1;

步骤S32:以密钥2对P1做TEA加密处理,结果记为P2;

步骤S33:以密钥1对P2做TEA解密处理,结果即为所求64比特明文。

进一步的,所述TEA加密处理的具体步骤如下:

步骤S41:将待加密的数据分成v(0)和v(l)两部分,各32比特,并定义中间变量y=v(0),z=v(l);将密钥1或密钥2分成k(0),k(1),k(2)和k(3)四部分,各32比特,并定义中间变量a=k(0),b=k(1),c=k(2),d=k(3);定义中间变量并赋初值:Sum=0,Delta=0X9E3779B9,n=16;

步骤S42:判断n的值,若n>0则执行步骤S43,否则执行步骤S44;

步骤S43:顺序执行下列运算并赋值:

Sum=Sum+Delta,

y=y+(((z<<4)+a)∧(z+Sum)∧((z>>5)+b)),

z=z+(((y<<4)+c)∧(y+Sum)∧((y>>5)+d)),

n=n-1,

完成后转跳转至步骤S42;

步骤S44:将计算结果进行保存:v(0)=y,v(1)=z,此时密文在v(0)和v(1)中共64位,TEA加密处理结束。

进一步的,所述TEA解密处理的具体步骤如下:

步骤S51:将待解密的数据分成v(0)和v(l)两部分,各32比特,并定义中间变量y=v(0),z=v(l);将密钥1或密钥2分成k(0),k(1),k(2)和k(3)四部分,各32比特,并定义中间变量a=k(0),b=k(1),c=k(2),d=k(3);定义中间变量并赋初值:Sum=0XC6EF3720,Delta=0X9E3779B9,n=16;

步骤S52:判断n的值,若n>0则执行步骤S53,否则执行步骤S54;

步骤S53:顺序执行下列运算并赋值:

z=z-(((y<<4)+c)∧(y+Sum)∧((y>>5)+d)),

y=y-(((z<<4)+a)∧(z+Sum)∧((z>>5)+b)),

Sum=Sum-Delta,

n=n-1,

完成后转跳转至步骤S52;

步骤S54:将计算结果进行保存:v(0)=y,v(1)=z,此时明文在v(0)和v(1)中共64位,TEA解密处理结束。

特别的,上述TEA加密及解密过程中的变量n代表运算执行的迭代次数,该迭代次数可根据安全性需要设置为8次、16次或32次。

进一步的,所述密钥1和密钥2的传递通过所述7比特种子的传递实现,方便密钥的传递与保管。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

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