<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 一種AES密碼算法的硬件實(shí)現

一種AES密碼算法的硬件實(shí)現

作者: 時(shí)間:2010-10-15 來(lái)源:網(wǎng)絡(luò ) 收藏

2.4 密鑰擴展模塊的設計
輪密鑰的產(chǎn)生是加解密運算的基礎,密鑰擴展模塊的作用就是產(chǎn)生除了初始密鑰本身之外的10個(gè)輪密鑰,分別用于10輪加解密運算。
加密運算采用密鑰內部擴展的方式,即加密運算與密鑰擴展并行完成。這一過(guò)程,每一輪變換都要和相應密鑰擴展輪次生成的子密鑰進(jìn)行異或,因此需使用狀態(tài)機控制加密運算和密鑰擴展的同步,否則會(huì )發(fā)生混亂。需要指出,使用內部擴展方式可以提高整個(gè)加密運算速度。而解密運算采用外部擴展方式,即密鑰擴展完之后再進(jìn)行解密運算,因為解密運算使用的初始密鑰是密鑰擴展生成的最后一輪子密鑰。

3 仿真測試與結果
根據前述設計思路和優(yōu)化措施,系統采用Mentor公司專(zhuān)門(mén)為各邏輯器件制造廠(chǎng)商設計的第三方專(zhuān)用仿真工具M(jìn)odelSim 6.o進(jìn)行功能仿真,給出了最后的功能仿真圖。
3.1 加密運算的仿真測試
一次完整的加密操作,需要12個(gè)時(shí)鐘周期。其中,10個(gè)周期用于10個(gè)輪循環(huán)變換,1個(gè)時(shí)鐘周期用于初始的密鑰擴展,1個(gè)時(shí)鐘周期用于密文的輸出。加密運算的功能測試仿真波形如圖3所示。

本文引用地址:http://dyxdggzs.com/article/187767.htm


從圖3給出的加密運算功能仿真結果可以看出,加密運算與密鑰擴展過(guò)程是并行進(jìn)行。當“rst”變?yōu)榈碗娖剑?ldquo;ld”變?yōu)楦唠娖綍r(shí),明文3243f6a8885a308d313198a2e0370734與密鑰2b7el5l628aed2a6abf7158809cf4f3c分別同時(shí)加載到加解密運算模塊與密鑰擴展模塊中;在下一個(gè)時(shí)鐘周期,密鑰擴展模塊生成1輪子密鑰,等待加密輪變換中的密鑰加操作。當完成1次加密過(guò)程后,“done”信號變?yōu)楦唠娖?,同時(shí)輸出密文3925841d02dc09fbdc118597196a0632。從圖3中同時(shí)也可以看出,密鑰擴展模塊總是提前一個(gè)時(shí)鐘周期生成下一輪的子密鑰,這樣可以保證密鑰擴展與加密運算同時(shí)進(jìn)行而不會(huì )發(fā)生錯亂,并且還可提高加密速度,節約資源占用和減少面積。使用DC進(jìn)行綜合和優(yōu)化后,加密運算模塊面積不超過(guò)20 000個(gè)等效門(mén),其中組合邏輯面積為14 264門(mén),非組合邏輯面積為3 878門(mén)。
3.2 解密運算的仿真測試
在解密過(guò)程中,完成一次解密操作同樣需要12時(shí)鐘周期。其中,10個(gè)周期用于10個(gè)輪循環(huán)變換,1個(gè)時(shí)鐘周期用于初始密鑰的加載,1個(gè)時(shí)鐘周期用于密文的輸出。在解密過(guò)程中,本文采用在解密之前所生成的10輪子密鑰,因為解密初始需要的子密鑰是密鑰擴展得到的最后一輪子密鑰,而最后一輪需要的子密鑰是密鑰擴展的初始密鑰。如圖4所示。


解密過(guò)程與密鑰擴展過(guò)程不是同步的,當“kld”為高電平時(shí),從第1個(gè)時(shí)鐘周期開(kāi)始,便將初始密鑰2b7e151628aed2a6abf7158809cf4f-3c輸入到密鑰擴展模塊中,之后經(jīng)過(guò)10個(gè)時(shí)鐘周期生成10輪子密鑰,并存儲到寄存器中。當“ld”為高電平時(shí),密文3925841d02dc09fbdcll-8597196a0632開(kāi)始加載到解密模塊中,經(jīng)過(guò)10個(gè)時(shí)鐘周期將解密的密文輸出,同時(shí)“done”信號變?yōu)楦唠娖?,表示解密過(guò)程結束,并輸出明文3243f6a8885a308d313198a2e0370734。
對比圖3與圖4仿真測試結果可知,加解密運算的功能正確,即解密運算能夠正確地解出加密運算的密文。解密運算模塊使用DC進(jìn)行綜合和優(yōu)化后面積不超過(guò)25 000個(gè)等效門(mén)。其中組合邏輯面積為10 495門(mén),非組合邏輯面積為14 142門(mén)。由于密鑰擴展與解密過(guò)程不是同步進(jìn)行,占用了寄存器存儲解密過(guò)程所需的10輪子密鑰,所以非組合邏輯面積比加密運算模塊大。但需要指出,由于加/解密運算模塊部分電路采用復用的方法實(shí)現,所以整個(gè)加/解密運算模塊的實(shí)際總面積比沒(méi)有復用時(shí)減小。

4 結語(yǔ)
根據設計思路和優(yōu)化措施,本文使用Verilog硬件描述語(yǔ)言實(shí)現,并在ModelSim 6.O工具下進(jìn)行仿真,證明本文設計的正確性。為了更進(jìn)一步做比較,證明本文設計思路的合理性和優(yōu)化措施的有效性,同樣采取未優(yōu)化的設計方案實(shí)現了該算法,通過(guò)在Dc中進(jìn)行綜合、布線(xiàn),兩相比較,優(yōu)化后的設計比優(yōu)化前節省了22%的邏輯單元,處理速度提高了13%。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: AES 密碼算法 硬件實(shí)現

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>