基于FPGA和单片机构成的电子加密系统的设计_第1页
基于FPGA和单片机构成的电子加密系统的设计_第2页
基于FPGA和单片机构成的电子加密系统的设计_第3页
基于FPGA和单片机构成的电子加密系统的设计_第4页
基于FPGA和单片机构成的电子加密系统的设计_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于FPGA和单片机构成的电子加密系统的设计1、引言FPGA/CPLD技术是近年来计算机与电子技术领域的又一场新的革命,为了保护知识产权,出现了各种层次的针对FPGA的安全加密技术。常用的方法有:硬件加密法,软件加密法,可重构加密法等。然而在传统的许多加密技术中,人们通常能够通过对代码的跟踪、分析和PCB板的复制,而实现硬件和软件的非法拷贝。为了进一步提高数字系统的安全性,本文论述了一种基于SHA加密算法的,采用FPGA和DS2432实现的硬件加密技术。不但实现简单而且可有效降低硬件仿制的可能性。2、IFF的概念IFF(IdentificationFriendorFoe)的字面含义为身份鉴别,等效电路如图1所示:图1身份鉴别等效电路在FPGA正式工作前,首先要完成与加密芯片的指令问答,共分如下几步:(1)FPGA执行随机数产生器(RNG),产生一个随即数Q,并把它送往安全EEPROM中。(2)安全EEPROM利用仅对设计者开放的密钥,使用HASH函数,进行安全散列算法,对Q进行加密,产生一个信息A。(3)FPGA使用相同的密钥产生期望的信息E,与来自安全EEPROM的实际信息A进行比较。(4)如果期望的信息E和实际的信息A相同,则表明这个设计是一个Friend,否则这个设计是一个Foe,因为这个系统的非法拷贝可能已经发生。(5)最后,FPGA必须按以下方式进行设计:如果Foe被检测到,系统停止运行,或者以减少的功能运行,只有系统被检测为Friend时,用户设计的功能才能正常的运行。3、SHA-1算法SHA-1算法即是安全散列算法,该算法采用十六个32位字(0≤t≤15)作为输入数据,可用于计算读验证页命令,这十六个32位字来自于密钥、存储器等相关数据以一定的函数关系生成。SHA算法还涉及到一个称为(0≤t≤79)的八十个32位字的序列,一个称为Kt(0≤t≤79)的八十个32位字的序列,一个布尔函数ft(B,C,D)(0≤t≤79),其中B、C和D为32位字,以及另外三个32位字,称为A,E和TEMP。它们的定义如下:函数ft(B,C,D)=(B∧C)∨((B\)∧D)(0≤t≤19)BCD(0≤t≤39)(B∧C)∨(B∧D)∨(C∧D)(40≤t≤59)BCD(0≤t≤79)序列=(0≤t≤15)(16≤t≤79)序列Kt=5A827999h(0≤t≤19)6ED9EBA1h(20≤t≤39)8F1BBCDCh(40≤t≤59)CA62C1D6h(60≤t≤79)变量A、B、C、D、E初始化如下:A=67452301hB=EFCDAB89hC=98BADCFEhD=10325476hE=C3D2E1F0h当t从0循环至79,执行了下面的的一系列计算后,160位的MAC是A、B、C、D和E的串联(不考虑任何进位):主机通过读验证页命令读取MAC,与主机本身计算的MAC值进行比较,以判断是否有非法拷贝产生。4、DS2432的硬件配置和功能描述DS2432是一个具有SHA-1引擎、支持1-wire总线的EEPROM存储器,主要用于数字系统的加密、计数等。(1)硬件配置DS2432与外界通过1-wire端口进行通信,其内部等效电路如图2所示:图2硬件配置及内部等效电路由于1-Wire总线只定义了一条数据线,所以,保证在适当的时间驱动总线上的每个器件非常重要,为了达到这一目的,接在1-Wire总线上的每个器件都必须漏极开路和三态输出。具体内容可参阅DS2432的数据手册。(2)功能描述DS2432有五个主要的数据部件:1)64位光刻ROM,2)64位暂存器,3)四个32字节的EEPROM页,4)64位寄存器,5)64位密钥存储器和一个512位的SHA-1(安全散列算法)引擎。DS2432根据自己的密钥、指定存储器页的所有数据、自身的注册码和一个3个字节的质询码来计算MAC,主机通过读验证页命令可以获得全部或部分存储器页的数据和一个MAC。利用MAC,主机能够判定存储在DS2432中的密钥是否对某个特定的功能有效。5、DS2432在XilinxFPGA中的应用把IFF概念应用于DS2432的安全EEPROM中,一种高级别的安全加密方法便获得了实际的应用,如图3所示:图3DS2432在系统中的实际应用DS2432安全EEPROM与一个XilinxFPGA之间的连接框图勾画了这种加密技术的思维方法。首先,FPGA从flashROM中读取程序进行自我配置,当配置完成后,用户设计自动的处于禁止状态。然后,FPGA通过1-wire总线送给DS2432三个字节的随机质询码,并读取DS2432内部存储器的相关数据,DS2432和FPGA共同使用一个只有设计者本人知道的64位密钥,结合相关数据,利用SHA-1算法,分别计算出各自的MAC值。最后,FPGA从DS2432中读取MAC与自己计算的MAC进行比较来判断通信是否成功。其工作流程如图4所示:图4系统身份验证工作流程由于质询码是由FPGA随机产生的,通信是否成功的判断在FPGA的内部进行,使得系统具有较高的抗追踪性,也使一些使用复制DS2432来破解系统失去了理论上的可操作性。6、结束语利用FPGA内部的数据加密内核,使FPGA完成与DS2432通信后的判断在FPGA内部进行,这样就避免了在一些小的系统设计中通过破译程序的机器码而获得程序的解密。并且,由于从FPGA配置信息中获取相应的硬件描述语言代码是非常困难的事情,因此在一个由FPGA和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论