您的位置  > 互联网

嵌入式开发时加解密、签名、数字证书等知识

在开发嵌入式系统时,无法避免数据安全问题。 最近一直在做OTA升级,所以趁这个机会学习了一下加解密、签名、数字证书等,也做了这些笔记。

一、加密与解密 1、对称加密

对称加密是指使用相同的密钥进行加密和解密。

2.非对称加密

非对称加密是指加密和解密使用不同的密钥。 这两个密钥分别称为公钥和私钥。

公钥可以向所有人公开,而私钥则需要保密。

2. 数字签名

数字签名( ),也称数字指纹( ),是消息摘要算法和非对称加密算法的结合,可以验证数据的完整性,验证数据的来源。

如何生成摘要??? 使用哈希运算从纯文本生成摘要。 常用的哈希算法有SHA-1、MD5、MD2等。

1. 验证完整性

数据签名算法的模型分为两个主要阶段:

为什么摘要仍然需要加密? ? ? 在非安全通道中,数据和摘要都存在被篡改的风险,攻击者在篡改数据的同时也可以篡改摘要。 因此,摘要算法需要与加密算法相匹配,严格验证完整性。

2.认证数据来源

数字签名加解密过程示意图

1)A使用B的公钥对明文进行加密,生成密文信息。

2)A使用HASH算法对明文进行HASH运算,生成数字指纹。

3)A使用自己的私钥对数字指纹进行加密并生成数字签名。

4)A将密文信息和数字签名一起发送给B。

5) B使用A的公钥解密数字签名并获得数字指纹。

6)B收到A的加密信息后,用自己的私钥解密密文信息,得到原来的明文。

7) B使用HASH算法对恢复的明文进行HASH运算,使用与A相同的HASH算法生成数字指纹。 然后B将生成的数字指纹与A获得的数字指纹进行比较,如果一致,则B接受明文;如果一致,则B接受明文。 如果不一致,B 就丢弃明文。

优点:数字签名技术不仅证明信息没有被篡改,而且可以证明发送者的身份。

缺点:数字签名技术也存在问题。 对方获得的公钥可能被篡改而无法被发现。 引入数字证书。

3. 数字证书

接收方需要使用发送方的公钥来验证数据的真实性。 那么,接收方如何安全地获取发送方的公钥呢? 这需要数字证书来保证。

数字签名和数字证书总是成对出现,密不可分。 数字签名主要用于验证数据完整性和验证数据来源,而数字证书主要用于安全地颁发公钥。 数字证书主要包含三部分:用户信息、用户公钥和CA对证书实体信息的签名。

数字证书模型主要分为两步:

1. 颁发证书 2. 验证证书

完整的证书文件如下:

上面介绍了很多概念,那么在代码中如何实现加密和解密呢? 答案是,它是一个内置于 Linux 中的开源工具,可实现常见的加密算法和应用程序。 点击这里,网上资料很多,就不详细说了。