电子发烧友网 > 可编程逻辑 > 正文

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

2020年08月03日 17:58 次阅读

1、 引言

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

2、 IFF的概念

IFF(IdentificaTIon Friend or Foe)的字面含义为身份鉴别,等效电路如图1所示:

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

图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内部完成指令问答的过程,有效降低了硬件仿制的可能性。

责任编辑:gt

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

写好状态机--从2019年全国FPGA竞赛谈Verilog编码技巧

理解Verilog编码技巧掌握FPGA中状态机的写法掌握非重叠序列检测代器Verilog代码编写
发烧友学院发表于 2020-04-21 00:00 20929次阅读
写好状态机--从2019年全国FPGA竞赛谈Verilog编码技巧

基于EP1C6Q240C8的FPGA芯片实现电子...

本文采用的是ALTERA公司的EP1C6Q240C8型号的FPGA,整个体统采用模块化设计的思想,将....
发表于 2020-08-03 18:02 0次阅读
基于EP1C6Q240C8的FPGA芯片实现电子...

FPGA器件EP1C3T100I7实现高速传输速...

近些年来,各种电路功能,包括模拟电路和数字电路,越来越多地用单片集成电路来实现。采用单片集成电路不仅....
发表于 2020-08-03 17:54 6次阅读
FPGA器件EP1C3T100I7实现高速传输速...

基于可编辑逻辑器件实现ADPLL的应用设计

随着数字电路技术的发展,特别FPGA技术的普遍应用,采用FPGA实现全数字锁相环(ADPLL)的应用....
发表于 2020-08-03 17:40 8次阅读
基于可编辑逻辑器件实现ADPLL的应用设计

采用编程逻辑器件控制8个LED小灯电路的设计

演化硬件(EHW)是指能根据外部环境变化自动改变自身结构和功能的一类硬件,它把可编程逻辑器件的结构位....
发表于 2020-08-03 17:35 11次阅读
采用编程逻辑器件控制8个LED小灯电路的设计

基于FPGA器件实现AMI编码器和译码器的设计

实际的基带传输系统,含有丰富直流和低频成分的基带信号不适宜在信道中传输。而对具有易获取定时信息、无直....
发表于 2020-08-03 17:31 13次阅读
基于FPGA器件实现AMI编码器和译码器的设计

基于FPGA器件实现UART适应自顶向下的设计

UART(通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。专....
发表于 2020-08-03 17:25 4次阅读
基于FPGA器件实现UART适应自顶向下的设计

基于VHDL语言及SOPC技术实现全数字调频信号...

在常用的信号源及信号处理设计方案中,RC/LC振荡电路频率调整方便,但是它的工作频率稳定度较低。频率....
发表于 2020-08-03 17:19 15次阅读
基于VHDL语言及SOPC技术实现全数字调频信号...

采用EPM7064S芯片和TMS320F2812...

CCD驱动板完成CCD信号的驱动,产生CCD像元同步、帧同步信号和经过运放处理的视频信号,DSP电路....
发表于 2020-08-03 17:12 16次阅读
采用EPM7064S芯片和TMS320F2812...

采用SOPC技术和VHDL语言实现图像增强处理系...

图像增强最早起源于人类的空间探索计划。从卫星或飞船上获得的关于地球和太阳系中行星的图像因为多种原因而....
发表于 2020-08-03 17:07 13次阅读
采用SOPC技术和VHDL语言实现图像增强处理系...

基于FPGA XC3S400芯片和ARM相结合实...

在往复式压缩机状态在线监测系统中,由于压缩机结构复杂、零部件多、运动形式各不相同,发生的故障也就会多....
发表于 2020-08-03 17:01 19次阅读
基于FPGA XC3S400芯片和ARM相结合实...

基于EP1C6Q240C8芯片的FPGA开发板实...

本文使用了6输入1输出的BP神经网络结构,其隐含层选择了8个神经元。当传感器出现故障时,系统就根据传....
发表于 2020-08-03 16:53 20次阅读
基于EP1C6Q240C8芯片的FPGA开发板实...

紫光同创PGL22G开发平台试用---软件和器件

已经可以支持到DDR3的800M。内部频率150M---200M,可以很好的运行。硬件部分和国外的中....
发表于 2020-08-03 16:46 69次阅读
紫光同创PGL22G开发平台试用---软件和器件

Vitis AI:从边缘到云的最佳人工智能推断

有了世界领先的模型压缩技术,我们可以在对精度影响极小的情况下,将模型的复杂性降低 5 至 50 倍。....
发表于 2020-08-03 16:40 59次阅读
Vitis AI:从边缘到云的最佳人工智能推断

提高MRAM的整体产量和需求,来降低MRAM存储...

Everspin在磁存储器设计,制造和交付到相关应用中的知识和经验在半导体行业中是独一无二的。Eve....
发表于 2020-08-03 16:26 18次阅读
提高MRAM的整体产量和需求,来降低MRAM存储...

PIC单片机的振荡器应该如何配置

PIC系列单片机可工作于不同的振荡器方式。用户可以根据其系统设计的需要,选择下述四种振荡方式中的一种,其振荡的...
发表于 2020-08-03 15:56 0次阅读
PIC单片机的振荡器应该如何配置

采用复杂控制逻辑器件和VHDL语言实现曼彻斯特编...

虽然计算机通信的方法和手段多种多样,但都必须依靠数据通信技术。数据通信就是将数据信号加到数据传输信道....
发表于 2020-08-03 15:53 24次阅读
采用复杂控制逻辑器件和VHDL语言实现曼彻斯特编...

请问zynq 怎么实现PS与PL数据交互,然后通过UART串口打印出来?

请问zynq 怎么实现PS与PL数据交互,然后通过UART串口打印出来?   前辈们做过的指导我一下。 ...
发表于 2020-08-03 15:53 33次阅读
请问zynq 怎么实现PS与PL数据交互,然后通过UART串口打印出来?

如何学习单片机,学习单片机的步骤是怎样的

学习单片机的步骤 学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种....
发表于 2020-08-03 09:59 22次阅读
如何学习单片机,学习单片机的步骤是怎样的

基于增强型8051单片机实现记忆示波器的设计和应...

示波器是电子测量的基本仪器。由于其具有图形显示实时、直观和形象等特性,在一般的物理实验室中它也是常用....
发表于 2020-08-03 09:57 39次阅读
基于增强型8051单片机实现记忆示波器的设计和应...

基于全数字式调频计数测量法实现对脉冲占空比的测量

占空比是脉冲信号的一个基本参数,不论在脉冲电源设计中,还是在脉冲信号的应用中,都需要知道脉冲的占空比....
发表于 2020-08-03 09:29 26次阅读
基于全数字式调频计数测量法实现对脉冲占空比的测量

使用单片机为核心实现频率测量模块电路的设计

随着无线电技术的发展与普及,“频率”已经成为广大群众所熟悉的物理量。而单片机的出现,更是对包括测频在....
发表于 2020-08-03 09:23 43次阅读
使用单片机为核心实现频率测量模块电路的设计

单片机测试系统的链式存储方式和应用方案分析

在自动化测试领域里,单片机测试系统凭借其成熟的应用体系,简单的系统结构以及优良的性价比得到了越来越广....
发表于 2020-08-03 09:06 268次阅读
单片机测试系统的链式存储方式和应用方案分析

单片频率计芯片NB8216的性能特点及应用电路分...

1、全新设计的单片频率计芯片,全面取代MCU单片机测频方案。2、测量频率达40MHz,功能兼容ICM....
发表于 2020-08-03 08:59 96次阅读
单片频率计芯片NB8216的性能特点及应用电路分...

使用LGSR-WIFI模块通过外网向微个连续传送1万帧数据不掉帧,是怎样做到的?

购买了模块,做了下实验,确实可以做的,就是不清楚其中的原理。请教大家,谢谢。 测试视频地址: https://www.bili...
发表于 2020-08-03 08:44 6次阅读
使用LGSR-WIFI模块通过外网向微个连续传送1万帧数据不掉帧,是怎样做到的?

请问一个单片机如何联接两个mpu6050?

跪求解答
发表于 2020-08-03 01:44 0次阅读
请问一个单片机如何联接两个mpu6050?

如何使用单片机实现电源开关控制

个电路控制电源开/关由1脚(GP0)来控制单片机电源。按下S1,Q1也就打开了,提供电压Vin,PI....
发表于 2020-08-01 11:44 382次阅读
如何使用单片机实现电源开关控制

奈奎斯特升余弦数字滤波器的工作原理和采用FPGA...

随着信息需求量的增大,网络都逐渐朝着综合化、宽带化方向发展。数据速率的提高,对于数字信号处理的速度和....
发表于 2020-07-31 18:04 53次阅读
奈奎斯特升余弦数字滤波器的工作原理和采用FPGA...

基于MAX7000S系列的FPGA芯片解决基带传...

现场可编程门阵列FPGA是一种由用户实现芯片功能的器件,用户在设计完成之后可以进行功能仿真,也可以现....
发表于 2020-07-31 17:55 70次阅读
基于MAX7000S系列的FPGA芯片解决基带传...

数字Σ-Δ调制器的基本原理及采用FPGA器件实现...

Σ-Δ调制在数字信号处理以及通信系统方面的应用正越来越引起大家的重视,因为Σ-Δ调制实现时主要采用数....
发表于 2020-07-31 17:52 71次阅读
数字Σ-Δ调制器的基本原理及采用FPGA器件实现...

基于复杂可编程逻辑器件CPLD实现示波器的存储和...

所谓数字存储就是在示波器中以数字编码的形式来储存信号,数字存储示波器的简称是DSO(“Digital....
发表于 2020-07-31 17:46 102次阅读
基于复杂可编程逻辑器件CPLD实现示波器的存储和...

基于EPM7128S84-15控制器CPLD器件...

在数字录像、数字监控等领域内,人们通常只对场景内存在的物体运动感兴趣。在这种情况下,需要对输入的视频....
发表于 2020-07-31 17:41 63次阅读
基于EPM7128S84-15控制器CPLD器件...

基于GPS中频信号源的FPGA设计实现方案

在GPS接收机的设计中,为了检验和完善信号处理算法,需要在本地获得GPS数字中频信号数据。采用真实的....
发表于 2020-07-31 17:37 163次阅读
基于GPS中频信号源的FPGA设计实现方案

采用FPGA器件实现滤波器的设计和验证方法

光电脉冲编码器是一种集光、机、电为一体的用于检测机械位移或间接检测速度的光电传感器,根据其用于检测角....
发表于 2020-07-31 17:31 54次阅读
采用FPGA器件实现滤波器的设计和验证方法

基于复杂可编程逻辑器件实现数据采集系统的软硬件设...

以往的数据采集系统多数采用单片机、DSP等微处理器产生A/D转换芯片所需要的控制时序,以及通道转换所....
发表于 2020-07-31 17:23 136次阅读
基于复杂可编程逻辑器件实现数据采集系统的软硬件设...

使用CPLD器件和VHDL语言实现USB收发模块...

当前,高密度可编程逻辑器件CPLD,由于具有巨大的灵活性而广泛应用于状态机、同步、译码、解码、计数、....
发表于 2020-07-31 17:10 37次阅读
使用CPLD器件和VHDL语言实现USB收发模块...

数字电位器MAX5481的结构、功能及应用分析

夫兰克一赫兹实验是近代物理中一个重要实验,它通过直接测量电子碰撞中传递的能量来证实原子能级的存在。夫....
发表于 2020-07-31 16:55 68次阅读
数字电位器MAX5481的结构、功能及应用分析

基于FPGA技术和CVSD编解码算法实现语音编解...

64 Kbit/s的A律或μ律的对数压扩PCM编码在大容量的光纤通信系统和数字微波系统中已得到广泛应....
发表于 2020-07-31 16:12 64次阅读
基于FPGA技术和CVSD编解码算法实现语音编解...

基于C8051F060和USBl00模块实现高速...

在工业控制现场,常常需要采集多路的现场数据,如电压、电流、温度、湿度、气压等。数据采集器将现场的模拟....
发表于 2020-07-31 15:59 110次阅读
基于C8051F060和USBl00模块实现高速...

基于AT89C51单片机和DDS器件实现频率特征...

频率特性是一个系统(或元件)对不同频率正弦输入信号的响应特性。如图1所示,被测系统输入幅值为Ar、角....
发表于 2020-07-31 14:45 147次阅读
基于AT89C51单片机和DDS器件实现频率特征...

基于8031单片机和转换系统实现智能化浪涌电流测...

根据国家标准GB/4023-1997提出的浪涌电流的测试标准,参照美国国家半导体公司的测试标准及日本....
发表于 2020-07-31 14:35 65次阅读
基于8031单片机和转换系统实现智能化浪涌电流测...

高电压测量装置的组成原理及如何事项应用设计

线圈炮的测试和研究需要对大功率脉冲电容器上的电压进行测量。即在电容的额定电压下对电容进行不同电压的充....
发表于 2020-07-31 14:23 48次阅读
 高电压测量装置的组成原理及如何事项应用设计

基于MEMS和单片机实现惯性测量组件的数据采集系...

首先简介ADISl6355AMLZ型MEMS的原理、构成及应用。在此基础上,搭建一个硬件平台,采用内....
发表于 2020-07-31 10:16 83次阅读
基于MEMS和单片机实现惯性测量组件的数据采集系...

基于AT89S5l单片机和雷达技术实现电子警察抓...

在雷达型电子警察系统中,雷达通过串口(RS232或RS485总线)向控制器发送车辆的速度信息,无车辆....
发表于 2020-07-31 10:04 57次阅读
基于AT89S5l单片机和雷达技术实现电子警察抓...

基于FPGA的SOPC技术实现视觉测量系统的解决...

传统的视觉测量系统主要是在 PC机上采用软件方式实现,由于其专用性不够高,因此处理速度较慢。近年来,....
发表于 2020-07-31 09:58 52次阅读
基于FPGA的SOPC技术实现视觉测量系统的解决...

基于DSP+FPGA结构的系统信号完整性问题及解...

在视频处理系统中,多维并行输入输出信号的频率一般都在百兆赫兹以上,而且对时序的要求也非常严格。本文以....
发表于 2020-07-31 08:54 119次阅读
基于DSP+FPGA结构的系统信号完整性问题及解...

六个层次详解:电磁兼容分层与综合设计法

人们在研发新产品时,往往急于实现产品的功能,于是沿用低频、低速时的经验,满足于利用软件将单片机、芯片和元器件连...
发表于 2020-07-31 07:30 4545次阅读
六个层次详解:电磁兼容分层与综合设计法

【MYMINIEYE Runber蜂鸟开发版免费试用连载】安装软件和申请license

1、高云的软件还是比较完善的,可以从官网下载http://www.gowinsemi.com.cn/faq.aspx 2、但是下载完还是需要申请...
发表于 2020-07-30 16:35 404次阅读
【MYMINIEYE Runber蜂鸟开发版免费试用连载】安装软件和申请license

可以直接将FPGA和那部分连接在一起吗?

嗨专家, 我有一个使用XC7K325T-2FFG900C的新设计,HP组的IO标准是LVDS18(1.8V LVDS),该组将...
发表于 2020-07-30 16:25 0次阅读
可以直接将FPGA和那部分连接在一起吗?

关于电磁兼容的容性解决方案

共模(CM)去耦通常使用小电容(10~100nF)。小电容可以将不期望的高频电流在其进入敏感电路之前....
发表于 2020-07-30 16:10 57次阅读
关于电磁兼容的容性解决方案

请问为什么FF的置位/复位端口有效?

最近,我正在学习7系列FPGA。 最近我注意到FF的SR非常有效。 我之所以如此交叉。 感谢所有能与我沟通的人。...
发表于 2020-07-30 15:52 0次阅读
请问为什么FF的置位/复位端口有效?

上海开发了MCS-51的单片机开发系统

ELEXCON深圳国际电子展暨第六届嵌入式系统展设有嵌入式系统专区,同期举办第九届MCU技术创新与嵌....
发表于 2020-07-30 15:29 307次阅读
上海开发了MCS-51的单片机开发系统

risc-v单片机使用分享

最近发现一直使用的ch340芯片的厂家出了risc-v内核的芯片,搞了块开发板尝尝鲜,没有开发过这种内核的芯片,查资料说要...
发表于 2020-07-30 15:27 101次阅读
risc-v单片机使用分享

上电期间的FPGA I / O引脚是否应该处于三态?

大家好, 我目前正在研究基于thetrix xc7a35tfgg484-1的设计。 电源是: VCCINT - 1.0V VCCBRAM - ...
发表于 2020-07-30 09:51 0次阅读
上电期间的FPGA I / O引脚是否应该处于三态?