典型密码算法fpga实现_DRM系统的SHA256算法设计及FPGA实现(一)

34491c0305379456be9bd41171ced9f4.gif

本次研究介绍了一种适于DRM系统的SHA256算法和HMAC算法,给出了在FPGA上实现 SHA2 56算法和HM AC算法的一种电路设计方案,并对算法的硬件实现部分进行了优化设计,给出了 基于Altera公司的Stratix II系列的FPGA的实现结果。

 数字版权管理DRM 

数字版权管理DRM(Digital Rights Management)是一 项涉及到技术、法律和商业各个层面的系统工程,它为 数 字媒体的商业运作提供了一套完整的实现手段。 DRM 技术的出现,使得版权所有者不用再耗费大量时间和精 力与客户进行谈判,就能确保数字媒体内容能够被合法 地使用。 DRM将使各个平台的内容提供商们,无论是通 过Intemet、流媒体还是通过交互数字电视,都能提供更 多的内容,采取更灵活的节目销售方式,同时有效地保 护知识产权。 由于杂凑函数即Hash函数是实现有效、安 全可靠数字签字和认证的重要工具 ,所以它是DRM系 统中安全认证协议的重要模块。 本文在分析SHA一256 算法的基础上,给出了在FPGA上实现SHA256算法和 HAMC算法的一种电路设计方案。

0feb3578be254322fff81a0cb79000ed.png

杂凑函数 

杂凑(Hash)函数是将任意长的数字串M映射成一 个较短的定长输出的数字串H的函数,以h(M)表示,称 H=h(M)为M的杂凑值、杂凑码或消息摘要。 杂凑码是 消息中所有比特的函数,因此它提供了一种错误检测能 力,即改变消息中任何一个比特或几个比特都会使杂凑 码发生改变。 单向杂凑函数还可按其是否有密钥控制划 分为两大类: 一类有密钥控制,以h(k,M)表示,为密码 杂凑函数; 另一类无密钥控制,为一般杂凑函数。无密钥 控制的单向杂凑函数,其杂凑码只是输入字串的函数, 任何人都可以计算,因而不具有身份认证功能,只用于 检测接收数据的完整性,如串改检测码MDC。 而有密钥 控制的单向杂凑函数,能满足各种安全性要求,其杂凑 码不仅与输入有关,而且与密钥有关,只有持此密钥的 人才能计算出相应的杂凑码,因而具有身份验证功能, 如消息认证码MAC。 杂凑函数的目的是为需要认证的数据产生一个“指 纹”。 为了能够对数据实现认证,杂凑函数应满足以下条件:

(1) 函数的输入可以为任意长度,而函数的输出则是固定长的。

(2) 已知M,求h(M)为容易,可用硬件或软件实现。

(3) 已知H ,欲求使得h(M)=H的M在计算上是不可行的,这一性质称为函数的单向性,并称h(M)为单向杂凑函数。

(4) 已知M,找出N(N≠M),使得h(N)=h(M)在计算上是不可行的。如果单向杂凑函数满足这一性质,则称其为弱单向杂凑函数。

(5) 找出任意两个不同的输入M和N,使得h(N)=h(M)在计算上是不可行的。如果单项杂凑函数满足这一性质,则称其为强单向杂凑函数。

SHA256算法  美国国家标准技术研究所(NIST)与美国国家安全局 (NSA)共同设计出一种与美国数字签字算法(DSS)一起 使用的安全哈希算法SHA(secure hash algoritlhm),并于 1992年1月31日公布,于1993年5月11日采纳为标 准。 后经不断改进,现在已经发布了五种安全的哈希标 准,分别为SHA一1、SHA一224、SHA一256、SHA一384、 SHA一512。 本文将对SHA一256算法进行分析。 该算法包括以下几步处理: (1)  对消息填充。 对消息填充,使得其比特长在模 512下为448(即长度=488 mod 512),即使消息长度已 满足要求,仍需填充。 一次填充位数在1—512之间。 填充 方式是固定的,即第一位为1,其余各位皆为0。 (2)  附加消息长度。 在消息后附加64位,将其看作 64位无符号整数(最高有效位在前),它表示了消息填 充前的长度。 (3)  解析填充后的信息。填充后的消息被解析成N 个5 12比特的分组。 (4)  迭代压缩。 SHA一256算法使用了六种逻辑函 数,由64步迭代运算组成。每步都以256位缓存值 ABCDEFGH为输入,然后更新缓存内容用于下次迭代计 算。 每步使用一个32位的形。 和一个32位的常数值K。 其中每一个都是针对长度为32位的字(x,y,z)的操作,其 结果是得到一个新的长度为32位的字。 六个逻辑函数 描述如下:

f69e560dcd732e4fde54d74c827d22e5.png

在所有的512比特长的分组处理完毕之后,SHA一256算法的最后一个分组产生的输出为256bit的报文摘要。上图详细说明了SHA一256算法单步迭代处理的流程。



历史文章导航

  点击下方链接,点击进入原创文章 

基于 FPGA 的 SHA256 高效数字加密研究(一)

基于 FPGA 的 SHA256 高效数字加密研究(二)

基于 FPGA 的 SHA256 高效数字加密研究(三)

基于 FPGA 的 SHA256 高效数字加密研究(四)

【总结】基于 FPGA 的 SHA256 高效数字加密研究(五)

FPGA基础入门(一)FPGA基础入门(二) FPGA基础入门(三)从基础入门到高手的相关知识 Filecoin代码解析—Lotus入门篇(1) Filecoin代码解析—Lotus入门篇(2):Seal简析之CAR格式篇

更多详细内容请大家关注滨合区块链,关注区块链底层技术发展最新进展~

deac551239edfe71fbf9e53139c58749.png
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值