基于嵌入式平台的分布式密钥加解密加载数据的方法
2022-06-07中国电子科技集团公司第二十九研究所罗熹
◇中国电子科技集团公司第二十九研究所 罗熹
在电子设备上PowerPC与可拆卸存储设备互联的硬件构型下,本文提出合理的加载数据的加解密方法。该方法的核心是密钥分布式存储。通过密钥管理机使用一级密钥加密随机二级密钥得到三级密钥。使用二级密钥加密加载数据。通过网络将加载的数据,三级密钥均分布在可拆卸存储设备上不同分区。PowerPc通过读取加密的数据、三级密钥,使用一级密钥及对称解密算法对加密的三级密钥进行解密得到二级密钥,再使用二级密钥对加载的数据进行解密。使用的加解密算法为256位的AES。
1 引言
随着电子设备技术的迅猛发展,基于嵌入式平台开发的应用逐年增多,而这些应用在存储设备上读取加载数据是正常运行必要步骤。常见的应用包括数据链[5],无人机加密应用等。数据加密技术对于保护用户加载数据的隐私有着不可替代作用。所谓数据加密技术是指将信息(或称明文)经过加密钥匙(密钥)及加密函数转换,变成无意义的密文,而接收方将此密文经过解密函数,解密钥匙还原成明文的技术[1]。各种不同的加解密方法包括混合加密算法[2], 数字混沌加密加密系统[3],多种加密体制混合加密[4],通过增加加解密算法的复杂度从而提高了破解加解密系统的难度。但上述加解密算法仅从软件角度考虑了加密算法的复杂度,未考虑数据密钥分布式硬件存储。同时,加密密钥为固定密钥,无法灵活修改。
2 常见的嵌入式加密解密方法分析
常见的嵌入式加解密的架构为:加密终端通过对加载数据进行加密的得到密文数据,密文数据通过信道进行传输至可拆卸存储设备,终端电子设备的计算机功能单元驻留PowerPC读取可拆卸存储设备的加载数据,使用解密算法对密文数据进行解密得到明文加载数据,如图1所示。
图1 常见嵌入式加解密方法的架构图
在常见的嵌入式加解密方法中,该方法优点为由于密钥存在于密钥管理机的程序中、计算机单元的嵌入式软件中,同时在信道部分传输也是使用的密文进行传输和存储,恶意的用户在获取可拆卸存储设备后无法得到加载数据。
该方法的确缺点为密钥固定,使用对称加密算法来进行加密加载数据,如DES、3DES、AES等,加解密需要使用相同的密钥解密。因此,若存于密钥管理机及计算机单元的嵌入式软件的密钥被泄露,所有的按照上述加解密方法的加载数据均被破解。设计一种每次加载密钥均不同,同时密钥分布式存储的嵌入式加解密方法便可解决单次密钥泄露,不会影响所有加载数据的问题。
3 基于嵌入式平台的分布式密钥加解密加载数据的方法实现
基于嵌入式平台的分布式密钥加解密加载数据的方法实现采用下面两个部分进行阐述:选用数据加解密算法[6]和基于嵌入式平台分布式密钥的加解密加载数据方法整体流程。
3.1 AES加解密算法与实现流程
AES(Advanced Encryption Standard)高级加密标准是以Rijndael算法为基础发展而来。AES加密算法在数据处理上以字为基础单位。常见的AES密钥长度、分组大小及加密轮数对应关系如表1所示。本方法采用的是AES256。
表1 AES密钥长度、分组大小、及加密轮数对应关系
AES算法主要分为四个步骤分别为字节代换,行移位,列混合,轮密钥四个步骤。加密为顺操作,解密操作与解密操作相同采用逆变换替代原来的变换。
(1)字节代换。AES的字节代换就是一个简单的查表操作。AES定义了一个S盒和逆S盒。S盒用来加密,逆S盒用来解密。S盒的变换举例如下所示。
(2)行变换。AES的行变换是一个简单的左循环移位操作。状态矩阵的第0行左移0字节,第1行左移1字节,第2行左移2字节,第3行左移3字节,如图2所示。
图2 行变换示意图
(3)列混合。AES的列混合是指从状态中选择出一列,在将器转变为多项式的基础上,以固定多项式a(x)进行相乘,取其相乘的结果,以结果进行取模运算操作。代表状态多项式。具体如下所示:
(4)轮密钥。AES的轮密钥是指将256位轮密钥 同状态矩阵中的数据进行逐位异或操作。
3.2 分布式密钥加解密整体流程
基于嵌入式平台的分布式密钥加解密加载数据的方法的系统架构如下图3所示。密钥的分布式体现为密钥分为三个不同的等级。这三个不同等级的密钥分布在不同的物理设备上,同时具有物理隔绝的特点。
图3 基于嵌入式平台的分布式密钥加解密加载数据的方法架构图
一级密钥:使用计算机单元的PowerPc生成的一级密钥仅存在自身的动态内存和存储在密钥管理机的程序中。
二级密钥:由用户在对加载数据加密时随机生成的二级密钥。具有随机性,同时该密钥不会保存。
三级密钥:密钥管理机使用一级密钥加密二级密钥得到。存储于可拆卸存储设备中。
该方法的实现步骤如下所示。
(1)PowerPC通过内嵌程序动态生成一级密钥。PowerPC的内嵌程序使用随机数、行变换,列转秩,数字替换等方法得到一级密钥,核心思想为内嵌程序中不能出现一级密钥的明文数字。
(2)PowerPC生成一级密钥后告知密钥管理人员。
(3)密钥管理机随机生成二级密钥。
(4)密钥管理机使用一级密钥,使用AES(256位)加密算法,对随机二级密钥进行加密得到三级密钥。
(5)密钥管理机使用二级密钥对加载数据进行加密。
(6)通过总线传输将加载数据及三级密钥进行上传置可卸载存储设备上。
(7)可卸载存储设备对加载数据及三级密钥进行校验和验证,如果通过则加载成功,如果不通过则加载失败。
(8)可卸载存储设备将加载数据及三级密钥进行物理分区隔离放置。
(9)PowerPC内嵌程序通过与可拆卸设备互联读取上面的加载数据及三级密钥。
(10)PowerPC内嵌程序在运行中使用一级密钥解密三级密钥得到二级密钥。
(11)PowerPC内嵌程序在运行中使用二级密钥解密加载数据。
4 结束语
本文提出了基于嵌入式平台的分布式密钥加解密加载数据的方法,并将该方法用于与国外合作研究的某电子设备。相关实验及相关理论表明,本文提出的方法可以较大的提升加载数据加密的方便性、可靠性。该方法采用的加解密算法后续可考虑采用其他方法进行替换,并作进一步研究。