FPGA的差错控制编码的设计与实现 精品.doc_第1页
FPGA的差错控制编码的设计与实现 精品.doc_第2页
FPGA的差错控制编码的设计与实现 精品.doc_第3页
FPGA的差错控制编码的设计与实现 精品.doc_第4页
FPGA的差错控制编码的设计与实现 精品.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目:基于FPGA的差错控制编码的设计与实现第一章 绪论1.1课题的来源1.1.1 EDA技术综述由于大规模集成电路开发技术的应用和发展以及电子产品市场运作的进一步加快,涉及诸如通信、智能仪表、医药设备、军事、民用电器等领域的现代电子科学技术与应用已进入了一个崭新的阶段,电子设计自动化已成为当今电子设计领域的主流。电子设计自动化技术是在电子计算机辅助设计技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,整合了应用电子技术、计算机技术、信息处理等最新成果,进行电子产品的自动设计。利用电子设计自动化工具,电子设计师可以将大量工作通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。上世纪的最后10年以来,微电子技术以惊人的速度发展,其工艺水平达到了深亚微米级,在一个芯片上可集成数百万乃至上千万只晶体管,工作速度已经可达到GHz的时钟频率,这为制造出更大规模的,更快速度和更大信息容量的芯片系统提供了有利条件,于此同时也对EDA系统提出了更高的要求。此阶段主要出现了以高级硬件语言描述、计算机系统仿真和综合技术为特征的第三代EDA技术,不仅大大地提高了系统的设计效率,而且使设计人员摆脱了大量基础性验证测试工作,将精力主要集中在创造性的方案与概念的构思上,下面简单介绍这个阶段EDA技术的主要特征:(1) 高层综合的理论与方法取得较大进展,将EDA设计层次提高到行为级,并划分为逻辑综合和测试综合。(2) 采用硬件描述语言HDL来描述10万门以上的设计,并形成了VHDL和Verilog HDL两种IEEE标准硬件描述语言。它们均支持不同层次的描述,使得复杂IC的描述规范化,便于重复使用。它们多应用于FPGA及其他可编程逻辑器件的设计中。(3)可测性综合设计。随着ASIC的规模与复杂性的增加,测试难度与费用急剧增加,因此产生了将可测性电路结构制造在ASIC芯片上的想法,于是开发了扫描插入、内建自测试、边界扫描等可测性设计(DFT)工具,并已集成到EDA系统中。(4)建立并行设计工程CE框架结构的IDE,以适应当今ASIC器件的一些特点。随着百万门规模的复杂的可编程逻辑器件的推出及应用,EDA技术在仿真、时序分析、集成电路自动测试、高速印刷电路板设计及操作平台的扩展等方面都面临着新的问题,这些问题实际上也是新一代EDA技术的未来发展趋势。用VHDL语言开发FPGA的设计流程如图1-1所示:确定功能要求进行设计源代码模拟综合优化和布局布线布局布线后的设计模拟符合要求?符合要求?是是否否接受设计任务器件变成配置图1-1 可编程逻辑器件开发设计流程图接受任务:进行系统设计之前,先要由总体设计部门给出设计的任务和设计的一些要求。确定功能:对给出的设计任务和设计的一些要求进行分析,确定出具体的功能及要求。进行分析:决定设计中所要采用的设计方法。源代码模拟:在设计中,采用VHDL硬件描述语言模拟器进行源代码模拟可以在早期开发中发现设计上的缺陷和错误,并及时进行改正,既而节省大量的设计时间,缩短开发周期。综合、优化和布局布线:综合是将较高层次的抽象描述转化到较低级描述的一种方法,即将设计的VHDL源描述转化成底层电路表示。优化是指将设计的时延缩小到最小和有效利用资源。布局布线就是把通过综合和优化所得到的逻辑,安放到一个逻辑器件中的过程,一个较好的布局布线过程就是将电路的相关部分放置在一起,以消除布线延迟。布局布线后的设计模拟:布局布线后的设计模拟与源代码模拟不同,源代码模拟只是对设计的逻辑功能进行模拟,而布局布线后的设计模拟不仅可以对逻辑功能进行验证,而且还能对设计时序功能进行验证。器件编程和配置:器件编程就是将VHDL设计描述经过模拟、综合、优化和布局布线的结果,经过一定映射转化成一个器件编程所用的数据文件格式。器件配置就是在功能仿真和时序仿真正确的前提下,将综合后的文件下载到具体的芯片中进行电路验证。1.1.2差错控制编码技术介绍差错控制在数据通信过程中能发现或纠正差错,把差错限制在尽可能小的允许范围内的技术和方法。在中常利用编码方法对传输中产生的差错进行控制,以提高数字消息传输的准确性。差错控制系统的组成及其作用原理如图。信源信道编码器信道信道译码器信宿重传控制反向信道重传控制图1-2 差错控制系统原理图图中虚线内的部分就是数字通信中的差错控制系统10。当没有差错控制时,输出的数字序列将直接送住。由于信道中存在干扰,信道的输出将发生差错。数字在传输中发生差错的概率是传输准确性的一个主要指标。在数字通信中信道给定以后,如果误码率不能满足要求,就要采取差错控制。按具体实现方法的不同,差错控制可以分为前向纠错法、反馈重传法和混合法三种类型10。(1)前向纠错法差错控制系统只包含信道编码器和译码器。从信源输出的数字序列在信道编码器中被编码,然后送往信道。由于信道编码器使用的是,译码器可以纠正传输中带来的大部分差错而使信宿得到比较正确的序列。(2)反馈重传法只利用检错码以发现传输中带来的差错,同时在发现差错以后通过反向信道通知发信端重新传输相应的一组数字,以此来提高传输的准确性。根据重传控制方法的不同,反馈重传法还可以分成若干种实现方式。其中最简单的一种称为等待重传方式。采用这种方式时发信端每送出一组数字就停下来等待收信端的回答。这时信道译码器如未发现差错便通过收信端重传控制器和反向信道向发信端发出表示正确的回答。发信端收到后通过发信端重传控制器控制信源传输下一组数字,否则信源会重新传输原先那组数字。上述两种方法的主要差别是:前向纠错不需要反向信道,而反馈重传必须有反向信道。前向纠错利用纠错码,而反馈重传利用检错码。一般来讲,纠错码的实现比较复杂,可纠正的差错少,而检错码的实现比较容易,可发现的差错也多。前向纠错带来的消息延迟是固定的,传输消息的速率也是固定的,而反馈重传中的消息延迟和消息的传输速率都会随重传频度的变化而变化。前向纠错不要求对信源控制,而反馈重传要求信源可控。经前向纠错的被传消息的准确性仍然会随着信道干扰的变化而发生很大变化,而经反馈重传的被传消息的准确性比较稳定,一般不随干扰的变化而变化。因此,两者的适用场合很不相同。(3)混合法在信道干扰较大时,单用反馈重传会因不断重传而使消息的传输速率下降过多,而仅用前向纠错又不能保证足够的准确性,这时两者兼用比较有利,这就是混合法。此法所用的信道编码是一种既能纠正部分差错又能发现大部分差错的码。信道译码器首先纠正那些可以纠正的差错,只对那些不能纠正但能发现的差错才要求重传,这会大大降低重传的次数。同时,由于码的检错能力很强,最后得到的数字消息的准确性是比较高的10-11。又可分为检错码和纠错码11。检错码只能检查出传输中出现的差错,发送方只有重传数据才能纠正差错;而纠错码不仅能检查出差错而且能自动纠正差错,避免了重传。 1.2课题的意义如今各种数字通信系统已广泛用于我们的生产生活中。然而数字信号在传输过程中,由于受到干扰的影响,码元波形将变坏。接收端收到后可能发生错误判决。由乘性干扰引起的码间串扰,可以采用均衡的办法纠正。而加性干扰的影响则需要用其它办法解决。在设计数字通信系统时,应该首先从合理选择调制制度、解调方法以及发送功率等方面考虑,使加性干扰不足以影响达到误码率的要求。在仍不能满足要求时,就要考虑差错控制措施了,这就是我们研究差错控制技术的意义所在。现代电子产品面临高功能、设计周期短、上市快的要求,其复杂度日益加深,一个电子系统可能由数万个中小规模的集成电路构成,这就带来了体积大、功耗大、可靠性差的问题,解决这一问题的有效方法就是来用可编程逻辑器件(PLD)进行设计。可编程逻辑器件,尤其是FPGA器件,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,具有集成度高、运行速度快、可靠性强、设计方式灵活、快速等特点,现已成为现代高层次电子设计方法的实现载体。本课题研究了EDA技术发展对电路设计方法的影响,深入探讨了用VHDL语言和可编程逻辑器件FPGA开发的基本方法,为开发专用集成电路提供了基本的设计步骤。作为应用对象,进一步开发差错控制编码技术。开发这一系统的目的并不是为了实际的应用或应用到市场中去,只是通过一个简单系统的整体设计完成过程,深入体会FPGA技术优势性,了解这些编码的特性及其应用,使这几类编码得到更广泛的应用。在数字系统过程中,为了减少误码率,使这些编码技术很好的应用到相关的一些领域中去,我总结出这些编码的异同点,为以后选择这些编码时在相关领域的应用奠定一定的基础。1.3差错控制编码发展现状1948年C.E.香农(Shannon)1发表指出,只要采用适当的纠错码,就可在多类信道上传输消息。宣告了纠错码的诞生。自Shannon之后,人们不断向逼近信道容量努力,取得重大发展,如分组码,代数码,卷积码,网格码和Turbo码。所能达到的性能也越来越接近Shannon限间的距离。现在利用FPGA技术实现差错控制编码的种类很多,而且这些具有很强的纠错、检错码,被广泛应用到密码学、通信、磁盘阵列及光存储、卫星通信、移动通信、深空通信等众多领域。1.4课题研究的主要内容汉明码是一种能纠一位错的线性分组码, 由于它的编译码简单,在数据通信和计算机存储系统中广泛应用,如在蓝牙技术和硬盘阵列中。它的最小码距为,可以纠正一位错误,但对于两位错不能检测,还可能会造成误纠。尽管发生一位错的概率相对最高, 但在一些要求较高的应用中汉明码不能满足要求。常用的能检测两位错同时能纠正一位错的纠错码有(8,4)扩展汉明码。CRC即(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC 常用硬件电路和软件编程的方法实现,采用CRC 串行算法,即一个时钟周期内有一位数据输入, k 位长度的信息元连续计算k次后得出校验码. 这种传统CRC 的产生和校验方法对于现代实时高速的通信系统已经不能满足其对于信息处理高速化、并行化的要求。 因此,本文提出一种新的并行CRC 编码方法:用VHDL 语言在FPGA 芯片上编程,实现在一个时钟周期内完成一次并行CRC 码的计算及校验. 该方法可以对不同长度的数据进行差错控制,而且大大缩短了CRC码的校验周期,为实现循环冗余校验提供了一种新思路.MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的。对于差错控制编码技术的研究,我主要是研究(8,4)增余汉明码编译码、CRC循环编码和MD5编码,现在首先是分别研究这几种编码,对前两种分别应用FPGA技术去实现,用VHDL语言去编写代码,然后再进行编译,下载,仿真及其去了解这些编码;然后是对MD5码进行研究和算法分析;最后总结出它们的异同点,以适应在以后需要的时候选择适当的编码应用到相应的领域中去。第二章 基于FPGA的实现差错控制编码技术2.1差错控制编码的总体设计方案在具体设计过程中,采取自上而下的设计思路。首先根据整体的规划设计出模块的外部输入输出引脚定义以及功能,也就是设计出这一个小芯片的外部特性;然后根据设计的这一个芯片的外部特性以及功能设计实现芯片内部的实现细节。2.2(8,4)增余汉明码的差错控制编码译码设计 2.2.1汉明码编码译码原理汉明码(Hamming Code)是由Richard Hamming于1950年提出的,它属于线性分组编码方式,用以纠正单个错误的线性分组码,在软件无线电中应用广泛。设原代码的码长为k 比特, 附加纠错编码部分为r比特,当码字长度n=2r-1,r=n-k,r=1,2时就称这种线性分组码为汉明码。其基本原理是,将信息码元与监督码元通过线性方程式联系起来,每一个监督位被编在传输码字的特定比特位置上。系统对于错误的数位无论是原有信息位中的,还是附加监督位中的都能把它分离出来。由汉明码的性质可知,(8,4) 增余汉明码能纠1位错,检2 位错。 2.2.2 (8,4)增余汉明码的算法与实现(8,4)增余汉明码全码码元数n=8,其中信息码元数k=4 ,监督码元数d=4,其监督矩阵为:对于任何给定的信息码组,都可以由下式求出相应的监督码元,即:若用方程式来表示, 则上式可以写成: 从而形成全码这就是(8,4)增余汉明码的编码过程。(8,4)汉明码编码的顶层设计模块如图所示:图2-1 汉明码编码模块图可以看出,输入为四位并行输入,编码后为一个八位的并行输出。(8,4)汉明码编码的底层设计模块如图所示:图2-2 汉明码编码模块底层关系图底部的各个分模块为两位的输入模通过各种逻辑运算,并最终组合在一起形成一个8位的最终编码输出。2.2.3 (8,4)汉明码编码波形仿真图:图2-3 汉明码编码仿真图2.2.4 (8,4)汉明码译码算法实现n,k,d分组码的译码步骤可归结为以下三步:1) 由接收到的R,计算伴随式S=RHT;2) 若S=0,则认为接收无误。若S0,则由找出错误图样E;3) 由E和R 找出C=R-E。汉明码的译码较简单,它可由S 直接得到错误图样E ,其他分组码如何由S 求得E就比较复杂。而一个译码器的复杂性及其译码错误概率也是由这一步决定的。设接收方收到发送方传来的一个完整的全码为:X11,X22,X33,X44,X55,X66,X77,X88,根据汉明码校验矩阵:S1 S2 S3 S4为(8 ,4) 增余汉明码的校验子。当S1 S2 S3 S4 =0000 时,传送无误;当S1 S2 S3 S4为偶数时,可判接收到的全码中有两位错误,但不能判断哪两位错,可要求发送方重新发送全码;当S1 S2 S3 S4为奇数时,可根据表1判断哪一位错,然后通过软件来纠错,完成译码过程。表2-1 (8,4)汉明码校验参数错位S1S2S3S4错位S1S2S3S41011151001210116010131101700114111180001译码算法的流程图如图所示:S1S2S3S4=0S1S2S3S4=奇数有一位错,纠错没错,输出信息位两位错,重发NOYES初始化S1 S2 S3 S4输出信息位图2-4 汉明码译码流程图根据上述流程图,用VHDL语言描述(8,4)汉明译码算法功能模块如图所示:图2-5 汉明码译码顶层模块图Hamin为汉明8位数据输入,dataout为汉明4位数据输出,sec、ded、ne为诊断输出。2.2.5(8,4)汉明码编码波形仿真图:图2-6 汉明码译码仿真图可以看出,通过译码模块,8位全码又重新译码成原输入数据。2.2.6 (8,4)汉明码编码译码综合模块通过原件例化,对编码、译码电路进行连接得到综合顶层模块如下:图2-7 汉明码编码译码综合顶层模块图对顶层模块进行细化,如图所示:图2-8 汉明码编码译码综合底层模块图2.2.7 (8,4)汉明码编码译码综合波形仿真图图2-9 汉明码综合模块仿真图2.3 循环冗余差错控制校验码的设计2.3.1 CRC循环校验码编码校验原理CRC校验采用多项式编码方法。被处理的数据块可以看作是一个n 阶的二进制多项式,如一个8 位二进制数10110101可以表示为:x7+x5+x4+x2+1。多项式乘除法运算过程与普通代数多项式的乘除法相同。多项式的加减法运算以2为模,加减时不进位、错位和逻辑异或运算一致。采用CRC 校验时,发送方和接收方用同一个生成多项式g(x),并且g(x)的首位和最后一位的系数必须为1。CRC 的处理方法是:发送方以g(x)去除t(x),得到余数作为CRC 校验码。校验时,以计算的校正结果是否为0为据,判断数据帧是否出错。CRC 校验可以100地检测出所有奇数个随机错误和长度小于等于k(k 为g(x)的阶数)的突发错误。所以CRC 的生成多项式的阶数越高,那么误判的概率就越小。2.3.2 CRC循环码编码规则CRC编码实际上是将代发送的m 位二进制多项式t(x)转换成了可以被g(x)除尽的m+r位二进制多项式t(x),所以解码时可以用接受到的数据去除g(x),如果余数位零,则表示传输过程没有错误;如果余数不为零,则在传输过程中肯定存在错误。许多CRC的硬件解码电路就是按这种方式进行检错的。同时t(x) 可以看做是由t(x)和CRC 校验码的组合,所以解码时将接收到的二进制数据去掉尾部的r位数据,得到的就是原始数据。2.3.3 CRC循环码算法分析CRC校验码的编码方法是用待发送的二进制数据t(x)除以生成多项式g(x),将最后的余数作为CRC校验码。其实现步骤如下:(1)设待发送的数据块是m 位的二进制多项式t(x),生成多项式为r阶的g(x)。在数据块的末尾添加r个0,数据块的长度增加到m+r位,对应的二进制多项式为t(x)。(2) 用生成多项式g(x)去除t(x) ,求得余数为阶数为r-1 的二进制多项式y(x)。此二进制多项式y(x)就是t(x)经过生成多项式g(x)编码的CRC校验码。(3) 用t(x) 以模2的方式减去y(x),得到二进制多项式t(x) 。t(x) 就是包含了CRC校验码的待发送字符串。由于CRC-32、CRC-16、CCITT和CRC-4的编码过程基本一致,只有位数和生成多项式不一样。为了叙述简单,用一个CRC-4编码的例子来说明CRC 的编码过程。设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)=x4+x+1,阶数r为4,即10011。首先在t(x)的末尾添加4个0构成x4t(x),数据块就成了1001000111000000。然后用g(x)去除x4t(x),不用管商是多少,只需要求得余数y(x)。表1给出了除法过程。表2-1 求校验码的过程表 除数次数 被除数/ g(x)/结果 余数01 0010001110000001001110000001 00110 00010011100000011 0011100000010000001 00110 0000100000021 00000011001 00110 001100从表2-1中可以看出,CRC编码实际上是一个循环移位的模2运算。对CRC-4,我们假设有一个5 bits的寄存器,通过反复的移位和进行CRC的除法,那么最终该寄存器中的值去掉最高一位就是我们所要求的余数。2.3.4CRC 校验生成模块的设计实现CRC 校验生成模块是在XILINX ISE 平台编程实现,程序首先执行了11次异或运算,流程图如2-10所示,然后在作一次异或运算,得到的记过就是crc校验码结束Crcvar30复制到变量C中Rdatacrc高5位复制到变量crcvari=11Rcrcvar(4)=?Crcvar30与G(x)系数的低4位异或结果放在变量C中Crcvar40=c&rdatacrci-1i=i-1i=0?YESNOYESNO12位信息左移4位后放到rdatacrc图2-10 CRC校验生成模块流程图CRC 校验生成模块如图X 所示. 其中sdata 是12 位待发送信息,datald 是sdata 的装载信号,clk是时钟信号,datacrco 是附加上4 位CRC 校验码的16 位CRC 码,hsend 是与检错模块的握手信号。图2-11 CRC校验生成模块2.3.5 CRC校验生成模块仿真波形图图2-12 CRC校验生成模块仿真波形图2.3.6 CRC 校验接收模块的设计实现CRC 校验检错模块编程思想与生成模块类似. 从接收到的CRC 码中提取出信息码,将信息码与生成多项式进行异或运算,最后判断得到的余数与CRC 生成模块中得到的校验码是否相同,如果相同则认为信息发送正确,将输出的误码警告信号error 设置为“0”;反之,则以为信息发送错误,将error 设置为“1”。CRC 校验检错模块如图X 所示,其端口数据说明如下:rdata :接收模块(检错模块) 接收的12 位有效信息数据;datafini :数据接收校验完成;clk :时钟信号;datacrci :附加上5 位CRC 校验码的17 位CRC 码;error :误码警告信号;hrecv :与生成模块的握手信号。图2-13 CRC校验接收模块的设计实现2.3.7 CRC校验接收模块仿真波形图图2-14 CRC校验接收模块仿真波形图2.4 MD5码的算法分析MD5的全称是Message-Digest Algorithm 5,就是把一个任意长度的字节串变换成一定长的大整数。即MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。2.5.1 MD5的引言 MD5算法是通过数学运算,把不同长度的信息串转化到128位编码中,形成Hash值,通过比较这个数值是否正确,来确定通信双方的合法性。这也可以说是数字签名,在数据传输后,可以通过比较Hash值来判断信息途中是否被截获修改,是否由合法的发送人发送或者合法的接收人接收等。用这种方法,可以防止密钥丢失的问题,因为它的加密部分是随机生成的,如果没有正确的Hash 值根本就无法解开加密部分,而且它还具备了数字签名的能力,可以证明发送方和接收方的合法身份,具有不可抵赖性,很适用于商业信息的传递。MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest) ,以防止被篡改。它还被广泛用于加密和解密技术上。MD5(RFC1321)是于90年代由Ron Rivest在MIT提出来的。我们现在来了解一下MD5的原理。2.5.2 MD5的原理该算法输入任意长度的消息,输出128 位消息摘要,处理以512位输入数据块为单位。处理报文摘要的过程如下:步骤1:添加填充位(最高位为1和其余为0)。在消息的最后添加适当的填充位使得数据位的长度满足与448模512同余,即:length=448mod512。步骤2:添加长度。原始消息长度(二进制位的个数),用64位表示,并附加在步骤1的结果后。由这两个步骤得到长度为512整数倍的报文。表示为L个512 位的数据块:Y0,Y1 ,YL-1.其长度为L512bits.令N=L16,则长度为N个32 位的字。令M0N-1表示以字为单位的消息表示。步骤3:初始化MD缓冲区。一个128位MD缓冲区用以保存中间和最终散列函数的结果.它可以表示为4个32位的寄存器(A,B,C,D)。寄存器初始化为以下的16进制值。A=67452301B=EFCDAB89C=98BADCFED=10325476寄存器内容Word A : 01 23 45 67Word B: 89 ABCD EFWord C: FE DC BA 98Word D: 76 54 32 10采用小数在前的格式存储,即将字的低字节放在低地址字节上步骤4:处理消息块(512位=16个32位字)。一个压缩函数是本算法的核心(HMD5),它包括4轮处理.轮处理具有相似的结构,但每次使用不同的基本逻辑函数,记为F,G,H,I.每一轮以当前的512位数据块(Yq)和128位缓冲值ABCD作为输入,并修改缓冲值的内容。每次使用64元素表T164四分之一。该T表sin函数构造而成。T的第i个元素表示为Ti,其值等于232abs(sin(i)的整数部分,其中i是弧度.于abs(sin(i)是一个0到1之间的数,T的每一个元素是一个可以表示成32位的整数。T表提供了随机化的32 位模板,消除了在输入数据中的任何规律性的特征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:输出结果。所有L个512位数据块处理完毕后,最后的结果就是128位消息摘要。2.5.3 MD5算法的安全性考虑 对强行攻击的安全性:使用强行技术,产生任何一个报文使其摘要等于给定保文摘要的难度对MD5是2128数量级的操作,产生相同报文摘要的两个报文的难度是264数量级对密码分析的安全性:对单循环的MD5,使用不同的密码分析可能在合理的时间内找出能够产生相同摘要的两个报文,这个结果被证明对四个循环中的任意一循环也成立。目前,MD5已被认为是易受攻击的。事实上,MD5算法已有被德国解密专家攻破的纪录,据称,一个价值几百万美元的计算机系统可以在几周内寻找出已被暗码处理的原文。在对安全要求很高的场合使用仍存在风险。2.5.4 MD5的应用MD5码主要是应用在加密和解密两个方面,使用的是非常的广泛,应用的领域也是非常的多。在我们的解压缩文件中,有很多就是应用到了MD5码,因为它的保密工作具有一次性保密工作,不仅保留了一次性口令的优点,而且克服了序列密码一次性口令系统中的小数攻击和IP地址欺骗攻击的漏洞,同时又避免了RSA算法中大整数质因数分解的计算效率问题。第三章 基于FPGA的实现差错控制编码技术开发体会3.1 算法的重要在刚开始设计这个毕设的时候,我可以说的这个课题不甚了解,有点无从下手的感觉,通过上网查询和杨老师的教导,我的课题是一个研究性的课题,所以我就要搜集好几种编码来分别进行研究,来找出它们的异同点,首先找到的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论