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

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

[复制链接]
jundao721 发布时间:2024-7-4 21:18
: H4 d- @5 i7 O% o. b$ c' [
      对于安全领域的哈希算法还是很感兴趣的,读完参看手册的介绍,额。。。还是没怎么明白。找gpt了解了一下,给出的解释是:在STM32微控制器中,HASH外设是指硬件加速的哈希函数单元。它的主要作用是通过硬件加速算法来计算数据的哈希值,常见的算法包括SHA-1、SHA-224、SHA-256、MD5等。这些算法通常用于安全性相关的应用,如数据完整性验证、数字签名、安全通信等。官网Demo中给出了SHA-384的例程,看完简介和代码,了解了一下。8 r1 @3 W0 ^* P
       SHA-384是一种安全哈希算法,属于SHA-2系列(Secure Hash Algorithm 2)。原理大概是对一组数据,经过复杂的哈希运算,最后生成8个64位长的字组成,共512位(64字节)。这个值通常以16进制表示,作为消息的唯一标识。例程中给给出了一组数据,通过NIST Vector预测了哈希算法的结果,通过哈希算法和预测的结果进行对比。& w7 M( W) h" V: g# P! I9 q" p
STM32CubeMx中Hash的配置如图1所示:+ a! e- V! z9 T) t" N, ^
3-1.JPG
4 U& T0 q7 U4 [5 g4 K7 d
/ `7 p. X. a& y图13 T2 c. Y& b  U. i2 K0 y2 x; y6 R
程序主要代码如下:$ `6 Y8 P, I7 l: L
  1. if (HAL_HASH_Start(&hhash, (uint8_t *)Input, INPUT_TAB_SIZE, aDigest, 0xFF) != HAL_OK)
    ' p& e/ Q4 b$ y: I4 H* M3 r
  2.   {
    / k, S- L5 B4 a9 n' v- @
  3.     Error_Handler();; d& ?8 i, P' k4 \$ S$ F) V
  4.   }, H) S+ K+ q8 h
  5.    /* Check the output buffer containing the computing digest with the expected buffer */) S1 k4 A8 R& o. d4 R) ~6 Y
  6.   if(memcmp(aDigest, aExpectedDigest ,48) != 0)
    9 F1 t2 ?# c6 Z, [
  7.   {0 U8 Z, t, @; O' u" H
  8.     Error_Handler();/ D$ w8 O9 T5 j0 D$ {$ J
  9.   }3 v* O7 t9 g1 `$ `9 R- j7 R
  10.   else
    * O3 x! S- O) e1 J
  11.   {7 H( y- q- {' ]) J: S
  12.     BSP_LED_On(LED2);
    9 W% {$ Z3 p% b3 t
  13.   }
复制代码

$ r. r0 q( O! F. P
- J3 I8 }' B/ A2 ]3 B- i测试对比一下,数据对比正确点亮LED,例程嘛,当然是预期结果。如图2所示:
: s; |* m; Y7 y3 M2 D$ S0 Z; t* r 3-2.jpg
1 R0 Q' W" G- Y: k
+ j. }8 y3 w4 H) a$ S) }( @图2
4 \6 U7 v! M/ L* {% A% sMCU安全应用这部分外设功能,还得好好研究一下。
6 W$ U; P( a& D  i" d: G# A
收藏 评论0 发布时间:2024-7-4 21:18

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版