專利名稱:基于多變量二次方程的可證明安全的密鑰流生成器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼學(xué),尤其涉及可證明安全的密鑰流生成器。此外,由于隨機(jī)算法和現(xiàn)代 網(wǎng)絡(luò)通信技術(shù)都需要頻繁使用隨機(jī)序列,因此本發(fā)明也涉及到這些領(lǐng)域。
背景技術(shù):
本發(fā)明是基于可證安全密碼理論的,在此意義下描述了密鑰流生成器的研究背景。
很多密碼算法都需要使用足夠長的隨機(jī)序列來保證安全性,但要得到長的隨機(jī)序列的代 價(jià)往往很高,實(shí)際應(yīng)用中常常代之以算法產(chǎn)生的偽隨機(jī)序列。本算法設(shè)計(jì)了一個(gè)偽隨機(jī)序列 生成算法,通常稱為密鑰流生成器。直觀地說,密鑰流生成器是一個(gè)確定性的算法,它接受 一個(gè)較短的初始內(nèi)部狀態(tài),通過多次迭代計(jì)算產(chǎn)生出一個(gè)長的和真隨機(jī)序列在計(jì)算上不可區(qū) 分的偽隨機(jī)序列,以代替對(duì)真隨機(jī)密鑰流的需求,同時(shí)又能滿足計(jì)算上的安全性,從而實(shí)現(xiàn) 一個(gè)與"一次一密"相似的加密系統(tǒng)。在實(shí)際應(yīng)用中,由于很難找到有足夠大擴(kuò)張率的函數(shù), 一般的構(gòu)造方法是通過多次迭代,將輸出串聯(lián)起來以得到足夠長的偽隨機(jī)序列。這主要體現(xiàn) 在迭代方程組S^2,,…,2 +1)上,前n比特值用來迭代作為每次的輸入x,最后一比特輸出 作為密鑰流。圖1表示現(xiàn)有密鑰流生成器的功能方框圖,其中模塊101表示驅(qū)動(dòng)部分f ,模 塊102表示非線性組合部分g,驅(qū)動(dòng)部分/控制生成器的狀態(tài)序列,并為非線性組合部分提 供統(tǒng)計(jì)性能良好的輸入,非線性組合部分《輸出具有較高線性復(fù)雜度的密鑰流,化}為狀態(tài)序 列,(Z,J表示第i次迭代輸出的偽隨機(jī)值,最終串聯(lián)可得到任意長度的偽隨機(jī)序列。
現(xiàn)代密碼學(xué)是建立在計(jì)算復(fù)雜性基礎(chǔ)上的,基于各種困難性假設(shè),己經(jīng)出現(xiàn)了很多密鑰 流生成器的構(gòu)造方法,如基于大數(shù)分解問題、離散對(duì)數(shù)問題、RSA問題、DDH問題等的生成器, 由這些方法產(chǎn)生的偽隨機(jī)序列滿足可證安全性,但是效率都太低。如由于基于的困難行太強(qiáng), 為生成一個(gè)隨機(jī)位Gennaro生成器至少要消耗1500個(gè)基本運(yùn)算以保證安全,因此不適于實(shí)用。
本發(fā)明的安全性基礎(chǔ)是基于有限域上的多變量二次多項(xiàng)式的難解性問題(MQ問題),下面 給出一個(gè)簡單定義
給定有限域GF(q), n個(gè)變量的二次多項(xiàng)式Q(A,...,;OeGF(q)[i,,...,;c"],可以表示為
多項(xiàng)式的系數(shù)a", P,, y都是GF(q)中的元素。特別地,當(dāng)q=2時(shí),單項(xiàng)式、^=、。 解多變量二次多項(xiàng)式方程的問題(MQ問題)是如下定義的給定一個(gè)GF(q)上有m個(gè)二次
多項(xiàng)式的多變量二次方程組S=(Q1,"*, g ),尋找能滿足2,")=0,對(duì)任意的i(l^i^m)的
xeGF(q),如果存在這樣的x。
當(dāng)n和m分別取不同的值時(shí),MQ問題可以是很容易求解的,也可以很難求解。當(dāng)m=l時(shí),解的個(gè)數(shù)是己知的,并且要找到一個(gè)解也很容易。當(dāng)m比n小很多時(shí),求解也是容易的。 相反地,當(dāng)m〉n時(shí),如果在該方程組中,有N=w(" + l)/2 + l (q二2)或w(n + 3)/2 + l (q#2), 或更一般來說接近N個(gè)線性獨(dú)立的二次多項(xiàng)式,那么線性求解該方程組是容易的,求解的復(fù) 雜度僅為0("6)。但一般情況下,即使是在GF(2)上或任何有限域上,MQ問題是NP困難的。 要使MQ問題能夠適用于密碼學(xué)應(yīng)用,不僅僅需要在最壞的情況下是難解問題,而且需要 在取了合適的m和n后,仍然是難解的。當(dāng)m接近n時(shí),是最難解的。當(dāng)ra=n, q=2,已有的 最好的求解算法的復(fù)雜度是2"—和窮搜索的復(fù)雜度2"是非常接近的,對(duì)一個(gè)隨機(jī)的n 值超過100實(shí)例來說,完全超出了現(xiàn)有的計(jì)算能力。由于多項(xiàng)式迭代只需多項(xiàng)式求值計(jì)算, 因此基于該問題的密碼算法往往高效;另一方面,由于目前求解該問題的算法還沒有找到, 也使得基于該問題的密鑰流算法設(shè)計(jì)適用于安全性較高的領(lǐng)域。
發(fā)明內(nèi)容
本發(fā)明提供了一個(gè)密鑰流生成器的構(gòu)造方法,它的安全性基于有限域上多變量二次方程 組的難解性,因此是可證安全的。同時(shí),由于算法的效率很高,很適于實(shí)際應(yīng)用。 本發(fā)明所述的密鑰流生成器包括如下步驟
步驟一,隨機(jī)地確定一個(gè)有限域GF(q),隨機(jī)選擇其上n+l個(gè)多變量二次多項(xiàng)式,組成 非退化的或至少擁有和非退化的方程組接近的高的階的方程組S:(込,…,g +1),作為密鑰流 生成器的迭代函數(shù)。
步驟二,隨機(jī)選擇GF(q)上長為lKl的變長序列密鑰K,長為IIVI的二次序列K), 1}上的 初始向量IV,用兩個(gè)仔細(xì)選擇的由n個(gè)有n個(gè)變量的多項(xiàng)式組成的二次多項(xiàng)式方程組S。 , & , 首先設(shè)n比特的K值為初始狀態(tài)x,對(duì)IIVI比特的JR到IV|1V|的IV值來說,若=0,則用S。 (x)來代替x;若/K,-l,則用& (x)來代替x。如此IIVl步產(chǎn)生了一個(gè)依賴于密鑰K和初 始向量IV的內(nèi)部狀態(tài)x,再用步驟一中的密碼體制迭代IIVI個(gè)額外的時(shí)間,但不輸出密鑰流, 以更好的變化內(nèi)部狀態(tài)x。
步驟三,當(dāng)x是當(dāng)前的內(nèi)部狀態(tài)值時(shí)計(jì)算GF(q)上n+l元的S^^,…,"+1)的值,輸出
s咖""a+,w的密鑰值;
步驟四,將前次迭代產(chǎn)生的n個(gè)元&,(;c戶(Ql,…,2")用來更新內(nèi)部狀態(tài)x。
上面算法的輸出序列是偽隨機(jī)的,其安全性取決于多變量二次方程組的難解性,即由該 困難問題可以用反證法證明這個(gè)輸出是偽隨機(jī)的,因此將輸出序列和同長真隨機(jī)序列進(jìn)行區(qū) 分的能力可用于求解多變量二次方程組問題,且本算法的輸出長度是可變的,可根據(jù)明文的 長度產(chǎn)生相應(yīng)長度的密鑰流,避免了產(chǎn)生過長的密鑰流的情況,減少了計(jì)算資源的消耗。圖 2描述了算法第i次迭代的執(zhí)行框架圖。分析以上步驟可知該算法每求解一次多項(xiàng)式方程組 的值可輸出l個(gè)隨機(jī)位,且其安全水平可達(dá)到28°。
圖1為現(xiàn)有密鑰流生成器的功能框架圖2為本發(fā)明所描述的密鑰流生成器的第i次迭代框架圖; 圖3為本發(fā)明的具體實(shí)施步驟圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案作詳細(xì)說明。
圖3顯示了具體執(zhí)行本發(fā)明的步驟圖,為了清楚地描述本發(fā)明,下面描述一個(gè)具體的實(shí)
施例,細(xì)化圖3各步驟如下
步驟301,按照現(xiàn)在普遍的計(jì)算能力,可以選擇安全級(jí)別為28°,即使得破解本發(fā)明需要 大約28°次運(yùn)算;同時(shí)為了滿足MQ問題的困難性,隨機(jī)地選擇一個(gè)大素?cái)?shù)q,構(gòu)造有限域GF(q); 選擇內(nèi)部狀態(tài)長『160bits,最大密鑰流長度L=24°,初始密鑰流K長度lK卜80bits, IV長度 |lV|=80bits;
步驟302,從有限域GF(q)中隨機(jī)地選擇系數(shù)c^, A, y (l&^j^n)構(gòu)造多項(xiàng)式
2") = Lo—+L—,,、 選擇n個(gè)這樣的a(x) (l<=k〈=n),構(gòu)造出一個(gè)MQ 問題的實(shí)例S=(g, ,, 。再用同樣的方法構(gòu)造出由n個(gè)隨機(jī)選擇的有n個(gè)變量的多變量 方程組,作為用來產(chǎn)生內(nèi)部狀態(tài)x的迭代函數(shù); ""
步驟三,選擇80位的GF(q)上的隨機(jī)變量序列密鑰K和jO, l)上的隨機(jī)向量IV,首先設(shè)n比 特的K值為初始x,從IV,到IVIIV|,如此更新x的值若/r' =0,則用S。 (x)來代替x,若巧=1, 則用S, (x)來代替x,再將產(chǎn)生的x代入到生成器模型中先迭代llVl個(gè)時(shí)間,但不輸出密鑰 流,以獲得復(fù)雜度更好的x。然后再用密鑰流發(fā)生器模型根據(jù)明文長度產(chǎn)生出相應(yīng)長度的密 鑰。
基于MQ問題來構(gòu)建可證安全的流密碼的優(yōu)勢,是通過和已知最快的由Gennaro,提議的 基于離散對(duì)數(shù)問題的構(gòu)建的可證安全的流密碼的比較來顯示出來的_一它的初始狀態(tài)長 n=3000 bits(和上面的n=350和初始狀態(tài)長256相比)且每次迭代應(yīng)用3000-bit進(jìn)行335次 模冪以產(chǎn)生2775比特,且Gennaro^中的安全性分析中沒有設(shè)想到在時(shí)間1=28°內(nèi)產(chǎn)生矛盾 的密鑰流序列區(qū)分算法的存在,只考慮在時(shí)間T二3.5.1(^s2"內(nèi)的區(qū)分算法。另一個(gè)優(yōu)勢是 MQ是NP-困難的,而離散對(duì)數(shù)問題只是NPnco-NP困難的。此外,已知最好的解離散對(duì)數(shù)問 題的算法是次指數(shù)的,而解MQ問題的算法是指數(shù)的。
本說明書只描述了所述算法的細(xì)節(jié),而未更多地涉及其應(yīng)用,但由于流密碼算法在密碼學(xué)和 網(wǎng)絡(luò)通信中的重要價(jià)值,其應(yīng)用是相當(dāng)廣泛的,所以本發(fā)明的精神和范圍不應(yīng)該局限于此處 說描述的實(shí)例。
權(quán)利要求
1一種密鑰流序列的生成方法,其特征為,這個(gè)密鑰流是由有限域上的多變量二次多項(xiàng)式來定義的。選擇有限域上多項(xiàng)式迭代問題的實(shí)例S=(Q1,…,Qn+1),再選擇隨機(jī)密鑰K和初始向量IV,首先用兩個(gè)仔細(xì)地隨機(jī)選擇的由n個(gè)有n變量的多項(xiàng)式組成的二次多項(xiàng)式方程組S0,S1來初始化內(nèi)部狀態(tài)x,然后將得到的x代入方程組S,輸出值的前n個(gè)用來進(jìn)行下次迭代,而最后一位直接輸出。照此方法計(jì)算下去可以得到一個(gè)長L的輸出序列,這個(gè)輸出序列是偽隨機(jī)的;
2.如權(quán)利1所述的密鑰流序列生成方法,其特征在于,有限域上的多項(xiàng)式方程組是二次的;
3.如權(quán)利1所述的密鑰流序列生成方法,其特征在于,內(nèi)部狀態(tài)長n建議取160bits;
4.如權(quán)利1所述的寧鑰流序列生成方法,其特征在于,密鑰K的長度lKl是小于n的, 建議取80bits;
5.如權(quán)利1所述的密鑰流序列生成方法,其特征在于,初始向量長llVl是小于n的, 建議取80bits;
6.如權(quán)利1所述的密鑰流序列生成方法,其特征在于,每次迭代可輸出一位密鑰流;
7.如權(quán)利1所述的密鑰流序列生成方法,其特征在于,數(shù)值L至少有2" bits;
8.如權(quán)利1所述的密鑰流序列生成方法,其特征在于,這個(gè)密鑰流生成器是可證安全 的,生成的偽隨機(jī)序列和均勻分布的隨機(jī)序列是多項(xiàng)式時(shí)間內(nèi)計(jì)算上不可區(qū)分的;
9.如權(quán)利1所述的密鑰流序列生成方法,其特征在于,這個(gè)密鑰流生成器可根據(jù)變長的 明文要求來生成相應(yīng)長度的密文。
全文摘要
本發(fā)明設(shè)計(jì)了一種密鑰流生成器,能夠在計(jì)算資源消耗很小的情況下輸出任意長度的偽隨機(jī)序列,且其中的生成算法是可證明安全的,其安全性基于解有限域上多變量二次方程組問題的困難性,可以滿足可證明安全的密鑰流生成器的設(shè)計(jì)需要,可應(yīng)用于安全性要求較高的領(lǐng)域。在一個(gè)實(shí)例中,本發(fā)明是由一個(gè)GF(q)上的多變量多項(xiàng)式組定義的密鑰流生成器,q是一個(gè)大素?cái)?shù)。選擇合適的參數(shù),可在較快的速度下根據(jù)明文長度的需求產(chǎn)生任意比特的密鑰流,同時(shí)能達(dá)到2<sup>80</sup>的安全級(jí)別,可以滿足目前大多數(shù)密碼應(yīng)用的需要。
文檔編號(hào)H04L9/18GK101677270SQ20081004610
公開日2010年3月24日 申請(qǐng)日期2008年9月19日 優(yōu)先權(quán)日2008年9月19日
發(fā)明者衛(wèi)琳娜, 廖永建, 虎 熊, 秦志光, 聶旭云, 馬秋明 申請(qǐng)人:電子科技大學(xué)