專利名稱:偽隨機數(shù)據(jù)序列的生成的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及編碼/解碼領(lǐng)域,尤其涉及生成偽隨機數(shù)據(jù)序列的系統(tǒng)和方法。
本發(fā)明具有非常有優(yōu)勢的應(yīng)用,因為它可以產(chǎn)生能進行對稱加密的比特序列,其中加密和解密都使用同一密鑰。它適用于加密操作和解密操作相同的標準流加密方法。對稱加密常用于所有類型的通信中,諸如移動通信(GSM、UMTS等)、因特網(wǎng)(SSL等)、智能卡(銀行卡)等。
背景技術(shù):
最普遍的流加密方法利用線性反饋移位寄存器生成與要加密的消息無關(guān)的加密序列,以節(jié)省硬件。
線性反饋移位寄存器的主要缺陷是它們的線性。實際上,由于知道寄存器的若干輸出比特等于寄存器長度以及與寄存器相關(guān)聯(lián)的反饋多項式,因此能確定輸出比特及寄存器的全部后續(xù)狀態(tài)。
因此,要“打破”線性反饋移位寄存器的線性,一般做法就是合并多個寄存器的輸出并且也有可能合并它們的內(nèi)部狀態(tài),例如利用非線性布爾函數(shù)。
圖7示出了這種發(fā)生器100,也稱為“縮減發(fā)生裝置(shrinkinggenerator)”,其在歐洲專利申請EP0619659中有所描述,包括第一線性反饋移位寄存器111a,第二線性反饋移位寄存器111b,和用于選擇發(fā)生器100的輸出的裝置112。
因此,在每次移位,兩個寄存器111a和111b同時移位;如果第一寄存器111a的輸出為1,則設(shè)備100的輸出等于第二寄存器111b的輸出;否則沒有輸出。
縮減發(fā)生器不僅合并兩個線性反饋寄存器的輸出,而且更為常見的是,也合并任何比特序列對。縮減發(fā)生器用在由一個線性反饋寄存器控制另外一個的流加密方法中。這一思想首先改變在所用的不同寄存器之間的移位數(shù)目,其次是在兩個連續(xù)比特之間的移位數(shù)目,從而打破該寄存器的線性。
稱作 “自縮發(fā)生器(self-shrinking generator)”的一種縮減發(fā)生器變型是基于相同的原理但只用一個寄存器。寄存器的輸出比特是被兩個兩個地讀取的;第一比特控制第二比特的輸出,以便在第一比特為1的情況下系統(tǒng)的輸出是第二比特;否則沒有輸出。
僅使用線性反饋寄存器有很多缺陷。主要缺陷是源自設(shè)備線性的弱點。如果利用布爾函數(shù)合并寄存器,則也存在不利之處。在硬件級別,這些缺點是源于實施這一函數(shù)的復(fù)雜性。另外,這個函數(shù)是固定的,并且很有可能受到攻擊。
此外,統(tǒng)計方法突顯了縮減發(fā)生器和其他時鐘控制的加密方法的某些弱點。尤其是在縮減發(fā)生器中,受兩個寄存器影響的、在兩個輸出比特之間的移位數(shù)目對于兩個寄存器改變相同的量。
最后,縮減發(fā)生器的最后一個缺陷是輸出比特數(shù)目與計算出的比特數(shù)目之比較低,平均只有1/4。這一比率對于自縮發(fā)生器是相同的,該自縮發(fā)生器具有縮減發(fā)生器的大部分弱點。
發(fā)明內(nèi)容
本發(fā)明的目的是克服上述缺陷并簡化具有高質(zhì)量的偽隨機數(shù)據(jù)序列的生成。
本發(fā)明的另一目的是提供一種使輸出比特數(shù)目與計算出的比特數(shù)目之比大于1/4的方法和發(fā)生器。
本發(fā)明進一步的目的是提供一種非常有效的低成本發(fā)生器。
上述目的可以通過一種生成偽隨機數(shù)據(jù)序列的方法來實現(xiàn),其中所述偽隨機數(shù)據(jù)序列是通過一種在N個比特的初始數(shù)據(jù)序列中對搜索模板(search pattern)進行搜索的過程而生成的。
因此,根據(jù)本發(fā)明的方法涉及一種基于對實現(xiàn)一個或多個比特流的非線性合并以獲得新比特流的模板的檢測來生成偽隨機數(shù)據(jù)的非線性方法。
本方法在易于實現(xiàn)的同時,為達到產(chǎn)生高質(zhì)量的偽隨機數(shù)據(jù)序列的目的也具有其固有的復(fù)雜性。
搜索過程包括以下步驟-在所述初始數(shù)據(jù)序列中檢測r個比特的特定搜索模板,它是一組搜索模板中的一個;-通過取決于在前步驟的進展的操作,確定k個比特的輸出模板;以及-繼續(xù)重復(fù)前述步驟以從一系列輸出模板中形成偽隨機數(shù)據(jù)序列。
檢測所述搜索模板的步驟和確定所述輸出模板的步驟,是通過一系列操作來完成的,包括用于定義移動模式的第一組規(guī)則,所述移動模式用于在所述初始數(shù)據(jù)序列上移動窗口以檢測所述搜索模板,所述窗口在所述初始數(shù)據(jù)序列上具有特定的初始位置以及特定的比特長度。
所述一系列操作還包括第二組規(guī)則,用來確定停止在所述初始數(shù)據(jù)序列上移動所述窗口的條件。
所述第二組規(guī)則中的一條規(guī)則根據(jù)所述窗口的移動和/或內(nèi)容,來管理所述搜索模板組的更新和/或所述輸出模板的更新。
所述一系列操作可以重復(fù)進行直到滿足預(yù)定的條件。
所述一系列操作有利地在每次執(zhí)行之后被修改。
根據(jù)本發(fā)明的特征,所述一系列操作在每次執(zhí)行之后保持不變,并且在所述初始數(shù)據(jù)序列上逐個比特地將窗口連續(xù)移動1個比特,以檢測1比特的搜索模板并確定1比特的輸出模板。
在本發(fā)明的第一實現(xiàn)中,所述一系列操作包括以下步驟-將來自窗口的比特置于搜索模板中;
-將窗口從當前比特到下一比特移動一個比特;-如果窗口內(nèi)容與搜索模板內(nèi)容相等,則根據(jù)第一法則更新輸出模板;-如果窗口內(nèi)容與搜索模板的比特不相等,則根據(jù)第二法則更新輸出模板;-如果窗口內(nèi)容與搜索模板的比特不相等,則逐個比特地向下一比特移動該窗口;-將窗口從當前比特到下一比特移動一個比特;以及-輸出所述輸出模板。
在第一實現(xiàn)中,第一法則將特定值b指派給輸出模板,而第二法則對特定值b和值1進行模2相加,并將該加法運算的結(jié)果賦予輸出模板。
在第二實現(xiàn)中,第一法則對特定值b和搜索模板的值E進行模2相加,并將該加法運算的結(jié)果賦予輸出模板,而第二法則對特定值b、搜索模板的值E和值1進行模2相加,并將該加法運算的結(jié)果賦予輸出模板。
在第三實現(xiàn)中,所述一系列操作包括以下步驟-將來自第一窗口的比特置于搜索模板中;-將該第一窗口從當前比特到下一比特移動一個比特;-如果所述第一窗口的內(nèi)容與搜索模板的值相等,則通過將對第一特定值b1和搜索模板的值E進行模2相加所得出的結(jié)果賦予輸出模板來更新該輸出模板;-如果所述第一窗口內(nèi)容與搜索模板的值E不相等,則通過將對第一特定值b1、搜索模板的值E和值1進行模2相加所得出的結(jié)果賦予輸出模板來更新該輸出模板;-如果所述第一窗口的內(nèi)容與搜索模板的值E不相等,則逐個比特地向下一比特移動該第一窗口;-將所述第一窗口從當前比特到下一比特移動一個比特;-用來自第二窗口的比特來替代搜索模板的值;-將所述第二窗口從當前比特到下一比特移動一個比特;
-如果所述第二窗口的內(nèi)容與搜索模板的值相等,則通過將對第二特定值b2、輸出模板的當前值s和搜索模板的值E進行模2相加所得出的結(jié)果賦予輸出模板來更新該輸出模板;-如果所述第二窗口的內(nèi)容與搜索模板的值不相等,則通過將對輸出模板的當前值s、第二特定值b2、搜索模板的值E和值1進行模2相加所得出的結(jié)果賦予輸出模板來更新該輸出模板;-如果所述第二窗口的內(nèi)容與搜索模板的值不相等,則逐個比特地向下一比特移動該第二窗口;-將該第二窗口從當前比特到下一比特移動一個比特;以及-輸出所述輸出模板。
在應(yīng)用本發(fā)明時,將所述偽隨機數(shù)據(jù)序列的每個比特與要加密的消息的數(shù)據(jù)序列中相應(yīng)的比特通過模2相加進行合并,以構(gòu)成加密的數(shù)據(jù)序列。
本發(fā)明還提供了一種偽隨機數(shù)據(jù)序列的發(fā)生器,其包括搜索裝置用于在N個比特的初始數(shù)據(jù)序列中對搜索模板進行搜索。
所述發(fā)生器的搜索裝置包括-檢測裝置,用于在所述初始數(shù)據(jù)序列中檢測r個比特的特定搜索模板,該搜索模板是一組搜索模板中的一個;-確定裝置,用于根據(jù)取決于對所述搜索模板進行檢測的進展的操作,來確定k個比特的輸出模板;以及-重復(fù)裝置,用于從一系列輸出模板中生成偽隨機數(shù)據(jù)序列。
所述檢測裝置包括能在所述初始數(shù)據(jù)序列上移動的窗口,和用于控制所述窗口在所述初始數(shù)據(jù)序列上的移動的第一控制裝置。
所述確定裝置包括用于更新所述搜索模板組和/或所述輸出模板的第二控制裝置。
所述發(fā)生器還包括用于生成N個比特的初始數(shù)據(jù)序列的初始化裝置。
所述初始化裝置可以包括線性反饋移位寄存器。
本發(fā)明的目的還在于一種編碼設(shè)備,其包括異或邏輯門和具有前述特征的發(fā)生器。
本發(fā)明的目的還在于一種安全系統(tǒng),其包括至少兩個實體,每個實體都包括編碼設(shè)備。
參考附圖,通過閱讀下面作為非限制性例子給出的描述,本發(fā)明的其他特征及優(yōu)點將變得顯而易見,其中圖1概略地示出了根據(jù)本發(fā)明的偽隨機數(shù)據(jù)序列發(fā)生器的實例;圖2示出了包括圖1的發(fā)生器的安全系統(tǒng);圖3示出了根據(jù)本發(fā)明的用于生成偽隨機數(shù)據(jù)序列的搜索過程的實例;圖4到圖6示出了根據(jù)本發(fā)明的方法的特定實現(xiàn);圖7概略地示出了現(xiàn)有技術(shù)發(fā)生器。
具體實施例方式
圖1概略地示出了根據(jù)本發(fā)明的用于生成偽隨機數(shù)據(jù)序列3的發(fā)生器1的實例。
發(fā)生器1包括用于在N比特的初始數(shù)據(jù)序列9中對搜索模板7進行搜索的搜索裝置5。該搜索模板包含于一組搜索模板中。
以下所用術(shù)語“模板”是指僅由0和1組成的任何字。例如,0、11、000、1010、00111是長度分別為1、2、3、4和5的模板。另外,一個“空”模板是一個空字。
N(N為整數(shù))個比特的初始數(shù)據(jù)序列由初始化裝置11生成,該初始化裝置11可以包括有最大周期的線性反饋移位寄存器。
線性反饋移位寄存器是具有表條目的線性組合的有限長度(寄存器)的比特表,由稱為反饋多項式的多項式來表示。每次移位,輸出最高索引的比特,所有其他比特移動一個索引,并且最低索引的比特取移位前線性組合的值。
舉例來說,反饋多項式可以有利地是與最大周期線性移位寄存器相對應(yīng)的本原多項式,或者形如Q=(x2+1)P的多項式,其中P是本原多項式。
發(fā)生器1的搜索裝置5包括檢測裝置13、確定裝置15以及重復(fù)裝置17。
檢測裝置13在初始數(shù)據(jù)序列中檢測r個比特的搜索模板7,其中r是小于N的整數(shù)。確定裝置15定義一組搜索模板,被檢測裝置13檢測到的搜索模板7屬于該組搜索模板。
所述檢測裝置包括可在初始數(shù)據(jù)序列9上移動的窗口19,和用于控制窗口19在初始數(shù)據(jù)序列9上移動的第一控制裝置21。
每個窗口19被置于初始數(shù)據(jù)序列9的特定初始位置,并且具有特定的比特長度。例如,被置于初始數(shù)據(jù)序列9上的長度為t(t為小于N的整數(shù))的窗口19,是能在序列9上移動以在每次移位時準確暴露序列9的t個比特的掩蔽物。
確定裝置15通過連接23與檢測裝置13交互。確定裝置15通過取決于對搜索模板7進行搜索的進展的操作來確定k(k為小于N的整數(shù))個比特的輸出模板25。
事實上,確定裝置15包括用于定義或更新搜索模板組和/或輸出模板25的第二控制裝置27。
另外,重復(fù)裝置17分別通過連接29和31連接到檢測裝置13和確定裝置15。
因此,重復(fù)裝置17可以與檢測裝置13和確定裝置15交換信號,從而在沒有滿足預(yù)定停止條件的情況下重新開始檢測和確定操作,例如在從確定裝置15接收到關(guān)于輸出模板25剛被輸出的信號之后。重復(fù)裝置17另外通過與檢測裝置13和確定裝置15交換信號來測試停止條件。這生成了級聯(lián)地構(gòu)成偽隨機數(shù)據(jù)序列3的一系列輸出模板25。
應(yīng)當指出,重復(fù)裝置17還可以集成到檢測裝置13的第一控制裝置21或者確定裝置15的第二控制裝置27中。
圖2示出了安全系統(tǒng)31,其包括通過因特網(wǎng)、GSM、UMTS等類型的通信網(wǎng)絡(luò)35而互連的至少兩個實體。
該圖的實例顯示了通過通信網(wǎng)35連接到第二實體33b的第一實體33a。第一實體33a包括第一終端37a、第一編碼設(shè)備39a和第一調(diào)制解調(diào)器41a,而第二實體33b包括第二終端37b、第二編碼設(shè)備39b和第二調(diào)制解調(diào)器41b,調(diào)制解調(diào)器41a和41b是由可與通信網(wǎng)絡(luò)35接口連接(interfacing)的任何裝置構(gòu)成的。
第一編碼設(shè)備39a和第二編碼設(shè)備39b中每一個都包括如前所述的用于生成偽隨機數(shù)據(jù)序列3的發(fā)生器1以及異或邏輯門43。
每個編碼設(shè)備39a、39b都實施流加密或解密,這在于對消息逐個比特地進行加密或解密。
在該實例中,第一編碼設(shè)備39a實現(xiàn)加密操作,因此,異或邏輯門43將稱為加密序列的偽隨機數(shù)據(jù)序列3和在由第一終端37a以明文發(fā)送的消息45的相應(yīng)位置處的每個比特進行合并,以得到加密文本47,該加密文本然后由第一調(diào)制解調(diào)器41a發(fā)送給第二實體33b。加密操作因而在于將加密序列3逐個比特地添加到消息45的明文中,以得到加密文本47。
第二編碼設(shè)備39b實現(xiàn)解密操作,其在于將相同的加密序列3逐個比特地添加到由第一實體33a發(fā)送的加密文本47中,以重新制定明文的文本消息45。
加密操作和解密操作因而是相同的。
圖3到圖6示出了根據(jù)本發(fā)明的生成偽隨機數(shù)據(jù)的方法。
這個方法在于從用于在初始數(shù)據(jù)序列9中對搜索模板進行搜索的過程中生成偽隨機數(shù)據(jù)序列3。
因此,根據(jù)本發(fā)明對偽隨機數(shù)據(jù)序列的元素進行確定,可能取決于搜索到的模板及搜索歷史或者搜索方式。
圖3示出了根據(jù)本發(fā)明的用于生成偽隨機數(shù)據(jù)序列3的搜索過程的實例。
步驟E1涉及在初始數(shù)據(jù)序列9中檢測一組搜索模板中的r個比特的特定搜索模板7。
步驟E2涉及通過取決于在前步驟E1的進展的操作來確定k個比特的輸出模板25。
事實上,對輸出模板25的確定可能取決于搜索模板7及搜索歷史,尤其取決于在初始數(shù)據(jù)序列9中找到正討論的搜索模板7之前所實施的步驟或迭代的數(shù)目。
檢測搜索模板7的步驟E1和確定輸出模板25的步驟E2是通過一系列操作來實現(xiàn)的。
這一系列操作涉及第一組規(guī)則,該第一組規(guī)則由發(fā)生器1的第一控制裝置21來實現(xiàn)以定義移位模式,該移位模式用于在初始數(shù)據(jù)序列9上移動窗口19,從而檢測搜索模板7。
一個或多個非零長度的窗口19通常在初始數(shù)據(jù)序列9上移動。在搜索過程開始時,每個窗口19是在初始數(shù)據(jù)序列9上的初始位置處(例如,它們可以都在初始數(shù)據(jù)序列9的起點)。窗口19的各比特被用來確定輸出模板25。
所述第一組規(guī)則可以定義移位方向、移位幅度或者移動窗口19的形式,例如在初始數(shù)據(jù)序列9的一部分上循環(huán)移動。
例如,所述第一組規(guī)則可包括如下定義的規(guī)則r1r1=“向右移動一個比特”。
另外,所述一系列操作包括由發(fā)生器1的第二控制裝置27實現(xiàn)的第二組規(guī)則,其確定窗口19在初始數(shù)據(jù)序列9上停止移動的條件。
所述第二組規(guī)則可以包括必須在發(fā)生器1遞送輸出模板25之前以特定順序?qū)嵤┑囊?guī)則。因此,發(fā)生器1對一系列輸出模板25的遞送形成了偽隨機數(shù)據(jù)序列3。
例如,所述第二組規(guī)則可以包括如下定義的規(guī)則r2r2=“當窗口19的內(nèi)容不是來自搜索模板組7中的模板,根據(jù)規(guī)則r1移動窗口19”,其中r1是來自所述第一組規(guī)則中的規(guī)則。
另外,來自該第二組規(guī)則中的另一規(guī)則按照給定的二進制法則并根據(jù)窗口19的移動和/或內(nèi)容,來管理搜索模板組7和/或輸出模板25的更新。
因此,搜索模板7可以為空,即沒有模板,這取決于窗口19的內(nèi)容或者包括第一和第二組規(guī)則的一系列操作的在前執(zhí)行。
類似地,輸出模板25也可以為空,即沒有模板,這取決于窗口19的內(nèi)容或者包括第一和第二組規(guī)則的一系列操作的在前執(zhí)行。
另外,搜索過程中的步驟E3連續(xù)地重復(fù)前面兩個步驟E1和E2,以從級聯(lián)的一系列輸出模板中形成偽隨機數(shù)據(jù)序列3。
應(yīng)當指出,所述一系列操作可以重復(fù)進行,直到滿足預(yù)定的條件。該條件可以是初始數(shù)據(jù)序列9的窗口19的內(nèi)容,如果它是有限的話。也有可能重復(fù)這一系列操作直到滿足用戶定義的條件。
另外,在每次執(zhí)行后可以對這一系列操作進行修改,從而進一步提高偽隨機數(shù)據(jù)序列3的質(zhì)量。
因此,該方法在于利用一個或多個窗口19掃描初始比特流(初始數(shù)據(jù)序列9),以便偽隨機數(shù)據(jù)序列3的每個輸出比特都取決于在初始流9中對一個或多個模板7的一個或多個搜索。另外,要搜索的模板7可能取決于窗口19的內(nèi)容和/或移動。
圖4到圖6示出了根據(jù)本發(fā)明方法的特定實現(xiàn)。
在這些例子中,所述一系列操作在每次執(zhí)行后保持不變,窗口19為“長度1”(即每個窗口包含1個比特),所述搜索模板組7包括一個搜索模板,并且搜索模板7和輸出模板25也為長度1。
另外,窗口19的移動幅度等于一個單位,即每個窗口19例如在每次迭代時移動1個比特,從當前比特移到下一比特(即從左到右)。
因此,每個初始數(shù)據(jù)序列9可以被連續(xù)讀取,即逐個比特讀取,這樣操作起來就非常簡單了。
下面的E是指搜索模板7的值,s是輸出模板25的值,以及f、f1和f2是各窗口19的值。
最初,搜索模板7和輸出模板25是通過為其賦予空比特而被初始化的,如E←φ和s←φ,φ是空集。類似地,將b、b1和b2所表示二進制或常數(shù)值定義為在每次實施這些實現(xiàn)的一系列操作時保持不變。
在第一實現(xiàn)中,單個窗口19在初始數(shù)據(jù)序列9上移動。最初,它可以固定在初始數(shù)據(jù)序列9的第一個比特上。
第一實現(xiàn)的一系列操作可以如下定義-將規(guī)則r1,1=“向右移動一個比特”設(shè)置為所述第一組規(guī)則中僅有的規(guī)則;-將下列規(guī)則設(shè)置為所述第二組規(guī)則中的規(guī)則-r2,1=“將來自窗口的比特f置于搜索模板中(E←f)”;-r2,2=“根據(jù)r1,1移動窗口一次”;-r2,3=“如果窗口的內(nèi)容與搜索模板的比特E相等,則更新輸出模板s←b”;-r2,4=“如果窗口的內(nèi)容與搜索模板的比特E不相等,則更新輸出模板s←b1”;-r2,5=“當窗口內(nèi)容f不是搜索模板時,按照規(guī)則r1,1移動窗口”;-r2,6=“按照r1,1將窗口移動一次”;-按照這個順序?qū)嵤┮?guī)則r2,1,r2,2,r2,3,r2,4,r2,5和r2,6;以及-輸出所述輸出模板s。
實際上,圖4的流程圖示出了上述一系列操作的執(zhí)行。
步驟E11將來自窗口19的比特置于搜索模板7中。
步驟E12將窗口19從當前比特向下一比特移動一個比特。
步驟E13是將窗口19的內(nèi)容與搜索模板7的內(nèi)容進行比較的測試。
步驟E14是在窗口19的內(nèi)容與搜索模板7的內(nèi)容相等的情況下,根據(jù)第一法則更新輸出模板25。在該實例中,第一法則相當于將特定值b賦予輸出模板25(s←b)。
步驟E15是在窗口19的內(nèi)容與搜索模板7的的比特E不相等的情況下,根據(jù)第二法則更新輸出模板25。在該實例中,第二法則相當于對特定值b和值1進行模2相加,并且將該加法運算的結(jié)果賦予輸出模板25(s←b1)。
步驟E16和E17形成了循環(huán),即,如果窗口19的內(nèi)容與搜索模板7的比特E相等,則逐個比特地向下一比特移動窗口19。
步驟E18是將窗口19從當前比特向下一比特移動一個比特。
最后,步驟E19將輸出模板25從發(fā)生器1輸出。
寬泛地說,所述一系列操作可以總結(jié)如下初始數(shù)據(jù)序列9中的當前比特E被讀取,接著在序列9上向右移位直到找到比特E。如果為找到E而進行的移位只移動了一個索引,則輸出b,否則輸出b1。然后在重新開始前向右移一個比特。
當然,該流程還可以包括用于確定是否滿足預(yù)定條件的停止測試(圖中為簡化而未示出)。
例如,上述步驟可以重復(fù)進行以形成偽隨機數(shù)據(jù)序列,直到窗口19離開初始數(shù)據(jù)序列9。
圖5是說明第二實現(xiàn)的一系列操作的執(zhí)行的流程圖。
該圖中的流程與圖4的不同之處僅在于步驟E24和E25。
實際上,在步驟E24中,第一法則相當于對特定值b和搜索模板7的值E進行模2相加,并將該加法運算的結(jié)果賦予輸出模板25(s←bE)。
相反,在步驟E25,第二法則相當于對特定值b、搜索模板7的值E和值1進行模2相加,并且將該加法運算的結(jié)果賦予輸出模板25(s←bE1)。
因此,該第二實現(xiàn)的一系列操作可以如下定義-將r1,1=“向右移動一個比特”設(shè)為所述第一組規(guī)則中僅有的規(guī)則;-將下列規(guī)則設(shè)為所述第二組規(guī)則中的規(guī)則-r2,1=“將來自窗口的比特f置于搜索模板中(E←f)”;-r2,2=“根據(jù)r1,1移動窗口一次”;-r2,3=“如果窗口內(nèi)容與搜索模板7的比特E相等,則更新輸出模板s←bE”;
-r2,4=”“如果窗口內(nèi)容與搜索模板的比特E不相等,則更新輸出模板s←bE1”;-r2,5=“如果窗口內(nèi)容f不是搜索模板,則根據(jù)規(guī)則r1,1移動窗口”;-r2,6=“根據(jù)規(guī)則r1,1移動窗口一次”;-按這個順序?qū)嵤┮?guī)則r2,1,r2,2,r2,3,r2,4,r2,5及r2,6;以及-輸出所述輸出模板s。
寬泛地說,該第二實現(xiàn)的一系列操作可以總結(jié)如下讀取初始數(shù)據(jù)序列9中的當前比特E,接著在所述序列上向右移位直到找到比特E。如果為找到E而進行的移位僅移動了一個索引,則輸出bE;否則輸出bE1。然后在重新開始前向右移一個比特。
圖6是說明第三實現(xiàn)的一系列操作的流程圖。
在該第三實現(xiàn)中,兩個窗口19在所述初始數(shù)據(jù)序列上移動。第一窗口最初固定于初始數(shù)據(jù)序列9的第一個比特上,而第二窗口最初固定于初始數(shù)據(jù)序列9的第二個比特上。在這種情形下,定義兩個常量,即表示為b1的第一比特和表示為b2的第二比特。例如,常量b1和b2可以有相同的值0。
步驟E31將來自第一窗口的比特置于搜索模板7中。
步驟E32將第一窗口從當前比特向下一比特移動一個比特。
步驟E33是對第一窗口的內(nèi)容與搜索模板7的內(nèi)容進行比較的測試。
步驟E34更新輸出模板25,該更新是這樣實現(xiàn)的如果第一窗口的內(nèi)容與搜索模板7的值E相等,則將對第一特定值b1和搜索模板的值E進行模2相加所得出的結(jié)果賦予該輸出模板25(s←b1E)。
步驟E35更新輸出模板25,該更新是這樣實現(xiàn)的如果第一窗口的內(nèi)容與搜索模板的值E不相等,則將對第一特定值b1、搜索模板的值E和值1進行模2相加所得出的結(jié)果賦予該輸出模板25(s←b1E1)。
步驟E36和E37形成循環(huán),即,如果第一窗口的內(nèi)容與搜索模板7的比特不相等,則逐個比特地向下一比特移動第一窗口。
步驟E38將第一窗口從當前比特向下一比特移動一個比特。
步驟E39將來自第二窗口的比特置于搜索模板7中。
步驟40將第二窗口從當前比特向下一比特移動一個比特。
步驟E41是將第二窗口的內(nèi)容與搜索模板7的內(nèi)容進行比較的測試。
步驟E42更新輸出模板25,該更新是這樣實現(xiàn)的如果第二窗口的內(nèi)容與搜索模板7的值相等,則將對第二特定值b2、輸出模板25的當前值s和搜索模板7的值E進行模2相加所得出的結(jié)果賦予該輸出模板25(s←sb2E)。
步驟E43更新輸出模板25,該更新是這樣實現(xiàn)的如果第二窗口的內(nèi)容與搜索模板7的值不相等,則將對輸出模板25的當前值s、第二特定值b2、搜索模板7的值E和值1進行模2相加所得出的結(jié)果賦予該輸出模板25(s←sb2E1)。
步驟E44和E45形成循環(huán),即,如果第二窗口的內(nèi)容與搜索模板的比特不相等,則逐個比特地向下一比特移動第二窗口。
步驟E46將第二窗口從當前比特向下一比特移動一個比特。
最后,步驟E47將輸出模板25從發(fā)生器1輸出。
因此,所述第三實現(xiàn)的一系列操作可以如下定義-將r1,1=“向右移動一個比特”設(shè)為所述第一組規(guī)則中僅有的規(guī)則;-將下列規(guī)則設(shè)為所述第二組規(guī)則中的規(guī)則-r2,1=“將來自窗口的比特f1置于所述搜索模板中(E←f1)”;-r2,2=“根據(jù)r1,1將第一窗口移動一次”;-r2,3=“如果第一窗口的內(nèi)容f1與所述搜索模板的比特E相等,則進行更新s←b1E”;-r2,4=“如果第一窗口的內(nèi)容與所述搜索模板的比特E不相等,則更新輸出模板s←b1E1”;-r2,5=“當?shù)谝淮翱诘膬?nèi)容與所述搜索模板的比特E不相等時,根據(jù)規(guī)則r1,1移動第一窗口”;-r2,6=“根據(jù)r1,1移動第一窗口一次”;-r2,7=“用來自第二窗口的比特f2替代所述搜索模板的值”;
-r2,8=“根據(jù)r1,1移動第二窗口一次”;-r2,9=“如果第二窗口的內(nèi)容f2與所述搜索模板的比特E相等,則更新輸出模板s←sb2E”;-r2,10=“如果第二窗口的內(nèi)容f2與所述搜索模板的比特E不相等,則更新輸出模板s←sb2E1”;-r2.11=“當?shù)诙翱诘膬?nèi)容f2與所述搜索模板的比特E不相等時,則根據(jù)r1,1移動第二窗口”;-r2,12=“根據(jù)r1,1移動第二窗口一次”;-以該順序?qū)嵤┮?guī)則r2,1到r2,12;以及-輸出所述輸出模板s。
寬泛地說,該第三實現(xiàn)是逐個比特地添加輸出,所述輸出是通過并行執(zhí)行以下操作而獲得的首先,在第二實現(xiàn)中最初將第一窗口置于初始數(shù)據(jù)序列9的第一個比特上,其次,在第二實現(xiàn)中最初將第二窗口置于初始數(shù)據(jù)序列9的第二個比特上。
這些實現(xiàn)很容易執(zhí)行。另外,舉例來說,如果提供初始數(shù)據(jù)序列9的初始化裝置11是線性反饋移位寄存器,則輸出比特數(shù)目與計算出的比特數(shù)目之比平均為1/3。
因此,根據(jù)本發(fā)明的方法生成了高質(zhì)量的偽隨機比特序列,其可以用于對稱流加密。
實際上,偽隨機數(shù)據(jù)序列3中的每個比特都可以與要加密的消息45的數(shù)據(jù)序列中的相應(yīng)比特通過模2相加而進行合并,以構(gòu)成加密的數(shù)據(jù)序列47(見圖2)。
權(quán)利要求
1.一種生成偽隨機數(shù)據(jù)序列(3)的方法,其特征在于,所述偽隨機數(shù)據(jù)序列(3)是通過用于在N個比特的初始數(shù)據(jù)序列(9)中對搜索模板(7)進行搜索的過程而被生成的。
2.如權(quán)利要求1所述的方法,其特征在于,所述搜索過程包括以下步驟-在所述初始數(shù)據(jù)序列(9)中檢測(E1)r個比特的特定搜索模板(7),該搜索模板是一組搜索模板中的一個;-通過取決于在前步驟(E1)的進展的操作,來確定(E2)k個比特的輸出模板(25);和-連續(xù)重復(fù)前述步驟(E1,E2),以從一系列輸出模板(25)中形成所述偽隨機數(shù)據(jù)序列(3)。
3.如權(quán)利要求2所述的方法,其特征在于,檢測所述搜索模板(7)的所述步驟(E1)和確定所述輸出模板(25)的所述步驟(E2),是通過包括第一組規(guī)則的一系列操作來實現(xiàn)的,其中所述第一組規(guī)則用于定義在所述初始數(shù)據(jù)序列(9)上移動窗口(19)的移動模式,從而檢測所述搜索模板(7),所述窗口(19)在所述初始數(shù)據(jù)序列(9)上具有特定的初始位置并具有特定的比特長度。
4.如權(quán)利要求3所述的方法,其特征在于,所述一系列操作還包括第二組規(guī)則,該第二組規(guī)則確定在所述初始數(shù)據(jù)序列(9)上停止移動所述窗口(19)的條件。
5.如權(quán)利要求4所述的方法,其特征在于,所述第二組規(guī)則中的一條規(guī)則根據(jù)所述窗口的移動和/或內(nèi)容,來管理對所述搜索模板組和/或所述輸出模板的更新。
6.如權(quán)利要求3和4中任一個所述的方法,其特征在于,所述一系列操作重復(fù)進行,直到滿足預(yù)定的條件為止。
7.如權(quán)利要求3和4中任一個所述的方法,其特征在于,所述一系列操作在每次執(zhí)行之后被修改。
8.如權(quán)利要求3和4中任一個所述的方法,其特征在于,所述一系列操作在每次執(zhí)行之后保持不變,并且在所述初始數(shù)據(jù)序列(9)上逐個比特地將窗口(19)連續(xù)移動1個比特,從而檢測1比特的搜索模板(7)并確定1比特的輸出模板(25)。
9.如權(quán)利要求8所述的方法,其特征在于,所述一系列操作包括以下步驟-將來自窗口的比特置于所述搜索模板中;-將所述窗口從當前比特向下一比特移動一個比特;-如果所述窗口內(nèi)容與所述搜索模板內(nèi)容相等,則根據(jù)第一法則更新所述輸出模板;-如果所述窗口內(nèi)容與所述搜索模板內(nèi)容不相等,則根據(jù)第二法則更新所述輸出模板;-如果所述窗口的內(nèi)容與所述搜索模板的比特不相等,則逐個比特地向下一比特移動所述窗口;-將所述窗口從當前比特向下一比特移動一個比特;以及-輸出所述輸出模板。
10.如權(quán)利要求9所述的方法,其特征在于,所述第一法則將特定值b賦予所述輸出模板,而所述第二法則對所述特定值b和值1進行模2相加并將該加法運算的結(jié)果賦予所述輸出模板。
11.如權(quán)利要求9所述的方法,其特征在于,所述第一法則對特定值b和所述搜索模板的值E進行模2相加,并將該加法運算的結(jié)果賦予所述輸出模板,而所述第二法則對所述特定值b、所述搜索模板的值E和值1進行模2相加,并將該加法運算的結(jié)果賦予所述輸出模板。
12.如權(quán)利要求8所述的方法,其特征在于,所述一系列操作包括以下步驟-將來自第一窗口的比特置于所述搜索模板中;-將所述第一窗口從當前比特向下一比特移動一個比特;-更新所述輸出模板,其中該更新是這樣實現(xiàn)的如果所述第一窗口內(nèi)容與所述搜索模板的值相等,則將第一特定值b1和所述搜索模板的值E進行模2相加所得出的結(jié)果賦予該輸出模板;-更新所述輸出模板,其中該更新是這樣實現(xiàn)的如果所述第一窗口內(nèi)容與所述搜索模板的值E不相等,則將對所述第一特定值b1、所述搜索模板的值E和值1進行模2相加所得出的結(jié)果賦予該輸出模板;-如果所述第一窗口內(nèi)容與所述搜索模板的比特E不相等,則逐個比特地向下一比特移動所述第一窗口;-將所述第一窗口從當前比特向下一比特移動一個比特;-用來自第二窗口的比特來替代所述搜索模板的值;-將所述第二窗口從當前比特向下一比特移動一個比特;-更新所述輸出模板,其中該更新是這樣實現(xiàn)的如果所述第二窗口內(nèi)容與所述搜索模板的值相等,則將對第二特定值b2、所述輸出模板的當前值s和所述搜索模板的值E進行模2相加所得出的結(jié)果賦予該輸出模板;-更新所述輸出模板,其中該更新是這樣實現(xiàn)的如果所述第二窗口內(nèi)容與所述搜索模板的值不相等,則將對所述輸出模板的當前值s、所述第二特定值b2、所述搜索模板的值E和值1進行模2相加所得出的結(jié)果賦予該輸出模板;-如果所述第二窗口內(nèi)容與所述搜索模板的值不相等,則逐個比特地向下一比特移動所述第二窗口;-將所述第二窗口從當前比特向下一比特移動一個比特;以及-輸出所述輸出模板。
13.如權(quán)利要求1到12中任一個所述的方法,其特征在于,所述偽隨機數(shù)據(jù)序列中的每個比特都與要加密的消息的數(shù)據(jù)序列中相應(yīng)的比特通過模2相加進行合并,以形成加密的數(shù)據(jù)序列。
14.一種偽隨機數(shù)據(jù)序列(3)的發(fā)生器,其特征在于,它包括搜索裝置(5),用于在N個比特的初始數(shù)據(jù)序列(9)中對搜索模板(7)進行搜索。
15.如權(quán)利要求14所述的發(fā)生器,其特征在于,所述搜索裝置(5)包括-檢測裝置(13),用于在所述初始數(shù)據(jù)序列(9)中檢測r個比特的特定搜索模板,該特定搜索模板是一組搜索模板中的一個;-確定裝置(15),用于根據(jù)取決于對至少一個搜索模板(7)進行檢測的進展的操作來確定k個比特的輸出模板(25);-重復(fù)裝置(17),用于從一系列輸出模板(25)中生成所述偽隨機數(shù)據(jù)序列(3)。
16.如權(quán)利要求15所述的發(fā)生器,其特征在于,所述檢測裝置(13)包括可在所述初始數(shù)據(jù)序列(9)上移動的窗口(19),和用于控制所述窗口在所述初始數(shù)據(jù)序列上的移動的第一控制裝置(21)。
17.如權(quán)利要求15所述的發(fā)生器,其特征在于,所述確定裝置(15)包括第二控制裝置(27),用于更新所述搜索模板組和/或所述輸出模板。
18.如權(quán)利要求14到17中任一個所述的發(fā)生器,其特征在于,它還包括初始化裝置(11),用于生成N個比特的初始數(shù)據(jù)序列。
19.如權(quán)利要求18所述的發(fā)生器,其特征在于,所述初始化裝置(11)包括線性反饋移位寄存器。
20.一種編碼設(shè)備(39),其包括異或邏輯門(43),其特征在于,該編碼設(shè)備還包括如權(quán)利要求14到19中任一個所述的發(fā)生器(1)。
21.一種安全系統(tǒng),其包括至少兩個實體(33a,33b),其特征在于,所述至少兩個實體(33a,33b)中每一個都包括如權(quán)利要求20所述的編碼設(shè)備(39a,39b)。
全文摘要
本發(fā)明提供了一種偽隨機數(shù)據(jù)序列的發(fā)生器(1),其包括搜索裝置(5),用于在N個比特的初始數(shù)據(jù)序列(9)中對搜索模板(7)進行搜索。
文檔編號G06F7/58GK101036115SQ200480044116
公開日2007年9月12日 申請日期2004年8月2日 優(yōu)先權(quán)日2004年8月2日
發(fā)明者H·賽伯特, A·古熱 申請人:法國電信公司, 卡昂大學(xué)