專利名稱:使用擬群的密碼原語、差錯編碼和偽隨機(jī)數(shù)改進(jìn)方法
技術(shù)領(lǐng)域:
本發(fā)明的一般領(lǐng)域是信息傳輸。本發(fā)明更具體的領(lǐng)域是數(shù)據(jù)加密/解密。本發(fā)明另一更具體的領(lǐng)域是差錯編碼。本發(fā)明的再一更具體的領(lǐng)域是偽隨機(jī)數(shù)。
背景技術(shù):
可以使用密碼系統(tǒng)以為數(shù)據(jù)通信提供數(shù)據(jù)完整性和/或數(shù)據(jù)安全性。后者對于保護(hù)信道(包括有線和無線信道)上通信的數(shù)據(jù)可能是很重要的。一種加密類型利用流密碼(stream cipher)。塊密碼(block cipher)的特征是響應(yīng)于相同塊輸入產(chǎn)生相同塊輸出,與塊密碼相反,流密碼可以響應(yīng)于同樣輸入而在不同時間給出不同輸出。流密碼使用稱為種子(seed)或密鑰的輸入,將輸入串(如消息)轉(zhuǎn)換成加密的輸出串(如密文(ciphertext)),目的在于,沒有該密鑰的各方將看到加密的串為隨機(jī)序列。加密的級別,以及在某種程度上為加密投入的資源,決定對于其他各方的安全性(或隨機(jī)性)的級別。
由于缺少對特定輸入的固定輸出響應(yīng),因此流密碼提供高于塊密碼的改善的安全性。在本領(lǐng)域中存在自同步(有時稱為異步)和同步密碼。在同步流密碼中,來自解密的流的較后的輸出不受在傳輸期間發(fā)生的差錯(除了實際差錯比特或比特組(塊)上的差錯)的影響。當(dāng)差錯影響解密的流時,采用自同步流密碼。自同步密碼流方法允許在差錯引起錯誤地解碼或傳輸多個塊之后,正確解密流。
塊和流密碼、以及密碼系統(tǒng)或傳輸方法一般而言利用一些重要的支持方法。作為實例,在密碼中使用(偽)隨機(jī)數(shù)生成。生成偽隨機(jī)數(shù),以便例如為加密和解密方法提供種子或基數(shù)。作為另一個實例,通??梢杂脕砀纳仆ㄐ?特別是在噪聲信道上)的糾錯碼,在密碼方法中也可以提供益處。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的優(yōu)選實施例,提供多種流密碼,包括同步流密碼、自同步流密碼和完全異步流密碼,其采用工作密鑰和擬群(quasigroup)變換,其中使用的擬群是基于初始秘密密鑰的。還提供糾錯和偽隨機(jī)數(shù)生成改進(jìn)器方法,它們也采用擬群變換。
圖1是根據(jù)本發(fā)明的實施例的包括發(fā)送器和接收器的基本通信系統(tǒng)的框圖。
具體實施例方式 一般而言,在本發(fā)明的某些實施例中,提供具有可選擇的密鑰長度的同步流密碼。在示例性實施例中,提供用于生成均勻分布的密鑰流的步驟,該密鑰流與明文(plaintext)數(shù)據(jù)流加性組合,以生成加密的輸出流。密鑰流生成步驟包括基于秘密初始密鑰確定工作擬群變換,并且使用該工作擬群生成密鑰流。優(yōu)選的同步流密碼還對攻擊提供了計算上不可行的屏障。密鑰長度可以改變,以改進(jìn)密碼的安全性,而不用隨著密鑰大小增加,重新設(shè)計加密和解密的算法。對于足夠小的密鑰大小,運算可以在硬件或固件實現(xiàn)中流水線進(jìn)行。
在本發(fā)明的其他實施例中,提供具有可變密鑰長度的自同步流密碼,也不需要隨著密鑰大小增加,重新設(shè)計加密和解密的算法。在自同步流密碼的特定實施例中,通過基于秘密初始密鑰確定工作擬群,以及作為工作密鑰、工作擬群、以及要加密或解密的消息的固定數(shù)量的字母的函數(shù),加密或解密消息,以執(zhí)行加密和解密。與優(yōu)選的同步流密碼一樣,優(yōu)選的自同步流密碼對于攻擊是計算上不可行的,并且具有足夠小的輸入密鑰,可以在硬件或固件實現(xiàn)中流水線進(jìn)行。
在本發(fā)明的又一實施例中,提供一種新型的密碼—完全異步流密碼,其中生成輸出流,作為工作密鑰、基于初始密鑰確定的工作擬群、和輸入流的前面固定數(shù)量的字母的函數(shù)。這種類型的密碼已被示出對于對手的各種攻擊是安全的。同步密碼、自同步密碼和異步密碼是可以使用擬群的、根據(jù)本發(fā)明的實施例實現(xiàn)的密碼原語的例子。如這里使用的,術(shù)語“擬群”指擬群或者其任何等效代數(shù)對象。
本發(fā)明的其他實施例提供一種方法,通過將消息的塊映射到碼字,在二進(jìn)制對稱信道中糾錯,其中映射是迭代的,并且對于任意碼字,長度r的C的子串的分布是均勻的。根據(jù)優(yōu)選實施例,使用擬群變換執(zhí)行該映射。優(yōu)選實施例提供低誤比特率,例如,在幾百比特的塊的情況下,范圍在10-5內(nèi),與在幾千比特的塊的情況下,實現(xiàn)該誤比特率的Turbo編碼和LDPC相比,更加優(yōu)越。
本發(fā)明的其他實施例提供改進(jìn)器,用于改進(jìn)偽隨機(jī)數(shù)生成器的輸出。通過改進(jìn)器,解決了生成器中的輸出弱點。改進(jìn)實施例可以將偽隨機(jī)串的周期增大到任何期望的長度。從可以使得各字母、各字母對、各三元組和廣義的k元組的分布是均勻的意義上來說,可以使偽隨機(jī)串均勻。優(yōu)選的改進(jìn)器不接替生成器的性質(zhì),并且即使在生成器產(chǎn)生瑣碎輸出(例如僅由字母串構(gòu)成)時也能工作。優(yōu)選的改進(jìn)器考慮到擬群串變換中認(rèn)識到的性質(zhì)。復(fù)雜度是線性的(O(n)),其中n是輸入偽隨機(jī)串的長度,因此該改進(jìn)器非??焖佟K莒`活,并且可以在對于每個n>1的n比特字母的字母表上工作。改進(jìn)器的各實施例可以在例如小于1Kb的存儲空間中實現(xiàn)。優(yōu)選實施例的改進(jìn)器接受低質(zhì)量的偽隨機(jī)串。使用可選階的擬群變換該串,并且變換的次數(shù)也是可選擇的。該改進(jìn)器輸出高質(zhì)量的偽隨機(jī)串。
參照附圖,本發(fā)明的方法可以在通信系統(tǒng)14中使用的發(fā)送器10和/或接收器12中實現(xiàn)。發(fā)送器10從信息源18接收消息16,并且可以將該消息加密(或者改進(jìn)該消息,如果使用差錯編碼或偽隨機(jī)數(shù)改進(jìn))用于經(jīng)由信道20進(jìn)行信號傳輸。如本領(lǐng)域中將認(rèn)識到的,信道20可以是有噪聲的。接收器12接收信號(加密的消息、包含差錯、偽隨機(jī)數(shù)等的消息),并且可以將該信號消息解密和/或糾正該信號中的差錯,以產(chǎn)生解密或糾正的消息22,其被發(fā)送到目的地24。
預(yù)期可以配置發(fā)送器10和/或接收器12,以實現(xiàn)本發(fā)明的一個或多個方法。進(jìn)一步預(yù)期可以使用計算機(jī)可讀介質(zhì)、芯片、傳播信號、計算機(jī)等,以實現(xiàn)本發(fā)明的一個或多個方法或者導(dǎo)致其被實現(xiàn)?,F(xiàn)在將討論根據(jù)本發(fā)明的各方面的各種方法。
在本發(fā)明的第一類型的實施例中,提供具有可證明的安全性的、靈活的加性流密碼,這里稱為EdonX,它變換比特元組(tuples of bits)—優(yōu)選地是半字節(jié)(nibble)(即,4比特元組)的輸入流。EdonX的密鑰長度是可變的,并且可以是n個半字節(jié)的任何串。通過使用擬群(quasigroup)串變換定義EdonX,并且其安全性基于擬群和擬群串變換的數(shù)學(xué)特性。在優(yōu)選實施例中,EdonX使用可以用128字節(jié)存儲的16階擬群,并且連同內(nèi)部存儲器和可執(zhí)行代碼一起,它可以用小于1Kb實現(xiàn)。因此,在優(yōu)選實施例中,EdonX適于在嵌入式系統(tǒng)中硬件實現(xiàn)。
一般而言,流密碼使用隨時間改變的加密變換,一次一個地加密明文消息的各個字符(通常是二進(jìn)制位),而塊密碼使用固定的加密變換,同時加密明文消息的字符組(group)。為了解決設(shè)計密碼強(qiáng)大并且高質(zhì)量的流密碼的問題,公開了一種具有可證明的安全性、靈活的加性流密碼EdonX,其變換半字節(jié)(即,4比特元組)的輸入流。EdonX的密鑰長度是可變的,并且可以是n個半字節(jié)的任何串,但出于安全的原因,我們建議n≥32。通過使用擬群串變換定義EdonX,并且其安全性基于擬群和擬群串變換的數(shù)學(xué)特性。EdonX的設(shè)計使用可以用128字節(jié)存儲的16階擬群,并且連同內(nèi)部存儲器和可執(zhí)行代碼一起,它可以用小于1Kb實現(xiàn)。因此,EdonX適于在嵌入式系統(tǒng)中硬件實現(xiàn)。
我們將簡要地提及同步流密碼的定義,如在A.Menezes,P.Van Oorschot和S.Vanstone的Handbook of Applied Cryptography,CRC Press,Inc.,1997中定義的。
定義1 同步流密碼是這樣的密碼,其中密鑰流獨立于明文消息和密文生成。
同步流密碼的加密處理可以通過以下等式描述 σi+1=f(σi,k),zi=g(σi,k),ci=h(zi,mi) 其中σ0是初始狀態(tài),并且可以從密鑰k確定,f是下一狀態(tài)函數(shù),g是產(chǎn)生密鑰流zi的函數(shù),而h是輸出函數(shù),其將密鑰流和明文mi組合以產(chǎn)生密文ci。
定義2 二進(jìn)制加性流密碼是這樣的同步流密碼,其中密鑰流、明文和密文位是二進(jìn)制位,并且輸出函數(shù)h是XOR函數(shù)。
根據(jù)優(yōu)選實施例的EdonX流密碼是二進(jìn)制加性流密碼。通過使用擬群運算和擬群串變換定義EdonX。這里我們給出簡要概述,要注意這里使用的術(shù)語“擬群”也可以指等效于擬群的代數(shù)對象。
定義3 擬群(Q,*)是滿足以下規(guī)則的廣群(groupoid)
這里我們將僅使用有限擬群,即,Q是有限集。與有限擬群密切相關(guān)的組合結(jié)構(gòu)是所謂的拉丁方(Latin square) 定義4基數(shù)IQI=n的有限集Q上的拉丁方L,是具有來自Q的各元素的n×n矩陣,使得該矩陣的每行和每列是Q的置換(permutation)。
對于由其乘法表給出的任何有限擬群(Q,*),它與拉丁方L相關(guān)聯(lián),該拉丁方L包括由該表的主體形成的矩陣,并且集合Q上的每個拉丁方L定義擬群(Q,*)。
兩個擬群之間的合痕(isotopism)與自合痕(autotopism)的關(guān)系定義如下。
定義5如果存在從K到Q的雙射(bijection)α,β,γ,使得對于每個x,y∈K,γ(x*y)=α(x)·β(y),則稱為擬群(K,*)是對擬群(Q,·)的合痕。于是稱三元組(α,β,γ)是從(K,*)到(Q,·)的合痕。
(K,*)的自合痕是(K,*)到其自身的合痕。我們用Autotope(K,*)表示由(K,*)通過一些自合痕獲得的擬群。注意到,存在不超過|K|3個對(K,*)自合痕的擬群。如果α=1和β=1是恒等置換,并且γ是轉(zhuǎn)置,則我們用γ(K,*)表示在自合痕(1,1,γ)下對(K,*)自合痕的擬群。
兩個自合痕(α,β,γ)和(α′,β′,γ′)的乘法是以分量方式定義的,即, (α,β,γ)(α′,β′,γ′)=(αα′,ββ′,γγ′) 在證明EdonX的安全性方面,將使用下列性質(zhì) 命題1擬群(Q,*)的所有自合痕的集合Γ是在自合痕的乘法運算下的組。
在Denes,J.,Keedwell,A.D.Latin Square and their Applications,EnglishUniver.Press Ltd.,1974中進(jìn)一步說明了該性質(zhì)。給定擬群(Q,*),可以從運算*導(dǎo)出五個新運算,所謂的伴生(parastrophes)或伴隨(adjoint)運算。我們將只需要用\和/表示的下面兩個(稱為左伴生和右伴生),并且定義為 x*y=zy=x\zx=z/y 則代數(shù)集(Q,*,\,/)滿足恒等式 x\(x*y)=y(tǒng),x*(x\y)=y(tǒng),(x*y)/y=x,(x/y)*y=x, 并且(Q,\),(Q,/)也是擬群。
接著,我們定義擬群串變換的方法。考慮字母表(即,有限集)Q,并且用Q+表示由Q的各元素組成的所有非空詞(word)(即,有限串)的集合。Q+的各元素將用a1a2...an表示,而不是(a1,a2,...,an),其中ai∈Q。令*為集合Q上的擬群運算,即,考慮擬群(Q,*)。對于每個a∈Q,我們定義兩個函數(shù)ea,*,da,*Q+→Q+如下。
令ai∈Q,α=a1a2...an。則 ea,*(α)=b1b2...bnb1=a*a1,b2=b1*a2,...,bn=bn-1*an,如該表中所示
即,對于每個i+0,1,...,n-1,有bi+1=bi*ai+1,其中b0=a,,并且da,*(α)=c1c2...cnc1=a*a1,c2=a1*a2,...,cn=an-1*an如該表中所示
即,對于每個i=0,1...,n-1,有ci+1=ai*ai+1,其中a0=a.。
函數(shù)ea,*,da,*稱為Q+基于具有首項a的運算*的e-和d-變換。
例如,取Q={0,1,2,3},并且令擬群(Q,*)及其伴生(Q,\)由下表中的乘法方案給出
考慮串M=00102300120010020003,并且選擇首項0。然后通過變換e0,*,我們將得到變換后的串C=e0,*(M)=21023130113013002131,并且通過變換d0,\,我們將得到串D=d0,\(M)=22110202133211203223。
如果我們對串C應(yīng)用變換d0,\,或者對串D應(yīng)用變換e0,*,則我們將得到初始串M。事實上,如Markovski,S.,Gligoroski,D.,Bakeva,V.QuasigroupString ProcessingPart 1,Maced.Acad.of Sci.and Arts,Sc.Math.Tech.Scien.XX 1-2,(1999)1328所討論的,下面性質(zhì)為真 命題2對于每個串M∈Q+以及對于每個首項l∈Q,dl,\(el,*(M))=M=el,*(dl,\(M)),成立,即,el,*和dl,\是Q+的互逆置換。
優(yōu)選地,EdonX對半字節(jié)運算,即,對4比特變量運算,因此它使用16階擬群(Q,*),以便對數(shù)據(jù)流進(jìn)行擬群串變換。因此,對應(yīng)拉丁方的各值用4比特表示。這對于存儲在n個內(nèi)部變量Ki(即,K=K0K1...Kn-1)中的工作密鑰的各值也成立,并且變量Ki具有范圍{0,1,...,15}中的值。K的第i個值也將用K[i](=Ki)表示。
EdonX在初始化階段中,使用工作密鑰K的初始秘密值Kin=Kin
Kin[1]...Kin[n-1]。初始的16階擬群(Q,·)可以是秘密的或公開的。通過存儲在Kin中的秘密信息,EdonX對初始擬群(Q,·)以及對Kin的各值進(jìn)行變換。在優(yōu)選實施例中,EdonX也使用兩個臨時的4比特變量T和X,以及一個額外的整數(shù)變量Counter。EdonX的解密函數(shù)與加密函數(shù)相同。
EdonX加密(和解密)函數(shù)由下面的過程定義。運算*是通過從給出的初始擬群的運算·的自合痕而得到的擬群運算。運算是對半字節(jié)(即,4比特字母)的以比特方式的XOR運算。數(shù)m=maxn,64表示工作密鑰的長度,并且它取決于初始密鑰的長度n,但是出于安全的原因,我們?nèi)≥64。初始化階段在下文通過單獨的過程描述。
該算法非常重要的階段是初始化階段。它包括密碼學(xué)算法中已經(jīng)公知的技術(shù),如填充(padding)、擴(kuò)展和變換秘密共享的初始密鑰Kin。然后,使用來自擴(kuò)展和變換的密鑰Kin的信息,以變換初始給出的擬群,以及設(shè)置工作密鑰K的m個半字節(jié)的各初始值。初始密鑰的長度n(以半字節(jié)為單位)可以是任何正整數(shù),n越大,安全性越高(并且正如總是這樣的情形,安全性的代價是系統(tǒng)的速度);我們建議32≤n≤255。密鑰選擇的靈活性是EdonX的重要特征。
初始化階段由下面算法描述 我們應(yīng)當(dāng)闡明在初始化階段中使用的若干運算和符號。首先,Kin表示初始密鑰,Kex表示擴(kuò)展的密鑰,并且符號II表示4比特字母的連接。然后,通知Km[j]表示Kin的第j個半字節(jié)。函數(shù)RotateLeft(Kex)循環(huán)旋轉(zhuǎn)Kex的各值,使得Kex[i]←Kex[i+1],i=0,1,2,...,510和Kex[511]←Kex
。函數(shù)SwapRows和SwapColumns的名字不言而喻,它們是交換擬群的各行或各列的函數(shù)。
在初始化階段的最后,我們得到對手不知道的兩個工作結(jié)構(gòu)。即,第一未知結(jié)構(gòu)是原始擬群Q(·)的自合痕—工作擬群(Q,*),并且它是大約(16!)3≈2132個自合痕中的一個,并且第二未知結(jié)構(gòu)是替代原始初始秘密密鑰Kin的、長度為4m比特(m個半字節(jié))的工作密鑰K。(然而,16階擬群的自合痕類(autotopism class)的確切數(shù)量是未知的;最好的已知公共可得的結(jié)果是對于11階擬群的。) 現(xiàn)在將用簡化的(2-比特)EdonX呈現(xiàn)初始化、加密和解密運算的示例。該示例實現(xiàn)EdonX的原理,但為了簡化說明,我們使用4階擬群,而不使用16階擬群。因此,我們用2比特字母(即,0、1、2和3),而不用半字節(jié)。此外,我們不使用長度512的擴(kuò)展的密鑰,而將其縮短到長度16,并且我們還取m=n。事實上,我們將EdonX的初始化階段的階段5改變?yōu)橄旅娴暮唵涡问? 令初始擬群(Q,·)與前一示例中相同 設(shè)置初始值為半字節(jié)的Kin=131。由于Kin的長度為3,并且由于用兩個2比特字母對數(shù)字3的表示為0011=00‖11),因此我們填充Kin,并且得到Kin=13103。然后通過連接Kin若干次,我們得到長度16的Kex,即Kex=1310313103131031。然后通過el,·變換,變換擴(kuò)展的密鑰,我們得到Kex的最終值,其中循環(huán)取首項l為填充的Kin的各值。在下面的表中,我們總結(jié)這些變形。
隨著最后值Kex=3203330012212323,我們開始交替地交換各行、交換各列以及轉(zhuǎn)置初始擬群(Q,·)的各元素,以便獲得其自合痕。因此,首先我們交換行3和2,然后是列0和3,然后我們轉(zhuǎn)置元素2和3,等等,如下各表中所示。
最后獲得的擬群是將用于加密和解密的工作擬群(Q,*) 工作密鑰K取Kex的最后n=3個字母,并且成為K=323。
現(xiàn)在,編碼明文消息M=30102300。用EdonX的優(yōu)選實施例執(zhí)行的計算如下表中所示。
由于EdonX是二進(jìn)制加性流密碼,因此解密階段的計算是相同的,并且唯一的差別將是在最后兩行中(在這種情況下輸入將為C,并且輸出M=XC)。
在開始,并且初始工作密鑰K具有值K=323=3‖2‖3,X的值為X=K[Counter mod 3]=K0=3,并且T的值為T=K[(Counter+p)mod 3]=K1=2。然后,根據(jù)算法,如下我們獲得X和T的各中間值以及密鑰K的各新值。
對于i=0,我們有X←X0=K0*X=3*3=3,T←T0=T·X=2·3=1,K0←X=3,對于i=1,我們有X←X1=K1*X=2*3=0,T←T1=T·X =0·0=2,K1←X=0,并且對于i=2,我們有X←X2=K2*X=3*0=0,T←T·X=1·0=1,K2←X=0。然后,我們將K2的值改變?yōu)镵2←T=1。通過這種方式,我們得到,對于Counter=1的新工作密鑰為K=K0K1K2=X0X1T2=301,并且我們有輸出值C0=XM0=03=3。在上表中給出了對于Counter=0,Counter=1,...,Counter=7的所有計算。因此,輸入的明文串M=3010230O被加密成密文串C=30020312。
接著,我們將討論和演示同步流密碼EdonX的優(yōu)選實施例的安全性益處??紤]安全性,我們假設(shè)初始秘密密鑰Kin的長度n至少為32。我們還假設(shè)對手有可能選擇明文/密文攻擊,即,她/他可以選擇明文并且可以獲得對應(yīng)的密文,并且假設(shè)初始擬群(Q,·)和初始密鑰的長度n是公開的。此外,我們假設(shè)秘密密鑰Kin的初始值以及密碼的內(nèi)部各狀態(tài)工作密鑰K、工作擬群(Q,*)以及X和T的各值對于對手是未知的,并且她/他不能物理上訪問它們。我們考慮到,如果對手將能夠成功地重構(gòu)工作密鑰K、以及X和T的各值的一些部分,那么她/他將攻破EdonX。
我們已經(jīng)能夠示出,在不知道初始密鑰Kin的情況下,不存在計算上可行的方法來知道工作擬群(Q,*)和工作密鑰K的起始各值。我們將在下列步驟中給出證明對手不能有效獲得關(guān)于X和T的各值以及工作密鑰K的一部分的信息。在下面的分析中,我們使用下列擬群串變換的性質(zhì) 命題3設(shè)(Q,*)為擬群,α為Q*的任意串,并且el,*是首項為l的變換。如果我們對α應(yīng)用el,*k次,則獲得的串β=(el,*)k(α)具有各字母、各字母對、各字母的k-元組的均勻分布。
為了分析EdonX初始化階段,按照我們的假設(shè),密鑰Kin的初始值可以具有至少128比特的長度。通過初始密鑰有多長的信息而進(jìn)行的Kin的填充,是其他公知的密碼原語(cryptographic primitive)(如散列函數(shù))中的標(biāo)準(zhǔn)過程。其作用是消除用兩個不同初始密鑰獲得相同結(jié)果的可能性。例如,如果我們不進(jìn)行填充,則初始密鑰
和
將產(chǎn)生相同的工作密鑰K。另一方面,填充向我們確保對于不同初始密鑰Kin,起始擴(kuò)展的密鑰Kex將是不同的。擴(kuò)展的密鑰Kex具有512個半字節(jié)的長度。它被公知的16階擬群(Q,·)變換512次。由命題3,我們有下列推論 推論1 密鑰Kex中的各字母、各字母對、各字母三元組、....的分布是均勻的。
密鑰Kex的分布的均勻性揭示了工作密鑰K的分布的均勻性。由于K的長度至少為64個半字節(jié),即,256比特,因此對手可以以不大于2-256的概率猜出工作密鑰。
作為推論1的結(jié)果,我們還有下列性質(zhì) 定理1 工作擬群(Q,*)是自合痕于初始擬群(Q,·)而隨機(jī)獲得的。
證明在EdonX的初始化的階段5中,在迭代處理期間,我們交換各行(row1row2)和各列(column1column2),并且我們應(yīng)用轉(zhuǎn)置γ。這意味著在每個迭代步驟中,我們應(yīng)用自合痕(α,β,γ),其中,α=(row1row2),β=(column1column2),是在迭代的擬群上的置換,即,轉(zhuǎn)置。因此,在階段5中的每個迭代步驟之后,我們獲得作為輸入擬群的自合痕的擬群。通過命題1,工作擬群(即,階段5的最終輸出)是這樣的擬群,即,在自合痕(α′,β′,γ′,)下的初始擬群的自合痕。α′,β′,γ′置換事實上是在階段5期間分別獲得的所有64個轉(zhuǎn)置α=(row1row2)β=(column1column2)和γ的各乘積。由于在16元素集合上的每個置換可以表示為不超過15個轉(zhuǎn)置的乘積,并且從隨機(jī)密鑰Kex獲得轉(zhuǎn)置α,β,γ,因此我們有,α′,β′和γ′是可能的16!個置換中的任何置換。結(jié)果,我們得到,工作擬群可以是初始公開擬群的任何自合痕。
由于16階擬群上存在大約16!3≈2132個自合痕,因此我們發(fā)現(xiàn),只能以大約2-132的概率猜出工作擬群。
為了分析EdonX加密/解密階段,從前面的部分我們得到,工作擬群(Q,*)和起始工作密鑰K=K0K1...Kn-1=K-1,0K-1,1...K-1,n-1對于對手是未知的。通過下述,我們?yōu)槭裁从肒-1,j表示Kj將會清楚。
設(shè)對手選擇一對明文/密文串(M,C)=((M0M1...),(C0C1...))。此外,我們使用下面的符號在Counter=i的情況下,我們將使用符號Ki,j來代替符號Kj(j=0,1,...,n-1)。對于變量X和T將使用相同的符號,即,符號Xi,j(Ti,j)意味著當(dāng)Counter=i在其第j次迭代時的變量X(T)。
因此,通過對于Counter=i(i∈{0,1,2,...})的EdonX的加密/解密算法,對手可以獲得下列方程系統(tǒng)(注意是常量) Xi,0=Ki-1,0*Ki-1,i mod m Ti,0=Ki-1,i+p mod m·Xi,0 Xi,1=Ki-1,1*Xi,0 Ti,1=Ti,0·Xi,1 ... Xi,64=Ki-1,64*Xi,63 Ti,64=Ti,63·Xi,64 ... Xi,m-1=Ki-1,m-1*Xi,m-2 Ti,m-1=Ti,m-2·Xi,m-1 Xi,m-1M0=C0 (4) 從上面的最后方程中,對手可以得到Xi,n-1=C0M0的值,因為M0、C0是已知的。其余上述集合等效于下面的m+1,m≥64個擬群方程的系統(tǒng),具有2m個未知的變量Ki-1,0,...,Ki-1,m-1,...Xi,0,...,Xi,m-2,Ti,m-1 Xi,0=Ki-1,0*Ki-1,i mod m Xi,1=Ki-1,1*Xi,0 ......... Xi,m-2=Ki-1,m-2*Xi,m-3 M0C0=Ki-1,m-1*Xi,m-2 Ti,m-1=((...(Ki-1,i+p mod m)·Xi,0)·...)·Xi,m-2)·(M0C0) (5) (即, Ti,1=Ti,0·Xi,1=(Ki-1,i+p mod m·Xi,0)·Xi,1Ti,2=Ti,1·Xi,2= ((Ki-1,i+p mod m·Xi,0)·Xi,1)·Xi,2,...) 此外,對方不知道工作擬群(Q,*),因此她/他應(yīng)當(dāng)定義集合{0,1,2,...,15}上的擬群運算*,然后求解該系統(tǒng)。事實上緊前面的系統(tǒng)是函數(shù)方程的系統(tǒng),具有一個未知的擬群運算*,該運算包括具有2m個未知數(shù)的m+1個方程。我們有下面的定理,并且在其證明中使用上面恒等式。
定理216階的任何擬群(Q,*)是下列函數(shù)方程的系統(tǒng)的解,其中Q={0,1,2,...,15}, x0=y(tǒng)0*yi mod m x1=y(tǒng)1*x0 x2=y(tǒng)2*x1 ... xm-2=y(tǒng)m-2*xm-3 a=y(tǒng)m-1*xm-2 z=((...(yi+p mod m·x0)·x1)·...)·xm-2)·a (6) 有Q上的一個未知的擬群運算*和未知變量x0,x1,...,xm-2,y0,y1,...ym-1,z,其中·是Q上的給定擬群運算,并且i(0≤i≤m-1),和a∈Q是給定的。
證明設(shè)*為Q上的任何擬群運算。我們考慮兩種情況。
情況10≤i≤m-2(即0≤i mod m≤m-2) 對未知的y0,yi∈Q選擇任意值。然后我們有x0∈Q的唯一值,使得x0=y(tǒng)0*y1。對未知的y1∈Q選擇任意值。然后我們有x1∈Q的唯一值,使得x1=y(tǒng)1*x0。繼續(xù)這樣,對未知的yi-1∈Q選擇任意值,然后我們有xi-1∈Q的唯一值,使得xi-1=y(tǒng)i-1*xi-2。接著,我們計算xi=y(tǒng)i*xi-1∈Q的值,然后我們對未知的yi+1∈Q選擇任意值,并且計算xi+1=y(tǒng)i+1*xi∈Q的值,等等。通過這種方式,我們可以對未知的y0,y1,...,ym-2選擇任意值,并且我們可以由此計算未知的a=y(tǒng)m-1*xm-2的(唯一)值。最后,從方程a=y(tǒng)m-1*xm-2,我們有ym-1=a/xm-2∈Q,然后我們可以計算z=(yi+p mod m·x0)·x1)·...)·xm-2)·a∈Q。
情況2i=m-1(即,i mod m=m-1) 在這種情況下,我們將以相反順序重復(fù)情況1的過程。我們選擇任意值ym-1,∈Q,然后由方程a=y(tǒng)m-1*xm-2,我們計算值xm-2=y(tǒng)m-1\a∈Q。然后,我們對于ym-2,ym-3,...,y2,y1∈Q選擇任意值,并且在每次選擇之后,我們計算值xj=y(tǒng)j+1\xj+1∈Q,j=m-3,m-2,...,0。最后,從方程x0=y(tǒng)0*ym-1,我們計算值y0=x0/ym-1,然后我們可以計算z=(yi+p mod m·x0)·x1)·...)·xm-2)·a∈Q。
作為定理2的結(jié)果,我們有,為了找到(5)中變量Ki-1,j和xi,j的合適的各值,對手將不得不選擇16n≥2128個可能的初始密鑰之一、以及上面所示的函數(shù)方程的系統(tǒng)的16m-2或(16m-1)≥1662=2248個可能的解yj之一。全部算在一起至少有2376種可能的選擇。
接著,我們將示出,如果對手使用來自明文/密文串的若干連續(xù)半字節(jié)的信息,那么她/他不能在可行時間內(nèi)攻破系統(tǒng)。即,我們將證明下面定理 定理3為了以大于0.5的概率攻破系統(tǒng)EdonX,攻擊者應(yīng)當(dāng)進(jìn)行至少2190次嘗試。
不失一般性,定理3的證明的思路可以從Counter=0 & Counter=1& Counter=2的情況中(即,當(dāng)長度3的明文/密文流M0M1M2/C0C1C2已知時)看出。在該情況下,根據(jù)EdonX的加密/解密算法可以獲得下面方程(其中也進(jìn)行了如(5)中那樣的簡化) X0,0=K-1,0*K-1,0 K0,0=X0,0 X0,1=K-1,1*X0,0 K0,1=X0,1 ... X0,m-2=K-1,m-2*X0,m-3 K0,m-2=X0,m-2 M0C0=K-1,m-1*X0,m-2 T0,m-1=((...(K-1,0 mod m·X0,0)·...)·X0,m-2)·(M0C0) n0,m-1=T0,m-1 (7) X1,0=K0,0*K0,1 K1,0=X1,0 X1,1=K0,1*X1,0 K1,1=X1,1 ... X1,m-2=K0,m-2*X1,m-3 K1,m-2=X1,m-2 M1C1=K0,m-1*X1,m-2 T1,m-1=((...(K0,1+p mod m·X1,0)·...)·X1,m-2)·(M1C1) K1,m-1=T1,m-1 (8) X2,0=K1,0*K1,2 K2,0=X2,0 X2,1=K1,1*X2,0 K2,1=X2,1 ... X2,m-2=K1,m-2*X2,m-3 K2,m-2=X1,m-2 M2C2=K1,m-1*X2,m-2 T2,m-1=((...(K1,2+p mod m·X2,0)·...)·X2,m-2)·(M2C2) K2,m-1=T2,m-1 (9) 注意,(7)對應(yīng)于Counter=0、(8)對應(yīng)于Counter=1、且(9)對應(yīng)于Counter=2。此外,我們有,X0,m-1=M0C0,X1,m-1=M1C1,X2,m-1=M2C2。為了清楚起見,我們將使用(7)、(8)和(9)中的未知量的下列替換K-1,i=y(tǒng)i,K0,i=zi,K1,i=ui,K2,i=vi,X0,i=xi,X1,i=x′i,X2,i=xi″,T0,i=ti,T1,i=ti,′T2,i=ti″。于是,由(7)、(8)和(9)構(gòu)成的方程系統(tǒng)可以被重寫為 x0=y(tǒng)0*y0 z0=x0 x1=y(tǒng)1*x0 z1=x1 ......... xm-2=y(tǒng)m-2*xm-3 zm-2=xm-2 M0C0=y(tǒng)m-1*xm-2 im-1=((...(yp·x0)·...)·xm-2)·(M0C0) zm-1=tm-1 x0′=x0*z1 u0=x0′ x1′=z1*x0′ u1=x1′ ......... xm-2′=zm-2*xm-3′ um-2=xm-2′ M1C1=zm-1*xm-2′ tm-1′=((...(y1+p·x0′)·...)·xm-2′)·(M1C1) um-1=tm-1′ x0″=u0*u2 u0=x0″ x1″=u1*x0″ u1=x1″ ......... xm-2″=um-2*xm-3″ um-2=xm-2″ M2C2=um-1*xm-2″ tm-1″=((...(y2+p·x0″)·...)·xm-3″)·(M2C2) um-1=tm-1″ (10) 在未知量x0,...,xm-2,x0′,...xm-2′,x0″,...xm-2″,tm-1,tm-1′,tm-1″分別被z0,...zm-2,u0,...um-2,v0,...,vm-2,zm-1,um-1,vm-1替代之后,我們獲得等效于上面系統(tǒng)(10)的新的方程系統(tǒng),如在下表中左手側(cè)給出的。
定理3的證明在證明期間,我們將使用上表。在方程系統(tǒng)(10)中,存在未知的擬群運算*、4m個未知變量和3m個方程。因此,對手將不得不為一些未知變量賦予任意值,然后嘗試求解該系統(tǒng)。之前她/他將不得不選擇集合Q={0,1,...,15}上的一些擬群運算*。設(shè)對手為未知量Y0,Y1,..,Ym-2賦值(在列‘選擇’中表示)。使用變量Y0,Y1,...,Ym-2的給定值,她/他能夠計算(10)的所有其他變量的各值。在列‘計算’上,表示變量Z0,...,zm-2,ym-1,u0,...的各值的計算順序(自頂向下表示)。因此,她/他首先計算Z0=Y(jié)0*Y0(Y0具有指定值),然后z1=y(tǒng)1*z0(y1具有指定值,并且z0被計算出),等等,直到計算出um-2的值?,F(xiàn)在,由于zm-1和um-2已經(jīng)被賦值,因此她/他必需檢查是否滿足方程M1C1=zm-1*um-2,在上表中用檢查點(Check Point)表示這種情況。檢查點使得以下面方式攻擊系統(tǒng)更加容易。對手選擇擬群并為y0,...,ym-2賦值。然后她/他在每個檢查點檢查它們是否選擇正確。當(dāng)答案為“否”時,她/他將選擇新數(shù)據(jù)攻擊(新擬群運算*和/或Y0,...,Ym-2新的值)。答案為“是”并不意味著數(shù)據(jù)選擇正確,因為它可能是偶然發(fā)生的。對手應(yīng)當(dāng)收集若干連續(xù)的答案“是”,以確保系統(tǒng)被攻破。
對手可能選擇另一策略,即,她/他不為變量Y0,...,Ym-2賦值,而是可以為一些其他變量賦值。然而,她/他將不得不為m-1個變量賦值,并且將獲得同樣數(shù)量的檢查點(比計數(shù)器的數(shù)量少1)。
所有可以進(jìn)行的可能嘗試的次數(shù)是可能的擬群運算數(shù)量(大約2132)與為Y0,...,Ym-2賦值的數(shù)量的乘積,并且它是16m-22≥1662=2248。因此,為了以大于0.5的概率攻破系統(tǒng)EdonX,攻擊者應(yīng)當(dāng)進(jìn)行至少0.5·2380=2190次嘗試。
如上所述,EdonX是加性同步流密碼,其特征是許多其組成部分的靈活性和數(shù)學(xué)可證性。我們將指出這些事實的結(jié)果。
關(guān)于EdonX的靈活性,我們提到,EdonX的初始秘密密鑰的長度n可以是任何正整數(shù),并且我們建議32≥n≥256;事實上,我們在這些約束下提出我們的算法。對我們的算法更細(xì)致的觀察將示出,上述約束是表面現(xiàn)象,并且除了使用512個半字節(jié),我們也可以通過使用1024、2048、128或任何其他數(shù)量的半字節(jié),以相同的方式設(shè)計該算法。這一事實的重要性在于,EdonX可以滿足從平均到極端的不同安全性準(zhǔn)則;因此,非常多疑的用戶可以使用1K(或1M)個半字節(jié)(即,4K(或4M)比特)的秘密密鑰。為了更高的安全性,應(yīng)當(dāng)選擇更長的初始秘密密鑰,但計算的數(shù)量線性依賴于密鑰的長度。因此,通過預(yù)測可能的攻擊者以及其計算能力,可以按照需要獲得的安全性來設(shè)計EdonX的軟件和/或硬件。
秘密密鑰的長度的靈活性允許在設(shè)計閾值安全性中使用EdonX。讓我們考慮一個小例子,當(dāng)密鑰在3個人A、B和C之間共享時,單獨一個人沒有完整的密鑰,并且只有他們中任兩個具有完整的密鑰。然后,我們?nèi)?92個半字節(jié)的秘密初始密鑰K=K0‖...‖k191,并且我們這樣分配A獲得部分K=K0‖...‖k127,B獲得部分K=K64‖...‖k191,而C獲得部分K=K0‖...‖k63,K=K127‖...‖k191。每個人不知道秘密密鑰的64個半字節(jié),并且存在1664=2256種可能的完成該秘密密鑰的變化。也可以定義對于p閾值系統(tǒng)的s輸出的適當(dāng)安全設(shè)計。
在我們對EdonX的安全性分析中,我們假設(shè)安全性的最壞的可能情況,即,當(dāng)只有初始密鑰是秘密的、并且對手可以認(rèn)識到選擇明文/密碼攻擊時。如果我們假設(shè)初始擬群和初始密鑰的長度也是秘密的,則系統(tǒng)的安全性變得強(qiáng)很多。因此,如果初始擬群是秘密的,而不是大約(16!)3≈2132個自合痕,那么對手不得不考慮所有16階的擬群運算,并且這些運算的數(shù)量是未知的,但大于10120≈2400。
我們可以取初始密鑰的長度n也是秘密的。在這種情況下,攻擊者需要檢查若干長度n=k,n=k+1,n=k+2,...其中k不大(我們可以選擇例如k=5并且在某些應(yīng)用中也能獲得適當(dāng)?shù)陌踩?。如果攻擊者具有EdonX的硬件或軟件實現(xiàn),并且因此有可能計算長度n,那么我們可以在EdonX的計算期間添加空循環(huán)。需要以空計算花費的時間為該額外安全付出代價。
在優(yōu)選實施例中EdonX的設(shè)計特性是,它工作在4比特寄存器上,并且使用16階擬群的兩個固定的查找表,其可以以僅256字節(jié)存儲。連同內(nèi)部存儲器和算法的執(zhí)行代碼一起,EdonX可以以小于1Kb實現(xiàn)。因此,EdonX適合硬件實現(xiàn)為芯片卡中的嵌入式系統(tǒng),具有非常少量的存儲器(即,小于1KB的存儲器)。
密碼本質(zhì)上的主要區(qū)分之一是流密碼和塊密碼的區(qū)分。塊密碼對于相同的明文輸入塊總是給出相同的塊密文,這是因為它們使用固定的變換集合。另一方面,流密碼對于相同的明文序列給出不同的輸出,這是因為它們使用按每次迭代變化的變換。
在本發(fā)明的另一方面中,EdonY是基于擬群串變換性質(zhì)的自同步的流密碼,這也是為什么它的許多性能是數(shù)學(xué)上可證明的。在優(yōu)選實施例中,EdonY提供密碼強(qiáng)大和高質(zhì)量的流密碼。EdonY的重要優(yōu)點是其設(shè)計的靈活性,因為它可以工作在任何n比特(n=2,3,4....)字母字母表上。其5比特字母字母表的版本適用于嵌入式系統(tǒng),因為它們可以以小于2Kb存儲空間實現(xiàn)。
EdonY是靈活的自同步的流密碼,具有變換(對于每個r≥5)r元組比特的輸入流的可證明的安全性。EdonY的密鑰長度是可變的,并且可以是n個r-元組的任何串,出于安全的原因,我們提出n≥32。通過使用擬群串變換定義EdonY,并且其安全性基于擬群和擬群串變換的數(shù)學(xué)性質(zhì)。EdonY的設(shè)計使用2r階擬群,并且對于r=5,EdonY適合在嵌入式系統(tǒng)中硬件實現(xiàn)。
如上面定義的,通過使用擬群元算和擬群串變換定義EdonY。與擬群定義等效的是消去律、以及(對于每個a,b∈Q)方程a*x=b,y*a=b的解x,y的存在的結(jié)合。
與EdonX一樣,在證明EdonY的安全性中將使用上面命題1。
作為實例,取Q={0,1,2,3},并且設(shè)擬群(Q,*)及其伴生(Q,\)由下表中的乘法方案給出。
考慮串α=1021000000000112102201010300,并且選擇首項0。然后,通過變換e0,*和d0,*,我們將獲得下面變換的串e0,*(α)和d0,*(α) e0,*(α)=1322130213021011211133013130 d0,*(α)=1302322222222101230311313302. 我們在下表中提出e-變換的四個連續(xù)應(yīng)用。
現(xiàn)在,我們對最后獲得的串β=e0,*4(α)應(yīng)用四次變換d0,\,如下表所示。
可以注意到,在α中的0,1,2和3的起始分布16/28,7/28,4/28,1/28改變成e0,*4(α)中的7/28,7/28,10/28,4/28,因此分布變得更均勻。此外,我們有α=d0,\4(β)=do,\4(e0,*4(α))。上面命題2也成立。
可以在集合Q上定義若干擬群運算,并且設(shè)*1,*2,...,*k為這些運算的序列(不必要是不同的)。我們還選擇首項l1,l2,...,lk∈Q(也不必要是不同的),然后映射的組成
分別稱為是Q+的E-和D-變換。由命題2,E和D是置換,并且
的逆是變換
其中\(zhòng)i是運算*i的對應(yīng)伴生。
由于D°E=1是恒等函數(shù),因此可以使用E作為加密函數(shù),而使用D作為解密函數(shù),并且我們在EdonY的優(yōu)選設(shè)計中將僅使用這些函數(shù)。
EdonY是自同步的證明將是下面定理的直接結(jié)果。
定理4令和假設(shè)對于某個固定i有E(b1b2...bk)=c1c2...ck且d≠ci。則 D(c1...ci-1dci+1...ck)=b1...bi-1d1...dn+1bi+n+1...bk,對于一些d1,...,dn+1∈A, 證明為了簡單起見,我們將取n=2,即,且等式E(b1b2...bk)=c1c2...ck意味著對于一些x1,...,xn∈A,我們有和于是,通過e-變換的定義,我們有 l2*2b1=x1,x1*2b2=x2,x2*2b3=x3,...,xk-1*2bk=xk,(4) l1*1x1=c1,c1*1x2=c2,c2*1x3=c3,...,ck-1*1xk=ck. (5) 對于某些zj∈A.,令D(c1...ci-1dci+1...ck)=z1...zk。于是,存在y1,...,yn∈A,使得并且通過d-變換的定義和(5),我們有 y1=l1\1c1=T1,..., yi-1=ci-2\1ci-1=xi-1, yi=ci-1\1d, yi+1=d\1ci+1, yi+2=ci+1\1ci+2=xi+2,..., yk=ck-1\1ck=xk. 現(xiàn)在,(4)和(6)意味著 z1=l2\2x1=b1,..., zi-1=xi-2\2xi-1=bi-1, zi=xi-1\2yi, zi+1=y(tǒng)i\2yi+1. zi+2=y(tǒng)i+1\2xi+2, zi+3=xi+2\2xi+3=bi+3,... zk=xk-1\3xk=bk. 因此,串E(b1b2...bk)中的一個差錯傳播到串D(E(b1b2...bk))中的n+1=2+1=3個差錯。當(dāng)我們將討論EdonY的安全性時,將使用函數(shù)E的下列特性。
命題3設(shè)(Q,*)是擬群,α是Q+的任意串,并且則串β=E(α)具有各字母、各字母對、各字母的k元組的均勻分布。
在EdonY的示例性結(jié)構(gòu)中,我們使用32階擬群(在5比特字母上定義)。然而,也可以使用64、128...階擬群,其中應(yīng)當(dāng)對結(jié)構(gòu)進(jìn)行小的修改。事實上,可以使用適當(dāng)大階的任何擬群,并且安全性成比例地取決于擬群的階。接著,我們?nèi)={0,1,2,...,31},并且將使用Q上的擬群運算·進(jìn)行構(gòu)建。我們?nèi)?Q,·)是公共擬群。EdonY的秘密密鑰K用n個內(nèi)部變量Ki(即K=K0K1...Kn-1)存儲,并且變量Ki具有范圍{0,1,...,31}內(nèi)的各值。K的第i個值也將用K[i](=Ki)表示。我們?nèi)∶荑€K的長度為n≥32,即,密鑰具有至少160比特。正如總是這樣的情形,較大的密鑰長度意味著較高的安全性,付出的代價是較慢的系統(tǒng)性能;對于擬群的階也是如此。我們強(qiáng)調(diào),這種設(shè)計的靈活性是EdonY的最好的特性之一。
EdonY算法的主要步驟如下。通過使用密鑰K的初始秘密值和擬群(Q,·),我們產(chǎn)生(Q,·)的未知自合痕(Q,*)。我們?nèi)缦轮鹱帜傅丶用茌斎氲南?,即,明文M=M0M1M2...,其中Mi是5比特的字母。首先,我們將M乘以K的各值,并且我們獲得輔助明文B=B0B1B2...,其中 然后我們對B應(yīng)用E-變換
并且獲得的串C=E(B)=C0C1C2...是M的密文。有了密文C,通過對C施加D-變換
恢復(fù)輔助明文B,即,B=D(C)。最后,逐字母地從輔助明文B=B0B1B2...獲得原始明文消息M=M0M1M2...,作為 如下表中所示,EdonY加密算法和解密算法由下面過程精確地定義,其中M=M0M1M2M3...(C=C0C1C2C3...)是加密算法的輸入(輸出)串,并且C=C0C1C2C3...(M=M0M1M2M3...)是解密算法的輸入(輸出)串。在解密算法中變量X和Y是輔助的5比特變量。
與EdonX一樣,初始化階段使用從秘密初始密鑰和公開擬群(Q,·)、以及工作密鑰K產(chǎn)生的秘密工作擬群(Q,*)?,F(xiàn)在我們假設(shè)密鑰的長度n(5比特字母的)由32≤n≤510約束,這是因為我們想要將數(shù)字n表示為兩個5比特字母串b9b8b7b6b5‖b4b3b2b1b0=n1‖n2,其中b9b8b7b6b5b4b3b2b1b0是n的二進(jìn)制表示。這里‖表示串的連接。(當(dāng)然,可以以簡單了當(dāng)?shù)姆绞綖槿魏伍L度n重新設(shè)計該算法。) 初始化階段與對EdonX使用的類似,通過下面算法描述 函數(shù)RotateLeft(Kex),SwapRows和Swapcolumns如上面關(guān)于EdonX描述的那樣工作。
在初始化階段的最后,我們獲得兩個對于對手是未知的工作結(jié)構(gòu)。即,第一未知結(jié)構(gòu)是作為原始擬群Q(·)的自合痕的工作擬群(Q,*),并且它是大約(32!)3≈2352個自合痕之一,并且第二未知結(jié)構(gòu)是替代原始初始秘密密鑰K的、長度5n比特的工作密鑰K。(我們強(qiáng)調(diào),32階擬群的自合痕類的具體數(shù)量是未知的。) 由定理4得出,EdonY是自同步的,這是因為在密文C中的一個差錯將在恢復(fù)的明文M’中傳播n+1個差錯,即,原始消息M和M’將有n+1個連續(xù)字母不同。如果在C中存在長度r的差錯串,則恢復(fù)的明文中將具有r+n個差錯。從示例1中可以看出EdonY加密和解密工作的處理方式。
現(xiàn)在將討論EdonY的優(yōu)選實施例的安全性。我們假設(shè)對手能夠執(zhí)行有選擇的明文/密文攻擊,即,她/他可以選擇明文,并且可以獲得對應(yīng)的密文。我們進(jìn)一步假設(shè)秘密密鑰K的初始值以及密碼的內(nèi)部狀態(tài)工作密鑰K、工作擬群(Q,*)、以及X和T的值,對于對手是未知的,并且她/他不能物理上訪問它們。我們考慮到,如果對手將能夠在可行時間內(nèi)重構(gòu)工作密鑰K以及工作擬群(Q,*),那么她/他將攻破EdonY。
我們現(xiàn)在將示出,在不知道初始密鑰Kin的情況下,不存在計算上可行的方法,知道工作擬群(Q,*)和工作密鑰K的起始值。下面,我們給出證明對手無法有效獲得關(guān)于工作密鑰K和擬群(Q,*)的部分的信息。
關(guān)于初始化階段,按照我們的假設(shè),秘密密鑰的初始值可以具有至少32個5比特字母—即160比特的長度。按照其長度信息填充初始密鑰,如上所述,目的是消除用兩個不同初始密鑰獲得相同結(jié)果的可能性。示例性擴(kuò)展密鑰Kex具有512個5比特字母的長度。它被公知的32階擬群(Q,·)變換512次。
與EdonX一樣,可以示出,在EdonY中,密鑰Kex中的各字母、各字母對、各字母三元組....的分布是均勻的。密鑰Kex的分布的均勻性揭示了工作密鑰K的分布的均勻性。由于K的長度至少為32個5比特字母,因此對手可以以不大于2-160的概率猜出工作密鑰。
此外,與EdonX一樣,可以示出,工作擬群(Q,*)是隨機(jī)獲得的初始擬群(Q,·)的自合痕。由于32階擬群上存在大約32!3≈2352個自合痕,因此我們發(fā)現(xiàn),只能以大約2-352的概率猜出工作擬群。
至于加密/解密階段,我們確定工作擬群(Q,*)和起始工作密鑰K=K0K1...Kn-1對于對手是未知的,即,恢復(fù)它是計算上不可行的。由命題3,通過使用字母的s-元組的分布,統(tǒng)計型攻擊也是計算上不可行的。下一定理揭示通過已知的密文攻擊,恢復(fù)密鑰和擬群是計算上不可行的,因此只能以低于2-1000的概率猜出它們(32階擬群的數(shù)量是未知的,但它遠(yuǎn)大于21000)。
定理5給出密文C,對于Q={0,1,...,31}上的每個擬群運算、以及每個密鑰K=K0K1...Kn-1,存在明文M,使得C是它的密文。
證明設(shè)給出C=C0C1C2...,Ci∈Q,并且讓我們選擇Q上的任意擬群運算*和任意密鑰K=K0K1...Kn-1。EdonY的加密處理可以用下表表示(注意是常量)。
由于Ci、Kj是給出的,因此我們可以如下逐步地計算表的其他變量 Kn-1*Tn-2=C0Tn-2=Kn-1\C0 Kn-2*Tn-3=Tn-2Tn-3=Kn-2\Tn-2 .................. K1*T0=T1T0=K1\T1 K0*(M0/Kp)=T0M0/Kp=K0\T0 現(xiàn)在我們有M0=M0/Kp)*Kp,即,我們求出其加密是C0的消息M的第一個字母。使用Ti的已知值,我們可以重復(fù)前面的計算,用于得到變量Sn-2=C0\C1,Sn-3=Tn-2\Sn-2,...的各值,利用由C1加密的M1的值產(chǎn)生。用同樣的方式,我們可以求出M2,M3,...的值。
另一種可以在已知密文下對EdonY實現(xiàn)的可能的統(tǒng)計型攻擊,是通過產(chǎn)生n+1元組的密文的字典,其中n是密鑰長度。我們將使用下表,以說明如何實現(xiàn)這種類型的攻擊,并且為了簡單起見,我們?nèi)=3。我們假設(shè)對手具有密文C0C1...CiCi+1...。
于是,可以首先計算x1,x2,...,然后是y1,y2,...,最后是z1,z2,...。因此,值z1,z2,z3,...是由密文的子串cici+1ci+2ci+3,ci+1ci+2ci+3ci+4,ci+2ci+3ci+4ci+5,...唯一地確定的。這揭示,C中長度n+1=3+1=4的子串的分布與串B=B0B1B2,...中字母的分布相等,其中并且可以由此提取一些明文M的分布知識。
因此,對手需要產(chǎn)生密文字母的n+1元組的字典。在n=3的情況下該字典將包括324=220個詞,并且可以被放置在存儲器中。由于我們?nèi)≥32,因此,EdonY的字典將需要至少3233=2165個詞,并且無法通過物理定律來實現(xiàn)它。因此我們證明了下面的定理。
定理6對EdonY的字典型的統(tǒng)計攻擊是計算上不可行的。
接著,我們將證明,對EdonY的選擇明文/密文攻擊也是計算上不可行的。假設(shè)對手可以產(chǎn)生任意一對明文/密文串(M,C)=((M0M1...),(C0C1...))。于是她/他可以從下表提取信息,其中為了簡單起見我們?nèi)=4。
變量Ki,xi,yi,zi是未知的,并且我們可以推出下面的擬群方程系統(tǒng),其中Q={0,1,2,...31}上的運算“.”是未知的 K0·(M0/K2)=z0,z0·(M1/K3)=z1,z1·(M2/K0)=z2,... K1·z0=y(tǒng)0,y0·z1=y(tǒng)1,y1·z2=y(tǒng)2,... K2·y0=x0,x0·y1=x1,x1·y2=x2,... K3·x0=C0,C0·x1=C1,C1·x2=C2,... 可以從上述系統(tǒng)的方程C0·x1=C1,C1·x2=C2,C2·x3=C3,C3·x4=C4,...中推出的信息如下。由于可以任意選擇明文M,因此密文C將包含所有可能的322對子串a(chǎn)b,其中(a,b)∈Q2。從方程Ci·xx=Cx,我們知道元素Ci+1被置于擬群(Q,·)的乘法表中第Ci行和第xi+1列。換言之,如果(Q,·)中的乘法用i j=qi,j表示,則由此可見,我們具有(Q,·)的乘法表的各列的完全信息。例如,我們不知道x1的值,但我們知道的值。通過這種方式,我們可以用(Q,·)的乘法表中的完成列提取32個不同的變量xi0,...,xi31。為了簡單,讓我們?nèi)j=j(luò),并且我們有下面(Q,·)的乘法表 由于xi是未知的,因此(Q,*)的原始乘法表是(Q,·)的乘法表的各列的置換。讓我們?yōu)槲粗縳0,x1,...,x31賦值。然后,由上面的方程系統(tǒng),我們可以一步一步地計算未知量K3=c0/x0,y1=x0\x1,,y2=x1\x2,y3=x2\x3,...,z2=y(tǒng)1\y2,z3=y(tǒng)2\y3,z4=y(tǒng)3\y4,...的唯一確定的各值?,F(xiàn)在可以通過K1=M3/(z2\z3),K2=M4(z3\z4),K3=M5(z4\z5),K0=M6/(z5\z6),K1=M7(z6\z7)計算密鑰的各值。由于存在有窮的許多變量Ki(在該簡化版本中,我們只有4個,但在EdonY的優(yōu)選應(yīng)用中,n≥32),因此對手有機(jī)會檢查x0,x1,...,x31的賦值是否正確。即,如果它們正確,則等式M3/(z2\z3)=M7/(z6\z7)(=K1),M4/(z3\z4)=M8/(z7\z8)(=K2),...應(yīng)當(dāng)滿足。如果它們不滿足,則對手應(yīng)當(dāng)對未知量x0,x1,...,x31給出另一賦值,并且再次檢查它們是否正確,等等。由于存在32!≈2117個不同的可能的賦值,因此我們有下面定理 定理7在選擇明文/密文進(jìn)攻下,恢復(fù)EdonY的密鑰或擬群運算*是計算上不可行的。
如上所示,EdonY是自同步的流密碼,其特征是許多其組成部分的靈活性和數(shù)學(xué)可證性。EdonY的自同步是定理4的結(jié)果。根據(jù)該定理,如果我們有長度n的密鑰,則在解密處理中,密文中的差錯將產(chǎn)生明文的n+1個連續(xù)差錯。EdonY的加密和解密算法非常簡單,并且是線性復(fù)雜度的,因此EdonY可以用于安全在線通信(如果需要的話,它可以以顯而易見的方式并行來獲得更快的通信)。
EdonY的示例性構(gòu)造使用5比特字母字母表,但如何能為m比特字母字母表重新設(shè)計加密和解密算法應(yīng)當(dāng)是清楚的。設(shè)計的靈活性和選擇期望的密鑰長度的可能性是EdonY很重要的性質(zhì)。因此,EdonY也可以被用于設(shè)計閾值安全性。讓我們考慮一個小實例,當(dāng)密鑰在3個人A、B和C之間共享時,單獨一個人沒有完整的密鑰,并且只有他們中任兩個具有完整的密鑰。然后,我們?nèi)¢L度192的秘密初始密鑰K=K0‖...‖K191,并且我們這樣分配A獲得部分K=K0‖...‖K127,B獲得部分K=K64‖...‖K191,而C獲得K=K0‖...‖k63‖K127‖...‖K191。每個人不知道秘密密鑰的64個5比特字母Ki,并且存在3264=2320種可能的完成該秘密密鑰的變化。也可以定義對于p閾值系統(tǒng)的s輸出的適當(dāng)安全設(shè)計。
由于32階擬群可以以1Kb存儲,因此EdonY的優(yōu)選設(shè)計允許其在嵌入式系統(tǒng)中的硬件實現(xiàn),具有很少的存儲量,即,小于2Kb存儲器。
我們注意到,如果初始的32階擬群也是秘密的話,則可以獲得額外的EdonY的安全性,因為這些擬群的數(shù)量遠(yuǎn)大于21000。
在本發(fā)明的另一方面中,我們引入了新型流密碼的概念完全異步流密碼(TASC),并且演示這些密碼的若干益處。如上所述,按照流密碼對在使用該流密碼的雙方之間的通信中接收的差錯的作用方式,劃分流密碼。如果解密的流不遭受在傳輸期間出現(xiàn)的差錯(除了實際的差錯字節(jié)或字節(jié)塊上的差錯外),那么我們說是同步流密碼。另一方面,如果差錯影響了解密的流,那么我們說是異步流密碼。然而,字面上定義的所有異步密碼都具有自同步的性質(zhì)。即,在將被錯誤解密的若干傳送的塊之后,再次建立流的正確解密。從確保正確數(shù)據(jù)流重新開始流動的角度說,自同步是非常有用的性質(zhì)。然而,同步和自同步流密碼都遭受監(jiān)視通信線路的對手更改數(shù)據(jù)的可能攻擊(遭受所謂的動態(tài)攻擊)。因此,當(dāng)使用如流密碼(同步或自同步)的密碼原語時,可能需要使用額外的機(jī)制,用于確保數(shù)據(jù)完整性。
同步密碼EdonX的一般性質(zhì)可以用于提供密碼,該密碼無法從通信過程中引入的差錯恢復(fù),但仍具有重要性質(zhì)—它的安全可證明性由對同步本版應(yīng)用的相同數(shù)學(xué)定理保證。盡管完全異步流密碼的性質(zhì)可以被看作缺點,但這樣的密碼事實上存在若干有用的應(yīng)用可以保證數(shù)據(jù)完整性、認(rèn)證(authentication)和糾錯的可證明的安全流密碼。
同步流密碼上面被定義為其中獨立于明文消息和獨立于密文生成密鑰流的密碼。另一方面,自同步或異步流密碼,是其中作為密鑰和前面密文固定位數(shù)的函數(shù)生成密鑰流的密碼。
自同步流密碼的加密函數(shù)可以由方程描述 σi=(ci-t,ci-t+1,...,ci-1),zi=g(σi,k),ci=h(zi,mi) 其中,σ0=(ci-t,ci-t+1,...,c-1)是(非秘密)初始狀態(tài),k是密鑰,g是生成密鑰流zi的函數(shù),而h是將密鑰流和明文mi組合生成密文ci的輸出函數(shù)。
相反地,完全異步流密碼被定義為其中作為中間密鑰和前面明文固定位數(shù)的函數(shù)生成密鑰流的密碼。
完全異步流密碼的加密函數(shù)可以由方程描述 ki+1=f(ki,mi),ci=h(ki,mi) 其中k0是密鑰的初始秘密狀態(tài),f是密鑰下一狀態(tài)的函數(shù),h是將密鑰和明文mi非線性組合生成密文ci的輸出函數(shù)。
完全異步流密碼的解密函數(shù)可以由方程描述 ki+1=f-1(ki,ci),mi=h-1(ki,ci) 因此,從定義,很清楚的是,自同步和完全異步流密碼在如何生成密鑰流的方式上不同。對于自同步流密碼來說,密鑰流取決于前面密文固定位數(shù),而完全異步流密碼取決于前面明文固定位數(shù)。這里,可以提出至關(guān)重要的問題如果從隨機(jī)性的角度看,明文的源具有差的特性怎么辦?如果明文流具有非常低的熵(在極端情況下熵為0)怎么辦。如果完全異步流密碼的定義被應(yīng)用到使用移位寄存器技術(shù)和S-box的經(jīng)典公知流密碼,則這樣的完全異步流密碼的結(jié)果將是完全差的流密碼,它生成具有短和可預(yù)測的周期的密鑰流。因此,設(shè)計高質(zhì)量的完全異步流密碼的主要問題在于設(shè)計這樣一種流密碼,其密鑰流取決于前面明文固定位數(shù),但還不落入短的周期循環(huán),并且不生成具有差隨機(jī)特性的密鑰流,即使當(dāng)明文位的源具有熵0時。下面我們說明完全異步流密碼。
我們給出使用擬群串變換的完全異步流密碼的示例性可能實現(xiàn)。
給出上面提供的擬群和拉丁方的定義,并且給出上面提供的合痕和自合痕的關(guān)系,可以示出,拉丁方L的各列和各行上的任何置換都可以在下面引理中歸納 引理與擬群(Q,*)相關(guān)聯(lián)的拉丁方Ln×n的各行和各列的任何置換,導(dǎo)致產(chǎn)生新拉丁方Ln×n′,其相關(guān)聯(lián)的擬群Q,*′是原始擬群(Q,*)的自合痕。
作為該引理的直接結(jié)果,我們有對于每個n階擬群(Q,*),存在多達(dá)(n!)2-1個對(Q,*)的不同自合痕擬群。
給出擬群(Q,*),可以通過下面得出集合Q上的五個新運算*-1,-1*,-1(*-1),(-1*)-1,** *-1(x,y)=zx*z=y(tǒng) -1*(x,y)=zz*y=x -1(*-1)(x,y)=z*-1(z,y)=xz*x=y(tǒng) (-1*)-1(x,y)=z-1*(x,z)=y(tǒng)y*z=x **(x,y)=zy*x=2 集合Par(*)={*,*-1,-1*,-1(*-1),(-1*)-1,**}被稱為*的伴生的集合。然后,對于每個g∈Par(*),(Q,g)也是擬群,并且Par(*)=Par(g)。通常,對于乘法表示的擬群(Q,*),分別寫成\,/,來代替*-1,-1*,并且稱其左伴生和右伴生,如上所述。于是 x*y=zy=x\zx=z/y 于是代數(shù)(Q,*,\,/)滿足恒等式 x\(x*y)=y(tǒng),(x*y)/y=x,x*(x\y)=y(tǒng),(x/y)*y=x 擬群串變換的方法如上所述。
與EdonX一樣,EdonZ優(yōu)選地工作在半字節(jié),即4比特變量上。這是因為它優(yōu)選地使用16階擬群(Q,*),用于對數(shù)據(jù)流進(jìn)行擬群串變換。因此,相應(yīng)的拉丁方的各值用4比特表示。對于密鑰K的各值也是如此。它存儲在n=64個內(nèi)部變量Ki中,即,K=K0K1...Kn-1。變量Ki還具有范圍{0,1,...,15}中的各值。
EdonZ為初始化階段使用Kin的初始值。通過存儲在Kin中的信息,EdonZ對初始擬群(Q,*)進(jìn)行變換,并且還變換Kin的各值。K的值也將隨著執(zhí)行流處理而改變。EdonZ也使用兩個臨時的4比特變量T和X。EdonZ與同步EdonX的不同在于,如何設(shè)置變量X和T的初始值、以及如何完成X的最終計算的方式。然而,在解密階段,EdonX不使用Q(*)的左伴生,因為它是二進(jìn)制加性流密碼,而EdonZ需要Qpar(*)。下面是示出說明EdonZ的優(yōu)選運算的表。
表1完全異步流密碼 運算是對4比特變量的異或(XOR)運算。
EdonZ算法的很重要的階段是初始化階段。優(yōu)選地,與EdonX中相同,并且并入密碼算法中已經(jīng)公知的技術(shù),如填充消息、擴(kuò)展和變換擴(kuò)展的消息。在這種情況下,消息是秘密共享的初始密鑰Kin。來自擴(kuò)展和變換的密鑰的信息,然后被用于變換初始給出的擬群、以及設(shè)置工作密鑰K的64個半字節(jié)(256比特)的各初始值。
在初始化階段的最后,我們得到對手不知道的兩個工作結(jié)構(gòu)。即,第一未知結(jié)構(gòu)是原始擬群Q(·)的自合痕—工作擬群(Q,*),并且它是大約(16!)3≈2132個自合痕中的一個,并且第二未知結(jié)構(gòu)是替代原始初始秘密密鑰Kin的、長度4m比特(m個半字節(jié))的工作密鑰K。
作為TASC,EdonZ的另一個非常重要的性質(zhì)可以用下面的定理闡述 定理8設(shè)M=M1M2...Mμ為M到子塊Mi的表示,其中, 等等,并且設(shè)(Ki,Ci)=T(Ki-1,Mi),其中K0=k0是初始密鑰。于是,對于M到子塊的任何表示,得到的密文C=c1c2...cl=C1C2...Cμ是相同的。
通過引入消息M的長度,證明是簡單了當(dāng)?shù)摹?br>
上述定理確保即使EdonZ是流密碼,我們也可以用較小的部分(塊)處理輸入的明文,并且不管我們在加密之前選擇怎么用塊表示M,最后的密文都將是相同的。因此,塊可以是1個字母、4個字母、或者甚至100個字母,并且得到的密文將是相同的。
接著,我們將描述將按EdonZ的原理工作的示例,但是為了說明簡單起見,我們將繼續(xù)使用4階擬群來代替使用優(yōu)選的16×16擬群。此外,我們將擴(kuò)展的密鑰的長度縮短到長度16,代替使用長度512的擴(kuò)展的密鑰。初始密鑰可以具有從1到15的長度,因此將用兩個連接的2比特字母(范圍{0,1,2,3})表示它,并且工作密鑰長度將為4。
讓我們假設(shè)初始擬群Q(*)與上面EdonX示例1中給出的相同,即,擬群Q(*)為 進(jìn)一步,讓我們設(shè)置初始值Kin=131。由于Kin的長度為3,并且由于數(shù)字3用兩個2比特字母的表示是03,因此我們將填充Kin,并且獲得Kin=13103。然后,通過連接Kin若干次,我們將獲得長度16的Kex,即,Kex=1310313103131031。然后,通過用el*變換來變換擴(kuò)展的密鑰,我們將得到Kex的最終值,其中循環(huán)取首項l為填充的Kin的各值。在下面的表中,我們總結(jié)這些變換。
利用Kex的最后各值,我們將開始交替地交換初始擬群Q(*)的各行和各列,以便獲得其自合痕。因此,首先我們將交換行3和2,然后是列0和3,然后再次行3和3(在這種情況下沒有交換),等等。所有這些交換的最后結(jié)果將給出下面所示的擬群Q(*)(我們通過它還可以計算其左伴生Qpar(*))。
工作密鑰K將取Kex的最后4個字母,并且為K=2323?,F(xiàn)在,讓我們編碼一些明文流。設(shè)明文消息為M={0,0,1,0,2,3,0,0,1,2,0,0,1,0,0,2,0,0,0,3}。EdonZ加密的步驟如下表中所示。
X=X0的初始值是輸入流半字節(jié)的值,并且T的初始值總是0。X=X3的最終值實際上是輸出半字節(jié)。注意,我們對于處理密鑰K的新的各值有同樣的情況。即,總是K=K0K1K2K3=X0X1X2T3,其中T3=X0X1X2X3。
接著,將分析EdonZ的安全性。我們將假設(shè)對手知道一個或多個(plaintext,ciphertext)對。此外,我們還將假設(shè)密鑰Kin的初始值以及密碼的內(nèi)部狀態(tài)工作密鑰K、工作擬群Q(*)和Qpar(*)、以及X和T的各值對于對手是未知的,并且她/他不能物理上訪問它們。如果對手通過只知道(plaintext,ciphertext)對、將處于成功重構(gòu)工作密鑰K的一些部分的境地,那么我們將認(rèn)為她/他已經(jīng)攻破EdonX。
在第一部分的分析中,我們將示出,在不知道初始密鑰Kin的情況下,不存在有效的方法來知道工作密鑰K和工作擬群Q(*)的起始值。然后,我們將進(jìn)一步分析同步模式中和完全異步模式中的EdonX。
為了初始化階段的安全性,由于它優(yōu)選地與EdonX中的一樣,因此我們可以說EdonZ的初始化階段是密碼安全的。關(guān)于EdonZ在完全異步模式中的安全性,我們將假設(shè)工作擬群Q(*)對于對手是未知的,除非她/他對原始給出的擬群Q(*)的自合痕的整個集合進(jìn)行窮盡搜索,并且該搜索是2132階的。此外,我們將假設(shè)對手不知道長度64個半字節(jié)(即,256比特)的工作密鑰的初始值。
為了證明EdonZ對于選擇明文攻擊是安全的,讓我們假設(shè)對手知道(許多對中的)一對(plaintext,ciphertext(M,C)=((M0M1...),(C0C1...))。分別對于K中的半字節(jié)的第i生成以及XKi,j和Xi,j,我們將使用與同步流密碼的情況中相同的通知。
對于第一對半字節(jié)(M0,C0),對手可以獲得下列擬群方程系統(tǒng) K0,0*M0=X0,0 K0,1*X0,0=X0,1 K0,2*X0,1=X0,2 ... K0,62*X0,61=X0,62 K0,63*X0,62=X0,63 X0,63=C0 (4) 知道C0=X0,63的值,對手可以嘗試求解方程K0,63*X0,62=X0,63。該方程具有兩個未知變量K0,63和X0,62。由于擬群運算*也是未知的,因此對手可以猜所有256個可能的解中的任一個。設(shè)置這些值作為猜測,她/他可以繼續(xù)向上,對K0,62*X0,61=X0,62(也可以具有256個可能的解中的任一個)求解,等等。最后,對手將到達(dá)第一方程K0,0*M0=X0,0,由此他/她將求出K0,0的值。
這里,我們還有這樣的情形,即,對手沒有其他機(jī)制來知道他/她是否對密鑰K的各值和擬群運算Q(*)進(jìn)行了正確的猜測,除非他/她將所有方程運行遍(除了第一個),這又使猜測的總數(shù)成為2252×2132=2384。
預(yù)期EdonZ的用途將是實現(xiàn)安全性協(xié)議,用于檢查通過通信的公共信道接收的數(shù)據(jù)的完整性,而無需使用兩種類型的加密算法流加密和消息認(rèn)證代碼(或安全散列函數(shù))。TASC的概念具有這兩個性質(zhì)。EdonZ作為擬群流密碼,與EdonX和EdonY一起,也具有下列性質(zhì) 靈活性對EdonZ初始化階段更仔細(xì)的觀察將會示出,它不使用最大64個半字節(jié)的初始密鑰,而是直接將該數(shù)字?jǐn)U大到128、1024、2048或者任何其他數(shù)量的半字節(jié)。該事實的重要性在于,EdonZ可以滿足從平均到極端的不同安全性準(zhǔn)則;因此,非常多疑的用戶可以使用1K(或1M)個半字節(jié)(即,4K(或4M)比特)的秘密密鑰,而不需要重新設(shè)計該算法。為了更高的安全性,應(yīng)當(dāng)選擇更長的初始秘密密鑰,但計算的數(shù)量線性依賴于密鑰長度。
額外的安全性如果我們假設(shè)初始擬群和初始密鑰長度也是秘密的,那么系統(tǒng)的安全性變得強(qiáng)很多。因此,如果初始擬群是秘密的、而不是大約(16!)3≈2132個自合痕,那么對手不得不考慮所有可能的16階的擬群運算,并且這些運算的數(shù)量是未知的,但大于10120≈2400。
與EdonX一樣,EdonZ的優(yōu)選設(shè)計工作在4比特寄存器上,并且使用16階擬群的兩個固定的查找表,它們可以以僅256字節(jié)存儲。連同內(nèi)部存儲器和算法的執(zhí)行代碼一起,EdonZ可以以小于1Kb實現(xiàn)。因此,EdonZ適合硬件實現(xiàn)為芯片卡中的嵌入式系統(tǒng),具有非常少量的存儲器(即,小于1KB的存儲器)。
EdonZ或類似的TASC流密碼的另一個潛在的用途是在糾錯算法領(lǐng)域?,F(xiàn)在將討論示例性糾錯算法,優(yōu)選使用TASC(如EdonZ)。該方法是用于生成隨機(jī)碼的核心算法,即使接收的數(shù)據(jù)的相當(dāng)一部分被差錯損壞,也可以相對快速地解碼該隨機(jī)碼。我們示出,存在通過擬群串變換生成的一類碼,它們幾乎是隨機(jī)的,并且是有效的可解碼的。初始數(shù)字實驗表示,這些碼的性能可能明顯優(yōu)越于Turbo和LDPC碼。例如,對于SNR=0.0dB,速率1/2以及僅288比特的塊長度,這些碼給出BER=1.7×10-4,而對于SNR=-0.5dB,速率1/4和僅864比特的塊長度產(chǎn)生BER=4.1×10-5。
有噪信道編碼定理的非結(jié)構(gòu)性的證明顯示,對于任何有噪信道存在良好的塊碼,此外,幾乎所有塊編碼都是好的。然而,寫出像香農(nóng)在他的開創(chuàng)性著作A Mathematical Theory of Communication中證明的那樣好的、清楚和實用的編碼器和解碼器,仍然是未解的問題。
最近認(rèn)識到,兩類碼—即turbo碼和低密度奇偶校驗(LDPC)碼,以非常接近香農(nóng)極限的速率執(zhí)行。Turbo和LDPC碼基于類似的原理受約束的隨機(jī)碼總體,用某些固定的參數(shù)加隨機(jī)性描述,使用迭代算法或消息傳遞解碼器解碼。
本發(fā)明的另外方面提供一類具有下面兩個性質(zhì)的糾錯碼第一,對于任意碼字C,長度r的C的子串的分布是均勻的,第二,編碼是迭代的,這意味著它是在具有小長度的串上定義的映射的組成部分。第一個性質(zhì)確保我們的碼是幾乎隨機(jī)的。當(dāng)然,隨機(jī)碼的解碼是NP-完全問題。然而,第二個性質(zhì)確保我們的碼可以高效地解碼。詳細(xì)描述用擬群串變換實現(xiàn)的這些碼的實例。我們的初步數(shù)字仿真顯示,提出的碼的性能明顯優(yōu)越于對應(yīng)的turbo和LDPC碼。
為了描述優(yōu)選碼,考慮信息的源產(chǎn)生符號流。該流被分成長度Nblock的塊??赡艿?2Nblock個塊中的每一個由編碼器映射到長度N>Nblock的碼字(即,比特序列),并且通過信道傳輸。因此,糾錯碼被定義為映射 根據(jù)本發(fā)明的實施例的碼T定義如下。設(shè)M為Nblock比特的塊。首先,我們添加0比特,并且產(chǎn)生長度N的塊L。其次,我們將L重寫為L=L1L2...Lp,其中每個Li是s個比特的塊(我們假設(shè)N=sp)。再次,以下列方式利用雙射將塊L映射到塊C=C1C2...Cp。
設(shè)K1,1,k1,2,...,K1,n為n個初始串,每個長度s。塊L被如下映射到C 其中f和g是適當(dāng)運算。注意(1)唯一地定義了我們的碼T。
如果我們寫k(i)=ki,1,ki,2...ki,n,i=1,2...p+1,則方程(1)還定義下面兩個映射。第一,映射FAn×Ap→An×Ap,使得(k(p+1),C)=F((l),L),其中A={0,1}l是具有長度l的所有串的集合。第二,映射G1An×A1→An×A1,使得對于每個i=1,2,...,p,(k(i+1),Ci)=G1(k(i),Li)。為此,我們說,我們的碼是以兩種方式替代的(i)對于每個Li,f被迭代n次以產(chǎn)生Ci;和(ii)k(I)被迭代p次以給出k(p+I)。
在下面我們將用映射G4≡G工作,代替G1。為了簡單起見,我們僅假設(shè)p=4r。于是方程(1)可以重寫為 方程(2)定義了映射GAn×A4→An×A4,使得對于l=1,2,...,r,k(4l+1),C(l)=G(k(4l-3),L(l))。
此外,我們的碼具有以下性質(zhì)該碼是幾乎隨機(jī)的,這意味著對于每個當(dāng)N足夠大時,長度k(1≤k≤n)的子串C=T(M)∈{0,1}N的分布是均勻的。
例如,擬群運算和擬群串變換的執(zhí)行與EdonX、EdonY和EdonZ的類似。
考慮字母表(即,有限集)A,并且用A+表示由A的各元素形成的所有非空詞(即,有限串)的集合。A+的各元素將用a1a2...an表示而不是用(a1,a2,...,an)表示,其中a1∈A。設(shè)*是集合A上的擬群運算。對于每個l∈A,我們?nèi)缦露x函數(shù)el,*A+→A+。設(shè)ai∈A,α=a1a2...an。則 el,*(a)=b1...bnbi+1=bi*a2+1 (3) 對于每個i=0,1,...,n-1,,其中b0=I。函數(shù)el,*稱為首項為I的、基于運算*的A+的e-變換。
在集合A上可以定義若干擬群運算,并且設(shè)*1,*2,...,*k是這些運算的序列(不必要不同)。我們還選擇首項l1,l2,...,lk∈A(也不必要不同),于是映射的組成
被稱為A+的E-變換。函數(shù)Ek實際上是置換,它具有許多有趣的性質(zhì)。下面是很重要的一個性質(zhì) 定理9考慮任意串α=a1a2...an∈A+,其中ai∈A,并且設(shè)β=Ek(α)。如果n是足夠大的整數(shù),則對于每個l1≤l≤k,長度l的β的子串的分布是均勻的(對于l>k,長度l的β的子串的分布可能不是均勻的)。
該編碼具有兩個總體部分。在這里提供的實例中,我們現(xiàn)在僅描述1/2速率的設(shè)計;對不同編碼速率的普遍化是直接了當(dāng)?shù)摹<僭O(shè)要發(fā)送的消息具有形式M=m1m2...m18,,其中mi是半字節(jié)(4比特字母)。在第一部分中,我們添加冗余信息,并且獲得L=L(1)L(2)L(3)L(4)L(5)L(6)L(7)L(8)L(9),其中L(1)=m1m2m304,L(2)=m4m5m604,L(3)=m7m8m904,L(4)=0404.0404,L(5)=m10m11m1204,L(6)=m13m14m1504,L(7)=m16m17m1804,L(8)=04040404,L(9)=04040404,其中04是4個零的串(零半字節(jié))。因此,每個L(i)是16比特的串。由于我們添加18個零半字節(jié),因此碼速率是1/2。這在下表中示意性示出。
表I速率1/2和1/4的碼 表II 我們在實驗中使用的16階擬群 在該表中,我們還示出1/4速率碼。對于該1/2碼,我們也說它是(72,144)碼(M的長度為72,L的長度為144)。
在編碼的第二部分中,我們選擇f為表2中定義的擬群預(yù)算,并且g為 ki+1,j=bi,j if j=1,...n-1 ki+1,n=bi,1...bi,n 在這里提供的數(shù)字實驗中,我們使用碼(144,288)。這是通過下面方式進(jìn)行的。讓L被重寫為兩個子模式L=L104的連接,其中L1=L(1)L(2)...L(8)。于是,碼(144,288)可以被描述為L=L1L20404,其中L2=L(9)L(10)...L(16)。
我們將提供用288比特的塊工作、并且具有1/4速率的示例。我們在編碼和解碼階段中使用的TASC算法在下表中示出。
表III 完全異步流密碼 在上述算法中,符號Q[Ki,X]表示擬群運算Ki*X,而運算是異或運算。符號Qpar[temp,X]表示我們使用擬群Q(*)的左伴生擬群運算。
發(fā)送的碼字是C。由于噪聲,接收到不同的符號序列D=d1d2...d36,其中di是半字節(jié)。解碼問題是給出D、碼的定義和噪聲信道的特性,推出L。我們假設(shè)該信道是二進(jìn)制對稱信道。設(shè)H(h1,h2)是返回相同長度(比特的)的兩個串h1和h2之間的漢明距離的函數(shù)。
表IV 我們在我們的實驗中使用的擬群Q(*)的左伴生Qpar(\) TASCECA算法由下列算法定義 1)定義解碼候選S0={(k0,λ)}的初始集。
2)for i=1 to μ,do (k,md″)=f-1(k″,D″),m′=m″md″,, 其中,md″ 具有與Mij同樣的冗余信息} 3)從最后集合Sμ,選擇元素(k,m′)∈Sμ。
4)從m′獲得消息M。
例如,假設(shè)我們想要用速率1/4且288比特塊長度的TASCECA,通過二進(jìn)制對稱信道發(fā)送下面消息M=4d616365646f6e6961。為了結(jié)果更易于表示,我們將使用小的值Bmax=3。這意味著對于每個接收的4字母字Di(即,接收的16比特字Di),我們將搜索遍它的所有具有小于或等于3的漢明距離的鄰居。這些相近的鄰居的總數(shù)是根據(jù)上面的表,我們將消息M變換成下面的消息(表示為4字母字的拼接) M′=4d00 6100 6000 0000 3600 5000 6000 0000 4600 f600e000 0000 6900 6000 1000 0000 0000 0000。
注意,在這種情況下4字母字的總數(shù)為L=18。讓我們選擇密鑰k的長度為n=5,并且k0的初始值為k0=01234。如果我們用函數(shù)T和初始值k0變換M’,則可以立即結(jié)束編碼處理。如果我們這樣做,那么我們將獲得下面的對 (k,C)=T(k0,M′)= (98f91,26ab c306 b63b 50df 3965 39cbb564 5521 a059 6bOf611e 2700 239f 7c7c 6973 ge53 bd9a 5f26)。
然而,我們使用方程2來迭代表示下表中的編碼處理。下表中的各值可以迭代地獲得,即,(k1,C1)=(15b40,26ab)=T(k0,M1′)=T(01234,4d00),于是(k2,C2)=(7fd9a,c306)=T(k0,M2′)=T(15640,6100),等等。
在下面的迭代處理表中描述解碼階段。為了節(jié)省篇幅,集合Si的各元素以(k,M′)的形式顯示,與解碼階段的步驟2中描述的稍有不同。即,示出的M’被除去了冗余,即,沒有冗余的0。此外,除了集合Si的每個元素外,還存在具有最大漢明權(quán)重Bmax=3的粗體的4字母字。該字告訴我們,對接收的4字母字Di進(jìn)行了什么改變,使得當(dāng)對改變后的字應(yīng)用反函數(shù)T-1時,結(jié)果具有需要的冗余信息的結(jié)構(gòu)。因此,例如對于i=1,行″(6803e,4e),01a8″意味著(6803e,4e00)=T-1(01234,24ab01a8),然后行″(15b40,4d),0200″意味著(15b40,4dOO)=T-1(01234,24ab0200),依此類推。接著,對于i=2,行″(21a69,4ed1),0460″意味著(21a6 9,d100)=T-i(6803e,c3260460),依此類推。表V 編碼消息M’的迭代處理,與密鑰ki的中間值、以及Di的各值一起顯示,所述Di的各值由于二進(jìn)制對稱信道引入的某些差錯,與相應(yīng)的Ci不相同二進(jìn)制對稱信道 在解碼的處理中,我們迭代解碼4元組Di=djdj+1dj+2dj+3,j=1+4(i-1),i=1,2,...9,并且檢查04是否是相對應(yīng)的Li的最后半字節(jié),或者L4,L8,L9是否僅是零的串。然而,由于Di=djdj+1dj+2dj+3,j=1+4(i-1),i=1,2,...9,在一些比特上與相應(yīng)的碼字Ci=cjcj+1cj+2cj+3不同,因此在解碼處理中,我們對離Di的距離小于B比特的每個4元組解碼。在一些字中碼字的解碼是搜索這樣的Dis的過程即,Dis在解碼時,最后半字節(jié)是4個0的串、并且L4,L8,L9為僅是0的串。
很明顯,該步驟是解碼器的非常重要的迭代部分。在解碼的處理中,所有可能的候選的集合S中的各元素數(shù)量可能急劇增長,因此使該數(shù)量受到控制是很重要的。如上面速率碼表中所示,在L中放入冗余數(shù)據(jù)就是用于此目的,但也可以應(yīng)用用于消除最不可能的候選的其他技術(shù)。在迭代解碼的最后,最終S中的元素數(shù)量降低到1,意味著找到和糾正了所有差錯。解碼器還具有下列性質(zhì)如果從候選的集合S中由于某種原因消除了正確的候選,則進(jìn)一步解碼處理的若干步驟將最終產(chǎn)生空集合S,這表明做出了一些錯誤的解碼判決。
此外,假設(shè)集合S中的元素數(shù)量受到控制,我們可以計算解碼的BER的上界。即,對于具有差錯概率p的二進(jìn)制對稱信道,假設(shè)接收的4元組Di的最大漢明距離不大于B=Bmax,并且設(shè)K=N/16為長度N的碼字中的4元組的數(shù)量,則BER的上界可以通過下面表達(dá)式計算 其中是在16比特的串中出現(xiàn)多于Bmax個差錯的概率。
我們對該碼的實驗顯示出相對于Turbo和LDPC碼的重大改進(jìn)。例如,對于SNR=0.0dB、速率1/2和僅288比特的塊長度,優(yōu)選的碼給出BER=1.7×10-4,而對于SNR=-0.5dB、速率1/4和僅864比特的塊長度,產(chǎn)生BER=4.1×10-5。這些數(shù)字實驗顯示,在此時它的潛力遠(yuǎn)大于當(dāng)前最好的糾錯碼的能力。
本發(fā)明的另一個方面提供偽隨機(jī)數(shù)生成器(PRNG)的改進(jìn)器,使得改進(jìn)后的PRNG具有幾乎不可測的周期、各字母、各字母對、各字母三元組(等等)的均勻分布,并且通過所有的隨機(jī)性的統(tǒng)計測試。PRNG的優(yōu)選改進(jìn)器是通過使用擬群串變換設(shè)計的,并且其特性是數(shù)學(xué)上可證明的。它非常靈活輸入/輸出串可以是2比特字母、4比特字母、字節(jié)、2比特字母,等等。此外,它的復(fù)雜度是線性的,在其2比特和4比特實現(xiàn)中需要不超過1Kb存儲器,因此也適合在嵌入式系統(tǒng)中使用。
存在對偽隨機(jī)數(shù)生成器和/或無偏的隨機(jī)性的物理源上的(偽)隨機(jī)數(shù)生成器(PRNG)構(gòu)造的若干改進(jìn)器。對PRNG的所有改進(jìn)器的一般特性是,它們不使用源生成的每比特信息,或者它們的算法是指數(shù)性質(zhì)的,因此應(yīng)當(dāng)涉及逼近(approximation)。在提出的PRNG的改進(jìn)器的算法中,它們中的一些可以用計算上有效的方式實現(xiàn),而對于它們中的另一些,提供對期望的性質(zhì)的數(shù)學(xué)證明。
根據(jù)本發(fā)明的實施例,基于擬群串變換提供PRNG的改進(jìn)器。優(yōu)選的改進(jìn)器使用信息源產(chǎn)生的每比特信息。此外,優(yōu)選的改進(jìn)器能夠從只產(chǎn)生一個信號(例如,0)的固定源產(chǎn)生(高質(zhì)量的)偽隨機(jī)數(shù)序列。優(yōu)選算法的復(fù)雜度是線性的,即,將由長度n的輸入串以復(fù)雜度O(n)產(chǎn)生長度n的輸出串。這意味著可以設(shè)計在計算上非常有效的改進(jìn)器的軟件和硬件實現(xiàn)。優(yōu)選算法非常靈活對于其字母包括2比特、4比特、字節(jié)、2字節(jié)的串,可以使用相同的設(shè)計,并且一般地,它可以為n比特字母字母表設(shè)計(n≥2)。
上面提供了擬群的定義。此外如上面提供的,擬群的定義揭示了消去律x*y=x*zy=z,y*x=z*xy=z,并且方程a*x=b,y*a=b對于每個a,b∈Q具有唯一解。如果(Q,*)是擬群,則*稱為擬群運算。
可以定義若干擬群串變換,并且下面將說明我們感興趣的那些。考慮字母表(即,有限集)A,并且用A+表示A的各元素形成的所有非空字(即,有限串)的集合。A+的元素將用a1a2...an表示而不用(a1,a2,...,an)表示,其中a1∈A。設(shè)*是集合A上的擬群運算。對于每個l∈A,我們?nèi)缦露x兩個函數(shù)el,*,el,*′,A+→A+。設(shè)ai∈A,α=a1a2...an。則 el,*(α)=b1...bnbi+1=bi*ax el,*′(α)=b1...bnbi+1=ai+1*bi。
對于每個i=0,1,...,n-1,其中b0=l。函數(shù)el,*和el,*′稱為首項為l的、基于運算*的A+的e-和e’-變換。下表中示出e-和e’-變換的圖形表示。
圖1e-變換的圖形表示
圖2e’-變換的圖形表示 作為示例,取A={0,1,2,3},并且設(shè)擬群(A,*)由下面示出的乘法方案給出。
考慮串α=1021000000000112102201010300,并且選擇首項0。然后,通過e0,*和e0,*′變換,我們將獲得下面變換的串 e0,*(α)=1 322 1 302 1 302 1 0 1 1 2 1 1 1 330 1 3 1 30 以及 e0,*′(α)=3 3 0 3 3 3 3 3 3 3 3 332 1 2 1 1 233 2 0 3 3 1 1 1。
圖3擬群(A,*) 圖4連續(xù)的e-和e’-變換 我們提供上表中的這些變換的四個連續(xù)應(yīng)用。可以注意到,在α中的0,1,2和3的起始分布16/28,7/28,4/28,1/28改變成e0,*4(α)中的7/28,7/28,10/28,4/28以及e0,*′4(α)中的5/28,10/28,5/28,8/28,因此分布變得更均勻。
可以在集合A上定義若干擬群運算,并且設(shè)*1,*2,...,*k為這些運算的序列(不必要不同)。我們還選擇首項l1,l2,...,lk∈A(也不必要不同),然后映射的組成
分別稱為是A+的E-和E’-變換。函數(shù)Ek和E’k具有許多有趣的性質(zhì),對我們來說最重要的特性如下 定理10變換Ek和E’k是A+的置換。
定理11考慮任意串α=a1a2...an∈A+,其中ai∈A,并且設(shè)β=Ek(α)β=Ek′(α)如果n是足夠大的整數(shù),則對于每個l1≤l≤k,長度l的β和β’的子串的分布是均勻的(我們注意到,對于l>k,長度l的β和β’的子串的分布可能不是均勻的)。
如果p是使得對于每個i≥0有ai+1ai+2...ai+p=ai+p+1ai+p+2...ai+2p的最小的正整數(shù),那么我們說串α=a1a2...an∈A+(其中ai∈A)具有周期p。設(shè)α,β,β′與定理10中相同,并且假設(shè)變換Ek和E’k的首項a使得a*a≠a。于是我們有下面性質(zhì) 定理12串β和β’的周期至少按k線性增長。
我們應(yīng)當(dāng)注意,周期的增長取決于擬群運算,并且對于它們中的一些來說,它是指數(shù)的,即,如果α具有周期p,則β=Ek(α)和β′=Ek′(α)可以具有大于p2k的周期。我們將更詳細(xì)地對此討論。
在下面的示例中,我們通常將僅使用E-變換,因為按照對稱性,結(jié)果對E’-變換也將成立。
專門描述擬群PRNG改進(jìn)器,假設(shè)我們有離散信息源SI,其從A+產(chǎn)生串,即,SI的字母表是A,其中A={a0,a1,...,as-1}是有限字母表。我們可以考慮,從SI輸出的串是偽隨機(jī)數(shù),即,我們認(rèn)為A的各元素是數(shù)字基(base)s中的各位,并且SI是PRNG。然后我們因此基于相應(yīng)的E-和E’-變換,定義PRNG改進(jìn)器的兩個算法。我們稱它們?yōu)镋-算法和E’-算法。在算法中,我們使用若干內(nèi)部變量b,L1,...,Ln,算法的輸入是擬群的階s、s階的擬群A,*、固定元素l∈A(首項)、給出變換el,*和el,*′的應(yīng)用數(shù)量的整數(shù)n、以及從具有字母表A的一些信息源SI獲得的偽隨機(jī)串b0,b1,b2,b3,...。輸出是改進(jìn)的偽隨機(jī)串。
E’-算法僅在步驟6中與E-算法不同 我們需要說明指數(shù)擬群的含義,并且給出數(shù)s和n的合適的參數(shù)。事實上,數(shù)s某種程度上由信息源SI預(yù)定義,但不完全是。設(shè)SI的字母表為ASCII,包括所有8比特字母。于是我們有下面對A的選擇A={0,1,2,3},A={0,1,2,...,7},A={0,1,...,15},A={0,1,...,31},A={0,1,...,63},A={0,1,2,...,127}。即,SI的輸出串被認(rèn)為是比特串,然后這些比特被分成兩組、三組、等等。我們在這種情況下可以考慮,具有兩字節(jié)字母、三字節(jié)字母等的字母表,但512或更高階的擬群需要許多存儲空間,并且通常計算較慢,這是不愿意看到的。數(shù)n應(yīng)當(dāng)按照‘對于較小的s選較大的n’的原則來選擇,并且其選擇取決于信息源SI。因此,如果SI給出恒定輸出(例如,0),則根據(jù)我們的經(jīng)驗,一條規(guī)則可以是′ns≥512&n>8′。如果SI產(chǎn)生一種隨機(jī)序列,則n可以小,有時n=1就足夠了。例如,在Pascal中使用的PRNG未通過電池中的統(tǒng)計測試[diehard],但僅在應(yīng)用e-變換一次以后它就通過它們?nèi)?。?dāng)然,對于較大的s,獲得較好的輸出偽隨機(jī)串,但它應(yīng)當(dāng)由可用性能(算法速度、可存取的存儲器等)來優(yōu)化。所有提到的性質(zhì)都基于定理11和定理12以及我們通過幾百次實驗獲得的經(jīng)驗。
考慮了用于定義和改進(jìn)PRNG的擬群的可能。從現(xiàn)有的研究可以得出結(jié)論,有限擬群的類可以分成兩個不相交的子類線性(或分形(fractal))擬群的類和指數(shù)(或均勻)擬群的類。存在若干劃分這兩個類的特性,并且對于我們的目的來說,這一個是很重要的。給出有限集Q={q0,q1,...qs-1},設(shè)(Q,*)是擬群,并且讓我們從周期n的無限(即,足夠長)的串α=q0q1...qs-1q0q1...qn-1q0q1...qs-1...開始。對α應(yīng)用r次el,*變換,并且用αr表示獲得的串。然后,如果串αr的周期是r的線性函數(shù),則說擬群(Q,*)是線性的。在相反情況下,串αr的周期是指數(shù)函數(shù)nr(對于某常數(shù)n1<n≤s),則說擬群(Q,*)是指數(shù)的。數(shù)n稱為指數(shù)擬群(Q,*)的增長(growth)周期(是否只存在兩種有限擬群—線性和指數(shù),這是個未解的問題)。
通過在Dimitrova,V.,Markovski J.On quasigroup pseudo random sequencegenerator,Proc.of the 1-st Balkan Conference in Informatics,YManolopoulosand P.Spirakis eds.,21-23Nov.2004,Thessaloniki,pp.393-401中提供的統(tǒng)計結(jié)果顯示,當(dāng)擬群的階增加時,線性擬群的百分比降低。此外,可以確定,‘壞’擬群(即,具有增長周期s≤2的線性擬群和指數(shù)擬群)的百分比隨著擬群的階指數(shù)下降。下表示出根據(jù)Dimitrova等人的對于4、5、6、7、8、9和10階擬群的‘壞’擬群的百分比。
我們需要注意,上述結(jié)果不是非常精確(除了4階擬群獲得了完整的分類外),因為該結(jié)論是在僅應(yīng)用7次e-變換時做出的。即,可能發(fā)生某些擬群在多于7次應(yīng)用之后獲得≥2的增長周期。
我們在106個隨機(jī)選擇的16階擬群上進(jìn)行下面實驗。我們在對下面具有周期16的周期串0,1,2,...,14,15,0,1,2,...,14,15,...,0,1,2,...,14,15,...應(yīng)用5次每個擬群的el,*變換之后,計數(shù)增長周期。首項l的值不影響結(jié)果。獲得的增長周期的分布在下表中提供。
從該表可以看出,在應(yīng)用5次e-變換之后,907個擬群具有<2的增長周期。我們在對這些擬群的每一個應(yīng)用6次之后,計數(shù)增長周期,并且我們得到,它們中只有15個具有<2的增長周期。在應(yīng)用7次之后,僅有1個擬群具有<2的增長周期,但在應(yīng)用10次e-變換之后,它獲得2的增長周期。該實驗顯示,隨機(jī)找到16階的線性擬群并不容易。
優(yōu)選實施例的PRNG改進(jìn)器可以軟件或硬件非常有效地實現(xiàn)。它們是線性復(fù)雜度的,并且如果使用≤16階的擬群,則可以安裝在小于1Kb的工作存儲器中。因此,它們可以用在嵌入式系統(tǒng)中。算法的性能基于定理10、11和12。通過定理10,我們有E-算法和E’-算法是單射(injective)的,意味著從信息源SI獲得的不同輸入串將產(chǎn)生不同的輸出串。定理11允許獲得均勻輸出隨機(jī)串,其中各字母、各字母對、各字母三元組等的分布是均勻的。最后,定理12和統(tǒng)計結(jié)果示出,輸出隨機(jī)串的周期可以如我們期望的那樣大(事實上它潛在地是無限的)。通過使用適合的(指數(shù))擬群和參數(shù)s的適當(dāng)選擇,可以容易地獲得輸出隨機(jī)串的期望特性。很明顯,上述性質(zhì)不足以獲得好的偽隨機(jī)串。我們通過使用可用的統(tǒng)計測試(Diehard)檢查獲得的偽隨機(jī)串,并且它們通過了所有測試。
現(xiàn)在將提供定理11和12的證明。關(guān)于定理11,為了簡化證明中的技術(shù)性,我們?nèi)∽帜副鞟為{0,...,s-1},其中0,1,...,s-1(s>1)是整數(shù),并且*是A上的擬群運算。我們?nèi)缦露x隨機(jī)變量{Yn|n≥1}的序列。讓我們有字母0,1,...,s-1的概率分布(q0,q1,...,qs-1),使得對于每個i=0,1,...,s-1有qi>0且考慮e-變換E并且設(shè)γ=E(β),其中β=b1...bk,γ=c1...ck∈A+(bi,ci∈A)。我們假設(shè)串β是任意選擇的。于是我們用{Ym=i}表示隨機(jī)事件—串γ中的第m字母恰好為i。由(1)給出的e-變換的定義揭示 P(Ym=j(luò)|Ym-1=j(luò)m-1,...,Y1=j(luò)1)=P(Ym=j(luò)|Ym-1=j(luò)m-1), 這是因為γ中的第m成員的出現(xiàn)僅依賴于γ中的第(m-1)成員,而不依賴于第(m-2),...,第1成員。因此,序列{Ym|m≥1}是馬爾可夫鏈,并且我們將其稱為擬群馬爾可夫鏈(qMc)。讓pij表示串γ中字母j緊接著給定字母i出現(xiàn)的概率,即, pij=P(Ym=j(luò)|Ym-1=i),i,j=0,1,...,s-1 qMc的定義揭示了pij不依賴于m,因此我們有,qMc是齊次(homogeneous)馬爾可夫鏈。pij的概率可以如下確定。設(shè)i,j,t∈A且設(shè)i*t=j(luò)為擬群(A,*)中的真等式(true equality)。則 P(Ym=j(luò)|Ym-1=i)=qt, 因為方程i*t=j(luò)對于未知的x具有唯一解。因此,對于每個i,j=0,...,s-1,pij>0,即,qMc的變換矩陣II=(pij)是正則(regular)的。顯然,如任何馬爾可夫鏈中那樣,但對于qMc,我們也有 即,qMc的變換矩陣II是雙隨機(jī)(doubly stochastic)的。
II的正則性揭示,存在唯一固定的概率向量p=(p0,...,ps-1)使得pII=p,并且p的所有分量都是正的。此外,由于II還是雙隨機(jī)矩陣,因此可以檢查
是pII=p的解。因此,這樣,我們有下列引理 引理設(shè)β=b1b2...bk∈A+且γ=E(1)(β)。則對于每個i∈A以及每個m=1,2,...,k,字母i出現(xiàn)在串γ=c1...ck的第m位置的概率大約是
該引理告訴我們,在通過qsp從足夠大的串β獲得的串γ=E(β)中,字母的分布是均勻的。我們通過考慮串γ=En(β)(β=b1b2...bk∈A+)的子串ci+1...ci+l的分布來進(jìn)行討論,其中l(wèi)≥1是固定的,并且i∈{0,1,...,k-l}。照例,我們說ci+1...ci+l是長度l的γ的子串。通過下面定義隨機(jī)變量的序列 其中這里以及下面上標(biāo)(n)表示這一事實,即,我們考慮通過en類型的變換從串β獲得的串的子串。因此,Ym(n)僅是如前面定義的隨機(jī)變量Ym。映射
是從Al到{0,1,...,sl-1}的雙射,從而序列被明確定義。序列也是馬爾可夫鏈(n-qMc),因為γ中l(wèi)個連續(xù)符號的子串im(n)im+1(n)...im+l-1(n)的出現(xiàn)僅依賴于前面的子串im-1(n)im(n)im+1(n)...im+l-2(n)。用t和t’表示下面的數(shù) 設(shè)Pt′t是在某一串γ=E(n)(β)中,γ的子串im(n)...im+l-2(n)im+l-1(n)(從第m到第m+l-1位置)出現(xiàn)在γ的給定子串im-1(n)i′m(n)......i′m+l-3(n)i′m+l-2(n)(從第m-1到第m+l-2位置)之后(帶重疊)的概率。很顯然,對于某j ∈{m,m-1,...,m+l-2},如果則Pt′t=0。在相反的情況下(當(dāng)l-1個字母重疊時)我們有 通過使用擬群變換的數(shù)量n的歸納,我們將證明定理11,即,我們將證明其下面的版本 設(shè)1≤l≤n,β=b1b2...bk∈A+且γ=E(n)(β)。則長度l的γ的子串的分布是均勻的。
回憶符號A={0,...,s-1}。對于n=1,我們有引理,并且設(shè)n=r+1,r≥1。通過歸納性假說,對于γ′=Er(β)中l(wèi)≤r的長度l的子串的分布是均勻的。首先,我們假設(shè)l≤r,并且我們考慮的長度l的子串。我們?nèi)?1,...,*r+1為A上的擬群運算,并且回憶E(r+1)=Er+1°E(r)=Er+1°Er°E(r-1)=....。由于(A,*r+1)是擬群,因此方程對于每個j,2≤j≥k,具有x的唯一解,并且我們用表示它。用i1(r)表示方程的解,其中ar+1∈A是Er+1的定義中的固定元素。通過這種方式,而不是用γ的子串im(r+1)im+1(r+1)...im+d(r+1)運算,我們可以考慮γ′=E(r)(β)的子串im(r)im+1(r)...im+d(r),對于任何d,0≤d≤k-m。擬群方程中的解的唯一性揭示我們也有 這里,于是,由(3)和(4)(對于d=l-1,d=l-2和n=r+1),我們有 其中1≤r。通過歸納性假說,我們有即,因此,對于概率Pt′t,我們有 這意味著在n-qMC的sl×sl-變換矩陣II的每列中,將存在正好s個等于
的成員(對于的那些),其他成員將等于0,于是II的每列的成員之和等于1。因此,變換矩陣II是雙隨機(jī)的。它也是正則矩陣,因為矩陣IIl的每個元素是正的。這意味著系統(tǒng)pII=p具有唯一的固定概率向量作為解。換句話說,長度l≤r的γ的子串的分布是均勻的?,F(xiàn)在假設(shè)l=r+1,并且設(shè)數(shù)t、t’以及概率pt′t如以前那樣定義。于是對于pt′t,我們有,上面對于pt′t的方程也成立,即, 與以前使用的方式相同,通過利用方程在擬群(A,*u)中具有唯一解其中u=r,r-1,...,2,1的這一事實,我們可以考慮γ′=E(r)(β),γ″=E(r-1)(β),...,γ(r)=E(1)(β),γ(r=1)=E(0)(β)=β.的子串。于是,對于概率pt′t,通過反復(fù)使用方程(4)和(6),我們將上標(biāo)(r)減少到(r-1),到(r-2),...,到(1),即,我們將有 其中由于因此我們有 其揭示 我們應(yīng)當(dāng)注意方程 成立,因為方程對于每個u=r+1,r,...,2,1,在擬群(A,*u)中具有唯一解。
因此,變換矩陣II是雙隨機(jī)的,它是正則的(IIr+1具有正項),意味著系統(tǒng)pII=p具有唯一的固定概率向量作為解。
一般而言,在串γ=E(n)(β)中對于l>n的長度l的子串的分布不是均勻的。即,對于l=n+1,以與前面證明的最后部分中相同的方式,可以示出于是(與上所示的揭示的求和一樣),我們有 當(dāng)然,最后的和一定不能等于1,即,變換矩陣II一定不能是雙隨機(jī)的。對于l=n+2,n+3,...也可以做出相同的考慮。
為了證明定理12,考慮s階有限擬群(A,*),并且取固定元素a∈A使得a*a≠a。我們將在更極端的情況中證明定理12,因此我們?nèi)≈芷趌的串α=a1...ak,其中對于每個i≥1,ai=a。然后我們對α應(yīng)用變換E=ea,*若干次。En意味著E被應(yīng)用n次,并且我們表示下表中提供結(jié)果。由于a*a≠a,因此對于某p>1,因此我們有a′p=a 并且ai′∈A(所以我們有,p至少為s),并且設(shè)p為具有該性質(zhì)的最小整數(shù)。由此得出,串E(α)是周期性的,周期為p。由于類似的理由,我們有,每個串E(α)是周期性的。我們將示出,所有串E(α)有相同周期p是不可能的。如果我們假設(shè)它為真,那么對于每個n≥1,我們將有然后我們還將有,存在
使得下面等式成立 于是我們有a*b1=b1,并且揭示對于每個n≥1,我們得到a*a=a*b1=b1,揭示a=b1,與a*a≠a相矛盾。結(jié)果,我們有 我們得出結(jié)論,串Ea(p+1)(α)的周期不是p。
接下來我們示出,如果串β∈A+具有周期p,并且γ=E(β)具有周期q,則p是q的因數(shù)?;叵胪ㄟ^定理10的變換E是置換,因此存在反變換E-1。現(xiàn)在,如果γ=b1...bqb1...bq...b1...bq,則β=E-1(γ)=c1c2...cqc1c2...cq...c1c2...cq是周期≤q的周期性串。因此,p≤q,并且這揭示p是q的因數(shù)。
將前面結(jié)果組合,我們已證明定理12的下面版本 設(shè)α是具有周期p0的串。于是,串是周期性的,其周期pn是p0的倍數(shù)。β的周期pn滿足不等式 對于每個n≥1, 盡管示出和描述了本發(fā)明的特定實施例,但應(yīng)當(dāng)理解,其他變形、替換和更改對于本領(lǐng)域的普通技術(shù)人員來說是明顯的。可以做出這些變形、替換和更改,而不背離本發(fā)明的精神和范圍,本發(fā)明的范圍應(yīng)當(dāng)由權(quán)利要求書確定。
本發(fā)明的各種特征在權(quán)利要求書中闡述。
優(yōu)先權(quán)聲明
本發(fā)明依照35U.S.C.§119要求于2004年10月13日提交的美國臨時專利申請No.60/618173的優(yōu)先權(quán)。
權(quán)利要求
1.一種使用同步流密碼加密消息的方法,所述方法包括
基于可選擇的長度n的秘密初始密鑰Kin,確定作為初始擬群的自合痕的擬群;
確定工作密鑰;
從所述確定的工作密鑰、所述確定的擬群、和所述初始擬群,生成二進(jìn)制加性密碼的密鑰流;
將所述消息作為輸入流引入到所述二進(jìn)制加性密碼;
產(chǎn)生包括所述加密的消息的所述二進(jìn)制加性密碼的輸出流。
2.如權(quán)利要求1所述的方法,其中,所述工作密鑰是使用所述秘密初始密鑰Kin確定的。
3.如權(quán)利要求2所述的方法,其中,所述確定擬群包括
接收所述秘密初始密鑰Kin;
填充所述密鑰;
將所述填充的密鑰擴(kuò)展到預(yù)定大?。?br>
使用所述初始擬群,變換所述擴(kuò)展的密鑰;
使用所述擴(kuò)展的密鑰,將所述初始擬群變換到所述確定的擬群。
4.如權(quán)利要求3所述的方法,其中所述確定工作密鑰包括
選擇長度n的所述擴(kuò)展的密鑰的子集。
5.如權(quán)利要求1-4中任一個所述的方法,其中所述生成密鑰流包括
a)設(shè)置計數(shù)器其中m是所述工作密鑰的長度;
b)為初始臨時變量賦值X←K[Counter modn];
c)為初始臨時變量賦值T←K[Counter+pmodn];
d)根據(jù)下述確定臨時變量X,
for i=0 to m-1 do
begin
X←Ki*X;
T←T·X;
Ki←X;
end;
賦值Km-1←T;
e)提供輸出流OutputXInput;其中Input包括輸入流的部分;
f)Counter←Counter+1;
g)轉(zhuǎn)到b);
其中,所述產(chǎn)生輸出流包括執(zhí)行步驟e),并且·是任意的擬群運算。
6.一種使用同步流密碼解密消息的方法,所述方法包括
基于可選擇的長度n的秘密初始密鑰Kin,確定作為初始擬群的自合痕的擬群;
確定工作密鑰;
從所述確定的工作密鑰、所述確定的擬群、和所述初始擬群,生成二進(jìn)制加性密碼的密鑰流;
將所述加密的消息作為輸入流引入到所述二進(jìn)制加性密碼;
產(chǎn)生包括所述解密的消息的所述二進(jìn)制加性密碼的輸出流。
7.如權(quán)利要求6所述的方法,其中,所述工作密鑰是使用所述秘密初始密鑰Kin確定的。
8.如權(quán)利要求7所述的方法,其中,所述確定擬群包括
接收所述秘密初始密鑰Kin;
填充所述密鑰;
將所述填充的密鑰擴(kuò)展到預(yù)定大??;
使用所述初始擬群,變換所述擴(kuò)展的密鑰;
使用所述擴(kuò)展的密鑰,將所述初始擬群變換到所述確定的擬群。
9.如權(quán)利要求8所述的方法,其中所述確定工作密鑰包括
選擇所述擴(kuò)展的密鑰的子集。
10.如權(quán)利要求6-9中任一個所述的方法,其中所述生成密鑰流包括
a)設(shè)置計數(shù)器其中m是所述工作密鑰的長度;
b)為初始臨時變量賦值X←K[Counter mod n];
c)為初始臨時變量賦值T←K[Counter+pmod n];
d)根據(jù)下述確定臨時變量X,
for i=0 to m-1 do
begin
X←Ki*X;
T←T·X;
Ki←X;
end;
賦值Km-1←T;
e)提供輸出流OutputXInput;其中Input包括輸入流的部分;
f)Counter←Counter+1;
g)轉(zhuǎn)到b);
其中,所述產(chǎn)生輸出流包括執(zhí)行步驟e),并且·是任意的擬群運算。
11.如權(quán)利要求1-10中任一個所述的方法,其中所述初始擬群是秘密的。
12.一種使用自同步流密碼加密消息的方法,所述方法包括
基于r-比特字母的、可選擇的長度n的秘密初始密鑰Kin,確定作為初始擬群的自合痕的r2階擬群;
確定工作密鑰;
作為所述確定的工作密鑰、所述確定的擬群、和所述加密的消息的前面固定數(shù)量的字母的函數(shù),加密所述消息。
13.如權(quán)利要求12所述的方法,其中,所述工作密鑰是使用所述秘密初始密鑰Kin確定的。
14.如權(quán)利要求13所述的方法,其中,所述確定擬群包括
接收所述秘密初始密鑰Kin;
填充所述密鑰;
將所述填充的密鑰擴(kuò)展到預(yù)定大??;
使用所述初始擬群,變換所述擴(kuò)展的密鑰;
使用所述擴(kuò)展的密鑰,將所述初始擬群變換到所述確定的擬群。
15.如權(quán)利要求14所述的方法,其中所述確定工作密鑰包括
選擇長度n的所述擴(kuò)展的密鑰的子集。
16.如權(quán)利要求12-15中任一個所述的方法,其中所述加密包括
a)設(shè)置
b)確定密鑰值K0←K0*(MCounter*KCounter+p mod n);
c)for i=1 to n-1 do
begin
Ki←Ki*Ki-1;
end;
d)確定輸出CCounter=Kn-1;
e)設(shè)置Counter←Counter+1;
f)轉(zhuǎn)到b)。
17.一種解密方法,其使用自同步流密碼對加密的消息解密,所述方法包括
基于r-比特字母的、可選擇的長度n的秘密初始密鑰Kin,確定作為初始擬群的自合痕的r2階擬群;
確定工作密鑰;
作為所述確定的工作密鑰、所述確定的擬群、和所述解密的消息的前面確定的固定數(shù)量的字母的函數(shù),解密所述消息。
18.如權(quán)利要求17所述的方法,其中,所述工作密鑰是使用所述秘密初始密鑰Kin確定的。
19.如權(quán)利要求18所述的方法,其中,所述確定擬群包括
接收所述秘密初始密鑰Kin;
填充所述密鑰;
將所述填充的密鑰擴(kuò)展到預(yù)定大??;
使用所述初始擬群,變換所述擴(kuò)展的密鑰;
使用所述擴(kuò)展的密鑰,將所述初始擬群變換到所述確定的擬群。
20.如權(quán)利要求19所述的方法,其中所述確定工作密鑰包括
選擇長度n的所述擴(kuò)展的密鑰的子集。
21.如權(quán)利要求16-20中任一個所述的方法,其中所述解密包括
a)設(shè)置
b)賦值臨時變量X←Kn-1,Kn-1←CCounter;
c)for i=n-2 down to 0 do
begin
Y←Ki
Ki←X\Ki+1;
X←Y
end;
d)確定解密的輸出MCounter=(X\K0)/KCounter+p mod n;
e)設(shè)置Counter←Counter+1;
f)轉(zhuǎn)到b),
其中\(zhòng)和/是確定的擬群*的伴生運算。
22.如權(quán)利要求12-21中任一個所述的方法,其中,所述初始擬群是秘密的。
23.一種使用異步流密碼加密消息的方法,所述方法包括
基于r-比特字母的、可選擇的長度n的秘密初始密鑰Kin,確定作為初始擬群的自合痕的r2階擬群;
確定工作密鑰;
作為所述確定的工作密鑰、所述確定的擬群、和所述消息的前面固定數(shù)量的字母的函數(shù),加密所述消息。
24.如權(quán)利要求23所述的方法,其中,所述工作密鑰是使用所述秘密初始密鑰Kin確定的。
25.如權(quán)利要求24所述的方法,其中,所述確定擬群包括
接收所述秘密初始密鑰Kin;
填充所述密鑰;
將所述填充的密鑰擴(kuò)展到預(yù)定大??;
使用所述初始擬群,變換所述擴(kuò)展的密鑰;
使用所述擴(kuò)展的密鑰,將所述初始擬群變換到所述確定的擬群。
26.如權(quán)利要求25所述的方法,其中所述確定工作密鑰包括
選擇長度n的所述擴(kuò)展的密鑰的子集。
27.如權(quán)利要求23-26中任一個所述的方法,其中所述使用長度n的工作密鑰k0加密包括
a)設(shè)置初始變量X←Input,其中Input是所述消息的r-比特字母;
b)設(shè)置初始變量T←0;
c)for i=1 to n-1 do
X←Q[Ki,X];
T←TX;
Ki←X;
d)Kn-1←T;
e)輸出X作為所述加密的消息;
f)轉(zhuǎn)到a)。
28.一種使用異步流密碼解密消息的方法,所述方法包括
基于r-比特字母的、可選擇的長度n的秘密初始密鑰Kin,確定作為初始擬群的自合痕的r2階擬群;
確定工作密鑰;
作為所述確定的工作密鑰、所述確定的擬群、和所述加密的消息的前面固定數(shù)量的字母的函數(shù),加密所述消息。
29.如權(quán)利要求28所述的方法,其中,所述工作密鑰是使用所述秘密初始密鑰Kin確定的。
30.如權(quán)利要求29所述的方法,其中,所述確定擬群包括
接收所述秘密初始密鑰Kin;
填充所述密鑰;
將所述填充的密鑰擴(kuò)展到預(yù)定大??;
使用所述初始擬群,變換所述擴(kuò)展的密鑰;
使用所述擴(kuò)展的密鑰,將所述初始擬群變換到所述確定的擬群。
31.如權(quán)利要求30所述的方法,其中所述確定工作密鑰包括
選擇長度n的所述擴(kuò)展的密鑰的子集。
32.如權(quán)利要求28-32中任一個所述的方法,其中所述使用長度n的工作密鑰k0加密包括
a)定義初始變量X,T←Input,其中Input是所述加密的消息的r-比特字母;
b)定義臨時變量temp←Kn-1;
c)for i=n-1 down to 0 do
X←Qpar[temp,X];
T←TX;
temp←Ki-1;
Ki-1←X;;
d)Kn-1←T;
e)輸出X作為所述解密的消息;
f)轉(zhuǎn)到a);
其中Qpar是對所述確定的擬群的左伴生擬群運算。
33.一種為經(jīng)由信道傳輸?shù)南⑻峁┘m錯碼的方法,所述消息包括被分割成長度Nblock的塊的符號流,所述方法包括
編碼器將可能的2Nblock個塊中每一個映射到長度N>Nblock的碼字C,使得所述糾錯碼被定義為映射
經(jīng)由所述信道傳輸所述映射的碼字;
其中所述映射是迭代的;
其中,對于任意碼字C,長度r的C的子串的分布是均勻的。
34.如權(quán)利要求33所述的方法,其中所述映射包括,對于Nblock比特的塊M
通過向塊M添加冗余信息,產(chǎn)生長度N的塊L,L包括L1L2...Lp,其中每個Li是s比特的塊,并且N=sp;
用雙射將所述塊L映射到塊C=C1C2...Cp。
35.如權(quán)利要求34所述的方法,其中所述映射塊L包括
設(shè)k1,1,k1,2,...k1,n為n個初始串,每個長度為s,如下將塊L映射到C
for i=1,2,...p
bi,0=Li
for j=1,2,...n
bi,j=f(ki,j,bi,j-1)
end j
Ci=bi,n
end i;
其中f,g是運算。
36.如權(quán)利要求35所述的方法,其中,f和g包括擬群運算。
37.如權(quán)利要求33-36中任一個所述的方法,其中所述映射包括對所述消息M執(zhí)行異步流密碼運算。
38.一種方法,其改進(jìn)從具有字母表A的信息源SI獲得的偽隨機(jī)串b0,b1,b2,b3,...的隨機(jī)化,所述方法包括
選擇s階的指數(shù)擬群(A,*),其中s是可選擇的正整數(shù);
通過對所述偽隨機(jī)串的各元素執(zhí)行n次擬群變換,變換所述偽隨機(jī)串,其中n是可選擇的正整數(shù)。
39.如權(quán)利要求38所述的方法,其中所述變換包括
a)for i=1 to n do Li←l;
b)do
b←RandomElement(SI);
L1←L1*b;
for i=2 to n do Li←Li*Li-1;
OutputLn;
loop;
其中*是所述選擇的指數(shù)擬群(A,*)。
40.如權(quán)利要求39所述的方法,其中所述變換包括
a)for i=1 to n do Li←l;
b)do
b←RandomElement(SI);
L1←b*L1;
for i=2 to n do Li←Li-1*Li;
OutputLn;
loop;
其中*是所述選擇的指數(shù)擬群(A,*)。
41.如權(quán)利要求38-40中任一個所述的方法,還包括
選擇正整數(shù)s;
選擇正整數(shù)n。
42.一種計算機(jī)可讀裝置,用于執(zhí)行如權(quán)利要求1-41中任一個所述的方法。
43.一種芯片,被編碼以執(zhí)行如權(quán)利要求1-41中任一個所述的方法。
44.一種傳播信號,被配置以使計算機(jī)執(zhí)行如權(quán)利要求1-41中任一個所述的方法。
45.一種計算機(jī),被編程以執(zhí)行如權(quán)利要求1-41中任一個所述的方法。
46.一種發(fā)送器,其從信息源接收消息,并被配置以執(zhí)行如權(quán)利要求1-41中任一個所述的方法。
47.一種接收器,其從信道接收消息,并被配置以執(zhí)行如權(quán)利要求1-41中任一個所述的方法。
全文摘要
流密碼,包括同步流密碼(12)、自同步流密碼(12)和完全異步流密碼(12),采用工作密鑰和擬群變換,其中使用的擬群是基于初始秘密密鑰(18)的。糾錯(10)和偽隨機(jī)數(shù)生成(24)改進(jìn)器方法也采用擬群變換(24)。
文檔編號H04L9/00GK101076968SQ20058004273
公開日2007年11月21日 申請日期2005年10月13日 優(yōu)先權(quán)日2004年10月13日
發(fā)明者朱普科·科卡里夫, 斯邁爾·馬科夫斯基, 丹尼洛·格利戈羅斯基 申請人:加利福尼亞大學(xué)董事會