发明名称 |
一种实现分组密码加密的密钥扩展方法 |
摘要 |
本发明提供了一种分组密码算法的密钥扩展方法,用于生成分组密码算法的各轮子密钥。本发明提供的方法主要是通过迭代函数计算生成子密钥,该迭代函数由非线性运算,常数运算和循环一位运算构成。通过本发明提供的方法,可以高效便利地生成子密钥,有效减少存储空间,具有较一般商用分组密码算法更高的实现速度,可以满足实时加密和解密的要求,同时,该算法具有比较高的安全性。 |
申请公布号 |
CN101938351A |
申请公布日期 |
2011.01.05 |
申请号 |
CN201010284552.1 |
申请日期 |
2010.09.16 |
申请人 |
北京航空航天大学 |
发明人 |
郑志明;张筱;高莹;王钊;邱望洁;王文华 |
分类号 |
H04L9/06(2006.01)I |
主分类号 |
H04L9/06(2006.01)I |
代理机构 |
北京万象新悦知识产权代理事务所(普通合伙) 11360 |
代理人 |
贾晓玲 |
主权项 |
一种应用于分组密码加密解密算法的密钥扩展方法,其特征在于,生成轮数为8的子密钥的步骤如下:A.初始化:定义长度为80的数组W,该数组的元素长度为32比特;将256比特的种子密钥依次写入数组W[0]~W[7]作为输入;W[8]~W[79]用来存储扩展生成的子密钥;B.计算生成子密钥,采用如下迭代函数:W[i]={FS(W[i‑8])+FS(W[i‑7])+FS(W[i‑3])+FS(W[i‑2]) +Fimod 4+t(i)}<<<(7i+3)mod32其中:‑i为数组下标,从8开始每次增加1进行迭代,i≤79;‑FS为非线性变换函数;‑Φ的取值为4个常数;‑t为一个函数,用来将其参数转化为二进制表示;‑“<<<”表示循环左移;C.输出子密钥:将数组W[i](i=8,9,…,79)中的元素顺序输出即为子密钥。 |
地址 |
100191 北京市海淀区学院路37号 |