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

文档序号:7889924阅读:703来源:国知局
专利名称:流密码体制中初始化向量的产生方法
技术领域
本发明涉及流密码技术。
背景技术
流密码属于对称密码体系的一种。由于它实现简单,加密速度快,以及没有或只有有限 的错误传播,使流密码在实际应用中,特别是在专用和机密机构中仍保持着优势。它的主要 原理是通过有限个状态数产生性能优良的伪随机序列,使用该序列对明文数据流进行加密 (逐比特加密)得到密文数据流,所以流密码算法的安全强度完全取决于它所使用的伪随机 序列的好坏。
现实中的各种信息(语音,图像,文本,报文等)都可以经过量化编码等技术转化成二 进制数字序列,因此,可以假设流密码中明文空间、密文空间和密钥流空间均是由二进制数 字序列组成的集合。在实现的过程中也可以二进制的方式进行读写和运算。在流密码系统中 ,由于明文序列与密钥流序列逐位加密,密钥流序列一定要具有与明文序列相当的长度。但 这样的密钥流序列难于分配和管理,因此,流密码系统设计的主要任务就是研究如何用一个 较短的密钥生成一个足够长的安全的密钥流序列。实际上的密钥流序列都是由密钥空间中较 短的密钥经过某些算法形成的,具有一定的周期性,如线性反馈移位寄存器。
对于给定的一个线性反馈移位寄存器,在最开始阶段必须有一个相应的初始的二元序列 输入, 一般称作初始化向量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-l
S 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的线性复杂度的情况如下
当f是偶数时
如果2EDo,
如果2EDiUD3UDs,
如果2ED2UD4,
当f是奇数时
如果2EDo, 如果2EDiUD3UDs, 如果2ED2UD4, 从上述结论可以看到
L(s°°)= (N-1) /2; L(s°°)= N-1;
L(s°°)= N-l或者(N-1) /2;
L(s )= (N+l) /2;
L(S°°)= N;
L(s°°)= N或者(N+l) /2。
有少数线性复杂度等于(N-l) /2的序列,如果实际应用者非要
严格要求线性复杂度的情况(要求线性复杂度大于N/2),不选这种序列即可,实际上在实
际应用中这个影响不大。
以一些例子进一步说明本方法所生成的初始化向量能满足对线性复杂度的要求
1、 N=31,f=5, 9=3,2ED0
g=(x5+x2+l) (x5+x4+x3+x2+l)( x5+x4+x3+x+l) L(s°°)=31-15=16
2、 N=73,f=12, e=5,2ED2 g=x+l
L(s°°)=73-1=72
3、 N=79,f=13, e=3,2ED4<formula>formula see original document page 7</formula>
本方法优点在于密钥流序列周期的选择是一类形如^6f+l的奇素数,那么可以根据实际 的需要,选择足够安全的周期。进一步根据有限域中分圆陪集的定义,可以明确0, l的具体 取值位置,即可构造具有较高线性复杂度且O, l取值相对稳定的二元序列,作为线性反馈移 位寄存器的初始输入向量IV,或者应用于密钥管理中心分发给用户密钥种子的构造。
权利要求
1.流密码体制中初始化向量的产生方法,其特征在于,包括以下步骤a、构造在有限域内周期为奇素数N的二元序列;b、以所述奇素数N的部分分圆陪集作为所述二元序列的特征集,使用特征集完成二元序列的构造二元序列的特征集处取1,该二元序列的其余部分取0,二元序列构造完成;c、将构造完成的二元序列作为初始化向量输出。
全文摘要
本发明涉及流密码技术。本发明提供一种完全脱离流密码体制的输出,能独立产生符合要求的初始化向量的方法。本发明为解决上述技术问题所采用的技术方案是,流密码体制中初始化向量的产生方法,其特征在于,包括以下步骤a.构造在有限域内周期为奇素数N的二元序列;b.以所述奇素数N的部分分圆陪集作为所述二元序列的特征集,使用特征集完成二元序列的构造二元序列的特征集处取1,该二元序列的其余部分取0,二元序列构造完成;c.将构造完成的二元序列作为初始化向量输出。本发明可适用于所有流密码体制中线性反馈移位寄存器初始化向量的输入构造,也可用于密钥管理中心分发给用户的密钥种子的构造。
文档编号H04N7/24GK101184224SQ20071020315
公开日2008年5月21日 申请日期2007年12月17日 优先权日2007年12月17日
发明者飞 任, 刘贤洪, 康红娟 申请人:四川长虹电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1