一種序列密碼實(shí)現(xiàn)方法和密鑰流生成方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)一種序列密碼實(shí)現(xiàn)方法和密鑰流生成方法及裝置。其中序列密碼的實(shí)現(xiàn)方法為:選定兩個(gè)整數(shù)n和k,以及k個(gè)FSR、k個(gè)參考點(diǎn),1個(gè)導(dǎo)出算子D,2個(gè)混合器g1和g2和1個(gè)二元算子⊕;將種子密鑰SK和初始向量IV經(jīng)過(guò)密鑰擴(kuò)展打入FSR的內(nèi)部記憶單元作為初始狀態(tài),并對(duì)其執(zhí)行r次狀態(tài)更新運(yùn)算,每次狀態(tài)更新運(yùn)算依次包括:導(dǎo)出運(yùn)算、初始化模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算;然后對(duì)FSR的內(nèi)部狀態(tài)依次進(jìn)行:工作模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算;對(duì)每個(gè)工作狀態(tài)作用1次導(dǎo)出運(yùn)算,輸出一個(gè)n比特的密鑰字。本發(fā)明具有高安全、低功耗、低成本和高效率等諸多優(yōu)點(diǎn),提出的密鑰流生成方法可廣泛應(yīng)用于RFID等應(yīng)用環(huán)境中。
【專(zhuān)利說(shuō)明】一種序列密碼實(shí)現(xiàn)方法和密鑰流生成方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主要應(yīng)用于信息安全【技術(shù)領(lǐng)域】,具體涉及一種序列密碼實(shí)現(xiàn)方法和一種生成密鑰流的方法,以及相應(yīng)的裝置。
【背景技術(shù)】
[0002]序列密碼是一種主流的密碼體制之一。其因具有實(shí)現(xiàn)簡(jiǎn)單、效率高且硬件實(shí)現(xiàn)成本低等優(yōu)點(diǎn),主要被用在通信網(wǎng)絡(luò)中保護(hù)通信數(shù)據(jù)的安全。
[0003]序列密碼主要有兩大類(lèi):同步序列密碼和自同步序列密碼。其中前者因內(nèi)部狀態(tài)的更新與輸入明文數(shù)據(jù)無(wú)關(guān),且其構(gòu)建形式相對(duì)簡(jiǎn)單,理論比較成熟,在傳輸過(guò)程中不會(huì)因?yàn)槊魑膫鬏斿e(cuò)誤而導(dǎo)致錯(cuò)誤擴(kuò)散,因而受到序列密碼理論研究者的重點(diǎn)關(guān)注。
[0004]同步序列密碼主要由偽隨機(jī)發(fā)生器和加密器兩部分組成。其中偽隨機(jī)發(fā)生器在一個(gè)短的種子密鑰的控制下生成長(zhǎng)的偽隨機(jī)密鑰流,加密器將偽隨機(jī)發(fā)生器產(chǎn)生的密鑰流同明文數(shù)據(jù)相互作用產(chǎn)生對(duì)應(yīng)的密碼數(shù)據(jù)。加密器通常為異或操作。
[0005]傳統(tǒng)構(gòu)建同步序列密碼的方法有組合生成器和過(guò)濾生成器等。其中組合生成器由若干線性反饋移位寄存器(LFSR)和一個(gè)非線性組合函數(shù)組成。非線性組合函數(shù)主要對(duì)LFSR的輸出進(jìn)行非線性組合生成偽隨機(jī)密鑰流。過(guò)濾生成器主要由一個(gè)LFSR和一個(gè)非線性過(guò)濾函數(shù)組成。其中前者主要用于產(chǎn)生周期長(zhǎng)、統(tǒng)計(jì)特性好的偽隨機(jī)序列源,后者對(duì)該序列源進(jìn)行非線性加工以產(chǎn)生偽隨機(jī)密鑰流。這兩類(lèi)序列密碼序列構(gòu)建方法受到人們的廣泛關(guān)注,由于其容易受到快速相關(guān)攻擊和代數(shù)攻擊,如今已經(jīng)很少在序列密碼算法的設(shè)計(jì)中使用。隨后出現(xiàn)的鐘控生成器,主要通過(guò)不規(guī)則采樣使得源序列的代數(shù)性質(zhì)變得面目全非,從而獲得更好偽隨機(jī)特性的密鑰流。然而這類(lèi)構(gòu)建方法的安全性不易把握,其中大多基于此設(shè)計(jì)的序列密碼算法均已被破解,例如GSM加密標(biāo)準(zhǔn)A5/1,歐洲NESSIE計(jì)劃中的序列密碼 LIL1-128 等。
[0006]如何構(gòu)建現(xiàn)代新型序列密碼是序列密碼研究領(lǐng)域中的一個(gè)熱點(diǎn)和難點(diǎn)問(wèn)題。目前廣泛受關(guān)注的構(gòu)建模型有Grain類(lèi)模型和Trivium類(lèi)模型,這兩類(lèi)新型模型構(gòu)建簡(jiǎn)單,效率高,且安全性較高。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的在于提供一種快速、高效序列密碼實(shí)現(xiàn)方法和一種生成密鑰流的方法,以及相應(yīng)的裝置。
[0008]其中序列密碼實(shí)現(xiàn)方法的具體方案如下:
[0009]本方法由k個(gè)反饋移位寄存器FSR、k個(gè)參考點(diǎn)、I個(gè)導(dǎo)出算子D、2個(gè)混合器gl和g2以及I個(gè)二元算子?實(shí)現(xiàn),這里k是一個(gè)正整數(shù),k≥2。
[0010]記第i個(gè)FSR的長(zhǎng)度為Ii,反饋函數(shù)為fi; Ii個(gè)記憶單元為
反饋單元為ai;1,這里每個(gè)記憶單元a^j均由一個(gè)η比特的字構(gòu)成,即a^j e F2n,n是一個(gè)正整數(shù),F(xiàn)2= {O, 1},I≤i≤k,I≤j≤U。[0011]記k個(gè)參考點(diǎn)為J1, J2, jk,其中Ji指示第i個(gè)反饋移位寄存器的第Ji個(gè)記憶單元aui,該記憶單元ai,ji被稱(chēng)作參考記憶單元,這里I < ji < Ii, I < i < k。
[0012]導(dǎo)出算子D是一個(gè)定義在(F21T到F2n上的函數(shù),這里L(fēng)表示所有FSR的記憶單元的總數(shù),即L=IJl2+...+lk,其主要作用是根據(jù)序列密碼的當(dāng)前內(nèi)部狀態(tài)導(dǎo)出密鑰字ζ。
[0013]混合器gl是一個(gè)定義在(F2n)k+1到(F2n)k上的函數(shù),其輸入為導(dǎo)出算子D的輸出ζ和k個(gè)參考記憶單元< i < k)的值,輸出為k個(gè)η比特的字。
[0014]混合器g2是一個(gè)定義在(F2n)k到(F2n)k上的函數(shù),其輸入為k個(gè)參考記憶單元ai;Ji(l≤i≤k)的值,輸出為k個(gè)η比特的字。
[0015]二元算子?是一個(gè)定義在(F2n)2到F2n上的函數(shù),其輸入為第i個(gè)FSR的反饋輸入和混合器S1或者g2的輸出的第i個(gè)分量,輸出為I個(gè)η比特的字,該字將作為第i個(gè)FSR的反饋單元ai;1的更新內(nèi)容,I≤i≤k。
[0016]本方法主要對(duì)上述FSR中的記憶單元ai;j進(jìn)行操作,包括以下運(yùn)算:
[0017]導(dǎo)出運(yùn)算:對(duì)FSR當(dāng)前內(nèi)部狀態(tài)作用一次導(dǎo)出算子D。記輸出為ζ,貝U Z=Dfeu, a1;
2,..., <3-1,11,, ^k, D 已k,2,...,已k, lk)。
[0018]攪運(yùn)算:包含兩種操作模式:初始化模式和工作模式。在初始化模式中,對(duì)導(dǎo)出算子D的輸出ζ和k個(gè)參考記憶單元ai;μ (I ^ i ^ k)的值進(jìn)行g(shù)l變換,輸出k個(gè)η比特的字& ,即U1, t2,..., tk) =g! (z, a1;J1, a2,j2,..., ak;Jk);在工作模式中,直接對(duì)k個(gè)參考記憶單元ai』進(jìn)行g(shù)2變換,得到k個(gè)η比特的字&,這里I≤i≤k,即U1, t2,..., tk) =g2 (a1;J1, a2,j2, , ak, jk)。
[0019]吸運(yùn)算:對(duì)每個(gè)FSR均執(zhí)行一次反饋計(jì)算,令Wi=A (a^ ai;2,...,ai;li), I≤i≤k。
[0020]甩運(yùn)算:對(duì)每個(gè)FSR的記憶單元均執(zhí)行一次移位更新,即(Wi ? ti; ai;1, a12,..., ai;l1-l) — (ai,l,ai, 2,...,ai, li),I < i < k。
[0021]具體來(lái)說(shuō),本發(fā)明的一種序列密碼實(shí)現(xiàn)方法,其步驟為:
[0022]I)參數(shù)選擇:選定兩個(gè)整數(shù)η和k,以及k個(gè)長(zhǎng)度分別為I1, I2,…,Ik的FSR、k個(gè)參考點(diǎn)J1, j2,...,jk,I個(gè)導(dǎo)出算子D、2個(gè)混合器gl和g2、l個(gè)二元算子? ;
[0023]2)初始化狀態(tài)更新:將種子密鑰SK和初始向量IV經(jīng)過(guò)密鑰擴(kuò)展打入FSR的內(nèi)部記憶單元作為初始狀態(tài),并對(duì)其執(zhí)行r次狀態(tài)更新運(yùn)算,完成初始化狀態(tài)更新,這里r為正整數(shù)。其中每次狀態(tài)更新運(yùn)算依次包括:導(dǎo)出運(yùn)算、初始化模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算;
[0024]3)工作狀態(tài)更新:初始化狀態(tài)更新完成后,對(duì)FSR的內(nèi)部狀態(tài)依次進(jìn)行:工作模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算;
[0025]4)密鑰輸出:對(duì)每個(gè)工作狀態(tài)作用I次導(dǎo)出運(yùn)算,輸出一個(gè)η比特的密鑰字。
[0026]同時(shí),本發(fā)明提供一種用于實(shí)現(xiàn)上述方法的密碼裝置,其包括:
[0027]參數(shù)配置單元,主要用于確定所構(gòu)建序列密碼的相關(guān)參數(shù),主要包括整數(shù)η和k,以及k個(gè)FSR、k個(gè)參考點(diǎn)、I個(gè)導(dǎo)出算子D、2個(gè)混合器gl和g2以及I個(gè)二元算子?。
[0028]控制單元,用于將種子密鑰SK和初始向量IV裝入到FSR的內(nèi)部記憶單元作為初始狀態(tài),并執(zhí)行r次狀態(tài)更新運(yùn)算,r為正整數(shù),其中每次運(yùn)算依次調(diào)用密鑰導(dǎo)出單元、混合器單元、反饋更新單元;隨后依次執(zhí)行密鑰導(dǎo)出單元、混合器單元和反饋更新單元,并輸出密鑰字。[0029]其中:
[0030]密鑰導(dǎo)出單元用于對(duì)FSR的當(dāng)前內(nèi)部狀態(tài)執(zhí)行導(dǎo)出算子D ;
[0031]混合器單元,分兩種模式:初始化模式和工作模式。在初始化模式下用于對(duì)密鑰導(dǎo)出單元的輸出ζ和k個(gè)參考記憶單元的內(nèi)容執(zhí)行混合器gl運(yùn)算;在工作模式下用于對(duì)k個(gè)參考記憶單元的內(nèi)容執(zhí)行混合器g2運(yùn)算;
[0032]反饋更新單元用于對(duì)FSR的記憶單元執(zhí)行吸運(yùn)算和甩運(yùn)算。
[0033]本發(fā)明的生成密鑰流的方法的具體方案如下:
[0034]本方法由k個(gè)FSR、k個(gè)參考點(diǎn)、I個(gè)混合器g和I個(gè)導(dǎo)出算子D實(shí)現(xiàn),其中
16,k為整數(shù);每個(gè)FSR的反饋多項(xiàng)式都是本原多項(xiàng)式冰個(gè)參考點(diǎn)的位置相等,即
J=J1=J2=...=Jk ;混合器g是一個(gè)k進(jìn)k出的置換;導(dǎo)出算子D為k個(gè)FSR的內(nèi)部狀態(tài)的線性函數(shù);該方法的步驟包括:
[0035]I)初始化狀態(tài)更新:將種子密鑰SK和初始向量IV裝入k個(gè)FSR的記憶單元,并依次執(zhí)行r次狀態(tài)更新運(yùn)算,r為正整數(shù);每次狀態(tài)更新運(yùn)算依次執(zhí)行導(dǎo)出運(yùn)算、初始化模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算;
[0036]2)工作狀態(tài)更新:依次執(zhí)行工作模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算;
[0037]3)密鑰輸出:對(duì)每個(gè)工作狀態(tài)作用I次導(dǎo)出算子D,輸出一個(gè)η比特的密鑰字。
[0038]上述生成密鑰流的方法的具體步驟如下:
[0039]I)將種子密鑰SK和初始向量IV通過(guò)某種方式打入到k個(gè)FSR的記憶單元中,并執(zhí)行算法初始化步驟,具體包括:
[0040]La)導(dǎo)出運(yùn)算:對(duì)FSR的當(dāng)前狀態(tài)執(zhí)行I次導(dǎo)出算子D,輸出I比特密鑰ζ ;
[0041]1.b)初始化模式的攪運(yùn)算:對(duì)ζ和k個(gè)參考點(diǎn)內(nèi)容執(zhí)行I次gl變換,(t1; t2,...,tk) _gl (Z,aI, j,a2, j)...,ak, j),這里 gl (z,aI, j,a2, j,...,ak, j) ~S (ai, j> a2, j,...,ak, j) ? (z> Z,...,z), ?為異或運(yùn)算;
[0042]1.c)吸運(yùn)算:對(duì)每個(gè)FSR執(zhí)行I次反饋計(jì)算,令Wi=A (ai;1, a12,...,ai n),I < i < k;
[0043]1.d)甩運(yùn)算:對(duì)每個(gè)FSR執(zhí)行 I 次移位更新,即(Wi ? ti; ai;1, a12,...,Bi li^1) — (ai;i, a12,...,ai n), I≤i≤k,這里?為異或運(yùn)算。
[0044]2)重復(fù)執(zhí)行I)中所述步驟1.a)、1.b)、1.c)和1.d)若干次,完成算法的初始化過(guò)程。
[0045]3)輸出I比特的密鑰,方法如下:
[0046]3.a)導(dǎo)出運(yùn)算:對(duì)FSR的當(dāng)前內(nèi)部狀態(tài)執(zhí)行I次導(dǎo)出算子D,輸出I比特密鑰ζ ;
[0047]3.b)工作模式的攪運(yùn)算:對(duì)k個(gè)參考點(diǎn)的內(nèi)容執(zhí)行I次g2變換,即U1, t2,..., tk)~§2 (ai, j,a2, j)...,ak, j),這里 §2—S ;
[0048]3.c)吸運(yùn)算:對(duì)每個(gè)FSR執(zhí)行I次反饋計(jì)算,令W^fi (ai;1, a12,...,ai n),I < i < k;
[0049]3.d)甩運(yùn)算:對(duì)每個(gè)FSR執(zhí)行 I 次移位更新,(Wi ? ti; ai;1, a12,...,Bi li^1) — (ai;1,ai;2,...,ai n), I≤i≤k,這里?為異或運(yùn)算。
[0050]4)重復(fù)執(zhí)行3)中所述步驟3.a)、3.b)、3.c)和3.d),輸出所需長(zhǎng)度的比特密鑰流。
[0051]同時(shí),本發(fā)明提供用于實(shí)現(xiàn)上述方法的密鑰流生成裝置,其包括:[0052]密鑰擴(kuò)展單元,主要用于將種子密鑰SK和初始向量IV裝入到FSR的內(nèi)部記憶單元作為初始狀態(tài);
[0053]控制單元,用于對(duì)FSR的初始狀態(tài)執(zhí)行r次狀態(tài)更新運(yùn)算,這里r為正整數(shù),其中每次狀態(tài)更新運(yùn)算依次調(diào)用密鑰導(dǎo)出單元、混合器單元、反饋更新單元;隨后依次調(diào)用密鑰導(dǎo)出單元、混合器單元和反饋更新單元,并輸出密鑰流;
[0054]其中:
[0055]密鑰導(dǎo)出單元用于對(duì)FSR的當(dāng)前內(nèi)部狀態(tài)執(zhí)行導(dǎo)出算子D ;
[0056]混合器單元,分兩種模式:初始化模式和工作模式。在初始化模式下用于對(duì)密鑰導(dǎo)出單元的輸出ζ和k個(gè)參考記憶單元的內(nèi)容執(zhí)行混合器gl運(yùn)算;在工作模式下用于對(duì)k個(gè)參考記憶單元的內(nèi)容執(zhí)行混合器g2運(yùn)算。
[0057]反饋更新單元用于對(duì)FSR的記憶單元執(zhí)行吸運(yùn)算和甩運(yùn)算。
[0058]本發(fā)明涉及的一種序列密碼實(shí)現(xiàn)方法,其核心思想是模擬自然界的龍卷風(fēng)現(xiàn)象,通過(guò)吸、攪、甩三個(gè)步驟達(dá)到序列密碼內(nèi)部狀態(tài)信息比特快速擴(kuò)散的目的。同現(xiàn)有技術(shù)中基于Grain類(lèi)模型和Trivium類(lèi)模型的序列密碼實(shí)現(xiàn)方法相比,本發(fā)明涉及的一種序列密碼實(shí)現(xiàn)方法同樣具有簡(jiǎn)單和安全性高的特點(diǎn),并且其內(nèi)部狀態(tài)信息比特?cái)U(kuò)散的效率比上述兩種方法更加快速。本發(fā)明涉及的一種密鑰流生成方法,為按照序列密碼實(shí)現(xiàn)方法構(gòu)建的一種具體實(shí)例,繼承了其全部?jī)?yōu)點(diǎn),是一種具有高安全、低功耗、低延遲、低成本和高效率等諸多優(yōu)點(diǎn)的輕量級(jí)序列密碼。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0059]圖1為本發(fā)明的序列密碼實(shí)現(xiàn)方法的流程圖。
[0060]圖2為本發(fā)明的生成密鑰流的方法的流程圖。
[0061]圖3為本發(fā)明的序列密碼實(shí)現(xiàn)方法的初始化過(guò)程示意圖。
[0062]圖4為本發(fā)明的序列密碼實(shí)現(xiàn)方法的密鑰流輸出過(guò)程示意圖。
【具體實(shí)施方式】
[0063]下面通過(guò)具體實(shí)施例和附圖,對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
[0064]本實(shí)施例的一種序列密碼實(shí)現(xiàn)方法,其流程如圖1所示,具體步驟如下:
[0065]1.選擇兩個(gè)整數(shù)η和k,這里η≥I和k≥2 ;k個(gè)定義在(F2)n上的長(zhǎng)度分別為
I1,12,...,Ik 的 FSR,這里 Ii ^ 2,1;1 個(gè)整數(shù) j,這里 I ? Hiinil1, I2,, IJ ;I個(gè)線性導(dǎo)出算子D ;1個(gè)從(F2)k到(F2)k的非線性置換g;二元算子Θ為面向比特的異或運(yùn)算。
[0066]2.把種子密鑰SK和初始向量IV通過(guò)某種方式裝入到FSR的記憶單元ai;」中。
[0067]3.選定一個(gè)常數(shù)r,這里r≥1,執(zhí)行下述步驟r次,完成序列密碼的初始化過(guò)程,如圖3所示:
[0068]2.1導(dǎo)出運(yùn)算:對(duì)FSR當(dāng)前內(nèi)部狀態(tài)作用一次密鑰導(dǎo)出算子D,即z=D (a1;p a1;2,..?)已1,11,...,已k, I,已k,2,...,已k, lk) >
[0069]2.2初始化模式的攪運(yùn)算:對(duì)密鑰導(dǎo)出算子D的輸出ζ和k個(gè)參考記憶單元ai;J(l≤i≤k)的值進(jìn)行g(shù)i變換,得到k個(gè)η比特的字h,這里I≤i≤k,即U1, t2,...,tk) -g! (Z, a1; j, a2; j,...,ak’j),這里 gl (z, &i’j,a2’j,...,ak, j) _g (ai, j,a2, j,...,ak, j) ? (z,z,..?, z);
[0070]2.3吸運(yùn)算:對(duì)每個(gè)FSR均執(zhí)行一次反饋計(jì)算,令W^fi (ai;1, a12,...,ain),I ^ i;
[0071]2.4甩運(yùn)算:對(duì)每個(gè)FSR的記憶單元均執(zhí)行一次移位更新,即(Wi ? ti; ai;1, ai;2,...,ai, l1-1)— (ai,l,ai, 2)...,ai, li),I € i € k。
[0072]4.設(shè)需要導(dǎo)出的密鑰流的長(zhǎng)度為N,這里N是一個(gè)正整數(shù),N≥I。
[0073]5.對(duì)FSR當(dāng)前內(nèi)部狀態(tài)作用一次導(dǎo)出算子D,導(dǎo)出密鑰Z=Db^ a1;2,..., a1;11,..?,已k, I,已k,2,...,已k, lk)。
[0074]6.當(dāng)N≥2,執(zhí)行下述過(guò)程N(yùn)-1次:
[0075]5.1工作模式的攪運(yùn)算:對(duì)k個(gè)參考記憶單元^k)進(jìn)行g(shù)2變換,得到k 個(gè) η 比特的字 ti;即 U1, t2,...,tk) =g2 (a1; j, a2,j,...,ak,j),這里 g2=g ;
[0076]5.2吸運(yùn)算:對(duì)每個(gè)FSR均執(zhí)行一次反饋計(jì)算,令W^fi (ai;1, a12,...,ain),I ^ i ;
[0077]5.3甩運(yùn)算:對(duì)每個(gè)FSR的記憶單元均執(zhí)行一次移位更新,即(Wi ? ti; ai;1, ai;2,...,^i, l1-l) ~^ I? ^i, 2?...,^i, li),I ^ ? ^ k ;
[0078]5.4導(dǎo)出運(yùn)算:對(duì)FSR當(dāng)前內(nèi)部狀態(tài)作用一次導(dǎo)出算子D,導(dǎo)出密鑰Z=D^1, a1;2,
?..,已1,11,...,已k,l,已k,2,...,已k, lk)。
[0079]本實(shí)施例的一種密鑰流生成方法,其流程如圖2所示,該方法由4個(gè)反饋移位寄存器、I個(gè)混合器g和I個(gè)導(dǎo)出算子D實(shí)現(xiàn)。其中4個(gè)反饋移位寄存器均定義在F2上,長(zhǎng)度分別為37、41、53和61,反饋多項(xiàng)式為F2上的本原多項(xiàng)式,定義如下:
【權(quán)利要求】
1.一種序列密碼實(shí)現(xiàn)方法,其步驟包括: 1)選定兩個(gè)整數(shù)η和k,以及k個(gè)長(zhǎng)度分別為I1,12,...,1,的?51?、1^個(gè)參考點(diǎn)j'l, j2,...,jk,I個(gè)導(dǎo)出算子D、2個(gè)混合器gi和g2和I個(gè)二元算子Θ ; 2)將種子密鑰SK和初始向量IV經(jīng)過(guò)密鑰擴(kuò)展打入FSR的內(nèi)部記憶單元作為初始狀態(tài),并對(duì)其執(zhí)行r次狀態(tài)更新運(yùn)算,r為正整數(shù),其中每次狀態(tài)更新運(yùn)算依次包括:導(dǎo)出運(yùn)算、初始化模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算; 3)對(duì)r次狀態(tài)更新運(yùn)算后FSR的內(nèi)部狀態(tài)依次進(jìn)行:工作模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算; 4)對(duì)每個(gè)工作狀態(tài)作用I次導(dǎo)出運(yùn)算,輸出一個(gè)η比特的密鑰字。
2.如權(quán)利要求1所述的方法,其特征在于:所述整數(shù)n,k,I1,I2,, Ik和^ J2,jk,滿(mǎn)足η≥l,k ^ 2, Ii ^ 2,1 ^ Ji ( li, i=l,2,...,k ;所述k個(gè)FSR的每個(gè)記憶單元均包含η比特的信息,取值范圍為F211= {O, 1}η ;所述參考點(diǎn)I指示第i個(gè)FSR中的第個(gè)記憶單元,i=l, 2,…,k ;所述導(dǎo)出算子D為(F2n) L到F2n上的映射,其中L=Vl2+...+Ik ;所述混合器&為(F2n)k+1到(F21T上的映射,固定第一個(gè)輸入后,其退化成一個(gè)(F21T到(F21T上的置換;所述混合器g2為(F2n)k到(F2n)k上的置換;所述二元算子?為(F2n)2到F2n上的映射。
3.如權(quán)利要求1所述的方法,其特征在于:步驟2)的導(dǎo)出運(yùn)算是對(duì)FSR當(dāng)前內(nèi)部狀態(tài)作用I次導(dǎo)出算子D,輸出I個(gè)η比特的字;初始化模式的攪運(yùn)算是對(duì)導(dǎo)出運(yùn)算的輸出ζ和k個(gè)參考點(diǎn)的內(nèi)容作用I次gl變換并輸出k個(gè)η比特的字,其中g(shù)l輸入的第I個(gè)分量為z,第2,3,...,k+Ι個(gè)分量依次為第^ j2,..., Jk個(gè)參考點(diǎn)的內(nèi)容;吸運(yùn)算是對(duì)第i個(gè)FSR執(zhí)行I次反饋計(jì)算,輸出I個(gè)η比特的字Wi, I < i < k ;甩運(yùn)算是對(duì)初始化模式的攪運(yùn)算輸出的第i個(gè)分量和吸運(yùn)算的第i個(gè)FSR的輸出Wi作用I次二元算子θ,其輸出作為第i個(gè)FSR的反饋單元的更新內(nèi)容,并對(duì)第i個(gè)FSR的內(nèi)部狀態(tài)作I次移位更新。
4.如權(quán)利要求1所述的方法,其特征在于:步驟3)的工作模式的攪運(yùn)算是對(duì)k個(gè)參考點(diǎn)的內(nèi)容作用I次g2變換并輸出k個(gè)η比特的字,其中g(shù)2輸入的第i個(gè)分量為第ji個(gè)參考點(diǎn)的內(nèi)容;吸運(yùn)算是對(duì)第i個(gè)FSR執(zhí)行I次反饋計(jì)算,輸出I個(gè)η比特的字Wi, I≤i≤k ;甩運(yùn)算是對(duì)工作模式的攪運(yùn)算輸出的第i個(gè)分量和吸運(yùn)算的第i個(gè)FSR的輸出Wi作用I次二元算子?,其輸出作為第i個(gè)FSR的反饋單元的更新內(nèi)容,并對(duì)第i個(gè)FSR的內(nèi)部狀態(tài)作用I次移位更新運(yùn)算。
5.一種實(shí)現(xiàn)權(quán)利要求1所述方法的密碼裝置,其特征在于,包括: 參數(shù)配置單元,用于確定相關(guān)參數(shù),包括整數(shù)η和k,以及k個(gè)FSR、k個(gè)參考點(diǎn)、I個(gè)導(dǎo)出算子D、2個(gè)混合器gl和g2和I個(gè)二元算子? ; 控制單元,用于將種子密鑰SK和初始向量IV裝入到FSR的內(nèi)部記憶單元作為初始狀態(tài),并運(yùn)行r次狀態(tài)更新運(yùn)算,r為正整數(shù),其中每次狀態(tài)更新運(yùn)算依次調(diào)用密鑰導(dǎo)出單元、混合器單元、反饋更新單元;r輪運(yùn)算后,依次執(zhí)行密鑰導(dǎo)出單元、混合器單元和反饋更新單元,并輸出密鑰字;所述控制單元中: 所述密鑰導(dǎo)出單元用于對(duì)FSR的當(dāng)前內(nèi)部狀態(tài)執(zhí)行導(dǎo)出算子D ; 所述混合器單元分兩種模式:初始化模式和工作模式;在初始化模式下用于對(duì)密鑰導(dǎo)出單元的輸出ζ和k個(gè)參考記憶單元的內(nèi)容執(zhí)行g(shù)l運(yùn)算,在工作模式下用于對(duì)k個(gè)參考記憶單元的內(nèi)容執(zhí)行g(shù)2運(yùn)算; 所述反饋更新單元用于對(duì)FSR的記憶單元執(zhí)行吸運(yùn)算和甩運(yùn)算。
6.一種密鑰流生成方法,由k個(gè)FSR、k個(gè)參考點(diǎn)、I個(gè)混合器g和I個(gè)導(dǎo)出算子D實(shí)現(xiàn),其中2 < k < 16,k為整數(shù);每個(gè)FSR的反饋多項(xiàng)式都是本原多項(xiàng)式冰個(gè)參考點(diǎn)的位置相等,即j=ji=j2=...=jk,且分別來(lái)自于不同的FSR ;混合器g是一個(gè)k進(jìn)k出的置換;導(dǎo)出算子D為k個(gè)FSR的內(nèi)部狀態(tài)的線性函數(shù);該方法的步驟包括: 1)將種子密鑰SK和初始向量IV裝入k個(gè)FSR的記憶單元,并依次執(zhí)行r次狀態(tài)更新運(yùn)算,r為正整數(shù);每次狀態(tài)更新運(yùn)算依次執(zhí)行導(dǎo)出運(yùn)算、初始化模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算; 2)依次執(zhí)行工作模式的攪運(yùn)算、吸運(yùn)算和甩運(yùn)算; 3)對(duì)每個(gè)工作狀態(tài)作用I次導(dǎo)出算子D,輸出一個(gè)η比特的密鑰字。
7.如權(quán)利要求6所述的方法,其特征在于:步驟I)的導(dǎo)出運(yùn)算是對(duì)FSR的內(nèi)部狀態(tài)作用I次導(dǎo)出算子D,輸出密鑰字ζ ;初始化模式的攪運(yùn)算是對(duì)k個(gè)參考點(diǎn)的內(nèi)容作用I次g變換后的每個(gè)輸出分量均與ζ進(jìn)行異或運(yùn)算后的結(jié)果作為初始化模式的攪運(yùn)算的輸出;吸運(yùn)算是對(duì)第i個(gè)FSR執(zhí)行I次反饋計(jì)算并輸出Wi,I < i < k ;甩運(yùn)算是將初始化模式的攪運(yùn)算輸出的第i個(gè)分量和吸運(yùn)算的第i個(gè)FSR的輸出Wi異或后的結(jié)果作為第i個(gè)FSR的反饋單元的更新內(nèi)容,并對(duì)第i個(gè)FSR的內(nèi)部狀態(tài)作I次移位更新。
8.如權(quán)利要求6所述的方法,其特征在于:步驟2)的工作模式的攪運(yùn)算是對(duì)k個(gè)參考點(diǎn)的內(nèi)容作用I次g變換并輸出k個(gè)字;吸運(yùn)算是對(duì)第i個(gè)FSR執(zhí)行I次反饋計(jì)算并輸出
;甩運(yùn)算是將工作模式的攪運(yùn)算輸出的第i個(gè)分量和吸運(yùn)算的第i個(gè)FSR的輸出Wi異或后的結(jié)果作為第i個(gè)FSR的反饋`單元的更新內(nèi)容,并對(duì)第i個(gè)FSR的內(nèi)部狀態(tài)作I次移位更新。
9.一種實(shí)現(xiàn)權(quán)利要求6所述方法的密鑰流生成裝置,其特征在于,包括: 密鑰擴(kuò)展單元,用于將種子密鑰SK和初始向量IV裝入到FSR的內(nèi)部記憶單元中作為初始狀態(tài); 控制單元,用于對(duì)FSR的初始狀態(tài)執(zhí)行r次狀態(tài)更新運(yùn)算,r為正整數(shù),其中每次狀態(tài)更新運(yùn)算依次調(diào)用導(dǎo)出單元、混合器單元、反饋更新單元;隨后依次調(diào)用導(dǎo)出單元、混合器單元和反饋更新單元,并輸出密鑰字; 所述密鑰導(dǎo)出單元用于對(duì)FSR的當(dāng)前內(nèi)部狀態(tài)執(zhí)行導(dǎo)出算子D ; 所述混合器單元分兩種模式:初始化模式和工作模式,在初始化模式下用于將密鑰導(dǎo)出單元的輸出ζ同k個(gè)參考點(diǎn)的內(nèi)容作用I次g變換后輸出的每個(gè)分量均進(jìn)行I次異或運(yùn)算后的結(jié)果作為混合器單元的輸出;在工作模式下用于對(duì)k個(gè)參考點(diǎn)的內(nèi)容作用I次g變換,其結(jié)果直接作為混合器單元的輸出; 所述反饋更新單元用于對(duì)FSR的記憶單元執(zhí)行吸運(yùn)算和甩運(yùn)算。
【文檔編號(hào)】H04L9/06GK103701591SQ201310717039
【公開(kāi)日】2014年4月2日 申請(qǐng)日期:2013年12月23日 優(yōu)先權(quán)日:2013年12月23日
【發(fā)明者】馮秀濤 申請(qǐng)人:中國(guó)科學(xué)院數(shù)學(xué)與系統(tǒng)科學(xué)研究院