一种费马数数论变换与SAFER密码算法相结合的分组加密方法技术

技术编号:13899566 阅读:115 留言:0更新日期:2016-10-25 12:49
一种费马数数论变换与SAFER密码算法相结合的分组加密方法,包括7轮加密,每一轮使用两组子密钥,子密钥的长度与分组密码的长度相等;15组子密钥由用户选择密钥扩展算法产生,分组加密的明文长度为16个字节即128位;在第7轮加密后产生的结果需要与第15组子密钥做“混合异或/模加”运算;每轮加密分为混淆层与扩散层,在混淆层首先经过“混合异或/模加”运算,接着进行非线性变换,最后再次经过“混合模加/异或”运算并输出结果到扩散层,扩散层采用长度为16的快速费马数变换。本发明专利技术提供一种在保证加密安全性和高效性前提下,进一步降低计算复杂度的费马数数论变换与SAFER密码算法相结合的分组加密方法。

【技术实现步骤摘要】

本专利技术涉及一种分组加密算法,能够简单、安全地实现数据或者图像的加密方法。
技术介绍
分组密码作为对称密码学的一个重要分支,在信息安全领域发挥十分重要的作用,对分组密码的设计与分析的研究共同推动分组密码理论的发展。它设计来源于香农1949年发表的经典论文Communication Theory of Secret System,现代分组密码的研究始于20世纪70年代中期,已有二十余年的历史。早期的研究基本围绕数据加密标准(DES)进行,推出了需对类似DES的密码,例如,LOKI、FEAL等。分组密码理论及应用的飞速发展得益于90年代末美国的AES计划与21世纪初欧洲的NESSIE计划。SAFER(Secure And Fast Encryption Routine)系列分组密码算法包括SAFER K-64,SAFER K-128,SAFER SK-64,SAFER SK-128,SAFERSK-40,SAFER+和SAFER++。SAFER系列密码有下面一些特色:(1)它们都是面向字节的算法,加、解密及密钥扩展算法中使用的都是字节到字节的运算,这使得它在Smart卡等方面的应用很有优势;(2)加密的轮函数采用“代换-线性变换”结构,在迭代的每一轮中,先对轮输入作用一个由轮子密钥控制的可逆函数S,然后被作用于一个可逆的线性变换LP;(3)在密钥扩展算法中,使用了“密钥偏差”,即给每一个子密钥加上一个常数,避免产生弱密钥。SAFER++在SAFER系列加密算法中是最先进的算法,具有以上所有的优点,以及SAFER系列加密算法中最优的扩散性和最低的复杂度,然而在现实情况下,会需要更加简单的加密算法进行加密应用。
技术实现思路
为了克服已有分组密码算法的无法兼顾加密安全性、高效性和计算复杂度的不足,本专利技术提供一种在保证加密安全性和高效性前提下,进一步降低计算复杂度的费马数数论变换与SAFER密码算法相结合的分组加密方法。本专利技术解决其技术问题所采用的技术方案是:一种费马数数论变换与SAFER密码算法相结合的分组加密方法,所述分组加密方法包括7轮加密,每一轮使用两组子密钥,子密钥的长度与分组密码的长度相等;15组子密钥由用户选择密钥扩展算法产生,分组加密的明文长度为16个字节即128位;在第7轮加密后产生的结果需要与第15组子密钥做“混合异或/模加”运算;每轮加密分为混淆层与扩散层,在混淆层首先经过“混合异或/模加”运算,接着进行非线性变换,最后再次经过“混合模加/异或”运算并输出结果到扩散层,扩散层采用长度为16的快速费马数变换。进一步,在第7轮加密后产生的结果需要与第15组子密钥相“加”,此时的“加”操作是指第1、4、5、8、9、12、13、16字节逐比特模2加,即字节间异或运算,第2、3、6、7、10、11、14、15字节模256加;由于变换长度是4的倍数,因此该变换的结构采用radix-4FFT的蝶形结构,经过费马数变换的输出便是一轮加密的输出结果。优选的,当输入数据的位数是8位时,所述快速费马数变换的核数为2,模数为257。再进一步,所述扩散层通过额外增加存储空间储存记录符号的方法来解决费马数变换溢出问题;当出现256这个值时,需要一个字节的位置记录符号,位置记录符号当中的3bits用于记录数值出现的加密轮数i,取值范围1~7,以二进制表示即为0012到1112;后4bits记录数值出现的字节位置j,取值范围0~15,以00012到11112表示第1~15字节,而以二进制00002表示第16字节;记录数值位置之后对256进行替换,替换的数值通过加密端预先设定,取值范围从0到255。更进一步,所述扩散层中,如果一次加密算法多次出现256数值,则需要多个连续的位置记录符号,此时以位置记录符号的最高位置1表示该记录符号是本次加密算法中最后一个记录符号,以其为间隔形成记录符号块。如果此次加密算法都没有出现256这个数值,则以零记录符号来表示;零记录符号共有16个bits构成,以前4个bits作为零记录符号的标志,标志值为10002,后面12bits表示连续没有出现256数值的加密次数,取值范围从1到4095;当256数值连续没有出现次数达到4096时,则需要另一个16bits的零记录符号来记录;快速费马数变换作为扩散层,需要位置记录符号与零记录符号的支持,传输密文时,需要把记录符号段接在密文末尾来,解码时则需根据记录符号段进行。所述分组密码的长度为128bits。本专利技术的技术构思为:每轮加密分为混淆层与扩散层,总共三个步骤组成一轮加密,用i表示要加密的轮数。首先每轮要输入的数据x和子密钥K2i-1做一次“混合异或/模加”运算。然后,所得到的结果经过一个非线性变换,第1、4、5、8、9、12、13、16字节数据采用公式(1),第2、3、6、7、10、11、14、15字节数据采用公式(2)。最后,将非线性变换的结果与子密钥K2i相“加”,这里的加是指第1、4、5、8、9、12、13、16字节模256相加,第2、3、6、7、10、11、14、15字节逐比特模2加,这种运算称为“混合模加/异或”运算,所得结果便是混淆层的输出。扩散层采取长度为16的费马数快速变换。输入数据的位数是8位,可以选择费马数变换模数M=257,核数a=2。由于变换长度是4的倍数,因此该变换的结构可以采用radix-4FFT的蝶形结构来加快计算速度。经过费马数变换的输出便是一轮加密的输出结果。由于费马数正变换得到的结果在0到256之间,而加密算法的位宽只有8bit。当正变换得到的数等于256时,会大于位宽而产生溢出。下面通过额外增加存储空间储存记录符号的方法来解决这个问题。当出现256这个值时,需要一个字节的位置记录符号。位置记录符号当中的3bits用于记录数值出现的加密轮数i,取值范围1~7,以二进制表示即为0012到1112。后4bits记录数值出现的字节位置j,取值范围0~15,我们以00012到11112表示第1~15字节,而以二进制00002表示第16字节。记录数值位置之后对256进行替换,替换的数值通过加密端预先设定,取值范围从0到255。如果一次加密算法多次出现256数值,则需要多个连续的位置记录符号,此时以位置记录符号的最高位置1表示该记录符号是本次加密算法中最后一个记录符号,以其为间隔形成记录符号块。如果此次加密算法都没有出现256这个数值,则以零记录符号来表示,如图4展示零记录符的结构。零记录符号共有16个bits构成,以前4个bits作为零记录符号的标志,标志值为10002,后面12bits表示连续没有出现256数值的加密次数,取值范围可以从1到4095。当256数值连续没有出现次数达到4096时,则需要另一个16bits的零记录符号来记录。由此,费马数变换作为扩散层,需要位置记录符号与零记录符号的支持。传输密文时,需要把记录符号段接在密文末尾来,解码时则需根据记录符号段进行。解密是加密的逆过程。解密的第一步如同加密的最后一步。区别在于其所进行的运算是“混合模加/异或”运算。然后进入七轮解密过程,每轮解密首先通过费马数变换的逆变换。本专利技术的有益效果主要表现在:在保证加密效果良好的前提下,提出了一种比SAF本文档来自技高网
...

【技术保护点】
一种费马数数论变换与SAFER密码算法相结合的分组加密方法,其特征在于:所述分组加密方法包括7轮加密,每一轮使用两组子密钥,子密钥的长度与分组密码的长度相等;15组子密钥由用户选择密钥扩展算法产生,分组加密的明文长度为16个字节即128位;在第7轮加密后产生的结果需要与第15组子密钥做“混合异或/模加”运算;每轮加密分为混淆层与扩散层,在混淆层首先经过“混合异或/模加”运算,接着进行非线性变换,最后再次经过“混合模加/异或”运算并输出结果到扩散层,扩散层采用长度为16的快速费马数变换。

【技术特征摘要】
1.一种费马数数论变换与SAFER密码算法相结合的分组加密方法,其特征在于:所述分组加密方法包括7轮加密,每一轮使用两组子密钥,子密钥的长度与分组密码的长度相等;15组子密钥由用户选择密钥扩展算法产生,分组加密的明文长度为16个字节即128位;在第7轮加密后产生的结果需要与第15组子密钥做“混合异或/模加”运算;每轮加密分为混淆层与扩散层,在混淆层首先经过“混合异或/模加”运算,接着进行非线性变换,最后再次经过“混合模加/异或”运算并输出结果到扩散层,扩散层采用长度为16的快速费马数变换。2.如权利要求1所述的费马数数论变换与SAFER密码算法相结合的分组加密方法,其特征在于:在第7轮加密后产生的结果需要与第15组子密钥相“加”,此时的“加”操作是指第1、4、5、8、9、12、13、16字节逐比特模2加,即字节间异或运算,第2、3、6、7、10、11、14、15字节模256加;由于变换长度是4的倍数,因此该变换的结构采用radix-4FFT的蝶形结构,经过费马数变换的输出便是一轮加密的输出结果。3.如权利要求2所述的费马数数论变换与SAFER密码算法相结合的分组加密方法,其特征在于:当输入数据的位数是8位时,所述快速费马数变换的核数为2,模数为257。4.如权利要求1~3之一所述的费马数数论变换与SAFER密码算法相结合的分组加密方法,其特征在于:所述扩散层通过额外增加存储空间储存记录符号的方法来解决费马数变换溢出问题;...

【专利技术属性】
技术研发人员:华惊宇林敏闻建刚徐志江卢为党
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1