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

时间:2025-11-01  作者: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内部完成指令问答的过程,有效降低了硬件仿制的可能性。

猜您喜欢

UFS(Universal Flash Storage)是高性能的存储解决方案,应用于智能手机、平板电脑和其移动设备。UFS的规格尺寸主要分为多个版本,最常见的...
2013-05-06 00:00:00

多普勒测量系统利用多普勒效应测量运动目标(固体、液体或气体)的速度。最著名的应用大概要算雷达枪了,交通巡警利用它检测超速汽车。在测量除汽车速度之外的其他物体的...
2019-04-26 16:07:00

厚声贴片电阻的命名看似复杂,其实很容易理解。通常由字母和数字组合而成,每部分都代表着特定的信息。尺寸代码通常用两位数字表示,例如0805、1206等,分别代表电...
2024-11-29 10:25:53

排阻作为精密的连接与调控工具,是不可少的配件。而提及ASJ排阻,这一在行业内享有盛誉的品牌,其背后所承载的国家归属问题,自然成为了众多工程师和技术爱好者关注的焦...
2022-08-28 17:56:52

串口通信也是一个基础实验,是FPGA与电脑、单片机、DSP通信的一种最简单的方案,对通信速率要求不高时可以选择UART通信。您可能已经知道UART时序的控制、波...
2018-05-05 10:12:00

随着数据中心、人工智能、自动驾驶、5G、计算存储和先进测试等应用的数据量和数据流量不断增大,不仅需要引入高性能、高密度FPGA来发挥其并行计算和可编程硬件加速功...
2022-07-06 15:48:00

预售阻容感是指消费者在购买商品或服务前,因对产品了解不足或缺乏信任而产生的心理障碍。这种现象在预售模式中尤为明显,消费者往往因为无法直接体验产品而感到不安,担心...
2008-03-26 00:00:00

光敏电阻(又称光电阻或光敏电阻器)是电阻值随光照强度变化而变化的元件。应用于光线探测、自动照明、光线控制等领域。了解光敏电阻的工作原理及其光照强度的计算公式,对...
2025-04-17 22:00:41

可调谐滤波器是能够根据需求调整频率响应的电子元件,应用于通信、音频处理和信号处理等领域。其核心功能是选择性地允许特定频率的信号通过,同时抑制其频率,从而实现信号...
2014-09-29 00:00:00

可调电阻作为电子电路中重要的调节元件,得到了应用。Uniohnm(厚声)作为国内知名的电子元器件制造商,其可调电阻产品因品质稳定、性能优良而受到青睐。那么,Un...
2023-12-23 02:06:54