天游ty8线路检测中心登录(中国)有限公司

行业新闻

DS28E01芯片加密原理及设计

DS28E01芯片加密原理及设计

{C}1、{C}DS28E01芯片加密原理
  MAXIM公司生产的DS28E01将1024位EEPROM与符合ISO/IEC110118-3安全散列算法(SHA-1)的质询响应安全认证结合在一起。在单个芯片内集成了1024位EEPROM(分为4页,每页256位)、64位密钥、一个寄存器页、512位 SHA-1引擎和 64位 ROM序列码。DS28E01对数据按照 1-Wire协议串行传送,通信速率为15.3kbps(标准速率模式)或125kbps(高速模式),只需要一根数据线和一根返回地线,最大限度的节省了对控制器I/O口的占用。
  HASH加密函数是一种单向散列函数,是一种单向密码体制,即它是一种从明文到密文的不可逆映射,只有加密过程,不能解密,也就是说,从数学上不能由密文反过来推算出明文的任何消息。其中常见的 HASH函数的算法有:MD5、SHA、N-Hash、RIPE-MD、HAVAL等。
  SHA-1算法是一种通过直接构造复杂的非线性关系达到单向要求,设计单向散列函数的算法,具有“不可逆”、“防碰撞”以及良好的“雪崩效应”,防止了盗窃者利用相近的输入来达到破解密码的可能性。

DS28E01内部的加密过程是在内部的加密引擎中进行的,其加密引擎利用的是 HSAH函数的 SHA-1算法,但是和标准的 SHA-1算法又有几点不一样。标准算法的输入值可以小于、等于或大于分组长度512bit,但是 SHA-1引擎的 SHA-1算法输入的是固定的512bit,也就是标准 SHA-1算法的分组长度。并且标准 SHA-1算法每个分组的最后一次循环体的输出都要和输入每个分组的初始常量做MOD232加法,而在 DS28E01的 SHA-1引擎中由于只有一个512bit的循环体,最后就省略了将初始常量添加回结果的最终步骤。至于引擎的 SHA-1算法的其他步骤则与标准的 SHA-1算法相同。

 2、加密模块设计
  目前由很多能实现 FPGA加密的方法,如在 Xilinx Virtex-II和 Virtex-4这类的高端FPGA中,支持对配置数据流的加密操作。这样仅当 FPGA中含有相同的密钥时,这些数据流才可以工作。但是这种加密的方法对更为广泛的、对成本比较敏感的应用场合来说不甚合适。因此,这里利用另一种可行的身份识别法来防止意外拷贝。这种方法对所有 FPGA家族都使用,包括低端的 Xilinx Spartan-3系列FPGA。
  加密模块的原理图设计
  硬件部分主要由 Xilinx公司 Spartan-3系列的X3CS500E以及MAXIM公司的DS28E01芯片组成。DS28E01芯片和FPGA之间是通过DS28E01的第二引脚的 1-Wire通信总线进行通信的。
  唯一识别号及附加数据(常数)在内的 HASH运算结果,运算的结果是 160位的 MAC(消息认证码),同时,FPGA内部也会同安全存储器一样进行包含密钥、随机数、附加数据及器件识别号在内的 HASH计算并产生一个期望的MAC。然后,在 FPGA内会对这两个 MAC进行比较,如果一样,则 FPGA认为该电路是“合法”电路,因为它拥有正确的密钥。此时 FPGA进入正常工作状态,开启/执行其配置数据中的所有功能,会执行所有的功能。如果 FPGA和DS28EO1两者产生的MAC不匹配,则系统会认为该电路是一个“非法”电路,因为该系统不具有正确的密码。此时 FPGA进入非正常运行状态,只执行有限的功能。
  加密认证模块的程序设计
  为了实现加密认证的功能,我们在 FPGA中利用 VHDL语言设计了IFF模块,在IFF模块的内部是根据SHA-1算法实现了对输入密码的HASH函数运算以及与DS28E01中产生的MAC的比较功能,IFF模块的接口定义。

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

 




首页

电话

地址

到底了~