数据安全与保密
“ 数据安全与汽车信息安全,加密,解密,数字签名,数字信封,水印”
前言:本文主要介绍加密解密本身的概念。不针对具体的autosar 文档以及信息安全规范的文章,属于理论知识。方便我们后面对汽车信息安全,autosar 加密解密机制的学习,使用。
数据安全与保密
密码学已经经历了
- 手工密码
- 机械密码
- 电子密码
- 计算机密码
这几个阶段。现在流行的是芯片密码。
从autosar 文档中的最底层就是硬件实现的机制。
但是不管哪一种密码,密码编码 和 密码分析的基本工具都是 数学!
当今密码体制建立在三个基本的假设之上:
- 随机性假设
- 计算假设
- 物理假设
一个好的密码设备,或者是一个好的安全协议,必须构建两类不可缺少的乱源。这个乱源可以简单的理解为随机数。
一种是通过计算的数学乱源
一种是基于物理假设的物理乱源
这张图就充分说明了物理乱源。。。。手的抖动作为加密解密的输入。手哦的抖动从一定层面上来说,是不可相同再次出现一样的抖动方式。这也是对乱源 及 随机数的要求。
后面我们会在实际中使用到
加密机制
提到加密机制我们可以分为两种
- 对称密码体制
对称密码体制又叫做私钥密码体制。加密和解密的过程使用相同的钥匙(key)。
- 非对称密码体制
非对称密码体制又叫做公开密钥体制。什么意思呢?就是加密和解密用的不是同一个key.
public key是公开的。
privatekey 是需要自己收好的。
但是现在有个普遍的问题就是加密/解密的过程慢。不过在我们汽车软件上面感觉不到。
典型的有RSA算法。网上找了一个开源的基于python的实现。大家可以去看一下。
Python: https://github.com/sybrenstuvel/python-rsa
安全杂凑算法
这个实际上就是通过Hash 函数对数据进行加密。
单向的Hash 计算,输入一个变长字符串,输出一个定长字符串。这个结果就较多 message digest(MD),也叫做Hash值。
那么有什么用呢?
答:两个点
- 在某一特定时间内,算不回原始报文
- 无法找到两个经过Hash计算得出一样MD值的原始报文
这主要用于用户身份验证,验证签名。能确定这个事就是你干的,具有不可抵赖性。
典型的有MD5算法,我们可以打开git试一下。
我这个文件夹有一个autosar的文档。用md5计算量一下。得出前面那一串数字,就是计算出来的md5值。
不过听说md5 这个算法 被山东大学破解了。
数字签名
最为广泛的有下面三种算法
- Hash签名
- DDS签名
- RSA签名
举个例子Hash签名
发送方
接收方
对数据段进行用相同的Hash进行计算MD,
然后用public key 对MD进行解密
这时候 和 发送端的数据进行对比。如果一致,则认为数据没有破坏。也没有被篡改过。
汽车信息安全中使用
《汽车整车信息安全技术要求》
在这篇文章中提到了信息安全的基本要求。其实可以归类为
- 身份的确认
- 数据的内容正确性
- 数据的传输正确性
- 内容本身有没有被篡改
- 内容的完整性
总结:
对于这些其实都可以通过上面的基本思路来解决
通过数字签名来确定数据的原始性
通过MD算法值来确定数据的正确性
通过非对称加密来确定对方身份
通过数字签名对文件的损坏,非法破坏进行识别
等等方案。
忘记说随机数了。主要关注一下随机数 是 真随机还是伪随机。
随机数需要 不可预测,不尽相同,不可以复刻等特性。这样才能保证好的加密算法。
谢谢观看
文章转载自公众号:汽车与基础软件