DES加密技術(shù)畢業(yè)設(shè)計(jì)論文_第1頁(yè)
DES加密技術(shù)畢業(yè)設(shè)計(jì)論文_第2頁(yè)
DES加密技術(shù)畢業(yè)設(shè)計(jì)論文_第3頁(yè)
DES加密技術(shù)畢業(yè)設(shè)計(jì)論文_第4頁(yè)
DES加密技術(shù)畢業(yè)設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

IVDES加密技術(shù)畢業(yè)設(shè)計(jì)論文摘要隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)應(yīng)用滲透到社會(huì)生活的各個(gè)領(lǐng)域,人們對(duì)信息化的依賴程度越來(lái)越高,隨之而來(lái)的安全性問(wèn)題成為人們關(guān)注的熱點(diǎn)。數(shù)據(jù)加密技術(shù)作為信息安全中的重要武器,發(fā)揮著越來(lái)越大的作用。DES(DateEncryptionStandard)算法從成為加密標(biāo)準(zhǔn)到現(xiàn)在,已經(jīng)成功在應(yīng)用在了很多領(lǐng)域并且經(jīng)歷了長(zhǎng)期的考驗(yàn)。實(shí)踐證明,DES算法對(duì)于大部分的應(yīng)用來(lái)說(shuō),還是足夠安全的。本論文首先介紹VerilogHDL語(yǔ)言及其實(shí)用軟件,然后介紹DES加密算法原理;接著介紹DES加密模塊的三大底層模塊的原理與設(shè)計(jì);最后介紹了頂層模塊的調(diào)用與設(shè)計(jì),測(cè)試文件的編寫(xiě),從整體上完成了對(duì)DES加密模塊的實(shí)現(xiàn)。本文通過(guò)VerilogHDL語(yǔ)言來(lái)實(shí)現(xiàn)DES加密模塊的設(shè)計(jì)與仿真。本設(shè)計(jì)采用自頂而下的模塊化設(shè)計(jì)方法將DES加密模塊劃分為四大模塊,其中包括三個(gè)底層模塊:密鑰產(chǎn)生模塊key_gen、S部件代換模塊(S1、S2、S3、S4、S5、S6、S7、S8)、DES的一輪變換模塊desround,還含有一個(gè)頂層調(diào)用模塊,整體的調(diào)用三個(gè)底層模塊用來(lái)實(shí)現(xiàn)DES加密模塊的功能。關(guān)鍵詞:DES;加密;VerilogHDL

AbstractWiththedevelopmentofinformationtechnology,theapplicationofcomputerhascameintoanyfield.People’sdependenceoninformationtechnologyisbecomingmore.Followedbytheissueofsecurityhasalsobecomeahotspotofconcerntothepeople.Encryptiontechnology,asanimportantweaponofinformationsecurity,isplayinganincreasinglyimportantrole.DES(DateEncryptionStandard)encryptionalgorithmfrombecomingthestandardtothepresent,hasbeensuccessfullyusedinalotintheareaandhasexperiencedlong-termtest.Practicehasprovedthat,DESalgorithmformostoftheapplicationsoradequateissecurity.ThispaperintroducesVerilogHDLlanguageanditsutilitysoftware,andintroducestheDESalgorithm,andthenintroducestheDESencryptionmodulethethreeunderlyingmodulesprinciplesanddesign.Finally,itintroducesthetop-levelmoduleanditsdesignaswellasthetestdocumentation,andachievesthewholeDESencryptionmoduleThroughtheVerilogHDLlanguage,thispaperachievesDESencryptionmoduledesignandsimulation.Thedesignusesatop-downmodulardesignmethodtoDESencryptionmodule,itisdividedinto4modules,whichcontainsthreebottommodules:keygenerationmodule,SmoduleandonetransformationmoduleofDES,anditalsocontainsatop-levelmodulewhichcallsthebottomoftheoverallthreemodulesforthefunctionofDESencryptionmodule.KeyWords:DES;encryption;VerilogHDL

目錄1緒論 11.1信息安全的現(xiàn)狀 11.2DES加密技術(shù)的現(xiàn)狀和發(fā)展 21.3設(shè)計(jì)語(yǔ)言及設(shè)計(jì)工具 31.3.1VerilogHDL語(yǔ)言介紹 31.3.2設(shè)計(jì)工具 72DES加密算法原理 82.1DES加密算法簡(jiǎn)介 82.2DES算法子密鑰Kn的產(chǎn)生 82.3DES加密算法的加密數(shù)據(jù)塊 92.4解密程序設(shè)計(jì) 123DES加密模塊的設(shè)計(jì) 143.1DES加密模塊總體構(gòu)架 143.2密鑰產(chǎn)生模塊key_gen設(shè)計(jì) 153.3S部件代換模塊設(shè)計(jì) 173.4desround模塊設(shè)計(jì) 183.5DES頂層模塊des設(shè)計(jì) 224DES加密模塊仿真及綜合 264.1DES加密及解密仿真 264.1.1DES加密模塊仿真步驟 264.1.2 DES加密及解密仿真結(jié)果 284.2DES加密模塊綜合 294.2.1綜合工具synplify介紹 294.2.2綜合結(jié)果 29結(jié)論 31致謝 32參考文獻(xiàn) 33附錄A英文原文 34附錄B中文譯文 43附錄C程序代碼 501緒論1.1信息安全的現(xiàn)狀美國(guó)著名未來(lái)學(xué)家阿爾溫·托夫勒說(shuō):“電腦網(wǎng)絡(luò)的建立和普及將徹底改變?nèi)祟?lèi)生存及生活的模式,控制與掌握網(wǎng)絡(luò)的人就是未來(lái)命運(yùn)的主宰。誰(shuí)掌握了信息,控制了網(wǎng)絡(luò),誰(shuí)就擁有整個(gè)世界?!钡拇_,網(wǎng)絡(luò)的國(guó)際化、社會(huì)化、開(kāi)放化、個(gè)人化誘發(fā)出無(wú)限的商機(jī),電子商務(wù)的迅速崛起,使網(wǎng)絡(luò)成為國(guó)際競(jìng)爭(zhēng)的新戰(zhàn)場(chǎng)。各種信息的傳播越來(lái)越便捷。在當(dāng)今的信息時(shí)代,大量敏感信息如法庭記錄、資金轉(zhuǎn)移、私人財(cái)產(chǎn)、個(gè)人隱私等常常通過(guò)公共通信設(shè)施或者計(jì)算機(jī)網(wǎng)絡(luò)來(lái)進(jìn)行交換,而這些信息的秘密性和真實(shí)性是人們迫切需要的。然而,由于安全技術(shù)本身的缺陷,使得信息傳播的脆弱性大大增加,一旦信息傳播的途徑與方式受到攻擊,輕則對(duì)個(gè)人的工作、生活產(chǎn)生重大影響。嚴(yán)重時(shí)甚至?xí):?guó)家安全,使整個(gè)社會(huì)陷入危機(jī)。所以,構(gòu)筑安全的電子信息環(huán)境,愈來(lái)愈受到國(guó)際社會(huì)的高度關(guān)注。不安全的信息還不如沒(méi)有信息。一個(gè)不設(shè)防的信息傳播方式,一旦遭到惡意攻擊,將意味著一場(chǎng)災(zāi)難。對(duì)于信息的傳播,需要居安思危、未雨綢繆,克服脆弱、克制威脅,防患于未然。信息安全是對(duì)付威脅、克服脆弱性、保護(hù)各種信息資源的所有措施的總和,涉及政策、法律、管理、教育和技術(shù)等方面的內(nèi)容。信息安全是一項(xiàng)系統(tǒng)工程,針對(duì)來(lái)自不同方面的安全威脅,需要采取不同的安全對(duì)策。從法律、制度、管理和技術(shù)上采取綜合措施,以便相互補(bǔ)充,達(dá)到較好的安全效果。管理是所有安全領(lǐng)域的重要組成部分,而技術(shù)措施是最直接的屏障,目前常用而有效的信息安全技術(shù)對(duì)策有如下幾種:加密、數(shù)字簽名、鑒別、訪問(wèn)控制、防火墻、安全審計(jì)、數(shù)據(jù)備份與恢復(fù)等等。在這些對(duì)策中,加密無(wú)疑是所有信息保護(hù)措施中最古老,最基本的方法。加密的主要目的是防止信息的非授權(quán)泄漏。加密方法多種多樣,在信息網(wǎng)絡(luò)中一般是利用信息變換規(guī)則把可靠的信息變成不可懂的信息。既可對(duì)傳輸信息加密,也可對(duì)存儲(chǔ)信息加密,把計(jì)算機(jī)數(shù)據(jù)變成一堆雜亂無(wú)章的數(shù)據(jù),攻擊者即使得到加密的信息,也不過(guò)是一串毫無(wú)意義的字符。加密可以有效的對(duì)抗截收、非法訪問(wèn)等威脅?,F(xiàn)代密碼算法不僅可以實(shí)現(xiàn)加密,還可以實(shí)現(xiàn)數(shù)字簽名,鑒別等功能,有效地對(duì)抗截收、非法訪問(wèn)、破壞信息的完整性、冒充、抵賴、重演等威脅,因此,加密技術(shù)是網(wǎng)絡(luò)信息安全的核心技術(shù)。社會(huì)信息化步伐的不斷加快,極大地推動(dòng)了信息安全技術(shù)的核心技術(shù)——現(xiàn)代密碼學(xué)的發(fā)展?,F(xiàn)代密碼學(xué)的應(yīng)用已經(jīng)涵蓋了軍事、政治、外交、金融、商業(yè)等眾多領(lǐng)域,其商用價(jià)值和社會(huì)價(jià)值得到了充分的肯定。為密碼理論與技術(shù)的應(yīng)用提供了廣闊的前景。1.2DES加密技術(shù)的現(xiàn)狀和發(fā)展在我國(guó)金卡工程中廣泛采用的DES算法。全稱為數(shù)據(jù)加密標(biāo)準(zhǔn)(DateEncryptionStandard)。它是一種對(duì)二元數(shù)據(jù)進(jìn)行加密的算法.屬于分組密碼算法中最有名的兩種常規(guī)密碼算法之一。DES算法以密鑰作為加密方法的加密手段,在此標(biāo)準(zhǔn)下可產(chǎn)生72,057,594,037,927,936≈7.2X106(72Q)個(gè)密鑰供用戶使用。用戶密鑰在這72Q個(gè)密鑰中隨機(jī)生成.若在不知密鑰情況下進(jìn)行破譯,即使用每微秒可以進(jìn)行一次DES加密的機(jī)器來(lái)破譯密碼也需要超過(guò)兩千年,故具有極高的保密性和安全性。由于加密方和解密方必須使用相同的密鑰DES算法又屬于對(duì)稱算法。數(shù)據(jù)加密標(biāo)準(zhǔn)DES就是一種在傳輸和存儲(chǔ)數(shù)據(jù)中保護(hù)計(jì)算機(jī)數(shù)據(jù)的密碼算法。數(shù)據(jù)加密標(biāo)準(zhǔn)DES是由美國(guó)IBM公司研制,是早期的稱作Lucifer密碼的一種發(fā)展和修改。DES于1977年1月15日正式被批準(zhǔn)作為美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn),同年7月15日開(kāi)始生效。雖然在1994年1月的評(píng)估后,美國(guó)已經(jīng)決定1998年12月以后就不再使用DES(2000年10月,NIST決定選用Rijndael密碼作為高級(jí)加密標(biāo)準(zhǔn)AES),然而數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryptionStandard,DES),作為ANSI的數(shù)據(jù)加密算法(DataEncryptionAlgorithm,DEA)和ISO的DEA-1,成為一個(gè)世界范圍內(nèi)的標(biāo)準(zhǔn)己經(jīng)20多年了。盡管它帶有過(guò)去時(shí)代的特征,但它很好地抗住了多年的密碼分析,除可能的最強(qiáng)有力的敵手外,對(duì)其他的攻擊仍然是安全的。DES是一個(gè)分組加密算法,它以64位為分組對(duì)數(shù)據(jù)加密。64位一組的明文從算法的一端輸入,64位的密文從另一端輸出。DES又是一個(gè)對(duì)稱算法:加密和解密用的是同一種算法。密鑰的長(zhǎng)度為56位(密鑰通常表示為64的數(shù),但每個(gè)第8位都用作奇偶校驗(yàn),可以忽略)。密鑰可以是任意的56位的數(shù),且可在任意的時(shí)候改變。其中極少量的數(shù)被認(rèn)為是弱密鑰,但能容易地避開(kāi)它們。所有的保密性依賴于密鑰。目前,基于DES算法的安全協(xié)議廣泛地應(yīng)用于軍事,衛(wèi)星通信、網(wǎng)關(guān)服務(wù)器、機(jī)頂盒、視頻傳輸以及其它大量的數(shù)據(jù)傳輸業(yè)務(wù)中。在應(yīng)用中,由于DES算法的密鑰長(zhǎng)度只有64位(實(shí)際上還包還了8位的奇偶校驗(yàn)位,因此密鑰有效長(zhǎng)度只有56位),隨著計(jì)算機(jī)技術(shù)和破解技術(shù)的進(jìn)步,人們不斷提出新的方法增強(qiáng)DES算法的加密強(qiáng)度,如3重DES算法、帶有交換S盒的DES算法等.因此DES算法在信息安全領(lǐng)域仍有廣泛地應(yīng)用。采用軟件方式實(shí)現(xiàn)的DES算法會(huì)在很大程度上占用系統(tǒng)資源,造成系統(tǒng)性能的嚴(yán)重下降,尤其是在實(shí)現(xiàn)TDES算法時(shí)需要更多的運(yùn)算時(shí)間和系統(tǒng)資源。而且通過(guò)軟件的方法實(shí)現(xiàn)DES算法,給攻擊者留下了更多的施展空間。而DES算法本身并沒(méi)有大量的復(fù)雜數(shù)學(xué)計(jì)算(如乘、帶進(jìn)位的加、模等運(yùn)算),在加/解密過(guò)程和密鑰生成過(guò)程中僅有邏輯運(yùn)算和查表運(yùn)算,因而,無(wú)論是從系統(tǒng)性能還是加/解密速度的角度來(lái)考慮,采用硬件實(shí)現(xiàn)都是一個(gè)理想的方案。因此,現(xiàn)在越來(lái)越多的系統(tǒng)都采用了硬件方式的DES加密方案。1.3設(shè)計(jì)語(yǔ)言及設(shè)計(jì)工具1.3.1VerilogHDL語(yǔ)言介紹硬件描述語(yǔ)言HDL是一種用形式化方法描述數(shù)字電路和系統(tǒng)的語(yǔ)言。利用這種語(yǔ)言,電路系統(tǒng)的設(shè)計(jì)可以從上層到下層(從抽象到具體)逐層描述自己的設(shè)計(jì)思想,用一系列分層次的模塊來(lái)表示極其復(fù)雜的數(shù)字系統(tǒng)。然后,利用電子設(shè)計(jì)自動(dòng)化(EDA)工具,逐層進(jìn)行仿真驗(yàn)證,把其中需要變?yōu)閷?shí)際電路的模塊組合,經(jīng)過(guò)自動(dòng)綜合工具轉(zhuǎn)換到門(mén)級(jí)電路網(wǎng)表,再用專(zhuān)用集成電路ASIC或現(xiàn)場(chǎng)可編程門(mén)陣列FPGA自動(dòng)布局布線工具,把網(wǎng)表轉(zhuǎn)換為要實(shí)現(xiàn)的具體電路結(jié)構(gòu)。VerilogHDL是一種硬件描述語(yǔ)言,用于從算法級(jí)、門(mén)級(jí)到開(kāi)關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡(jiǎn)單的門(mén)和完整的電子數(shù)字系統(tǒng)之間.數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。VerilogHDL語(yǔ)言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語(yǔ)言。此外,VerilogHDL語(yǔ)言提供了編程語(yǔ)言接口(PLI),通過(guò)該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問(wèn)設(shè)計(jì)包括模擬的具體控制和運(yùn)行。VerilogHDL語(yǔ)言不僅定義了語(yǔ)法,而且對(duì)每個(gè)語(yǔ)法結(jié)構(gòu)都定義了清晰的模擬、仿真語(yǔ)句。因此,用這種語(yǔ)言編寫(xiě)的模型能夠使用Verilog仿真器進(jìn)行驗(yàn)證。語(yǔ)言從C編程語(yǔ)言中繼承了多種操作符和結(jié)構(gòu)。VerilogHDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,VerilogHDL語(yǔ)言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來(lái)說(shuō)己經(jīng)足夠。當(dāng)然,完整的硬件描述語(yǔ)言足以對(duì)從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。1、VerilogHDL的產(chǎn)生VerilogHDL語(yǔ)言最初是于1983年由GatewayDesignAutotnatian公司為其模擬器產(chǎn)品開(kāi)發(fā)的硬件建模語(yǔ)言。那時(shí)它只是一種專(zhuān)用語(yǔ)言。由于他們的模擬、仿真器產(chǎn)品的廣泛使用,VerilogHDL作為一種便于使用且實(shí)用的語(yǔ)言逐漸為眾多設(shè)計(jì)者所接受。1989年,Cadence公司收購(gòu)了GDA公司,VerilogHDL語(yǔ)言成為Cadence公司的私有財(cái)產(chǎn)。1990年,為了促進(jìn)VerilvgHDL語(yǔ)言的發(fā)展,Cadence公司決定公開(kāi)VerilogHDL語(yǔ)言,于是成立了OpenVerilogInternational(OVI)組織,1992年,OVI決定推廣VerilogOVI標(biāo)準(zhǔn)成為IEEE標(biāo)準(zhǔn)。這一努力最后獲得成功,Verilog語(yǔ)言于1995年成為IEEE標(biāo)準(zhǔn)。在這個(gè)標(biāo)準(zhǔn)中,加入了VerilogHDL-A標(biāo)準(zhǔn),使Verilog有了模擬設(shè)計(jì)描述的能力。完整的標(biāo)準(zhǔn)在Verilog硬件描述語(yǔ)言參考手冊(cè)中有詳細(xì)描述。2、VerilogHDL的主要功能下面列出的是Verilog硬件描述語(yǔ)言的主要功能:?基本邏輯門(mén),例如and,or和nand等都內(nèi)置在語(yǔ)言中。?用戶定義原語(yǔ)(UDP)創(chuàng)建的靈活性。用戶定義的原語(yǔ)既可以是組合邏輯原語(yǔ),也可以是時(shí)序邏輯原語(yǔ)。?開(kāi)關(guān)級(jí)基本結(jié)構(gòu)模型,例如pmos和nmos等也被內(nèi)置在語(yǔ)言中。?提供顯式語(yǔ)言結(jié)構(gòu)指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查。?可采用三種不同方式或混合方式對(duì)設(shè)計(jì)建模。這些方式包括:行為描述方式—使用過(guò)程化結(jié)構(gòu)建模;數(shù)據(jù)流方式一使用連續(xù)賦值語(yǔ)句方式建模、結(jié)構(gòu)化方式—使用門(mén)和模塊實(shí)例語(yǔ)句描述建模。?VerilogHDL中有兩類(lèi)數(shù)據(jù)類(lèi)型:線網(wǎng)數(shù)據(jù)類(lèi)型和寄存器數(shù)據(jù)類(lèi)型。線網(wǎng)類(lèi)型表示構(gòu)件間的物理連線,而寄存器類(lèi)型表示抽象的數(shù)據(jù)存儲(chǔ)元件。?能夠描述層次設(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次。?設(shè)計(jì)的規(guī)??梢允侨我獾模赫Z(yǔ)言不對(duì)設(shè)計(jì)的規(guī)模(大小)施加任何限制。?VerilogHDL不再是某些公司的專(zhuān)有語(yǔ)言而是iEEE標(biāo)準(zhǔn)。?人和機(jī)器都可閱讀Verilog語(yǔ)言,因此它可作為EDA的工具和設(shè)計(jì)者之間的交互語(yǔ)言。?VerilogHDL語(yǔ)言的描述能力能夠通過(guò)使用編程語(yǔ)言接口(PLI)機(jī)制進(jìn)一步擴(kuò)展。PLI是允許外部函數(shù)訪問(wèn)Verilog模塊內(nèi)信息、允許設(shè)計(jì)者與模擬器交互的例程集合。?設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開(kāi)關(guān)級(jí)、門(mén)級(jí)、寄存器傳送級(jí)(RTL)到算法級(jí),包括進(jìn)程和隊(duì)列級(jí)。?能夠使用內(nèi)置開(kāi)關(guān)級(jí)原語(yǔ)在開(kāi)關(guān)級(jí)對(duì)設(shè)計(jì)完整建模。?同一語(yǔ)言可用于生成模擬激勵(lì)和指定測(cè)試的驗(yàn)證約束條件,例如輸入值的指定。?VerilogHDL能夠監(jiān)控模擬驗(yàn)證的執(zhí)行,即模擬驗(yàn)證執(zhí)行過(guò)程中設(shè)計(jì)的值能夠被監(jiān)控和顯示。這些值也能夠用于與期望值比較,在不匹配的情況下,打印報(bào)告消息。?在行為級(jí)描述中,VerilogHDL不僅能夠在RTL級(jí)上進(jìn)行設(shè)計(jì)描述,而且能夠在體系結(jié)構(gòu)級(jí)描述及其算法級(jí)行為上進(jìn)行設(shè)計(jì)描述。?能夠使用門(mén)和模塊實(shí)例化語(yǔ)句在結(jié)構(gòu)級(jí)進(jìn)行結(jié)構(gòu)描述。且在一個(gè)設(shè)計(jì)中每個(gè)模塊均可以在不同設(shè)計(jì)層次上建模。?VerilogHDL還具有內(nèi)置邏輯函數(shù),例如&(按位與)和|(按位或)。?支持高級(jí)編程語(yǔ)言結(jié)構(gòu),例如if語(yǔ)句、case語(yǔ)句和循環(huán)語(yǔ)句。?可以顯式地對(duì)并發(fā)和定時(shí)進(jìn)行建模。?通過(guò)系統(tǒng)函數(shù)提供強(qiáng)有力的文件讀寫(xiě)能力。?語(yǔ)言在特定情況下是非確定性的,即在不同的模擬器上模型可以產(chǎn)生不同的結(jié)果;例如:事件隊(duì)列上的事件順序在標(biāo)準(zhǔn)中沒(méi)有定義。3、設(shè)計(jì)層次與選用的語(yǔ)言按傳統(tǒng)方法,我們將硬件抽象級(jí)的模型類(lèi)型分為以下五種:系統(tǒng)級(jí)(system)—用語(yǔ)言提供的高級(jí)結(jié)構(gòu)實(shí)現(xiàn)算法運(yùn)行的模型。算法級(jí)(algorithm)—用語(yǔ)言提供的高級(jí)結(jié)構(gòu)實(shí)現(xiàn)算法運(yùn)行的模型。RTL級(jí)(RegisterTransferLevel)—描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理、控制這些數(shù)據(jù)流動(dòng)的模型。(以上三種都屬于行為描述,只有RTL級(jí)才與邏輯電路有明確的對(duì)應(yīng)關(guān)系。)門(mén)級(jí)(gate-level)—描述邏輯門(mén)以及邏輯門(mén)之間的連接模型,與邏輯電路有確切的連接關(guān)系。開(kāi)關(guān)級(jí)(switch-level)—描述器件中三極管和存儲(chǔ)節(jié)點(diǎn)以及它們之間連接的模型,與具體的物理電路有對(duì)應(yīng)關(guān)系。根據(jù)目前芯片設(shè)計(jì)的發(fā)展趨勢(shì),驗(yàn)證級(jí)和綜合抽象級(jí)也有可能成為一種標(biāo)準(zhǔn)級(jí)別。因?yàn)樗鼈冞m合于iP核復(fù)用和系統(tǒng)級(jí)仿真綜合優(yōu)化的需要,而軟件(嵌入式、固件式)也越來(lái)越成為一個(gè)和系統(tǒng)密切相關(guān)的抽象級(jí)別口。除了VerilogHDL外,還有下面幾種比較常用的HDL:(1)VHDL,是1980年因?yàn)槊绹?guó)軍事工業(yè)的需要由美國(guó)國(guó)防部開(kāi)發(fā)的,1987年由IEEE(InstituteofElectricalandElectronicsEngineers)將VHDL制定為標(biāo)準(zhǔn),稱為IEEEl076-1987。第二個(gè)版本是在1993年制定的,稱為VHDL-93,增加了一些新的命令和屬性。(2)Superlog,是為了在原有硬件描述語(yǔ)言的基礎(chǔ)上,結(jié)合高級(jí)語(yǔ)言C,C++甚至Java等語(yǔ)言的特點(diǎn),進(jìn)行擴(kuò)展,達(dá)到的一種新的系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言標(biāo)準(zhǔn),在1999年由Co-Design公司發(fā)布,同時(shí)發(fā)布了兩個(gè)開(kāi)發(fā)工具:SYSTEMSIM和SYSTEMX。一個(gè)用于系統(tǒng)級(jí)開(kāi)發(fā),一個(gè)用于高級(jí)驗(yàn)證。2001年,Co-Design公司向電子產(chǎn)業(yè)標(biāo)準(zhǔn)化組織Accellera發(fā)布了Superlog擴(kuò)展綜合子集ESS,使其可以為各種系統(tǒng)級(jí)的EDA軟件工具所利用。(3)SystemC,是一種能同時(shí)實(shí)現(xiàn)較高層次的軟件和硬件描述的系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言,由Synopsys公司和CoWare公司積極響應(yīng)目前各方對(duì)系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言的需求而合作開(kāi)發(fā)的。1999年9月27日,40多家世界著名的EDA公司、IP公司、半導(dǎo)體公司和嵌入式軟件公司宣布成立“開(kāi)放式SystemC聯(lián)盟”。Cadence公司也于2001年加入了SystemC聯(lián)盟。所有的SystemC目前,對(duì)于一個(gè)系統(tǒng)芯片設(shè)計(jì)項(xiàng)目,可以參考以下幾種設(shè)計(jì)方案:①在系統(tǒng)級(jí)采用VHDL,在軟件級(jí)采用C語(yǔ)言,在實(shí)現(xiàn)級(jí)采用Verilog。目前,VHDL與Verilog的互操作性已經(jīng)逐步走向標(biāo)準(zhǔn)化,但軟件與硬件的協(xié)調(diào)設(shè)計(jì)還是一個(gè)很具挑戰(zhàn)性的工作,因?yàn)檐浖絹?lái)越成為SvC設(shè)計(jì)的關(guān)鍵。該方案的特點(diǎn)是:風(fēng)險(xiǎn)小、集成難度大,與原有方法完全兼容,有現(xiàn)成的開(kāi)發(fā)工具;但工具集成由開(kāi)發(fā)者自行負(fù)責(zé)完成。②系統(tǒng)級(jí)及軟件級(jí)采用Superlog,硬件級(jí)和實(shí)現(xiàn)級(jí)均采用VerilogHDL描述,這樣和原有的硬件設(shè)計(jì)可以兼容。只要重新采購(gòu)兩個(gè)Snperlog開(kāi)發(fā)工具SYSTEMSIM和SYSTEMEX即可。該方案特點(diǎn)是風(fēng)險(xiǎn)較小,易于集成,與原硬件設(shè)計(jì)兼容性好,有集成開(kāi)發(fā)環(huán)境。③系統(tǒng)級(jí)和軟件級(jí)采用SystemC,硬件級(jí)采用SystemC與常規(guī)的VerilogHDL互相轉(zhuǎn)換,與原來(lái)的軟件編譯環(huán)境完全兼容。開(kāi)發(fā)者只需要一組描述類(lèi)庫(kù)和一個(gè)包含仿真核的庫(kù),就可以在通常的ANSIC++編譯器環(huán)境下開(kāi)發(fā);但硬件描述與原有方法完全不兼容。該方案特點(diǎn)是風(fēng)險(xiǎn)較大,與原軟件開(kāi)發(fā)兼容性好,硬件開(kāi)發(fā)有風(fēng)險(xiǎn)。1.3.2設(shè)計(jì)工具在本設(shè)計(jì)中選用的仿真器用到Modelsim6.1。Modelsim不僅可以完成設(shè)計(jì)的功能驗(yàn)證,也可以實(shí)現(xiàn)邏輯綜合后的門(mén)級(jí)仿真以及布局布線后的功能和時(shí)序驗(yàn)證。Modelsim主要特點(diǎn)有:(1)完全支持VerilogHDL和VHDL標(biāo)準(zhǔn);(2)采用直接編輯技術(shù)(Direct-Compiled),大大提高HDL編譯和仿真速度;(3)唯一支持VHDL和VerilogHDL混合描述的仿真工具;(4)支持RTL級(jí)和門(mén)級(jí)驗(yàn)證,支持VITAL,SDF等;(5)具有友好的用戶界面,仿真器包括主控窗口、源碼窗口、仿真波形窗口、列表窗口、數(shù)據(jù)流窗口、設(shè)計(jì)結(jié)構(gòu)窗口、過(guò)程管理窗口等;(6)支持單步調(diào)試,斷點(diǎn)設(shè)置,批命令處理方式,幫助設(shè)計(jì)師快速完成設(shè)計(jì)調(diào)試和驗(yàn)證;(7)即插即用,可與其它工具結(jié)合,完成各種流程;(8)支持UNIX和Window95/XP平臺(tái),不同平臺(tái)間具有相同的用戶界面和數(shù)據(jù)庫(kù)。2DES加密算法原理2.1DES加密算法簡(jiǎn)介數(shù)據(jù)加密標(biāo)準(zhǔn)DES(DataEncryptionStandard)算法是一個(gè)分組加密算法,也是一個(gè)對(duì)稱算法,加密和解密使用同一個(gè)算法,利用傳統(tǒng)的換位、異或、置換等加密方法。DES算法以64位(8byte)為分組對(duì)數(shù)據(jù)加密,其中有8位(第8、16、24、32、40、48、56和64位)用作奇偶校驗(yàn)位,另外的56位為真正的密鑰,保密性依賴于密鑰,加密和解密過(guò)程使用同一個(gè)密鑰。DES首先對(duì)64位的明文數(shù)據(jù)分組進(jìn)行操作,通過(guò)一個(gè)初始置換,將明文分組等分成左、右兩半部分,然后進(jìn)行16輪完全相同的運(yùn)算,在每一輪運(yùn)算中,對(duì)密鑰位進(jìn)行移位,再?gòu)?6位密鑰中選出48位;同時(shí)通過(guò)一個(gè)擴(kuò)展置換將數(shù)據(jù)的右半部分?jǐn)U展成48位,再通過(guò)異或操作與計(jì)算得到的48位子密鑰結(jié)合,并通過(guò)8個(gè)S盒將這48位替代成新的32位數(shù)據(jù),再將其置換一次。然后,通過(guò)另一個(gè)異或運(yùn)算,將運(yùn)算函數(shù)f的輸出與左半部分結(jié)合,其結(jié)果成為新的右半部分,舊的右半部分成為新的左半部分。將該操作重復(fù)16次,便實(shí)現(xiàn)了DES的16輪運(yùn)算。經(jīng)過(guò)16輪后,左、右半部分合在一起,最后再通過(guò)一個(gè)逆初始置換(初始置換的逆置換),這樣就完成DES加密算法。2.2DES算法子密鑰Kn的產(chǎn)生DES加密算法的具體過(guò)程描述如下:計(jì)算密鑰Ki對(duì)64位密鑰而言,因?yàn)槊總€(gè)字節(jié)的第8位為校驗(yàn)位,故密鑰由64位減至56位,而16個(gè)子密鑰Ki(i值從1到16)是在DES算法中的每一輪運(yùn)算中,從56位密鑰產(chǎn)生出的不同的48位子密鑰。產(chǎn)生方式如下:首先進(jìn)行密鑰置換,使得密鑰的各個(gè)位與原密鑰位對(duì)應(yīng)關(guān)系表如圖2.1所示。圖2.1密鑰置換接著把經(jīng)過(guò)置換后的56位密鑰等分成兩部分,其中前28位記為C[0],后28位記為D[0]。然后從i=1開(kāi)始,分別對(duì)C[i-1],D[i-1]做循環(huán)左移來(lái)生成C[i],D[i]。每次循環(huán)左移位數(shù),這兩部分分別循環(huán)左移1位或2位,如圖2.2所示。圖2.2循環(huán)左移然后串聯(lián)C[i],D[i],就可以得到一個(gè)56位數(shù),對(duì)此操作如圖2.3所示的壓縮置換以產(chǎn)生48位子密鑰Ki。圖2.3壓縮置換通過(guò)以上方法就可以計(jì)算出16個(gè)子密鑰Ki(i值從1到16)。2.3DES加密算法的加密數(shù)據(jù)塊把要加密的數(shù)據(jù)塊分成64位的數(shù)據(jù)塊,不滿64位的以適當(dāng)?shù)姆绞教钛a(bǔ)至64位。在第一輪運(yùn)算之前,先對(duì)數(shù)據(jù)塊作初始置換IP(初始置換是簡(jiǎn)單的比特移位),即設(shè)有一個(gè)比特的信息塊m=m1m2…m64,則IP(m)=m58m50…m7。初始置換如圖圖2.4初始置換再將置換后的數(shù)據(jù)塊等分成兩部分,前面32位記為L(zhǎng)[0],后面32位記為R[0]。然后運(yùn)算函數(shù)f根據(jù)如圖2.5所示的擴(kuò)展置換(也叫E盒置換),把32位的輸入擴(kuò)展成48位,并與密鑰Ki作異或運(yùn)算,再把所得的48位分成8組,每組6位,使用一個(gè)數(shù)組來(lái)儲(chǔ)存,設(shè)1~6位為B[1],7~12位為B[2],…43~48位為B[8]。圖2.5擴(kuò)展置換每組分別通過(guò)S1,S2,…,S8盒輸出,每個(gè)S盒是一個(gè)4行,16列的表。盒中的每一項(xiàng)都是一個(gè)4位數(shù)。取出B[j]的第1和第6位串聯(lián)成一個(gè)2位數(shù),記為m,是S盒里用來(lái)替換B[j]的數(shù)所在的列數(shù);取出B[j]的第2至第5位串聯(lián)成一個(gè)4位數(shù),記為n,是S盒里用來(lái)替換B[j]的數(shù)所在的行數(shù)。用S盒里的值S[j][m][n]替換B[j]。

S盒的6個(gè)輸入確定了其對(duì)應(yīng)的輸出在哪一行哪一列。8個(gè)S盒如圖2.6所8個(gè)數(shù)據(jù)塊都進(jìn)行S盒置換后,接著把B[1]至B[8]順序串聯(lián)起來(lái)得到一個(gè)32位數(shù),對(duì)這個(gè)數(shù)作如圖2.7所示的P盒置換。P盒是用來(lái)對(duì)S盒運(yùn)算后的32位輸出進(jìn)行置換,把每個(gè)輸入位映射到輸出位,最后產(chǎn)生32位輸出。圖2.6S盒每個(gè)輸入位映射到輸出位,最后產(chǎn)生32位輸出。即若輸入32位為Hi=r1r2…r32,則P(Hi)=h16h7…h(huán)20。將P盒置換后的結(jié)果與L[i-1]作異或運(yùn)算,并把計(jì)算結(jié)果賦給R[i],把R[i-1]的值賦給L[i]。循環(huán)執(zhí)行,接著開(kāi)始新一輪的運(yùn)算,知道K16也被用到。然后把R[16]和L[16]順序串聯(lián)起來(lái)得到一個(gè)64位數(shù)。最后對(duì)這個(gè)數(shù)執(zhí)行逆初始置換IP-1。逆初始置換是初始置換的逆過(guò)程,如圖2.8所示。DES算法的加密過(guò)程描述至此完成,其流程如圖2.9所示。圖2.7P盒置換圖2.8逆初始置換設(shè)初始置換為IP,運(yùn)算函數(shù)為f,16個(gè)子密鑰為Ki,則DES加密過(guò)程表示如下:

L0R0=IP(明文)

Li=Ri-1,Ri=Li-1⊕f(Ri-1,Ki),其中,i=1,2,…,16

密文=IP-1(R16L16)2.4解密程序設(shè)計(jì)DES解密和加密使用相同的算法,唯一的不同是密鑰的次序相反,即只需要把16個(gè)密鑰的順序倒過(guò)來(lái)。若各輪加密的密鑰分別是K1,K2,K3,…,K16,則解密的密鑰為K16,K15,K14,…,K1。為各輪產(chǎn)生的密鑰的算法也是循環(huán)的。密鑰向右移動(dòng),每次移動(dòng)的個(gè)數(shù)為:0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1。

DES解密過(guò)程可用符號(hào)表示如下:

R16L16=IP(密文)

Ri-1=Li,Li-1=Ri⊕f(Ri-1,Ki圖2.9DES加密算法流程圖3DES加密模塊的設(shè)計(jì)3.1DES加密模塊總體構(gòu)架本設(shè)計(jì)在對(duì)DES算法進(jìn)行建模時(shí),將整個(gè)算法分為密鑰產(chǎn)生模塊key_gen、S部件代換模塊(S1、S2、S3、S4、S5、S6、S7、S8)、DES的一輪變換模塊desround和頂層模塊des,其總體構(gòu)架如圖3.1所示。其中密鑰產(chǎn)生模塊被desround模塊調(diào)用。DES加密模塊頂層模塊的外部接口示意如圖3.2所示,部分端口功能說(shuō)明如表3.1所示。圖3.1DES加密模塊總體框架圖3.2DES加密模塊頂層的外部接口表3.1DES加密模塊部分端口功能說(shuō)明類(lèi)型端口描述inputload_idataloadinputdecrypt_iencryptcontrolinput[63:0]data_idatainputinput[63:0]key_iextermalsecretkeyinput[63:0]data_odataoutputoutputready_oreadyoutput3.2密鑰產(chǎn)生模塊key_gen設(shè)計(jì)DES算法中16輪非線性變換所用到的16個(gè)內(nèi)部子密鑰,都是由內(nèi)部變換子密鑰產(chǎn)生器產(chǎn)生的。解密和加密時(shí)所有的外部密鑰K完全相同,只是在解密時(shí)內(nèi)部16步非線性變換所用的內(nèi)部子密鑰應(yīng)按K16,K15,…K1的次序使用。密鑰產(chǎn)生模塊key_gen如圖3.3所示。圖3.3密鑰產(chǎn)生模塊key_gen部分代碼如下:always@(previous_keyoriterationordecrypt)beginprev_key_var=previous_key;new_key_var=0;new_key=(0);non_perm_key_var=0;non_perm_key=(0); if(!decrypt)begincase(iteration)0,1,8,15:begin…………end default:begin…………endendcase endelsebegincase(iteration)0:begin…………end 1,8,15:beginsemi_key=prev_key_var[55:28];prev0=semi_key[0];semi_key=semi_key>>1;semi_key[27]=prev0;non_perm_key_var[55:28]=semi_key;…………enddefault:begin…………endendcaseendnon_perm_key=(non_perm_key_var);new_key_var[47]=non_perm_key_var[42];………new_key_var[0]=non_perm_key_var[24];new_key=(new_key_var);endendmodule3.3S部件代換模塊設(shè)計(jì)S代換部件是一個(gè)十分復(fù)雜的非線性函數(shù),正是經(jīng)過(guò)它的非線性變換才使明文實(shí)現(xiàn)了較好的混亂,達(dá)到加密的效果,從而具有較強(qiáng)的安全性。S代換部件在整個(gè)DES算法中所占的比重較大,一共有8個(gè)模塊,是設(shè)計(jì)中需要關(guān)注的部分。S盒的設(shè)計(jì)準(zhǔn)則如下:沒(méi)有一個(gè)S代換部件的輸出位是接近輸入位的線性函數(shù)。如果將輸入位的最左或最右端的位固定,變化中間的4位,每個(gè)可能的4位輸出只能得到一次。如果S部件兩個(gè)輸入僅有1位的差異,則其輸出必須至少有2位不同。如果S代換部件的兩個(gè)輸入僅有中間2位不同,則其輸出必須至少有2位不同。如果S代換部件的兩個(gè)輸入前2位不同,后2位已知,則輸出必不同。對(duì)于輸入之間的任何非零的G位差分,32對(duì)中至多有8對(duì)顯示出的差分導(dǎo)致了相同的輸出差分。對(duì)于S代換部件的實(shí)現(xiàn),主要有兩種方法:查表法、邏輯電路法。本文通過(guò)查表法實(shí)現(xiàn)S代換部件。S1部件代換模塊如圖3.4所示。圖3.4S1部件代換模塊其S1部分代碼如下:always@(stage1_input)begincase(stage1_input) 0:stage1_output=(14);1:stage1_output=(0);2:stage1_output=(4);…………62:stage1_output=(0);63:stage1_output=(13);endcaseendEndmodule3.4desround模塊設(shè)計(jì)desround模塊執(zhí)行DES算法中的一輪非線性變換。一輪非線性變換的作用過(guò)程可以用圖3.5解釋。第i步非線性變換的輸入信號(hào)是32bit的右寄存器R(i),首先把它加到擴(kuò)展器E上,擴(kuò)展器把32bit的輸入擴(kuò)展為48bit的輸出,然后與第i步的48bit內(nèi)部變換子密鑰K(i)按位模相加。接著輸出的48bit,被劃分為8組,每組6bit,分別加到8個(gè)代換部件S1,S2,…,S8上,經(jīng)查表代換后輸出4bit。8個(gè)部件共輸出32bit,這32bit又經(jīng)過(guò)換位重排,再與變換信號(hào)的左半部分L(i-1)按位模相加,就成為下一步變換信號(hào)的右半部分R(i)。相應(yīng)的左半部分則為L(zhǎng)(i)=R(i-1)。其中擴(kuò)展器的工作原理如下。假設(shè)32bit的輸入為:R=r1,r2,r3,…,r3232bit的輸入被分為8組,每組4bit,再把每組4bit前后各加一個(gè)bit,從而擴(kuò)展為6bit。每組前面的一個(gè)bit是復(fù)制上一組擴(kuò)展前的最后一個(gè)bit,后面加的一個(gè)bit是復(fù)制下一組擴(kuò)展前的最開(kāi)始的一個(gè)bit。而第一組加的一個(gè)bit是擴(kuò)展前的第32bit,第八組后面加上的一個(gè)bit則是擴(kuò)展前第一組的頭一個(gè)bit。L(i-1)L(i-1)R(i-1)擴(kuò)展器EA=E{R(i-1)K(i)}S1S8B換位重排P(B)K(i)48bitR(i)=P(B)L(i-1)L(i)=R(i-1)圖3.5非線性函數(shù)g的運(yùn)算過(guò)程本模塊調(diào)用了密鑰生成模塊,他的輸出除了左半信號(hào)和右半信號(hào),還有密鑰信號(hào)。在這一輪運(yùn)算中,密鑰產(chǎn)生器產(chǎn)生了一個(gè)沒(méi)有經(jīng)PC—2重排的56bit的數(shù)據(jù)(它是由preious_key移位而得),這個(gè)信號(hào)會(huì)輸出給Key_o,作為下輪運(yùn)算的一個(gè)輸入,用以產(chǎn)生下一輪運(yùn)算所需要的密鑰。Desround模塊如圖3.6所示。圖3.6非線性變換desround模塊desround模塊部分代碼如下:always@(posedgeclkornegedgereset)begin if(!reset)beginL_o=(0);R_o=(0);Key_o=(0);endelsebeginL_o=(R_i);R_o=(next_R);Key_o=(non_perm_key); endendalways@(R_iorL_iorKey_ioriteration_iordecrypt_iornew_keyors1_iors2_iors3_iors4_iors5_iors6_iors7_iors8_i)beginR_i_var=R_i; expandedR[47]=R_i_var[0];expandedR[46]=R_i_var[31];…………expandedR[1]=R_i_var[0];expandedR[0]=R_i_var[31];previous_key=(Key_i);iteration=(iteration_i);decrypt=(decrypt_i);round_key=new_key;KER=expandedR^round_key;s1_o=(KER[47:42]);s2_o=(KER[41:36]);s3_o=(KER[35:30]);s4_o=(KER[29:24]);s5_o=(KER[23:18]);s6_o=(KER[17:12]);s7_o=(KER[11:6]);s8_o=(KER[5:0]);Soutput[31:28]=s1_i;Soutput[27:24]=s2_i;Soutput[23:20]=s3_i;Soutput[19:16]=s4_i;Soutput[15:12]=s5_i;Soutput[11:8]=s6_i;Soutput[7:4]=s7_i;Soutput[3:0]=s8_i;f[31]=Soutput[16];f[30]=Soutput[25];…………f[1]=Soutput[28];f[0]=Soutput[7];next_R=(L_i^f);expanRSig=(L_i^f);endEndmodule3.5DES頂層模塊des設(shè)計(jì)在DES模型的頂層模塊中,實(shí)例化了desround模塊和8個(gè)S代換部件,綜合之后各模塊之間的連接關(guān)系圖如圖3.1所示。輸入密鑰key_i、待加密數(shù)據(jù)data_i在左半信號(hào)及右半信號(hào)各經(jīng)過(guò)一個(gè)兩路數(shù)據(jù)選擇器后連接到desround模塊的數(shù)據(jù)輸入端(Li[31:0],R_i[31:0])和密鑰輸入端(Key_i[55:0])。這里之所以需要數(shù)據(jù)選擇器,是因?yàn)槟K僅在load_i為高電平時(shí)接收外部數(shù)據(jù),待加/解密數(shù)據(jù)和外部密鑰通過(guò)數(shù)據(jù)選擇器輸入到desround模塊的數(shù)據(jù)輸入端和密鑰輸入端。Load_i信號(hào)持續(xù)一個(gè)時(shí)鐘周期以后的輸出密鑰和數(shù)據(jù),將被送到desround模塊的密鑰輸入端和數(shù)據(jù)輸入端執(zhí)行下一輪變換。16輪變換結(jié)束之后,ready_o會(huì)變?yōu)楦唠娖?,這時(shí)整個(gè)模塊的輸出data_o才為有效數(shù)據(jù)。ready_o信號(hào)持續(xù)一個(gè)時(shí)鐘周期以后又變?yōu)榈碗娖?,load_i再次上跳為高電平,模塊對(duì)下一個(gè)明文分組進(jìn)行加密。des頂層模塊部分代碼如下:desroundrd1(.clk(clk),.reset(reset),.iteration_i(stage1_iteration_i),.decrypt_i(decrypt_i),.R_i(sta…………_stag1_o),.s5_i(s5_stag1_o),.s6_i(s6_stag1_o),.s7_i(s7_stag1_o),.s8_i(s8_stag1_o))s1sbox1(.stage1_input(s1_stag1_i),.stage1_output(s1_stag1_o));…………s8sbox8(.stage1_input(s8_stag1_i),.stage1_output(s8_stag1_o));always@(posedgeclkornegedgereset)beginif(!reset)beginready_o=(0);data_o=(0);stage1_iter=(0);data_ready=(1);endelsebeginready_o=(next_ready_o);data_o=(next_data_o);stage1_iter=(next_stage1_iter);data_ready=(next_data_ready);endendalways@(data_iorkey_iorload_iorstage1_iterordata_readyorstage1_R_oorstage1_L_oorstage1_round_key_o)beginL_i_var=0;R_i_var=0;data_i_var=0;next_ready_o=(0);next_data_ready=(data_ready);next_stage1_iter=(stage1_iter);stage1_L_i=(0);stage1_R_i=(0);stage1_round_key_i=(0);key_i_var=key_i;key_var_perm[55]=key_i_var[7];key_var_perm[54]=key_i_var[15];…………key_var_perm[1]=key_i_var[52];key_var_perm[0]=key_i_var[60];data_i_var=data_i;L_i_var[31]=data_i_var[6];L_i_var[30]=data_i_var[14];…………L_i_var[1]=data_i_var[48];L_i_var[0]=data_i_var[56]; R_i_var[31]=data_i_var[7];R_i_var[30]=data_i_var[15];…………R_i_var[1]=data_i_var[49];R_i_var[0]=data_i_var[57]; data_o_var_t[63:32]=stage1_R_o;data_o_var_t[31:0]=stage1_L_o;data_o_var[63]=data_o_var_t[24];…………data_o_var[0]=data_o_var_t[39];next_data_o=(data_o_var);stage1_iteration_i=(stage1_iter);next_ready_o=(0); stage1_L_i=(stage1_L_o);stage1_R_i=(stage1_R_o);stage1_round_key_i=(stage1_round_key_o);case(stage1_iter)0:beginif(load_i)beginnext_stage1_iter=(1);stage1_L_i=(L_i_var);stage1_R_i=(R_i_var);stage1_round_key_i=(key_var_perm);next_data_ready=(0);endelseif(!data_ready)beginnext_stage1_iter=(0); next_ready_o=(1);next_data_ready=(1); end end15:next_stage1_iter=(0);default: next_stage1_iter=(stage1_iter+1); endcaseendendmodule4DES加密模塊仿真及綜合4.1DES加密及解密仿真4.1.1DES加密模塊仿真步驟(1)建立工程:在ModelSim中建立Project。如圖4.1所示,點(diǎn)擊FileNewProject,得到CreataProject的彈出窗口,如圖4.2所示。在ProjectName輸入項(xiàng)目名字,最好和頂層文件名字一致。ProjectLocation是工作目錄,可通過(guò)Brose按鈕來(lái)選擇或改變。DdfaultLibraryName可以采用工具默認(rèn)的work。圖4.1建立工程圖4.2工程路徑及名稱(2)給工程加入文件:ModelSim會(huì)自動(dòng)彈出AddItemstotheproject窗口,如圖4.3所示。選擇AddExsitingFile后,根據(jù)相應(yīng)提示將文件加到該P(yáng)roject中。圖4.3建立文件(3)編譯:編譯(包括源代碼和庫(kù)文件的編譯)。編譯可點(diǎn)擊ComlileComlileAll來(lái)完成。(4)裝載文件:如圖4.4,點(diǎn)擊SimulateSimulate…后,如圖4.5所示,選定頂層文件(激勵(lì)文件),ADD加入,然后點(diǎn)擊LOAD,裝載。圖4.4仿真指令(4)開(kāi)始仿真:同過(guò)菜單:View->Structure,View->Signals,View->Wave打開(kāi)Structure,Signals,Wave三個(gè)窗口。在Structure窗口內(nèi)選定所要觀察的信號(hào)所在的模塊,然后在Signals窗口選定信號(hào),同過(guò)鼠標(biāo)左鍵拖放到Wave窗口,如圖4.6。然后在Wave窗口,點(diǎn)擊runall,運(yùn)行,在波形窗口就可以看到信號(hào)的仿真波形。如圖3.7.(5)開(kāi)始仿真:同過(guò)菜單:View->Structure,View->Signals,View->Wave打開(kāi)Structure,Signals,Wave三個(gè)窗口。在Structure窗口內(nèi)選定你所要觀察的信號(hào)所在的模塊,然后在Signals窗口選定信號(hào),同過(guò)鼠標(biāo)左鍵拖放到Wave窗口,如圖4.6。然后在Wave窗口,點(diǎn)擊runall,運(yùn)行,在波形窗口就可以看到信號(hào)的仿真波形。如圖4.7、4.8所示。圖4.5選擇測(cè)試文件圖4.6加入信號(hào)DES加密及解密仿真結(jié)果Modelsim仿真結(jié)果如下:圖4.7decrypt=1時(shí),DESTestbench仿真波形圖4.8decrypt=0時(shí),DESTestbench仿真波形當(dāng)decrypt=0時(shí)為加密,decrypt=1時(shí)為解密。仿真結(jié)果顯示,加密和解密的結(jié)果都與事先計(jì)算的結(jié)果吻合,而且解密后能完全將密文還原成明文。能很好的完成加密和解密功能。4.2DES加密模塊綜合4.2.1綜合工具synplify介紹Synplify和SynplifyPro是Synplicity公司提供的專(zhuān)門(mén)針對(duì)FPGA和CPLD實(shí)現(xiàn)的邏輯綜合工具,它支持VHDL93(IEEE1076),包括std_logic_1164,Numeric_std,std_logic_Usigned,std_logic_Signed,std_logic_Arith;和Verilog95(IEEE1364)的可綜合子集。該軟件提供的SymbolicFSMCompiler是專(zhuān)門(mén)支持有效狀態(tài)機(jī)優(yōu)化的內(nèi)嵌工具;SCOPE是管理(包括輸入和查看)設(shè)計(jì)約束與屬性,提供活頁(yè)式分類(lèi),非常友好的表格界面;用于文本輸入的HDL語(yǔ)法敏感編輯窗口不僅提供了對(duì)綜合錯(cuò)誤的高亮顯示,結(jié)合圖形化的分析和cross_probe工具HDLAnalyst,可以把源代碼與綜合的結(jié)果有機(jī)地鏈接起來(lái),幫助設(shè)計(jì)者迅速定位關(guān)鍵路徑,解決問(wèn)題;其提供的命令行界面,可以通過(guò)使用Tcl腳本極大的提高工作效率。4.2.2綜合結(jié)果綜合結(jié)果如圖4.9所示:圖4.9DES加密模塊綜合結(jié)論本設(shè)計(jì)是利用VerilogHDL語(yǔ)言來(lái)完成DES加密模塊的設(shè)計(jì),本文介紹了DES加密算法的現(xiàn)狀和未來(lái),對(duì)DES算法進(jìn)行了詳細(xì)的描述,利用Modelsim軟件仿真,synplify軟件綜合。本設(shè)計(jì)在對(duì)DES算法進(jìn)行建模時(shí),將整個(gè)算法分為密鑰產(chǎn)生模塊key_gen、S部件代換模塊(S1、S2、S3、S4、S5、S6、S7、S8)、DES的一輪變換模塊desround和頂層模塊des。進(jìn)行仿真后仿真結(jié)果顯示,加密和解密的結(jié)果都與事先計(jì)算的結(jié)果吻合,而且解密后能完全將密文還原成明文。能很好的完成加密和解密功能。致謝本論文是在***老師親自指導(dǎo)下完成的。伍老師在學(xué)業(yè)上給了我很大的幫助,使我在實(shí)驗(yàn)過(guò)程中避免了許多無(wú)謂的工作。伍老師一絲不茍、嚴(yán)謹(jǐn)認(rèn)真的治學(xué)態(tài)度,精益求精、誨人不倦的學(xué)者風(fēng)范,以及正直無(wú)私、磊落大度的高尚品格,更讓我明白許多做人的道理,在此我對(duì)伍師表示衷心的感謝!在整個(gè)畢業(yè)設(shè)計(jì)過(guò)程中,我的指導(dǎo)老師伍彩云老師一直給予我們很多的關(guān)注和指導(dǎo),勤勉教學(xué),誨人不倦,幫助我們順利的完成這次設(shè)計(jì)任務(wù)。在我們遇到困難時(shí),她總能給我們很好的啟發(fā),引導(dǎo)我們走向成功。伍老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時(shí)還在思想、生活上給我以無(wú)微不至的關(guān)懷。再次感謝我的導(dǎo)師伍彩云老師。感謝沈陽(yáng)理工大學(xué)圖書(shū)館,圖書(shū)館收藏豐富的專(zhuān)業(yè)知識(shí)書(shū)籍讓我的畢業(yè)設(shè)計(jì)有充足的參考資料。還要感謝我所參考書(shū)籍的作者們,感謝工作在中國(guó)電子行業(yè)的前輩們,是他們將知識(shí)傳授給我們,讓我國(guó)的電子事業(yè)后繼有人、蓬勃發(fā)展!還要感謝大學(xué)四年來(lái)所有的老師,為我們打下專(zhuān)業(yè)知識(shí)的基礎(chǔ);同時(shí)還要感謝所有的同學(xué)們,正是因?yàn)橛辛四銈兊闹С趾凸膭?lì)。此次畢業(yè)設(shè)計(jì)才會(huì)順利完成。最后感謝****大學(xué)四年來(lái)對(duì)我的栽培。參考文獻(xiàn)[1]喬廬峰.VerilogHDL數(shù)字系統(tǒng)設(shè)計(jì)與驗(yàn)證.第一版.電子工業(yè)出版社,2009[2]杜慧敏,趙全良.基于VerilogHDL的FPGA設(shè)計(jì)基礎(chǔ).第一版.西安電子科技大學(xué)出版社,2002[3]張亮.?dāng)?shù)字電路設(shè)計(jì)與VerilogHDL.第一版.人民郵電出版社,2000[4]J.Bhasker.VerilogHDL硬件描述語(yǔ)言.第一版.機(jī)械工業(yè)出版社,2000[5]夏宇聞.VerilogHDL數(shù)字系統(tǒng)設(shè)計(jì)教程.第一版.北京航空航天大學(xué)出版社,2003[6]侯伯亨,顧新.VHDL硬件描述語(yǔ)言數(shù)字邏輯電路設(shè)計(jì).第一版.西安電子科技大學(xué)出版社,1999[7]常曉明,李媛媛.VerilogHDL工程實(shí)踐入門(mén).第一版.北京航空航天大學(xué)出版社,2005[8]張延偉,楊金巖,葛愛(ài)學(xué).VerilogHDL程序設(shè)計(jì)實(shí)例詳解,2008[9]劉秋云,王佳.VerilogHDL設(shè)計(jì)實(shí)踐與指導(dǎo).機(jī)械工業(yè)出版社.2005[10]王冠,黃熙,王鷹.VerilogHDL與數(shù)字電路設(shè)計(jì).第一版.機(jī)械工業(yè)出版社,2006附錄A英文原文BuildingProgrammableAutomationControllerswithLabVIEWFPGAOverviewProgrammableAutomationControllers(PACs)aregainingacceptancewithintheindustrialcontrolmarketastheidealsolutionforapplicationsthatrequirehighlyintegratedanaloganddigitalI/O,floating-pointprocessing,andseamlessconnectivitytomultipleprocessingnodes.NationalInstrumentsoffersavarietyofPACsolutionspoweredbyonecommonsoftwaredevelopmentenvironment,NILabVIEW.WithLabVIEW,youcanbuildcustomI/Ointerfacesforindustrialapplicationsusingadd-onsoftware,suchastheNILabVIEWFPGAModule.WiththeLabVIEWFPGAModuleandreconfigurableI/O(RIO)hardware,NationalInstrumentsdeliversanintuitive,accessiblesolutionforincorporatingtheflexibilityandcustomizabilityofFPGAtechnologyintoindustrialPACsystems.YoucandefinethelogicembeddedinFPGAchipsacrossthefamilyofRIOhardwaretargetswithoutknowinglow-levelhardwaredescriptionlanguages(HDLs)orboard-levelhardwaredesigndetails,aswellasquicklydefinehardwareforultrahigh-speedcontrol,customizedtimingandsynchronization,low-levelsignalprocessing,andcustomI/Owithanalog,digital,andcounterswithinasingledevice.YoualsocanintegrateyourcustomNIRIOhardwarewithimageacquisitionandanalysis,motioncontrol,andindustrialprotocols,suchasCANandRS232,torapidlyprototypeandimplementacompletePACsystem.TableofContents\l"toc0"Introduction\l"toc1"NIRIOHardwareforPACs\l"toc2"BuildingPACswithLabVIEWandtheLabVIEWFPGAModule\l"toc3"FPGADevelopmentFlow\l"toc4"UsingNISoftMotiontoCreateCustomMotionControllers\l"toc5"Applications\l"toc6"ConclusionIntroductionYoucanusegraphicalprogramminginLabVIEWandtheLabVIEWFPGAModuletoconfiguretheFPGA(field-programmablegatearray)onNIRIOdevices.RIOtechnology,themergingofLabVIEWgraphicalprogrammingwithFPGAsonNIRIOhardware,providesaflexibleplatformforcreatingsophisticatedmeasurementandcontrolsystemsthatyoucouldpreviouslycreateonlywithcustom-designedhardware.AnFPGAisachipthatconsistsofmanyunconfiguredlogicgates.Unlikethefixed,vendor-definedfunctionalityofanASIC(application-specificintegratedcircuit)chip,youcanconfigureandreconfigurethelogiconFPGAsforyourspecificapplication.FPGAsareusedinapplicationswhereeitherthecostofdevelopingandfabricatinganASICisprohibitive,orthehardwaremustbereconfiguredafterbeingplacedintoservice.Theflexible,software-programmablearchitectureofFPGAsofferbenefitssuchashigh-performanceexecutionofcustomalgorithms,precisetimingandsynchronization,rapiddecisionmaking,andsimultaneousexecutionofparalleltasks.Today,FPGAsappearinsuchdevicesasinstruments,consumerelectronics,automobiles,aircraft,copymachines,andapplication-specificcomputerhardware.WhileFPGAsareoftenusedinindustrialcontrolproducts,FPGAfunctionalityhasnotpreviouslybeenmadeaccessibletoindustrialcontrolengineers.DefiningFPGAshashistoricallyrequiredexpertiseusingHDLprogrammingorcomplexdesigntoolsusedmorebyhardwaredesignengineersthanbycontrolengineers.WiththeLabVIEWFPGAModuleandNIRIOhardware,younowcanuseLabVIEW,ahigh-levelgraphicaldevelopmentenvironmentdesignedspecificallyformeasurementandcontrolapplications,tocreatePACsthathavethecustomization,flexibility,andhigh-performanceofFPGAs.BecausetheLabVIEWFPGAModuleconfigurescustomcircuitryinhardware,yoursystemcanprocessandgeneratesynchronizedanaloganddigitalsignalsrapidlyanddeterministically.FigureA1illustratesmanyoftheNIRIOdevicesthatyoucanconfigureusingtheLabVIEWFPGAModule.FigureA1LabVIEWFPGAVIBlockDiagramandRIOHardwarePlatformsNIRIOHardwareforPACsHistorically,programmingFPGAshasbeenlimitedtoengineerswhohavein-depthknowledgeofVHDLorotherlow-leveldesigntools,whichrequireovercomingaverysteeplearningcurve.WiththeLabVIEWFPGAModule,NIhasopenedFPGAtechnologytoabroadersetofengineerswhocannowdefineFPGAlogicusingLabVIEWgraphicaldevelopment.Measurementandcontrolengineerscanfocusprimarilyontheirtestandcontrolapplication,wheretheirexpertiselies,ratherthanthelow-levelsemanticsoftransferringlogicintothecellsofthechip.TheLabVIEWFPGAModulemodelworksbecauseofthetightintegrationbetweentheLabVIEWFPGAModuleandthecommercialoff-the-shelf(COTS)hardwarearchitectureoftheFPGAandsurroundingI/Ocomponents.NationalInstrumentsPACsprovidemodular,off-the-shelfplatformsforyourindustrialcontrolapplications.WiththeimplementationofRIOtechnologyonPCI,PXI,andCompactVisionSystemplatformsandtheintroductionofRIO-basedCompactRIO,engineersnowhavethebenefitsofaCOTSplatformwiththehigh-performance,flexibility,andcustomizationbenefitsofFPGAsattheirdisposaltobuildPACs.NationalInstrumentsPCIandPXIRSeriesplug-indevicesprovideanaloganddigitaldataacquisitionandcontrolforhigh-performance,user-configurabletimingandsynchronization,aswellasonboarddecisionmakingonasingledevice.Usingtheseoff-the-shelfdevices,youcanextendyourNIPXIorPCIindustrialcontrolsystemtoincludehigh-speeddiscreteandanalogcontrol,customsensorinterfaces,andprecisetimingandcontrol.NICompactRIO,aplatformcenteredonRIOtechnology,providesasmall,industriallyrugged,modularPACplatformthatgivesyouhigh-performanceI/Oandunprecedentedflexibilityinsystemtiming.YoucanuseNICompactRIOtobuildanembeddedsystemforapplicationssuchasin-vehicledataacquisition,mobileNVHtesting,andembeddedmachinecontrolsystems.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論