你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-H533RE评测】3.HASH验证

[复制链接]
jundao721 发布时间:2024-7-4 21:18
3 e5 w/ Z9 O) }% U9 ]7 d
      对于安全领域的哈希算法还是很感兴趣的,读完参看手册的介绍,额。。。还是没怎么明白。找gpt了解了一下,给出的解释是:在STM32微控制器中,HASH外设是指硬件加速的哈希函数单元。它的主要作用是通过硬件加速算法来计算数据的哈希值,常见的算法包括SHA-1、SHA-224、SHA-256、MD5等。这些算法通常用于安全性相关的应用,如数据完整性验证、数字签名、安全通信等。官网Demo中给出了SHA-384的例程,看完简介和代码,了解了一下。# P8 U8 J# M; ]  b7 [( \3 y
       SHA-384是一种安全哈希算法,属于SHA-2系列(Secure Hash Algorithm 2)。原理大概是对一组数据,经过复杂的哈希运算,最后生成8个64位长的字组成,共512位(64字节)。这个值通常以16进制表示,作为消息的唯一标识。例程中给给出了一组数据,通过NIST Vector预测了哈希算法的结果,通过哈希算法和预测的结果进行对比。
! l3 e# N. f9 o% E) {STM32CubeMx中Hash的配置如图1所示:
! T) r# m: v+ e 3-1.JPG ) A. |" O6 f% h  [' [

/ a# w/ c# a: q* p* a图1
5 n5 b- y) x3 H& Z程序主要代码如下:
# z2 ~9 @' e: p  `$ W- Q" C- G
  1. if (HAL_HASH_Start(&hhash, (uint8_t *)Input, INPUT_TAB_SIZE, aDigest, 0xFF) != HAL_OK)# }* B0 s# z: O( f8 H2 V
  2.   {$ j! d$ V% `/ Z) i0 ?- L; Y
  3.     Error_Handler();( u, O: G; a7 U* w. O6 D) r+ }
  4.   }9 z: r8 R, e+ e4 u5 T; t4 L
  5.    /* Check the output buffer containing the computing digest with the expected buffer */
    ; ?$ t- o, J8 a* w. G
  6.   if(memcmp(aDigest, aExpectedDigest ,48) != 0)
    3 m1 x9 D) s9 Y& f9 v& Y+ I9 z
  7.   {1 K& o* |2 `& [; }  ]! U* ~7 \
  8.     Error_Handler();
    $ ^- i$ p9 X: c3 m& `
  9.   }
    3 J: w6 {& y. M: `: V: ^6 G7 t* y
  10.   else& Z' k6 w  c4 G$ R  f
  11.   {
    . |' i. {, J; Z" i$ K9 f
  12.     BSP_LED_On(LED2);
    0 T/ ^' N* m8 u& y7 j
  13.   }
复制代码

9 J( H+ w  _5 B) o) l9 |, C! w5 n. ^7 `7 B% B+ X0 |
测试对比一下,数据对比正确点亮LED,例程嘛,当然是预期结果。如图2所示:  Q: v& Q. Q& Q; l* x4 F, C! T
3-2.jpg
% C* {  p* i1 n0 m2 H# f& Q$ _4 V) P% c" d4 J/ |
图2
6 S5 h5 |' f) H9 x1 g2 w6 @MCU安全应用这部分外设功能,还得好好研究一下。
( z4 o9 D9 D" n1 P
赞 收藏 评论0 发布时间:2024-7-4 21:18

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版