專利名稱:用于生成偽隨機(jī)數(shù)據(jù)序列的方法、系統(tǒng)和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉M口密/解密領(lǐng)域,并且本發(fā)明關(guān)注用于生成偽隨機(jī)數(shù)據(jù)序列 的系統(tǒng)和方法。
本發(fā)明找到 一種在創(chuàng)建旨在對(duì)稱加密的比特系列中高度有利的應(yīng)用, 所述對(duì)稱加密是一種加密處理,其中,加密和解密使用相同秘密密鑰。本 發(fā)明的上下文首先描述將消息逐比特加到相同長(zhǎng)度的偽隨機(jī)數(shù)據(jù)序列的加 密方法,其次描述方法,在所述方法中加密運(yùn)算和解密運(yùn)算是相同的。在
諸如移動(dòng)通信(GSM、 UMTS等)、互聯(lián)網(wǎng)(SSL等)、微芯片卡(銀行 卡)等的所有類型的通信中通常采用對(duì)稱加密。
背景技術(shù):
最基本的對(duì)稱加密技術(shù)是已知的流加密技術(shù),其以明文將消息逐比特 加到相同長(zhǎng)度的隨機(jī)系列。這種技術(shù)增加了產(chǎn)生長(zhǎng)偽隨機(jī)系列的必要和困 難問(wèn)題,
最常用的流加密方法^^用獨(dú)立于將通過(guò)采用線性反饋移位寄存器而加 密的消息以節(jié)省石更件所生成的偽隨機(jī)系列。
線性反饋移位寄存器的主要缺點(diǎn)在于它們是線性的。事實(shí)上,如果寄 存器的輸出比特的速率等于寄存器的長(zhǎng)度并且已知與寄存器關(guān)聯(lián)的反饋多 項(xiàng)式,則可以確定寄存器的輸出比特和所有后續(xù)狀態(tài)。
因此,為了 "破壞"線性反饋移位寄存器的線性,標(biāo)準(zhǔn)的做法是例如 使用非線性布爾函數(shù)來(lái)組合來(lái)自多個(gè)寄存器的輸出和其可能的內(nèi)部狀態(tài)。
圖5示出這種生成器21,其3皮稱為互縮生成器(shrinking generator ), 在歐洲專利申請(qǐng)EPO 619 659中描述了這種生成器,其包括第一線性反饋
移位寄存器123a、第二線性反饋移位寄存器123b以及用于選擇生成器121 的輸出的裝置125。
在每次移位時(shí),兩個(gè)寄存器123a和123b被同時(shí)移位,并且如果第一 寄存器123a的輸出是'T,,則設(shè)備121的輸出等于第二寄存器123b的輸 出,'否則不輸出比特。
互縮生成器允許不僅組合兩個(gè)線性反饋移位寄存器的輸出,而且更通 常地,組合^f壬意一對(duì)比特系列。互縮生成器屬于流加密系統(tǒng)的分類,其中, 一個(gè)線性反饋移位寄存器控制另 一線性反饋移位寄存器。這個(gè)構(gòu)思在于通 過(guò)既改變所采用的各個(gè)寄存器之間的移位數(shù)量又改變兩個(gè)連續(xù)比特之間的 移位數(shù)量來(lái)破壞寄存器的線性。
被稱為自縮生成器的互縮生成器的變化是基于相同原理的,但僅使用 一個(gè)寄存器。逐兩個(gè)比特地讀取寄存器的輸出比特,并且第一比特控制第 二比特的輸出,從而如果第一比特是'T,,則系統(tǒng)的輸出是第二比特;否 則不輸出比特。
僅使用線性反饋移位寄存器具有許多缺點(diǎn)。主要缺點(diǎn)是來(lái)自設(shè)備的線 性的弱點(diǎn)。如果通過(guò)布爾函數(shù)來(lái)組合寄存器,則也是不利的。在硬件級(jí)別, 這些不利之處來(lái)自于實(shí)現(xiàn)功能的復(fù)雜度。此外,這種函數(shù)是固定的,并且 易受攻擊。
此外,如果在偽隨機(jī)系列生成器使用的移位寄存器的反饋是常規(guī)的并 且容易預(yù)測(cè)的,則該生成器容易受到代數(shù)攻擊。
更進(jìn)一步地,統(tǒng)計(jì)方法已經(jīng)示出互縮生成器的某些弱點(diǎn)。具體地說(shuō), 在互縮生成器中,由兩個(gè)輸出比特之間的兩個(gè)寄存器所影響的移位數(shù)量改 變,并且對(duì)于兩個(gè)寄存器均具有相同的值。
發(fā)明內(nèi)容
本發(fā)明提供一種從初始數(shù)據(jù)流生成偽隨機(jī)數(shù)據(jù)序列的方法,其包括以 下步驟
定義形成完全前綴碼的碼字的集合; 定義輸出字的集合;
-定義去同步函數(shù),其將來(lái)自所述輸出字的集合的輸出字與所述完全 前綴碼中的任意碼字關(guān)聯(lián);
將初始數(shù)據(jù)流分解為根據(jù)所述完全前綴碼所編碼的字的系列;
根據(jù)去同步函數(shù)將所述已編碼的字的系列中的字與對(duì)應(yīng)輸出字關(guān) 聯(lián),以形成所述偽隨機(jī)數(shù)據(jù)序列。
因此,完全前綴碼使得初始數(shù)據(jù)流能夠被獨(dú)特地分解,并且可以由有 限自動(dòng)機(jī)(finite automaton)容易地起作用。此外,該方法實(shí)現(xiàn)簡(jiǎn)單,并 且使用初始數(shù)據(jù)流去同步函數(shù)來(lái)生成偽隨機(jī)數(shù)據(jù)序列。事實(shí)上,完全前綴 碼和"去同步分量,,的使用防止了代數(shù)攻擊,或者,在產(chǎn)生所確保的最小 數(shù)量的比特的同時(shí)實(shí)質(zhì)上無(wú)效地呈遞它們。與之對(duì)比,即使將互縮生成器 用作偽隨機(jī)系列生成器中的去同步分量,最小的所確保的速率實(shí)際上也是 零。
所述去同步函數(shù)有利地是取決于預(yù)定參數(shù)的參數(shù)化函數(shù),可以在生成 偽隨機(jī)數(shù)據(jù)序列期間修改所述預(yù)定參數(shù)的值。
去同步取決于可修改的初始化參數(shù)的事實(shí)增加了初始數(shù)據(jù)流和偽隨機(jī) 數(shù)據(jù)序列之間的關(guān)系的復(fù)雜度,使得更難以預(yù)測(cè)偽隨機(jī)數(shù)據(jù)序列。
根據(jù)本發(fā)明的特征,所述輸出字的集合包括用于每一輸出字的補(bǔ)碼輸 出字。
例如,對(duì)于給定的輸出字長(zhǎng)度,這樣平衡了所述輸出字的集 合中的"0"和"1"的數(shù)量。
所述完全前綴碼的碼字優(yōu)選地具有受上限h限制的長(zhǎng)度,并且所述碼 如下如果任意輸出字x具有與輸出字y相同的長(zhǎng)度,則按照輸出字x的 所述去同步函數(shù)的前項(xiàng)(antecedent)的數(shù)量與按照輸出字y的所述去同 步函數(shù)的前項(xiàng)的數(shù)量相同。
句話說(shuō),在所述輸出序列中的具有值"0"的比特和具有值'T,的比特包 含關(guān)于所述初始數(shù)據(jù)序列的相同數(shù)量的信息。
所述完全前綴碼的字有利地具有受下限m限制的長(zhǎng)度,并且有利的是, 存在所述完全前綴碼的字的上限長(zhǎng)度l,從而對(duì)于小于或等于上限長(zhǎng)度l的 任意長(zhǎng)度k,完全前綴碼包含長(zhǎng)度k的2"1—1個(gè)字。
該特征通過(guò)優(yōu)化所述偽隨機(jī)數(shù)據(jù)序列的概率分布而增強(qiáng)了上述統(tǒng)計(jì)特性。
所述方法的第一實(shí)施例的特征在于
由碼字的集合d定義完全前綴碼,所述碼字具有以下形式,其中,
h>2:
C產(chǎn)(0r0;0 < n < h-2} U {10nl;0 < n < h-2} U {01h-1} U {10h1} .從二進(jìn)制集合E尸(O,l)由字定義輸出字的集合; .參數(shù)化去同步函數(shù)的預(yù)定參數(shù)u是矢量uKuq,…,u^),其分量屬于 集合{0,1};以及
.按以下方式定義參數(shù)化去同步函數(shù)fu: .fu (01n0) =un,對(duì)于(Xn《h-2; .fu (01nl) =un l,對(duì)于(K"h-2;
fu ( 01" ) =11"
fu (10h-" =uh l。
該實(shí)施例相對(duì)廉價(jià)地實(shí)現(xiàn),并且可以有利地用于提供硬件類型加密。 此外,比特輸出的數(shù)量(即偽隨機(jī)數(shù)據(jù)序列的比特?cái)?shù)量)和輸入比特的數(shù) 量(即初始數(shù)據(jù)流的比特?cái)?shù)量)之間的比率嚴(yán)格大于1/3,并且長(zhǎng)度h的輸 入上的比特輸出的所確保的最小數(shù)量是1 。
所述方法的另一實(shí)施例的特征在于
由以下述形式的兩個(gè)字節(jié)構(gòu)成的碼字的集合C2定義完全前綴碼
C2={wlW2; Wj"0,1〉8, i=l,2}; .由來(lái)自集合£2={0,1}811{£}的字定義輸出字的集合; .參數(shù)化去同步函數(shù)的預(yù)定參數(shù)v是矢量V=(Vo,,..,V8,、),其分量屬于集合{0,1},前面八個(gè)分量Vo,…,Vs的值是不變量,最后的分量^的 值是變量;以及
.^!t化去同步函數(shù)fv :C2 — { s } U {0,1}8與形式Wlw2的任意字關(guān)聯(lián) .如果滿足以下條件之一,則字w!:
4<wt(wi w2) <8并且v wt(wi@w2)=b, wt是Hamming重量,b 是來(lái)自{0,1}的預(yù)定元素;
0《wt(w^W2)〈4并且Vwt(w^w2)共b;
.wt(Wi④W2)-4, ^=1, 4〈wt(Wi十W2十e)《8并且V4-b, e是來(lái)自 {0,1}8的奇數(shù)Hamming重量字;
wt(Wi十W2"4, ^=1, 0<wt(wi w2 e)<4并且v4#b; ,如果滿足以下條件之一,則字w2:
4〈wt(Wi十w2) < 8并且v wt(wl④w2) # b;
0 < wt(Wi w2)<4并且v wt(wl十w2)=b;
wt(w^W2)-4, K=i, 4〈wt(wi①W2十e)《8并且V4-b;
wt(wt w2)=4, ^ =1 , 0 < wt(Wi w2 e)<4并且v 4=b;以及 .如果Wt(W^W2"4并且^=0,則空字s 。
該實(shí)現(xiàn)方式可以有利地用于軟件類型加密。此外,字節(jié)輸出數(shù)量和輸 入字節(jié)數(shù)量之間的比率嚴(yán)格大于1/3,并且長(zhǎng)度h字節(jié)的輸入上的字節(jié)輸出 的所確保的最小數(shù)量是l。
本發(fā)明還提供一種生成器,用于從初始數(shù)據(jù)流生成偽隨機(jī)數(shù)據(jù)序列, 其特征在于包括存儲(chǔ)器和處理單元,所述存儲(chǔ)器存儲(chǔ)形成完全前綴碼的
碼字的集合和輸出字的集合,并且所述處理單元能夠讀取初始數(shù)據(jù)流,并 將其分解為根據(jù)所述完全前綴碼所編碼的字的系列,并根據(jù)去同步函數(shù)將
所述已編碼的字的系列中的字與對(duì)應(yīng)輸出字關(guān)聯(lián),以生成所述偽隨機(jī)數(shù)據(jù)序列。
因此,所述生成器示出具有不取決于初始數(shù)據(jù)流的特定特性的最小速 率的偽隨機(jī)數(shù)據(jù)序列。此外,所述生成器易于實(shí)現(xiàn)、高效,并具有相對(duì)低 的成本。
所述生成器有利地進(jìn)一步包括M化裝置(parameterizing means ), 用于取決于預(yù)定參數(shù)來(lái)呈遞去同步函數(shù),并在生成偽隨機(jī)數(shù)據(jù)序列期間修 改所述預(yù)定參數(shù)的值。
因此,不知道初始化參數(shù)的值或其被修改的時(shí)間就使得更加難以預(yù)測(cè) 所述偽隨機(jī)數(shù)據(jù)序列。
本發(fā)明還提供一種加密/解密設(shè)備,包括異或邏輯門(mén)和具有上述特征 的生成器。
所述設(shè)備提供了 一種簡(jiǎn)單的方式來(lái)將所述偽隨機(jī)數(shù)據(jù)序列的每一比特 與將通過(guò)模2加以形成極大線性復(fù)雜度的已加密數(shù)據(jù)序列的消息的數(shù)據(jù)序 列的對(duì)應(yīng)比特進(jìn)行組合。
本發(fā)明還提供一種安全系統(tǒng),包括經(jīng)由網(wǎng)絡(luò)所連接的至少兩個(gè)實(shí)體, 其中,所述至少兩個(gè)實(shí)體中的每一個(gè)包括具有上述特征的加密/解密設(shè)備。
因此,所述安全系統(tǒng)包括易于實(shí)現(xiàn)同時(shí)具有作為固有復(fù)雜度的機(jī)制的 結(jié)構(gòu)。
當(dāng)閱讀以下通過(guò)非限定示例所給出的描述并參照附圖時(shí),本發(fā)明的其
它特點(diǎn)和優(yōu)點(diǎn)會(huì)變得明顯,其中
圖1是用于生成偽隨機(jī)數(shù)據(jù)序列的本發(fā)明的方法的高度示意性示圖; 圖2A和圖2B概略示出將初始數(shù)據(jù)流分解為根據(jù)本發(fā)明所編碼的字的
序列的有限自動(dòng)機(jī)的示意性示例;
圖3A和圖3B示出本發(fā)明的偽隨機(jī)數(shù)據(jù)序列生成器的示意性示例; 圖4示出包括圖3A和圖3B的生成器的安全系統(tǒng);以及 圖5是現(xiàn)有技術(shù)生成器的示意性示圖。
M實(shí)施方式
圖1示出根據(jù)本發(fā)明的方法從初始數(shù)據(jù)流3生成偽隨機(jī)數(shù)據(jù)序列1的 示意性示例。
術(shù)語(yǔ)"字,,(或圖案)以下指的是來(lái)自字母表-例如僅包括0和1的
二進(jìn)制集合的字母表-的任意有限的字母的系列。每個(gè)字于是具有給定的
長(zhǎng)度。例如,1、 11、 000、 1010、 00111是分別具有長(zhǎng)度1、 2、 3、 4、 5 的字。此外,"空"字s是零長(zhǎng)度的字(即字不包含任意字母)。
初始數(shù)據(jù)流3與高"線性復(fù)雜度"的數(shù)據(jù)序列對(duì)應(yīng)。例如,可以由初 始產(chǎn)生裝置23 (見(jiàn)圖3A)來(lái)生成初始數(shù)據(jù)流3,初始產(chǎn)生裝置23包括最 大周期線性反饋移位寄存器。
事實(shí)上,可以由無(wú)限數(shù)量的線性反饋移位寄存器來(lái)生成任意周期系列。 這些寄存器中的一個(gè)比所有其它寄存器短。這個(gè)最短寄存器的長(zhǎng)度4皮稱為 流的"線性復(fù)雜度,,。如果初始數(shù)據(jù)序列的線性復(fù)雜度是L,則可以使用 Berlekamp-Massey算法來(lái)從長(zhǎng)度2L的初始數(shù)據(jù)序列的子系列來(lái)重構(gòu)寄存 器的初始狀態(tài)(并且事實(shí)上是所有序列)。
因此,為了生成安全偽隨機(jī)數(shù)據(jù)序列,推薦初始數(shù)據(jù)流3具有較高線 性復(fù)雜度。事實(shí)上,當(dāng)前,如果初始數(shù)據(jù)流的線性復(fù)雜度L小于160,則 最佳已知算法可以通過(guò)少于28°次的運(yùn)算來(lái)重建初始數(shù)據(jù)流3。因此,有利 的是,得到具有線性復(fù)雜度L大于或等于160的初始數(shù)據(jù)流3。
根據(jù)本發(fā)明,定義碼字的集合5a,其形成"完全前綴碼"5。
通用術(shù)語(yǔ)"碼"指的是特定字母表上的字的任意集合。于是將所述碼 的特性看作與正在討論的字母表有關(guān)。
假設(shè)A是任意固定字母表。考慮以來(lái)自A的字母所構(gòu)成的字,并假設(shè) C指定A上的碼。于是
1) 如果存在y, w=xy,則字x被稱為字w的"前綴",該記法表示x 與y連結(jié)(concatenation)。如果在碼C中沒(méi)有作為碼的另一字的前綴的 碼的字,則C被稱為"前綴碼";
2) 如果字w與C的字連結(jié),換句話說(shuō),如果其可以用C的字Wl、
W2、……、Wn寫(xiě)為W-WiW2…Wn,則字W被稱為由C來(lái)編碼;于是,對(duì)于
任意字w,如果存在字w,從而ww,由C來(lái)編碼,則C纟皮稱為"完全的"。 可以看出,對(duì)于任一字w,當(dāng)且僅當(dāng)存在字w,以及屬于C的碼字u使得u 是字ww,的前綴時(shí),也就是如果存在字w,、屬于C的碼字u、以及字u,,
使得ww,等于uu,,則碼C是完全的。
如果C既是前綴碼又是完全碼,則C被稱為完全前綴碼。 更進(jìn)一步地,定義由E所指定的輸出字7a的集合7,從而E被包含在
(O,lf和(s }的并集中,并且通過(guò)將來(lái)自輸出字的集合7的輸出字7a與完
全前綴碼5的任意碼字5a關(guān)聯(lián)來(lái)定義去同步函數(shù)f。
例如,輸出字的集合7是集合E={s ,0,1}或五={0,1}或E={s }和
{,0,1嚴(yán)的并集(其中,k>l,即多個(gè)字節(jié))。具體地說(shuō),對(duì)于輸出字的給
定長(zhǎng)度,為了平衡輸出字的集合中的"0"和"1"的數(shù)量,有利的是,選
擇輸出字的集合7,其包括對(duì)于表示為s的任一輸出字7a的表示為f的補(bǔ)
碼輸出字7a。
此外,去同步函數(shù)f;l^本運(yùn)算(例如逐比特模2加),可以以相對(duì) 低的成本來(lái)實(shí)現(xiàn)其估算。
因此,本發(fā)明的方法將完全前綴碼C5、輸出字7的集合E以及去同 步函數(shù)f作為輸入。
更進(jìn)一步地,根據(jù)本發(fā)明的方法包括分解運(yùn)算IO,用于將初始數(shù)據(jù) 流3分解為根據(jù)所述完全前綴碼5所編碼的字的序列11。事實(shí)上,完全前 綴碼5的使用提供了初始數(shù)據(jù)流3的獨(dú)特分解。
可以由有限自動(dòng)機(jī)來(lái)有利地識(shí)別完全前綴碼5,被給定字w,所述有 限自動(dòng)機(jī)確定字w是否處于完全前綴碼5中。
事實(shí)上,圖2A和圖2B示意性示出有限自動(dòng)^^作13a和13b的兩個(gè)示 例,其用于將初始數(shù)據(jù)流3分解為已編碼的字的序列11。有限自動(dòng)機(jī)包括 由路徑或箭頭17所連接的節(jié)點(diǎn)或狀態(tài)15的集合,從而可以由以I表示的 初始狀態(tài)15和以F表示的最終狀態(tài)15之間的路徑17的集合來(lái)定義完全 前綴碼5的每一字。因此,當(dāng)讀取比特時(shí),取得與所述比特的值對(duì)應(yīng)的路 徑17,并且當(dāng)?shù)竭_(dá)最終狀態(tài)F時(shí),已知的是,對(duì)完全前綴碼5的字的讀取 恰好已經(jīng)完成,并且返回到初始狀態(tài)I使得能夠讀取下一字。
圖2A示例識(shí)別由€={10*1,01*0}所定義的完全前綴碼5的碼字,其中,
10*1 (分別地01*0)指定形式10kl (分別地OlkO)的字的集合,其中,k 是整數(shù)。應(yīng)注意,1()Gl與字ll對(duì)應(yīng),而ofo與字oo對(duì)應(yīng)。因此,這種有 限自動(dòng)機(jī)13a將初始數(shù)據(jù)流3分解為已編碼的字11的系列,其包括形式為 10...01、 01...10、 ll和OO的字。
此外,圖2B示例識(shí)別具有由碼C={10h+1,01h+1,10kl,01k0,k< h)所定義 的完全前綴碼5的上限h所限制的長(zhǎng)度的碼字。
此外,根據(jù)本發(fā)明的方法包括關(guān)聯(lián)運(yùn)算20,其用于根據(jù)去同步函數(shù)f 將已編碼的字的序列11的字與對(duì)應(yīng)輸出字7a關(guān)聯(lián),以形成偽隨機(jī)數(shù)據(jù)序 列1。
因此,本發(fā)明的機(jī)制的應(yīng)用關(guān)注將輸入系列(即初始數(shù)據(jù)流3)分解 為完全前綴碼5的字的系列11。每當(dāng)識(shí)別完全前綴碼5的字,該字的圖像 通過(guò)去同步函數(shù)f產(chǎn)生輸出字。重復(fù)這種機(jī)制,直到達(dá)到初始數(shù)據(jù)流3的 輸入系列的最后比特,或滿足由用戶所確定的停止條件。
注意,在密碼學(xué)應(yīng)用的環(huán)境中,所述機(jī)制(碼5,函數(shù)f)的一些數(shù)據(jù) 或全部數(shù)據(jù)可以有利地保留密碼學(xué)系統(tǒng)的秘密數(shù)據(jù)。
去同步函數(shù)f有利地是取決于在生成偽隨機(jī)數(shù)據(jù)序列1期間可以修改 的值的預(yù)定^lt的參數(shù)化函數(shù)。這種M化函數(shù)于是具有形式 其將來(lái)自輸出字7的集合E的元素與長(zhǎng)度m的任意二進(jìn)制矢量v (即(0,1廣的任意元素v)以及完全前綴碼C5的任意字x關(guān)聯(lián)。
本發(fā)明的方法于是取得初始數(shù)據(jù)流3和二進(jìn)制矢量v的輸入??梢杂?于將(非線性)運(yùn)算應(yīng)用于初始化矢量而導(dǎo)致所述矢量v的選擇。當(dāng)然, 矢量v可以取得預(yù)定值(例如v是空矢量)。矢量v可以有利地在處理期 間被修改,并且因此取決于偽隨機(jī)數(shù)據(jù)序列1的生成。
因此,這個(gè)參數(shù)增強(qiáng)了初始數(shù)據(jù)流3和偽隨機(jī)數(shù)據(jù)序列l(wèi)之間的關(guān)系 的復(fù)雜度,使得更難以預(yù)測(cè)偽隨機(jī)數(shù)據(jù)序列1。
此外,為了確保不取決于初始數(shù)據(jù)流3的特定特性的最小速率,有利 的是,對(duì)于完全前綴碼5的碼字,具有由上限h所限制的長(zhǎng)度,并且從而 如果任意輸出字81具有與另一輸出字S2相同的長(zhǎng)度,則按照輸出字81的去
同步函數(shù)f的前項(xiàng)的數(shù)量與按照輸出字S2的去同步函數(shù)f的前項(xiàng)的數(shù)量相 同。
換句話說(shuō),完全前綴碼5具有以下有利特性
存在整數(shù)h,使得完全前綴碼C5的所有字具有小于或等于h的長(zhǎng) 度;以及
對(duì)于任意整數(shù)k,對(duì)于來(lái)自集合E\{ s }的任意對(duì)(Sl,s2),集合fv"{Sl} 和f/{s2} +的長(zhǎng)度k的元素的數(shù)量分別相等。
此外,這樣確保了所生成的輸出偽隨機(jī)數(shù)據(jù)序列1的Hamming重量 (即值"1"的比特的數(shù)量)不提供關(guān)于初始數(shù)據(jù)序列3的任意信息。換句 話說(shuō),輸出偽隨機(jī)數(shù)據(jù)序列1中具有值"0"的比特和具有值'T,的比特 包含關(guān)于初始數(shù)據(jù)序列3的相同數(shù)量的信息。
完全前綴碼5的字有利地具有受下限m所限制的長(zhǎng)度,并且有利的是 存在所述完全前綴碼的字的較大長(zhǎng)度l,從而對(duì)于小于或等于所述較大長(zhǎng)度 l的任意長(zhǎng)度k,完全前綴碼包含長(zhǎng)度k的2"^個(gè)碼。換句話說(shuō),關(guān)聯(lián)函數(shù) fv滿足以下特性存在整數(shù)m,從而所考慮的碼C的所有字具有大于或等 于m的長(zhǎng)度,并且,此外,存在整數(shù)l〉m,從而對(duì)于大于或等于m并且 小于或等于1的任意整數(shù)k,碼C\{fv"( s )}確切地包含長(zhǎng)度k的21"-1個(gè)字。
因此,在初始數(shù)據(jù)流3的均勻分布的情況下,平均速率具有級(jí)(order) l/(m+l)。具體地說(shuō),對(duì)于偽隨機(jī)數(shù)據(jù)序列的給定比特,并且無(wú)論給定比特 是什么(0或1),生成所述比特的碼字具有長(zhǎng)度k的概率都與k成反比。 概率分布的這種選擇關(guān)于偽隨機(jī)數(shù)據(jù)序列1必須滿足的統(tǒng)計(jì)特性是最佳的
在本發(fā)明的第一特定實(shí)施例中,考慮由集合C產(chǎn)(0in();0《ii《h-2〉U (10ni;(Kn《h-2)U(0lh-"U卩0h,(其中,U標(biāo)志并集運(yùn)算符),h是固 定整數(shù)(h〉2),并且由二進(jìn)制集合E產(chǎn)(0,1)的字來(lái)定義輸出字的集合, 例如。
此外,定義矢量u= (u。,…,Uh^),其分量屬于集合={0,1}。按以下方 式來(lái)定義參數(shù)化函數(shù)fu:
<formula>formula see original document page 14</formula>;
fu (10nl) =un l,對(duì)于(K"h-2 ( 表示模2加);
fu (O,1) -u" ■fu (10"),十l。
在該實(shí)施例中,在知道字x的第一比特以及值n (對(duì)于形式"5的字) 或固定值h-l (對(duì)于形式""的字)的情況下,對(duì)于碼d的任意字x,逐 比特讀取初始數(shù)據(jù)流3,并計(jì)算值fu (x)。
為了描述所述第一實(shí)施例的機(jī)制,使/:(M)-y;(^"6)4④ ,其中,o
<n《h-2,并使/"'(W-D^/"(""')"④"一,。此外,將標(biāo)志初始化為值o,并 僅在識(shí)別碼d的字之后取值l。在每一字識(shí)別之后重置標(biāo)記的值。對(duì)于每 一字識(shí)別,當(dāng)前字的第一比特被臨時(shí)存儲(chǔ)在變量c中,并且以變量"length" 來(lái)更新字。輸出比特的值被存儲(chǔ)在變量s中。
因此,所述第一實(shí)施例包括以下機(jī)制的重復(fù)
flag —0; length —0
■讀取初始數(shù)據(jù)流3的系列S中的下一比特b .c — b 執(zhí)行
讀取系列S中的下一比特b :i(口果b=c,貝'J flag —1,否貝'J length=length+l 直到(flag=0) 并且 length<h-l .輸出c十uiength. 〃c@ulength=fu'(c,length)
該實(shí)施例相對(duì)廉價(jià)地實(shí)現(xiàn),并且可以有利地用于以硬件中的電子電路 來(lái)實(shí)現(xiàn)加密。此外,平均速率,即比特輸出的數(shù)量(偽隨機(jī)數(shù)據(jù)序列1的
比特?cái)?shù)量)和輸入比特的數(shù)量(初始數(shù)據(jù)流3的比特?cái)?shù)量)之間的比率, 嚴(yán)格大于1/3。此夕卜,長(zhǎng)度h的輸入上的比特輸出的所確保的最小數(shù)量是1。
在本發(fā)明第二特定實(shí)施例中,由以下面形式中的兩個(gè)字節(jié)所構(gòu)成的碼 字的集合C2來(lái)定義完全前綴碼5, C2-(w!W2);Wj 6 {0,1}8, 1=1,2}并且由來(lái) 自集合£2={0,1}8 U { s }的字來(lái)定義輸出字的集合。
此外,定義了矢量v=(v ( ,..., v8,i;9),其分量屬于集合{0,1},前面八
個(gè)分量v e,..., v 8的值是不變量,最后的分量i;,的值是變量。
此外,參數(shù)化函數(shù)fv:C2 — { s } U {0,1}8與形式wlW2的任意字關(guān)聯(lián) .如果滿足以下條件之一,則字w^
4〈wt(Wi w2) < 8并且v wt(wl w2)=b , wt是Hamming重量,b 是{0,1}的預(yù)定元素;
0 < wt(wi w2)<4并且v wt(wi①w2) # b;
wt(wt w2)=4,=1 , 4<wt(wi①w2十e) < 8并且v 4=b , e是來(lái) 自{0,1}8的奇數(shù)Hamming重量字;
wt(wi w2)=4, Pg=l, 0 < wt(wi十W2十e)〈4并且v 一b; .如果滿足以下條件之一,則字W2:
.4〈wt(Wi十w2) < 8并且v wt(wi十w2) # b; 0《wt(wi w2)<4并且v wt(wi w2產(chǎn)b; wt(wi@w2)=4, i 9=l, 4ovt(wi④W2十e) <8并且v 一b; wt(wi @ w2)=4, f9 =1 , 0 < wt(Wi十w2十e)<4并且v 4=b; 以及 .如果Wt(Wi①W2)-4并且^=0,則空字s 。
為了描述所述第二實(shí)施例的機(jī)制,設(shè)置整數(shù)h,從而>1,并且標(biāo)記被 用值0初始化,并僅在碼C2的字的識(shí)別之后取值1。對(duì)于每一字識(shí)別,所 讀取的最后比特被臨時(shí)存儲(chǔ)在變量c中,并且以變量"length"來(lái)更新字。 輸出比特的值被存儲(chǔ)在變量s中。兩個(gè)字節(jié)w!和w2的連結(jié)祐束示為Wl|w2。
因此,所述第二實(shí)施例包括以下機(jī)制的重復(fù)
flag —0; length —0 卄0
.讀取系列S中的下一字節(jié)oct c *~ oct -執(zhí)行
讀取系列S中的下一比特oct s —fv(c/oct)
如果s啡s 貝'J flag —1,否則"c —oct
length=length+l
如果lengtii=h-3,則^<~l 直到(flag=0) -輸出s。
該第二實(shí)施例可以有利地用于軟件類型的加密。此外,平均速率(即
字節(jié)輸出的數(shù)量和輸字節(jié)的數(shù)量之間的比率)嚴(yán)格大于1/3,并且長(zhǎng)度h 字節(jié)的輸入上的字節(jié)輸出的所確保的最小數(shù)量是l。
圖3A非常概略地示出用于生成偽隨機(jī)數(shù)據(jù)序列1的生成器21的示例。 生成器21包括初始產(chǎn)生裝置23,其包括至少一個(gè)最大周期線性反饋 移位寄存器,用于生成初始數(shù)據(jù)流3。已知的是,在最大周期T的系列中, 長(zhǎng)度k的所有字或圖案(其中,T=2k-1)至少出現(xiàn)一次。線性反饋移位寄 存器是配備了由稱為反饋多項(xiàng)式所表示的線性組合的有限長(zhǎng)度的比特表。 在每一移位上,具有最高索引(index)的比特被移出,所有其它比特被移 位一個(gè)索引,并且具有最低索引的比特在移位之前取得所述線性組合的值。 例如,反饋多項(xiàng)式可以有利地是與產(chǎn)生最大周期系列的線性反饋移位 寄存器對(duì)應(yīng)的本原多項(xiàng)式,或形式為Q= (x2+l) P的多項(xiàng)式,其中,P是 本原多項(xiàng)式。
此外,生成器21包括存儲(chǔ)器25和處理單元27。存儲(chǔ)器25存儲(chǔ)形成 完全前綴碼5的碼字的集合以及輸出字7的集合。
處理單元27讀取初始數(shù)據(jù)流3,并將其分解為根據(jù)完全前綴碼5而編 碼的字11的序列,并根據(jù)去同步函數(shù)f將字11的所述已編碼系列的字與 對(duì)應(yīng)輸出字關(guān)聯(lián),以生成偽隨機(jī)數(shù)據(jù)序列。去同步函數(shù)f將來(lái)自輸出字7 的集合的輸出字與完全前綴碼5的任意碼字關(guān)聯(lián)。
注意,處理單元27可以同時(shí)進(jìn)行分解運(yùn)算10和關(guān)聯(lián)運(yùn)算20。因此, 處理單元27逐比特讀取初始數(shù)據(jù)流3 ,并且每當(dāng)找到完全前綴碼5的字, 就由去同步函數(shù)9來(lái)計(jì)算所述字的圖像。
所述生成器因此簡(jiǎn)單地實(shí)現(xiàn),并且包括分解裝置(存儲(chǔ)器25和處理
單元27),其按獨(dú)特方式分解輸入初始數(shù)據(jù)流3;以及去同步裝置(存儲(chǔ) 器25和處理單元27),其生成具有最小速率的偽隨機(jī)數(shù)據(jù)序列,所述最 小速率不取決于初始數(shù)據(jù)流3的特定特性。
圖3B示出用于生成偽隨機(jī)數(shù)據(jù)序列1的生成器21的另一示例;其與 來(lái)自圖3A的生成器不同之處在于進(jìn)一步包括^lt設(shè)置裝置29。參數(shù)設(shè) 置裝置29取決于預(yù)定參數(shù)制成去同步函數(shù)f,并在偽隨機(jī)數(shù)據(jù)序列1的生 成期間修改所述參數(shù)的值。
圖4示出安全系統(tǒng)30,其包括經(jīng)由互聯(lián)網(wǎng)、GSM、 UMTS、 WiFi、超 寬帶等類型通信網(wǎng)絡(luò)35而互連的至少兩個(gè)實(shí)體。
該圖示出第一實(shí)體33a,其經(jīng)由通信網(wǎng)絡(luò)35連接到第二實(shí)體33b。
第一實(shí)體33a (分別地,第二實(shí)體33b)包括第一終端37a (分別地, 第二終端37b )、第一加密/解密設(shè)備39a(分別地,第二加密/解密設(shè)備39b )、 以及第一調(diào)制解調(diào)器41a (分別地,第二調(diào)制解調(diào)器41b),調(diào)制解調(diào)器 41a和41b是能夠與通信網(wǎng)絡(luò)35進(jìn)行接口的任意設(shè)備。
第一加密/解密設(shè)備39a和第二加密/解密設(shè)備39b中的每一個(gè)包括 生成器21,其用于生成上述偽隨機(jī)數(shù)據(jù)序列1;以及異或邏輯門(mén)43。
每一加密/解密設(shè)備39a、 39b通過(guò)逐比特對(duì)消息進(jìn)行加密或解密來(lái)對(duì) 流加密或流解密起作用。
根據(jù)該示例,第一加密/解密設(shè)備39a實(shí)現(xiàn)加密運(yùn)算。因此,由異或邏 輯門(mén)43來(lái)組合被稱為加密系列的偽隨機(jī)數(shù)據(jù)序列1,其中,在消息45的 對(duì)應(yīng)位置處的每一比特由第一終端37a以明文來(lái)發(fā)送;這樣產(chǎn)生已加密文 本47,第一調(diào)制解調(diào)器41a于是將已加密文本47發(fā)送給第二實(shí)體33b。因 此,加密運(yùn)算通過(guò)逐比特將加密系列1加到消息45的明文的文本來(lái)獲得已 加密文本47。
第二加密/解密設(shè)備39b通過(guò)將相同的加密系列1逐比特加到由第 一 實(shí) 體33a所發(fā)送的已加密文本47來(lái)實(shí)現(xiàn)解密運(yùn)算。
權(quán)利要求
1.一種從初始數(shù)據(jù)流(3)生成偽隨機(jī)數(shù)據(jù)序列(1)的方法,其特征在于包括以下步驟·定義形成完全前綴碼(5)的碼字的集合;·定義輸出字(7)的集合;·定義去同步函數(shù)(f),所述去同步函數(shù)將來(lái)自所述輸出字(7)的集合的輸出字與所述完全前綴碼(5)中的任意碼字關(guān)聯(lián);·將初始數(shù)據(jù)流(3)分解為根據(jù)所述完全前綴碼(5)編碼的字(11)的系列;·根據(jù)所述去同步函數(shù)(f)將所述已編碼的字(11)的系列中的字與對(duì)應(yīng)輸出字關(guān)聯(lián),以形成所述偽隨機(jī)數(shù)據(jù)序列(1)。
2. 如權(quán)利要求1所述的方法,其特征在于,所述去同步函數(shù)(f)是 取決于預(yù)定參數(shù)的參數(shù)化函數(shù),可以在生成所述偽隨機(jī)數(shù)據(jù)序列(1)期間 修改所述預(yù)定參數(shù)的值。
3. 如權(quán)利要求所述的方法l,其特征在于,所述輸出字(7)的集合 包括每一輸出字的補(bǔ)碼輸出字。
4. 如權(quán)利要求1至3中的任意一項(xiàng)所述的方法,其特征在于,所述 完全前綴碼(5)的碼字具有受上限h限制的長(zhǎng)度,并且其特征在于,如果 任意輸出字x具有與另一個(gè)輸出字y相同的長(zhǎng)度,則按照輸出字x的所述 函數(shù)的前項(xiàng)的數(shù)量與按照輸出字y的所述函數(shù)的前項(xiàng)的數(shù)量相同。
5. 如權(quán)利要求4所述的方法,其特征在于,所述完全前綴碼(5) 的字具有受下限m限制的長(zhǎng)度,并且其特征在于,存在所述完全前綴碼(5) 的字的上限長(zhǎng)度l,從而對(duì)于小于或等于上限長(zhǎng)度l的任意長(zhǎng)度k,所述完 全前綴碼包含長(zhǎng)度k的2m-1個(gè)字。
6. 如權(quán)利要求4或5所述的方法,其特征在于 由碼字的集合d來(lái)定義完全前綴碼(5),所述碼字具有以下形式,其中,h>2:<formula>see original document page 3</formula>由來(lái)自二進(jìn)制集合E產(chǎn)(0,1》的字來(lái)定義輸出字(7)的集合; .參數(shù)化去同步函數(shù)(f)的預(yù)定參數(shù)u是矢量uKuo,…,Uh-0,其分量 屬于集合{0,1};以及 按以下方式來(lái)定義參數(shù)化去同步函數(shù)fu:<formula>see original document page 3</formula>
7.如權(quán)利要求4所述的方法,其特征在于,,由以下述形式的兩個(gè)字節(jié)構(gòu)成的碼字的集合C2來(lái)定義完全前綴碼 (5 ) : <formula>see original document page 3</formula>.由來(lái)自集合£2={0,1} {5}的字定義輸出字(7)的集合; -參數(shù)化去同步函數(shù)(f)的預(yù)定參數(shù)v是矢量v=(v0,...,v8,i79),其分量屬于集合{0,1},前面八個(gè)分量Vo,…,V8的值是不變量,最后的分量i^的值是變量;以及.參數(shù)化去同步函數(shù)f"C2 —{s}U{0,l}8與形式為wlW2的任意字關(guān)聯(lián).如果滿足以下條件之一,則字wr 4〈wt(Wi^W2)《8并且Vwt(wi十w2尸b, wt是Hamming重量,b 是{0,1}的預(yù)定元素; 0 < wt(Wi十w2)<4并且v wt(wi④W2) # b; wt(wi w2)=4, 79=1, 4<wt(wi w2 e)<8并且v4=b, e是來(lái)自 {0,1}8的奇數(shù)Hamming重量字; wt(Wi十W2)-4, 79=1, (K wt(wi@w2 e)<4并且v 一b; .如果滿足以下條件之一,則字W2: 4<wt(wi十W2) < 8并且v wt(wi w2) # b; 0 < Wt(Wi @ w2)<4并且v wt(wi十w2)=b; wt(wj十W2)-4, V9=1, 4<wt(wi十w2十e) < 8并且v4=/b; wt(wi十w2)=4 , V9 =1 , 0≤wt(Wi十w2十e)<4并且v 4=b; 以及 如果wt(Wi十w2)=4并且V9=0 ,則空字ε。
8. —種生成器,用于從初始數(shù)據(jù)流(3 )生成偽隨機(jī)數(shù)據(jù)序列(1), 其特征在于包括存儲(chǔ)器(25)和處理單元(27),所述存儲(chǔ)器(25)存 儲(chǔ)形成完全前綴碼(5)的碼字的集合和輸出字(7)的集合,所述處理單元(27)能夠讀取所述初始數(shù)據(jù)流(3),并將其分解為根據(jù)所述完全前綴 碼(5)編碼的字的系列(11),并根據(jù)去同步函數(shù)(f)將所述已編碼的字(11 )的系列中的字與對(duì)應(yīng)輸出字關(guān)聯(lián),以形成所述偽隨機(jī)數(shù)據(jù)序列(1 )。
9. 如權(quán)利要求8所述的生成器,其特征在于進(jìn)一步包括參數(shù)化裝置(29),用于取決于預(yù)定參數(shù)來(lái)呈遞所述去同步函數(shù)(9),并在生成偽 隨機(jī)數(shù)據(jù)序列(1)期間修改所述預(yù)定參數(shù)的值。
10. —種加密/解密設(shè)備,包括異或邏輯門(mén)(43),其特征在于,進(jìn)一步包括根據(jù)權(quán)利要求9或權(quán)利要求10所述的生成器(21)。
11. 一種安全系統(tǒng),包括經(jīng)由網(wǎng)絡(luò)(35)連接的至少兩個(gè)實(shí)體(37a, 37b),其特征在于,所述至少兩個(gè)實(shí)體中的每一個(gè)包括根據(jù)權(quán)利要求 10所述的加密/解密設(shè)備(39a, 39b)。
全文摘要
本發(fā)明涉及一種從初始數(shù)據(jù)流(3)生成偽隨機(jī)數(shù)據(jù)序列(1)的設(shè)備和方法,所述方法特征在于包括以下步驟定義形成完全前綴碼(5)的碼字的集合;定義輸出字(7)的集合;定義去同步函數(shù)(f),所述去同步函數(shù)將來(lái)自所述輸出字(7)的集合的輸出字與所述完全前綴碼(5)中的任意碼字關(guān)聯(lián);將初始數(shù)據(jù)流(3)分解為根據(jù)所述完全前綴碼(5)編碼的字的系列(11);依照所述去同步函數(shù)(f)將所述已編碼的字的系列(11)中的字與對(duì)應(yīng)輸出字關(guān)聯(lián),以形成所述偽隨機(jī)數(shù)據(jù)序列(1)。
文檔編號(hào)H04L9/22GK101208902SQ200680023071
公開(kāi)日2008年6月25日 申請(qǐng)日期2006年5月23日 優(yōu)先權(quán)日2005年5月26日
發(fā)明者A·古熱, C·貝爾拜恩, H·賽伯特 申請(qǐng)人:法國(guó)電信公司