加密认证模块的程序设计
加密认证模块的程序设计为了实现加密认证的功能,我们在 FPGA中利用 VHDL语言设计了IFF模块,在IFF模块的内部是根据SHA-1算法实现了对输入密码的HASH函数运算以及与DS28E01中产生的MAC的比较功能,IFF模块的接口定义。
其中,CLKIN是一个大于20M的时钟;IFF是认证启动信号,在IFF信号上升沿的时候模块内部开始启动HSAH运算过程以及密码比较过程;RESET是复位信号,高电平有效;IB则是 FPGA通过1-Wire协议与 DS28E01通讯的信号;FOE信号是 IFF模块的输出线,在IFF内部MAC比较完成后,如果FPGA认定该电路具有正确的密码,则会置FOE信号为低电平,反之如果FPGA认定该电路不是合法的电路,则会置FOE信号为高电平,在 FPGA内部可以根据FOE的信号来实现不同的功能。这样,系统就可以根据电路是否是被拷贝的来实现不同的功能,防止了设计被拷贝。
在IFF模块中,实现了标准的SHA-1算法,在 FPGA配置完成之后,在 RESET信号与时钟信号的控制下,FPGA内部就会运行 SHA-1算法产生相应的MAC,与由DS28E01产生的MAC进行比较,根据比较结果将FOE设置为不同的状态,然后FPGA就可以根据 FOE的状态来判断是否是合法电路。其中的初始化主要完成消息填充和附加原始消息长度以及在算法中需要的函数和常数的定义。
谢谢楼主的分享
页:
[1]