0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

3DES算法的动态加密系统设计原理

麦克泰技术 来源:3DES 2024-03-26 12:24 次阅读

引言

目前,应用在工业控制领域的加密算法多以CRC加密或者校验和CHECKSUM加密算法为主,但是此类普通加密算法如果每次发送的控制指令相同,计算出的加密结果也是一样的[1],具有控制数据被破解的风险,增加通信的不安全性,这在一些医疗、金融和汽车电子等特殊领域是不允许的。

1 动态加密系统原理

本文提出的动态加密系统包括上位机和下位机两部分。图1所示为动态加密算法原理,在工作过程中,首先由下位机周期性发送一包随机种子数据(每次发送数据均变化),并按约定的加密算法进行计算加密,结果记为A,然后上位机接收到此随机种子后按同样的加密算法进行加密,然后将控制指令和加密结果记为B的数据整合为一帧数据后传送给下位机,下位机接收到此控制指令后进行数据解析,若A=B,则执行相应控制指令功能,依此通信过程进行循环。

f711de6c-eb25-11ee-a297-92fbcf53809c.jpg

2 动态加密系统硬件设计

2.1 主控芯片 STM32F103RCT6

本设计中上下位机使用的主控芯片均为STM32F103RCT6,这是一款32位微控制器,最大系统时钟速度可达72 MHz,为快速实时处理复杂加密算法提供了可能性,片内集成FLASH 容量为256 KB,RAM容量为48 KB,具有 UARTCAN通信等模块[2],STM32F103RCT6集成的丰富片上外设资源大大简化了设计成本及开发周期。

2.2 STM32 最小系统电路设计

STM32 最小系统可以直观地理解为让单片机正常工作的最小电路,图2所示为STM32最小系统构成,包括电源电路、晶振电路、复位电路和启动模式配置等[3]。电源电路经稳压芯片 REF3133将5V电压转换为3.3V提供给 MCU。外部晶振电路类似于"心脏"的功能,为单片机提供精准的时钟频率以保证正常工作。复位电路为单片机提供上电复位功能,利用电容充电不能瞬间突变的特性,即可完成一次单片机上电复位。BOOTO 引脚配置为低电平,以使MCU从用户FLASH存储区启动。

f722f206-eb25-11ee-a297-92fbcf53809c.jpg

2.3 CAN通信电路设计

使用 Philips 半导体公司的 TJA1050 进行 CAN 通信电路设计,TJA1050是一款高速CAN收发集成芯片,可以提供差分传输总线和差分接收能力,并且全兼容ISO11898 标准[4]。CAN通信电路设计如图3所示,其中控制引脚RS接为低电平以配置为正常高速模式。

f73ded90-eb25-11ee-a297-92fbcf53809c.jpg

3 动态加密系统软件设计

3.1 动态加密算法数据包格式定义

出于通信稳定性考虑,本设计采用CAN通信方式,CAN是Controller Area Network的缩写,是ISO国际标准化的差分传输串口通信协议,具有通信速度快、通信距离远和可靠性高等优点[5],8字节下位机发送数据包格式定义如下:

f74b8a22-eb25-11ee-a297-92fbcf53809c.png

上位机发送8字节数据包格式定义如下:

f759c448-eb25-11ee-a297-92fbcf53809c.png

其中包头和包尾数据分别定义为0xAA和0x55,Byte4~Bytel为应用3DES加密算法计算结果(8字节)的中间4位,并采用小端方式存储,Byte5和Byte6为控制指令模式位,用于控制下位机的工作模式。

3.2 动态加密算法软件设计

DES全称为 Data Encryption Standard,即数据加密标准,是一种使密钥加密的块算法,属于对称加密算法的一种[6]。由于计算机的计算能力不断增强,DES算法的密钥变得较容易被破解,3DES即是在DES算法基础上,通过增加密钥长度对每个数据块应用三次DES加密算法,使得其安全性得到提高[7],若以EK()、DK()分别表示DES的加密和解密函数,P代表明文,C代表密文,则3DES加密算法可以用以下公式表示:

C=EK3(DK2(EK1(P)))

式中,K1、K2、K3表示总密钥(24字节)中的8字节密钥。

本系统为基于3DES算法的动态加密设计,上下位机共同约定的密钥取为24字节的十六进制数:0x2B201E00270401C491EFBD27047002236E710B513460A460。T位机传送8字节随机数种子,其中8字节随机数由C语言自带的srand和rand标准库函数配合使用而产生[8]。上位机在接收到下位机传送来的8字节数据后进行3DES加密算法加密,然后按照数据包的格式回传数据至下位机,下位机接收到此数据后进行数据解析并执行相关指令功能,具体软件设计过程如下:

①对MCU系统初始化配置(包括配置系统时钟等),并进行CAN通信正常收发模式和波特率等参数设置。

②由下位机周期性向上位机传送字节随机数,并依据3DES加密算法在同一密钥下计算8字节随机数加密结果,取加密结果的中间4位存入数组中。

③上位机接收到8字节随机数后,按照与下位机同样的计算方法计算此随机数加密结果,并按照数据格式整合数据,然后将此数据发送给下位机。

④下位机接收到上位机传送来的数据后,进行解析并对比上传的加密数据是否与保存在本地的加密数据一致,一致则执行相关控制指令,不一致则不执行相关功能。

⑤按照步骤②~④周期循环执行通信流程。

具体软件设计流程图如图4所示。

f762eb18-eb25-11ee-a297-92fbcf53809c.jpg

结语

将此通信设计方案应用在某汽车电子产品中,针对此应用系统,设定通信波特率为500 kbps,下位机CAN通信ID设为0x18FF 0107,上位机CAN通信ID设为0x18FF 0108。为了保证通信安全,避免通信内容被破解,需要使下位机周期发送随机数种子时间尽量短暂,本设计定为500 ms。图5所示为上下位机通信过程中应用通信监控软件监控到的部分通信数据帧。

f774061e-eb25-11ee-a297-92fbcf53809c.jpg

分析图5可知,在足够短的通信周期内,尽管控制模式固定不变,下发与上传的通信数据每次都发生变化,这样就提高了数据通信的安全性,减小了通信数据帧被第三方破解的概率,使得本设计方案具有一定的实用价值。

参考文献

[1]王根义.CRC校验算法的研究与实现[J].电子设计工程,2012(9):1674-6236.

[2]意法半导体公司.STM32F103xC芯片数据手册,2015.

[3]李彬,王朝阳,卜涛,等.基于MSP430F149的最小系统设计[J].国外电子测量技术,2009(12).

[4]郭宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.

[5]徐争颖.CAN总线及其网络系统的实现[J].自动化与仪表,2005(5).

[6]李联.信息安全中的DES加密算法[J].现代电子技术,2005(9).

[7]刘建华,赵小强,李晶.基于ARM的3DES加密算法实现

[J].现代电子技术,2009,32(18):37-39.

[8]王瑞胡,计算机中伪随机数生成及其在VISUAL C++中的实现[J].计算机与信息技术,2005(9):79-80,84

(作者单位:南京先进激光技术研究院,南京210038)

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2674

    浏览量

    462637
  • STM32
    +关注

    关注

    2260

    文章

    10833

    浏览量

    352933
  • 加密算法
    +关注

    关注

    0

    文章

    210

    浏览量

    25512
  • 下位机
    +关注

    关注

    0

    文章

    93

    浏览量

    18689

原文标题:3DES 算法的动态加密系统研究与应用

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    3DES算法是什么?

    3DES使用“密钥包”,其包含3DES密钥,K1,K2和K3,均为56位(除去奇偶校验位)。
    发表于 10-23 09:00

    如何去实现DES加密算法

    DES算法的简单原理是什么?如何去实现DES加密算法
    发表于 04-26 07:14

    如何设计一个基于FPGA的DES加密算法系统

    为了克服传统DES加密算法流水线的FPGA实现的子密钥需先后串级计算,密钥不能动态刷新的缺点,提出一种新的加密算法,提高DES FPGA实现
    发表于 04-30 06:29

    DES加密算法是什么

    ,是要被加密或解密的数据,DES采用16轮运算,每轮产生一个轮密钥参与到运算中,密钥与明文运算时采用按位异或的方法(不仅仅是与密钥异或),但每一位存放的数据只有0或1,因此,DES的密钥空间仅仅只有2^56。2、
    发表于 07-22 09:13

    3DES算法密钥长度说明

    3DES算法密钥长度说明3DES加密算法作为经典的对称加密算法,已经广泛应用于各安全相关行业的数据加解密与身份认证环节之中,本文主要针对用户
    发表于 07-22 09:37

    des加密算法代码

    des加密算法代码 /* d3des.h - * * Headers and defines for d3des.c * Grave
    发表于 01-16 10:12 34次下载

    高速和资源节约型数据加密算法设计

    介绍了3DES 数据加密算法(DDA)的原理,针对利用FPGA 硬件实现3DES 算法,给出了一种可进化IP 核的具体设计思想,采用可重构电路节省器件内部资源,并采用有限状态机设计技
    发表于 01-16 15:42 14次下载

    3DES算法的FPGA高速实现

    摘要:介绍3-DES算法的概要;以Xilinx公司SPARTANII结构的XC2S100为例,阐述用FPGA高速实现3-DES算法的设计要点及关键部分的设计。 关键词:
    发表于 06-20 14:22 1428次阅读
    <b class='flag-5'>3DES</b><b class='flag-5'>算法</b>的FPGA高速实现

    基于状态机和流水线技术的3DES加密算法及其FPGA设计

    摘要: 介绍了3DES加密算法的原理并详尽描述了该算法的FPGA设计实现。采用了状态机和流水线技术,使得在面积和速度上达到最佳优化;添加了输入和输出接口的设
    发表于 06-20 15:22 1133次阅读
    基于状态机和流水线技术的<b class='flag-5'>3DES</b><b class='flag-5'>加密算法</b>及其FPGA设计

    基于FPGA的DES3DES硬件加密技术

    基于FPGA的DES3DES硬件加密技术 传统的加密工作是通过在主机上运行加密软件实现的。这种方法除占用主机资源外,运算速度较慢,安全性
    发表于 07-26 22:35 1538次阅读
    基于FPGA的<b class='flag-5'>DES</b>、<b class='flag-5'>3DES</b>硬件<b class='flag-5'>加密</b>技术

    3DES加密算法的原理及FPGA设计实现

    摘要: 介绍了3DES加密算法的原理并详尽描述了该算法的FPGA设计实现。采用了状态机和流水线技术,使得在面积和速度上达到最佳优化;添加了输入和输出接口的设计以增强该算法应用的灵活性。
    发表于 11-06 11:10 7次下载

    3des加密解密详细解释

    3DES,也称为3DESede或TripleDES,是三重数据加密,且可以逆推的一种算法方案。975年美国IBM公司成功研究并发布了DES
    发表于 12-09 09:43 3w次阅读
    <b class='flag-5'>3des</b><b class='flag-5'>加密</b>解密详细解释

    软件加密算法都有哪些,这些算法在哪些方面得到了应用?

    3DES是三重数据加密算法块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得
    的头像 发表于 12-24 09:27 7635次阅读
    软件<b class='flag-5'>加密算法</b>都有哪些,这些<b class='flag-5'>算法</b>在哪些方面得到了应用?

    常用算法的分类以及加密算法的选用

    DES是一种分组数据加密技术(先将数据分成固定长度的小数据块,之后进行加密),速度较快,适用于大量数据加密,而3DES是一种基于
    的头像 发表于 02-01 01:25 7664次阅读
    常用<b class='flag-5'>算法</b>的分类以及<b class='flag-5'>加密算法</b>的选用

    3DES数据加密算法的原理和使用FPGA设计的详细说明

    介绍了3DES 数据加密算法(DDA)的原理,针对利用FPGA 硬件实现3DES 算法,给出了一种可进化IP 核的具体设计思想,采用可重构电路节省器件内部资源,并采用有限状态机设计技术
    发表于 01-16 10:58 18次下载
    <b class='flag-5'>3DES</b>数据<b class='flag-5'>加密算法</b>的原理和使用FPGA设计的详细说明