基础知识:
SHA-256
- 类型: 哈希函数
- 用途: 用于生成数据的唯一指纹(哈希值),确保数据的完整性。
- 特性: 不可逆、快速计算、抗碰撞性。
RSA
- 类型: 非对称加密算法
- 用途: 主要用于加密数据、数字签名和密钥交换。
- 特性: 使用一对密钥(公钥和私钥),其中公钥用于加密或验证签名,私钥用于解密或生成签名。
关联与协作
尽管SHA-256和RSA有不同的用途,但它们可以在多个方面相互配合:
-
数字签名:
- 在创建数字签名时,通常首先使用SHA-256对消息进行哈希处理,然后使用发送者的RSA私钥对该哈希值进行加密,生成数字签名。接收方可以使用相同的SHA-256算法对接收到的消息进行哈希,并使用发送者的RSA公钥解密数字签名来验证该哈希是否匹配。这不仅验证了消息的完整性,还确认了消息确实来自拥有相应私钥的发送者。
打包流程:
未加密的tar包 -》(AES加密) -》 对固件求SHA256 -》对SHA256通过RSA私钥加密 -》填充到256字节 -》写入固件开头 -》输出加密后的包
(也可以不经过AES加密)
解包流程:
加密后的包 -》读取前256字节-》通过RSA公钥解密 -》求出SHA256 -》验证包的完整性 -》(AES解密) -》解密后的包