版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 (20072007 屆)屆)畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì)題目:基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn) 學(xué)院:機(jī)電工程學(xué)院專(zhuān)業(yè):電子信息工程班級(jí):電信學(xué)號(hào):1 姓名:指導(dǎo)教師:教務(wù)處制 年月日誠(chéng)誠(chéng) 信信 聲聲 明明我聲明,所呈交的論文是本人在老師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我查證,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果,也不包含為獲得或其他教育機(jī)構(gòu)的學(xué)位或證書(shū)而使用過(guò)的材料。我承諾,論文中的所有內(nèi)容均真實(shí)、可信。 論文作者簽名: 簽名日期: 年 月 日i授授 權(quán)權(quán) 聲聲 明明 學(xué)校有權(quán)保留送論文交的原件,允許論文被查閱和借閱,學(xué)??梢怨颊撐牡娜?/p>
2、或部分內(nèi)容,可以影印、縮印或其他復(fù)制手段保存論文,學(xué)校必須嚴(yán)格按照授權(quán)對(duì)論文進(jìn)行處理,不得超越授權(quán)對(duì)論文進(jìn)行任意處置。論文作者簽名: 簽名日期: 年 月 日ii基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)摘 要本文主要介紹了電子設(shè)計(jì)自動(dòng)化(eda)技術(shù)的主要特點(diǎn)、現(xiàn)狀、前景及意義,并就課題的研究方向做了相關(guān)的論述;且進(jìn)一步論述了 eda 技術(shù)的發(fā)展對(duì)電路設(shè)計(jì)應(yīng)用的影響,探討了通過(guò) vhdl 語(yǔ)言和可編程門(mén)陣列(fpga)進(jìn)行電路設(shè)計(jì)開(kāi)發(fā)的流程,以其作為應(yīng)用對(duì)象,進(jìn)一步編程開(kāi)發(fā)了(8,4)增余漢明碼的編碼、譯碼,循環(huán)冗余差錯(cuò)校驗(yàn)編碼(crc)和 md5 編碼。通過(guò)對(duì)前兩種編碼各個(gè)模塊進(jìn)行設(shè)計(jì),完整
3、闡述了對(duì)前兩種編碼軟件部分的設(shè)計(jì);又通過(guò)測(cè)試,完善,修改,最終完成了各自獨(dú)立的編碼程序?;?vhdl 硬件描述語(yǔ)言,利用 fpga 器件開(kāi)發(fā)的差錯(cuò)控制編碼系統(tǒng),采用了自頂向下的設(shè)計(jì)方法用 vhdl 語(yǔ)言進(jìn)行設(shè)計(jì),選用當(dāng)前應(yīng)用最廣泛的 eda 軟件 xilinx ise 作為開(kāi)發(fā)平臺(tái)及配套的 multisim 仿真工具,所有程序全部通過(guò)了該平臺(tái)的編譯和功能仿真測(cè)試,得出了實(shí)際的仿真波形,最后,對(duì)設(shè)計(jì)調(diào)試過(guò)程中出現(xiàn)的問(wèn)題進(jìn)行了分析、研究、解決。我還對(duì)上述這些各種編碼的異同點(diǎn)進(jìn)行了總結(jié),對(duì) md5 編碼進(jìn)行了算法分析,既而對(duì)這些編碼進(jìn)行研究。關(guān)鍵詞:fpga,vhdl,漢明碼,循環(huán)冗余碼,md5
4、碼iiithe design and implementation of error control coding based on fpgaabstractthis paper mainly introduced the main characteristics, current situation and prospects and significance of eda technology, and puts some elaboration in related to topic research directions; and further discussed the devel
5、opment of eda technology to the influence of cad, explored the vhdl language and fpga for circuit design development process, with its as applied objects, further developed the coding and decoding hamming code, crc coding and md5 coding. through the first two coding each module design, complete elab
6、orated on the first two coding software part of the design; and through the test, perfect, modify, eventually completed the independent encoding process. based on vhdl hardware description language, using the fpga device development error-controlling codes is proposed, using the top-down design meth
7、ods with vhdl language design, selection of the most widely used as ise xilinx eda software development platform and related multisim simulation tools, all the procedures of the platform are all through the compiler and function simulation test, it is concluded that the actual simulation waveform, f
8、inally, to design the debugging process problems were analyzed, research, solved. i also turned to these various coding differences and similarities are summarized, the algorithm of md5 coding for these codes, then analyzed.keywords: fpga,vhdl, hamming code, crc code, md5 iv目 錄摘 要.iiiabstract.iv第一章
9、緒論.11.1 課題的來(lái)源 .11.1.1 eda 技術(shù)綜述 .11.1.2 差錯(cuò)控制編碼技術(shù)介紹 .31.2 課題的意義 .51.3 差錯(cuò)控制編碼發(fā)展現(xiàn)狀 .61.4 課題研究的主要內(nèi)容 .6第二章 基于 fpga 的實(shí)現(xiàn)差錯(cuò)控制編碼技術(shù).82.1 差錯(cuò)控制編碼的總體設(shè)計(jì)方案 .82.2(8,4)增余漢明碼的差錯(cuò)控制編碼譯碼設(shè)計(jì).82.2.1 漢明碼編碼譯碼原理 .82.2.2(8,4)增余漢明碼的算法與實(shí)現(xiàn).82.2.3(8,4)漢明碼編碼波形仿真圖:.102.2.4(8,4)漢明碼譯碼算法實(shí)現(xiàn).102.2.5(8,4)漢明碼編碼波形仿真圖:.122.2.6(8,4)漢明碼編碼譯碼綜合模塊
10、.122.2.7(8,4)漢明碼編碼譯碼綜合波形仿真圖.132.3 循環(huán)冗余差錯(cuò)控制校驗(yàn)碼的設(shè)計(jì).132.3.1 crc 循環(huán)校驗(yàn)碼編碼校驗(yàn)原理 .132.3.2 crc 循環(huán)碼編碼規(guī)則 .142.3.3 crc 循環(huán)碼算法分析 .142.3.4 crc 校驗(yàn)生成模塊的設(shè)計(jì)實(shí)現(xiàn).152.3.5 crc 校驗(yàn)生成模塊仿真波形圖 .172.3.6 crc 校驗(yàn)接收模塊的設(shè)計(jì)實(shí)現(xiàn).182.3.7 crc 校驗(yàn)接收模塊仿真波形圖 .192.4 md5 碼的算法分析 .192.5.1 md5 的引言 .192.5.2 md5 的原理 .202.5.3 md5 算法的安全性考慮 .212.5.4 md5
11、的應(yīng)用 .22第三章 基于 fpga 的實(shí)現(xiàn)差錯(cuò)控制編碼技術(shù)開(kāi)發(fā)體會(huì).23v3.1 算法的重要.233.2 硬件對(duì)軟件的制約影響.233.3 調(diào)試的重要性.23第四章 結(jié)束語(yǔ).24致謝.26附錄.27嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)0第一章 緒論1.1 課題的來(lái)源1.1.1 eda 技術(shù)綜述由于大規(guī)模集成電路開(kāi)發(fā)技術(shù)的應(yīng)用和發(fā)展以及電子產(chǎn)品市場(chǎng)運(yùn)作的進(jìn)一步加快,涉及諸如通信、智能儀表、醫(yī)藥設(shè)備、軍事、民用電器等領(lǐng)域的現(xiàn)代電子科學(xué)技術(shù)與應(yīng)用已進(jìn)入了一個(gè)嶄新的階段,電子設(shè)計(jì)自動(dòng)化已成為當(dāng)今電子設(shè)計(jì)領(lǐng)域的主流。電子設(shè)計(jì)自動(dòng)化技術(shù)是在電子計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)基礎(chǔ)上發(fā)展起來(lái)的計(jì)算機(jī)軟件系統(tǒng),是指以計(jì)算機(jī)為工作平臺(tái),
12、整合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理等最新成果,進(jìn)行電子產(chǎn)品的自動(dòng)設(shè)計(jì)。利用電子設(shè)計(jì)自動(dòng)化工具,電子設(shè)計(jì)師可以將大量工作通過(guò)計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出 ic 版圖或 pcb 版圖的整個(gè)過(guò)程的計(jì)算機(jī)上自動(dòng)處理完成。上世紀(jì)的最后 10 年以來(lái),微電子技術(shù)以驚人的速度發(fā)展,其工藝水平達(dá)到了深亞微米級(jí),在一個(gè)芯片上可集成數(shù)百萬(wàn)乃至上千萬(wàn)只晶體管,工作速度已經(jīng)可達(dá)到 ghz的時(shí)鐘頻率,這為制造出更大規(guī)模的,更快速度和更大信息容量的芯片系統(tǒng)提供了有利條件,于此同時(shí)也對(duì) eda 系統(tǒng)提出了更高的要求。此階段主要出現(xiàn)了以高級(jí)硬件語(yǔ)言描述、計(jì)算機(jī)系統(tǒng)仿真和綜合技術(shù)為特征的第三代
13、 eda 技術(shù),不僅大大地提高了系統(tǒng)的設(shè)計(jì)效率,而且使設(shè)計(jì)人員擺脫了大量基礎(chǔ)性驗(yàn)證測(cè)試工作,將精力主要集中在創(chuàng)造性的方案與概念的構(gòu)思上,下面簡(jiǎn)單介紹這個(gè)階段 eda 技術(shù)的主要特征:(1) 高層綜合的理論與方法取得較大進(jìn)展,將 eda 設(shè)計(jì)層次提高到行為級(jí),并劃分為邏輯綜合和測(cè)試綜合。(2) 采用硬件描述語(yǔ)言 hdl 來(lái)描述 10 萬(wàn)門(mén)以上的設(shè)計(jì),并形成了 vhdl 和verilog hdl 兩種 ieee 標(biāo)準(zhǔn)硬件描述語(yǔ)言。它們均支持不同層次的描述,使得復(fù)雜 ic的描述規(guī)范化,便于重復(fù)使用。它們多應(yīng)用于 fpga 及其他可編程邏輯器件的設(shè)計(jì)中。(3)可測(cè)性綜合設(shè)計(jì)。隨著 asic 的規(guī)模與復(fù)
14、雜性的增加,測(cè)試難度與費(fèi)用急劇基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)1增加,因此產(chǎn)生了將可測(cè)性電路結(jié)構(gòu)制造在 asic 芯片上的想法,于是開(kāi)發(fā)了掃描插入、內(nèi)建自測(cè)試、邊界掃描等可測(cè)性設(shè)計(jì)(dft)工具,并已集成到 eda 系統(tǒng)中。(4)建立并行設(shè)計(jì)工程 ce 框架結(jié)構(gòu)的 ide,以適應(yīng)當(dāng)今 asic 器件的一些特點(diǎn)。隨著百萬(wàn)門(mén)規(guī)模的復(fù)雜的可編程邏輯器件的推出及應(yīng)用,eda 技術(shù)在仿真、時(shí)序分析、集成電路自動(dòng)測(cè)試、高速印刷電路板設(shè)計(jì)及操作平臺(tái)的擴(kuò)展等方面都面臨著新的問(wèn)題,這些問(wèn)題實(shí)際上也是新一代 eda 技術(shù)的未來(lái)發(fā)展趨勢(shì)。用 vhdl 語(yǔ)言開(kāi)發(fā) fpga 的設(shè)計(jì)流程如圖 1-1 所示:確定
15、功能要求進(jìn)行設(shè)計(jì)源代碼模擬綜合優(yōu)化和布局布線(xiàn)布局布線(xiàn)后的設(shè)計(jì)模擬符合要求?符合要求?是是否否接受設(shè)計(jì)任務(wù)器件變成配置圖 1-1 可編程邏輯器件開(kāi)發(fā)設(shè)計(jì)流程圖接受任務(wù):進(jìn)行系統(tǒng)設(shè)計(jì)之前,先要由總體設(shè)計(jì)部門(mén)給出設(shè)計(jì)的任務(wù)和設(shè)計(jì)的一些要求。嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)2確定功能:對(duì)給出的設(shè)計(jì)任務(wù)和設(shè)計(jì)的一些要求進(jìn)行分析,確定出具體的功能及要求。進(jìn)行分析:決定設(shè)計(jì)中所要采用的設(shè)計(jì)方法。源代碼模擬:在設(shè)計(jì)中,采用 vhdl 硬件描述語(yǔ)言模擬器進(jìn)行源代碼模擬可以在早期開(kāi)發(fā)中發(fā)現(xiàn)設(shè)計(jì)上的缺陷和錯(cuò)誤,并及時(shí)進(jìn)行改正,既而節(jié)省大量的設(shè)計(jì)時(shí)間,縮短開(kāi)發(fā)周期。綜合、優(yōu)化和布局布線(xiàn):綜合是將較高層次的抽象描述轉(zhuǎn)化到較低級(jí)描
16、述的一種方法,即將設(shè)計(jì)的 vhdl 源描述轉(zhuǎn)化成底層電路表示。優(yōu)化是指將設(shè)計(jì)的時(shí)延縮小到最小和有效利用資源。布局布線(xiàn)就是把通過(guò)綜合和優(yōu)化所得到的邏輯,安放到一個(gè)邏輯器件中的過(guò)程,一個(gè)較好的布局布線(xiàn)過(guò)程就是將電路的相關(guān)部分放置在一起,以消除布線(xiàn)延遲。布局布線(xiàn)后的設(shè)計(jì)模擬:布局布線(xiàn)后的設(shè)計(jì)模擬與源代碼模擬不同,源代碼模擬只是對(duì)設(shè)計(jì)的邏輯功能進(jìn)行模擬,而布局布線(xiàn)后的設(shè)計(jì)模擬不僅可以對(duì)邏輯功能進(jìn)行驗(yàn)證,而且還能對(duì)設(shè)計(jì)時(shí)序功能進(jìn)行驗(yàn)證。器件編程和配置:器件編程就是將 vhdl 設(shè)計(jì)描述經(jīng)過(guò)模擬、綜合、優(yōu)化和布局布線(xiàn)的結(jié)果,經(jīng)過(guò)一定映射轉(zhuǎn)化成一個(gè)器件編程所用的數(shù)據(jù)文件格式。器件配置就是在功能仿真和時(shí)序仿真
17、正確的前提下,將綜合后的文件下載到具體的芯片中進(jìn)行電路驗(yàn)證。1.1.2 差錯(cuò)控制編碼技術(shù)介紹差錯(cuò)控制在數(shù)據(jù)通信過(guò)程中能發(fā)現(xiàn)或糾正差錯(cuò),把差錯(cuò)限制在盡可能小的允許范圍內(nèi)的技術(shù)和方法。在數(shù)字通信中常利用編碼方法對(duì)傳輸中產(chǎn)生的差錯(cuò)進(jìn)行控制,以提高數(shù)字消息傳輸?shù)臏?zhǔn)確性。差錯(cuò)控制系統(tǒng)的組成及其作用原理如圖。信源信道編碼器信道信道譯碼器信宿重傳控制反向信道重傳控制基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)3圖1-2 差錯(cuò)控制系統(tǒng)原理圖圖中虛線(xiàn)內(nèi)的部分就是數(shù)字通信中的差錯(cuò)控制系統(tǒng)10。當(dāng)沒(méi)有差錯(cuò)控制時(shí),信源輸出的數(shù)字序列將直接送住信道。由于信道中存在干擾,信道的輸出將發(fā)生差錯(cuò)。數(shù)字在傳輸中發(fā)生差錯(cuò)的概率是傳
18、輸準(zhǔn)確性的一個(gè)主要指標(biāo)。在數(shù)字通信中信道給定以后,如果誤碼率不能滿(mǎn)足要求,就要采取差錯(cuò)控制。按具體實(shí)現(xiàn)方法的不同,差錯(cuò)控制可以分為前向糾錯(cuò)法、反饋重傳法和混合法三種類(lèi)型10。(1)前向糾錯(cuò)法差錯(cuò)控制系統(tǒng)只包含信道編碼器和譯碼器。從信源輸出的數(shù)字序列在信道編碼器中被編碼,然后送往信道。由于信道編碼器使用的是糾錯(cuò)碼,譯碼器可以糾正傳輸中帶來(lái)的大部分差錯(cuò)而使信宿得到比較正確的序列。(2)反饋重傳法只利用檢錯(cuò)碼以發(fā)現(xiàn)傳輸中帶來(lái)的差錯(cuò),同時(shí)在發(fā)現(xiàn)差錯(cuò)以后通過(guò)反向信道通知發(fā)信端重新傳輸相應(yīng)的一組數(shù)字,以此來(lái)提高傳輸?shù)臏?zhǔn)確性。根據(jù)重傳控制方法的不同,反饋重傳法還可以分成若干種實(shí)現(xiàn)方式。其中最簡(jiǎn)單的一種稱(chēng)為等
19、待重傳方式。采用這種方式時(shí)發(fā)信端每送出一組數(shù)字就停下來(lái)等待收信端的回答。這時(shí)信道譯碼器如未發(fā)現(xiàn)差錯(cuò)便通過(guò)收信端重傳控制器和反向信道向發(fā)信端發(fā)出表示正確的回答。發(fā)信端收到后通過(guò)發(fā)信端重傳控制器控制信源傳輸下一組數(shù)字,否則信源會(huì)重新傳輸原先那組數(shù)字。 上述兩種方法的主要差別是:前向糾錯(cuò)不需要反向信道,而反饋重傳必須有反向信道。前向糾錯(cuò)利用糾錯(cuò)碼,而反饋重傳利用檢錯(cuò)碼。一般來(lái)講,糾錯(cuò)碼的實(shí)現(xiàn)比較復(fù)雜,可糾正的差錯(cuò)少,而檢錯(cuò)碼的實(shí)現(xiàn)比較容易,可發(fā)現(xiàn)的差錯(cuò)也多。前向糾錯(cuò)帶來(lái)的消息延遲是固定的,傳輸消息的速率也是固定的,而反饋重傳中的消息延遲和消息的傳輸速率都會(huì)隨重傳頻度的變化而變化。前向糾錯(cuò)不要求對(duì)信源
20、控制,而反饋重傳要求信源可控。經(jīng)前向糾錯(cuò)的被傳消息的準(zhǔn)確性仍然會(huì)隨著信道干擾的變化而發(fā)生很大變化,而經(jīng)反饋重傳的被傳消息的準(zhǔn)確性比較穩(wěn)定,一般不隨干擾的變化而變化。因此,兩者的適用場(chǎng)合很不相同。(3)混合法 在信道干擾較大時(shí),單用反饋重傳會(huì)因不斷重傳而使消息的傳輸速率下降過(guò)多,而僅嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)4用前向糾錯(cuò)又不能保證足夠的準(zhǔn)確性,這時(shí)兩者兼用比較有利,這就是混合法。此法所用的信道編碼是一種既能糾正部分差錯(cuò)又能發(fā)現(xiàn)大部分差錯(cuò)的碼。信道譯碼器首先糾正那些可以糾正的差錯(cuò),只對(duì)那些不能糾正但能發(fā)現(xiàn)的差錯(cuò)才要求重傳,這會(huì)大大降低重傳的次數(shù)。同時(shí),由于碼的檢錯(cuò)能力很強(qiáng),最后得到的數(shù)字消息的準(zhǔn)確性是
21、比較高的10-11。差錯(cuò)控制編碼又可分為檢錯(cuò)碼和糾錯(cuò)碼11。檢錯(cuò)碼只能檢查出傳輸中出現(xiàn)的差錯(cuò),發(fā)送方只有重傳數(shù)據(jù)才能糾正差錯(cuò);而糾錯(cuò)碼不僅能檢查出差錯(cuò)而且能自動(dòng)糾正差錯(cuò),避免了重傳。 1.2 課題的意義如今各種數(shù)字通信系統(tǒng)已廣泛用于我們的生產(chǎn)生活中。然而數(shù)字信號(hào)在傳輸過(guò)程中,由于受到干擾的影響,碼元波形將變壞。接收端收到后可能發(fā)生錯(cuò)誤判決。由乘性干擾引起的碼間串?dāng)_,可以采用均衡的辦法糾正。而加性干擾的影響則需要用其它辦法解決。在設(shè)計(jì)數(shù)字通信系統(tǒng)時(shí),應(yīng)該首先從合理選擇調(diào)制制度、解調(diào)方法以及發(fā)送功率等方面考慮,使加性干擾不足以影響達(dá)到誤碼率的要求。在仍不能滿(mǎn)足要求時(shí),就要考慮差錯(cuò)控制措施了,這就是
22、我們研究差錯(cuò)控制技術(shù)的意義所在?,F(xiàn)代電子產(chǎn)品面臨高功能、設(shè)計(jì)周期短、上市快的要求,其復(fù)雜度日益加深,一個(gè)電子系統(tǒng)可能由數(shù)萬(wàn)個(gè)中小規(guī)模的集成電路構(gòu)成,這就帶來(lái)了體積大、功耗大、可靠性差的問(wèn)題,解決這一問(wèn)題的有效方法就是來(lái)用可編程邏輯器件(pld)進(jìn)行設(shè)計(jì)??删幊踢壿嬈骷绕涫?fpga 器件,即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在 pal、gal、cpld等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn),具有集成度高、運(yùn)行速度快、可靠性強(qiáng)、設(shè)計(jì)方式靈活、快速等特點(diǎn),現(xiàn)已成為現(xiàn)代高層次電子設(shè)計(jì)方法的實(shí)現(xiàn)
23、載體。本課題研究了 eda 技術(shù)發(fā)展對(duì)電路設(shè)計(jì)方法的影響,深入探討了用 vhdl 語(yǔ)言和可編程邏輯器件 fpga 開(kāi)發(fā)的基本方法,為開(kāi)發(fā)專(zhuān)用集成電路提供了基本的設(shè)計(jì)步驟。作為應(yīng)用對(duì)象,進(jìn)一步開(kāi)發(fā)差錯(cuò)控制編碼技術(shù)。開(kāi)發(fā)這一系統(tǒng)的目的并不是為了實(shí)際的應(yīng)用或應(yīng)用到市場(chǎng)中去,只是通過(guò)一個(gè)簡(jiǎn)基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)5單系統(tǒng)的整體設(shè)計(jì)完成過(guò)程,深入體會(huì) fpga 技術(shù)優(yōu)勢(shì)性,了解這些編碼的特性及其應(yīng)用,使這幾類(lèi)編碼得到更廣泛的應(yīng)用。在數(shù)字系統(tǒng)過(guò)程中,為了減少誤碼率,使這些編碼技術(shù)很好的應(yīng)用到相關(guān)的一些領(lǐng)域中去,我總結(jié)出這些編碼的異同點(diǎn),為以后選擇這些編碼時(shí)在相關(guān)領(lǐng)域的應(yīng)用奠定一定的基礎(chǔ)。
24、1.3 差錯(cuò)控制編碼發(fā)展現(xiàn)狀1948年 c.e.香農(nóng)(shannon)1發(fā)表論文指出,只要采用適當(dāng)?shù)募m錯(cuò)碼,就可在多類(lèi)信道上傳輸消息。宣告了糾錯(cuò)碼的誕生。自 shannon 之后,人們不斷向逼近信道容量努力,取得重大發(fā)展,如分組碼,代數(shù)碼,卷積碼,網(wǎng)格碼和 turbo 碼。所能達(dá)到的性能也越來(lái)越接近 shannon 限間的距離?,F(xiàn)在利用 fpga 技術(shù)實(shí)現(xiàn)差錯(cuò)控制編碼的種類(lèi)很多,而且這些具有很強(qiáng)的糾錯(cuò)、檢錯(cuò)碼,被廣泛應(yīng)用到密碼學(xué)、通信、磁盤(pán)陣列及光存儲(chǔ)、衛(wèi)星通信、移動(dòng)通信、深空通信等眾多領(lǐng)域。1.4 課題研究的主要內(nèi)容漢明碼是一種能糾一位錯(cuò)的線(xiàn)性分組碼, 由于它的編譯碼簡(jiǎn)單,在數(shù)據(jù)通信和計(jì)算機(jī)
25、存儲(chǔ)系統(tǒng)中廣泛應(yīng)用,如在藍(lán)牙技術(shù)和硬盤(pán)陣列中。它的最小碼距為,可以糾正一位錯(cuò)誤,但對(duì)于兩位錯(cuò)不能檢測(cè),還可能會(huì)造成誤糾。盡管發(fā)生一位錯(cuò)的概率相對(duì)最高, 但在一些要求較高的應(yīng)用中漢明碼不能滿(mǎn)足要求。常用的能檢測(cè)兩位錯(cuò)同時(shí)能糾正一位錯(cuò)的糾錯(cuò)碼有(8,4)擴(kuò)展?jié)h明碼。crc 即循環(huán)冗余校驗(yàn)碼(cyclic redundancy check):是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。crc 常用硬件電路和軟件編程的方法實(shí)現(xiàn),采用 crc 串行算法,即一個(gè)時(shí)鐘周期內(nèi)有一位數(shù)據(jù)輸入, k 位長(zhǎng)度的信息元連續(xù)計(jì)算 k 次后得出校驗(yàn)碼. 這種傳統(tǒng) crc 的產(chǎn)生和
26、校驗(yàn)方法對(duì)于現(xiàn)代實(shí)時(shí)高速的通信系統(tǒng)已經(jīng)不能滿(mǎn)足其對(duì)于信息處理高速化、并行化的要求。 因此,本文提出一種新的并行 crc 編碼方法:用 vhdl 語(yǔ)言在 fpga 芯片上編程,實(shí)現(xiàn)在一個(gè)時(shí)鐘周期內(nèi)完成一次并行 crc 碼的計(jì)算及校驗(yàn). 該方法可以對(duì)不同長(zhǎng)度的數(shù)據(jù)進(jìn)行差錯(cuò)控制,而且大大縮短了 crc 碼的校驗(yàn)周期,為實(shí)現(xiàn)循環(huán)冗余校驗(yàn)提供了一種新思路.md5 的全稱(chēng)是 message-digest algorithm 5,在 90 年代初由 mit 的計(jì)算機(jī)科學(xué)實(shí)嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)6驗(yàn)室和 rsa data security inc 發(fā)明,經(jīng) md2、md3 和 md4 發(fā)展而來(lái)。message
27、-digest泛指字節(jié)串(message)的 hash 變換,就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的大整數(shù)。md5 還廣泛用于加密和解密技術(shù)上,在很多操作系統(tǒng)中,用戶(hù)的密碼是以 md5 值(或類(lèi)似的其它算法)的方式保存的。對(duì)于差錯(cuò)控制編碼技術(shù)的研究,我主要是研究(8,4)增余漢明碼編譯碼、crc 循環(huán)編碼和 md5 編碼,現(xiàn)在首先是分別研究這幾種編碼,對(duì)前兩種分別應(yīng)用 fpga 技術(shù)去實(shí)現(xiàn),用 vhdl 語(yǔ)言去編寫(xiě)代碼,然后再進(jìn)行編譯,下載,仿真及其去了解這些編碼;然后是對(duì) md5 碼進(jìn)行研究和算法分析;最后總結(jié)出它們的異同點(diǎn),以適應(yīng)在以后需要的時(shí)候選擇適當(dāng)?shù)木幋a應(yīng)用到相應(yīng)的領(lǐng)域中去?;?
28、fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)7第二章 基于 fpga 的實(shí)現(xiàn)差錯(cuò)控制編碼技術(shù)2.1 差錯(cuò)控制編碼的總體設(shè)計(jì)方案在具體設(shè)計(jì)過(guò)程中,采取自上而下的設(shè)計(jì)思路。首先根據(jù)整體的規(guī)劃設(shè)計(jì)出模塊的外部輸入輸出引腳定義以及功能,也就是設(shè)計(jì)出這一個(gè)小芯片的外部特性;然后根據(jù)設(shè)計(jì)的這一個(gè)芯片的外部特性以及功能設(shè)計(jì)實(shí)現(xiàn)芯片內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。2.2(8,4)增余漢明碼的差錯(cuò)控制編碼譯碼設(shè)計(jì) 2.2.1 漢明碼編碼譯碼原理漢明碼(hamming code)是由 richard hamming 于 1950 年提出的,它屬于線(xiàn)性分組編碼方式,用以糾正單個(gè)錯(cuò)誤的線(xiàn)性分組碼,在軟件無(wú)線(xiàn)電中應(yīng)用廣泛。設(shè)原代碼的碼長(zhǎng)為 k
29、 比特, 附加糾錯(cuò)編碼部分為 r 比特,當(dāng)碼字長(zhǎng)度 n=2r-1,r=n-k,r=1,2時(shí)就稱(chēng)這種線(xiàn)性分組碼為漢明碼。其基本原理是,將信息碼元與監(jiān)督碼元通過(guò)線(xiàn)性方程式聯(lián)系起來(lái),每一個(gè)監(jiān)督位被編在傳輸碼字的特定比特位置上。系統(tǒng)對(duì)于錯(cuò)誤的數(shù)位無(wú)論是原有信息位中的,還是附加監(jiān)督位中的都能把它分離出來(lái)。由漢明碼的性質(zhì)可知,(8,4) 增余漢明碼能糾 1 位錯(cuò),檢 2 位錯(cuò)。 2.2.2 (8,4)增余漢明碼的算法與實(shí)現(xiàn)(8,4)增余漢明碼全碼碼元數(shù) n=8,其中信息碼元數(shù) k=4 ,監(jiān)督碼元數(shù) d=4,其監(jiān)督矩陣為:01111000101101001101001011111111h對(duì)于任何給定的信息碼
30、組,都可以由下式求出相應(yīng)的監(jiān)督碼元,即:嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)812345678011110001011010001101001011111111xxxxxxxx若用方程式來(lái)表示, 則上式可以寫(xiě)成: 從而形成5234613471248123;,xxxxxxxxxxxxxxxx全碼這就是(8,4)增余漢明碼的編碼過(guò)程。12345678x x x x x x x x(8,4)漢明碼編碼的頂層設(shè)計(jì)模塊如圖所示:圖2-1 漢明碼編碼模塊圖可以看出,輸入為四位并行輸入,編碼后為一個(gè)八位的并行輸出。(8,4)漢明碼編碼的底層設(shè)計(jì)模塊如圖所示:基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)9圖2-2 漢明碼編碼
31、模塊底層關(guān)系圖底部的各個(gè)分模塊為兩位的輸入模通過(guò)各種邏輯運(yùn)算,并最終組合在一起形成一個(gè) 8 位的最終編碼輸出。2.2.3 (8,4)漢明碼編碼波形仿真圖:圖 2-3 漢明碼編碼仿真圖2.2.4 (8,4)漢明碼譯碼算法實(shí)現(xiàn)n,k,d分組碼的譯碼步驟可歸結(jié)為以下三步:1) 由接收到的 r,計(jì)算伴隨式 s=rht;2) 若 s=0,則認(rèn)為接收無(wú)誤。若 s0,則由找出錯(cuò)誤圖樣 e;3) 由 e和 r 找出 c=r-e。漢明碼的譯碼較簡(jiǎn)單,它可由 s 直接得到錯(cuò)誤圖樣 e ,其他分組碼如何由 s 求得e就比較復(fù)雜。而一個(gè)譯碼器的復(fù)雜性及其譯碼錯(cuò)誤概率也是由這一步?jīng)Q定的。設(shè)接收方收到發(fā)送方傳來(lái)的一個(gè)完整
32、的全碼為:x11,x22,x33,x44,x55,x66,x77,x88,根據(jù)漢明碼校驗(yàn)矩陣: 11111222223488880111100010110100.11010010.11111111sxxsxxshssxxs1 s2 s3 s4為(8 ,4) 增余漢明碼的校驗(yàn)子。當(dāng) s1 s2 s3 s4 =0000 時(shí),傳送無(wú)誤;當(dāng)s1 s2 s3 s4為偶數(shù)時(shí),可判接收到的全碼中有兩位錯(cuò)誤,但不能判斷哪兩位錯(cuò),可要求發(fā)送方重新發(fā)送全碼;當(dāng) s1 s2 s3 s4為奇數(shù)時(shí),可根據(jù)表 1 判斷哪一位錯(cuò),然后通過(guò)軟件來(lái)嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)10糾錯(cuò),完成譯碼過(guò)程。表2-1 (8,4)漢明碼校驗(yàn)參數(shù)
33、錯(cuò)位s1s2s3s4錯(cuò)位s1s2s3s41011151001210116010131101700114111180001譯碼算法的流程圖如圖所示:s1s2s3s4=0s1s2s3s4=奇數(shù)有一位錯(cuò),糾錯(cuò)沒(méi)錯(cuò),輸出信息位兩位錯(cuò),重發(fā)noyes初始化 s1 s2 s3 s4輸出信息位圖2-4 漢明碼譯碼流程圖根據(jù)上述流程圖,用 vhdl 語(yǔ)言描述(8,4)漢明譯碼算法功能模塊如圖所示:圖2-5 漢明碼譯碼頂層模塊圖基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)11hamin 為漢明 8 位數(shù)據(jù)輸入,dataout 為漢明 4 位數(shù)據(jù)輸出,sec、ded、ne 為診斷輸出。2.2.5(8,4)漢明碼編碼
34、波形仿真圖:圖2-6 漢明碼譯碼仿真圖可以看出,通過(guò)譯碼模塊,8 位全碼又重新譯碼成原輸入數(shù)據(jù)。2.2.6 (8,4)漢明碼編碼譯碼綜合模塊通過(guò)原件例化,對(duì)編碼、譯碼電路進(jìn)行連接得到綜合頂層模塊如下:圖2-7 漢明碼編碼譯碼綜合頂層模塊圖對(duì)頂層模塊進(jìn)行細(xì)化,如圖所示:嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)12圖2-8 漢明碼編碼譯碼綜合底層模塊圖2.2.7 (8,4)漢明碼編碼譯碼綜合波形仿真圖圖2-9 漢明碼綜合模塊仿真圖2.3 循環(huán)冗余差錯(cuò)控制校驗(yàn)碼的設(shè)計(jì)2.3.1 crc 循環(huán)校驗(yàn)碼編碼校驗(yàn)原理crc 校驗(yàn)采用多項(xiàng)式編碼方法。被處理的數(shù)據(jù)塊可以看作是一個(gè) n 階的二進(jìn)制多項(xiàng)式,如一個(gè) 8 位二進(jìn)制數(shù) 1
35、0110101 可以表示為:x7+x5+x4+x2+1。多項(xiàng)式乘除法運(yùn)算過(guò)程與普通代數(shù)多項(xiàng)式的乘除法相同。多項(xiàng)式的加減法運(yùn)算以 2 為模,加減時(shí)不進(jìn)位、錯(cuò)位和邏輯異或運(yùn)算一致。采用 crc 校驗(yàn)時(shí),發(fā)送方和接收方用同一個(gè)生成多項(xiàng)式g(x),并且 g(x)的首位和最后一位的系數(shù)必須為 1。crc 的處理方法是:發(fā)送方以g(x)去除 t(x) ,得到余數(shù)作為 crc 校驗(yàn)碼。校驗(yàn)時(shí),以計(jì)算的校正結(jié)果是否為 0為據(jù),判斷數(shù)據(jù)幀是否出錯(cuò)。crc 校驗(yàn)可以 100地檢測(cè)出所有奇數(shù)個(gè)隨機(jī)錯(cuò)誤和長(zhǎng)度小于等于 k(k 為 g(x)的階數(shù))的突發(fā)錯(cuò)誤。所以 crc 的生成多項(xiàng)式的階數(shù)越高,那么誤判的概率就越小。
36、基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)132.3.2 crc 循環(huán)碼編碼規(guī)則crc 編碼實(shí)際上是將代發(fā)送的 m 位二進(jìn)制多項(xiàng)式 t(x)轉(zhuǎn)換成了可以被 g(x)除盡的 m+r 位二進(jìn)制多項(xiàng)式 t(x),所以解碼時(shí)可以用接受到的數(shù)據(jù)去除 g(x) ,如果余數(shù)位零,則表示傳輸過(guò)程沒(méi)有錯(cuò)誤;如果余數(shù)不為零,則在傳輸過(guò)程中肯定存在錯(cuò)誤。許多 crc 的硬件解碼電路就是按這種方式進(jìn)行檢錯(cuò)的。同時(shí) t(x) 可以看做是由t(x)和 crc 校驗(yàn)碼的組合,所以解碼時(shí)將接收到的二進(jìn)制數(shù)據(jù)去掉尾部的 r 位數(shù)據(jù),得到的就是原始數(shù)據(jù)。2.3.3 crc 循環(huán)碼算法分析crc 校驗(yàn)碼的編碼方法是用待發(fā)送的二進(jìn)制
37、數(shù)據(jù) t(x)除以生成多項(xiàng)式 g(x) ,將最后的余數(shù)作為 crc 校驗(yàn)碼。其實(shí)現(xiàn)步驟如下:(1)設(shè)待發(fā)送的數(shù)據(jù)塊是 m 位的二進(jìn)制多項(xiàng)式 t(x) ,生成多項(xiàng)式為 r 階的g(x) 。在數(shù)據(jù)塊的末尾添加 r 個(gè) 0,數(shù)據(jù)塊的長(zhǎng)度增加到 m+r 位,對(duì)應(yīng)的二進(jìn)制多項(xiàng)式為 t(x)。(2) 用生成多項(xiàng)式 g(x)去除 t(x) ,求得余數(shù)為階數(shù)為 r-1 的二進(jìn)制多項(xiàng)式y(tǒng)(x) 。此二進(jìn)制多項(xiàng)式 y(x)就是 t(x)經(jīng)過(guò)生成多項(xiàng)式 g(x)編碼的 crc 校驗(yàn)碼。(3) 用 t(x) 以模 2 的方式減去 y(x) ,得到二進(jìn)制多項(xiàng)式 t(x) 。t(x) 就是包含了 crc 校驗(yàn)碼的待發(fā)送字
38、符串。由于 crc-32、crc-16、ccitt 和 crc-4 的編碼過(guò)程基本一致,只有位數(shù)和生成多項(xiàng)式不一樣。為了敘述簡(jiǎn)單,用一個(gè) crc-4 編碼的例子來(lái)說(shuō)明 crc 的編碼過(guò)程。設(shè)待發(fā)送的數(shù)據(jù) t(x)為 12 位的二進(jìn)制數(shù)據(jù) 100100011100;crc-4 的生成多項(xiàng)式為 g(x)=x4+x+1,階數(shù) r 為 4,即 10011。首先在 t(x)的末尾添加 4 個(gè) 0 構(gòu)成x4t(x),數(shù)據(jù)塊就成了 1001000111000000。然后用 g(x)去除 x4t(x),不用管商是多少,只需要求得余數(shù) y(x) 。表 1 給出了除法過(guò)程。表 2-1 求校驗(yàn)碼的過(guò)程表嘉興學(xué)院本科
39、生畢業(yè)設(shè)計(jì)14 除數(shù)次數(shù) 被除數(shù)/ g(x)/結(jié)果 余數(shù)1 0010001110000001 001100 0001001110000001001110000001 001110000001 001110 0000100000010000001 0000001 001120 0011001100從表 2-1 中可以看出,crc 編碼實(shí)際上是一個(gè)循環(huán)移位的模 2 運(yùn)算。對(duì) crc-4,我們假設(shè)有一個(gè) 5 bits 的寄存器,通過(guò)反復(fù)的移位和進(jìn)行 crc 的除法,那么最終該寄存器中的值去掉最高一位就是我們所要求的余數(shù)。2.3.4crc 校驗(yàn)生成模塊的設(shè)計(jì)實(shí)現(xiàn)crc 校驗(yàn)生成模塊是在 xilinx
40、ise 平臺(tái)編程實(shí)現(xiàn),程序首先執(zhí)行了 11 次異或運(yùn)算,流程圖如 2-10 所示,然后在作一次異或運(yùn)算,得到的記過(guò)就是 crc 校驗(yàn)碼基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)15結(jié)束crcvar30復(fù)制到變量c 中rdatacrc 高 5 位復(fù)制到變量 crcvari=11rcrcvar(4)=?crcvar30與 g(x)系數(shù)的低 4位異或結(jié)果放在變量 c 中crcvar40=c&rdatacrci-1i=i-1i=0?yesnoyesno12 位信息左移 4 位后放到 rdatacrc圖 2-10 crc 校驗(yàn)生成模塊流程圖crc 校驗(yàn)生成模塊如圖 x 所示. 其中 sdata 是 12
41、 位待發(fā)送信息,datald 是sdata 的裝載信號(hào),clk 是時(shí)鐘信號(hào),datacrco 是附加上 4 位 crc 校驗(yàn)碼的 16 位 crc 碼,hsend 是與檢錯(cuò)模塊的握手信號(hào)。嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)16圖2-11 crc校驗(yàn)生成模塊2.3.5 crc 校驗(yàn)生成模塊仿真波形圖圖2-12 crc校驗(yàn)生成模塊仿真波形圖基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)172.3.6 crc 校驗(yàn)接收模塊的設(shè)計(jì)實(shí)現(xiàn)crc 校驗(yàn)檢錯(cuò)模塊編程思想與生成模塊類(lèi)似. 從接收到的 crc 碼中提取出信息碼,將信息碼與生成多項(xiàng)式進(jìn)行異或運(yùn)算,最后判斷得到的余數(shù)與 crc 生成模塊中得到的校驗(yàn)碼是否相同,如果相
42、同則認(rèn)為信息發(fā)送正確,將輸出的誤碼警告信號(hào) error 設(shè)置為“0”;反之,則以為信息發(fā)送錯(cuò)誤,將 error 設(shè)置為“1” 。crc 校驗(yàn)檢錯(cuò)模塊如圖 x 所示,其端口數(shù)據(jù)說(shuō)明如下:rdata :接收模塊(檢錯(cuò)模塊) 接收的 12 位有效信息數(shù)據(jù);datafini :數(shù)據(jù)接收校驗(yàn)完成;clk :時(shí)鐘信號(hào);datacrci :附加上 5 位 crc 校驗(yàn)碼的 17 位 crc 碼;error :誤碼警告信號(hào);hrecv :與生成模塊的握手信號(hào)。圖 2-13 crc 校驗(yàn)接收模塊的設(shè)計(jì)實(shí)現(xiàn)嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)182.3.7 crc 校驗(yàn)接收模塊仿真波形圖圖 2-14 crc 校驗(yàn)接收模塊仿真波
43、形圖2.4 md5 碼的算法分析md5 的全稱(chēng)是 message-digest algorithm 5,就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的大整數(shù)。即 md5 將任意長(zhǎng)度的“字節(jié)串”變換成一個(gè) 128bit 的大整數(shù),并且它是一個(gè)不可逆的字符串變換算法,換句話(huà)說(shuō)就是,即使你看到源程序和算法描述,也無(wú)法將一個(gè) md5 的值變換回原始的字符串,從數(shù)學(xué)原理上說(shuō),是因?yàn)樵嫉淖址袩o(wú)窮多個(gè),這有點(diǎn)象不存在反函數(shù)的數(shù)學(xué)函數(shù)。2.5.1 md5 的引言 md5 算法是通過(guò)數(shù)學(xué)運(yùn)算,把不同長(zhǎng)度的信息串轉(zhuǎn)化到 128 位編碼中,形成 hash 值,通基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)19過(guò)比較這
44、個(gè)數(shù)值是否正確,來(lái)確定通信雙方的合法性。這也可以說(shuō)是數(shù)字簽名,在數(shù)據(jù)傳輸后,可以通過(guò)比較 hash 值來(lái)判斷信息途中是否被截獲修改,是否由合法的發(fā)送人發(fā)送或者合法的接收人接收等。用這種方法,可以防止密鑰丟失的問(wèn)題,因?yàn)樗募用懿糠质请S機(jī)生成的,如果沒(méi)有正確的 hash 值根本就無(wú)法解開(kāi)加密部分,而且它還具備了數(shù)字簽名的能力,可以證明發(fā)送方和接收方的合法身份,具有不可抵賴(lài)性,很適用于商業(yè)信息的傳遞。md5 的典型應(yīng)用是對(duì)一段信息(message)產(chǎn)生信息摘要(message-digest) ,以防止被篡改。它還被廣泛用于加密和解密技術(shù)上。md5(rfc1321)是于 90 年代由 ron riv
45、est 在 mit 提出來(lái)的。我們現(xiàn)在來(lái)了解一下 md5 的原理。2.5.2 md5 的原理該算法輸入任意長(zhǎng)度的消息,輸出 128 位消息摘要,處理以 512 位輸入數(shù)據(jù)塊為單位。處理報(bào)文摘要的過(guò)程如下:步驟 1:添加填充位(最高位為 1 和其余為 0)。在消息的最后添加適當(dāng)?shù)奶畛湮皇沟脭?shù)據(jù)位的長(zhǎng)度滿(mǎn)足與 448 模 512 同余,即:length=448mod512。步驟 2:添加長(zhǎng)度。原始消息長(zhǎng)度(二進(jìn)制位的個(gè)數(shù)),用 64 位表示,并附加在步驟 1的結(jié)果后。由這兩個(gè)步驟得到長(zhǎng)度為 512 整數(shù)倍的報(bào)文。表示為 l 個(gè) 512 位的數(shù)據(jù)塊:y0,y1 ,yl-1.其長(zhǎng)度為 l512bits
46、.令 n=l16,則長(zhǎng)度為 n 個(gè) 32 位的字。令m0n-1表示以字為單位的消息表示。步驟 3:初始化 md 緩沖區(qū)。一個(gè) 128 位 md 緩沖區(qū)用以保存中間和最終散列函數(shù)的結(jié)果.它可以表示為 4 個(gè) 32 位的寄存器(a,b,c,d)。寄存器初始化為以下的 16 進(jìn)制值。a=67452301b=efcdab89c=98badcfed=10325476寄存器內(nèi)容word a : 01 23 45 67word b: 89 abcd ef嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)20word c: fe dc ba 98word d: 76 54 32 10采用小數(shù)在前的格式存儲(chǔ),即將字的低字節(jié)放在低地址字節(jié)上
47、步驟 4:處理消息塊(512 位=16 個(gè) 32 位字)。一個(gè)壓縮函數(shù)是本算法的核心(hmd5),它包括 4 輪處理.輪處理具有相似的結(jié)構(gòu),但每次使用不同的基本邏輯函數(shù),記為f,g,h,i.每一輪以當(dāng)前的 512 位數(shù)據(jù)塊(yq)和 128 位緩沖值 abcd 作為輸入,并修改緩沖值的內(nèi)容。每次使用 64 元素表 t164四分之一。該 t 表 sin 函數(shù)構(gòu)造而成。t 的第 i 個(gè)元素表示為 ti,其值等于 232abs(sin(i)的整數(shù)部分,其中 i 是弧度.于abs(sin(i)是一個(gè) 0 到 1 之間的數(shù),t 的每一個(gè)元素是一個(gè)可以表示成 32 位的整數(shù)。t 表提供了隨機(jī)化的 32 位
48、模板,消除了在輸入數(shù)據(jù)中的任何規(guī)律性的特征t 表t 1 = d76aa478 t 49 = f4292244t 2 = e8c7b756 t 50 = 432aff97t 3 = 242070db t 51 = ab9423a7t 4 = c1bdceee t 52 = fc93a039. . . . . .t 16 = 49b40821 t 64 = eb86d391步驟 5:輸出結(jié)果。所有 l 個(gè) 512 位數(shù)據(jù)塊處理完畢后,最后的結(jié)果就是 128 位消息摘要。2.5.3 md5 算法的安全性考慮 對(duì)強(qiáng)行攻擊的安全性:使用強(qiáng)行技術(shù),產(chǎn)生任何一個(gè)報(bào)文使其摘要等于給定保文摘要的難度對(duì) md5
49、是 2128 數(shù)量級(jí)的操作,產(chǎn)生相同報(bào)文摘要的兩個(gè)報(bào)文的難度是 264 數(shù)量級(jí)對(duì)密碼分析的安全性:對(duì)單循環(huán)的 md5,使用不同的密碼分析可能在合理的時(shí)間內(nèi)找出能夠產(chǎn)生相同摘要的兩個(gè)報(bào)文,這個(gè)結(jié)果被證明對(duì)四個(gè)循環(huán)中的任意一循環(huán)也成立。目前,md5 已被認(rèn)為是易受攻擊的。事實(shí)上,md5 算法已有被德國(guó)解密專(zhuān)家攻破的紀(jì)錄,據(jù)稱(chēng),一個(gè)價(jià)值幾百萬(wàn)美元的計(jì)算機(jī)系統(tǒng)可以在幾周內(nèi)尋找出已被暗碼處理的原文。在基于 fpga 的差錯(cuò)控制編碼的設(shè)計(jì)與實(shí)現(xiàn)21對(duì)安全要求很高的場(chǎng)合使用仍存在風(fēng)險(xiǎn)。2.5.4 md5 的應(yīng)用md5 碼主要是應(yīng)用在加密和解密兩個(gè)方面,使用的是非常的廣泛,應(yīng)用的領(lǐng)域也是非常的多。在我們的解壓
50、縮文件中,有很多就是應(yīng)用到了 md5 碼,因?yàn)樗谋C芄ぷ骶哂幸淮涡员C芄ぷ?,不僅保留了一次性口令的優(yōu)點(diǎn),而且克服了序列密碼一次性口令系統(tǒng)中的小數(shù)攻擊和 ip 地址欺騙攻擊的漏洞,同時(shí)又避免了 rsa 算法中大整數(shù)質(zhì)因數(shù)分解的計(jì)算效率問(wèn)題。嘉興學(xué)院本科生畢業(yè)設(shè)計(jì)22第三章 基于 fpga 的實(shí)現(xiàn)差錯(cuò)控制編碼技術(shù)開(kāi)發(fā)體會(huì)3.1 算法的重要在剛開(kāi)始設(shè)計(jì)這個(gè)畢設(shè)的時(shí)候,我可以說(shuō)的這個(gè)課題不甚了解,有點(diǎn)無(wú)從下手的感覺(jué),通過(guò)上網(wǎng)查詢(xún)和楊老師的教導(dǎo),我的課題是一個(gè)研究性的課題,所以我就要搜集好幾種編碼來(lái)分別進(jìn)行研究,來(lái)找出它們的異同點(diǎn),首先找到的是漢明碼和 crc 碼,這兩種廣泛應(yīng)用于數(shù)字通訊中的編碼,但
51、是我要用 fpga 去實(shí)現(xiàn),這種用硬件實(shí)現(xiàn)起來(lái)傳輸速度會(huì)很快,可是在這之中算法就是一個(gè)很難的問(wèn)題,我只有理解了算法才能用vhdl 的語(yǔ)言來(lái)做出來(lái),包括我后來(lái)做的 md5 編碼,算法也是相當(dāng)?shù)闹匾?,而且我覺(jué)得很難,這些花費(fèi)我很多的時(shí)間。 算法可以說(shuō)是一種編碼的靈魂,沒(méi)有算法我是不可能實(shí)現(xiàn)我的研究課題的,這些涉及到很多別的問(wèn)題,不是很容易明白,我就要不斷地去分析和查找書(shū)籍,找出這些原理的所在,為下面的工作做準(zhǔn)備。3.2 硬件對(duì)軟件的制約影響在畢業(yè)設(shè)計(jì)的過(guò)程中,尤其到了硬件調(diào)試的時(shí)候,還有一點(diǎn)感受比較深刻,那就是硬件對(duì)軟件設(shè)計(jì)的影響。由于試驗(yàn)臺(tái)硬件和小組設(shè)計(jì)試驗(yàn)板硬件性能不完全相同,致使軟件系統(tǒng)從試驗(yàn)臺(tái)到試驗(yàn)板的過(guò)程中遇到了很多意想不到的問(wèn)題,最終還是通過(guò)修改軟件來(lái)適應(yīng)硬件的標(biāo)準(zhǔn)。3.3 調(diào)試的重要性程序?qū)懗鰜?lái)之后,需要進(jìn)行大量的硬件調(diào)試工作,否則的話(huà),一旦出現(xiàn)問(wèn)題,就搞不清楚問(wèn)題究竟是軟件設(shè)計(jì)的錯(cuò)誤還是硬件電路板的錯(cuò)誤,所以首先解決硬件調(diào)試是必須的。在調(diào)試的過(guò)程中,需要有清晰的邏輯思維作基礎(chǔ),對(duì)硬件知
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 樹(shù)木買(mǎi)賣(mài)合同范例5篇文件
- 碧桂園收購(gòu)合同范例
- 交定金認(rèn)購(gòu)合同范例
- 水利新版合同范例
- 外墻保溫裝飾合同范例
- 燃?xì)饩用裼脩?hù)合同范例
- 竹欄加工制作合同范例
- 2025模具制造合同范本
- 新疆旅游紙質(zhì)合同范例
- 礦山出租協(xié)議合同范例
- 2024商業(yè)地產(chǎn)策劃定位和規(guī)劃設(shè)計(jì)合同書(shū)模板
- 玉溪大紅山鐵礦二期北采區(qū)采礦施工組織設(shè)計(jì)
- 必刷題2024六年級(jí)英語(yǔ)上冊(cè)語(yǔ)法規(guī)則專(zhuān)項(xiàng)專(zhuān)題訓(xùn)練(含答案)
- 2024新教科版四年級(jí)上冊(cè)科學(xué)知識(shí)點(diǎn)總結(jié)精簡(jiǎn)版
- 人工智能在礦產(chǎn)勘探中的應(yīng)用分析篇
- 中西文化鑒賞智慧樹(shù)知到答案2024年鄭州大學(xué)
- 2024國(guó)開(kāi)大學(xué)《經(jīng)濟(jì)學(xué)基礎(chǔ)》形考任務(wù)2答案
- 2024山東省招聘社區(qū)工作者試題及答案
- 14《答謝中書(shū)書(shū)》對(duì)比閱讀-2024-2025中考語(yǔ)文文言文閱讀專(zhuān)項(xiàng)訓(xùn)練(含答案)
- DL∕T 5494-2014 電力工程場(chǎng)地地震安全性評(píng)價(jià)規(guī)程
- 顱腦外傷病人的急救和護(hù)理
評(píng)論
0/150
提交評(píng)論