本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)安全領(lǐng)域,具體屬于密碼算法硬件實(shí)現(xiàn)領(lǐng)域。
背景技術(shù):
aes(advancedencryptionstandard,aes)密碼算法,也被稱為rijndael算法,是由美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)委員會(huì)(nationalinstituteofstandardsandtechnology,nist)于2001年提出,用于替代當(dāng)時(shí)已經(jīng)被攻破的des(dataencryptionstandard,des)密碼算法。aes是一種被廣泛使用的對(duì)稱密碼算法,其加密和解密采用同一個(gè)密鑰。
rsa(rivestshamiradleman,rsa)算法于1977年由ronrivest,adishamir和leonardadleman提出,并以三個(gè)人的名字命名。rsa是一種非對(duì)稱密碼算法,其加密和解密采用不同的密鑰。
基于aes和rsa的混合密碼算法,結(jié)合了aes和rsa兩種密碼的優(yōu)點(diǎn),現(xiàn)已被應(yīng)用于互聯(lián)網(wǎng)安全協(xié)議(internetprotocolsecurity,ipsec)、應(yīng)用于傳輸層的安全套接協(xié)議(securesocketslayer,ssl)與傳輸層安全協(xié)議(transportlayersecurity,tls)等網(wǎng)絡(luò)安全協(xié)議中。
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,對(duì)于網(wǎng)絡(luò)安全的需求日益增強(qiáng)?;赼es和rsa算法的混合密碼算法被廣泛應(yīng)用,對(duì)于兩種算法的運(yùn)算電路,如果簡(jiǎn)單的集成兩種算法的專用電路,那將耗費(fèi)比較多的電路面積和邏輯。
技術(shù)實(shí)現(xiàn)要素:
為了減小aes和rsa混合密碼算法電路模塊的面積,本發(fā)明基于aes算法中的列混合運(yùn)算和rsa算法中的乘法運(yùn)算的共性,提出一種可用于aes和rsa混合算法硬件電路的可配置乘法裝置,該裝置電路既可實(shí)現(xiàn)aes算法的列混合運(yùn)算,也可實(shí)現(xiàn)rsa算法的64bit乘法運(yùn)算,并且通過(guò)設(shè)計(jì)特殊的電路架構(gòu),大量復(fù)用兩種運(yùn)算所共同使用的乘法器和加法器,使得本發(fā)明所設(shè)計(jì)的電路要比單獨(dú)實(shí)現(xiàn)兩種運(yùn)算的所消耗的電路面積和使用的邏輯要少。
本發(fā)明所采用的技術(shù)方案是:
一種用于aes和rsa混合算法硬件電路的可配置乘法裝置,其特征在于包括乘法器陣列,加法器陣列和輸入切換電路三部分;
本發(fā)明利用64個(gè)8bit雙域乘法器(dual-fieldmultiplier,dmul),采用特殊的乘法器和加法器陣列,實(shí)現(xiàn)aes列混合運(yùn)算和rsa64bit乘法運(yùn)算。aes列混合運(yùn)算是把輸入128bit數(shù)據(jù)看作一個(gè)4×4字節(jié)的矩陣,然后與一個(gè)固定的4×4的轉(zhuǎn)換矩陣相乘,整個(gè)矩陣乘法一共要使用64個(gè)8bit有限域乘法器和16個(gè)有限域加法器。rsa64bit實(shí)數(shù)域乘法器可以根據(jù)乘法規(guī)則將其分拆為4個(gè)32bit乘法和1個(gè)64bit加法器實(shí)現(xiàn),而1個(gè)32bit乘法器可以分拆為4個(gè)16bit乘法器和1個(gè)32bit加法器實(shí)現(xiàn),而1個(gè)32bit乘法器一樣可以分拆為4個(gè)8bit乘法器,這樣1個(gè)rsa所用的64bit的復(fù)雜乘法器就被分拆為64個(gè)8bit乘法器、16個(gè)32bit加法器、4個(gè)64bit加法器和1個(gè)128bit加法器組成的乘法器加法器陣列??梢钥闯觯捎萌缟戏桨笇?shí)現(xiàn)的兩種運(yùn)算電路,具有很多相同的邏輯。于是本發(fā)明基于支持有限域乘法和實(shí)數(shù)域乘法的雙域乘法器和雙域加法器(dual-fieldadder,dadd)構(gòu)建的,復(fù)用了上述相同的邏輯,在同一套電路中實(shí)現(xiàn)了可配置的aes列混合和rsa64bit乘法。本發(fā)明所提出的裝置包含三部分:輸入切換電路,乘法器陣列和加法器陣列。
所述乘法器陣列,由64個(gè)8bit雙域乘法器搭建而成,是本裝置的核心電路,是aes的列混合和rsa的64bit乘法器所必須的電路結(jié)構(gòu),用于實(shí)現(xiàn)aes列混合或rsa64bit乘法所需的乘法操作;
所述加法器陣列,由16個(gè)32bit雙域4-2壓縮器和雙域超前進(jìn)位加法器、4個(gè)64bit雙域4-2壓縮器和雙域超前進(jìn)位加法器以及1個(gè)128bit雙域4-2壓縮器和雙域超前進(jìn)位加法器搭建而成,用于將乘法器陣列輸出的64個(gè)乘法結(jié)果按aes列混合或rsa乘法規(guī)范組織相加,形成最后的aes列混合或rsa64bit的乘法結(jié)果。
所述輸入切換電路,由多個(gè)多路選擇器構(gòu)成,用于組織乘法裝置的128bit輸入數(shù)據(jù),根據(jù)乘法裝置的工作模式,按照aes列混合或rsa乘法的輸入方式組織輸入數(shù)據(jù)并提供給乘法器陣列。
具體地,所述的輸入切換電路是將aes的列混合128bit輸入接口和rsa64bit乘法器兩個(gè)64bit乘數(shù)共128bit的輸入接口,與64個(gè)8bit雙域乘法器合計(jì)1024bit的輸入接口相對(duì)接,并可實(shí)現(xiàn)兩種對(duì)接方案切換的電路。
和現(xiàn)有混合密碼芯片中aes列混合和rsa乘法的實(shí)現(xiàn)方案相比,該裝置內(nèi)部大量采用了可配置電路,復(fù)用了消耗電路面積較大的乘法器和加法器,在一套運(yùn)算電路中實(shí)現(xiàn)aes列混合和rsa乘法兩種功能,使得本發(fā)明所設(shè)計(jì)的電路要比單獨(dú)實(shí)現(xiàn)兩種運(yùn)算所消耗的電路面積和使用的邏輯要少。
附圖說(shuō)明
以下結(jié)合附圖和具體實(shí)施方式來(lái)進(jìn)一步說(shuō)明。
圖1為本發(fā)明的內(nèi)部結(jié)構(gòu)框圖。
圖2為本發(fā)明的內(nèi)部所使用的8bit雙域乘法器電路結(jié)構(gòu)圖。
具體實(shí)施方式
圖1所示為本發(fā)明一種可用于aes和rsa混合算法硬件電路的可配置乘法裝置的內(nèi)部結(jié)構(gòu)框圖。該裝置按照特殊的結(jié)構(gòu)將乘法器和加法器組織組織搭建,實(shí)現(xiàn)可配置aes列混合和rsa64bit乘法運(yùn)算。圖中利用4個(gè)8bit雙域乘法器、1個(gè)32bit雙域4-2壓縮器和1個(gè)32bit雙域超前進(jìn)位加法器實(shí)現(xiàn)了16bit雙域乘法器;然后再以4個(gè)16bit雙域乘法器、1個(gè)64bit雙域4-2壓縮器和1個(gè)64bit雙域超前進(jìn)位加法器實(shí)現(xiàn)了32bit雙域乘法器;4個(gè)32bit雙域乘法器、1個(gè)128bit雙域4-2壓縮器和1個(gè)128bit雙域超前進(jìn)位加法器實(shí)現(xiàn)了64bit雙域乘法器。所以圖中所示實(shí)現(xiàn)方案一共包括如下4部分:1.64個(gè)8bit乘法器組成的乘法器陣列;2.16個(gè)32bit雙域4-2壓縮器和雙域超前進(jìn)位加法器、4個(gè)64bit雙域4-2壓縮器和雙域超前進(jìn)位加法器以及1個(gè)128bit雙域4-2壓縮器和雙域超前進(jìn)位加法器組成的加法器陣列;3.輸入切換電路。
乘法器陣列是本裝置的核心電路,aes的列混合和rsa的64bit乘法器所必須的電路結(jié)構(gòu)。通過(guò)前文所述的方案,aes列混合和rsa乘法都需要64個(gè)8bit乘法器,兩種運(yùn)算的區(qū)別在于64個(gè)8bit雙域乘法器的輸入不同:實(shí)現(xiàn)aes列混合時(shí),需要按照aes列混合矩陣乘法的規(guī)則將兩個(gè)矩陣的元素輸入到乘法器的乘數(shù)端口;而實(shí)現(xiàn)rsa乘法時(shí),需要按照64bit乘法拆分為8bit乘法的拆分方案確定各個(gè)8bit雙域乘法器的輸入。將輸入數(shù)據(jù)組織起來(lái)根據(jù)不同的模式導(dǎo)入乘法器陣列,這一功能在輸入切換電路中實(shí)現(xiàn)。
圖2所示為乘法器陣列中關(guān)鍵部件8bit雙域乘法器的結(jié)構(gòu),該結(jié)構(gòu)基于普通乘法器電路所修改而成,分兩條鏈路實(shí)現(xiàn)有限域乘法和實(shí)數(shù)域乘法的部分積,然后使用雙域4-2壓縮器(圖中4-2dcom16b)和雙域超前進(jìn)位加法器(圖中dcla16b)求得最終的乘法結(jié)果。圖2中“>>”為實(shí)數(shù)域乘2(即1bit左移)電路,“×2”為有限域乘2(即1bit左移再約簡(jiǎn))電路。在進(jìn)行乘法運(yùn)算時(shí),雙域乘法器首先將8bit的輸入乘數(shù)a按照實(shí)數(shù)域乘法規(guī)則連續(xù)進(jìn)行8次移位操作,每次移位生成一個(gè)結(jié)果,共產(chǎn)生8個(gè)實(shí)數(shù)域移位結(jié)果;同時(shí)也按照有限域乘法規(guī)則連續(xù)進(jìn)行8次移位約簡(jiǎn)操作,每次移位約簡(jiǎn)操作生成一個(gè)結(jié)果,共產(chǎn)生8個(gè)有限域移位約簡(jiǎn)結(jié)果。在計(jì)算出乘數(shù)a的8個(gè)實(shí)數(shù)域移位結(jié)果和有限域移位結(jié)果后,乘法器需要經(jīng)過(guò)兩次選擇操作生成部分積:1.根據(jù)乘數(shù)b的值來(lái)生成乘法的部分積(乘數(shù)b的對(duì)應(yīng)bit的數(shù)值為1則部分積為該移位結(jié)果,為0則部分積也為0);2.根據(jù)乘法器的工作模式,確定生成部分積時(shí)采用8個(gè)有限域移位約簡(jiǎn)結(jié)果還是8個(gè)實(shí)數(shù)域移位結(jié)果。這兩個(gè)選擇操作利用圖中所示多路選擇器實(shí)現(xiàn)。生成部分積后,在實(shí)數(shù)域乘法模式下,由雙域4-2壓縮器和雙域超前進(jìn)位加法器按照實(shí)數(shù)域乘法規(guī)則計(jì)算最終的實(shí)數(shù)域乘法結(jié)果,在有限域乘法模式下,則由雙域4-2壓縮器和雙域超前進(jìn)位加法器按照實(shí)數(shù)域乘法規(guī)則計(jì)算最終的有限域乘法結(jié)果。
輸入切換電路是將aes的列混合128bit輸入接口和rsa64bit乘法器兩個(gè)64bit乘數(shù)共128bit的輸入接口,與64個(gè)8bit雙域乘法器合計(jì)1024bit的輸入接口相對(duì)接的電路。aes列混合的矩陣乘法和采用上述方案分拆后的rsa64bit乘法,雖然都用到了64個(gè)8bit雙域乘法器,但是在兩種運(yùn)算時(shí)每個(gè)8bit雙域乘法器的乘數(shù)都不相同。輸入切換電路內(nèi)部包含多路選擇器,使得在乘法裝置配置為aes列混合工作模式時(shí),輸入切換電路將aes列混合的輸入數(shù)據(jù)和轉(zhuǎn)換矩陣中所有乘法參數(shù)都導(dǎo)入到64bit乘法器陣列輸入端,而當(dāng)乘法裝置工作在rsa64bit乘法模式時(shí),輸入切換電路將rsa乘法輸入的兩個(gè)64bit乘數(shù),分拆并導(dǎo)入到乘法器陣列輸入端。
加法器陣列將64個(gè)8bit乘法器輸出的結(jié)果按照aes列混合或rsa64bit乘法器的運(yùn)算規(guī)范相加,形成最后的aes列混合或rsa64bit乘法的結(jié)果。加法器陣列中有兩種結(jié)構(gòu)的加法器:一種是雙域4-2壓縮器,將4個(gè)加數(shù)壓縮為2個(gè);一種是雙域超前進(jìn)位加法器,將雙域4-2壓縮器壓縮后的2個(gè)輸入相加為一個(gè)結(jié)果輸出。
按照?qǐng)D1所示結(jié)構(gòu)設(shè)計(jì)的可配置乘法裝置,有兩種模式,模式0為aes列混合模式,在電路裝置列混合輸入端配置128bit的列混合輸入,然后在輸出口輸出128bit列混合輸出。模式1為rsa64bit乘法模式,在電路裝置乘法輸入端配置64bit乘數(shù)a和64bit乘數(shù)b,然后在輸出口輸出乘法器的輸出。
以上是本發(fā)明的較佳實(shí)施例,凡依本發(fā)明技術(shù)方案所作的改變,所產(chǎn)生的功能作用未超出本發(fā)明技術(shù)方案的范圍時(shí),均屬于本發(fā)明的保護(hù)范圍。