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

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

[复制链接]
jundao721 发布时间:2024-7-4 21:18
% j4 g( y: U3 k+ Q9 `" H
      对于安全领域的哈希算法还是很感兴趣的,读完参看手册的介绍,额。。。还是没怎么明白。找gpt了解了一下,给出的解释是:在STM32微控制器中,HASH外设是指硬件加速的哈希函数单元。它的主要作用是通过硬件加速算法来计算数据的哈希值,常见的算法包括SHA-1、SHA-224、SHA-256、MD5等。这些算法通常用于安全性相关的应用,如数据完整性验证、数字签名、安全通信等。官网Demo中给出了SHA-384的例程,看完简介和代码,了解了一下。
5 `) K  L3 [+ z( q  o$ C7 b8 V       SHA-384是一种安全哈希算法,属于SHA-2系列(Secure Hash Algorithm 2)。原理大概是对一组数据,经过复杂的哈希运算,最后生成8个64位长的字组成,共512位(64字节)。这个值通常以16进制表示,作为消息的唯一标识。例程中给给出了一组数据,通过NIST Vector预测了哈希算法的结果,通过哈希算法和预测的结果进行对比。2 Q. c* y" S  R5 c" z0 m
STM32CubeMx中Hash的配置如图1所示:2 O: k" J! W5 U( d: ~6 t5 D2 Z7 T
3-1.JPG
- f, A  S% d  D+ S2 @2 [: ~# O6 v! G. J3 ~) y
图1
9 X; O, R( M" A5 G程序主要代码如下:
; i5 n  u! @+ h9 k
  1. if (HAL_HASH_Start(&hhash, (uint8_t *)Input, INPUT_TAB_SIZE, aDigest, 0xFF) != HAL_OK)6 |! s, b) o, A. Q$ K! i9 }
  2.   {5 ^( i; }* C' w3 _* N5 L: ?
  3.     Error_Handler();
      ], K/ t( N* Q: y
  4.   }/ D: b( m3 s' H1 E$ m' G: P% n' j
  5.    /* Check the output buffer containing the computing digest with the expected buffer */
    & Z( X" }% J6 R, o, N. {  ~& ]9 M2 h
  6.   if(memcmp(aDigest, aExpectedDigest ,48) != 0)
    7 Y4 _5 Y. L' U2 \, k  N6 _
  7.   {
    ! r7 N5 i. Z! s# Y8 q1 i
  8.     Error_Handler();: t; g- {/ d! ]
  9.   }
    0 t, H7 z: R) J, v. p  g  _! `
  10.   else
      [0 d* j/ s% e2 u; J$ E
  11.   {) z! }4 O  x6 h$ ?" p
  12.     BSP_LED_On(LED2);
    " i. L3 A8 s( f' j0 B7 ]4 O
  13.   }
复制代码
0 Y* `+ a8 ?  V( y

! B) m  M0 c% B. `; K8 @3 ?测试对比一下,数据对比正确点亮LED,例程嘛,当然是预期结果。如图2所示:
/ E2 |; l* X5 @- e& ]$ { 3-2.jpg
6 q2 h9 u7 O% ^* D* z) g  P. e4 T4 J- K9 s1 y
图2, u$ b* J" R) d! ^; _) T8 M7 T
MCU安全应用这部分外设功能,还得好好研究一下。
& S7 l2 D6 ~+ r9 g1 B4 ^
收藏 评论0 发布时间:2024-7-4 21:18

举报

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