点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
前言
与传统汽车相比,智能网联汽车能够提供更加安全、更加 节能、更加舒适以及更加环保的驾驶方式,是具有复杂的环境感知、智能决策和自动驾驶功能的新一代智能汽车。于此同时,汽车的信息网络安全环境也随之变得脆弱,威胁着人们的生命安全,为解决该问题许多行业研究人员采用加密的方式保障车载网络的信息安全。因此,本文将探讨此类密钥算法在汽车信息网络安全中的应用。
01
识木见林 巧遇算法
//
首先,我们用一个图表来简单介绍一下算法。
图1:对称性算法与非对称型算法
以下是具体算法介绍:
1
RSA算法
RSA算法是一种基于公开密钥机制且极具代表性的非对称加密算法,在进行加密操作与解密操作时分别使用两种不同的密钥。加密密钥也被称为公开密钥 (简称公钥),网络中的任一节点均可以获取。解密密钥也被称为私有密钥(简称私钥),仅该节点自身可知,不对外公开。
如图4.1所示,RSA算法的实现过程包括两个阶段,分别为密钥生成与数据加解密。
RSA 算法密钥生成阶段的实现过程如下:
(1)随机选出两个互不相等的大质数,分别表示为 p 与q。
图2:RSA算法的实现过程
RSA 算法数据加解密阶段具体实现过程如下:
(1) 加密实现过程:
发送方发送一条消息M给接收方,在进行加密前,需要将待发送消息M转换为整数m,且m需要满足0≤m≤n-1。转换完成后,发送方将整数 m 使用接收方的公开密钥 (e,n)进行加密生成消息 M 所对应的密文形式c,并将其发送给接收方。加密过程所使用的公式为:c=m∧e(modn)
(2) 解密实现过程:
接收方收到来自发送方的消息密文c ,并将其使用仅自身可知的私有密钥 (d,n) 进行解密得到整数m。由于整数m是由发送方将待发送消息M进行转换后得到的,因此,接收方可以通过对整数m进行反转的方式获取原始消息M。解密过程所使用的公式为:m=c∧d(modn)
RSA 算法利用公钥(e,n) 加密数据,利用私钥 (d,n)解密数据。
若私钥泄露,则RSA算法的安全性将无法得到保证。在RSA算法的密钥生成阶段主要包含p,q,n,φ(n),e以及d,而与 q 会在密钥生成阶段封装密钥后被清除,因此共有4个参数被保留,分别为 n,φ(n),e 以及d。d是由φ(n)以及e共同计算得出,获取φ(n)与e即可破解私有密钥。φ(n)是( p -1)与(q -1)的最小公倍数,只有获取p与q的值才能计算得出φ(n)。在被保留的参数中,n是p与q的乘积,对n进行质数因子的分解即可获取p与q,从而最终可以达到成功获取私有密钥参数d的目的。然而,最初随机生成的p与q均为两个较大的质数,在计算方面,将它们的乘积n成功分解为两个质数是十分困难的。因此,若最初随机生成的质数p与q足够大,那么RSA算法所具备的安全性则可以得到充分的保障。
2
HMAC-MD5算法
HMAC 算法是一种计算消息认证码的方法。消息认证码是可变长度的消息 经过特定算法的处理后所生成的信息,可用于消息认证。HMAC算法存在两个重要参数,分别为哈希函数与密钥。发送方与接收方共同拥有一个相同的密钥,双方可以使用该密钥与约定好的哈希函数对通信消息计算消息认证码,并通过交 换消息认证码的方式对通信消息进行认证。
MD5 算法是一种单向密码散列函数,其可以接收任意长度的输入信息并输出一段长度为16字节的散列值,且计算过程不可逆。MD5算法以分组的方式对输入信息进行处理,如图3所示,MD5算法的具体实现过程主要分为以下阶段,分别为信息输入、信息填充、添加长度、初始化链接变量、数据分组、数据处理以及结果输出。
(1)信息输入。将待处理信息作为输入提交给算法,以获得与输入相对应的固定长度的简短信息摘要。
(2)信息填充。为满足算法后续处理过程中对于信息长度的要求,在进行处理前,需要对输入的信息进行按位填充,填充后的信息长度为 N∗512+448位,其中N为正整数。填充时所使用的方法为在输入信息的尾部填充一个1与多个0。
(3)添加长度。在进行位填充后的信息尾部添加一个二进制串,用于表示 进行信息填充前的原始信息长度,如果大于 64 位,则只取低 64 位。添加信息长度后的信息总位长为N∗512+448+64=(N+1)∗512。
(4)初始化链接变量。MD5算法中所使用的四个链接变量的值分别为A=0χ01234567,B=0χ89ABCDEF,C=0χFEDCBA98,D=0χ76543210。
(5)数据分组。首先按照每 512 位一组的分组规则对经过前三步处理后的数据进行分组操作,然后再将每组划分成长度为 32 位的子分组,共可得到 16 个子分组。
(6)数据处理。MD5算法对数据的处理过程共包括四轮主循环运算,共循环即 (N +1) 次。在第一个分组进入主循环前,需将初始化后的链接变 量 A、B、C 以及 D 分别复制到对应的整型变量 a、b、c 以及d中。除第一分组外,每组的初始值均为上一组的运算结果。各主循环的执 行过程大致相同,包括16次操作,每次操作对应一个子分组。
MD5 算法的数据处理的具体流程如图4所示,其中F为非线性函数,M为数据,L为常量。每次操作在四个整型变量 a、b、c 以及 d 中选择三个使用函数F进行处理,将处理后的结果与未被选择的变量、一个子分组以及一个常量相加, 并将得到的结果进行循环左移后与变量 a、b、c 以及d中之一做加法运算,最后将该结果用来替换a、b、c以及d的一个。
图4:MD5 算法数据处理流程
在四轮主循环执行完成后,将a、b、c以及d分别与对应的A、B、C 以及D相加,即 a=a+A, b= b+B,c=c+C,d=d+D,然后继续使用下一分组运行该算法,直到所有的分组运行结束,最终输出的散列值为a、b、c 以及d的级联。
HMAC-MD5算法属于HMAC算法中的一种,其使用 MD5算法作为HMAC算法的哈希函数。HMAC-MD5算法的具体实现步骤如下:
(1)对密钥进行填充操作。若密钥不足 64 字节,则通过在密钥尾部填充 0 的方式生成一个长度为 64 字节的字符串。若密钥大于 64 字节,则 将该密钥字符串作为输入进行 MD5 运算,在运算结果尾部填充 0 生 成一个长度为 64 字节的字符串,并使用该字符串替代原有的密钥值 进行后续运算。
(2)将第(1)步生成的长度为 64 字节的字符串与 0x36 进行异或运算。
(3)将待处理数据添加到第(2)步完成异或运算的结果字符串的尾部。
(4)将第(3)步生成的已添加待处理数据的字符串作为输入进行 MD5 运 算。
(5)将第(1)步生成的长度为 64 字节的字符串与 0x5c 进行异或运算。
(6)将第(4)步完成 MD5 运算的结果字符串添加到第(5)步完成异或 运算的结果字符串的尾部,并将新生成的字符串作为输入进行 MD5 运算,其输出的结果字符串即为 HMAC-MD5 算法最后的输出结果。
3
DES算法原理
DES 算法是一种基于对称密码机制的对称加密算法,在进行加密操作与解密操作时均使用相同的密钥。该密钥由参与通信的发送方与接收方在进行安全通信之前共同商议决定。
如图5所示,DES 算法的具体实现过程主要分为以下几个步骤:
图5:DES 算法实现过程
(1)初始 IP 置换。DES加密算法将长度为64位的输入信息依据初始IP置换表进行初始IP置换,并将置换后的结果划分为长度均为32位的L0与R0两部分,其中L0为前半部分(即前32位),R0为后半部分(即后32位)。置换过程依据的初始IP置换表如表1所示。该初始IP置换表包括8行8列,代表64位数据的位置,即第1行第1列代表第1位数据,第1行第2列代表第2位数据,以此类推。表中的数字代表置换前数据的位置,例如,第二行第一列的数据60代表将64位明文输入的第60位置换到第9位。
表1:初始 IP 置换表
(2)密钥置换。密钥置换阶段也称子密钥生成阶段,DES算法每轮迭代所使用的子密钥均不相同。如图6所示,首先需要依据 PC-1表将长度为64位的密钥转换为长度为56位的密钥,并将转换后的结果划分为长度均为28位的C0与D0两部分,其中C0为前半部分(即前28位),D0为后半部分(即后28位)。4.2即为转换时所依据的PC-1表。
图6:密钥置换过程
表2:PC-1
将划分完毕的C0与D0分别进行循环左移操作,得到C1与D1。并将二者进行合并,依据PC-2表将合并后的结果转换为长度为48位的子密钥K1。其中,循环左移的位数取决于迭代轮数,表 3即为所依据的循环左移位数表。
表3:循环左移位数表
在下一轮迭代过程中,将C1与D1再次依据循环左移位数表进行循环左移操作,得到C2与D2。并将二者进行合并,依据PC-2表将合并后的结果转换为长度为48位的子密钥K2。以此类推,在16轮的迭代过程中共生成16个子密钥,分别为 K1,K2,……,K16。表4即为转换时所依据的PC-2表。
表4:PC-2
(3)扩展置换。将长度为32位的Rn(即明文输入的右半部分)依据 E表扩展至48位,并将扩展后的结果与相应的子密钥进行异或运算。表5即为进行扩展置换时所依据的E表,其中,中间为原数据位,左右两边为扩展位。
表5:E表
(4)S 盒代替。将第(3)步所得结果作为送入 S 盒中,首先需要进行分组操作,每个分组与一个不同的S盒相对应。共有8个不同的S盒,每个S盒的输入长度与输出长度分别为6位与4 位,输入决定了其所对应的输出在S盒中的位置。表6即为所依据的8个S盒,每个S盒均可以 表示为一个4*16的表。其中,输入的高低两位对应行数H,输入的中间四位对应列数L,S盒中第H行第L列的数据即为其对应的输出的具体位置。
表6:S盒
(5)P 盒置换将进行完8个S盒代替运算后得到的总长度为32位的输出结果作为输入送入P盒进行置换操作。表7即为进行P盒置换时所依据的P盒。
表7:P盒
(6)IP 逆置换此次置换为初始IP置换的逆置换过程,所依据的IP逆置换表如表8所示。
表8:IP逆置换表
02
移花嫁木 辨其真假
接下来让我们以表格的形式来区分各个算法之间的差别。
算法选择:对称加密AES,非对称加密: ECC,消息摘要: MD5,数字签名:DSA
对称加密算法(加解密密钥相同)
非对称算法(加密密钥和解密密钥不同)
散列算法比较
对称与非对称算法比较
算法选择(从性能和安全性综合)
对称加密: AES(128位),
非对称加密: ECC(160位)或RSA(1024),
消息摘要: MD5
数字签名:DSA
轻量级:TEA、RC系列(RC4),Blowfish (不常换密钥)
速度排名(个人估测,未验证):IDEA<des <gasti28<gost<aes<rc4<tea<blowfish <="" font="">
简单的加密设计:用密钥对原文做异或,置换,代换,移位
单钥密码算法性能比较表
1.3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;
2.RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快;
3.IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;
4.DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法;
5.AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法;
6.BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快;
7.PKCS:The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。
8.SSF33,SSF28,SCB2(SM1):国家密码局的隐蔽不公开的商用算法,在国内民用和商用的,除这些都不容许使用外,其他的都可以使用;
9.ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学
10.TEA(Tiny Encryption Algorithm)简单高效的加密算法,加密解密速度快,实现简单。但安全性不如DES,QQ一直用tea加密
03
林中鸟鸣 乘风千里
算法在汽车网络信息安全中的应用
网络安全视角的车联网架构(图片来源:中国信通院车联网安全白皮书)
“
在车联网系统中,主要包括三个角色,即用户端,车辆,云端,其中:用户安装移动终端安装APP软件,以完成车辆的发现、开门、熄火、锁门等车辆控制操控;车辆则是通过车辆控制模块与云端进行远程通信,并使用蓝牙实现和APP软件之间的无线通信;云端负责的是集中管理车辆中的左右数据资源的工作,同时进行远程控制车辆的操作。
从防护对象来看,车联网的网络安全应将重点关注到智能网联车辆安全、智能终端安全、车联网服务平台安全、通信安全、应用安全、数据安全和隐私保护,而密钥算法技术可以贯穿应用于车联网环境的各个环节,例如用户和设备的身份认证、访问控制、重要数据(日志、采集的车辆信息、用户数据)的加解密等场景。
从“端”、“管”、“云”中看算法密钥的应用
01
密码技术在“端”中的应用
02
密码技术在“管”中的应用
03
密码技术在“云”中的应用
04
泥积跬步 爝火不息
密钥算法未来发展、痛点预测
01
多类型终端、协议和应用场景下的产品适配
02
实现轻量级的密码产品应用
03
密码应用的行业规范及标准仍需完善
结语
The End
见微知著,择物取道,瓦砾遍布。
密钥算法经历数十年的变革与发展,有时领先于时代,有时滞后于时代,在时代的来回摆动间,它们获得了生命力,然而对于当前重要的发展问题——汽车信息网络安全来说,密钥算法的应用无疑是缓解该问题的强力剂,一定程度上促进了车联网汽车的智能化与互联化,为其稳步发展提供源源不断的动力。因此,本文密钥算法出发,列举出了RSA、HMAC-MD5、DES等几个重要算法,再进一步从不同角度比较各个算法的区别,试图为观者厘清它们之间的异同点,最后通过阐述密钥算法在汽车信息网络安全中的应用指出了其未来发展的痛点预测。
存白昼于眼眸,握夕阳于盘游。下一期推送再见!
(注:部分内容资料参考网络,如有侵权请与笔者联系及时修改,感谢!)
//
参考文献
[1]《面向车载以太网的信息安全防护机制研究》;王楚婷
[2]《车联网中密码算法的应用现状》;中国信息安全杂志
[3]《密码技术在车联网安全中的应用与挑战》;林海静