![]() |
|
||||||||||||||
| . 网站首页 . 产品新知 . 业界资讯 . 技术文库 . 下载中心 . 服务导航 . 邮购需知 . 技术论坛 . | ||
|
||
|
|||||
| 数字签名算法SHA-1的FPGA高速实现 | |||||
作者:与非网 文章来源:与非网 点击数: 更新时间:2008-7-27 ![]() |
|||||
|
引言 首先填充消息使其长度恰好为一个比512的倍数仅小64位的数。填充方法是附一个1在消息后面,后接所要求的多个0,然后在其后附上64位的消息长度(填充前),使消息长度恰好是512位的整数倍。
图3中160位输入数据缓冲器用来放置初始数据(5个32位变量A、B、C、D和E),而F1234代表SHA-1算法中的4组非线性函数ft(X,Y,Z),根据需要用多路选择器Mux-1选择其中一个(ft(X,Y,Z)=(X∧Y)∨((X)∧Z),对于t=0至19;ft(X,Y,Z)=X臲臵,对于t=20至39;ft(X,Y,Z)=(X∧Y)∨(X∧Z)∨(Y∧Z),对于t=40至59;ft(X,Y,Z)=X臲臵,对于t=60至79),4个常数为Kt存在ROM中(即组件),32×5加法器将5个32位数相加,为加快相加的计算速度使用先行进位加法器来执行,具体连接结构见图4。
采用Aldec公司的Active HDL V5.1对SHA-1算法进行功能模拟,测试值和中间结果使用Crypto++中的库函数的输入值和运算结果,并使用这些测试值和中间结果对SHA-1算法的VHDL语言描述进行验证和查错,经验证的SHA-1算法的VHDL语言描述使用Xilinx公司的ISE 4.1进行逻辑综合、映射、布局和布线,生成网表用于时序仿真,最后将bitstream文件下载FPGA器件上,完成设计开发。
在软件控制方面,安全性算法协处理器驱动程序是通过函数Sebsw_intr()直接控制协处理器,此函数有来自网络控制器的中断和来自操作系统内核的时钟中断两个输入;Sebsw_hdr_chk()检验消息包的头部,如果发生硬件中断,Sebsw_intr()调用Sebsw_hdr_chk()函数;函数ether_input()检查接收到的数据类型,将接收到的分组加入到队列处理;函数ipinput()决定分组的最终地址,如果最终地址为本地地址,函数将分组传给更上一层软件,如果最终地址为非本地地址,则将分组传给ip_forward();函数ip_output()从收到的数据中生成IP数据包,然后Sebsw_start()将数据包传给网络控制器。软件控制结构见图6。
结束语 |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|