專(zhuān)利名稱(chēng):生成消息認(rèn)證碼的生成器、生成消息認(rèn)證碼的方法、程序代碼以及計(jì)算機(jī)可讀介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸領(lǐng)域。本發(fā)明特別涉及用于生成消息認(rèn)證碼的生成器、生成消息認(rèn)證碼的方法、程序代碼以及計(jì)算機(jī)可讀介質(zhì)。
背景技術(shù):
幾乎所有的消息認(rèn)證碼(MAC)算法都是基于下列基本算法組中的一個(gè)構(gòu)造的無(wú)加密的哈希函數(shù),例如SHA-1、RIPEMD-160、MD5,以及塊密碼器(block cipher),例如DES、AES、IDEA等。
在所有情況下,這些方案的實(shí)現(xiàn)需要通過(guò)哈希函數(shù)或者塊密碼算法的至少一次執(zhí)行來(lái)處理消息的每個(gè)比特。盡管這可以在專(zhuān)用硬件上通過(guò)深流水線設(shè)置來(lái)有效地實(shí)現(xiàn),但這種方法導(dǎo)致了以下缺陷 第一,大量的邏輯門(mén)會(huì)耗費(fèi)相當(dāng)多的硅面積,這是驅(qū)動(dòng)芯片制造成本增加的主要因素之一。
第二,在消息的最末比特被提供給消息認(rèn)證碼引擎后,獲取最終結(jié)果時(shí)存在顯著的延遲。
第三,由于成千上萬(wàn)的晶體管在消息的整個(gè)處理過(guò)程中同時(shí)進(jìn)行開(kāi)關(guān)切換,從而導(dǎo)致較高的功率消耗。
盡管深流水線方式使所述第一個(gè)缺陷惡化,但是后兩個(gè)缺陷在所有的硬件實(shí)現(xiàn)中是不變的,而是這些算法本身所固有的。
具體地,對(duì)于以下系統(tǒng),后兩個(gè)缺陷使有效實(shí)現(xiàn)變得非常復(fù)雜,并且在一些設(shè)置下完全阻止有效實(shí)現(xiàn) -要求非常高效的電源管理的系統(tǒng),例如總是開(kāi)啟的獨(dú)立醫(yī)療設(shè)備。
-最大通信速度極為重要的系統(tǒng),例如在因特網(wǎng)主干中操作的超高速路由器。
-需要在運(yùn)行時(shí)對(duì)其外部存儲(chǔ)狀態(tài)進(jìn)行嚴(yán)格的完整性檢查的系統(tǒng),例如在外部RAM中存儲(chǔ)工作數(shù)據(jù)的安全微處理器。
因此,希望提供在硬件方面優(yōu)化的MAC。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的實(shí)施例,上述希望可以通過(guò)用于生成消息認(rèn)證碼的生成器來(lái)實(shí)現(xiàn),所述生成器包括第一電路,用于執(zhí)行第一數(shù)據(jù)集合的去線性化的第一電路,以產(chǎn)生第二數(shù)據(jù)集合,其中第一數(shù)據(jù)集合包括原始碼(即明文),并且其中去線性化是基于線性反饋移位寄存器結(jié)構(gòu)和偽隨機(jī)輸入的。
有利地,根據(jù)本發(fā)明的范例實(shí)施例,提供了新的使用線性反饋移位寄存器(LFSR)作為其主要安全引擎的MAC生成器。由于該發(fā)明機(jī)制用于對(duì)線性反饋移位寄存器所生成的流進(jìn)行調(diào)節(jié),所以當(dāng)前用于攻擊這些方案的專(zhuān)門(mén)技術(shù)無(wú)法直接應(yīng)用于該新設(shè)計(jì)。
根據(jù)本發(fā)明的另一范例實(shí)施例,生成器還包括第二電路,用于生成第二數(shù)據(jù)集合的檢錯(cuò)碼,以產(chǎn)生第三數(shù)據(jù)集合(即消息認(rèn)證碼),其中第一電路包括第一線性反饋移位寄存器,并且第一電路與第二電路不同。
換言之,通過(guò)連續(xù)地影響按照不可再用偽隨機(jī)序列來(lái)混合明文(即第一數(shù)據(jù)集合)的線性反饋移位寄存器的行為,獲得去線性化。有利地,根據(jù)本發(fā)明的該范例實(shí)施例,并不使用線性反饋移位寄存器來(lái)計(jì)算檢錯(cuò)碼,而是由不同的第二電路計(jì)算檢錯(cuò)碼。
根據(jù)本發(fā)明的另一范例實(shí)施例,第一電路包括至少一個(gè)低權(quán)值級(jí)和至少一個(gè)高權(quán)值級(jí),其中第一數(shù)據(jù)集合的去線性化包括生成第一數(shù)據(jù)集合的任意延遲的混合副本,將所述副本與第一數(shù)據(jù)集合進(jìn)行異或。而且,所述至少一個(gè)低權(quán)值級(jí)(lower weight stage)用于確保第一數(shù)據(jù)集合的每個(gè)比特的效果傳播通過(guò)第一電路的所有后續(xù)狀態(tài),并且按照偽隨機(jī)數(shù)序列阻塞(jam)所述至少一個(gè)高權(quán)值級(jí)(higher weight stage),其中偽隨機(jī)數(shù)序列生成所述至少一個(gè)低權(quán)值級(jí)的狀態(tài)的任意延遲的邏輯子序列(subsequence)。
以這種方式,雖然所有的明文比特影響檢錯(cuò)碼計(jì)算,但是它們中的大多數(shù)還在不可能被不利對(duì)方猜到的延遲隨機(jī)位置處影響檢錯(cuò)碼計(jì)算。
根據(jù)本發(fā)明的另一范例實(shí)施例,生成器還包括第四電路,所述第四電路包括用于生成偽隨機(jī)數(shù)的偽隨機(jī)數(shù)生成引擎,其中第四電路用于將生成的偽隨機(jī)數(shù)提供給第一電路。
因此,有利地,第一電路可以將外部生成的偽隨機(jī)數(shù)用于明文或原始碼的去線性化。有利地,可以由與混合或去線性化電路不同的電路來(lái)執(zhí)行偽隨機(jī)數(shù)的生成。
根據(jù)本發(fā)明的其它范例實(shí)施例,偽隨機(jī)數(shù)生成引擎是選自包括至少一個(gè)第二線性反饋移位寄存器的組合和/或以計(jì)數(shù)器模式操作的塊密碼器的組。而且,所述至少一個(gè)第二線性反饋移位寄存器組合的初始狀態(tài)可以是隨機(jī)選擇的,并可以不再用于生成針對(duì)多于一個(gè)的消息的消息認(rèn)證碼,其中所述初始狀態(tài)用于執(zhí)行偽隨機(jī)數(shù)的生成。
有利地,根據(jù)本發(fā)明的該范例實(shí)施例,可以使“加密(keying)線性移位反饋寄存器”連續(xù)地運(yùn)行,也就是說(shuō),使用在消息(i)的處理進(jìn)入消息(i+1)的處理的初始狀態(tài)時(shí)所獲得的LFSR的最終狀態(tài)。
而且,根據(jù)本發(fā)明的其它范例實(shí)施例,第二電路包括循環(huán)冗余校驗(yàn)電路,其中檢錯(cuò)碼的生成是基于由第二電路執(zhí)行的循環(huán)冗余校驗(yàn)結(jié)構(gòu)的。
有利地,循環(huán)冗余校驗(yàn)結(jié)構(gòu)在計(jì)算檢錯(cuò)碼時(shí)特別有效,而且,它能夠非常有效地以硬件實(shí)現(xiàn)。事實(shí)上,它是在諸如用于1Gps以太網(wǎng)的高速聯(lián)網(wǎng)設(shè)備中所選擇的用于檢錯(cuò)碼的電路。而且,循環(huán)冗余校驗(yàn)結(jié)構(gòu)易于縮放,以生成不同大小(也即檢錯(cuò)強(qiáng)度)的碼。
根據(jù)本發(fā)明的另一范例實(shí)施例,在執(zhí)行去線性化之前,向第一數(shù)據(jù)集合加墊(pad)前綴和后綴中的至少一個(gè)。
因此,有利地,假設(shè)在最末階段不發(fā)生阻塞,則可以避免重點(diǎn)在于改變明文的最后一個(gè)或數(shù)個(gè)比特并計(jì)算相應(yīng)的密碼文本的攻擊。
根據(jù)本發(fā)明的另一范例實(shí)施例,公開(kāi)了生成消息認(rèn)證碼的方法,該方法包括步驟由第一電路執(zhí)行對(duì)第一數(shù)據(jù)集合的去線性化,以產(chǎn)生第二數(shù)據(jù)集合,其中第一數(shù)據(jù)集合包括原始碼,并且其中去線性化是基于線性反饋移位寄存器結(jié)構(gòu)的。
有利地,該方法使用更少的硬件資源和更少的計(jì)算功率或電源,可以提供快速的、硬件優(yōu)化的MAC生成。
本發(fā)明還涉及計(jì)算機(jī)可讀介質(zhì)和存儲(chǔ)于所述計(jì)算機(jī)可讀介質(zhì)中的生成消息認(rèn)證碼的程序代碼。當(dāng)被處理器執(zhí)行時(shí),程序代碼用于執(zhí)行由第一電路對(duì)第一數(shù)據(jù)集合進(jìn)行去線性化以產(chǎn)生第二數(shù)據(jù)集合的步驟。例如,程序代碼可以為總是開(kāi)啟的獨(dú)立醫(yī)療設(shè)備或者在因特網(wǎng)的主干中操作的超高速路由器中的一部分。優(yōu)選地,根據(jù)本發(fā)明的范例實(shí)施例,可以將程序代碼載入數(shù)據(jù)處理器的工作存儲(chǔ)器中。因此,可以配置數(shù)據(jù)處理器可以執(zhí)行本發(fā)明方法的范例實(shí)施例。可以用任何適合的編程語(yǔ)言(例如C++)來(lái)編寫(xiě)計(jì)算機(jī)程序,并且計(jì)算機(jī)程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,例如CD-ROM。此外,計(jì)算機(jī)程序可從例如萬(wàn)維網(wǎng)(World Wide Web)等網(wǎng)絡(luò)獲得,并可以從網(wǎng)絡(luò)下載到處理器或任何適合的計(jì)算機(jī)中。
本發(fā)明的其它范例實(shí)施例在從屬權(quán)利要求中闡述。
本發(fā)明的方面可以是用于生成消息認(rèn)證碼的生成器是基于線性反饋移位寄存器的,所述線性反饋移位寄存器用于通過(guò)執(zhí)行對(duì)原始碼的去線性化過(guò)程而生成安全的MAC。
本發(fā)明的以上的和其它方面將從顯而易見(jiàn)并參照下文所述實(shí)施例得以闡明。
參照附圖,描述本發(fā)明的范例實(shí)施例,附圖中 圖1示出了根據(jù)本發(fā)明范例實(shí)施例的SN-MAC生成器的示意圖; 圖2示出了根據(jù)本發(fā)明另一范例實(shí)施例的另一SN-MAC生成器的示意圖; 圖3示出了根據(jù)本發(fā)明范例實(shí)施例、具有可加載觸發(fā)器的加密(keyed)明文混合引擎的示意圖; 圖4示出了根據(jù)本發(fā)明另一范例實(shí)施例的混合引擎的示意圖; 圖5示出了根據(jù)本發(fā)明、用于生成消息認(rèn)證碼的方法的范例實(shí)施例的流程圖; 圖6示出了根據(jù)本發(fā)明、用于執(zhí)行本發(fā)明方法的范例實(shí)施例的處理器的范例實(shí)施例; 圖7示出了根據(jù)本發(fā)明范例實(shí)施例的收縮(shrinking)線性有限狀態(tài)機(jī)(LFSM); 圖8示出了根據(jù)本發(fā)明范例實(shí)施例的自收縮(self-shrinking)線性反饋移位寄存器(LFSR); 圖9示出了根據(jù)本發(fā)明范例實(shí)施例的SN-MAC,特別地,在將明文饋入由塊900形成的混合引擎之前,通過(guò)將明文與電路901生成的偽隨機(jī)數(shù)序列進(jìn)行異或,對(duì)明文進(jìn)行預(yù)處理,最后,在受到循環(huán)冗余校驗(yàn)電路902處理之前,由非線性函數(shù)電路903生成自收縮LFSR900輸出。
具體實(shí)施例方式 附圖中的示例是示意性的。在不同的附圖中,相似或者相同元件具有相同的附圖標(biāo)記。
圖1示出了根據(jù)本發(fā)明范例實(shí)施例的SN-MAC生成器的示意圖。根據(jù)圖1描述的實(shí)施例,MAC生成器包括三個(gè)主操作組,也即由“加密LFSR”塊實(shí)現(xiàn)的偽隨機(jī)數(shù)生成器組1。此外,所述生成器包括由五級(jí)LFSR(加載控制的觸發(fā)器(flip-flop)LFSR)23、24、25、26、27、多項(xiàng)式生成異或22、41、33、34、35、43以及明文混合異或21實(shí)現(xiàn)的中央明文混合器組2。作為第三主操作組,所述生成器包括由執(zhí)行標(biāo)準(zhǔn)32位循環(huán)冗余校驗(yàn)(CRC-32)過(guò)程的CRC-32塊實(shí)現(xiàn)的校驗(yàn)和生成塊3。
應(yīng)該注意的是,根據(jù)本發(fā)明的方面,該生成器不包括最末的CRC級(jí)3,而只包括電路1和電路2。
偽隨機(jī)數(shù)生成器組1包括負(fù)載輸入14、初始輸入15、時(shí)鐘13、新比特輸入16和由饋送至LFSR級(jí)26和27的比特輸出12。
時(shí)鐘信號(hào)13經(jīng)由線44、45、46、47、48饋送至偽隨機(jī)數(shù)生成器組1和五個(gè)LFSR級(jí)23-27的每一級(jí)。
新比特16經(jīng)由元件18提供給偽隨機(jī)數(shù)生成器組1和校驗(yàn)和生成模塊3。
負(fù)載輸入14還經(jīng)由線49-53分別提供給五個(gè)LFSR級(jí)23-27的每一級(jí)。
校驗(yàn)和生成模塊3還包括安全CRC輸出31和就緒引腳(readypin)32。
非門(mén)18有助于在處理輸入明文11和產(chǎn)生輸出MAC31之間建立正確的工作模式。
異或門(mén)21在計(jì)算多項(xiàng)式結(jié)果41之后將明文11引入LFSR狀態(tài)。
雖然CRC-32算法很適合檢測(cè)明文的隨機(jī)變化,包括高達(dá)32比特的錯(cuò)誤猝發(fā)(burst)和所有影響奇數(shù)位的錯(cuò)誤猝發(fā)(假設(shè)使用在IEEE802中定義的CRC-32多項(xiàng)式(X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1),如在A.S.Tanenbaum,ComputerNetworks,第四版中公開(kāi)的,作為參考合并于此),但是它肯定不能防止未檢測(cè)到的對(duì)明文的故意修改。但是,在攻擊者不知道秘密值(即密鑰)而無(wú)法猜到內(nèi)部流的內(nèi)容的情況下,通過(guò)將明文11重新混合到該內(nèi)部流中,可以利用這種眾所周知的算法來(lái)生成安全MAC。這種流在圖1中表示為“秘密流”28。
輸出“秘密流”28的混合塊通過(guò)生成與輸入混合塊2的明文11本身進(jìn)行異或、明文11的任意延遲的混合副本來(lái)進(jìn)行操作?;旌弦?包括兩個(gè)主要的子部分 -混合LFSR的低權(quán)值級(jí),用于確保明文11的每個(gè)比特的結(jié)果傳播通過(guò)混合引擎2的所有后續(xù)狀態(tài)。注意,這些級(jí)以隔離形式形成最大長(zhǎng)度LFSR(對(duì)于圖1,使用本原多項(xiàng)式X3+X+1)。
-按照偽隨機(jī)序列被“阻塞”的高權(quán)值級(jí),用于生成LFSR低權(quán)值級(jí)的狀態(tài)的隨機(jī)延遲的邏輯子序列,以及通過(guò)擴(kuò)展生成明文11本身的隨機(jī)延遲的邏輯子序列。
以這種方式,雖然所有的明文比特均影響CRC-32計(jì)算,但是它們中的大多數(shù)還在不可能被不利對(duì)方猜到的延遲的隨機(jī)位置處影響CRC-32計(jì)算。
應(yīng)該指出的是,圖1所示的連接多項(xiàng)式并非唯一可能的選擇,實(shí)際上可以使用任何具有用于初始級(jí)的另一本原多項(xiàng)式的本原連接多項(xiàng)式(使用非本原子多項(xiàng)式也可以是安全的)。而且,雖然圖1描述了僅有五級(jí)的混合引擎2,但是根據(jù)本發(fā)明可以實(shí)現(xiàn)更多的或更少的級(jí)。
最后,“加密LFSR”塊1可以是具有本原多項(xiàng)式的標(biāo)準(zhǔn)LFSR,并且可通過(guò)其輸出流12對(duì)混合塊2的高權(quán)值級(jí)進(jìn)行計(jì)時(shí)。
應(yīng)該指出的是,圖1示出了加載控制而非時(shí)鐘控制;但是,從算法的角度看來(lái)它們是等同的,雖然前者易于以硬件實(shí)現(xiàn)?!凹用躄FSR”的初始狀態(tài)是MAC密鑰和應(yīng)保密的方案的單個(gè)部分??僧a(chǎn)生安全32比特MAC的最小LFSR長(zhǎng)度可以是64比特。當(dāng)然允許更長(zhǎng)的長(zhǎng)度,并且如果CRC級(jí)的產(chǎn)生多于32比特,則需要更長(zhǎng)的長(zhǎng)度。當(dāng)然,更小的長(zhǎng)度同樣也是可能的,并且在本發(fā)明的范圍之內(nèi)。
顯然,為了安全,生成時(shí)鐘的LFSR的初始狀態(tài)應(yīng)該是隨機(jī)選擇的,并且不應(yīng)再用于針對(duì)多于一個(gè)的消息生成MAC(也即秘密不重性)。但是,可使“加密LFSR”連續(xù)地運(yùn)行,也就是說(shuō),使用在消息 (i)的處理進(jìn)入消息(i+1)處理的初始狀態(tài)時(shí)獲得的LFSR的最終狀態(tài)。
當(dāng)重新發(fā)動(dòng)該引擎時(shí),應(yīng)該將混合塊和CRC-32塊清零(為獲得原象抵抗性(pre-image resistance),這可能是必需的)。
明文消息的最前幾個(gè)比特可能受到混合引擎影響的機(jī)會(huì)很小,因此可能容易成為未檢測(cè)到的消息修改的目標(biāo)。為了避免發(fā)生這種情況,用一些額外量的比特作為消息的前綴可能是必需的。這種加墊不應(yīng)該是秘密的,而可以是固定的算法參數(shù)。任何具有0和1的平衡混合的、大于混合引擎大小的序列就足夠了。對(duì)于五級(jí)的混合引擎大小,可以使用由字節(jié)AAhex表示的序列。
最后,明文消息的最末幾個(gè)比特以不可預(yù)測(cè)的方式影響混合引擎狀態(tài)的可能性很小,因此容易成為未檢測(cè)到的消息修改的目標(biāo)。為了避免發(fā)生這種情況,向消息加墊一些額外量的比特可能是有利的。這種加墊不應(yīng)是秘密的,而可以是固定的算法參數(shù)。可以使用任何等于或大于CRC輸出級(jí)的序列。因此,對(duì)于16比特的CRC,可以使用16個(gè)零比特的序列。
圖2示出了根據(jù)本發(fā)明的另一范例實(shí)施例的另一SN-MAC生成器的示意圖,所述SN-MAC生成器包括第二偽隨機(jī)生成器4和另一隨機(jī)輸出流42。
圖2描述了根據(jù)本發(fā)明的生成器的更安全的實(shí)施例,其僅需要添加相對(duì)少量的硬件。圖2為該可選結(jié)構(gòu)的表示。
在該版本的算法中,混合塊的每個(gè)隨機(jī)化的級(jí)的時(shí)鐘是由不同的偽隨機(jī)數(shù)生成器LFSR控制的。
LFSR長(zhǎng)度可以為互質(zhì)的,并且對(duì)于基于CRC-32的輸出,其長(zhǎng)度可為61和67。在這種配置下,MAC密鑰可長(zhǎng)128比特。
可應(yīng)用與上述相同的對(duì)安全操作的基本要求。
圖3示出了根據(jù)本發(fā)明范例實(shí)施例、帶有可加載觸發(fā)器的加密明文混合引擎的示意圖。
假設(shè)圖3為分離的混合引擎基本塊,通過(guò)將這個(gè)基本塊構(gòu)架成如圖4的例子中描述的更復(fù)雜的結(jié)構(gòu),可以構(gòu)架可選的、可能更加安全的變體。
圖4示出了根據(jù)本發(fā)明的另一范例實(shí)施例的混合引擎的示意圖。
應(yīng)該指出的是,上述的實(shí)施例是高度可定制的。實(shí)際上,本發(fā)明可以廣義地?cái)U(kuò)展到下文所述的結(jié)構(gòu)。
如圖3所示,提供隨機(jī)流12和明文流11的引擎生成第三流28,所述第三流28為明文流11的全狀態(tài)(state-full)非線性函數(shù)。
根據(jù)本發(fā)明的實(shí)施例,生成器可包括 任意數(shù)量的級(jí),和/或 任意數(shù)量的、驅(qū)動(dòng)最高有效位級(jí)的輸入隨機(jī)流,最高有效位級(jí)將LFSR的特征多項(xiàng)式中的相應(yīng)的指數(shù)設(shè)置為1,和/或 取代與圖3所示的、從第一觸發(fā)器級(jí)的輸入中提取的輸出,并將最高有效位級(jí)的異或與明文輸入的異或進(jìn)行合并,和/或 被計(jì)算為所有LFSR級(jí)的輸出的(非)線性組合函數(shù)的輸出,具體使用彈性函數(shù)(resilient function)(P.Camion和A.Canteaut.Correlation-immune and resilient functions over a finite alphabet andtheir applications in cryptography.Designs,Codes and Cryptography,(16)121-140,1999,作為參考合并于此),和/或 任何類(lèi)型的特征多項(xiàng)式,和/或 附加的清零和/或置位信號(hào),和/或 附加的LFSR的并行加載和/或讀取,和/或 混合引擎的組成,其中將明文11分配到數(shù)個(gè)混合引擎1000、1100,如圖4所示,這是由次級(jí)(secondary)輸入隨機(jī)流100、200、300控制的。次級(jí)輸入隨機(jī)流100、200、300可全部來(lái)自獨(dú)立的LFSR。
注意,當(dāng)使用上述的非線性組合函數(shù)時(shí),可能重用偽隨機(jī)加密流。在這種情況下,去線性化不是通過(guò)混合引擎(或其組合)執(zhí)行的,而是通過(guò)非線性組合函數(shù)而獨(dú)有地執(zhí)行。這樣的優(yōu)點(diǎn)在于當(dāng)在雙方之間互換多個(gè)異步的消息時(shí)大大地簡(jiǎn)化了MAC函數(shù)的密鑰管理。
在圖4中,完全非線性明文混合電路500的最終輸出為每個(gè)混合引擎的輸出12、42的異或400。注意,異或400輸出混合函數(shù)能夠由任何其它布爾函數(shù)和/或上述的彈性函數(shù)代替。
(多)級(jí)的“加密LFSR”可以由任何偽隨機(jī)生成引擎代替,特別是由任何以計(jì)數(shù)器和/或輸出反饋模式操作的塊密碼器、或者任何LFSR的組合代替。
而且,輸出的級(jí)“CRC-32”可以由任何能夠生成檢錯(cuò)碼的塊代替,特別是由任何檢錯(cuò)碼(特別是任何長(zhǎng)度的CRC與校驗(yàn)和代替),由加密消息檢測(cè)碼(MDC)函數(shù)例如SHA-1和RIPEMD-160代替,或者由同余生成器代替,或者由通常用于對(duì)數(shù)據(jù)進(jìn)行有效索引的哈希函數(shù)代替,或者由下文所述的電路代替 獲取混合引擎的最終狀態(tài),將其用作自收縮生成器LFSR的初始狀態(tài)。
運(yùn)行自收縮生成器LFSR,直到獲得所期望大小的MAC輸出。
下面提供關(guān)于LFSR和CLC的更詳細(xì)的信息。
下面提供了關(guān)于線性反饋移位寄存器、線性有限狀態(tài)機(jī)、循環(huán)冗余碼、自收縮生成器以及非線性濾波生成器的更詳細(xì)的信息。
現(xiàn)在總結(jié)線性反饋移位寄存器(LFSR)的主要特性。本文中將考慮二進(jìn)制域F。長(zhǎng)度為n的LFSR包括n個(gè)存儲(chǔ)單元,其共同形成狀態(tài)(S0,S1,...,Sn-1)。我們將所述存儲(chǔ)單元也稱(chēng)為D觸發(fā)器。LFSR定義輸出序列{Si}i≥0,所述輸出序列是由遞歸關(guān)系定義的 k≥0或者等同地,k≥0,(1) 其中定義cn=1。使s(i)在時(shí)間i定義線性反饋移位寄存器的狀態(tài),也即s(i)=(Si,Si+1,...,Si+n-1)。
則所述狀態(tài)的同樣的關(guān)系保持為 k≥0 (2) 系數(shù)ci為所謂的反饋系數(shù),如果ci=0則相應(yīng)的開(kāi)關(guān)打開(kāi),而如果ci=1則該開(kāi)關(guān)閉合。將總是假設(shè)c0=1,否則輸出的序列只是當(dāng)c0=1時(shí)的序列的延遲的版本。
照常地使所謂的特征多項(xiàng)式f(x)與LFSR關(guān)聯(lián),所述特征多項(xiàng)式f(x)的定義如下 其中定義cn=1,假設(shè)c0=1。f(x)的倒數(shù)多項(xiàng)式的定義如下 我們將冪級(jí)數(shù)與序列{Si}i≥0 關(guān)聯(lián)。已知s(x)由S0,S1,...,Sn-1唯一地確定的,并且f(x)的依賴(lài)關(guān)系明確地描述如下 其中 如果多項(xiàng)式 g(x)∈F[x] 不能被因子分解為多項(xiàng)式F[x]環(huán)中具有較小正次數(shù)(positive degree)的多項(xiàng)式,則稱(chēng)g(x)在F上不可約分。注意,由于禁止零狀態(tài),所以沒(méi)有線性遞歸能夠迭代經(jīng)過(guò)所有的2n個(gè)狀態(tài)。另一方面,當(dāng)從非零狀態(tài)開(kāi)始并且遞歸迭代經(jīng)過(guò)所有的2n-1個(gè)非零狀態(tài)時(shí),這樣的LFSR(序列)稱(chēng)為最大長(zhǎng)度LFSR(序列),并且相應(yīng)的特征多項(xiàng)式稱(chēng)為本原的。那么這樣的最大長(zhǎng)度序列的周期T為T(mén)=2n-1。注意,每個(gè)本原多項(xiàng)式是不可約分的。
表示為L(zhǎng)的序列線性復(fù)雜度為生成該序列的最短LFSR的長(zhǎng)度。線性復(fù)雜度可由Berlekamp-Massey算法判定,如同在作為參考合并于此的“J.Massey.Shiftregister synthesis and BCH decoding,IEEE Thrans.On Inform.Theory 15(24),1969,pp.122-127”中所公開(kāi)的,給定至少2L的輸出符號(hào),則所述算法有效地計(jì)算特征多項(xiàng)式。因此單的純LFSR并非好的密碼流生成器??梢砸蚤L(zhǎng)度為n的LFSR為例,其生成長(zhǎng)度為2n-1的最大長(zhǎng)度序列,但是在已知明文的攻擊中,Berlekamp-Massey算法僅需要2n個(gè)連續(xù)的比特以完全確定反饋多項(xiàng)式和初始狀態(tài),以及因此判定整個(gè)序列。
n比特的線性有限狀態(tài)機(jī)(LFSM)為n×n矩陣M提供的特定線性算子的實(shí)現(xiàn)或?qū)嵤FSM的內(nèi)部狀態(tài)由n比特的向量v∈Fn描述。在時(shí)間上的演變由n比特的向量的序列v(i)=(v0(i),v1(i),...,vn-1(i)),i≥0描述,滿足 v(i+1)=Mv(i) (6) 這里,v(0)為初始狀態(tài)。具有二進(jìn)制域F中的項(xiàng)的矩陣M的特征多項(xiàng)式定義為多項(xiàng)式 char(M)=det(xI-M)∈F[x],(7) 其中I通常表示所述n×n單位矩陣。眾所周知,如果M的特征多項(xiàng)式是在F上是本原的(不可約分的),則每個(gè)序列{Vj(i)}i≥0(j=0,1,…,n-1)的周期為2n-1。定義由(3)給定的多項(xiàng)式f(x)的伴隨矩陣為矩陣 最常見(jiàn)的LFSM的子集為L(zhǎng)FSR的和細(xì)胞自動(dòng)機(jī)(CA,CellularAutomata)。細(xì)胞自動(dòng)機(jī)是定義矩陣M是三對(duì)角(tridiagonal)的LFSM。具有由(3)給定的特征多項(xiàng)式f(x)的LFSR是定義矩陣設(shè)為由(8)給定的f(x)的伴隨矩陣的矩陣。
定理1.使f(x)為方陣M的特征多項(xiàng)式,f(x)的伴隨矩陣表示為L(zhǎng)。如果f(x)是不可約分的,則存在可逆矩陣T,滿足 TMT-1=L 在這個(gè)定理中出現(xiàn)的矩陣T不是唯一的。定理1可用于將LFSM簡(jiǎn)化為L(zhǎng)FSR?;叵胗?6)給定LFSM內(nèi)部狀態(tài)的演變,如果LFSM的初始狀態(tài)為v(0),則狀態(tài)v(i)給定為 v(i)=Miv(0) 相似地,如果由f(x)(矩陣L)定義的LFSR的初始狀態(tài)為s(0),則狀態(tài)s(i)給定為 s(i)=Lis(0) 如果所述初始狀態(tài)滿足關(guān)系式s(0)=Tv(0),則(根據(jù)定理1),可通過(guò)以下簡(jiǎn)單線性等式,使用相關(guān)聯(lián)的LFSR的內(nèi)部狀態(tài)s(i),計(jì)算LFSM的當(dāng)前狀態(tài)v(i) v(i)=T-1s(i) 因此,即使LFSM似乎比LFSR更為復(fù)雜得多,二者僅相差簡(jiǎn)單的線性變換。
使g(x)為次數(shù)為s的可約分的多項(xiàng)式。下面將顯式地或者隱式地將每個(gè)二進(jìn)制串S與具有與S的比特相應(yīng)的系數(shù)的F上的多項(xiàng)式S(x)關(guān)聯(lián)。使B為長(zhǎng)度為m的消息,因此B(x)為相應(yīng)的次數(shù)為m的多項(xiàng)式。那么(基于g(x)的)CRC值可定義為滿足以下關(guān)系式的次數(shù)為s-1的多項(xiàng)式C(x) C(x)=xsB(x)mod g(x) (9) 也即xsB(x)+C(x)可被g(x)除盡。容易導(dǎo)出以下引理。
引理1.根據(jù)針對(duì)給定多項(xiàng)式g(x)和C(x)的以上表示,存在2m-s個(gè)滿足(9)的多項(xiàng)式B(x)。
在作為參考合并于此的“D.Coppersmith,H.Krawczyk,Y.Mansour.The shrinking generator,CRYPTO’93,LNCS773,1993,pp.22-39”中,提出了概念上的簡(jiǎn)單密鑰流生成器,即所謂的自收縮生成器。它僅組合兩個(gè)LFSR其中一個(gè)控制另一個(gè)的輸出,并且因此輸出密鑰流為最大長(zhǎng)度序列經(jīng)不規(guī)則地抽取后的子序列。一年后,Meier和Staffelbach在“W.Meier,O.Staffelbach.The self-shrinking generator,EUROCRYPT’94,LNCS905,1994,pp.205-214”中提出了更加高級(jí)的結(jié)構(gòu)-自收縮生成器。實(shí)際上,自收縮生成器中的兩個(gè)LFSR組合為一個(gè)LFSR,該LFSR輸出劃分為比特對(duì)的序列。選擇比特通常為第一個(gè)比特,其確定另一比特,即有效比特(active bit)是用于輸出密鑰流還是要丟棄。如同Meier和Staffelbach所指出的,自收縮生成器在功能上等同于收縮生成器。注意,根據(jù)自收縮生成器的選擇邏輯,平均上丟棄由LFSR生成的4個(gè)比特中的3個(gè),而對(duì)于收縮生成器,平均2個(gè)比特中有1個(gè)比特被丟棄。自收縮生成器的周期T滿足2[n/2]≤T≤2n-1,但是實(shí)驗(yàn)結(jié)果指示所述周期總是取最大的可能值。還示出了線性復(fù)雜度滿足T/2 ≤ L≤2n-1~(n-2)(參見(jiàn)“S.Blackburn.Thelinear complexity of the self-shrinking generator,IEEE Trans.On Inform.Theory,45(6),1999,pp.2073-2077”)。因此,如果T=2n-1,則L=O(2n-1)。
自收縮生成器的密碼分析經(jīng)常采用已知的反饋多項(xiàng)式。使用較長(zhǎng)的O(20.5n)觀察密鑰流,攻擊的計(jì)算復(fù)雜度可以從O(20.5n)變化高達(dá)O(20.75n)。同樣地,在“E.Zenner,M.Krause,S.Lucks.Improvedcryptanalysis of the self-shrinking generator,ACISP’01,LNCS2119,2001,pp.21-35”中提出了計(jì)算復(fù)雜度為O(20.69n)但是使用長(zhǎng)度非常短的觀察密鑰流的攻擊。后一種攻擊在“H.Krawczyk.LFSR-based Hashingand Authentication,CRYPTO’94,LNCS839,1994,pp.129-139”中得到改進(jìn),仍使用長(zhǎng)度非常短的觀察密鑰流序列,但是將復(fù)雜度降至O(20.64n)。對(duì)于特定類(lèi)的弱(稀疏的)反饋多項(xiàng)式可能存在更為有效的攻擊。
非線性濾波生成器包括單個(gè)(長(zhǎng)度為n的)LFSR和非線性函數(shù)f(x),所述非線性函數(shù)f(x)的r個(gè)輸入(r≤n)是取自某些移位寄存器級(jí),以計(jì)算輸出。
對(duì)于代數(shù)次數(shù)k的布爾運(yùn)算,密鑰流的線性復(fù)雜度很可能至少為并且其周期
保持等于2n-1。有數(shù)種攻擊,例如(快速)相關(guān)、反轉(zhuǎn)(inversion)、代數(shù)的。為了抵抗這些攻擊,所述布爾函數(shù)應(yīng)該是高度非線性的、具有高次數(shù)的、相關(guān)免疫的以及代數(shù)免疫的。
根據(jù)本發(fā)明范例實(shí)施例,描述數(shù)個(gè)基于線性有限狀態(tài)機(jī)的密碼本原元件(cryptographic primitive),也即受到連續(xù)饋送的線性反饋移位寄存器、阻塞線性反饋移位寄存器、收縮線性有限狀態(tài)機(jī)以及自收縮線性反饋移位寄存器。
考慮長(zhǎng)度為n的LFSR,序列 其中P(j)(x)=pnj+pnj+1+...+pn-1 (10) 是次數(shù)為n-1的多項(xiàng)式。以P(j)=(pnjpnj+1,...,pnj+n-1)表示與P(i)(x)相對(duì)應(yīng)的n比特矢量?;叵胗商卣鞫囗?xiàng)式f(x)(矩陣L)定義的LFSR的內(nèi)部狀態(tài)是通過(guò)s(i)=Ls(i-1)計(jì)算,其中s(0)=P(0)。將進(jìn)一步使用P(j)(x)作為用于采用相同LFSR來(lái)生成新的序列S(j)(x)的初始狀態(tài)。換言之,并非饋送一次LFSR并生成序列S(x)(如同在上文“線性反饋移位寄存器”中所描述的),而是周期性地進(jìn)行饋送。這可通過(guò)以下兩種方式完成 1.通過(guò)改變當(dāng)前狀態(tài)s(nj)←s(nj)+P(j)(這是第j次饋送),在每個(gè)第n時(shí)間幀,饋送LFSR。通過(guò)這種方式,在每次這樣的饋送中,LFSR將生成新的附加序列(以S(j)(x)表示)。因此結(jié)果序列 是所述序列的移位的和。
2.通過(guò)用一新的值對(duì)當(dāng)前的狀態(tài)進(jìn)行異或,在每個(gè)時(shí)間幀饋送LFSR。對(duì)某些j使i=n(j-1)+1,對(duì)k=0,…,n-1,重復(fù)以下的過(guò)程s(i+k)←S(i+k)+(pni+n-1-k,0,…,0)以及S(i+k+1)=Ls(i+k)。作為結(jié)果,LFSR將生成新的附加序列, 以
表示。但是現(xiàn)在 其中多項(xiàng)式
來(lái)自n個(gè)饋送和移位(也即 ),并且S(j)(x)是與先前的情況中相同的序列,參見(jiàn)(11)。因此,結(jié)果序列為 (11)和(12)的區(qū)別是在(12)中對(duì)每個(gè)新的序列添加多項(xiàng)式。在兩種情況下,冪級(jí)數(shù)S(j)(x)和
是由它們的初始狀態(tài)P(j)(x)、通過(guò)與上文在“線性反饋移位寄存器”中定義的相同的方式所唯一確定的?,F(xiàn)在給出正式定義并導(dǎo)出一些基本特性。
定義1.給定LFSR和輸入序列P(x)。當(dāng)LFSR通過(guò)使用輸入序列周期性地更新(異或)其內(nèi)部狀態(tài)來(lái)生成輸出序列S(x)時(shí),將其稱(chēng)為連續(xù)饋送的LFSR。
引理2.考慮長(zhǎng)度為n的連續(xù)饋送的LFSR。假設(shè)輸出序列S(x)和連續(xù)饋送的LFSR(也即f(x)或L)為已知的。則在第一種情況(11)下,可以有效地重建輸入序列P(x)能,而在第二種情況(12)下,還需要知道P(x)的n個(gè)連續(xù)比特。
假設(shè)輸出序列S(x)為已知的,但f(x)為未知的。則為了應(yīng)用Berlekamp-Massey算法以及為了重建整個(gè)輸入序列P(x),在第一種情況(11)下攻擊者需要P(x)的n個(gè)連續(xù)比特,而在第二種情況(12)下需要P(x)的2n個(gè)連續(xù)的比特。
以下面的眾所周知的定義開(kāi)始。
定義2.給定序列{σi}i≥0。如果(在時(shí)間i)序列值σi=0,重復(fù)先前的單元狀態(tài)并忽略輸入,而如果σi=1,輸入替換單元狀態(tài),則D觸發(fā)器(單元)稱(chēng)為1比特(1位)寄存器。在兩者情況下,輸出是先前的單元狀態(tài)。
換言之,1比特寄存器作為正常的D觸發(fā)器(正如延遲元件)工作,除了當(dāng)序列的相應(yīng)值為零時(shí),在這種情況下稱(chēng)為存在阻塞。將序列{σi}i≥0稱(chēng)為收縮序列。
定義3.如果LFSR的一個(gè)或多個(gè)單元(D觸發(fā)器)由1比特寄存器替換,則稱(chēng)為L(zhǎng)FSR阻塞。
考慮長(zhǎng)度為n的LFSR。照常地,假設(shè)LFSR生成序列{Si}i≥0,并假設(shè)固定第l(l≤n)D觸發(fā)器,也即由1比特寄存器替換的LFSR單元。為了具有1比特寄存器,需要對(duì)何時(shí)阻塞觸發(fā)器單元進(jìn)行控制。假設(shè)在時(shí)間i的LFSR的狀態(tài)為 s(j)=(si,si+1,...,si+l-2,si+l-1,si+lsi+l+1,,...si+n-1) 并且LFSR(其第l觸發(fā)器)被阻塞,則LFSR在時(shí)間i+1的下一個(gè)狀態(tài)將為 s(i+1)=(si+1,si+2,...,si+l-1,si+l,si+l,si+l+2,...si+n) 因此保持s(i+1)=L′s(i),其中伴隨矩陣L改變?yōu)槿缦碌腖′ 因此,單元的每次阻塞生成新的序列,其給出了這次阻塞引入的與正常狀態(tài)(無(wú)阻塞)的差異。假設(shè)正常序列如下計(jì)算 si+n+1=c0si+1+c1si+2+...+cl-1si+l+clsi+l+1+...+cn-1si+n, 當(dāng)?shù)趌觸發(fā)器阻塞時(shí),該序列改變?yōu)? 因此它們的差別為 因此新的附加序列有以下的初始狀態(tài)結(jié)論是每個(gè)阻塞生成新的序列Sjam(i)(x)(移位到阻塞發(fā)生時(shí)的時(shí)間)。因此如果在時(shí)間i發(fā)生阻塞,則LFSR的輸出為S(x)+xiSjam(i)(x)。結(jié)果得到根據(jù)LFSR的初始狀態(tài)計(jì)算的并依賴(lài)于收縮序列的阻塞LFSR的輸出。因此阻塞LFSR的輸出將具有以下形式 其中i以及因此Sjam(i)(x)的初始狀態(tài)依賴(lài)于收縮序列{σi}i≥0。回想當(dāng)且僅當(dāng)σi=0時(shí)在時(shí)間i發(fā)生堵塞(也即Sjam(i)(x)存在)。
考慮阻塞LFSR的內(nèi)部狀態(tài)序列{Si}i≥0,并且考慮(8)和(13),注意到
內(nèi)部狀態(tài)改變的方式(15)導(dǎo)致下文將描述的廣義化。
從收縮LFSM的正式定義開(kāi)始。
定義4.假設(shè)具有收縮序列{σi}i≥0。假設(shè)內(nèi)部狀態(tài)長(zhǎng)度為n??紤]兩個(gè)LFSM,其具有相應(yīng)的n×n矩陣M和M′,具有本原特征多項(xiàng)式。如果LFSM具有共同的內(nèi)部狀態(tài)并且通過(guò)依賴(lài)于收縮序列而應(yīng)用LFSM中的一個(gè)來(lái)計(jì)算下一狀態(tài),則稱(chēng)所述LFSM為收縮的。
圖7示出了根據(jù)本發(fā)明范例實(shí)施例的收縮線性有限狀態(tài)機(jī)(LFSM)。收縮LFSM包括類(lèi)似LFSR的寄存器700,其中輸入并非由一個(gè)多項(xiàng)式確定,而是由使用兩個(gè)多項(xiàng)式的1比特多路復(fù)用器701、702、703確定。加密LFSR控制選擇哪個(gè)多項(xiàng)式。
假設(shè)收縮LFSM的內(nèi)部狀態(tài)序列為并使收縮序列為則{V(i)}j≥0下面的關(guān)系式成 {σi}j≥0立
因此, 其中序列{σi}j=ii+k包括i1個(gè)0,隨后為i2個(gè)1、i3個(gè)0、等等,并以il個(gè)1結(jié)束?;谶@些關(guān)系可以證明下面的定理。
定理2.假設(shè)(秘密的)收縮序列具有周期TD。假設(shè)收縮LFSM具有長(zhǎng)度為n的內(nèi)部狀態(tài)v。那么收縮LFSM的每個(gè)的輸出序列vi(0≤i≤n-1)具有周期T=cTD,其中c為1≤c≤2n-1的常數(shù),并且線性復(fù)雜度L=nTD。
證明 假設(shè)收縮序列包{σj}j=0TD括i1個(gè)0,隨后為i2個(gè)1、i3個(gè)0、等等,并以il個(gè)1結(jié)束。定義矩陣 則 對(duì)于v(iTD)+j和v(j)(對(duì)于0≤j≤TD)使用相應(yīng)的矩陣M″可以得出類(lèi)似的關(guān)系。由這些關(guān)系得出輸出序列包括TD個(gè)子序列的結(jié)論,證明了該定理。
為使M″具有最大長(zhǎng)度(也即c=2n-1),在對(duì)收縮序列沒(méi)有任何要求的情況下,M和M″應(yīng)該滿足哪些條件仍是未決的問(wèn)題,。
推論1.假設(shè)(秘密的)收縮序列{σi}i≥0具有周期TD。攻擊者需要收縮LFSM的2L=2nTD個(gè)輸出比特,以恢復(fù)初始狀態(tài)和收縮序列。
證明通過(guò)將Berlekamp-Massey算法應(yīng)用于每個(gè)長(zhǎng)度為2n的子序列,攻擊者能夠恢復(fù)生成該子序列的相應(yīng)的LFSR。因此,攻擊者獲得初始狀態(tài),并使用來(lái)自“J.Hong,D.Lee,S.Lee,P.Sarkar.Vulnerability of nonlinear filter generators based on linear finite statemachine,F(xiàn)SE′04,LNCS3017,2004,pp.193-209”的結(jié)果來(lái)計(jì)算矩陣M″。然后通過(guò)對(duì)所有TD個(gè)子序列進(jìn)行檢查,他能夠恢復(fù)收縮序列。
當(dāng)使用數(shù)個(gè)收縮序列來(lái)控制內(nèi)部狀態(tài)的計(jì)算方式時(shí),將收縮LFSM的思想廣義化到數(shù)個(gè)(多于2)LFSM是簡(jiǎn)單直接的。
注意,阻塞LFSR并非收縮LFSR。盡管有兩個(gè)由矩陣L和L′定義的LFSR(LFSM),第二個(gè)矩陣L′并非具有最大長(zhǎng)度。甚至更差的,它的行列式為0,因此從某個(gè)角度來(lái)說(shuō),序列成為全0,這是所不期望的。另一方面,阻塞LFSR類(lèi)似于自收縮LFSR,也即,它如同依賴(lài)于收縮序列的兩個(gè)不同的LFSR而行動(dòng)。因此,這里使用阻塞LFSR具有的簡(jiǎn)單結(jié)構(gòu),構(gòu)造基于收縮LFSR的自收縮線性LFSR。回到在等式(13)中對(duì)L′的定義,注意到,取決于(由(3)所定義的)本原多項(xiàng)式f(x)和在由1比特寄存器(也即l)替換的觸發(fā)器的位置處,下面的矩陣可以具有最大長(zhǎng)度
注意,L'和
的區(qū)別僅在于第l行中,其中將1加入到第(l+1)列中?,F(xiàn)在可以定義自收縮LFSR如下 定義5.給定收縮序列。當(dāng)認(rèn)為L(zhǎng)FSR是具有矩陣L和
(分別由(8)和(17)給出)的收縮LFSR時(shí),具有本原多項(xiàng)式f(x)(由(3)給出)的LFSR稱(chēng)為自收縮LFSR。這在圖8中示出。
圖8示出了根據(jù)本發(fā)明范例實(shí)施例的自收縮LFSR,其示出了圖1的獨(dú)立電路(沒(méi)有CRC級(jí))的替代,其中收縮流800由加密LFSR確定。
注意,要求兩個(gè)矩陣L和
具有本原特征多項(xiàng)式。因此,對(duì)于自收縮
,定理2和推論1也成立。
消息認(rèn)證碼 首先提供單向哈希函數(shù)(OWHF,One-way hash function)和抗沖突哈希函數(shù)(CRHF,Collision resistant hash function)的非正式定義。OWHF是公共函數(shù)h,其具有任意長(zhǎng)度的變量X和固定長(zhǎng)度的輸出h(X),并滿足以下條件給定h和X,“容易”計(jì)算h(X),但是給定在h的象(image)中的Y,“難以”找到滿足h(X)=Y(jié)的X,并且給定X和h(X),“難以”找到滿足h(X)=h(X′)的X′。CRHF是額外還抗沖突的OWHF,這意味著“難以”找到哈希運(yùn)算為相同輸出的兩個(gè)不同的變量。記住在“理想的安全”的情況下,生成(第二)原象需要2n次運(yùn)算,而生成沖突需要2n/2次運(yùn)算(n為哈希長(zhǎng)度)。OWHF和CRHF也稱(chēng)為弱單向哈希函數(shù)和強(qiáng)單向哈希函數(shù)。
MAC是接受兩個(gè)變量的函數(shù)h。該函數(shù)是公眾所知的,第一變量X(文本)也是公眾所知的并且可具有任意長(zhǎng)度,第二變量K(密鑰)是唯一的秘密并且具有固定的長(zhǎng)度,該函數(shù)的輸出具有固定的長(zhǎng)度。對(duì)不知道秘密密鑰K的人而言,MAC應(yīng)為單向函數(shù)并且是抗沖突的。而且當(dāng)攻擊者已經(jīng)選擇較大的變量{Xi}集合并且已經(jīng)得到相應(yīng)的{Xi,h(XiK)}對(duì)的集合時(shí),對(duì)任何X′≠X,必然“難以”確定密鑰K或者計(jì)算h(X′,K)的。最后一個(gè)稱(chēng)作自適應(yīng)選擇明文攻擊。假設(shè)密鑰的長(zhǎng)度表示為n,MAC的標(biāo)簽(tag)的長(zhǎng)度表示為s?;叵刖哂邪踩珔?shù)n和s的MAC應(yīng)提供對(duì)復(fù)雜度為O(2min(n,s))的可能攻擊的抵抗。
根據(jù)本發(fā)明范例實(shí)施例,公開(kāi)了消息認(rèn)證碼的一般設(shè)計(jì)。與基于具有固定輸入大小的壓縮函數(shù)迭代的標(biāo)準(zhǔn)方法相反,提出了更適合于流的構(gòu)建MAC的不同的方法。
考慮長(zhǎng)度為n的自收縮LFSR,其特征本原多項(xiàng)式為f(x),伴隨矩陣為L(zhǎng)和L′。還給定收縮序列{σi}i≥0。如上文所述,這樣的自收縮LFSR的輸出序列為 其中
為(無(wú)阻塞的)LFSR的通常輸出。回想S3jam(i)(x)在時(shí)間i由LFSR唯一確定的。如上文在“連續(xù)饋送LFSR”中所述的,連續(xù)饋送該LFSR。假設(shè)具有以下的輸入序列(參見(jiàn)(10)) 其中S1(j)(x)是次數(shù)為n-1的多項(xiàng)式。則如上文在“連續(xù)饋送LFSR”中所述的第二種情況,得到輸出序列(參見(jiàn)(12)) 回想S2(j)(x)是由相應(yīng)的初始狀態(tài)S1(j)(x)所唯一確定的?,F(xiàn)在將(18)和(20)放在一起,得到當(dāng)用序列S1,(x)連續(xù)地饋送時(shí),自收縮LFSR生成 其中S2(j)(x)是由相應(yīng)的初始狀態(tài)S1(j)(x)所唯一確定的,并且S4jam(i)(x)是由LFSR在時(shí)間i的狀態(tài)所唯一確定?;叵朐跁r(shí)間i發(fā)生阻塞(也即S4jam(i)(x)存在),并且僅當(dāng)σi=0時(shí),(21)也能重寫(xiě)為如下 注意,如果將連續(xù)饋送自收縮LFSR和收縮序列應(yīng)用于兩個(gè)輸入序列如S′1(x)和S′1(x),并且生成相應(yīng)的兩個(gè)輸出序列(表示為S′4(x)和S″4(x)),則由于計(jì)算是線性的,輸出序列S′4(x)+S″4(x)與輸入序列S′1(x)+S″1(x)相對(duì)應(yīng)。
引理3.假設(shè)(秘密的)收縮序列{σi}i≥0具有周期TD。考慮長(zhǎng)度為n的連續(xù)饋送自收縮LFSR。該LFSR的輸入序列表示為,輸出序列表示為S(x)。則攻擊者需要P(x)的2nTD個(gè)連續(xù)輸入比特以及其來(lái)自S(x)的相應(yīng)的輸出比特,以恢復(fù)收縮序列。收縮序列的獲知允許攻擊者進(jìn)一步根據(jù)S(x)計(jì)算整個(gè)序列P(x)。
如上文所述地考慮長(zhǎng)度為n的連續(xù)饋送自收縮LFSR。假設(shè)收縮序列為{σi}i≥0,輸入序列為S1(x)。回想連續(xù)饋送自收縮LFSR具有長(zhǎng)度為n的內(nèi)部狀態(tài)。假設(shè)f為具有r≤n個(gè)輸入的非線性函數(shù)。按照標(biāo)準(zhǔn)的方法(參見(jiàn)上文的“非線性濾波生成器”部分),通過(guò)將LFSR的級(jí)(抽頭)作為函數(shù)的輸入,將函數(shù)f應(yīng)用于LFSR的內(nèi)部狀態(tài)。以這種方法,標(biāo)準(zhǔn)的LFSR輸出S4(x)(22)變換為新的序列。將這種變換表示如下 S5(x)←fS4(x) (23) 注意,通過(guò)應(yīng)用非線性函數(shù)f(x),達(dá)到兩個(gè)目的首先,破壞輸入和輸出之間的線性依賴(lài)關(guān)系;其次,新的序列S5(x)與S4(x)的周期相同,但是其線性復(fù)雜度提高了。布爾函數(shù)f的算術(shù)次數(shù)表示為deg(f)。注意,f的非線性性暗示deg(f)≥2。強(qiáng)調(diào)函數(shù)f也應(yīng)該具有在上述的“非線性濾波生成器”部分中列舉的多種其它特性。因此能夠改進(jìn)引理3。
定理3.假設(shè)(秘密的)收縮序列{σi}i≥0具有周期TD??紤]具有非線性濾波函數(shù)f的、長(zhǎng)度為n的連續(xù)饋送自收縮LFSR。LFSR的輸入序列表示為P(x),f生成的輸出序列表示為S(x)。則攻擊者需要P(x)的至少個(gè)連續(xù)輸入比特及來(lái)自S(x)的相應(yīng)的輸出比特,以恢復(fù)收縮序列。對(duì)收縮序列的獲知允許攻擊者根據(jù)S(x)進(jìn)一步計(jì)算整個(gè)序列P(x)。
圖9示出了根據(jù)本發(fā)明范例實(shí)施例的SN-MAC。
將介紹包括圖9中描述的以下構(gòu)建塊的SN-MAC算法-兩個(gè)次數(shù)為3的本原多項(xiàng)式f3(x)和
,其定義自收縮LFSR900(也即具有相應(yīng)的伴隨矩陣L和
)。
-次數(shù)為n1的本原多項(xiàng)式f1(x),其定義生成加密序列的自收縮生成器901。
-次數(shù)為n2的本原多項(xiàng)式f2(x),其定義生成收縮序列{σi}i≥0904的LFSR。
-次數(shù)為s的不可約分的多項(xiàng)式g(x),其定義CRC902。
-具有期望的特性903的非線性(濾波)函數(shù)f(x)。
SN-MAC具有長(zhǎng)度n=n1+n2的密碼并生成長(zhǎng)度為s的抽頭,也就是說(shuō),它是具有安全參數(shù)n和s的MAC。SN-MAC是用于MAC算法的一般性框架而非固定的結(jié)構(gòu)。因此我們將不固定這個(gè)方案的任何參數(shù),允許用戶(hù)選擇最適合于他的應(yīng)用的參數(shù)。SN-MAC的核心是具有非線性濾波函數(shù)的連續(xù)饋送自收縮LFSR(參見(jiàn)上述的“將非線性濾波器應(yīng)用于連續(xù)饋送自收縮LFSR”部分)。進(jìn)一步將其稱(chēng)為混合引擎。SN-MAC算法可如下描述 1.假設(shè)明文表示為特定次數(shù)的多項(xiàng)式P(x)。要求明文具有最小長(zhǎng)度2s-2n3。
2.向明文添加長(zhǎng)度為2n3的固定前綴(例如0)。加墊后的明文表示為PP(x),假設(shè)它為次數(shù)為m的多項(xiàng)式。
3.通過(guò)將加墊后的明文PP(x)與自收縮生成器所生成的加密序列進(jìn)行異或,對(duì)加墊后的明文PP(x)加密。加密后的文本表示為S1(x)。
4.S1(x)為混合引擎的輸入序列(參見(jiàn)(19))。
5.針對(duì)混合引擎的收縮序列{σi}i≥0由具有特征本原多項(xiàng)式f2(x)的LFSR生成。
6.混合引擎的輸出序列表示為f2(x)(參見(jiàn)(2))。
7.最后的步驟是根據(jù)S5(x)計(jì)算CRC值(基于g(x))。該長(zhǎng)度為s的CRC值是MAC的輸出,也即其抽頭。
現(xiàn)在已經(jīng)解釋了根據(jù)本發(fā)明范例實(shí)施例的一些設(shè)計(jì)選擇。注意,每個(gè)阻塞將區(qū)別傳播到明文的結(jié)束,因此從攻擊者的觀點(diǎn)來(lái)看,如果他改變明文的最末(數(shù)個(gè))比特,則有更高的成功可能性。為了避免這種攻擊,需要向明文加墊固定的后綴。
由于加墊后的明文PP(x)是次數(shù)為m的多項(xiàng)式,則相應(yīng)的輸出S5(x)也是次數(shù)為m的多項(xiàng)式。回想對(duì)于給定的S5(x)和g(x),存在2m-s個(gè)滿足(9)的多項(xiàng)式,參見(jiàn)引理1。因此,要求加墊后的明文具有長(zhǎng)度m≥2s,以對(duì)于給定的抽頭,具有至少2s個(gè)相應(yīng)的不同(對(duì)于S5(x)的)選擇。
注意,生成收縮序列的LFSR具有周期因此從定理3可得出混合引擎輸出序列的線性復(fù)雜度為至少O(2n3(2n2-1))。另一方面,自收縮生成器生成的加密序列具有周期2n1-1和線性復(fù)雜度O2n1-1。由于兩種密鑰子序列(加密和收縮)具有互質(zhì)的周期,所以密鑰序列的周期為而且,為了得到密鑰,也就是說(shuō),為了破壞混合引擎和自收縮生成器,攻擊者需要相應(yīng)的輸入/輸出對(duì)(也即PP(x)/S5(x))的至少 個(gè)比特。注意,在這個(gè)計(jì)算中,使用來(lái)自引理3的結(jié)果而非來(lái)自定理3的更強(qiáng)結(jié)果。
由于SN-MAC是面向流的MAC算法,當(dāng)處理特定量的信息時(shí),使用與流密碼器相同的方法來(lái)改變密鑰?;谏鲜龅挠?jì)算,當(dāng)處理2n-2比特的信息時(shí),需要替換當(dāng)前的SN-MAC密鑰。注意,后者并非暗示著只允許每個(gè)密鑰一個(gè)MAC,而是如同流密碼器所作的,可以加密(計(jì)算MAC標(biāo)簽)數(shù)次而不重置密鑰序列。應(yīng)該強(qiáng)調(diào),允許以一個(gè)密鑰處理的信息等于密鑰序列周期,并且已經(jīng)示出了它是攻擊者為揭示密鑰所需要的最小量的信息。
對(duì)于基于類(lèi)似塊密碼器或者專(zhuān)用哈希函數(shù)的原語(yǔ)或者基于哈希范例的算法,經(jīng)常獲得對(duì)MAC算法的安全性的嚴(yán)格證明。提出的算法是特別針對(duì)流而設(shè)計(jì)的,因此它不依賴(lài)于底層壓縮函數(shù)的標(biāo)準(zhǔn)方法。將單向哈希函數(shù)/抗沖突哈希函數(shù)的定義擴(kuò)展到對(duì)任意長(zhǎng)度的輸入計(jì)算同樣長(zhǎng)度的輸出(而非固定長(zhǎng)度的輸出)的函數(shù),并且將這樣的函數(shù)稱(chēng)為具有任意長(zhǎng)度的單向哈希函數(shù)/抗沖突哈希函數(shù)。將SN-MAC算法示意性地表示為 F:PP(x)→S5(x)(24) G:S5->標(biāo)簽 換句話說(shuō),將不包括最后步驟(CRC計(jì)算)的SN-MAC作為函數(shù)F,對(duì)于給定的(任意長(zhǎng)度的)輸入PP(x),函數(shù)F計(jì)算具有同樣長(zhǎng)度的S5(x)的輸出。類(lèi)似地將最后步驟定義為函數(shù)G,其對(duì)任意長(zhǎng)度的輸入生成固定長(zhǎng)度的輸出。因此,如同所示出的,(具有固定密鑰的)函數(shù)F為具有任意長(zhǎng)度的單向哈希函數(shù)。對(duì)F也是具有任意長(zhǎng)度的抗沖突哈希函數(shù)的證明是正在進(jìn)行中的工作。有趣的未決問(wèn)題是當(dāng)給定任意長(zhǎng)度的CRHF F時(shí),怎樣選擇G,使得G或F的組成是CRHF。選擇G為檢錯(cuò)碼,以達(dá)到這個(gè)目的。
因此,根據(jù)本發(fā)明范例實(shí)施例,公開(kāi)了消息認(rèn)證碼的新的設(shè)計(jì)SN-MAC,以向高度受限設(shè)備提供足夠的安全級(jí)別,并且將與流密碼器一起使用。它是針對(duì)無(wú)電源設(shè)備的硬件優(yōu)化的MAC算法。將單向(抗沖突)哈希函數(shù)的定義擴(kuò)展為具有任意長(zhǎng)度的函數(shù)。此外,公開(kāi)了數(shù)個(gè)新的用于對(duì)稱(chēng)加密方案的具有獨(dú)立效果的構(gòu)建塊。
因此,公開(kāi)了以下結(jié)構(gòu); A.圖1的獨(dú)立電路減去最后的CRC級(jí)(帶阻塞的可加載LFSR,由另一LFSR加密)。該電路的輸出不能視為“照原樣(as is)”,而是生成消息認(rèn)證碼的整個(gè)電路所需要的基本信息。
B.圖1的獨(dú)立電路,包括CRC電路3。
C.根據(jù)(A)的電路,使用與用于生成有效的查找表和路由算法的哈希函數(shù)相同的哈希函數(shù)。
D.根據(jù)(A)的電路,使用兩個(gè)加密LFSR1、4(參見(jiàn)圖2)。
E.根據(jù)(A)的兩個(gè)電路1000、1100(如圖4所描述的),其中輸入300、100、200都來(lái)自獨(dú)立的加密LFSR。
F.根據(jù)(A)的電路的替代(如圖7所描述的),通過(guò)一個(gè)類(lèi)似LFSR的寄存器700實(shí)現(xiàn),其中輸入并非由一個(gè)多項(xiàng)式確定,而是由使用兩個(gè)多項(xiàng)式的1比特多路復(fù)用器701、702、703決定。加密LFSR控制選擇哪個(gè)多項(xiàng)式。
G.根據(jù)(A)的電路的替代,在圖8中實(shí)現(xiàn),其中收縮流800由加密LFSR確定。
H.如圖9所描述的全部電路。
I.如圖9所描述的電路,不包括偽隨機(jī)數(shù)生成器901和相關(guān)的明文加密異或。
J.一旦明文全部饋送至電路A(或其替代D、F、G之一),將A中的LFSR的最終狀態(tài)作為下一級(jí)的輸入。使用該狀態(tài)作為大小與電路A相同的SSG(參見(jiàn)上述的“自收縮生成器”)的初始狀態(tài)。運(yùn)行自收縮生成器,直到獲得具有初始狀態(tài)大小的輸出(例如對(duì)于64比特的LFSR的64比特的輸出)。該輸出為最終的MAC。
圖5示出了根據(jù)本發(fā)明的用于使用生成器生成消息認(rèn)證碼的方法的實(shí)施例的流程圖。該方法開(kāi)始于獲得發(fā)送至混合引擎的明文數(shù)據(jù)的步驟S1。在步驟2,由偽隨機(jī)數(shù)生成引擎執(zhí)行偽隨機(jī)數(shù)的生成,并且將偽隨機(jī)數(shù)發(fā)送至混合引擎。在步驟S3中,包括LFSR的混合引擎基于線性反饋移位寄存器結(jié)構(gòu)以及所生成的偽隨機(jī)數(shù),執(zhí)行去線性化。然后在步驟S4,基于已去線性化的數(shù)據(jù)集合,生成校驗(yàn)和或檢錯(cuò)碼,然后在步驟5執(zhí)行MAC的生成。
應(yīng)該注意的是,明文數(shù)據(jù)的去線性化、偽隨機(jī)數(shù)的生成以及檢錯(cuò)碼的計(jì)算可由不同的硬件部件執(zhí)行。
圖6描述了根據(jù)本發(fā)明的用于執(zhí)行根據(jù)本發(fā)明方法范例實(shí)施例的處理設(shè)備的實(shí)施例。圖6中所描述的設(shè)備包括與用于存儲(chǔ)第一、第二或第三數(shù)據(jù)集合的存儲(chǔ)器152連接的中央處理單元(CPU)151。數(shù)據(jù)處理器151可與數(shù)個(gè)輸入/輸出網(wǎng)絡(luò)設(shè)備連接,例如鍵盤(pán)或者計(jì)算機(jī)斷層照相裝置。數(shù)據(jù)處理器151還可與用于顯示信息或存儲(chǔ)于處理器151中的明文的顯示裝置154連接,例如計(jì)算機(jī)監(jiān)視器。操作者或用戶(hù)可通過(guò)鍵盤(pán)155和/或其它未在圖6中描述的輸出裝置與處理器151交互。
而且,通過(guò)總線系統(tǒng)153,還可以將處理器151與例如用于接收編碼數(shù)據(jù)流的接收站連接。
如上述所介紹的,本發(fā)明可以容易地用于實(shí)現(xiàn)以下通用領(lǐng)域中的抗篡改的通信 -需要非常有效的電源管理的系統(tǒng),例如總是開(kāi)啟的獨(dú)立醫(yī)療設(shè)備; -最大通信速度極為重要的系統(tǒng),例如在因特網(wǎng)的主干中操作的超高速路由器。
此外,本發(fā)明可用于優(yōu)化需要在運(yùn)行時(shí)對(duì)其外部存儲(chǔ)狀態(tài)的進(jìn)行嚴(yán)格完整性檢查的系統(tǒng),例如在外部RAM中存儲(chǔ)工作數(shù)據(jù)的安全微處理器。
而且,本發(fā)明可以有利地應(yīng)用于 -嵌入式設(shè)備中固件和操作系統(tǒng)的認(rèn)證; -開(kāi)放移動(dòng)聯(lián)盟數(shù)字版權(quán)管理(OMA DRM)。
應(yīng)該注意的是,術(shù)語(yǔ)“包括”并非排除其它元件或步驟,冠詞“一”并非排除多個(gè),并且單個(gè)處理器或系統(tǒng)可以實(shí)現(xiàn)權(quán)利要求中描述的數(shù)個(gè)裝置或單元的功能。此外,可以組合與不同的實(shí)施例相關(guān)的的元件。
還應(yīng)該注意的是,權(quán)利要求中的任何附圖標(biāo)記不應(yīng)解釋為對(duì)權(quán)利要求范圍的限制。
權(quán)利要求
1.一種用于生成消息認(rèn)證碼的生成器,所述生成器包括
第一電路(2),用于執(zhí)行對(duì)第一數(shù)據(jù)集合的去線性化,以產(chǎn)生第二數(shù)據(jù)集合;
其中第一數(shù)據(jù)集合包括原始碼;以及
所述去線性化基于線性反饋移位寄存器結(jié)構(gòu)和偽隨機(jī)流。
2.如權(quán)利要求1所述的生成器,還包括
第二電路(3),用于執(zhí)行第二數(shù)據(jù)集合的檢錯(cuò)碼的生成,以產(chǎn)生第三數(shù)據(jù)集合;
其中第一電路(2)包括第一線性反饋移位寄存器;以及
第一電路(2)與第二電路(3)不同。
3.如權(quán)利要求1所述的生成器,其中第一電路(2)包括
至少一個(gè)低權(quán)值級(jí);
至少一個(gè)高權(quán)值級(jí);
其中第一數(shù)據(jù)集合的所述去線性化包括生成與第一數(shù)據(jù)集合進(jìn)行異或的、第一數(shù)據(jù)集合的任意延遲的混合副本;
所述至少一個(gè)低權(quán)值級(jí)用于確保第一數(shù)據(jù)集合的每個(gè)比特的結(jié)果傳播通過(guò)第一電路(2)的所有后續(xù)狀態(tài);
按照偽隨機(jī)數(shù)序列阻塞所述至少一個(gè)高權(quán)值級(jí);以及
所述至少一個(gè)高權(quán)值級(jí)由偽隨機(jī)數(shù)序列驅(qū)動(dòng),并生成所述至少一個(gè)低權(quán)值級(jí)的狀態(tài)的任意延遲邏輯子序列。
4.如權(quán)利要求1所述的生成器,還包括
第四電路(1),包括用于執(zhí)行第一偽隨機(jī)數(shù)的生成的第一偽隨機(jī)數(shù)生成引擎;
其中第四電路(1)用于向第一電路提供所生成的第一偽隨機(jī)數(shù)。
5.如權(quán)利要求4所述的生成器,
其中偽隨機(jī)數(shù)生成引擎是選自由至少一個(gè)第二線性反饋移位寄存器的組合、以計(jì)數(shù)器形式操作的第一塊密碼器、以及以輸出反饋模式操作的第二塊密碼器組成的組。
6.如權(quán)利要求5所述的生成器,
其中所述至少一個(gè)第二線性反饋移位寄存器的組合的初始狀態(tài)是隨機(jī)選擇的,并且不重用于針對(duì)多于一個(gè)的消息來(lái)生成消息認(rèn)證碼;
所述初始狀態(tài)用于執(zhí)行偽隨機(jī)數(shù)的生成。
7.如權(quán)利要求2所述的生成器,
其中第二電路(3)包括循環(huán)冗余校驗(yàn)電路;
檢錯(cuò)碼的生成基于由第二電路執(zhí)行的循環(huán)冗余校驗(yàn)結(jié)構(gòu)。
8.如權(quán)利要求2所述的生成器,
其中第二電路(3)是選自由循環(huán)冗余校驗(yàn)電路、密碼消息檢測(cè)碼函數(shù)電路、以及同余生成器組成的組。
9.如權(quán)利要求2所述的生成器,
其中第二電路(3)是選自由用于執(zhí)行對(duì)數(shù)據(jù)的有效索引的哈希函數(shù)和用于執(zhí)行對(duì)聯(lián)網(wǎng)數(shù)據(jù)集合的有效路由的哈希函數(shù)所組成的組。
10.如權(quán)利要求2所述的生成器,
其中通過(guò)提取第一電路(2)的最終狀態(tài)、將所述最終狀態(tài)用作自收縮生成器電路的初始狀態(tài)、并操作自收縮生成器電路直到獲得期望大小的輸出,來(lái)實(shí)現(xiàn)第二電路(3)。
11.如權(quán)利要求2所述的生成器,
其中通過(guò)使用彈性非線性函數(shù)對(duì)第一電路(2)的狀態(tài)進(jìn)行采樣、然后將采樣結(jié)果饋送至循環(huán)冗余校驗(yàn)結(jié)構(gòu),來(lái)實(shí)現(xiàn)第二電路(3)。
12.如權(quán)利要求2所述的生成器,
其中通過(guò)使用彈性非線性函數(shù)對(duì)第一電路(2)的狀態(tài)進(jìn)行采樣、然后將采樣結(jié)果饋送至選自由用于執(zhí)行對(duì)數(shù)據(jù)的有效索引的哈希函數(shù)和用于執(zhí)行對(duì)聯(lián)網(wǎng)數(shù)據(jù)集合的有效路由的哈希函數(shù)所組成的組中的函數(shù),來(lái)實(shí)現(xiàn)第二電路(3)。
13.如權(quán)利要求1所述的生成器,
其中,在執(zhí)行去線性化之前,向第一數(shù)據(jù)集合加墊后綴和前綴中的至少一個(gè)。
14.如權(quán)利要求4所述的生成器,還包括
第五電路(4),包括用于執(zhí)行第二偽隨機(jī)數(shù)的生成(42,200)的第二偽隨機(jī)數(shù)生成引擎,;
第五電路用于將所生成的第二偽隨機(jī)數(shù)提供給第一電路(2)。
15.如權(quán)利要求4所述的生成器,還包括
第三偽隨機(jī)數(shù)生成引擎,用于執(zhí)行第三偽隨機(jī)數(shù)的生成(300);
其中第一電路(2)包括第一混合引擎(1000)和第二混合引擎(1100)。
16.如權(quán)利要求4所述的生成器,還包括1比特多路復(fù)用器(701,702,703);
其中第一電路包括先入先出寄存器(700);
所述1比特多路復(fù)用器(701,702,703)用于使用第一和第二多項(xiàng)式確定先入先出寄存器(700)的輸入;
第一偽隨機(jī)數(shù)生成引擎用于控制對(duì)第一和第二多項(xiàng)式的選擇。
17.如權(quán)利要求16所述的生成器,
其中通過(guò)提取第一電路(2)的最終狀態(tài)、將所述最終狀態(tài)用作自收縮生成器的初始狀態(tài)、并操作自收縮生成器電路直到獲得期望大小的輸出,來(lái)實(shí)現(xiàn)第二電路(3)。
18.如權(quán)利要求16所述的生成器,
其中通過(guò)使用彈性非線性函數(shù)對(duì)第一電路(2)的狀態(tài)進(jìn)行采樣、然后將采樣結(jié)果饋送至循環(huán)冗余校驗(yàn)結(jié)構(gòu),來(lái)實(shí)現(xiàn)第二電路(3)。
19.如權(quán)利要求16所述的生成器,
其中通過(guò)使用彈性非線性函數(shù)對(duì)第一電路(2)的狀態(tài)進(jìn)行采樣、然后將采樣結(jié)果饋送至選自由用于執(zhí)行對(duì)數(shù)據(jù)的有效索引的哈希函數(shù)和用于執(zhí)行對(duì)聯(lián)網(wǎng)數(shù)據(jù)集合的有效路由的哈希函數(shù)所組成的組中的函數(shù),來(lái)實(shí)現(xiàn)第二電路(3)。
20.如權(quán)利要求4所述的生成器,
其中第一偽隨機(jī)數(shù)生成引擎用于確定收縮流。
21.一種用于生成消息認(rèn)證碼的方法,所述方法包括以下步驟
由第一電路(2)執(zhí)行對(duì)第一數(shù)據(jù)集合的去線性化,以產(chǎn)生第二數(shù)據(jù)集合;
其中第一數(shù)據(jù)集合包括原始碼;
所述去線性化基于線性反饋移位寄存器結(jié)構(gòu)和偽隨機(jī)流。
22.如權(quán)利要求21所述的方法,還包括以下步驟
由第二電路(3)執(zhí)行第二數(shù)據(jù)集合的檢錯(cuò)碼的生成,以產(chǎn)生第三數(shù)據(jù)集合;
其中第一電路(2)包括第一線性反饋移位寄存器;
第一電路(2)與第二電路(3)不同。
23.如權(quán)利要求21所述的方法,還包括以下步驟
由包括偽隨機(jī)數(shù)生成引擎的第四電路(1)執(zhí)行偽隨機(jī)數(shù)的生成;
將所生成的偽隨機(jī)數(shù)提供給第一電路(2)。
24.如權(quán)利要求21所述的方法,
其中通過(guò)對(duì)第一電路的狀態(tài)執(zhí)行非線性函數(shù)、并將結(jié)果饋送至循環(huán)冗余校驗(yàn)電路,來(lái)實(shí)現(xiàn)第二電路。
25.如權(quán)利要求21所述的方法,
其中通過(guò)對(duì)第一電路的狀態(tài)執(zhí)行非線性函數(shù)、并將結(jié)果饋送至選自由用于執(zhí)行對(duì)數(shù)據(jù)的有效索引的哈希函數(shù)和用于執(zhí)行對(duì)聯(lián)網(wǎng)數(shù)據(jù)集合的有效路由的哈希函數(shù)所組成的組中的函數(shù),來(lái)實(shí)現(xiàn)第二電路。
26.如權(quán)利要求21所述的方法,
其中通過(guò)提取第一電路的狀態(tài)、將所述狀態(tài)用作自收縮生成器電路的初始狀態(tài)、并操作自收縮生成器電路直到獲得期望大小的輸出,來(lái)實(shí)現(xiàn)第二電路。
27.一種用于生成消息認(rèn)證碼的程序代碼,用于在由處理器(151)執(zhí)行時(shí)執(zhí)行以下步驟
由第一電路(2)執(zhí)行第一數(shù)據(jù)集合的去線性化,以產(chǎn)生第二數(shù)據(jù)集合;
其中第一數(shù)據(jù)集合包括原始碼;
所述去線性化基于線性反饋移位寄存器結(jié)構(gòu)和偽隨機(jī)流。
28.一種計(jì)算機(jī)可讀介質(zhì),其中存儲(chǔ)有用于生成消息認(rèn)證碼的計(jì)算機(jī)程序,當(dāng)由處理器(151)執(zhí)行時(shí),所述計(jì)算機(jī)程序執(zhí)行以下步驟
由第一電路(2)執(zhí)行第一數(shù)據(jù)集合的去線性化,以產(chǎn)生第二數(shù)據(jù)集合;
其中第一數(shù)據(jù)集合包括原始碼;
所述去線性化基于線性反饋移位寄存器結(jié)構(gòu)和偽隨機(jī)流。
全文摘要
為了實(shí)時(shí)地處理消息,當(dāng)前MAC算法對(duì)系統(tǒng)性能的要求很高。根據(jù)本發(fā)明的典型實(shí)施例,提供了硬件實(shí)現(xiàn)的用于生成MAC的生成器,從而有效地改善了對(duì)實(shí)時(shí)地處理消息所需的硬件性能要求。該引擎基于用于生成安全MAC的線性反饋移位寄存器。
文檔編號(hào)H04L9/32GK101147354SQ200680006532
公開(kāi)日2008年3月19日 申請(qǐng)日期2006年2月24日 優(yōu)先權(quán)日2005年3月1日
發(fā)明者馬克·沃克萊爾, 雅維耶·塞雷特阿維拉, 韋茨斯拉夫·尼科夫 申請(qǐng)人:Nxp股份有限公司