簡(jiǎn)述Trivium加密算法

說到加密算法,分組密碼算法總是更受人關(guān)注的,比如AES、DES等等,但是流密碼算法也是不能被忽視的。今天我們就一起來了解一種流密碼算法——Trivium加密算法。

Trivium算法簡(jiǎn)介

Trivium算法由其Christophe De Canniere和Bart Preneel提交給eSTREAM競(jìng)賽的Profile II(硬件),并被eSTREAM項(xiàng)目選為低面積硬件密碼組合(Profile 2)的一部分。是一種同步流密碼,旨在提供硬件速度和門數(shù)之間的靈活權(quán)衡,以及合理有效的軟件實(shí)現(xiàn)。

Trivium加密算法

Trivium算法加密原理

Trivium算法的密鑰和初始化向量(Initialize Vector,IV)長(zhǎng)度均為80位,能提供等同于AES128的安全性。

Trivium的288位內(nèi)部狀態(tài)由三個(gè)不同長(zhǎng)度的移位寄存器組成。 在每一輪中,使用來自該寄存器和另一個(gè)寄存器的抽頭的非線性組合將一個(gè)位移入三個(gè)移位寄存器中的每一個(gè); 產(chǎn)生一位輸出。 為了初始化密碼,密鑰和IV被寫入兩個(gè)移位寄存器,其余的位以固定模式開始; 然后,密碼狀態(tài)被更新4×288 = 1152次,因此內(nèi)部狀態(tài)的每個(gè)位都以復(fù)雜的非線性方式依賴于密鑰和IV的每個(gè)位。

每個(gè)移位寄存器的前65位都不會(huì)出現(xiàn)抽頭,因此每個(gè)新的狀態(tài)位在生成后至少65個(gè)輪次才會(huì)被使用。 這是Trivium軟件性能和硬件靈活性的關(guān)鍵。

Trivium加密算法

Trivium算法的性能

Trivium算法的簡(jiǎn)單硬件實(shí)現(xiàn)將使用3488邏輯門,并在每個(gè)時(shí)鐘周期產(chǎn)生一位。 但是,因?yàn)槊總€(gè)狀態(tài)位不用于至少64個(gè)回合,所以可以并行生成64個(gè)狀態(tài)位,其硬件成本略高于5504個(gè)門。 速度和面積之間的不同權(quán)衡也是可能的。

相同的屬性允許在軟件中實(shí)現(xiàn)有效的位片實(shí)現(xiàn);eSTREAM的性能測(cè)試在某些x86平臺(tái)上提供了大約4個(gè)周期/字節(jié)的批量加密速度,這與同一平臺(tái)上AES參考實(shí)現(xiàn)的19個(gè)周期/字節(jié)相當(dāng)。

Trivium加密算法

Trivium算法在設(shè)計(jì)之初就是完全出于硬件效率考慮。由于采用了線性反饋移位寄存器和簡(jiǎn)單的AND函數(shù),其結(jié)構(gòu)和實(shí)現(xiàn)極為簡(jiǎn)單,且硬件消耗小,內(nèi)部?jī)H維護(hù)36字節(jié)狀態(tài),所以其硬件實(shí)現(xiàn)效率很高。

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