<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è) > 嵌入式系統 > 設計應用 > 數字電視CAS中DES加密模塊的FPGA實(shí)現

數字電視CAS中DES加密模塊的FPGA實(shí)現

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

付費節目是數字電視的重要新業(yè)務(wù)之一,建立付費頻道,其中關(guān)鍵性的技術(shù)就是加密技術(shù),數字電視條件接收系統CAS(Conditional Access System)是數字電視加密控制的核心技術(shù)的保證。典型的CAS由前端子系統、終端接收子系統等組成,前端子系統邏輯結構如圖1所示。圖1中加密器B采用數據加密標準(Data Encryption Standard)加密算法進(jìn)行硬件實(shí)現,以達到對控制字CW進(jìn)行快速加密。盡管目前算法已經(jīng)出現很多變形的算法,但基礎仍然是算法,可見(jiàn),對DES算法的研究具有很大現實(shí)意義。

通過(guò)軟件實(shí)現的安全系統從本質(zhì)上來(lái)說(shuō)很難做到真正的保密,而通過(guò)硬件來(lái)實(shí)現加密模塊的內部運作,可實(shí)現硬件的自鎖、自毀功能,能夠實(shí)現真正意義上的保密?,F場(chǎng)可編程門(mén)陣列在實(shí)現算法方面具有靈活性、物理安全性和比軟件高的速度性能,已成為硬件實(shí)現DES算法最好的選擇。本文就資源優(yōu)先和性能優(yōu)先上對DES算法進(jìn)行了設計和比較,這兩種設計方法和針對改進(jìn)后的方法都在A(yíng)ltera CycloneⅡ芯片上得到了實(shí)現。

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

1 DES加密算法原理

本文采用電碼本模式ECB(Electric Code Book)的DES加密算法,通過(guò)直接使用分組密碼算法來(lái)進(jìn)行消息加密。這一工作模式的優(yōu)點(diǎn)就是分組密碼的優(yōu)點(diǎn),其缺點(diǎn)是相同的密文對應相同的明文。DES是迭代型分組密碼,明文分組長(cháng)度為64bit,密鑰的長(cháng)度也為64bit,但實(shí)際上只有56bit有效,密鑰中第8、16、24、…、64位被舍去,因為它們通常是奇偶校驗位。DES加密算法從數據流的角度來(lái)看,可以分為兩部分:明文的變換和密鑰的變換。變換中引入了輪的概念,每一輪的算法都是重復的,一般要進(jìn)行16輪。

在每輪密鑰變換過(guò)程中,密鑰擴展算法還需要用到循環(huán)左移變換。密鑰變換的原則是:在第1、2、9、16輪變換時(shí),密鑰循環(huán)左移1位;當第3~8輪或者10~15輪變換時(shí),密鑰循環(huán)左移2位。每個(gè)循環(huán)左移變換的輸入和輸出都是28bit串。將移位所得的56bit密鑰通過(guò)壓縮變換變成48bit密鑰,此密鑰即為這輪變換所得的子密鑰[1]。

在一輪明文變換時(shí),輸入數據被分為左右對稱(chēng)的兩部分。通過(guò)一個(gè)擴展置換將數據的右半部分擴展成48bit,將其與此輪生成的子密鑰進(jìn)行模二加運算,經(jīng)過(guò)S盒代換將模二加生成的48bit密鑰替代成32bit密鑰,最后將其進(jìn)行P盒置換。以上四個(gè)運算過(guò)程構成函數F。通過(guò)另一個(gè)模二加運算,函數F的輸出與輸入數據左半邊模二加構成新的右半部分,原來(lái)的右半部分變成新的左半部分。以上過(guò)程即完成了DES算法的完整的一輪運算。DES加密算法一輪運算和總運算流程如圖2所示。

2 DES加密算法的實(shí)現

2.1 資源優(yōu)先設計方案

資源優(yōu)先方案就是通過(guò)硬件設計出一個(gè)密鑰變換輪函數和一個(gè)明文變換輪函數,通過(guò)16輪反復調用這一個(gè)硬件系統實(shí)現一次DES加密運算。由于16輪運算都只占用一輪運算所需的硬件資源,使硬件的開(kāi)銷(xiāo)大大減少。但是,一個(gè)時(shí)鐘周期只能進(jìn)行一輪加密運算,要完成整個(gè)加密過(guò)程要花費16個(gè)時(shí)鐘周期,從而在速度性能上大打折扣。而采用循環(huán)法實(shí)現DES加密算法能達到減少資源占用的目的,具體實(shí)現方法如圖3所示。

2.2 性能優(yōu)先設計方案

性能優(yōu)先設計方案剛好與資源優(yōu)先設計方案相反。傳統方案是將循環(huán)全部打開(kāi)配合結構進(jìn)行設計,即將16輪函數進(jìn)行硬件級聯(lián)構成一個(gè)16級的結構,提前生成16個(gè)子密鑰,隨著(zhù)流水線(xiàn)的進(jìn)程發(fā)送給相對應的流水級,從而達到16個(gè)數據塊同時(shí)加密的目的[3-4]。這樣,從第一個(gè)數據塊開(kāi)始加密起,每一個(gè)時(shí)鐘周期延時(shí)都會(huì )有一個(gè)數據塊進(jìn)行加密,經(jīng)16個(gè)時(shí)鐘周期延時(shí)后,得到最終的密文。流水線(xiàn)結構設計通過(guò)一個(gè)時(shí)鐘周期即可進(jìn)行一個(gè)數據塊的加密,通過(guò)占用資源換取速度性能的提高。

本文通過(guò)子密鑰的簡(jiǎn)化和S盒的優(yōu)化來(lái)改進(jìn)傳統的流水線(xiàn)結構,實(shí)現一個(gè)占用資源少、加密速度快的加密系統。具體的設計框圖如圖4所示。

(1) 子密鑰的簡(jiǎn)單生成

由DES加密算法原理可知,一個(gè)64bit的初始密鑰輸入后通過(guò)一次壓縮變換、移位變換、二次壓縮變換后得到第一輪子密鑰,其密鑰為48bit。第一輪子密鑰變換結果如圖5所示。由圖5可知,第一輪子密鑰的第1、2、3、…、46、47、48位分別為初始密鑰的第10、51、34、…、62、55、31位。每一輪子密鑰產(chǎn)生的方法是一樣的,如果采用硬件描述語(yǔ)言按照其子密鑰產(chǎn)生的原理一步步地推導出16次DES迭代的密鑰,不僅語(yǔ)言表述繁瑣,而且占用很多的硬件資源。同時(shí),由于每一輪子密鑰產(chǎn)生的時(shí)間并不相同,會(huì )給DES密碼的迭代運算帶來(lái)很多不必要的麻煩。

對密鑰變換原理進(jìn)行分析可以發(fā)現,每一輪子密鑰的產(chǎn)生只是將初始密鑰經(jīng)過(guò)置換和不同次數的循環(huán)移位。每一輪循環(huán)移位的次數對原始密鑰是固定的,其每一位相對于初始密鑰的每一位存在著(zhù)固定的關(guān)系,由此可以列出每一輪子密鑰與初始密鑰之間的關(guān)系表,通過(guò)關(guān)系表采用硬件描述語(yǔ)言可同時(shí)產(chǎn)生16輪子密鑰。采用此方法大大簡(jiǎn)化了程序語(yǔ)言、節約了硬件的資源開(kāi)銷(xiāo)。

(2) S盒的優(yōu)化

S盒的設計是DES算法的關(guān)鍵部分, S盒設計的優(yōu)劣將影響整個(gè)算法的性能。S盒是DES加密算法中唯一的非線(xiàn)性函數,S盒的非線(xiàn)性變換使算法達到很好的“混亂”效果,從而具有較強的安全性。

S盒的原理是輸入6bit的數據,其中第1位和第6 位確定行,中間4bit確定列,通過(guò)行、列查表確定對應的4 bit的輸出。根據S盒的工作原理,可直接使用輸入為6變量、輸出為4變量的case語(yǔ)句進(jìn)行描述,構成一個(gè)4bit 64個(gè)存儲空間的表。然而這樣的語(yǔ)句雖然可讀性很強,但綜合的效率往往不高,占用資源過(guò)多,速度也比較低,使S盒成為系統速度的瓶頸。

本文采用8個(gè)ROM來(lái)實(shí)現S盒。把輸入的6bit作為地址,對應的地址空間里存放的就是待輸出的4bit,這樣可提高運算時(shí)間,解決S盒變換的時(shí)間瓶頸;利用內部自帶的ROM,大大減少邏輯資源的占用。以第一個(gè)S盒設計為例,其設計實(shí)現電路如圖6所示。輸入為IN[6:1],經(jīng)地址變換電路將輸入的初始值轉換為相應的查表地址{IN[6]、IN[1]、IN[5:2]},即ADR[6:1],以此對64×4 ROM進(jìn)行查表,ROM值按照S盒查找表進(jìn)行初始化,由ADR[6:1]讀取ROM中相對應的數據從而得到OUT[3:0][2,5]。采用同樣的辦法,通過(guò)ROM實(shí)現其他7個(gè)S盒,以達到優(yōu)化的目的。

3 綜合仿真結果對比

利用ModelSim對三種不同方法實(shí)現的DES加密算法程序進(jìn)行了仿真,得到的仿真波形初步驗證了DES加密功能的正確性。選用Altera公司的QuartusⅡ6.0環(huán)境下成功編譯、綜合、適配、仿真,并下載到CycloneⅡ系列的FPGA中進(jìn)行了驗證,通過(guò)分析得到循環(huán)法、傳統流水線(xiàn)法、改進(jìn)流水線(xiàn)法在速度性能和資源占用上的差異如表1所示。

從表1可以看出,三種不同的方法,各自占用硬件資源、可以達到的最大時(shí)鐘頻率、加密速率上都存在各自的特點(diǎn)。循環(huán)法占用資源少、時(shí)鐘頻率低、加密速度相對較慢。傳統流水線(xiàn)法通過(guò)改進(jìn)后,大大減少了邏輯資源的占用量,同時(shí)在時(shí)鐘頻率和加密速率上都得到很大的提升。

本文按照資源優(yōu)先和性能優(yōu)先兩種不同的設計方案,分別采取循環(huán)法和流水線(xiàn)法予以實(shí)現。同時(shí),對性能優(yōu)先方案提出了改進(jìn)方法即:子密鑰簡(jiǎn)單生成和S盒的優(yōu)化。通過(guò)對這三種方法進(jìn)行綜合仿真驗證,證實(shí)了改進(jìn)流水線(xiàn)法的正確可行性。這兩種方案可以用于不同要求的應用領(lǐng)域,具有較大的靈活性。



評論


相關(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>