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

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

[复制链接]
jundao721 发布时间:2024-7-4 21:18
' m; a  m+ m) |
      对于安全领域的哈希算法还是很感兴趣的,读完参看手册的介绍,额。。。还是没怎么明白。找gpt了解了一下,给出的解释是:在STM32微控制器中,HASH外设是指硬件加速的哈希函数单元。它的主要作用是通过硬件加速算法来计算数据的哈希值,常见的算法包括SHA-1、SHA-224、SHA-256、MD5等。这些算法通常用于安全性相关的应用,如数据完整性验证、数字签名、安全通信等。官网Demo中给出了SHA-384的例程,看完简介和代码,了解了一下。7 P, `. c- p: D6 q) _
       SHA-384是一种安全哈希算法,属于SHA-2系列(Secure Hash Algorithm 2)。原理大概是对一组数据,经过复杂的哈希运算,最后生成8个64位长的字组成,共512位(64字节)。这个值通常以16进制表示,作为消息的唯一标识。例程中给给出了一组数据,通过NIST Vector预测了哈希算法的结果,通过哈希算法和预测的结果进行对比。  g* i& Y$ B' B- {3 `
STM32CubeMx中Hash的配置如图1所示:
) q/ f+ Q. `' s' l' L 3-1.JPG $ i! E7 G. A- v! d1 J
7 e6 T3 x  l5 u* ]. p
图13 I, P2 H: d( j0 t+ p2 @# `& I% r
程序主要代码如下:
+ }3 s5 K% h. Y% u$ L$ L5 ?% ]. p
  1. if (HAL_HASH_Start(&hhash, (uint8_t *)Input, INPUT_TAB_SIZE, aDigest, 0xFF) != HAL_OK)
    # D9 t9 h2 W$ B9 j; i
  2.   {' b/ U0 X" E1 z' ?% ~: h2 O
  3.     Error_Handler();" }! C  B9 ~5 L3 t/ O/ `
  4.   }1 C. X5 y/ J0 _: N$ S+ v2 q
  5.    /* Check the output buffer containing the computing digest with the expected buffer */
    0 X! X3 L$ Z+ ~3 ^1 \6 x* M6 z
  6.   if(memcmp(aDigest, aExpectedDigest ,48) != 0)
    ' j* b0 s5 }4 r2 Z
  7.   {
    % U( N4 X9 j, I( j1 S
  8.     Error_Handler();
    - y" v. w! ?: d5 j9 O
  9.   }
    " H9 y% f  {9 W: s
  10.   else( C- _2 j' Q7 a
  11.   {. b/ e, a& M6 [9 f( p* {
  12.     BSP_LED_On(LED2);% `' ?6 }; `, Z5 Y( f9 X
  13.   }
复制代码
  a& C- R1 V2 v! @, l+ |/ A4 [

4 d1 |7 r2 [9 i6 D. H$ V测试对比一下,数据对比正确点亮LED,例程嘛,当然是预期结果。如图2所示:2 h2 X, H  W# T( I8 [
3-2.jpg
/ f6 }( E& p: Z( L
; N4 _+ f" n5 D; ]/ [1 v) h; H2 ?8 B图29 S/ r  w8 O4 _; K% _/ P/ N6 G6 ~
MCU安全应用这部分外设功能,还得好好研究一下。
, k" p' T/ l4 k1 S/ N+ `
收藏 评论0 发布时间:2024-7-4 21:18

举报

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