一种序列密码实现方法和装置制造方法及图纸

技术编号:3849914 阅读:174 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种序列密码实现方法和装置,包括:将预先设定的128比特的初始密钥和128比特的初始向量进行密钥扩展运算,得到16个31比特的状态变量;利用所述状态变量进行N轮运算,所述N为正整数;其中,每轮运算依次包括:比特重组、非线性状态过滤运算以及变量初始化模式运算;将N轮运算后的输出结果依次进行:比特重组、非线性状态过滤运算并丢弃输出结果,以及变量工作模式运算;在每个时钟节拍内,分别依次进行:比特重组、非线性状态过滤运算、异或运算以及变量工作模式运算,得到32比特的伪随机序列。应用本发明专利技术所述的方法和装置,能够简单方便地得到所需的伪随机序列,且具有较高的安全性。

【技术实现步骤摘要】

本专利技术涉及加密技术,特别涉及一种序列密码实现方法和装置
技术介绍
序列密码是军事和外交场合使用的主要密码技术之一,其主要原理是通过有限状 态机产生性能优良的伪随机序列,并使用该伪随机序列加密信息流(逐比特加密)以得到 密文序列。序列密码技术的安全强度完全决定于它所产生的伪随机序列的好坏。现有技术中产生伪随机序列的方式主要包括1、利用η阶非线性反馈函数产生大周期的非线性序列,将该非线性序列作为所需 的伪随机序列。这种方式具有较好的密码学性质,但选择合适的非线性反馈函数比较困难。2、利用线性移位寄存器序列加非线性前馈函数产生前馈序列,将该前馈序列作为 所需的伪随机序列,但如何控制序列相位以及如何选择合适的非线性前馈函数也比较困难。3、利用一个寄存器序列作为时钟,控制另一个寄存器序列(或自己控制自己)来 产生钟控序列,将该钟控序列作为所需的伪随机序列,但这种钟控序列具有很大的线性复 杂度。4、组合运用以上方法,但理论上比较难控制。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种序列密码实现方法,能够简单方便地 得到所需的伪随机序列,且具有较高的安全性。本专利技术的另一目的在于提供一种序列密码实现装置,能够简单方便地得到所需的 伪随机序列,且具有较高的安全性。为达到上述目的,本专利技术的技术方案是这样实现的 一种序列密码实现方法,包括将预先设定的128比特的初始密钥和128比特的初始向量进行密钥扩展运算,得 到16个31比特的状态变量;利用所述状态变量进行N轮运算,所述N为正整数;其中,每轮运算依次包括比 特重组、非线性状态过滤运算以及变量初始化模式运算;将N轮运算后的输出结果依次进行比特重组、非线性状态过滤运算并丢弃输出 结果,以及变量工作模式运算;在每个时钟节拍内,分别依次进行比特重组、非线性状态过滤运算、异或运算以 及变量工作模式运算,得到32比特的伪随机序列。一种序列密码实现装置,包括密钥扩展单元,用于将预先设定的128比特的初始密钥和128比特的初始向量进 行密钥扩展运算,得到16个31比特的状态变量,并通过控制单元采用任意方式将所述16个状态变量分别装入到线性反馈移位寄存器单元中的16个31比特寄存器中,作为所述16 个31比特寄存器的初始状态字;所述控制单元,用于利用所述16个初始状态字进行N轮运算,所述N为正整数, 其中,每轮运算过程中,所述控制单元依次调用比特重组单元、非线性状态过滤运算单元以 及位于所述线性反馈移位寄存器单元中的反馈子单元,以完成比特重组、非线性状态过滤 运算和变量初始化模式运算;N轮运算结束后,依次调用所述比特重组单元、非线性状态过 滤运算单元以及反馈子单元,以完成比特重组、非线性状态过滤运算并丢弃运算结果和变 量工作模式运算;随后在每个时钟节拍内,依次调用比特重组单元、非线性状态过滤运算单 元、密钥字输出单元以及反馈子单元,以完成比特重组、非线性状态过滤运算、异或运算和 变量工作模式运算,得到32比特的伪随机序列;其中,所述比特重组单元,用于根据所述线性反馈移位寄存器单元中的16个状态字重 组出4个32比特字;所述非线性状态过滤运算单元,用于根据重组出的前3个32比特字,计算得到非 线性状态过滤运算结果;所述密钥字输出单元,用于根据所述非线性状态过滤运算结果以及重组出的第4 个32比特字进行异或运算,得到32比特的伪随机序列输出;所述反馈子单元,用于对所述16个31比特寄存器中的状态字进行更新。与现有技术相比,本专利技术所述方案实现起来简单方便,而且具有较高的安全性。附图说明图1为本专利技术方法实施例的流程图。图2为本专利技术装置实施例的组成结构示意图。具体实施例方式为解决现有技术中存在的问题,本专利技术中提出一种全新的序列密码实现方案,主 要包括三层逻辑结构线性反馈移位寄存器(LFSR)、比特重组以及非线性状态过滤运算。为使本专利技术的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发 明所述方案的具体实现作进一步地详细说明。图1为本专利技术方法实施例的流程图。如图1所示,包括以下步骤步骤101 将预先设定的128比特的初始密钥和128比特的初始向量进行密钥扩 展运算,得到16个31比特的状态变量。本步骤中,将预先设定的初始密钥k和初始向量iv分别划分为16个长度为8比 特的字串,即:k,k,k,..., k和 iv, iv, iv, ... , iv。初始密 钥k和初始向量iv的具体取值可根据实际需要而定。同时,取长度为240比特的比特串D,其具体取值同样可根据实际需要而定,将比 特串D划分为16个长度为15比特的字串,即=D = d Il d Il · · · Il d,Il表示连接, 要求每个字串中的0、1尽量均勻分布。本实施例中,假设d到d分别为d=1000100110101112,d=0100110101111002,d=1100010011010112,d=0010011010111102,d=1010111100010012,d=0110101111000102,d=1110001001101012,d=0001001101011112,d=1001101011110002,d=0101111000100112,d==1101011110001002,d==0011010111100012,d==1011110001001102,d==0111100010011012,d==1111000100110102,d==1000111101011002 ;上述下标2表示二进制。依据上述划分结果,计算得至IJk Ild Il iv,i的取值为从0到15。将将S0到S15作为图1所示LFSR中的16个31 比特寄存器的初始状态字。通常,S。到S15均在集合{1,2,3,...,231-1}中取值。步骤102 利用得到的状态变量进行N轮运算,N为正整数(假设本实施例中取值 为32);其中,每轮运算依次包括比特重组、非线性状态过滤运算以及变量初始化模式运笪弁。本专利技术所述方案的具体实现主要包括两个阶段初始化阶段和工作阶段,本步骤 对应初始化阶段,后续步骤103和104对应工作阶段。在初始化阶段,需要重复执行下述过 程32次比特重组 BitRecombineO ;非线性状态过滤运算F ;变量初始化模式运算LFSRWithInitialisationMode(W >> 1)。其中,比特重组的作用是将上层LFSR的状态字重组成32比特字,以供下层调用。 具体来说,选取16个状态变量中的8个S(1、s2, s5, s7, s8, S12, S14以及S15,执行以下操作X0 = S15J1 Il S14l, X1 = S12l Il S8h,X2 = S7h Il S5L, X3 = S2L Il Soh ;其中,H表示取左边16比特字串(比如s15H即表示状态变量S15对应的31比特中 最左边的16比特),L表示取右边16比特字串,X。、X1^ X2和X3表示比特重组结果,即4个 32比特字。非线性状态过滤运算具有两个32比特寄存器R1和R2,其初始状态字设置为全0, 并通过计算更新,将XrX1和X2作为非线性状态过滤运算的输入,W作为其输出,则有W=X0 十本文档来自技高网...

【技术保护点】
一种序列密码实现方法,其特征在于,包括:将预先设定的128比特的初始密钥和128比特的初始向量进行密钥扩展运算,得到16个31比特的状态变量;利用所述状态变量进行N轮运算,所述N为正整数;其中,每轮运算依次包括:比特重组、非线性状态过滤运算以及变量初始化模式运算;将N轮运算后的输出结果依次进行:比特重组、非线性状态过滤运算并丢弃运算结果,以及变量工作模式运算;在每个时钟节拍内,分别依次进行:比特重组、非线性状态过滤运算、异或运算以及变量工作模式运算,得到32比特的伪随机序列。

【技术特征摘要】

【专利技术属性】
技术研发人员:冯登国金晨辉戚文峰吴文玲王鲲鹏关杰朱宣勇张翌维胡予濮张斌张文政冯秀涛钱立松张文涛孙中化
申请(专利权)人:中国科学院数据与通信保护研究教育中心
类型:发明
国别省市:11[中国|北京]

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

1