流密码体制中初始化向量的产生方法技术

技术编号:3586226 阅读:472 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及流密码技术。本发明专利技术提供一种完全脱离流密码体制的输出,能独立产生符合要求的初始化向量的方法。本发明专利技术为解决上述技术问题所采用的技术方案是,流密码体制中初始化向量的产生方法,其特征在于,包括以下步骤:a.构造在有限域内周期为奇素数N的二元序列;b.以所述奇素数N的部分分圆陪集作为所述二元序列的特征集,使用特征集完成二元序列的构造:二元序列的特征集处取1,该二元序列的其余部分取0,二元序列构造完成;c.将构造完成的二元序列作为初始化向量输出。本发明专利技术可适用于所有流密码体制中线性反馈移位寄存器初始化向量的输入构造,也可用于密钥管理中心分发给用户的密钥种子的构造。

【技术实现步骤摘要】

本专利技术涉及流密码技术。
技术介绍
流密码属于对称密码体系的一种。由于它实现简单,加密速度快,以及没有或只有有限 的错误传播,使流密码在实际应用中,特别是在专用和机密机构中仍保持着优势。它的主要 原理是通过有限个状态数产生性能优良的伪随机序列,使用该序列对明文数据流进行加密 (逐比特加密)得到密文数据流,所以流密码算法的安全强度完全取决于它所使用的伪随机 序列的好坏。现实中的各种信息(语音,图像,文本,报文等)都可以经过量化编码等技术转化成二 进制数字序列,因此,可以假设流密码中明文空间、密文空间和密钥流空间均是由二进制数 字序列组成的集合。在实现的过程中也可以二进制的方式进行读写和运算。在流密码系统中 ,由于明文序列与密钥流序列逐位加密,密钥流序列一定要具有与明文序列相当的长度。但 这样的密钥流序列难于分配和管理,因此,流密码系统设计的主要任务就是研究如何用一个 较短的密钥生成一个足够长的安全的密钥流序列。实际上的密钥流序列都是由密钥空间中较 短的密钥经过某些算法形成的,具有一定的周期性,如线性反馈移位寄存器。对于给定的一个线性反馈移位寄存器,在最开始阶段必须有一个相应的初始的二元序列 输入, 一般称作初始化向量IV,然后才能继续产生后续的序列。目前使用的初始化向量的选 择大致有以下两种方式(1) 随机截取前一时刻密钥流输出的某一部分作为下次的初始化向量;(2) 将前一时刻密文输出的一部分数据作为初始化向量取出。在实际应用中,我们力求这个初始化向量具有较好的性质即不仅具有较高的线性 复杂度,而且在0, l之间具有相当好的平衡,也就是所谓的稳定。
技术实现思路
本专利技术所要解决的技术问题是,为了克服现有技术中生成的初始化向量肯定会含有密钥 流或者密文的部分信息这一缺点,而提供一种完全脱离流密码体制的输出,能独立产生符合 要求的初始化向量的方法。本专利技术为解决上述技术问题所采用的技术方案是,,其特征在于,包括以下步骤a、 构造在有限域内周期为奇素数N的二元序列;b、 以所述奇素数N的部分分圆陪集作为所述二元序列的特征集,使用特征集完成二元序 列的构造二元序列的特征集处取l,该二元序列的其余部分取0, 二元序列构造完成;c、将构造完成的二元序列作为初始化向量输出。进一步的,如果实际应用中必须严格要求线性复杂度,则在所述步骤b中,二元序列构 造完成后,还需计算该二元序列的线性复杂度是否大于N/2,如是,进入步骤c;如否,返回 步骤b重新选择奇素数N,重新构造二元序列。进一步的,为了达到0与1的最佳平衡,步骤b中所述奇素数N的部分分圆陪集为奇素数N的所有分圆陪集中的半数。本专利技术的有益效果是,构造出的初始化向量不再含有密钥流或者密文信息,具有较高的线性复杂度,在0, l之间具有相当好的平衡。本方法可适用于所有流密码体制中线性反馈移 位寄存器初始化向量的输入构造,也可用于密钥管理中心分发给用户的密钥种子的构造。 具体实施例方式结合本专利技术的步骤,介绍如下的术语1、 n级线性反馈移位寄存器有限域Fq上的一个n级线性反馈移位寄存器(Linear Feedback Shift Register, LFSR )显然n级线性反馈移位寄存器序列由它的前n项ao, ai,……,an—2, an-i和反馈函数F(化x2,……,Xn—1, Xn) =-C工Xi!-C2Xn—1--Ct!X工(CiEFq)完全确定。2、 序列的线性复杂度设有正整数L和域Fq中的一组数d,……,^如果序列3°°满足sj+cisj—i+......+clsj—l=0 (j》L) (1)则称序列SW是一个L阶线性递归序列。确定序列其他项的SQ,……,sl4称为初始值。不难看出线性递归序列的生成可由线性反馈移位寄存器来实现。满足(1)式的L的最小值称为序列3°°的线性复杂度。如果用线性反馈移位寄存器来实现一个序列,则它的线性复杂度是 能产生该序列的最短线性反馈移位寄存器的阶数,这时线性递归关系式(1)中的系数即为线性反馈移位寄存器的反馈系数。通常用L(sW)表示序列的线性复杂度。从线性复杂度的定义可以看出,如果一个序列的线性复杂度为L,则只需知道该序列的 任意2L个连续元素,即可通过解线性方程组找到该序列所满足的线性递归关系式,进而可确 定整个序列。在实际应用中,我们需要线性复杂度足够大(L〉N/2, N为序列s。的周期)的序 列,这时要确定线性递归关系式,至少要知道序列中N个连续的取值,如果周期N足够大,这 种穷举法在实际中并不可行。因而线性复杂度是度量密钥流序列的密码学强度的一个重要指 标。但线性复杂度高的序列未必是好密钥流。 一个好的密钥流,它的线性复杂度不 仅要足够高,而且必须稳定。3、 二元序列的特征集若s^是具有周期N的二元序列,集合化《i《N-l:Si^叫做序列sl勺特征集。 本专利技术中二元序列的特征集将由下述的分圆陪集给出。4、 有限域中的分圆陪集记^df+l是一个奇素数,9是Zn的一个本原元,我们把乘法子群(ed)记作Do,可以得到 Z^基于Do的一个陪集分解式z; =0.这里D尸eiDo, 0《i《d-l,进一步,称陪集Di为i次分圆陪集。这里的分圆陪集Di在本专利技术中起着举足轻重的作用,将决定整个二元序列。针对一个给 定的奇素数N,它相应的一部分的分圆陪集将作为我们构造的二元序列的特征集,也就是取 l的具体位置,其余的位置取O。5、 周期为N的二元序列线性复杂度的计算方法记序列sW是有限域Fq上以N为周期的序列,定义如下多项式 eN,、 ^ ^^ N-lS U9=so+six+......+sn-ix那么该序列的线性复杂度L(s^卢N-deg (gcd(xN-l, sN(x)))进一步,如果周期为N的二元序列s00以DkUDiUDj乍为特征集(k, 1, m=0, 1, 2, , chl),那么上述多项式sW(x)可以化简为取另一个多项式8&)=80(1(/-1, S(x)),那么我们可以得到二元序列线性复杂度的最简 单的计算公式L(s°°)= N-deg(g(x))从上述过程可以看出,要计算一个二元序列的线性复杂度,关键找到多项式g(x)即可。要构造符合要求的初始化向量可由以下步骤得到a、构造在有限域内周期为奇素数N (N=6f+1)的二元序列3°°; b、 以所述奇素数N的部分分圆陪集D()UD工UD2 (奇素数^6f+l的分圆陪集有6个)作为所 述二元序列3°°的特征集,使用特征集完成二元序列的构造二元序列的特征集DoUD工UD2处 取l,该二元序列的其余部分D3UD4UD5取0, 二元序列构造完成;c、 将构造完成的二元序列作为初始化向量输出。针对奇素数^6f+l的形式构造二元序列,应用者只需要根据实际的应用情况,选择2属 于不同的分圆陪集即可相应的选择不同线性复杂度的序列。针对一个具体的奇素数N,分圆 陪集是对1到N-1这N-1个数的等分,那么对于具体的^6f+l,它的分圆陪集有6个,每一个有(N-l) /6个数,最后构造序列的特征集取了其中的三个分圆陪集,那么在0和1之间必定是 平衡的。当序列s^是以分圆陪集DoUD工UD2为特征集的周期为N (N=6f+1)的二元序列时,序列 f的线性复杂度的情况如本文档来自技高网
...

【技术保护点】
流密码体制中初始化向量的产生方法,其特征在于,包括以下步骤:a、构造在有限域内周期为奇素数N的二元序列;b、以所述奇素数N的部分分圆陪集作为所述二元序列的特征集,使用特征集完成二元序列的构造:二元序列的特征集处取1,该二元序列的其余部分取0,二元序列构造完成;c、将构造完成的二元序列作为初始化向量输出。

【技术特征摘要】
1.流密码体制中初始化向量的产生方法,其特征在于,包括以下步骤a、构造在有限域内周期为奇素数N的二元序列;b、以所述奇素数N的部分分圆陪集作为所述二元序...

【专利技术属性】
技术研发人员:康红娟刘贤洪任飞
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:51[中国|四川]

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

1
相关领域技术
  • 暂无相关专利