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

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

[复制链接]
jundao721 发布时间:2024-7-4 21:18
! h9 ]( F! {$ e, r: Y9 m0 w
      对于安全领域的哈希算法还是很感兴趣的,读完参看手册的介绍,额。。。还是没怎么明白。找gpt了解了一下,给出的解释是:在STM32微控制器中,HASH外设是指硬件加速的哈希函数单元。它的主要作用是通过硬件加速算法来计算数据的哈希值,常见的算法包括SHA-1、SHA-224、SHA-256、MD5等。这些算法通常用于安全性相关的应用,如数据完整性验证、数字签名、安全通信等。官网Demo中给出了SHA-384的例程,看完简介和代码,了解了一下。
* E9 M. [3 Y0 q8 q1 o       SHA-384是一种安全哈希算法,属于SHA-2系列(Secure Hash Algorithm 2)。原理大概是对一组数据,经过复杂的哈希运算,最后生成8个64位长的字组成,共512位(64字节)。这个值通常以16进制表示,作为消息的唯一标识。例程中给给出了一组数据,通过NIST Vector预测了哈希算法的结果,通过哈希算法和预测的结果进行对比。
0 X) c1 f3 m" R! {STM32CubeMx中Hash的配置如图1所示:
4 a1 J& F6 g7 W 3-1.JPG & Z$ _. r5 b; i0 v+ p" ]
1 m. i' a/ w7 }) n6 }9 ]% D3 {$ E
图1
' U7 f: B' R# n' i8 j9 r! c程序主要代码如下:8 k6 y) x5 Y" r
  1. if (HAL_HASH_Start(&hhash, (uint8_t *)Input, INPUT_TAB_SIZE, aDigest, 0xFF) != HAL_OK)! u2 j: z' N; j! j$ D
  2.   {
      q% E1 p$ G* A% @
  3.     Error_Handler();
    ; z) y/ {9 i4 U6 ?+ ?. H6 g
  4.   }
    - J" l" h6 d; V6 t+ j  i* G
  5.    /* Check the output buffer containing the computing digest with the expected buffer */) Y5 G& d( N  I
  6.   if(memcmp(aDigest, aExpectedDigest ,48) != 0)8 l% \& C- W& q- `
  7.   {
    ' W3 j& o% T8 X4 a( r$ r6 H
  8.     Error_Handler();5 Y* ~1 p% }6 @4 s7 Q0 I/ g$ M: [
  9.   }
    ! p" v$ H. u4 j8 B: l/ ^+ m: D
  10.   else
    3 J6 U4 u& P3 x. t& Y  `2 y
  11.   {
    0 c$ _8 R6 y5 Y: u/ F6 [( n
  12.     BSP_LED_On(LED2);
    0 G& m7 G5 E+ Z' \. y# N( F
  13.   }
复制代码
/ G, v7 M3 Y! Q1 }0 T& j% c

- l3 ?2 @" \+ B: j+ K- P  d4 b测试对比一下,数据对比正确点亮LED,例程嘛,当然是预期结果。如图2所示:5 y  f. H0 z7 \7 P$ u6 {* C' w
3-2.jpg
& c7 o8 O8 X/ `4 w9 c
5 d0 z$ H3 b, q6 K, F$ B* X6 w图2$ Q" X  ~6 O  N- e) _! q2 T4 Y( B
MCU安全应用这部分外设功能,还得好好研究一下。" l# K$ p. d$ `6 @2 H! \
收藏 评论0 发布时间:2024-7-4 21:18

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版