簡述祖沖之算法

祖沖之是中國古代杰出的數(shù)學(xué)家、天文學(xué)家,他首次將“圓周率”精算到小數(shù)第七位,是世界第一位將圓周率值計(jì)算到小數(shù)第7位的科學(xué)家。今天我們就來了解一下以這位數(shù)學(xué)家命名的加密算法——祖沖之算法。

什么是祖沖之算法?

祖沖之算法又叫做ZUC算法,是由我國學(xué)者自主設(shè)計(jì)的加密和完整性算法,包括加密算法128-EEA3和完整性算法128-EIA3,成為3GPP LTE 第三套加密標(biāo)準(zhǔn)核心算法,是我國第一個(gè)成為國際密碼標(biāo)準(zhǔn)的密碼算法。

祖沖之加密算法

祖沖之算法原理

祖沖之算法分為上中下三層。上層是16級(jí)線性反饋移位寄存器;中層是比特重組;下層是非線性函數(shù)F。

祖沖之算法

  • 上層(16級(jí)線性反饋移位寄存器)

在初始化模式中,LFSR接收一個(gè)31比特的字節(jié)u,u來自于下層非線性函數(shù)F的32比特輸出W通過舍棄了最低位得到,即u=W>>1。而工作模式?jīng)]有輸入。

  • 中層(比特重組)

比特重組從LFSR的寄存器單元中抽取128比特組成4個(gè)32比特字X0、X1、X2、X3,其中前3個(gè)字用于下層的非線性函數(shù)F,第4個(gè)字參與密鑰流計(jì)算。

  • 下層(非線性函數(shù)F)

非線性函數(shù)F有2個(gè)32比特長的存儲(chǔ)單元R1和R2,其輸入來自上一層比特重組的3個(gè)32比特字X0、X1、X2,輸出為一個(gè)32比特字W。

祖沖之算法的特點(diǎn)

  • 上層特點(diǎn)

祖沖之算法上層為定義在素域 GF(231 - 1) 上的線性反饋移位寄存器(LFSR),這是 ZUC 算法設(shè)計(jì)的一大創(chuàng)新。目前常見流密碼體制的 LFSR 均采用二元域或二元域的某個(gè)擴(kuò)域上的 m 序列。這種序列具有明顯的多重線性關(guān)系,這使得以其為序列源的密碼算法容易受黠相關(guān)攻擊。

而祖沖之算法的 LFSR 設(shè)計(jì)首次采用素域 GF(231 - 1) 的 m 序列。該類序列周期長、統(tǒng)計(jì)特性好,且在特征為 2 的有限域上是非線性的,其具有線性結(jié)構(gòu)弱、比特關(guān)系符合率低等優(yōu)點(diǎn)。

因而采用GF(231 - 1) 上的 LFSR 設(shè)計(jì)的 ZUC 算法具有天然的強(qiáng)抵抗二元域上密碼攻擊方法的能力,譬如二元域上的代數(shù)攻擊、區(qū)分分析和相關(guān)攻擊等。此外,由于素域 GF(231 - 1)上的乘法可以快速實(shí)現(xiàn), ZUC 算法 LFSR 在設(shè)計(jì)時(shí)充分考慮到安全和效率兩方面的問題,在達(dá)到高安全目標(biāo)的同時(shí)可以非常高效地軟硬件實(shí)現(xiàn)。

  • 中層特點(diǎn)

祖沖之算法的中間層為比特重組,比特重組采用取半合并技術(shù),實(shí)現(xiàn) LFSR 數(shù)據(jù)單元到非線性函數(shù) F 和密鑰輸出的數(shù)據(jù)轉(zhuǎn)換,其主要目的是破壞 LFSR 在素域上 GF(231 - 1) 上的線性結(jié)構(gòu)。

結(jié)合下層的非線性函數(shù) F,比特重組可使得一些在素域 GF(231 - 1) 上的密碼攻擊方法變得非常困難。

  • 下層特點(diǎn)

下層非線性函數(shù) F 的 S盒采用結(jié)構(gòu)化設(shè)計(jì)方法,在具有好的密碼學(xué)性質(zhì)的同時(shí)降低了硬件實(shí)現(xiàn)代價(jià),具有實(shí)現(xiàn)面積小、功耗低等特點(diǎn)。

經(jīng)過這三層結(jié)構(gòu)的綜合運(yùn)用, ZUC 算法具有非常高的安全強(qiáng)度,能夠抵抗目前常見的各種流密碼攻擊方法。

祖沖之加密算法是我國商用密碼算法首次走出國門,參與國際標(biāo)準(zhǔn)競爭。由于祖沖之算法安全優(yōu)秀,已得到國內(nèi)外著名密碼學(xué)家的認(rèn)可,對(duì)其安全強(qiáng)度給予了很高的評(píng)價(jià)。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。