我可以: 邀请好友来看>>
ZOL论坛 > 技术论坛 > C/C++论坛 > 系列文章-随机数在密码学中的作用(二)应用介绍2
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

系列文章-随机数在密码学中的作用(二)应用介绍2

63浏览 / 1回复

9fxca4

9fxca4

0
精华
1
帖子

等  级:Lv.1
经  验:10
  • Z金豆: 5

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:
  • 注  册:2020-07-27
  • 登  录:2020-08-14
发表于 2020-07-27 17:29:42
电梯直达 确定
楼主

本期介绍随机数在密码学中生成Salt的用法。

在密码学中,Salt是指将特定(固定)字符串插入到明文固定位置,让Hash散列运算值不同于使用原始明文的散列值。HASH散列运算是公开算法,只要有相同的明文,任何人都能算出相同的摘要值。Salt的意义在于让只有掌握正确Salt数据的用户才能计算出正确的HASH散列值。在某种意义上,Salt对于HASH运算的意义,就相当于密钥对于3DES等对称算法的意义。下面举例介绍随机数结合Salt的用法。

越来越多的嵌入式设备面临远程升级固件的安全问题,主要分为两方面:

问题1:如何实现固件防篡改

问题2:如何防止窃取固件

本次介绍一个简单的方法来提升固件防篡改的安全等级。

应用场景:A端向B端传送固件H,用于升级MCU程序。

安全隐患:固件H存在传输中被篡改的风险。

B端收到固件H后并不确定H是否有被篡改过,所以面临着升级变砖等威胁。只需在A、B两端分别加入两个操作流程,就可以简单高效的提升安全等级。

准备阶段:1、A.B两端事先约定好在固件数据的指定位置加入Salt值。

               2、A、B约定好生成Salt的具体算法。

应用阶段A端工作:

1、生成随机数RND

2、根据RND计算生成SaltA

3、SaltA加入到约定的固件位置

4、计算生成散列值HashA

5、将固件H、RND、HashA发送到B端

应用阶段B端工作:

1、根据RND计算SaltB

2、SaltB加入到约定的固件位置

3、计算HashB

4、对比HashA是否等于HashB,如果相等,证明固件未被篡改,不等则证明计算有误或者固件被篡改了。


qq_d8b955151...

qq_d8b955151194


精华

帖子

等  级:Lv.1
经  验:81
发表于 2020-08-03 22:20:18 1楼
MCU计算HASH值是不是不安全啊,生成的Salt可能被跟到啊
高级模式
论坛精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL论坛您有任何使用问题和建议 您可以 联系论坛管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表