《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 數(shù)字電視CAS中DES加密模塊的FPGA實(shí)現(xiàn)

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

2009-04-21
作者:劉 虎1,,景新幸1,,賈雅瓊2

??? 摘? 要:一種基于FPGA的數(shù)據(jù)加密標(biāo)準(zhǔn)算法的實(shí)現(xiàn)。就資源優(yōu)先和性能優(yōu)先分別使用循環(huán)法和流水線法對(duì)DES加密算法進(jìn)行了設(shè)計(jì),,并對(duì)其進(jìn)行了比較,。通過(guò)采用子密鑰簡(jiǎn)單產(chǎn)生和ROM優(yōu)化S盒的方法,,對(duì)流水線法進(jìn)行改進(jìn),,達(dá)到了資源占用率低,、加密速度快的效果。?

??? 關(guān)鍵詞: DES,; 流水線,; 循環(huán)法; FPGA,; 密碼學(xué)

?

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

?

?

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

1 DES加密算法原理?

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

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

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

?

?

2 DES加密算法的FPGA實(shí)現(xiàn)?

2.1 資源優(yōu)先設(shè)計(jì)方案?

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

?

?

2.2 性能優(yōu)先設(shè)計(jì)方案?

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

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

?

?

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

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

?

?

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

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

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

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

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

?

?

3 綜合仿真結(jié)果對(duì)比?

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

?

?

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

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

參考文獻(xiàn)?

[1] 胡予濮,,張玉清,,肖國(guó)鎮(zhèn).對(duì)稱密碼學(xué)[M].北京:機(jī)械工業(yè)出版社,2002:143-162.?

[2] HASKINS G M. Securing asynchronous transfer mode?networks[D].Worcester Polytechnic Institute,Worcester,Massachusetts,USA,1997. ?

[3] MCLOONE M, MCCANNY J V. High-performance FPGA?implementation of DES using a novel method for implementing the key schedule[J]. Circuits, Devices and?Systems, IEE Proceedings,2003,150(5):373-378.?

[4] LUBBE V D. Basic methods of cryptography[J].IEE?Review, 1999,45(2):77-77.?

[5] 艾顯峰,葉宇煌.高速通用DES加解密芯片設(shè)計(jì)與實(shí)現(xiàn).寧德師專學(xué)報(bào),,2004,,16(3).

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。