主要成员
1252732460的标识图片 1252732460 [管理员
dermot-2044728的标识图片 dermot-2044728 [管理员
叶云逸的标识图片 叶云逸 [管理员
鲁鲁修-2047434的标识图片 鲁鲁修-2047434 [管理员
itellyou的标识图片 itellyou [创建者
申请参加这个项目
了解该团队的信息
帮助文档
 
项目信息
项目名称:【HLS】 MD5数据加密算法  
项目信息:
应用领域:工业控制、科研、医疗
设计摘要:
当今设计安全越来越重要,哈希函数作为加密技术中的一类重要方法广泛应用于电子商务、网络安全和数据存储等各种领域。本设计首先用c语言实现MD5数据加密算法,然后使用HLS软件将其进行综合,通过采用不同的优化策略,得到理想的吞吐率,与较小的资源占用的设计方案。
系统原理和技术特点:

MD5全称是Message-Digest algorithm 5(信息摘要算法5),它作为MD4MD3的改进算法,由Ronald Rivest1992年发明而来。在MD5算法中,输入消息中任意位的改变都将导致MD5值的巨大变化,因此该算法广泛应用于数据校验等信息安全领域。它是一种不可逆的变换,可以对任何长度不超过264二进制位的消息变换成一个长度为128比特的哈希值,但是无法将一个哈希值变换回原始的消息。

RFC1321标准中的MD5算法主要步骤如下:

在一些初始化处理后,MD5512位分组来处理输入文本,每一分组又划分为1632位子分组。算法的输出由四个32位分组组成,将它们级联形成一个128位散列值。

1)附加填充比特:填充消息使其长度恰好为一个比512位的倍数仅小 64 位的数。即对报文进行填充使报文的长度(比特数)448512同余。填充方法是附一个1在消息后 面,然后再添加所要求的多个比特0。

2)附加长度值:在其后附上64位的消息长度(填充前)。如果消息长度大于264 ,仅使用该长度的低64比特。这样,该域包含的长度值为初始长度模264的值。这两步的作用是使消息长度恰好是512位的整数倍(算法的其余部分要求如此),同时确保不同的消息在填充后不相同。

3)初始化寄存器:四个32位初始化变量为:

A=0x01234567

B = 0x89abcdef

C= 0xfedcba98

D= 0x76543210

它们也被称为链接变量(chaining variable)。

4)进行算法的主循环:这一步是算法的核心,它是一个包含四个大循环的64步函数,四个大循环结构相同,但每次使用的逻辑函数不同,每一个大循环由对512比特的16步操作组成,即每16步为一轮大循环。每次操作如下(Ai+1Bi+1Ci+1Di+1为第i+1个时钟周期时输入寄存器的值)

Ai+1Di

Bi+1Bi(( f (Bi , Ci , Di ) + Ai + Ti +1 + Wi +1 )) <<  Si +1

Ci+1 = Bi

Di+1 = Ci

以一下是每轮中用到的四个非线性函数(每轮一个)。

f (X , Y , Z ) = (X & Y ) | (Z & (~ X ))

f (X ,Y , Z ) = (X & Z ) | (Y & (~ Z ))

f (X ,Y , Z ) = X ^ Y ^ Z

f (X ,Y , Z ) = Y ^ (X | (~ Z ))

常数Ti可以如下选择:在第i步中,Ti4294967296*abs(sin(i))的整数部分,i的单位是弧度。Wi512位消息分组中的一个,Si是每次循环移位的次数。对每次而言也是固定的常数。

5)结果输出:所有64步完成之后,将第64步的输出加到四个初始化变量上作为新的初始化变量,进行下一个512比特分组的运算,直到所有分组处理完毕。

硬件实现流程图.jpg
系统框图:硬件实现流程图.jpg
MD5算法流程图.jpg
系统框图:MD5算法流程图.jpg
计划书:挑战赛计划书.doc [153.5 KB]
当前项目状态:
参赛信息:
指导老师姓名: 吴丽娟
指导老师职称: 副教授
学校: 成都信息工程学院
研究方向: 1. 集成电路设计与制造
2. 微电子系统设计封装与测试
参赛情况: OpenHW2014开源硬件与嵌入式计算大赛
需求信息:
拟采用的平台:挑战赛目标器件Kintex7-325T
是否需要设计扩展板?
需要的基本功能:
最新版本:
暂无发布的版本信息   了解目前项目的开发进度
相关评论:  
添加评论  更多评论
正在读取数据……
关于OpenHW | OpenHW使用说明 | FAQ | 相关法律 | 版权声明 | 网站地图
联系邮件:aimei@eefocus.com  联系电话: 0512-80981663-8069    Fax:0512-80981279
Powered by eefocus.com