基于FPGA和单片机构成的电子加密系统的设计

时间:2025-07-26  作者:Diven  阅读:0

1、 引言

基于FPGA和单片机构成的电子加密系统的设计

FPGA/CPLD技术是近年来计算机与电子技术领域的又一场新的革命,为了保护知识产权,出现了各种层次的针对FPGA的安全加密技术。常用的方法有:硬件加密法,软件加密法,可重构加密法等。然而在传统的许多加密技术中,人们通常能够通过对代码的跟踪、分析和PCB板的复制,而实现硬件和软件的非法拷贝。为了进一步提高数字系统的安全性,本文论述了基于SHA加密算法的,采用FPGA和DS2432实现的硬件加密技术。不但实现简单而且可有效降低硬件仿制的可能性。

2、 IFF的概念

IFF(IdentifICation Friend or Foe)的字面含义为身份鉴别,等效电路如图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)

B C D (0≤t≤39)

(B∧C)∨(B∧D)∨(C∧D) (40≤t≤59)

B C D (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 = 67452301h

B = EFCDAB89h

C = 98BADCFEh

D = 10325476h

E = 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在Xilinx FPGA 中的应用

把IFF概念应用于DS2432的安全EEPROM中,高级别的安全加密方法便获得了实际的应用,如图3所示:

图3 DS2432在系统中的实际应用

DS2432安全EEPROM与一个Xilinx FPGA之间的连接框图勾画了这种加密技术的思维方法。FPGA从flash ROM中读取程序进行自我配置,当配置完成后,用户设计自动的处于禁止状态。然后,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和单片机构成的电子系统中,这样的加密方法具有重要的意义和使用价值。

本文的创新点:利用FPGA内部的数据加密内核和由其产生的随机质询码,通过SHA-1算法计算出相应的MAC值,并且在FPGA内部完成指令问答的过程,有效降低了硬件仿制的可能性。

猜您喜欢

现代电子设备中,连接器的选择非常重要。CONN_20.32X8.8MM_SM是一款广泛应用于各种电子产品的连接器,其独特的设计和优良的性能使其成为工程师和设计师...
2025-03-09 20:29:28

通讯设备在现代社会中是非常重要的配件,其应用领域而多样。在商业领域,企业通过通讯设备实现高效的信息传递与协作,促进了团队的沟通与决策。在教育行业,远程教学和在线...
2014-03-10 00:00:00

可调电阻作为电子电路中的重要元件,应用于电压调节、信号控制等领域。振华科技作为国内知名的电子元器件制造商,其生产的可调电阻以稳定的性能和优良的品质赢得了市场的认...
2025-03-07 09:34:14


选购贴片电阻时,需要关注以下几个关键规格指标:阻值 (Resistance): 这是最基本的指标,表示电阻的大小,单位为欧姆 (Ω)。常见的阻值范围很广,从毫欧...
2024-11-26 11:30:12

现代电子设备中,封装技术的选择对电路设计的性能和效率有着至关重要的影响。DFN(DualFlatNo-lead)封装因其优越的散热性能和小巧的体积,越来越受到电...
2025-02-24 16:48:52

贴片电阻「5R1」表示其阻值为5.1欧姆。字母「R」在此处用作小数点,将数字5和1分开。这种表示方法在电子元件领域非常常见,尤其是在贴片元件上,由于空间有限,需...
2024-11-26 11:30:11

贴片电阻200R,即阻值为200欧姆的贴片电阻,是一种常用的电子元件。在电路中主要起到限流、分压、阻抗匹配等作用。那么,200R的阻值选择是否合适呢?这需要根据...
2024-11-29 10:26:26

发光二极管(LED)作为高效能的光源,应用于各种照明和显示技术中。为了确保LED的正常工作和延长其使用寿命,测量其电流是非常重要的一步。本文将详细介绍如何测量L...
2025-03-31 17:00:34