專利名稱:用于隨機(jī)數(shù)生成、加密和解密的裝置、方法、程序及記錄介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及例如用于流加密所采用的隨機(jī)數(shù)生成、加密及解密的裝置、方法、程序以及記錄介質(zhì)。
背景技術(shù):
隨著近年來因特網(wǎng)和移動(dòng)通信的迅速普及,保護(hù)數(shù)字信息的重要性正在增加。作為密碼技術(shù),在加密和解密中使用同一秘密密鑰的共用密鑰方式是公知的,在共用密鑰方式中有塊密碼和流密碼。
圖1A是說明塊密碼的示圖。將明文的信息比特串劃分成指定的長(zhǎng)度(塊),并通過加密器1按每塊加密。密文也按塊劃分。
另一方面,如圖1B所示,對(duì)于流密碼,使通過加密器(隨機(jī)數(shù)發(fā)生器)2產(chǎn)生的隨機(jī)數(shù)按碼型每比特作用在信息比特串上,進(jìn)行加密。
假定流密碼中明文的位系列為m1,m2,m3,隨機(jī)數(shù)的位系列為r1,r2,r3,密文的位系列為c1,c2,c3...,則加密處理為ci=miri(是mod.2的運(yùn)算,i=1,2,3...),解密處理為mi=ciri(是mod.2的運(yùn)算,i=1,2,3...)。
需要在發(fā)送側(cè)與接收側(cè)生成共用的隨機(jī)數(shù)。如果完全知道隨機(jī)數(shù)序列或隨機(jī)數(shù)生成碼型,則會(huì)很容易譯碼。因此,作為密碼用,安全的隨機(jī)數(shù)不僅需要統(tǒng)計(jì)上的隨機(jī)數(shù)的一致性,而且還必須不能從過去的隨機(jī)數(shù)序列預(yù)測(cè)將來的隨機(jī)數(shù)序列。
一般地說,與塊密碼相比,流密碼速度更高,在將圖像數(shù)據(jù)這類大量數(shù)據(jù)加密而傳輸時(shí),流密碼是適合的。另外,流密碼往往還能夠減小電路規(guī)模。因此,盡管DES(Data Encryption Standard數(shù)據(jù)加密標(biāo)準(zhǔn))及AES(Advanced Encryption Standard高級(jí)加密標(biāo)準(zhǔn))等塊密碼都已標(biāo)準(zhǔn)化,也仍然使用著流密碼。
但是,在現(xiàn)在最廣泛使用的流密碼即RC4((Rivest Cipher)4Stream Cipher)中有weak key(弱密鑰)存在、使用WEP(WiredEquivalent Privacy protocol有線等效保密協(xié)議)而產(chǎn)生的問題點(diǎn)以及輸出中偏差的存在等的安全性從純理論的意義上被認(rèn)為有問題。另外,RC4是面向軟件設(shè)計(jì)的,其加密速度上存在界限。因此,可以說正謀求面向硬件的安全、高速的流密碼。
另一方面,近年來正積極進(jìn)行使用非線形力學(xué)系統(tǒng)領(lǐng)域一直研究的采用混沌的加密算法的研究。但是,在許多情況下,采用基于映像力學(xué)系統(tǒng)的、狀態(tài)、時(shí)間、空間全部離散的力學(xué)系統(tǒng)的單元自動(dòng)機(jī)(以下適當(dāng)記為CAcell automaton)的加密算法還未被廣泛知道。CA在結(jié)構(gòu)上適合于嵌入硬件中,可期待實(shí)現(xiàn)高速的流密碼。StephenWolfram在“Adv.Appl.Math.Vol.7(1986)123-169”、“Lecture Notesin Computer Science Vol.218(1986)429-432”等中提出了一維二態(tài)三鄰域單元自動(dòng)機(jī)的采用規(guī)則30的流密碼。
圖2表示采用CA的加密算法的結(jié)構(gòu)。將輸入信息數(shù)據(jù)(明文)作為1比特流而輸入“異或”電路(以下適當(dāng)稱為EX-OR門)3。來自CA核4(隨機(jī)數(shù)生成器)的1比特流即密鑰流作為EX-OR門3的另一個(gè)輸入,從EX-OR門3輸出密文。對(duì)CA核4輸入作為初始值的秘密密鑰和時(shí)鐘脈沖,生成隨機(jī)數(shù)。
所謂一維二態(tài)三鄰接單元自動(dòng)機(jī)是在一維點(diǎn)陣上配置單元、各單元具有0或1作為狀態(tài)值,按照下一時(shí)刻(以下適當(dāng)稱為時(shí)間步長(zhǎng))的各單元的狀態(tài)值僅依賴于自己本身的狀態(tài)值和兩個(gè)相鄰的單元狀態(tài)值的函數(shù)(規(guī)則)提供、且根據(jù)該函數(shù)同步地更新各單元的狀態(tài)值。即以下述公式表示Sit+1=F(Si-1t,Sit,Si+1t)----(1)]]>這里,附加i和t的S表示時(shí)間步長(zhǎng)t的第i個(gè)單元的狀態(tài)。Stephen Wolfram在一維二態(tài)三鄰接CA的范圍內(nèi)探索了產(chǎn)生隨機(jī)序列的規(guī)則,表明規(guī)則30是最好的偽隨機(jī)數(shù)生成器。規(guī)則30的狀態(tài)更新規(guī)則以下述公式表示Sit+1=Si-1t⊕Sit⊕Si+1t⊕Sit·Si+1t----(2)]]>這里,表示mod.2加法。
如果式(2)以布爾代數(shù)表示,則變?yōu)橐韵率龉?3)表示Sit+1=Si-1tXOR(SitORSi+1t)----(3)]]>圖3是表示在縱軸上取時(shí)間(t)、在橫軸上取單元序號(hào)(i)的示圖。在圖3中表示的是將添加陰影的第i個(gè)例如第6個(gè)單元序號(hào)的狀態(tài)作為密鑰流使用。
Stephen Wolfram將CA規(guī)則30產(chǎn)生的比特串以7種統(tǒng)計(jì)試驗(yàn)研究了其隨機(jī)性,但僅通過研究幾個(gè)比特串的隨機(jī)性,作為偽隨機(jī)數(shù)生成器的性能評(píng)價(jià)是不充分的。
作為密碼用隨機(jī)數(shù)的評(píng)價(jià)試驗(yàn),一個(gè)例子是NIST(NationalInstitute of Standards and Technology美國(guó)標(biāo)準(zhǔn)與技術(shù)研究所)公開的RNG Testing(NIST Special Publication(SP) 800-22AStatistical Test Suite for Random and Pseudorandom NumberGenerators for Cryptographic Applications)。圖4表示NIST的16種試驗(yàn)項(xiàng)目。
在NIST的試驗(yàn)中對(duì)于n比特的序列求p值(p-value)。p值是理論上的完全隨機(jī)序列生成器產(chǎn)生隨機(jī)性低于該序列的比特串的概率。這里所謂的「隨機(jī)性低」是指試驗(yàn)中的特性量偏離平均值。
對(duì)于求出的p值,將p值≥α?xí)r作為「成功」。對(duì)m個(gè)采樣進(jìn)行,評(píng)價(jià)其成功率和p值的一致性。在p值一致、且成功率進(jìn)入以1-α為中心的特定范圍時(shí),稱為試驗(yàn)「通過」。由于對(duì)于初始值(供給CA核的秘密密鑰)實(shí)驗(yàn)結(jié)果稍有不同,因此對(duì)于各試驗(yàn),按若干初始值進(jìn)行試驗(yàn)。在以下的例子中使用n=106,α=0.01,m=1000。在各試驗(yàn)中使用的參數(shù)示于圖5。
圖6表示RC4(256比特密鑰)的試驗(yàn)結(jié)果,圖7表示CA規(guī)則30的試驗(yàn)結(jié)果。各圖表示的是使初始值不同而得到的兩個(gè)試驗(yàn)結(jié)果。在表示試驗(yàn)結(jié)果的圖表中橫軸表示試驗(yàn)種類,縱軸表示成功率,由上下線包圍的區(qū)域是合格區(qū)域。另外,對(duì)于CA,固定單元序號(hào)而沿時(shí)間方向?qū)Ρ忍卮蓸?。單元?shù)例如是1000。
從圖6可知雖然在RC4中在所有試驗(yàn)中p值的一致性都通過,但僅對(duì)于第7個(gè)試驗(yàn)項(xiàng)目(Non-overlapping Template Matching Test非交疊模板匹配試驗(yàn))的一個(gè)模板存在成功率通常偏出范圍的問題。在第7個(gè)試驗(yàn)中使用148種模板進(jìn)行碼型匹配,計(jì)算對(duì)于各種模板的成功率。另外,由于初始值不同,第10個(gè)試驗(yàn)項(xiàng)目(Lempel ZivCompression)也偏出。這樣,RC4存在幾個(gè)試驗(yàn)不通過的問題。
從圖7可知在CA規(guī)則30中存在由于初始值不同、第3個(gè)的試驗(yàn)項(xiàng)目(Runs Test游程試驗(yàn))、第15個(gè)試驗(yàn)項(xiàng)目(Random Excursions隨機(jī)游弋)、第16個(gè)試驗(yàn)項(xiàng)目(Random Excurs ions Variant隨機(jī)偏離變量)都不通過的問題。比該問題更嚴(yán)重的是破壞了第10個(gè)試驗(yàn)項(xiàng)目(Lempel Ziv CompressionLempel Ziv壓縮)的p值的一致性。這意味著在比特串的特征上有偏移,由此有可與隨機(jī)序列區(qū)分的可能性存在的問題。
另外,由于有在1時(shí)間步長(zhǎng)中只可使用1比特信息的限制,因此存在即使單元數(shù)(門數(shù))增加加密的處理速度也無法提高速度的問題。
因此,本發(fā)明的目的在于提供一種用于在使用CA時(shí)能夠使全部試驗(yàn)都通過、隨機(jī)性優(yōu)良、還可使加密處理速度提高的隨機(jī)數(shù)生成、加密和解密的裝置、方法、程序以及記錄介質(zhì)、發(fā)明內(nèi)容權(quán)利要求1的發(fā)明是在基于按一維配置多個(gè)單元、各單元具有0或1作為狀態(tài)值、按照下一時(shí)刻的各單元狀態(tài)值僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且按照該規(guī)則更新各單元狀態(tài)值的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成裝置,其中設(shè)有
具有為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新多個(gè)單元的下一時(shí)刻的狀態(tài)值而將當(dāng)前時(shí)刻的多個(gè)單元的輸出反饋至輸入的路徑;以及插入路徑、且將多個(gè)單元的輸出移位指定的單元數(shù)的移位處理單元。
權(quán)利要求6的發(fā)明是基于多個(gè)單元的各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法,其中為了輸出多個(gè)單元的至少一個(gè)單元的輸出,同時(shí)更新多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的多個(gè)單元的輸出反饋至輸入時(shí),將多個(gè)單元的輸出移位指定的單元數(shù)。
權(quán)利要求10的發(fā)明是讓計(jì)算機(jī)執(zhí)行基于多個(gè)單元的各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法的程序,其中,用于執(zhí)行為了輸出多個(gè)單元的至少一個(gè)單元的輸出,同時(shí)更新多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的多個(gè)單元的輸出反饋至輸入時(shí),將多個(gè)單元的輸出移位指定的單元數(shù)。
權(quán)利要求11的發(fā)明是一種記錄有用于執(zhí)行隨機(jī)數(shù)生成方法的程序的計(jì)算機(jī)可讀取的記錄介質(zhì)。
權(quán)利要求12的發(fā)明是一種通過明文和隨機(jī)數(shù)的”異或”運(yùn)算來生成密文的加密裝置,其特征在于其中,隨機(jī)數(shù)通過基于按一維配置多個(gè)單元、各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成裝置生成,該加密裝置具有為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新多個(gè)單元的下一時(shí)刻的狀態(tài)值而將當(dāng)前時(shí)刻的多個(gè)單元的輸出反饋至輸入的路徑;以及插入路徑、且將多個(gè)單元的輸出移位指定的單元數(shù)的移位處理單元。
權(quán)利要求17的發(fā)明是一種通過明文和隨機(jī)數(shù)的“異或”運(yùn)算來生成密文的加密方法,其特征在于其中,隨機(jī)數(shù)通過基于多個(gè)單元的各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成,該隨機(jī)數(shù)生成方法中,為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的多個(gè)單元的輸出反饋至輸入時(shí),將多個(gè)單元的輸出移位指定的單元數(shù)。
權(quán)利要求21的發(fā)明是讓計(jì)算機(jī)執(zhí)行通過明文和隨機(jī)數(shù)的”異或”運(yùn)算來生成密文的加密方法的程序,其特征在于其中,隨機(jī)數(shù)通過基于多個(gè)單元的各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成,該隨機(jī)數(shù)生成方法中,為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的多個(gè)單元的輸出反饋至輸入時(shí),將多個(gè)單元的輸出移位指定的單元數(shù)。
權(quán)利要求22的發(fā)明是記錄有用以執(zhí)行加密方法的程序的計(jì)算機(jī)可讀取的記錄介質(zhì)。
權(quán)利要求23的發(fā)明是按照密文和隨機(jī)數(shù)的”異或”運(yùn)算來解碼密文的解碼裝置,其特征在于設(shè)有通過基于按一維配置多個(gè)單元、各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成裝置生成隨機(jī)數(shù),該加密裝置設(shè)有為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新多個(gè)單元的下一時(shí)刻的狀態(tài)值而將當(dāng)前時(shí)刻的多個(gè)單元的輸出反饋至輸入的路徑;以及插入路徑、且將多個(gè)單元的輸出移位指定的單元數(shù)的移位處理單元。
權(quán)利要求26的發(fā)明是一種按照密文和隨機(jī)數(shù)的”異或”運(yùn)算來解碼密文的解碼方法,其特征在于通過基于多個(gè)單元的各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成隨機(jī)數(shù),隨機(jī)數(shù)生成方法中,為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的多個(gè)單元的輸出反饋至輸入時(shí),將多個(gè)單元的輸出移位指定的單元數(shù)。
權(quán)利要求28的發(fā)明是讓計(jì)算機(jī)執(zhí)行通過密文和隨機(jī)數(shù)的“異或”運(yùn)算來解碼密文的解碼方法的程序,其特征在于通過基于多個(gè)單元的各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成隨機(jī)數(shù),隨機(jī)數(shù)生成方法為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的多個(gè)單元的輸出反饋至輸入時(shí),將多個(gè)單元的輸出移位指定的單元數(shù)。
權(quán)利要求29的發(fā)明是記錄有用于執(zhí)行解碼方法的程序的計(jì)算機(jī)可讀取的記錄介質(zhì)。
圖1是概略說明傳統(tǒng)的塊密碼和流密碼的的示意圖。
圖2是表示采用傳統(tǒng)CA的加密器的結(jié)構(gòu)的框圖。
圖3是用于說明使用傳統(tǒng)CA的加密器中密鑰流的示意圖。
圖4是表示作為密碼用隨機(jī)數(shù)的評(píng)價(jià)的統(tǒng)計(jì)試驗(yàn)之一例試驗(yàn)項(xiàng)目的示意圖。
圖5是表示作為密碼用隨機(jī)數(shù)的評(píng)價(jià)的統(tǒng)計(jì)試驗(yàn)之一例參數(shù)的示意圖。
圖6是表示傳統(tǒng)流密碼即RC4的統(tǒng)計(jì)試驗(yàn)結(jié)果之一例及其它例的示意圖。
圖7是表示使用傳統(tǒng)CA密碼統(tǒng)計(jì)試驗(yàn)結(jié)果之一實(shí)施例及其它例的示意圖。
圖8是表示本發(fā)明的加密器的基本結(jié)構(gòu)及一實(shí)施例的框圖。
圖9是表示本發(fā)明的加密器之一實(shí)施例的框圖。
圖10是用于說明本發(fā)明的加密器之一實(shí)施例中密鑰流的示意圖。
圖11是表示進(jìn)行旋轉(zhuǎn)移位的本發(fā)明的統(tǒng)計(jì)試驗(yàn)結(jié)果之一例及其它例的示意圖。
圖12是表示本發(fā)明的一實(shí)施例的統(tǒng)計(jì)試驗(yàn)結(jié)果之一例及其它例的示意圖具體實(shí)施方式
圖8A表示本發(fā)明的基本結(jié)構(gòu)。將輸入信息數(shù)據(jù)(明文)轉(zhuǎn)換為M比特的并行數(shù)據(jù),并輸入EX-OR門11。來自CA核12的M比特的并行數(shù)據(jù)的密鑰流作為EX-OR門11的另一輸入,并從EX-OR門11輸出密文。對(duì)CA核12輸入作為初始值的秘密密鑰的數(shù)據(jù)和時(shí)鐘脈沖,生成40比特的并行隨機(jī)數(shù)數(shù)據(jù)(密鑰流)。作為一例,圖8B表示設(shè)定M=40時(shí)之一實(shí)施例。CA核12設(shè)為上述的一維二態(tài)三鄰接單元自動(dòng)機(jī)的結(jié)構(gòu),按照以式(2)或(3)表示的規(guī)則30進(jìn)行狀態(tài)更新。
解密器的結(jié)構(gòu)(未圖示)與上述的加密器同樣地構(gòu)成。也就是說,通過將密文供給EX-OR門,密鑰流供給EX-OR門,從而進(jìn)行解密處理。通過將初始值作為共用并取得同步,在加密和解密中使用共用密鑰。
圖9表示一實(shí)施例(三鄰接CA,單元數(shù)1000)中CA核12的結(jié)構(gòu)之一例。S1、S2、S3、......、S999、S1000分別表示從第1至第1000個(gè)單元.對(duì)各單元供給自身和兩個(gè)相鄰單元等共3個(gè)輸入。作為對(duì)于與第1單元S1左邊相鄰單元的輸入,使用對(duì)單元S1000的輸入,作為對(duì)與第1000個(gè)單元S1000右邊相鄰的單元的輸入,使用對(duì)單元S1的輸入。各單元進(jìn)行以上述式(2)或(3)表示的邏輯運(yùn)算,輸出邏輯運(yùn)算結(jié)果O1~O1000。
在單元S1~S1000中分別包括寄存器,各寄存器與時(shí)鐘脈沖(未圖示)同步,依次取得邏輯運(yùn)算結(jié)果并加以保存。某時(shí)間步長(zhǎng)t時(shí)的邏輯運(yùn)算結(jié)果從單元S1~S1000輸出時(shí),寄存器取得下一時(shí)間步長(zhǎng)t+1時(shí)的各單元中運(yùn)算的邏輯運(yùn)算結(jié)果。
為了進(jìn)行下一時(shí)間步長(zhǎng)的運(yùn)算將單元S1~S1000的輸出O1~O1000反饋至S1~S1000,但此時(shí)通過旋轉(zhuǎn)移位部13進(jìn)行旋轉(zhuǎn)移位操作。旋轉(zhuǎn)移位操作是面向圖面看,使輸出O1~O1000整個(gè)移位至左側(cè),再反饋至單元。作為一例,進(jìn)行11個(gè)單元的移位。在此情況下,將輸出O12輸入最左端的單元S1。將輸出O13輸入左起第2個(gè)單元S2。以下,進(jìn)行11個(gè)單元的移位和反饋。另外,在單元S1的左側(cè)溢出的輸出O1~O11被輸入到右側(cè)的11個(gè)單元S990~S1000。
另外,旋轉(zhuǎn)移位的方向面向圖面看是取作左側(cè),但也可以旋轉(zhuǎn)移位至相反的右側(cè)。另外,由于旋轉(zhuǎn)移位量之在設(shè)定后不必改變,因此按照連接的方法能夠構(gòu)成旋轉(zhuǎn)移位部13。但是,為了使旋轉(zhuǎn)移位量的設(shè)定能變更,也可以通過開關(guān)電路構(gòu)成旋轉(zhuǎn)移位部13。
能夠選擇單元S1~S1000的輸出O1~O1000中的一個(gè)輸出作為1比特的密鑰流而作為加密密鑰使用。為了在一實(shí)施例中作為多比特的密鑰流而輸出,將單元S1~S1000的輸出O1~O1000供給采樣部14。采樣部14選擇輸出O1~O1000中的M比特作為密鑰流。使已采樣的單元序號(hào)不是等間隔,而使被選擇的單元序號(hào)的間隔逐漸增大。例如當(dāng)N=1000、M=40時(shí),則間隔按1增加,構(gòu)成1、7、14、22、31、41、52、64、......、976。
一般地說,第n個(gè)(n>1)的單元序號(hào)a(n)按下述公式(4)表示。在上述例中參數(shù)是a(1)=1、d=6。
a(n)=a(1)+Σm=1n-1(d+m-1)----(4)]]>再有,由于采樣的方法在設(shè)定之后不必改變,因此能夠僅通過設(shè)定有效的輸出線來構(gòu)成采樣部14。但是,為了能變更采樣方法的設(shè)定,也可以通過開關(guān)電路構(gòu)成采樣部14。另外,雖然能使已采樣的單元序號(hào)的間隔逐漸增大,但也可以使其逐漸減小。還可以使單元間隔隨機(jī)地變化。
圖10表示在上述一實(shí)施例中從采樣部14輸出的密鑰流。如果從原來的CA看,則在最初的時(shí)間步長(zhǎng)(t=1)中可以選擇單元序號(hào)1、7、14、22、31、......作為密鑰流而輸出。由于要進(jìn)行旋轉(zhuǎn)移位處理,因此如果從原來的CA看,則在下一時(shí)間步長(zhǎng)(t=2)中可以選擇單元序號(hào)12、18、25、33、......作為密鑰流而輸出。
圖11表示在上述的本發(fā)明之一實(shí)施例中僅有旋轉(zhuǎn)移位部13以及沒有采樣部14時(shí)的NIST試驗(yàn)的結(jié)果。圖12表示有旋轉(zhuǎn)部13及采樣部14兩者時(shí)的NIST試驗(yàn)的結(jié)果。
從旋轉(zhuǎn)移位數(shù)為11時(shí)的試驗(yàn)結(jié)果(圖11)可知對(duì)于兩個(gè)初始值,全部16種試驗(yàn)都能通過。
另外,在單元數(shù)為1000、且通過采樣而抽樣40單元信息時(shí)的試驗(yàn)結(jié)果(圖12)中,由于初始值不同,第7試驗(yàn)(Non-overlapping TemplateMatching Test)的一個(gè)碼型未通過,但由于不是經(jīng)常不通過,因此沒有問題。
將單元數(shù)1000的CA規(guī)則30(旋轉(zhuǎn)移位數(shù)為11個(gè)單元)實(shí)際安裝于FPGA(Field Programmable Gate Array大規(guī)模PLD(programmablelogic Device),最后得到(門數(shù)=14699,最大動(dòng)作頻率=105.831MHz,加密(解密)速度=4.233Gbps)的結(jié)果。例如在數(shù)字視頻數(shù)據(jù)的實(shí)時(shí)加密和解密中時(shí)鐘脈沖的頻率是27MHz,能夠達(dá)到約1Gbps的加密(解密)速度。
根據(jù)上述的發(fā)明,與以前提出的RC4及規(guī)則30比較,能夠使隨機(jī)性更加提高。另外,由于不損害安全性而能夠取出多比特的隨機(jī)數(shù),因此可以提高加密的速度。另外,由于電路結(jié)構(gòu)單一,因此能夠使最大工作頻率增高。也就是說,可以容易地實(shí)現(xiàn)高速處理大量信息的硬件。
本發(fā)明不限定于上述的實(shí)施例,在不背離本發(fā)明宗旨的范圍內(nèi)可以有各種變形及應(yīng)用。一般地說,例如本發(fā)明可使用依賴于K個(gè)單元的狀態(tài)值的一維二態(tài)K鄰接單元自動(dòng)機(jī)。另外,除了流密碼之外,本發(fā)明的隨機(jī)數(shù)生成器也適用于蒙特-卡羅法。
權(quán)利要求
1.一種基于一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成裝置,該自動(dòng)機(jī)中一維地配置多個(gè)單元,各單元具有0或1作為狀態(tài)值,下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則提供,各單元的狀態(tài)值按照該規(guī)則更新,所述隨機(jī)數(shù)生成裝置中設(shè)有為了在輸出多個(gè)單元的至少一個(gè)單元的輸出的同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入的路徑;以及插入所述路徑的、將所述多個(gè)單元的輸出以預(yù)定的單元數(shù)移位的移位處理部件。
2.如權(quán)利要求1中記載的隨機(jī)數(shù)生成裝置,其特征在于所述一維二態(tài)K鄰接單元自動(dòng)機(jī)是下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和兩個(gè)相鄰單元的狀態(tài)值的規(guī)則而提供、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)三鄰接單元自動(dòng)機(jī)。
3.如權(quán)利要求1中記載的隨機(jī)數(shù)生成裝置,其特征在于還設(shè)有在所述多個(gè)單元的輸出中選擇預(yù)定的多個(gè)單元并將它們并行輸出的采樣部件。
4.如權(quán)利要求3中記載的隨機(jī)數(shù)生成裝置,其特征在于所述預(yù)定的多個(gè)單元中被選擇單元的相互間隔按序增加或按序減小。
5.如權(quán)利要求1中記載的隨機(jī)數(shù)生成裝置,其特征在于所述反饋路徑和所述移位處理部件在集成電路上實(shí)現(xiàn)。
6.一種基于一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法,該自動(dòng)機(jī)中多個(gè)單元的各單元具有0或1作為狀態(tài)值,下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供,且各單元的狀態(tài)值按照該規(guī)則更新,所述方法中為了輸出多個(gè)單元中至少一個(gè)單元的輸出,同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入時(shí),將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)。
7.如權(quán)利要求6中記載的隨機(jī)數(shù)生成方法,其特征在于所述一維二態(tài)K鄰接單元自動(dòng)機(jī)是下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和兩個(gè)相鄰單元的狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)三鄰接單元自動(dòng)機(jī)。
8.如權(quán)利要求6中記載的隨機(jī)數(shù)生成方法,其特征在于在所述多個(gè)單元的輸出中選擇預(yù)定的多個(gè)單元,并將它們并行輸出。
9.如權(quán)利要求8中記載的隨機(jī)數(shù)生成方法,其特征在于所述預(yù)定的多個(gè)單元中被選擇單元的相互間隔按序增加或按序減小。
10.一種令計(jì)算機(jī)執(zhí)行隨機(jī)數(shù)生成方法的程序,該方法基于其多個(gè)單元的各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī),其中為了輸出多個(gè)單元的至少一個(gè)單元的輸出,同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入時(shí),將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)。
11.一種記錄有令計(jì)算機(jī)執(zhí)行隨機(jī)數(shù)生成方法的程序的計(jì)算機(jī)可讀取的記錄介質(zhì),該方法基于其多個(gè)單元的各單元具有0或1作為狀態(tài)值的、下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī),其中為了輸出多個(gè)單元中至少一個(gè)單元的輸出,同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入時(shí),將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)。
12.一種通過明文和隨機(jī)數(shù)的“異或”運(yùn)算來生成密文的加密裝置,其特征在于隨機(jī)數(shù)由基于一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成裝置生成,該自動(dòng)機(jī)中一維地配置多個(gè)單元,各單元具有0或1作為狀態(tài)值,下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供,且各單元的狀態(tài)值按照該規(guī)則更新;設(shè)有為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入的路徑,以及插入所述路徑并將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)的移位處理部件。
13.如權(quán)利要求12中記載的加密裝置,其特征在于所述一維二態(tài)K鄰接單元自動(dòng)機(jī)是下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和兩個(gè)相鄰單元的狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)三鄰接單元自動(dòng)機(jī)。
14.如權(quán)利要求13中記載的加密裝置,其特征在于所述隨機(jī)數(shù)輸出裝置還設(shè)有從所述多個(gè)單元的輸出中選擇預(yù)定的多個(gè)單元,并將它們并行輸出的采樣部件。
15.如權(quán)利要求13中記載的加密裝置,其特征在于所述預(yù)定的多個(gè)單元中被選擇單元的相互間隔按序增加或按序減小。
16.如權(quán)利要求13中記載的加密裝置,其特征在于所述反饋的路徑和所述移位處理部件在集成電路上實(shí)現(xiàn)。
17.一種通過明文和隨機(jī)數(shù)的“異或”運(yùn)算來生成密文的加密方法,其特征在于隨機(jī)數(shù)由基于多個(gè)單元的各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成;所述隨機(jī)數(shù)生成方法中,為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入時(shí),將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)。
18.如權(quán)利要求17中記載的加密方法,其特征在于所述一維二態(tài)K鄰接單元自動(dòng)機(jī)是下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和兩個(gè)相鄰單元的狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)三鄰接單元自動(dòng)機(jī)。
19.如權(quán)利要求17中記載的加密方法,其特征在于所述隨機(jī)數(shù)生成方法中,還在所述多個(gè)單元的輸出中選擇預(yù)定的多個(gè)單元,并將它們并行輸出。
20.如權(quán)利要求17中記載的加密方法,其特征在于所述預(yù)定的多個(gè)單元中被選擇單元的相互間隔按序增加或按序減小。
21.一種令計(jì)算機(jī)執(zhí)行通過明文和隨機(jī)數(shù)的“異或”運(yùn)算來生成密文的加密方法的程序,其特征在于隨機(jī)數(shù)由基于多個(gè)單元的各單元具有0或1作為狀態(tài)值的、下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成;所述隨機(jī)數(shù)生成方法中,為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入時(shí),將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)。
22.一種記錄有令計(jì)算機(jī)執(zhí)行通過明文和隨機(jī)數(shù)的“異或”運(yùn)算來生成密文的加密方法的程序的計(jì)算機(jī)可讀取的記錄介質(zhì),其特征在于隨機(jī)數(shù)由基于多個(gè)單元的各單元具有0或1作為狀態(tài)值的、下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成;所述隨機(jī)數(shù)生成方法中,為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入時(shí),將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)。
23.一種按照密文和隨機(jī)數(shù)的“異或”運(yùn)算來解密密文的解密裝置,其特征在于隨機(jī)數(shù)由基于一維地配置多個(gè)單元的、各單元具有0或1作為狀態(tài)值、下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成裝置生成;該解密裝置設(shè)有為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值而將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入的路徑,以及插入所述路徑的、且將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)的移位處理部件。
24.如權(quán)利要求23中記載的解密裝置,其特征在于所述一維二態(tài)K鄰接單元自動(dòng)機(jī)是下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和兩個(gè)相鄰單元的狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)三鄰接單元自動(dòng)機(jī)。
25.如權(quán)利要求23中記載的解密裝置,其特征在于所述反饋的路徑和所述移位處理部件在集成電路上實(shí)現(xiàn)。
26.一種按照密文和隨機(jī)數(shù)的“異或”運(yùn)算來解密密文的解密方法,其特征在于隨機(jī)數(shù)由基于多個(gè)單元的各單元具有0或1作為狀態(tài)值的、下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成;所述隨機(jī)數(shù)生成方法中,為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入時(shí),將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)。
27.如權(quán)利要求26中記載的解密方法,其特征在于所述一維二態(tài)K鄰接單元自動(dòng)機(jī)是下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和兩個(gè)相鄰單元的狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)三鄰接單元自動(dòng)機(jī)。
28.一種令計(jì)算機(jī)執(zhí)行通過密文和隨機(jī)數(shù)的“異或”運(yùn)算來解密密文的解密方法的程序,其中包括隨機(jī)數(shù)由基于多個(gè)單元的各單元具有0或1作為狀態(tài)值的、下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成;所述隨機(jī)數(shù)生成方法中,為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入時(shí),將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)。
29.一種記錄有令計(jì)算機(jī)執(zhí)行通過密文和隨機(jī)數(shù)的“異或”運(yùn)算來解密密文的解密方法的程序的計(jì)算機(jī)可讀取的記錄介質(zhì),其特征在于隨機(jī)數(shù)由基于多個(gè)單元的各單元具有0或1作為狀態(tài)值的、下一時(shí)刻的各單元的狀態(tài)值按照僅依賴于自身的狀態(tài)值和鄰接單元狀態(tài)值的規(guī)則而提供的、且各單元的狀態(tài)值按照該規(guī)則更新的一維二態(tài)K鄰接單元自動(dòng)機(jī)的隨機(jī)數(shù)生成方法生成;所述隨機(jī)數(shù)生成方法中,為了輸出多個(gè)單元的至少一個(gè)單元的輸出、同時(shí)更新所述多個(gè)單元的下一時(shí)刻的狀態(tài)值,在將當(dāng)前時(shí)刻的所述多個(gè)單元的輸出反饋至輸入時(shí),將所述多個(gè)單元的輸出移位預(yù)定的單元數(shù)。
全文摘要
通過CA核生成用于加密的隨機(jī)數(shù)。CA核作成一維二態(tài)三鄰接單元自動(dòng)機(jī)的結(jié)構(gòu)。對(duì)單元的各單元供給對(duì)于自身和兩個(gè)相鄰單元等共計(jì)3個(gè)輸入。各單元進(jìn)行邏輯運(yùn)算,并輸出邏輯運(yùn)算結(jié)果。在各單元中包括寄存器,各寄存器與時(shí)鐘脈沖同步,依次取得邏輯運(yùn)算結(jié)果并加以保存。為了進(jìn)行下一時(shí)間步長(zhǎng)的運(yùn)算,將單元的輸出反饋至單元,這時(shí)進(jìn)行使輸出向左側(cè)移位、然后反饋至單元的旋轉(zhuǎn)移位操作。為了作為多比特的隨機(jī)數(shù)輸出,可選擇單元輸出中的40比特。被選擇的單元序號(hào)不是等間隔的,而是逐漸增大的。
文檔編號(hào)H04L12/22GK1759563SQ03826198
公開日2006年4月12日 申請(qǐng)日期2003年3月25日 優(yōu)先權(quán)日2003年3月25日
發(fā)明者金成主, 長(zhǎng)谷川晃朗, 梅野健 申請(qǐng)人:獨(dú)立行政法人情報(bào)通信研究機(jī)構(gòu)