[發明專利]基于AES的192比特位密鑰擴展系統及方法有效
| 申請號: | 201210132394.7 | 申請日: | 2012-05-02 |
| 公開(公告)號: | CN102624520A | 公開(公告)日: | 2012-08-01 |
| 發明(設計)人: | 史江一;趙哲斐;郝躍;邸志雄;李康;趙彥尚 | 申請(專利權)人: | 西安電子科技大學 |
| 主分類號: | H04L9/06 | 分類號: | H04L9/06 |
| 代理公司: | 陜西電子工業專利中心 61205 | 代理人: | 王品華;朱紅星 |
| 地址: | 710071*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 aes 192 比特 密鑰 擴展 系統 方法 | ||
技術領域
本發明屬于安全技術領域,涉及數據加密,特別涉及高級加密標準AES中的密鑰擴展方法,可用于網絡通信。
背景技術
2001年11月美國商務部國家標準技術局NIST公開的高級加密標準AES是用于無密級加密的一種算法。自公開以來,AES算法被廣泛的應用于加密協議、通信終端以及服務器等高端產品中。
AES算法采用了Rijnddel對稱密鑰算法的子集,支持長度為128比特位的分組和長度為128、192和256比特位的密鑰。該算法通過對初始密鑰進行密鑰擴展得到輪密鑰,并用輪密鑰對128位的數據塊進行加密和解密。
在AES算法中,根據初始密鑰的長度不同,加密的輪數r有所不同;在初始密鑰長度為128比特位、192比特位和256比特位的情況下,相應的輪數r分別為10、12和14。由于每一輪加密都需要不同的128比特位的輪密鑰與數據塊進行按位異或操作,而初始密鑰長度只能為128比特位、192比特位或256比特位,無法為每輪加密提供不同的輪密鑰,故該算法包含了密鑰擴展算法,用于把初始密鑰擴展成長度為1280比特位、1536比特位或1792比特位的數據串,從而生成加密所需要的所有輪密鑰。
目前廣泛應用的密鑰擴展方法有兩種:一種是《A?Rijndael?Cryptoprocessor?Using?Shared?On-the-fly?Key?Scheduler》所使用的實時密鑰擴展方法,即密鑰擴展單元在進行密鑰擴展的同時為加密進程提供輪密鑰;這種方法的缺點在于輪密鑰無法重用,因而對于數據量大、需要連續使用輪密鑰的場合,持續執行密鑰擴展操作所帶來的功耗較大;另一種是《AES算法的一種優化的FPGA實現方法》所使用的預密鑰擴展方法,即先進行密鑰擴展生成所有的輪密鑰并存儲到內存中,再進行加密;在該方法中,由于加密流程要等待密鑰擴展完成之后才能進行,從而增加了加密所需要的時間,降低了整個加密過程的效率。
發明內容
本發明的目的在于針對上述傳統方法的不足,提出一種基于AES的192比特位密鑰擴展系統及方法,以兼顧密鑰擴展的實時性以及輪密鑰的可重用性,實現密鑰擴展的高效率和低功耗。
為實現上述目的,本發明基于高級加密標準AES的192比特位密鑰擴展系統,包括:
擴展計數單元,用于對序號n進行加1操作,并將序號n輸出;
暫存單元,由位寬均為32比特的52個寄存器構成,用于暫存初始密鑰和輪密鑰,保證密鑰擴展進程能夠即時取用;
輪密鑰存儲單元,采用位寬為32比特位,深度為52的雙口SDRDM,用于存儲初始密鑰和輪密鑰,保證在密鑰擴展進行的同時能夠為加密流程實時的提供輪密鑰,并保證對后續數據塊進行加密時無需密鑰擴展即可直接讀取已存儲輪密鑰;
循環寄存器,用于存儲供字循環單元讀取使用的32比特位的值;
字循環單元,用于對循環寄存器中的值進行循環左移1個字節的操作,并將結果輸出給替換寄存器;
替換寄存器,用于存儲供字節替換單元讀取使用的32比特位的值;
字節替換單元,用于將替換寄存器中的值作為地址分為從第31位到第24位、從第23位到第16位、從第15位到第8位和從第7位到第0位這4個字節發送給S盒單元,并將S盒單元的返回值按照發送地址時的順序從高到低組合后輸出給按位異或單元;
S盒單元,采用四個預存有S盒的ROM,用于將字節替換單元發送的四個地址在S盒中所對應的四個8比特位的值返回給字節替換單元;
輪常數選擇單元,用于根據序號n,從9個16進制的候選值:0,1,2,4,8,10,20,40,80中選出一個值輸出給異或單元;
異或寄存單元,包括位寬均為32比特位的0號寄存器、1號寄存器、2號寄存器、3號寄存器、4號寄存器和5號寄存器,用于存儲異或單元所要使用的32比特位的值;
異或單元,包括0號異或子單元、1號異或子單元、2號異或子單元、3號異或子單元、4號異或子單元和5號異或子單元,用于進行按位異或操作,并將所得結果作為輪密鑰輸出給暫存單元;
循環控制單元,用于根據序號n決定下一步是停止還是繼續進行密鑰擴展進程,若序號n為8,則結束密鑰擴展進程,若輪號為0-7范圍內的值,則繼續執行密鑰擴展進程。
為實現上述目的,本發明基于高級加密標準AES中192比特位初始密鑰的擴展方法,包括如下步驟:
1)將對密鑰擴展進程進行計數的變量定義為序號n,其取值范圍分為0-7以外的整數域和0-7之間的整數域這兩種情況;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安電子科技大學,未經西安電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210132394.7/2.html,轉載請聲明來源鉆瓜專利網。





