您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页CAN总线通信中的改进AES加密算法设计

CAN总线通信中的改进AES加密算法设计

来源:爱go旅游网
l|0 0 0 0|0 0l 雎 CAN总线通信中的改进AES加密算法设计 陈基昕。王忠。赵锦字 (火箭军工程大学基础部,西安710025) 摘要:AES加密算法是一种基于Square结构的SPN(Substitution Permutation Network)迭代分组密码,具有较高的安 全性。本文详细分析了影响AES加密算法S—Box安全性的因素,通过改变构造S—Box乘法求逆元和仿射变换运算的 复合关系,寻找新的仿射变换对来提高S—Box的各项性能指标,从而增强AES加密算法的安全性,并给出了新的S— Box和逆S—Box的替换表,最后通过cAN总线的通信实验验证了改进后AES加密算法的可行性。 关键词:CAN总线;AES加密算法;S—Box 中图分类号:TP368.1 文献标识码:A Design of Improved AES Encryption Algorithm in CAN Bus Communication Chert Jixin,Wang Zhong,Zhao Jinyu (Basic Department,Rocket Army Engineering University,Xi’an 710025,China) Abstract:The AES encryption algorithm is a SPN(Substitution Permutation Network)iterative block cipher based on the Square struc~ ture and it has high security.In the paper,the factors that affect the security of the AES encryption algorithm S-Box are analyzed.By changing the composite relationship between the S-Box multiplication inverse element and the affine transformation operation tO find new affine transformation pairs,each performance index of the S-Box is improved.Thus the security of the AES encryption algorithm is en— hanced,and the replacement tables of the new S-Box and inverse S-Box are given.Finally,the feasibility of the improved AES encryption algorithm is verified through the communication experiment of the CAN bus. Key words:CAN bus;AES encryption algorithm;S-Box 引 言 某控制系统各节点间通过CAN总线互连通信,而在 1 AES加密算法原理 1.1算法基本结构 AES加密算法为分组密码,分组长度为l28位即16 个字节,密匙长度有128、192或256位,根据密匙长度的 不同,加密的轮数也不同,本文采用长度为128位的密 CAN的协议规范中只对物理层和数据链路层做了明确的 规定,其应用层协议用户可自行根据具体的应用系统自主 定义n]。为了保证总线在通信过程中的安全性,在应用层 协议里进行了数据加密,并采用了改进的AES加密算法。 AES加密算法是1998年由Rijndael提出,其安全性目前 匙,加密轮数为10轮。AES加密算法不仅编码紧凑、设 计简单而且可抵抗多种类型的攻击,其基本结构包括4 个部分。 (1)字节替换(SubBytes) 仍在深入研究与讨论中,但普遍认为其具有良好的安全 性。本文对AES加密算法进行了改进,且只改进了其非 线性部分S—Box的构造,其余线性变换的结构并未改变。 S—Box是一个预先计算好的字节替换表,因此算法的执 字节替换也就是通过s—Box对字节元素进行非线性 的变换,s—Box由有限域GF(2 )上的乘法求逆运算和仿 射变换运算而来,通过查表的方式即可直接得到变换前后 的字节元素,替换后字节元素至少有两位发生变换,能充 行时间不会有所改变,不存在参考文献[2]提出的由于改 进算法而导致影响通信效率的问题。本文通过对比改进 前后的AES加密算法的仿射变换对周期、代数表达式项 数、严格雪崩距离等各项指标来说明算法的安全性,并通 过实验验证了可行性。 分打乱原来的字节元素,本文所介绍的AES加密算法就 是对s—Box进行改进而来。具体替换规则为假设一字节 为xy,则S—Box中第x行第Y列所对应的元素就是替换 后的元素。 敬请登录网站在线投稿 2018-#-g 7期 《羊 机_喜嵌入式条'毛应国》 25 _ l l2)行位移(Shi ̄tFIows) 明文 _ 明文 行位移是AES加密算法中的一个简单线性运算,即 在4×4的状态矩阵中,把第i行循环左移i个字节(i一0, 1,2,3)。 (3)列混合(MixColumns) 逆字节替换 列々昆合是将状态矩阵中的每一列看成一个多项式,让 其与一个固定的多项式a(x)相乘,再做模多项式m(x)= X 4-1的运算,其中a(x)一’03’x。4- 01’x 4-’01 x+’O2 。 (4)轮密匙加(AddRoundKey) ...逆行位移 逆列混合 .........+ I........一. 轮密匙加变换就是让状态矩阵与经过密匙扩展得到 轮密匙加 ——■r一.............的子密匙做异或运算,因此轮密匙加变换的逆变换就是其 本身,其中子密匙是原始密匙通过密匙扩展算法得到的。   1.......一逆字节替换 ——r一.............1.2算法的流程 AES加密算法先将128位的明文进行分组,得到一   I.......一逆行位移 个4×4的明文状态矩阵作为算法的输入,然后选取密匙 矩阵先对明文状态矩阵做一次轮密匙加变换,再经过lO 轮的轮函数加密,轮函数操作依次为字节替换、行位移、列 混合和轮密匙加,其中由于最后一轮的列混合不仅不会提 高安全性,反而会拉低算法运算速度,故该轮丢弃列混合 变换。解密算法仍为1O轮,由于算法的4个轮操作均为 可逆变换,因此解密过程就是用与加密过程同样的密匙对 每一轮的加密操作进行逆运算。算法的流程图如图1所 示,其代码实现如下: void aes(char P,int plen,char*key){ int keylen—strlen(key): int pArray[4 ̄l-4]; int k,i; 密 文 密文 图1 AES加密算法流程图 extendKey(key);//扩展密钥 for(k一0;k<plen;k+ 16){ 2 S—Box构造原理及性质 S—Box作为AES加密算法中唯一的非线性部分,是 一convertToIntArray(p+k,pArray); addRoundKey(pArray,O); for(i一1;i<10;i++){ //第一次轮密钥加 个作用于状态字节的非线性变换,对于128位的明文加 【_拣 密,一次加密过程就要用到S—Box 16O次 ],因此其构造 //字节代换 //行移位 //列混合 //轮密匙加 subBytes(pArray); shiftRows(pArray); mixColumns(pArray); addRoundKey(pArray,i); } 对算法的安全性起关键性作用。S—Box的构造由两个可 逆的复合变换而成,即先在有限域GF(2 )上求乘法逆元变 换,其中OO没有乘法逆元,规定其变换后依然是o0,再在 GF(2)上做仿射变换运算。参考文献[-4-)给出了S—Box的 代数表达式只有9项:S(x):’05’)(2 十’O9 )(2 。+ f9’】【2 + //字节代换 '25’)(2 4-'f4 。 4-'01 】【2。。+'b5’X 。 4-'8f’X 4-'63’。 subBytes(pArray); shiftRows(pArray); addRoundKey(pArray,i0); //行移位 //轮密匙加 (1)定义1 记仿射变换L…(a(x)):a(x)卜b(x)为L…(a),定义 L (a(x)):a(x)卜 b(x)一L1(x)a(x)4-v(x)mod(X 4-1), 7 7 7 convertArrayToStr(pArray。P+k); ) } 其中u(x)一∑Uix 、v(x):∑v。x 、a(x)一∑aix 。则对 Microcontrollers&Embedded Systems 20 18#-g 7期 www.mesnetcom.2 6 .cn _l| _i _l 曲 也 西 山 _ 仙 氓 伽 _ 分均匀度有关,布尔置换的差分均匀度越接近1,则抗差 分分析能力越强,S—Box的差分均匀度为4,具有较好的 抗差分分析能力。 (6)定义6 非线性度 :设F(x)一(f】(X),…,f (x))是GF(2) 于AES加密算法的仿射变换L 。有:u(x)一X +X。+X2 仉 协 也 +x+1、v(x):X6+X +x+1。记 仙 .5 山 西 仙 到GF(2)“的多输出布尔置换,则称 N(F)一 rain d{ugF(x),l(x)}为F(x)的非线性度, O≠uEGF(2“) l(x)∈L(X) F一 曲 协 仙 n其中d{ugF(x),l(x))表示ugF(x)与l(x)之间的汉明距 离,L (x)为GF(2)上的所有线性函数的集合。非线性度 则可把仿射变换表示为L…(a)一Fa+v。记 . (a) 加 孙 如 踟 一 . 越高,算法抵御线性分析的能力就越强,但非线性度达到 最大值时,其它性能将会有所下降,s—Box的非线性度 为112。 (7)定义7 (L (a)),有L , (a)一F a+F v+F 。v+…+ Fv+v。令Hk一1一Fk- +F 。+…+F+E,则L . (a)一 F a+H v,其中E为8×8的矩阵。 Ⅵ (2)定义2 抗代数攻击阻力 ]:在有限域GF(2 )上有t项的r个 方程,定义r为S~Box的抗代数攻击阻力,有F=((t— r)/n) ],对于AES加密算法中的S—Box,参考文献 若一个正整数n满足L:. 一E,则称L…满足周期性。 若n为周期里的最小正整数,则称L…的周期为n。由于 AES加密算法中s—Box的仿射变换为L…一L 。,其满 足L: 3(a)一a且L FI63(a)≠a,i:1,2,3,所以S—Box的 E6]给出t一81,r一23,n一8,带入上式可得r 2 一。该指 标主要与求乘法逆元运算有关,因此对于改进后的s— Box抗代数攻击阻力仍为r一2。 。 (8)定义8 仿射变换周期为4。根据AES加密算法S—Box的构造方 法和仿射变换原理,对于任意的u,vE GF(2 ),仿射变换 周期有1、2、4、8和16这5种,而在S—Box的构造中却选 雪崩效应 :设F(x)一(f (x),…,f (x))是GF(2)“ 到GF(2)“的多输出布尔置换,若对任意的aE GF(2)“且 W(a)一1,即a的汉明重量为1时,有w(f.(X+a)+f.(x)) 择了周期为4的仿射变换。参考文献[5]指出仿射变换周 期越大,S—Box安全性就越好,因此在改进的S—Box中 可考虑使用周期为16的仿射变换对。 (3)定义3 一2一 (1≤i≤n),则称F(x)满足严格的雪崩准则sAC,称 迭代输出周期 :从其中一元素开始对S—Box做连 续替换直到回到该元素所经过的元素数。S—Box具有5 DSAC(F)=∑∑1 w(f。(x+a)+fi(x))一2 是 1 l aEGF(2)n W( )=1 F(X)的严格雪崩准则距离。因此当DSAC(F)为0时,F(x)满 足严格雪崩准则,当DSAC(F)不为0时,其值越小扩散性能 个迭代输出周期且均小于88,分别是87、81、59、27、2,其 短周期现象给密码分析提供了可能性,增大迭代输出周期 有利于提高算法的安全性。 (4)定义4 平衡性 ]:设F(x)=(f (x),…,f (x))是GF(2)“到 2 l 就越好。参考文献[8]给出S—Box的DSAC(F)=432。 3 改进的AES加密算法及性能分析 3.1 改进方法 改进的AES加密算法主要是对S—Box进行重构,通 GF(2)“的多输出布尔置换,若满足>:f。(x)一2 (1≤i ‘。。——x=0 ≤n),则称F(x)满足平衡性。而AES加密算法中的 25S 过上述对S—Box的代数性质分析,增大仿射变换周期和迭 代输出周期有利于提高算法的安全性,且S—Box的代数表 达式项数较少只有9项,代数复杂度低则算法抵御代数攻 击性能弱。笔者通过大量的对比试验发现,S—Box的代数 > f (x)一128(1≤i≤8),因此S—Box满足平衡性。 x一0 (5)定义5 差分均匀度 :设F(x)一(f (x),…,f (x))是GF (2)“到GF(2)“的多输出布尔置换,则称 (F):max a∈GF(2 ) l ” 表达式项数与构造S—Box的求乘法逆元素运算和仿射变 换运算的顺序有关,且为满足S—Box和逆S—Box均具有 较复杂的代数多项式,可多做一次仿射变换运算,因此重构 max 1{xEGF(2“)lF(x)0F(x+d )一岛)1为F(x)的差 ∈GF(2 ) 分均匀度。a,和B分别为i和j的二进制表示,且i,j一1, 2,…,2“一1。算法的抗差分分析能力主要与S—Box的差 的S—Box可先对字节元素做仿射变换运算,再求乘法逆元 素运算,最后再做~次仿射变换运算。而仿射变换周期和 敬请登录网站在线投稿 2018年第7期 《平 机 嵌入il:禾雠‘应冈》 27 迭代输出周期与仿射变换对的选取有关,根据定义2得到 仿射变换周期为16的仿射变换对共有8 192对,按照新s— 表2改进后的逆S—Box替换表 Y Box的构造原理选出其中91对,使得L…具有唯一一个周 期256的置换表,根据定义8分别计算所有仿射变换对的 O 1 2 3 4 5 6 7 8 9 b d e f O 47 7c 1e 39 8a 18 51 9f 2O 77 b8 52 7d 84 a9 38 1 a0 09 b0 42 bb 81 a5 c5 b2 82 9b d8 ae c7 严格雪崩准则距离,得到仿射变换对(79,51)的DSAC(F) 最小为372。因此,重构的S—Box具体步骤如下: ①首先选取仿射变换对(79,51)做仿射变换,运算过 程如下 X ● 2 8b b9 fO e5 cd 12 ed f9 4b 0a 53 16 3e 0e f3 e3 3 aC Of e2 3a 88 f6 59 7O c2 ad 32 68 c3 75 e9 58 4 c6 11 e6 d9 da 6b cb a2 89 a3 17 69 e1 3f 4c 5 al bl 83 98 O2 67 9a Ob 6a 15 cl f5 e0 2d fe 8c 6 f2 d5 c4 4e 1b 3l cO 3d f8 45 76 0d 74 fd 4d 61 7 50 6c 97 56 99 c9 5a bf 21 b3 7e 2c 1d d2 db f4 8 3b 22 43 60 ef 41 be 2e 91 f1 ff e8 54 b5 O3 x 一L79.5l(x)一LbX x+’51 一 斯斯斯斯 确 9 78 cf 7f 65 O1 b4 a4 33 44 a8 6e 72 92 29 94 d4 ha 10 Ce 49 23 eb 4a f7 06 df 80 dl fc 04 79 b 4f 6d 27 95 5d 1a 9e 36 9O 72 de 35 05 5e d6 37 C 0c 48 7b 28 71 af 34 e4 5b 8f 46 fa c8 7a 62 + d 87 ab 1c 2f 86 9c 13 a7 07 bc 8e 24 d7 5c dc 8d 30 3c 9d 96 26 6f 64 25 dd 2b 55 e7 fh 2a b6 08 f 14 66 57 O0 b7 40 ¨ bd 63 dO 85 19 93 d3 5f a6 3.2 性能分析 ②求乘法逆元运算 f x”一 xI 1:  .根据定义4~7,改进后的AES加密算法S—Box在平 衡性、差分均匀度、非线性结构和抗代数攻击阻力上均不 变。由于重构s—Box时改变了求乘法逆元和仿射变换运 l ③最后依然用仿射变换对(79,51)再做一次仿射变 换L7 y—L79.51(x”)一Lb×x”+’51 算的顺序,并增加了一次仿射变换运算,S—Box的代数复 杂度有所提高,S—Box的代数项数由原来的9项增加到 255项,而逆S—Box的代数项数也只由原来的255项降 到253项。选取仿射变换周期为16的仿射变换对 任一仿射变换L…均存在逆仿射变换LT.:一L ,,使 得I (L…(x))一x,V x∈GF(2。),其中u∈GF(2 )/ {0},v∈GF(2 ) 。本文采用的仿射变换对为(79,51), 因此逆仿射变换为L。 ,逆S—Box的构造步骤同S— Box。重构后的s—Box和逆S—Box如表1和表2所列。 表1改进后的S—Box替换表 (79,51),使得S—Box的严格雪崩准则距离由432下降到 372,具有更好的雪崩效应。改进前后S—Box性能对比如 表3所列。 表3改进前后S—Box性能对比表 原S—Box 新S—Box 平衡性 Y 平衡函数 4 112 平衡函数 4 112 差分均匀度 O 1 2 3 4 5 6 7 8 9 b C d f 0 a4 08 6a e0 f1 69 0c ef 33 fd 4d 27 e4 00 58 94 非线性度 1 ff a4 7b 41 b0 15 5a ae 39 8f 90 74 b9 13 be 7f 2 49 81 99 d2 0a f8 71 04 bl 5b 12 64 30 c4 1b db 3 eb bd 8e 22 6e 28 a2 46 1c dl 89 47 4e 9f 68 3c 4 54 7e 1O a8 dO 70 cf 72 76 40 b8 2c 75 03 7c 仿射变换周期 S—Box严格雪崩距离 S—Box代数表达式项数 4 432 9 16 372 255 逆S—Box代数表达式项数 抗代数攻击阻力 255 r≈2 。 253 r≈2。 。 5 3a c3 9c 11 fc ad 4f f6 a5 O5 e3 51 2f 52 9d 21 6 92 3d d3 85 a3 16 cd ee 32 X 3f c2 59 d9 1a ba 7 53 35 50 b5 f2 3b 37 73 f5 4b 9b 29 a7 62 b4 02 8 6f 9e bf 0b 97 a1 f7 {O e6 b2 84 ab 44 96 63 80 9 de 55 77 d8 48 cO CC 1d aC 65 14 ed 6d 18 9a dc 91 c9 23 e5 b3 el 78 83 34 c6 d7 7a c8 8b 5d 20 b f3 86 c5 f9 fa 0d 61 43 f4 a0 5c fe 1f bb 38 dd e2 O9 19 e8 c7 fh d4 01 66 da 1e 2b a9 42 7d 4 实验验证 实验首先对改进后的加密算法进行验证,选取明文为 {O1,02,O3,O4,…,0f,00),密匙为{2b,7e,15,16;28,ae, d 57 b7 95 2d 4a 25 79 3e 98 4c 45 e7 8c 2e d6 8d 26 36 O6 ci 8a a6 6O cb 87 d5 O7 b6 88 6b 5e e9 d2,a6;ab,f7,15,88;09,cf,4f,3c},用C语言编写程序,并 在VC6.0编译环境下运行后得到如图2所示的界面,加 密后的密文为{de,Of,43,e7,…,a6,57}。 f df 56 af 24 Ca 17 82 93 5f 67 6c 2a 31 aa bc 0f 2 8 Microcontrollers&Embedded Systems 20 18年第7期 WwW.mesnet.com.cn 其次在CAN开发 f通信中进行验证,开 主控芯片采用稳定  o1 02 l03 04 I 睫墅 I :塞 呻璺 1.取 盏= !蔓———●■冒 _鼍算啪.照算 一 宴晦. 舅■ 蜘孟睫.1 H ■堂¨e _,I曩-i· … - l0S 06 0  08  09 0a 0b 0c 1 0d 0e loft 00  .J l 1 l 目fⅢ¨ 一 …’i西 蕊一 赫蠢 =1’ 。 ___………………………~…………………… 一 。 ’ … 好的STC89C52RC }吾 ^: 『 de 0f ’4:{ e7 机,CAN控制器和 哪}j.! … — l酬l 毡 目i …一…一!………一 i lD l。 : 即_l l .::;:::;.葫 ¨。:。-: _一…………,·.I ●D●s 0-6 D●7 L扪 FmI Tv口  4d 29 8a l 1l R 1 2 bh  c2 04 a6 l9c dIl S7 I J 【一L誊… 肇一 :器分别为SJA1000 rJA1050,且开发板 一E Oleo O,m 。 【Pl’c I' t’Il k·l t0 L’0 r-tiIlItlt ̄ I 文本矗示 熬拥墨蔫科城【 个4位的数码管 图2加密算法验证界面 『于显示加密后的数据。将3块CAN开发板以总线型 扑结构连成网络,并把CAN—H、CAN—I 、VCC、GND ‘应相连,其中的一块开发板设为主节点,用于发送数 余两块设为从节点,用于接收数据,主节点与USB— 转换模块相连,USB—CAN分析仪可以通过USB接 CAN网络与电脑的上位机软件EmbededDebug v2.0 :,图4上位机软件监控数据图 逆S—Box表,提高了算法的安全性,实验过程中程序运行稳 定,实验结果表明,加密后的数据可在CAN总线上正常通 信。下一步工作将在保证算法的安全性的同时,着力提高算 法的执行时间,以保证在CAN通信过程中实时有效。本文 设计具有一定的应用价值,可供借鉴。-E 参考文献 [1]饶运涛,邹继军.现场总线CAN原理与应用技术[M].北京: 北京航空航天大学大学出版社.2003. 便于数据的采集、处理以及对数据的收发进行实时 !。本实验输入的明文为{01,02,03,O4,…,Of,O0},得 『密文为{de,Of,43,e7,…,a6,57},在CAN通信实验 序中只写入加密函数而不进行解密,并让加密后的密 过数码管显示,由于数码管只有4位,只能显示密文 4位即{de,Of.43,e7},实验现场图如图3所示。 [2]张丽红。凌朝东.基于AES算法中s盒的分析研究与改进 [J].信号处理,2O11,27(9):1428—1433. [3]王衍波.AES的结构及其s—box分析[J].解放军理工大学学 报,2002,3(3):13—1 7. [4]马虹博.AES的S盒和逆s盒的代数表达式[J].计算机工 程,2006,32(18):149—152. [5]王衍波.AES的s一盒仿射变换的性质[J].解放军理丁大学 学报,2003,4(2):5—9. E6]温巧燕.现代密码学中的布尔函数[M].北京:科学}fJ版 社,2000. [7]崔杰.Rijndael中若干关键问题的研究[T)].合肥:中国科学 图3 CAN总线通信实验现场图 技术大学,2012. 由图可以直观看出,数码管在第二位正常显示了数字 余三位是由于在数码管函数中未作定义而随机生成 :选。再把解密函数写入实验程序中,数码管正常显示 [8]孙爱娟.基于AES加密算法的改进及其MAT1 AB实现 [D].哈尔滨:哈尔滨理工大学.2009. [9]Murphy S,Robshaw M.Essential Algebraic Structure Within the AEs[c]//Proceedings of the 22nd Annual International Cryptology Conference on Advances in Cryptology.UK: SpringerVerlag,2002:1—16. :送的数据01,O2,o3,04,并打开上位机软件Embed— ebug v2.0,可以实时看到数据{Ol,02,O3,O4,…,Of, 盐行正常的收发,如图4所示。 语 本文基于CAN应用层协议设计了一种改进的AES加 陈基昕(硕士研究生).主要研究方向为嵌入式系统应用。 (责任编辑:薛士然 收稿日期:2O18一O3—22) :法,对s—Box进行了重构,并给出了重构后的s—Box和 t请登录网站在线投稿 2018年第7期 《羊 机 嵌入式系碗应冈》 29 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务