收藏 分享(赏)

SHA256的硬件实现.doc

上传人:精品资料 文档编号:9102901 上传时间:2019-07-23 格式:DOC 页数:74 大小:364.47KB
下载 相关 举报
SHA256的硬件实现.doc_第1页
第1页 / 共74页
SHA256的硬件实现.doc_第2页
第2页 / 共74页
SHA256的硬件实现.doc_第3页
第3页 / 共74页
SHA256的硬件实现.doc_第4页
第4页 / 共74页
SHA256的硬件实现.doc_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、山东科技大学本科毕业设计(论文)I摘要随着社会信息化的高速发展,信息安全成为人们所关注的焦点。以哈希算法为重要组成部分的数据摘要算法在信息保护中有着重要地位。本文所实现的 SHA-256 算法属于哈希算法中功能较好的一种,以此生成的信息摘要相比于常用的 MD5、SHA1 具有更高的抗碰撞能力、不可逆性,在信息传递中,结合其他密码技术,能够保证信息完整性及不可否认性。同时硬件实现 SHA-256 算法相对于软件实现来说速度快且抗攻击性能力强。本文的主要工作为:以 FIPSI80-2(Federal Information Processing standard 美国联邦信息处理标准)中的 SHA

2、256 (Secure Hsah Algorithm)为研究基础,以 modelsim 为仿真软件,结合硬件编程所独有的一些特性,通过编写verilog 语言实现 SHA256 哈希加密算法。本文的主要内容:1.包括 SHA256 的背景和意义,哈希算法、SHA 系列的简介和硬件实现算法的优势。2.介绍 SHA256 的加密原理,即如何将一个长度小于 264的原文经过SHA256 算法形成一个具有高碰撞能力的,不可逆性的长度固定为 256bits的摘要。3.本次实现 SHA 加密系统的构架介绍,实现流程和仿真结果。山东科技大学本科毕业设计(论文)II关键词:信息安全;硬件仿真;sha-256;

3、AbstractWith the rapid development of social informatization, information security has become the focus of attention. Data digest algorithm, which is an important component of hash algorithm, plays an important role in information protection.SHA-256 algorithm is the realization of the hash algorithm

4、 in function belongs to a kind of good, compared to the information generated in the commonly used MD5, SHA1 has anti collision ability, the irreversibility of the higher, in the transmission of information, combined with other encryption technology, can ensure information integrity and non repudiat

5、ion. At the same time, the hardware implementation of SHA-256 algorithm is faster and more aggressive than the software implementation.The main work of this paper is:FIPSI80-2 in SHA256 based on Modelsim simulation software, some unique characteristics combined with the hardware programming language

6、, written by Verilog SHA256 hash encryption algorithm.The main content of this paper:1., including the background and significance of SHA256, the hash algorithm, the introduction of SHA series and the advantages of hardware implementation 山东科技大学本科毕业设计(论文)IIIalgorithm.2. introduce the encryption prin

7、ciple of SHA256, that is, how to make a text with a length less than 264 and pass the SHA256 algorithm to form a summary of 256bits with high collision ability and irreversible length.3., the implementation of the SHA encryption system framework, the realization of the flow and simulation resultsKey

8、 word:information safety ;Hard ware simulation;SHA-256山东科技大学本科毕业设计(论文)IV目录摘要 IAbstractII第一章 绪论 11.1 研究意义 11.2 研究背景 21.3 本文主要内容及章节安排 4第二章 哈希算法简介 .52.1 哈希算法的特点 52.2 安全哈希标准 72.3 算法实现方式及选择硬件仿真的原因 .8第三章 SHA256 算法的原理与实现 .93.1 SHA246 哈希函数 .93.2 SHA256 具体函数介绍 .93.3 SHA256 的算法描述 .103.3.1 附加填充比特及附加长度值 .113.3.

9、2 初始化缓存以及数据块扩展 .12山东科技大学本科毕业设计(论文)V3.3.3 处理 512bits 报文的循环迭代运算 .13第四章 SHA256 加密系统硬件设计与实现 164.1 算法的总体架构 .164.1.1 数据计算模块 .174.1.2 extension 数据延展模块 .194.1.3 前端数据处理及迭代运算操作模块 .204.2 实现流程 .234.2.1 参数初始化、填充比特值以及附加长度值 .244.2.2 初始化缓存、原文延展及 64 次迭代运算 244.3 仿真结果 26第五章 总结与期望 .275.1 总结 275.2 展望 28参考文献 29附录: 29致谢 .

10、33山东科技大学本科毕业设计(论文)1第一章 绪论1.1 研究意义由于国家现代化建设的高速发展,由于电脑,手机,internet 的广泛普及,它们正在不断的影响着每个人的生活方式和节奏。论坛,邮箱,贴吧,网购等给用户带来更方便的体验的同时也将许多的私人信息和个人数据暴露在网络和存储介质中。随后不良商家将用户的个人数据作为商品去售卖,从而导致许多恶劣后果,小到信息购买者不断对用户骚扰,大到用户金钱人身安全受到威胁。因此个人信息和数据的安全开始被人们重视。最常见也是最高效的保护个人数据信息的方法就是将加密后的个人信息存储或者发送,所以各式各样的加密方法进入人们的视线,并得到了广泛的应用。密码算法包

11、括加密算法和解密算法,是密码体制的核心。可以将密码算法当成是一个映射函数。当输入为原文时,经过这些变换,输出就为密文。但由于一些算法本身的缺陷,系统的升级以及科技发展,数据面临的风险也大大增加,人们迫切的需求安全性更高的加密算法,SHA 安全哈希算法应运而生。sha1 于 1993 年创立,但随着科学技术的发展,经权威机构证实其不安全性越来越高,sha1 指纹造假成本越来越低,所以针对 SHA1 的改进研究非常有必要,所以将 SHA1 改进为安全性更高的SHA256,密码摘要更长,更加有利于对抗野蛮攻击,有力的保证了各种信息的安全。在软件、硬件的选择上,软件加密虽然加密成本低但也存在着消耗大量

12、 CPU 机时以及被暴力破解等安全隐患。因此硬件加密技术以其高效率,山东科技大学本科毕业设计(论文)2高可靠性受到越来越多的关注。1.2 研究背景随着信息技术和 Internet 的发展,信息可以帮助团体或个人,使他们受益,同样,信息也可以用来对他们构成威胁,造成破坏,因此信息的原始性和正确性也逐渐变得重要起来。我们经常需要一种措施来保护我们的数据,防止被一些怀有不良用心的人所看到或者破坏。比如:在竞争激烈的大公司中,工业间谍经常会获取对方的情报以此给对方造成经济损失等。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。密码摘要成为保证消息来源正确未被修改的重要技术。在金融

13、交易,电子商务,电子信件,软件发布,数据存储等领域,数据完整性确认和数据来源鉴定都是很重要的安全服务。数据加密这一保护信息的行为贯穿在人类的发展史上,并且随着科技的发展,数据传输方法,以及威胁的多样化,使得人们对信息的重要程度的认知不断加深,于是作为密码体制的核心,数据加密技术越来越受到人们的重视,进入了高速发展的通道。数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用,数字加密有一个非常重要的部分就是数字签名技术,该技术用来提

14、供对信息来源的鉴别,保证信息的完整和不可否认性等。哈希算法是数字签名技术的重要组成部分,也是应用在信息安全领域山东科技大学本科毕业设计(论文)3最普遍的一个算法,能够实际应用的哈希算法必须满足单向性(one Way),抗冲突性(Collision Resistant),映射分布均匀性和差分分布均性。目前最典型的哈希算法有 MD4,MD5,SHA1,SHA2。其中 MD5,SHA1 和 SHA2 可以说是目前应用最广泛的哈希算法,他们都是以 MD4 为基础设计的.其他一些知名的 Hash 算法还有 MD2,N Hash,RIPE MD,HAVAL 等等。同时还有许多没有通过分析和差分攻击考验的算

15、法,大多都已经夭折在实验室里了,因此,如果目前流行的Hash 算法能完全符合密码学意义上的单向性和抗冲突性,就保证了只有穷举,才是破坏 Hash 运算安全特性的唯一方法,有力的保护了信息的安全,而 SHA2 系列(包括 SHA256)又因为摘要密钥比 SHA1 更长所以更加的安全可靠。除了算法本身决定其自身加密安全性的同时,实现一个加密算法的所用的方法对数据的安全性也有着很大的影响,目前来讲加密算法可以通过软件,加密芯片和硬件编程来实现,但是当面对海量的加密数据时,软件加密将占用大量的 CPU 机时来完成,从而影响到整个系统的速度。并且当软件加密算法面对像暴力破解软件,产品格式化,把存储数据的

16、闪存芯片拆除等极端方式时,软件加密都可以轻易的被破解。相比之下硬件加密中所有的加密信息都是内置在硬件芯片中的,从而使得黑客原本惯用的通过入侵加密信息来盗取资料的手法将会完全失效。同时硬件加密技术对数据信息处理速度的延迟时间主要由门电路的延迟产生,因此处理器就有足够的时间来处理其他的任务,提高整个系统的效率,这也是本文选择硬件实现的原因。山东科技大学本科毕业设计(论文)4山东科技大学本科毕业设计(论文)51.3 本文主要内容及章节安排本文首先介绍了数字加密的重要性以及几种基本算法,简明扼要的阐述了各种算法的基本思路之后介绍传统的 sha256 算法原理,SHA256 算法已经普遍应用在数据加密及

17、数据签名中,本文主要将 sha256 加密算法进行 modelsim 仿真实现,通过 modelsim 仿真,实现 sha256 关于固定长度24 位的原文加密。本文内容安排:第一章 绪论,介绍了课题研究的背景以及研究的意义,深入分析了课题的背景,阐述课题要实现的目标。第二章 哈希算法的简介,我通过介绍比较常见的 HASH 加密算法以及特点从而引出了许多论文相关的概念,并做了一些相关介绍以方便读者更好的理解该篇文章。第三章 sha256 算法的原理与实现。在本章中根据 SHA256 算法的结构,介绍了算法所用的具体函数,哈希值的初始化,并通过对其 SHA256具体函数的描述介绍了数据加密的原理

18、及其整个加密流程。第 4 章 SHA256 加密系统与硬件设计。本章主要以第三章介绍的SHA256 算法为基础,画出总体系统架构,将每个模块具体分析,以 abc作为输入详细描述数据处理流程,最后得到仿真结果。第 5 章 总结与展望。山东科技大学本科毕业设计(论文)6山东科技大学本科毕业设计(论文)7第二章 哈希算法简介Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列

19、值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数,这段消息摘要被称为哈希值。哈希值是哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,也是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文,哪怕只更改该段落的一个字母,随后的哈希算法都将产生两个极为不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性和正确性。一般用于快速查找和加密算法。 2.1 哈希算法的特点这里的 HASH 算法不是大学里数据结构课里那个 HASH 表的算法。这里的 HASH 算法是密码学的基础,比较常用的有 MD5 和

20、 SHA,优秀的哈希算法具有的最重要的两条性质,就是不可逆和无冲突。山东科技大学本科毕业设计(论文)8所谓不可逆,就是当你知道 x 的 HASH 值,无法求出 x;所谓无冲突,就是当你知道 x,无法求出一个 y, 使 x 与 y 的 HASH 值相同。也就是这两者保证了只要哈希算法的摘要足够长,那么就具有高抗碰撞能力破解难度极大。该算法是将任意长度的二进制值映射为固定长度的较小的二进制值,前者通常称为数据的原值,最后得到的固定长度的二进制值则称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表达形式,即使数据的原值只改变一个标点符号,那么随后的哈希运算将会产生完全不同的哈希值,因此良好的映射分布

21、均匀性和差分分布均匀性是保证哈希算法安全性的必要条件。所以最基本的哈希算法有以下三点组成:(1)如果知道信息(M),可以很容易得到哈希值 h。(2)如果知道哈希值 h,却无法通过任何算法得到信息 M。(3)很难找到另一条信息 M.使得,H(M.)=H(M)。由于哈希函数提供了数据原值和哈希值之间的这种独特关系,因此就可以用验证长度小得多的哈希值来代替大量消息的验证,大大减少了验证数据的工作量,节约了时间。MD5,SHA1,和 SHA2 系列是目前最有名的哈希函数。但由于 MD5 和 SHA1 己经被验证存在抗冲突性的安全隐患。由于哈希值是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。

22、加密性强的散列结果一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,山东科技大学本科毕业设计(论文)9即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。山东科技大学本科毕业设计(论文)102.2 安全哈希标准SHA(Seeure Hash Standard,安全哈希标准),是由美国国家标准技术研究所(NIST)和美国国家安全局(NSA)一同设计的杂凑算法,是使用最为广泛的安全杂凑算法之一。该算法与 1993 年 5 月起采纳为标准,分别为

23、SHA,SHA1 和 SHA2。其中 SHA2 包括SHA224,SHA256,SHA384,SHA512。由于 SHA 在 1993 年发布不久后被验证存在重大的漏洞,所以很快就被新的 SHA1 版本所取代。随后在 2005 年,SHAI 算法被验证存在算法上的漏洞,尽管 SHA2 在算法结构上和 SHA1 相同,但是由于算法数据位数的增加,使得 SHA2 避免了 SHA1 上存在的漏洞。SHA,SHA1,SHA2 的描述如表 2.1 所示:名称 哈希值位数中间状态位数块数据大小最大加密数据位数内部处理单元位数循环周期内部使用逻辑是否存在漏洞SHA0 是SHA1160 160 512 264

24、-1 32 80+,AND,OR,XOR,ROT 是SHA256/SHA224256/224 256 512 264-1 32 40SHA2SHA512/SHA384512/348512 10242128-1 64 80+, AND,OR,XOR,ROT,shr 否山东科技大学本科毕业设计(论文)11表 2.1 SHA 函数具体参数本文选用的 SHA256 哈希函数,可加密 0 一 264 bits 长度的数据(由于表示数据长度的数据附位加为仅为 64 位),处理每组数据块大小为512bit,内部的处理单元位数为 32 位,通过 64 次迭代运算,最终生成密码摘要。 2.3 算法实现方式及选择

25、硬件仿真的原因该算法可以通过软件或者硬件方法实现,虽然由于软件加密方法成本低,被广泛应用的移动存储介质和网络数据的加密中,但软件加密同时也存在着消耗大量 CPU 机时以及被暴力破解等安全隐患,而硬件加密中所有的加密信息都是内置在硬件芯片中的,从而使得黑客原本惯用的通过入侵加密信息来盗取资料的手法将会完全失效。故此本文选择硬件实现 SHA256 算法。山东科技大学本科毕业设计(论文)12第三章 SHA256 算法的原理与实现3.1 SHA246 哈希函数最早的安全哈希函数 FIPS1802 是由美国联邦息处理标准(Federal Information Processing Standards)

26、发布的基于哈希算法的一个标准,加密系统中使用的 SHA256 算法就是 FIPS180 一 2 标准中 SHA2 算法中的一种。下面将对该算法的原理做详细的描述。3.2 SHA256 具体函数介绍Sha256 中总共含有 6 个逻辑函数,以及两个移位函数和 8 个 32bit 的初始化的哈希值。其中每一个函数的操作都是以 32bit 长度的数据块为单位实现的,与此同时函数中所有的加法运算全部都是 mod 为 232的加法,函数的具体内容由下所示:算法包含的六种基本函数 : bitwise XOR bitwise AND bitwise OR bitwise complement+ mod 23

27、2additionRn right shift by n bits山东科技大学本科毕业设计(论文)13Sn right rotation by n bits以上 6 种函数是在 sha256 加密运算中涉及到的基本函数。算法中包含的逻辑操作函数:Ch(x,y,z) = (xy)( xz)Maj(x,y,z) = (xy)(xz)(yz)0(x) = S2(x)S13S22(x)1(x) = S6(x)S11S25(x)0(x) = S7(x)S18R3(x)1(x) = S17(x)S19R10(x)上述几种逻辑操作函数,都是有基本逻辑函数构成,是安全哈希函数的重要的运算方法。哈希值的初始化:

28、localparam H0 = 32h6a09e667;localparam H1 = 32hbb67ae85;localparam H2 = 32h3c6ef372;localparam H3 = 32ha54ff53a;localparam H4 = 32h510e527f;山东科技大学本科毕业设计(论文)14localparam H5 = 32h9b05688c;localparam H6 = 32h1f83d9ab;localparam H7 = 32h5be0cd19;3.3 SHA256 的算法描述SHA256 算法,是将一个长度不大于 264bit 的报文输入,通过将报文按 51

29、2bit 进行分组处理之后,形成一个长度固定为 256bit 的摘要。其中根据算法要求以及原理可以大致分为前后 4 个主要部分,其中包括:1.附加填充比特及附加长度值2.初始化缓存以及数据块扩展3.处理 512bit 报文分组序列的循环迭代运算4.256bits 长度的哈希值输出3.3.1 附加填充比特及附加长度值附加填充比特及附加长度值模块中,首先面临的第一个问题就是对输入的原文进行比特的填充,目的是使原文的数据位数是 512 的整数倍以便于分组处理,同时还要使填充过后的原文数据中包含有原文数据长度的信息。具体操作方法如下所述:山东科技大学本科毕业设计(论文)15加入输入的原文长度为 M,在

30、此模块中将 M 进行末尾增加一个比特位的操作同时将该比特值赋值为1,与此同时添加 K 个值为 0 的比特位。一次满足 M+1+K = 448 mod 512 的运算,然后再将这个 M+1+K=448 长度的天冲过后的原文进行有关于原文数据长的数据填充。即在其后面添加一个64bit 的数据块,其值等于明文长度 M,做完信息填充后的原文长度一定是 512bit 的整数倍。以便于原文的分组处理图 3.1 填充数据的位数以及值如上图 3.1 原文数据所示,假设我们吧 a b c 三个字母作为原文进行数据输入,通过 ASC码值查阅后可知为上图所示,一共是 24bits。根据上面的描述方法,我们首先要在“

31、abc”后面添加一位 bit 值为“1”。与此同时再添加 424 个值为“0”的比特位,可以满足上文设定即 24+1+423 等于 448 对 512 的取余,再在填充文后面添加上 64 位的比特,用来表示原文的长度。如图 abc 三个字母的二进制长度为 24 bits。所以应该填充的数据为:山东科技大学本科毕业设计(论文)1600.00 00011000。长度为 64 位,省略号表示为 0。3.3.2 初始化缓存以及数据块扩展SHA256 运算过程中要进行初始化缓存,这个存储器是 256bit 的,来存放哈希运算过程中的中间结果和最终结果。该缓存表示为:H1=0x6A09E667 ; H2=

32、0xBB67AE85 ;H3=0x3C6EF372 ; H4=0xA54FF53A ; H5=0x510E527F ; H6=0x9B05688C ;H7=0x1F83D9AB ; H8=0x5BE0CD19 ;SHA256 对原文的处理是 512bits 的数据块作为基本处理单元,每次处理的步骤每次读入第 N 个 512bits 的数据块之后,算法将 512bits 的数据分成 16 份的 32bits 的数据块,假设第一个 32 bits 的数据段为 W1,然后再依次往后第二个为 W2,如此排列直到最后一个为 W15,即 512/16=32 bits,又因为迭代运算需要 64 个 32bi

33、ts 值,所以要进行数据扩展以满足 64 位迭代运算。山东科技大学本科毕业设计(论文)17图 3.2 WT的扩展公式如图 3.2 所示即为扩展运算的公式。其中 1 和 2 的表达式为:0(x) = S7(x)S18R3(x)1(x) = S17(x)S19R10(x)如图要经过 64-16=48 次扩展运算得出满足 64 次迭代运算需要的数据。山东科技大学本科毕业设计(论文)183.3.3 处理 512bits 报文的循环迭代运算图 3.3 循环迭代运算步骤循环迭代运算如图 3.3 所示,在这个运算部分里面主要完成的工作是:计算出当前输入的 512bits 报文的哈希值,这个部分的具体内容为:

34、(1)初始化,初始化过程分为两种情况:第一种情况:加密数据为第一个 32bits 数据块,首先要用我们在 3.1 中的对 H0-H7 的 8 个 32bits 数据块进行 832bits 的迭代运算对内部哈希值初始化。第二种情况:如果加密数据不是第一组数据,则使用上一次迭代运算得出的加密结果进行哈希值初始化。(2)在上一步的初始化结束后,我们应该对 a-h 进行 64 次迭代运算山东科技大学本科毕业设计(论文)19进行加密步骤,如上图 3.3 所示。其中图 3.3 中所用的几个公式为:s0=(a_in1:0,a_in31:2)(a_in12:0,a_in31:13)(a_in21:0,a_in

35、31:22);s1=(e_in5:0,e_in31:6)(e_in10:0,e_in31:11)(e_in24:0,e_in31:25);maj = (a_in ch = (e_in 在运算中每一次都要使用一个 32bits 的常数值,即常数 K 的值是由固定的 HASH 表来查找和设定。其中 SHA256 的哈希表如下所示:山东科技大学本科毕业设计(论文)20图 3.4 K 值得固定缓存表(3)用 2 中的步骤,按部就班的完成 64 次循环迭代运算后,将结果a-h 与第一步所设定的初始值进行模 232 的加法运算,上面的计算就是不断更新 a,b,ch 这 32bit*8 。在每个 512bi

36、t 的分组里面迭代计算 64次。得到本次运算的哈希值如下所示:H0(i)=a+H0(i-1);H1(i)=b+H1(i-1);H2(i)=c+H2(i-1);H3(i)=d+H3(i-1);H4(i)=e+H4(i-1);H5(i)=f+H5(i-1);H6(i)=g+H6(i-1);H7(i)=h+H7(i-1);(3)重复上面 1-3 得步骤,直到所有的 512-bit 分组处理完毕后,对于SHA-256 算法最后一个分组产生的输出便是 256-bit 的报文摘要。山东科技大学本科毕业设计(论文)21第四章 SHA256 加密系统硬件设计与仿真实现根据第三章中介绍的 SHA256 算法以及

37、硬件实现的优势,在本章中具体的的描述如何用硬件语言设计电路,实现一些功能。 本次研究使用的是 modelsim 仿真环境,下面我们就从 modelsim 上进行 verilog 仿真实现 SHA256.这里仅以 24bits 长度的原文进行 SHA256 加密,来解释整个流程如何用硬件描述语言来将描述 SHA256 的全部函数及各个模块4.1 算法的总体架构山东科技大学本科毕业设计(论文)22图 4.1 SHA256 加密系统总体架构如图 4.1 所示为本次设计的硬件架构图,按照对信息处理的功能,整个 SHA256 可以分为数据处理模块和哈希值计算模块,这两个部分依据SHA256 算法中的描述

38、,分别完成输入数据的预处理和哈希值循环计算两个功能,整个模块的外部接口只有明文输入和哈希值输出。下面我就分别介绍各个模块。4.1.1 数据计算模块图 4.2 数据计算模块框架图山东科技大学本科毕业设计(论文)23图 4.3 数据计算模块模型计算模块的各个信号的功能介绍clk 系统时钟信号,为整个算法提供输入信号Rst 异步复位信号,高电平有效Kt 32 位数据入口Wt 32 位数据入口a-h(input) 256 位初始化哈希值输入信号a-h(output) 256 位初始化哈希值输出信号表 4.1 各个信号的功能描述计算模块的功能是按照图 3.3 中步骤中的算法,接收当前储存哈希值寄存器的数

39、据,将这 8 个输入进行计算生成下组数据并作为下次运算的输入。在这个模块中计算的过程中会不断的读取哈希表中的值和原文值,即Ki 中的储存的固定的常数值和 Wi 中存储的原文数据,来满足计算的条件。山东科技大学本科毕业设计(论文)24根据算法的要求,在计算过程中。b,c,d,f,g,h 是不需要计算的,而是直接从循环中直接得到赋值的分别是上次运算中的a,b,c,d,e,f,g。且 a,e 可以根据前一个周期中 a 一 h 的值计算出来,如下所示:Et+1=dt+ 1(et)+CH(et,f t,g t)+ht+kt+WtAt+1= 0(a)+maj(at,b t,ct)+ 1(et)+CH(et

40、,f t,g t)+ht+Kt+Wt这样经过 64 次迭代运算就可以得到处理完当前 512bit 数据组所对应的哈希值,也是下组哈希运算的初始值。4.1.2 extension 数据延展模块图 4.4 数据扩展模块框架图山东科技大学本科毕业设计(论文)25图 4.5 数据延伸模块的模型如图 4.5 是 SHA256 的 extension 模块的具体模型,各个信号的功能描述如表 4.2 所示表 4.2 各信号功能描述名称 功能Clk 外部时钟输入,为整个算法提供时钟输入信号Rst 异步复位信号,高电平有效W_16 , W_15, W_7 W_2数据输入信号,宽度为 32bitsWi 数据输出信号,宽度为 32bits

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报