基于多变量二次方程的可证明安全的密钥流生成器的制作方法

文档序号:7686333阅读:222来源:国知局
专利名称:基于多变量二次方程的可证明安全的密钥流生成器的制作方法
技术领域
本发明涉及密码学,尤其涉及可证明安全的密钥流生成器。此外,由于随机算法和现代 网络通信技术都需要频繁使用随机序列,因此本发明也涉及到这些领域。
背景技术
本发明是基于可证安全密码理论的,在此意义下描述了密钥流生成器的研究背景。
很多密码算法都需要使用足够长的随机序列来保证安全性,但要得到长的随机序列的代 价往往很高,实际应用中常常代之以算法产生的伪随机序列。本算法设计了一个伪随机序列 生成算法,通常称为密钥流生成器。直观地说,密钥流生成器是一个确定性的算法,它接受 一个较短的初始内部状态,通过多次迭代计算产生出一个长的和真随机序列在计算上不可区 分的伪随机序列,以代替对真随机密钥流的需求,同时又能满足计算上的安全性,从而实现 一个与"一次一密"相似的加密系统。在实际应用中,由于很难找到有足够大扩张率的函数, 一般的构造方法是通过多次迭代,将输出串联起来以得到足够长的伪随机序列。这主要体现 在迭代方程组S^2,,…,2 +1)上,前n比特值用来迭代作为每次的输入x,最后一比特输出 作为密钥流。图1表示现有密钥流生成器的功能方框图,其中模块101表示驱动部分f ,模 块102表示非线性组合部分g,驱动部分/控制生成器的状态序列,并为非线性组合部分提 供统计性能良好的输入,非线性组合部分《输出具有较高线性复杂度的密钥流,化}为状态序 列,(Z,J表示第i次迭代输出的伪随机值,最终串联可得到任意长度的伪随机序列。
现代密码学是建立在计算复杂性基础上的,基于各种困难性假设,己经出现了很多密钥 流生成器的构造方法,如基于大数分解问题、离散对数问题、RSA问题、DDH问题等的生成器, 由这些方法产生的伪随机序列满足可证安全性,但是效率都太低。如由于基于的困难行太强, 为生成一个随机位Gennaro生成器至少要消耗1500个基本运算以保证安全,因此不适于实用。
本发明的安全性基础是基于有限域上的多变量二次多项式的难解性问题(MQ问题),下面 给出一个简单定义
给定有限域GF(q), n个变量的二次多项式Q(A,...,;OeGF(q)[i,,...,;c"],可以表示为
多项式的系数a", P,, y都是GF(q)中的元素。特别地,当q=2时,单项式、^=、。 解多变量二次多项式方程的问题(MQ问题)是如下定义的给定一个GF(q)上有m个二次
多项式的多变量二次方程组S=(Q1,"*, g ),寻找能满足2,")=0,对任意的i(l^i^m)的
xeGF(q),如果存在这样的x。
当n和m分别取不同的值时,MQ问题可以是很容易求解的,也可以很难求解。当m=l时,解的个数是己知的,并且要找到一个解也很容易。当m比n小很多时,求解也是容易的。 相反地,当m〉n时,如果在该方程组中,有N=w(" + l)/2 + l (q二2)或w(n + 3)/2 + l (q#2), 或更一般来说接近N个线性独立的二次多项式,那么线性求解该方程组是容易的,求解的复 杂度仅为0("6)。但一般情况下,即使是在GF(2)上或任何有限域上,MQ问题是NP困难的。 要使MQ问题能够适用于密码学应用,不仅仅需要在最坏的情况下是难解问题,而且需要 在取了合适的m和n后,仍然是难解的。当m接近n时,是最难解的。当ra=n, q=2,已有的 最好的求解算法的复杂度是2"—和穷搜索的复杂度2"是非常接近的,对一个随机的n 值超过100实例来说,完全超出了现有的计算能力。由于多项式迭代只需多项式求值计算, 因此基于该问题的密码算法往往高效;另一方面,由于目前求解该问题的算法还没有找到, 也使得基于该问题的密钥流算法设计适用于安全性较高的领域。

发明内容
本发明提供了一个密钥流生成器的构造方法,它的安全性基于有限域上多变量二次方程 组的难解性,因此是可证安全的。同时,由于算法的效率很高,很适于实际应用。 本发明所述的密钥流生成器包括如下步骤
步骤一,随机地确定一个有限域GF(q),随机选择其上n+l个多变量二次多项式,组成 非退化的或至少拥有和非退化的方程组接近的高的阶的方程组S:(込,…,g +1),作为密钥流 生成器的迭代函数。
步骤二,随机选择GF(q)上长为lKl的变长序列密钥K,长为IIVI的二次序列K), 1}上的 初始向量IV,用两个仔细选择的由n个有n个变量的多项式组成的二次多项式方程组S。 , & , 首先设n比特的K值为初始状态x,对IIVI比特的JR到IV|1V|的IV值来说,若=0,则用S。 (x)来代替x;若/K,-l,则用& (x)来代替x。如此IIVl步产生了一个依赖于密钥K和初 始向量IV的内部状态x,再用步骤一中的密码体制迭代IIVI个额外的时间,但不输出密钥流, 以更好的变化内部状态x。
步骤三,当x是当前的内部状态值时计算GF(q)上n+l元的S^^,…,"+1)的值,输出
s咖""a+,w的密钥值;
步骤四,将前次迭代产生的n个元&,(;c户(Ql,…,2")用来更新内部状态x。
上面算法的输出序列是伪随机的,其安全性取决于多变量二次方程组的难解性,即由该 困难问题可以用反证法证明这个输出是伪随机的,因此将输出序列和同长真随机序列进行区 分的能力可用于求解多变量二次方程组问题,且本算法的输出长度是可变的,可根据明文的 长度产生相应长度的密钥流,避免了产生过长的密钥流的情况,减少了计算资源的消耗。图 2描述了算法第i次迭代的执行框架图。分析以上步骤可知该算法每求解一次多项式方程组 的值可输出l个随机位,且其安全水平可达到28°。


图1为现有密钥流生成器的功能框架图2为本发明所描述的密钥流生成器的第i次迭代框架图; 图3为本发明的具体实施步骤图。
具体实施例方式
下面结合附图对本发明的技术方案作详细说明。
图3显示了具体执行本发明的步骤图,为了清楚地描述本发明,下面描述一个具体的实
施例,细化图3各步骤如下
步骤301,按照现在普遍的计算能力,可以选择安全级别为28°,即使得破解本发明需要 大约28°次运算;同时为了满足MQ问题的困难性,随机地选择一个大素数q,构造有限域GF(q); 选择内部状态长『160bits,最大密钥流长度L=24°,初始密钥流K长度lK卜80bits, IV长度 |lV|=80bits;
步骤302,从有限域GF(q)中随机地选择系数c^, A, y (l&^j^n)构造多项式
2") = Lo—+L—,,、 选择n个这样的a(x) (l<=k〈=n),构造出一个MQ 问题的实例S=(g, ,, 。再用同样的方法构造出由n个随机选择的有n个变量的多变量 方程组,作为用来产生内部状态x的迭代函数; ""
步骤三,选择80位的GF(q)上的随机变量序列密钥K和jO, l)上的随机向量IV,首先设n比 特的K值为初始x,从IV,到IVIIV|,如此更新x的值若/r' =0,则用S。 (x)来代替x,若巧=1, 则用S, (x)来代替x,再将产生的x代入到生成器模型中先迭代llVl个时间,但不输出密钥 流,以获得复杂度更好的x。然后再用密钥流发生器模型根据明文长度产生出相应长度的密 钥。
基于MQ问题来构建可证安全的流密码的优势,是通过和已知最快的由Gennaro,提议的 基于离散对数问题的构建的可证安全的流密码的比较来显示出来的_一它的初始状态长 n=3000 bits(和上面的n=350和初始状态长256相比)且每次迭代应用3000-bit进行335次 模幂以产生2775比特,且Gennaro^中的安全性分析中没有设想到在时间1=28°内产生矛盾 的密钥流序列区分算法的存在,只考虑在时间T二3.5.1(^s2"内的区分算法。另一个优势是 MQ是NP-困难的,而离散对数问题只是NPnco-NP困难的。此外,已知最好的解离散对数问 题的算法是次指数的,而解MQ问题的算法是指数的。
本说明书只描述了所述算法的细节,而未更多地涉及其应用,但由于流密码算法在密码学和 网络通信中的重要价值,其应用是相当广泛的,所以本发明的精神和范围不应该局限于此处 说描述的实例。
权利要求
1一种密钥流序列的生成方法,其特征为,这个密钥流是由有限域上的多变量二次多项式来定义的。选择有限域上多项式迭代问题的实例S=(Q1,…,Qn+1),再选择随机密钥K和初始向量IV,首先用两个仔细地随机选择的由n个有n变量的多项式组成的二次多项式方程组S0,S1来初始化内部状态x,然后将得到的x代入方程组S,输出值的前n个用来进行下次迭代,而最后一位直接输出。照此方法计算下去可以得到一个长L的输出序列,这个输出序列是伪随机的;
2.如权利1所述的密钥流序列生成方法,其特征在于,有限域上的多项式方程组是二次的;
3.如权利1所述的密钥流序列生成方法,其特征在于,内部状态长n建议取160bits;
4.如权利1所述的寧钥流序列生成方法,其特征在于,密钥K的长度lKl是小于n的, 建议取80bits;
5.如权利1所述的密钥流序列生成方法,其特征在于,初始向量长llVl是小于n的, 建议取80bits;
6.如权利1所述的密钥流序列生成方法,其特征在于,每次迭代可输出一位密钥流;
7.如权利1所述的密钥流序列生成方法,其特征在于,数值L至少有2" bits;
8.如权利1所述的密钥流序列生成方法,其特征在于,这个密钥流生成器是可证安全 的,生成的伪随机序列和均匀分布的随机序列是多项式时间内计算上不可区分的;
9.如权利1所述的密钥流序列生成方法,其特征在于,这个密钥流生成器可根据变长的 明文要求来生成相应长度的密文。
全文摘要
本发明设计了一种密钥流生成器,能够在计算资源消耗很小的情况下输出任意长度的伪随机序列,且其中的生成算法是可证明安全的,其安全性基于解有限域上多变量二次方程组问题的困难性,可以满足可证明安全的密钥流生成器的设计需要,可应用于安全性要求较高的领域。在一个实例中,本发明是由一个GF(q)上的多变量多项式组定义的密钥流生成器,q是一个大素数。选择合适的参数,可在较快的速度下根据明文长度的需求产生任意比特的密钥流,同时能达到2<sup>80</sup>的安全级别,可以满足目前大多数密码应用的需要。
文档编号H04L9/18GK101677270SQ20081004610
公开日2010年3月24日 申请日期2008年9月19日 优先权日2008年9月19日
发明者卫琳娜, 廖永建, 虎 熊, 秦志光, 聂旭云, 马秋明 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1