APP下载

基于可调分组的认证加密实现方案

2020-06-19赵福祥

计算机工程 2020年6期
关键词:加密算法密文嵌入式

赵福祥

(西安外事学院 工学院,西安 710077)

0 概述

网络技术的迅速发展使得更多信息化应用需借助优质平台得到普及。网络信息的传播具有广泛性和快速性,而信息收集依靠网络下载才能完成。若要使网络技术得到更高水平的提升,则需要扩大高速自动数据应用范围替代缓慢的人工数据,使网络充分实现自动化。自物品条码化以后,大量的物品信息被嵌入式功能设备自动注入网络,构建自动识别的信息基础。这类嵌入式功能设备的组装成本确定了其应用的规模,而规模的形成则需要有技术的潜力。为削减成本,研究人员应采用低成本嵌入式功能器件附加简化网络协议来实现,如中继器网络、物联网等,这样既保证了设备所属的功能实现,又具有网络连接功能。由于嵌入式设备包含了功能实现与网络连接双重任务,因此其作为网络节点的应用多为资源受限设备,而资源受限造成网络协议的弱化,它们只能执行用户数据报协议,多数设备需支持移动而采用无线传输、电池供电等特点。

网络信息的安全不能缺少安全机制的保障,无论是互联网还是物联网,凡是涉及个人隐私信息、国家安全的机密信息、公务安全信息和法律保护的安全信息,都应有相应的机密保护。而安全认证则是涉及个人身份与实体身份合法性的安全保护,人物、网络节点和程序代码都可接受认证保护。网络常用的分组密码为AES、认证公钥密码为RSA,用于无线网络协议流密码为RC4等。这些常规密码算法都有大规模迭代计算步骤,用于网络安全协议,如IPSEC、SSL和IEEE 802.11等,然而却无法将已有安全协议或安全算法直接用于嵌入式功能器件构成的物联网,解决冲突的方法是根据嵌入式设备的安全工作需求做全新密码的算法设计,如轻重量密码算法[1]和认证加密算法[2]。轻重量密码算法的目标是为存储器系统配置安全算法,因而所构造的算法多为哈希或流密码的硬件算法[3],以减少算法对设备的系统占用,实现轻重量配置。而认证加密算法的目标是合并认证与加密两个经典的安全步骤为一个步骤完成,缩短加密协议中的复杂过程。认证加密算法主体虽然为AES,但不排除轻重量加密算法对认证加密算法的构成。现代加密技术强调算法采用多重叠加的综合模式来提高安全强度,以抵御选择明文攻击(CPA)或选择密文攻击(CCA)。如密码分组链(CBC)模式或可调加密模式[4]都是加密时叠加由密文本身产生的伪随机数而引起的不确定性扰动,以差别化相同明文在不同位置的密文值,从而增加攻击的难度。密码分组链的缺点是扰动的来源仅来自加密数据的反馈,相同明文的排列顺序会依然延续到密文中,若在公开的网络环境中输入经过巧妙设计的明文,所得密文强数字特征将可能增加被攻破的可能性。与密码分组链不同,可调加密模式的不确性扰动来源于密文所在位置,通过采用顺序的分布,所产生不确定性扰动分布使得不同位置的相同密文特征均不相同[5]。

数据安全是信息安全应用的重要保证,资源受限的低成本嵌入式设备所使用的轻量级网络协议DTLS和压缩IPSEC在采用常规密码算法时,达不到实用效果。本文结合轻重量密码、认证加密技术和可调加密技术,使密码技术更适合资源受限制网络安全环境,并通过改进原有安全技术,提出基于可调分组认证的加密实现方案,以硬件支持的可调分组认证加密实现低成本嵌入式设备网络的安全支持。

1 模型结构

本文方案的目标是实现嵌入式自身安全与数据实时加密的需求、涉及嵌入式防护与抗密文结构分析等。各项实用关键性技术及组合都应围绕目标设置。

1.1 选择明文攻击的抵御

1.2 抗误用可调随机串的结构

兼顾效率与成本,网络数据传输采用分组数据的层次结构来管理数据,称为传输的数据包。按网络节点单次处理数据的最大限度,把一个传输的消息分成若干分组。每个分组都以数据包标志序号作为区分,在分组内可通过设置包内计数器标记每个字节。实现加密数据的无缝嵌入是经济而有效的方法,为简化数据包内数据单位与加密分组实际长度比值关系,方案简化各类传输单位为加密分组统一的数据块单位(简称块)。块既做数据操作单位,也可做加密单位,同时还兼做密钥更换单位。抗误用可调随机串的结构是由存储块号构成的函数,以保证密文在相同地址存储时的可调因子取值不同。当从数据包读出原来的数据值时则应按原始值读出。抗误用可调结构的计算公式如下:

T=F(IDsec,contsec)

其中,IDsec是数据包标志号,contsec是数据包内加密块偏移地址计数器的值。

2 认证加密方案

基于置换的认证加密[8-10]是由海绵包和抗随机串误用的认证加密方案。海绵包生成一个密钥流用以加密用户数据,而用附加数据通过对密钥流的检验使加密数据得以认证。解密则使用反向的置换,整个算法紧凑,可用于在线方式处理数据,但加密算法安全信息熵值来源于用户密钥,仍需可调安全模式延展加密算法,通过所选数据块地址的加一操作取得新的随机串,充当可调密钥值,使不同加密数据块密钥不同。嵌入式加密的系统结构如图1所示。

图1 嵌入式加密的系统结构

2.1 系统参数

设R:={0,1}r和C:={0,1}c,假设两个字符串A和B,其中,A‖B与AB可互换,因此存在AB=A‖B∈R×C≅{0,1}r+c。假设X∈R×C,Xr表示其在R方向的投影,也称为比率分量,Xc表示其投影到C,即容量分量。标记0∈R为00…00∈R的简写表示,而1∈C为00…01∈C的简写表示,符号⊕表示两个(或更多)字符串的按位异或运算。

R的一个元素称为分组,设R*表示长度为r倍数的字符串的集合,最多2c/2个分组。确定边界2c/2是为了定义一个随机函数作为在有限的函数集上的采样,应注意证明2c/2分组长度的查询边界变得较小[11]。同样,设R+表示长度为r正倍数的字符串集合,最多2c/2个分组。给定M∈R+,将它划分为分组,即M[1]M[2]…M[ω]←M,其中,每个M[i]是一个分组,ω是字符串M的分组长度。

2.2 算法描述

加密算法E接受输入密钥K∈K=C,相关的数据A∈R*,消息M∈R+,并返回密文C∈R+和标签T∈C,即(C,T)→EK(A,M)。另一方面,D接收输入密钥K∈C,相关的数据A∈R*,密文C∈R+和标签T∈C,并返回消息M∈R+或拒绝符号⊥,即M/⊥←DK(A,C,T),如算法1、算法2所示。这两个函数是合理的,每当加密消息(C,T)←EK(A,M),返回总是得到消息密文C与标签T;如果解密的过程没通过验证,获得拒绝⊥,否则可获得M←DK(A,C,T)。

输入KH,KT∈C,A∈R*,M∈R+

输出C∈R+,T∈C

1.V←(0,KH)∈R×C

2.if A≠Φ then

3.A[1]A[2]…A[u]←A

4.for i=1 to u do

5.V←p(A[i]⊕Vr,Vc)

6.end

7.end

8.M[1]M[2]…M[w]←M

9.for i=1 to w do

11.V←p(M[i]⊕Vr,Vc)

12.C[i]←Vr

13.end

14.C←C[1]C[2]…C[w]

15.T←Vc⊕KH

16.return(C,T)

输入KH,KT∈C,A∈R*,C∈R+,T∈C

输出M∈R+or⊥

1.V←(0,KH)∈R×C

2.if A≠Φ then

3.A[1]A[2]…A[u]←A

4.for i=1 to u do

5.V←p(A[i]⊕Vr,Vc)

6.end

7.end

8.C[1]C[2]…C[w]←C

9.C[0]←Vr,V0←Vc

10.V←(C[w],KH⊕T

11.for i=w to 1 do

12.V←p-1(V)

13.M[i]←C[i-1]⊕Vr

15.V←C[i-1]‖Vc

16.end

17.M←M[1]M[2]…M[w]

18.if V0=Vcthen

19.return M

20.else

21.return ⊥

22.end

在基于置换的认证加密[12]中,随机串的包是可选的。如果随机串需要,它可以被包含作为相关数据的一部分。当允许随机串为任意长度时,作为随机串和相关的数据应清晰可辨[13]。

3 硬件算法的选择

基于可调的认证加密的实现带来了明显的安全增益,实现认证与加密业务合并和抵御选择明文/密文攻击设置。轻量密码算法的改进改善了资源的占用与能源的耗费,但作为经典算法,仍然固守了大数据量迭代算法方式。因此,本质特性决定了系统需做合理的设计选择。因为受限资源设备的环境因素与可调加密认证加密算法的操作需求存在较大差异,所以在系统的任务目标和任务实现上应采取不同的配置,有效地发挥可调加密算法在系统中的安全效能[14]。

系统实现的目标确定出系统实现的原则与方法。体现其最关键的任务是确定可调认证加密的基础算法。尽管轻量级算法中Keccak和Quark都属于基于置换的密码算法,且算法Keccak被选为sha3标准,但独立设置的硬件算法更有利于受限设备程序的运行与能量控制,相比较而言,Quark参数更适合资源受限环境的应用,算法的相关参数如表1所示。实时系统应该利于短程序的执行,而长处理程序与系统命令共同运行则需要设置更低的级别,使认证加密时间延长,系统处理效能降低。

表1 嵌入式加密算法的相关参数

4 电路仿真验证

采用密码的硬件算法是封闭大数据处理峰值点有效提高并行度的方法[15]。Quark硬件算法可保留原有置换结构与相关参数作为新系统设置,增加可调密钥设置达到独立、安全与并行的目标,选择出新算法的核心结构基调,根据实际数据宽度需求确定u-Quark作为系统算法的基础,表1列出了Quark多种规格数据参数。从表1数据可以看出,数据签名宽度为17字符,位宽为136位,输入宽度为1字符,位宽为8位,选择参数均以最小数据为标准,以适用资源受限系统的应用。

作为系统中可调硬件的并行数据处理器,具有独立的算法控制信号系统十分必要。控制信号组织数据的输入与输出,并控制数据处理过程的步骤与迭代[16]。完全自主的控制信号使可调分组认证加密算法在系统中独立完成整个加密处理,与系统中的其他部分构成并行处理过程。图2给出算法控制信号波形的起始与结束过程,其中起始过程包括状态初始化控制信号和数据输入控制信号,结束过程包括签名输出的控制信号。图3给出无数据输入时的签名仿真波形,波形包括空数据输入、迭代处理与签名数据输出。迭代过程有544个时钟步骤,累计输出17个迭代过程,即位宽为136位。若选择时钟周期为100 ns,则完成签名后用时为925 μs。

图2 算法控制信号波形的起始与结束

图3 签名的仿真波形

5 方案评估

对可调分组的认证加密方案所做评估应该完成两个方面的工作,即证明所构建的系统能够完成认证加密的所有工作任务,以及证明所构建系统足够高效,可以在实际应用中被接受。因为方案的置换与结构来自于Quark算法,各项工作可从相关文献中获得,剩下只需证明方案可以完成认证加密的所有工作任务。认证加密算法属大规模迭代算法,合理组织数据测试就变得较为方便[17-18]。在本文方案中,可把算法签名的初始值看作密钥,所得到的摘要值是对空附加数据的签名,签名后得C[0]=8a4ade386e562333f,T=166afab57b0bed748,可看作是空加密数据的认证加密值。然后,把可调密钥的值与被加密数据值进行异或,导入算法后析出各分组加密值,从而完成认证加密基本任务的所有步骤。

现有方案中的算法只是一个基本的认证加密算法,除硬件算法的实现适合资源受限的嵌入式应用外,没有实施任何加密模式的保护,不能抵御选择明文方式的攻击。与现有方案相比,本文方案增加了可调加密模式,使之可抵御选择明文的攻击,因而可适用于网络的开放环境中,另外,现有方案算法为应用于资源受限的嵌入式硬件算法,在改进过程中只增加了包内加密计数器这类简单硬件,并没有增加系统资源的占用,因而仍适用于资源受限的嵌入式环境[19-20]。结合本文算法这两项优点,可将本文方案算法应用于物联网对互联网跨网络的安全连接。

本文贡献主要有以下3点:

1)提出采用可调模式支持的基于置换的认证加密算法,使应用于受限嵌入环境中认证加密算法可成功抵御选择明文攻击,满足网络开放条件下的安全需求。

2)给出适合于网络数据包的可调模式的加密的实现方法,使可调模式能够顺利实现,提高了网络安全级别,且代价较小,从而最大限度地满足了受限嵌入环境中的安全需求。

3)提供了硬件算法的实现,支持资源受限环境下物联网设备的安全需求,以硬件配制简化了此类设备的结构设计。

在网络异构环境下,各种设备运行条件并不相同,资源受限的嵌入式网络设备选择硬件算法处理可调认证加密的任务,而常规设备并无资源限制,则可采用软件或硬件算法处理相应的任务。虽然软硬件算法所使用的方法不同,但执行的数字标准应相同。若物联网段设备与互联网段设备通信,当数据跨过物联网特殊的路由器后,物联网段设备运用硬件算法处理认证加密数据,而互联网段则使用软件算法来处理相同认证加密数据。

6 结束语

本文提出一个基于可调加密认证的加密方案,以支持资源受限的物联网络设备的安全应用。在已有的认证加密方法基础上实现可调模式操作,增加算法抵御选择明文攻击的能力,以数据包标志号与偏移地址计数器的值为可调参数,使加密密文成为抗误用可调随机串的结构。本文改进方案使原认证加密算法不仅支持资源受限设备的应用,而且可支持物联网对互联网跨网络开放的安全应用。由于嵌入式安全是一项综合技术,对认证加密算法可调模式的处理虽然有效,但仍然存在未知风险,下一步将对贴合实际的固有安全数字特性进行研究,以更好地抵御选择明文的攻击。

猜你喜欢

加密算法密文嵌入式
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
密钥共享下跨用户密文数据去重挖掘方法*
基于整数矩阵乘法的图像加密算法
TS系列红外传感器在嵌入式控制系统中的应用
基于混沌系统和DNA编码的量子图像加密算法
搭建基于Qt的嵌入式开发平台
混沌参数调制下RSA数据加密算法研究
一种基于密文分析的密码识别技术*