预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局*CN102025484A*(12)发明专利申请(10)申请公布号CN102025484A(43)申请公布日2011.04.20(21)申请号201010593392.9(22)申请日2010.12.17(71)申请人北京航空航天大学地址100191北京市海淀区学院路37号(72)发明人郑志明李洪革丁锦鹏(74)专利代理机构北京万象新悦知识产权代理事务所(普通合伙)11360代理人贾晓玲(51)Int.Cl.H04L9/06(2006.01)权利要求书2页说明书8页附图6页(54)发明名称一种分组密码加解密方法(57)摘要本发明提供了一种分组密码加解密方法,属于数据加密解密领域。本发明算法设计了一种对称的加密结构,尤其是本发明的S盒设计能配置加密需要的S变换和解密需要的S逆变换而无需增加额外的电路资源,利于加解密一体的硬件电路实现,比AES加解密一体的电路需要更少的面积资源。本发明算法复杂的S盒构造可以抵抗现有已知的攻击方法。在较少轮数(3轮)加密情况下可以提供很高的加密速度,并且利用相同的加解密硬件可以用同样的速度进行解密。该算法特别适合专用ASIC实现,可以实现加解密专用算法的专用集成电路芯片。也可用于FPGA上的IP核设计。在FPGA上本发明资源消耗少于AES算法,且速度更快。CN102548ACCNN102025484102025498AA权利要求书1/2页1.一种分组密码加密方法,其特征在于,其加密过程如下:步骤1:将128比特的密钥按执行密钥扩展,产生608比特的扩展密钥,将密钥扩展中产生的最后96比特扩展密钥作为加密过程中用的4个S盒的密钥,配置S盒;步骤2:将128位的明文输入分成16组,记为[Z1||Z2||...||Z16],每组8比特;步骤3:将明文与扩展密钥进行异或运算;步骤4:将加密数据进行S变换:前64比特经过S1变换,后64比特经过S2变换;步骤5:将加密数据的后64位进行线性变换,乘以变换矩阵异或常数,再与前半部分做异或运算生成前64比特数据,后64比特不变;步骤6:进行行列变换,按照以下式子对16组数据进行重新排序;[Z1′||Z2′||...||Z16′]=Z15||Z16||Z13||Z14||Z11||Z12||Z9||Z10||Z6||Z5||Z8||Z7||Z2||Z1||Z4||Z3]步骤7:将加密数据与扩展密钥进行异或运算;步骤8:将加密数据进行S变换,前64比特经过S3变换,后64比特经过S4变换;[Z1′||Z2′||...||Z16′]=[S3Z1||S3Z2||...||S3Z8||S4Z9||S4Z10||...||S4Z16]步骤9:将加密数据与扩展密钥进行异或运算,扩展密钥为第N轮密钥,长为128比特;步骤10:重复步骤4至步骤9一共3轮,最终产生密文输出。2.如权利要求1所述的加密方法,其特征在于,所述步骤1中的密钥扩展方法如下:1)配置用于密钥扩展的随机S盒,将[K1||K2||...||K24]与[K25||K26||...||K48]进行异或,得到[KS1||KS2||...||KS24];2)将密钥分为16个分组,每个分组8比特;3)将每个分组进行S变换;4)将每个分组进行位移运算;5)将每个分组进行常数项异或运算,生成新的子密钥序列;6)将16个分组合为128比特,产生新一轮扩展密钥,进行下一轮密钥扩展;7)重复步骤2)至步骤6)一共五轮,第1至4轮在加密中的密钥异或运算中使用;第五轮取前96比特,作为加密过程四个可重构S盒的配置使用。3.如权利要求2所述的加密方法,其特征在于,所述S盒为根据密钥即时构造生成的,其构造步骤如下:1)取[KS1||KS2||KS3||KS4]4比特作为M表的输入;2)对[KS5||KS6||KS7||KS8]和[KS1||KS2||KS3||KS4]作比较,若不等则取[KS5||KS6||KS7||KS8]4比特作为第二个M表的输入;若相等,则取[KS5||KS6||KS7||KS8]与0111异或运算结果作为第二个M表的输入;3)M表输出线性移位寄存器的抽头系数,线性移位寄存器按照输出的系数进行配置;2CCNN102025484102025498AA权利要求书2/2页4)计数器工作,驱动2个LFSR完成255次移位;5)LFSR1输出的8比特数据与[KS9||KS10||...||KS16]进行异或运算生成8比特地址,LFSR2输出的8比特数据与[KS17||KS18||...||KS24]进行异或运算生成8比特数据;6)把8比特地址0x00对应的数据0x00预先写入S盒,设置标志位Flag缺省为0,如果Flag为0,在计数器驱动下把对应的255组地址的数据写入S盒,实现S变换功能;如