打印
[信息]

【 STM32垂直应用挑战第1周】+ 密码学基本原理

[复制链接]
357|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
WoodData|  楼主 | 2020-11-22 23:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  密码学加解密原理的第一部分,如何传输机密数据。我们会看到,对称加解密和非对称加解密技术在保证数据安全通信的过程中,发挥的不同作用,以及二者结合后如何解决了一个传输机密数据过程中的关键问题。
  为了保证数据的机密性,我们需要对消息进行加密。有两大类加解密方案,以AES为代表的对称加密算法,和以RSA、ECC椭圆曲线为代表的非对称加密算法。
  加密和解密的过程,都需要密钥参与。只是对称加密技术中,加密和解密过程,使用相同的密钥;而非对称加密技术中,加密和解密,使用的是不同的密钥。非对称加解密技术中,加密和解密过程,使用的是不同的密钥。每个主体无需提前和将要与之通信的另外一个主体,费尽心思构筑一个安全的环境来商讨通信密钥。

  我们已经有了对消息进行加密的工具,我们使用非对称算法,RSA、ECC、DH来产生或者发送通信双方的共享密钥。然后使用对称算法,AES、TDES,和共享的秘钥,对数据加密。接下去要解决的问题就是:完整性检查,如何确保没人篡改了消息,或者说即使篡改了,接收方能立刻识别出来。



  加解密原理的第二部分,如何确保收到的消息是完整可信的。我们会看到,哈希算法可以保证数据的狭义完整性,即消息本身没有被篡改;但是无法保证数据的广义完整性。要确保消息来自可信的对方,需要对消息进行认证。
  检查消息是否被修改过的最核心的元素就是哈希函数,又叫散列或者摘要函数。哈希,是英文Hash的英译,“散列” 二字,取的是这个函数把一段不定长度的消息,所谓“散”,映射到固定长度值的过程,映射,所谓“列”。而摘要,则是按函数的运算结果来取名。这个映射过来的固定长度的值,就叫该消息的摘要。

  哈希函数是一类函数的统称,不是具体一个函数的名字。这类函数的特点是:对消息的任何一点改变,摘要值必然也会变化。根据摘要值,无法反推、构造出消息本身,所谓“单向性”。还有就是,很难找到两个不同的消息,它们的摘要值是相同的。即具有很低的碰撞性。


  我们使用哈希函数可以验证消息的狭义完整性;要核实消息的广义完整性,还需要用到双方事先约好的共享密钥,或者使用私钥签名,公钥验签。可以看到,但凡涉及到密钥,它都有一个归属性,从而可以定位到人,这是密钥之所以能提供消息认证服务的根本原因。

现在,我们知道怎么对要发送的消息加密和对接收到的数据解密;知道怎么对接收到的消息验证它是否被篡改,以及是否来自真正的发送方。




  加解密原理的第三部分,以及如何确定通信对方的身份。
  通常我们会使用一个“挑战-质询”的模型,对对方身份进行认证。结合密码学原理,可以用到对称密钥技术,也可以用到非对称密钥技术。使用对称密钥的问题之一是,如何安全的把这个密钥分发出去并进行管理;使用非对称密钥技术也有它的使用痛点。通过证书颁发中心,及其它颁发给通信主体的身份*明,可以很好的解决身份冒用的问题。
  对通信对方身份的验证,是通过“挑战 – 应答”,也叫“质询 – 应答”来完成的。类似对消息的认证,它要结合密钥,使用秘钥的归属性来定位都人身上。使用非对称加解密技术时,如何确保手里对方的公钥真是可靠,就需要对方证书的帮忙。对方证书的有效性是通过CA,甚至Root CA来保证的。


https://www.stmcu.com.cn/ecosystem/app/information-security2
https://www.stmcu.com.cn/ecosystem/app/information-security3
https://www.stmcu.com.cn/ecosystem/app/information-security4


1_STM32_Security_concepts_and_systemic_analysis_methods_V1.3.pdf (853.01 KB)
2_STM32_Encryption_and_decryption__technology_V1.3.pdf (1.6 MB)
AN5156_STM32系列微控制器的安全性介绍.pdf (3.07 MB)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

115

主题

4395

帖子

25

粉丝