SHA-1算法及其在FPGA加密认证系统中的应用.docVIP

SHA-1算法及其在FPGA加密认证系统中的应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SHA-1算法及其在FPGA加密认证系统中的应用   摘要:本文对安全散列算法以及安全散列值的计算方法进行了深入的分析,给出了安全散列值的计算步骤,论证了安全散列算法的安全性和可靠性,最后提出了一种sHA-1(Secure Hash Algorithm安全哈希算法)算法在加密认证系统的应用。整个认证系统通过1-wire总线,使FPGA完成与DS28E01-OO加密芯片的通信,主机内核采用了Xilinx公司设计开发的8位微控制器软核Pico B1aze。实验证明该设计能够完成加密认证系统的过程。   关键词:SHA-1;哈希函数;FPGA;加密认证系统键设备的设计中,有必要采取加密的技术来保护设计者的知识产权。   数字签名作为一种重要的加密技术如今已被广泛地应用于网络信息交换领域,它的根本作用是保证网络中传输的数据的真实性和完整性。数字签名的应用过程是数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。而在种类众多的数字签名技术中通常都会用到一类特殊的数学算法一哈希算法,它在数字签名技术中占有极其重要的地位。目前常见的哈希算法有MD5、SHA-1和RIPEMD-160,而国内更倾向于MD5和SHA-1。就当前的情况来看,SHA-1由于其安全强度及运算效率方面的优势目前已经成为使用最为广泛的哈希算法。   认证系统工作过程中,FPGA读取由安全存储器件所计算出的Hash结果,与期望Hash结果做比较。如果相匹配,微控制器认为该电路是“友方”电路,因为它拥有正确的密钥,此时FPGA进入正常工作状态,开启/执行其配置数据中的所有功能。如果不匹配,则该电路被认为是一个“敌方”电路,此时禁用整个FPGA中的设计,因此,即使捕获到配置数据比特流,设计也是安全的。整个认证系统主要由SHA-1引擎、随机数发生器、1-wire接口和指令译码三个模块组成,其核心模块SHA-1引擎采用了Xilinx公司的Pieo Blaze微处理器。      2、HaSh函数      Hash函数也叫哈希函数、散列函数。它是一种单向密码体制,是一种从明文到密文的不可逆函数,也就是说,是无法解密的。同时,Hash函数是将任意长度的消息M变换为定长码h,一般将Hash函数定义如下:   h=Hash(M)或h=H(M)   生成的Hash码也叫消息摘要MAC(MessageAuthentication Code)或散列值。Hash函数的单向性和生成固定长度消息的特征使得它在数据完整性认证、数字签名等领域有广泛的应用。      2.1、Hash函数的攻击方法      评价Hash方案的一个最好方法是看一个敌手找到一对碰撞消息所花的代价有多高。一般地,假设敌手知道Hash算法,敌手的主要攻击目标是找到一对或更多对碰撞消息。现有的一些攻击Hash方案和计算碰撞消息的方法主要可以分为两类,一类是可用于任何类型的Hash方案,如生日攻击,另一类是用于攻击某些特殊类型的Hash方案,如用于攻击具有分组链结构的Hash方案的中间相遇攻击。      2.2、Hash函数的要求      Hash函数的目的就是为了产生固定长度的消息,因此,Hash函数需满足下列要求:      (1)基本要求   ①能够应用于任何大小的数据块;   ②有数据压缩功能,能产生固定长度的输出;   ③对于任何给定的数据块M,H能够相对容易地计算出H(M),这样就使得硬件和软件变得切实可行。      (2)安全性要求   SHA-I算法的特性是哈希码的每一位是输入的每一位的函数。简单函数ft的复杂重复产生了混合性很好的结果信息。也就是说,不同于信息的随机挑选。即使两个信息显示出很近的规律,也不可能产生同样的哈希码,除非SHA有至今尚未公布的隐含的脆弱性。产生两个信息有同样的哈希码的难度体现在需要完成数量达280次的操作,找一个给定摘要的信息的难度体现在需完成数量大2160次的操作。   好的哈希函数也是无冲突的:难于产生两个预设的值,使他们的哈希码相同。哈希函数是公开的,对处理过程不用保密。单向哈希函数的安全性是它的单向性。无论怎么看,输出不依赖于输入。如果预映射的值发生改变,平均而言,将引起哈希码值中一半的位改变。已知一个哈希码,要找到预映射的值,使它的哈希码等于已知的哈希码在计算上是不可行的。   ①单向性。对于任意给定的值h来说,寻找满足H(M)=h的数据块M在计算上是不可行的。   ②抗弱碰撞性。对任意给定的M1,求出满足H(M1)=H(M2)的M2(M1≠M2)在计算上是

文档评论(0)

聚文惠 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档