一种基于智能车的安全通信方法

文档序号:9330525阅读:479来源:国知局
一种基于智能车的安全通信方法
【技术领域】
[0001] 本发明涉及一种智能车的安全通信方法。
【背景技术】
[0002] 采用明文的形式在智能车和服务器之间进行通信,存在极大的安全隐患。具体来 说,存在如下3个安全隐患:通信内容被窃听、通信身份被伪装、通信内容被篡改。
[0003] 由于上述信息是在互联网中传输,而所谓的互联网,是由能连通到全世界的网络 组成的,因此无论处于哪个位置上的服务器和客户端通信时,在整个通信线路上的路由器、 交换器、网桥等网络设备,都不可能全是某个人的私有物,所以不能保证在这些环节不会遭 到窃听、身份被伪装和篡改。一旦使用明文传输的消息被窃取,窃取方就可以知道当前通信 的内容。
[0004] 在采用明文的形式在智能车和服务器之间进行通信的过程中,没有对通信双方的 身份进行验证,任何人都可以说他是智能车或他是服务器,只要发送的数据格式符合要求 就行。服务器对要求建立连接的请求来者不拒,这样就存在有人伪装智能车的情况,向服务 器发送虚假的智能车信息,而真实的智能车出现被盗窃的风险。还有可能出现有人伪装服 务器,向智能车发送虚假的控制命令的情形,存在极大的安全隐患。由于采用明文的形式在 智能车和服务器之间进行通信的过程中无法验证报文的完整性,也就是是否出现被篡改的 情况,那么就有可能出现消息在中途被黑客修改的安全隐患。本来服务器是希望智能车停 止,篡改之后的命令是让其加速,这样的隐患可想而知。

【发明内容】

[0005] 本发明的目的是提供一种智能车的安全通信方法,能够解决智能车和服务器之间 进行通信时存在的通信内容被窃听、通信身份被伪装、通信内容被篡改这三大隐患。
[0006] 为实现上述目的,本发明采用如下技术方案:
[0007] -种基于智能车的安全通信方法,包括如下步骤:
[0008] 步骤一:采用智能车的编号及跟该编号一一对应的MASK值作为其密码,服务器端 分配有一对公钥和私钥,同时给智能车内置服务器的公钥,智能车客户端随机生成一个数, 作为本次通信对称加密算法的密钥,同时也用来对服务器进行验证,智能车客户端将使用 非对称加密算法即用服务器公钥加密客户端生成的对称密钥,发送给服务器;
[0009] 步骤二:服务器用私钥解密消息,获得对称密钥;用对称加密算法加密握手文本 "hello, zju roboy ! ",回复给客户端;
[0010] 步骤三:客户端用对称加密算法解密握手文本,检查握手文本是否正确,若正确则 服务器端验证成功,否则说明服务器为伪装;在服务器验证成功的基础上,用对称加密算法 加密智能车编号和MASK,作为客户端的验证信息,发送给服务器;
[0011] 步骤四:服务器解密验证信息,获得编号和MASK,对智能车身份进行校验,身份认 证合法返回true,不合法返回false ;
[0012] 步骤五:接收到服务器的验证成功反馈后,智能车和服务器就正式建立起了安全 可靠的连接;
[0013] 步骤六:智能车和服务器在已经建立好的连接上,采用对称加密算法进行双向通 {目。
[0014] 所述的公钥和私钥的生成,涉及到费马-欧拉定理,包括如下步骤:
[0015] a)随机选择两个不同的质数p和q,这两个数越大,长度越接近,就越难破解,选p =73, q = 97,
[0016] b)计算p和q的乘积η,η = 73*97 = 7081 ;n的二进制表示长度就是密钥的长 度,7081的二进制表示为1101110101001,一共有13位,因此本次非对称密钥的长度就是13 位;
[0017] c)计算η的欧拉函数Φ (η),根据欧拉公式Φ (η) = (p-1) (q-Ι),因此η = 6912 ;
[0018] d)随机选择一个整数e,但是必须满足I < e < φ(η),并且e要与φ (η)互质,这 里选29 ;
[0019] e)计算e对于Φ (η)的模反元素 d,所谓模反元素就是指有一个整数d,使得ed 被Φ (η)除的余数为1,ed = 1 (ηι〇(1Φ (η)),这个公式等价于ed-1 = k<i> (η),相当于对 ex+Φ (n)y = 1这个二元一次方程求解,其中e = 29,Φ (η) = 6912,利用扩展欧几里得算 法,得出一组解为(6197,-26);
[0020] f)到这一步,我们就求出了公钥和私钥所需的所有东西,η = 7081,e = 29, d = 6197,公钥就是(7081,29),私钥就是(7081,6197)。
[0021] 步骤二采用AES算法,AES加密过程在一个4*4的字节矩阵上进行,其初值为明文, 同样的,128位密钥也刚好形成一个4*4的矩阵,将其称为密钥矩阵,AES加密时,共涉及4 种运算,分别是轮密钥加、字节替换、移位变换、混淆变换。
[0022] 步骤四在服务器启动时,将身份信息加载到内存中,采用key-value形式存储,以 加快验证速度,采用Java的HashMap数据结构,编号为key,MASK为value。
[0023] 与现有技术相比本发明的有益效果是:
[0024] (1)本发明所有的消息均通过加密之后进行传送,黑客窃取传递的报文后,只能看 到一段乱码,能有效防止黑客窃取通信内容;
[0025] (2)在智能车和服务器正式传递消息之前,分别完成了对服务器和智能车的身份 认证,确保通信双方身份真实有效,防止服务器端和智能车客户端被伪装;
[0026] (3)本发明的通信在传递有效数据的同时,还会传递明文信息的消息摘要,对明文 计算消息摘要,黑客想要修改消息摘要而不被发觉,必须要获得明文才行,而明文又采用了 AES加密,使得黑客无法得逞,能有效防止黑客篡改通信内容。
【附图说明】
[0027] 图1为本发明方法的安全通信流程示意图;
[0028] 图2为AES加密流程示意图;
[0029] 图3为移位变换阶段示意图。
【具体实施方式】
[0030] 为了使本发明的技术方案更加清晰,以下结合附图1至3,对本发明进行详细说 明。应当理解的是,本说明书中描述的【具体实施方式】仅仅是为了解释本发明,并不是为了限 定本发明的保护范围。
[0031] 每辆智能车在出厂时都会分配一个全局唯一智能车编号,同时还有跟该编号一一 对应的MASK值,相当于是智能车的密码。服务器端分配有一对公钥和私钥,同时在智能车 出厂时内置服务器的公钥。本发明所述的智能车的安全通信方法,通过下面的步骤实现:
[0032] 步骤一:智能车客户端随机生成一个数,作为之后通信对称加密算法的密钥,同时 也用来对服务器进行验证。这一步智能车客户端使用非对称加密算法即用服务器公钥加密 客户端生成的对称密钥,发送给服务器。在本安全通信方法中,每次智能车客户端和服务器 通信时都采用不同的对称加密密钥,保证了数据传输的安全。加密密钥的生成采用MD5算 法,当需要与服务器建立连接时,根据当前智能车位置信息、电池信息、累计行驶里程、当前 时钟等信息通过MD5算法生成1024位密钥,保证了密钥的随机性。
[0033] 本安全通信方法的非对称加密算法采用RSA公钥加密算法,RSA算法非常可靠,随 着密钥的增长,它的破解难度越来越大。据已有信息查证,目前被破解的最长的RSA密钥长 度为768位,但也是花了很大的功夫才破解成功的。换句话说,长度超过768位的密钥至今 还没有被人破解(至少是还没有人宣布已经破解)。因此我们完全可以认为在当前的环境 下,1024位的RSA密钥是安全的,2048位的RSA密钥极其安全。
[0034] 首先是公钥和私钥的生成,生成公钥和私钥的过程涉及到费马-欧拉定理,具体 分为如下步骤:
[0035] a)随机选择两个不同的质数p和q,这两个数越大,长度越接近,就越难破解,这里 我们以P = 73, q = 97来举例说明。
[0036] b)计算p和q的乘积η,η = 73*97 = 7081 ;n的二进制表示长度就是密钥的长 度。7081的二进制表示为1101110101001,一共有13位,所以本次非对称密钥的长度就是 13位。
[0037] c)计算η的欧拉函数φ(η),根据欧拉公式φ(η) = (p - l.)(q - 1),因此=6912。
[0038] d)随机选择一个整数e,但是必须满足I < e < φ(η),并且e要与φ(η)互质。这 里我们选择29。
[0039] e)计算e对于φ(η)的模反元素 d,所谓"模反元素"就是指有一个整数d,使得ed 被φ(η)除的余数为I,ed φ(η))Ρ.这个公式等价于ed - I. = k φ(丨1),:为了求出 d,相当于对战+ cp(n)y = 1这个二元一次方程求解,其中e = 29,Φ (η) = 6912,利用扩展 欧几里得算法,得出一组解为(6197,-26)。
[0040] f)到这一步,我们就求出了公钥和私钥所需的所有东西。η = 7081,e = 29, d = 6197,所以公钥就是(7081,29),私钥就是(7081,6197)。
[0041] 然后是如何使用公钥对信息进行加密,RSA加密的对象必须是整数,并且还要小于 η (因为η很大,这个条件很容易满足)。在智能车管理系统通信中,智能车VCU和服务器之 间采用RSA加密的对象就是一个对称加密算法的密钥。加密需要用到公钥中的η和e,假设 我们要加密的随机数为m,加密的过程就是执行公式m e= c (mod η)。现在η = 7081,e = 29,假设m = 314,根据该公式,计算出c等于3117,这就是我们使用公钥加密得到的密文。
[0042] 接着是如何使用私钥对密文进行解密,解密就要用到上面生成的私钥(7081, 6197)。按照如下公式cd= m(mod η),算出m = 314,跟加密前的信息一致。至此,整个加 密解密过程全部完成。
[0043] 步骤二:服务器用私钥解密消息,获得对称密钥。用对称
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1