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