[发明专利]一种面向字节的密钥流生成方法及加密方法有效
申请号: | 201010177963.0 | 申请日: | 2010-05-14 |
公开(公告)号: | CN101826959A | 公开(公告)日: | 2010-09-08 |
发明(设计)人: | 冯登国;冯秀涛;张文涛;范修斌;武传坤 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余长江 |
地址: | 100190*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 字节 密钥 生成 方法 加密 | ||
技术领域
本发明主要应用于信息安全传输领域,具体涉及一种用于产生加密用密钥流序列的密钥流生成方法及加密方法。
背景技术
密码技术历史悠久,最初用于保护军事和外交通信安全。但是,随着通信网络和计算机网络的普及,现代密码学的应用不再局限于政治、军事和外交,其商业价值和社会价值得到了广泛的认同。保密是密码学的核心,而加密是获得信息保密的实用工具。现代加密技术就是一些数学变换(算法),在加密者拥有的秘密信息(加密密钥)控制下,将要加密的信息(明文)变换成难于理解和与随机信息难于区分的信息(密文),通过不安全的信道传送给接收者。而解密操作,就是在接收者拥有的秘密信息(解密密钥)的控制下,将密文恢复成明文。根据加、解密者拥有的密钥是否相同,可以把加密算法分为公钥密码算法和私钥密码算法。公钥密码算法的加、解密密钥不同,加密密钥一般是公开的,解密密钥为消息接收者私有。私钥密码算法的加、解密密钥一般是相同的,均是保密的。而且加、解密的变换一般也是相同或相似的。
私钥密码算法又分为分组密码算法和流密码算法。分组密码算法一般对消息进行分块加密,算法运行一次加密一个较大的消息块。流密码算法一般用一个短的密钥,用特定的密钥流生成算法,生成与要加密的消息长度相当的密钥流序列,将密钥流序列与明文按位异或达到加密的目的。而解密方生成同样的密钥流序列,与密文异或,即可得到明文。所以,流密码算法的关键是设计安全快速的密钥流生成算法。
流密码一直是各国争相研究的热门课题。因为它具有实现简单,加密速度快(比分组密码快5到10倍)、无或只有有限的错误传播等特点。随着通信网络和计算机网络的高速发展,传统的运行一次生成一个比特的密钥流生成方法已经不能满足实现速度上的需要,尤其是软件实现方面,一些面向字的密钥流生成方法逐渐被设计出来,即运行一次生成若干比特的密钥字,由密钥字组成密钥流序列。例如SNOW 3G算法、Rabbit算法。
在此背景下,需要一种面向字,尤其是面向字节的密钥流生成方法及加密的方法,适合软硬件实现并且安全性高。
本发明的目的在于提供一种面向单字节(8比特)的密钥流生成方法,以初始密钥和初始向量作为输入,产生一定长度的密钥流序列。本方法能够在软、硬件上快速实现,生成的密钥流序列有良好的随机性和非线性性。本发明的另一目的在于提供一种加密方法,利用本发明提供的密钥流生成方法产生的密钥流序列对消息进行加密。
为了达到上述发明目的,本发明的技术方案概述如下:
一种面向字节的密钥流生成方法,包括以下步骤,
1)生成步骤,利用线性反馈移位寄存器生成一个源序列;
2)混淆步骤,采用非线性函数F和BOMM函数两部分顺序构成,所述非线性函数F将源序列中的若干字节进行非线性压缩变换,产生一个字节的输出,所述BOMM函数接收非线性函数F的输出作为输入;
3)输出步骤,BOMM的输出和源序列的一个字节按位异或得到密钥流。
所述非线性函数F部分,输入为源序列的4个字节,输出为一个字节,包含一个32比特的记忆单元,具体步骤为:
A、计算F函数输出:取32比特记忆单元的8位作为F函数的输出;
B、更新记忆单元:将源序列的4个字节并置成一个32比特的字,与记忆单元的值异或,异或后的32比特输入4个并列的8进8出的S盒,4个S盒的输出进入一个线性变换,线性变换的输出更新寄存器的值;
BOMM函数部分,输入、输出均为一个8比特字节。此处将F函数的输出作为BOMM的输入。BOMM函数结构包含16个记忆单元,每个记忆单元存放一个字节,还包含2个8进8出的S盒,具体步骤为:
A、计算BOMM输出:取输入字节的高4比特的值作为h,用第h个(从零开始计数)记忆单元的内容与输入字节异或后作为BOMM的输出;
B、更新记忆单元:取输入字节的低4比特值作为1,将输入字节经过S盒运算后的结果与第1个记忆单元的值异或,用于更新第1个记忆单元的值;
将已更新过的第1个记忆单元的值经过S盒的变换后与第h个记忆单元的值异或,用于更新第h个记忆单元的值;
所述生成步骤采用有限域上的本原多项式作为线性反馈移位寄存器的反馈多项式。
为了达到上述另一发明目的,本发明的技术方案概述如下:
一种加密方法,其步骤包括:
1)将加密密钥和初始向量利用密钥扩展算法装入线性反馈移位寄存器,并进行初始化操作;
2)生成一个字节的密钥流,方法如下:
2-1)运行非线性函数F,具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010177963.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种物理网络感知的覆盖网构建方法
- 下一篇:QC-LDPC码构建方法