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

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

[复制链接]
jundao721 发布时间:2024-7-4 21:18

! G8 r& _# M9 E  ?% ~( q      对于安全领域的哈希算法还是很感兴趣的,读完参看手册的介绍,额。。。还是没怎么明白。找gpt了解了一下,给出的解释是:在STM32微控制器中,HASH外设是指硬件加速的哈希函数单元。它的主要作用是通过硬件加速算法来计算数据的哈希值,常见的算法包括SHA-1、SHA-224、SHA-256、MD5等。这些算法通常用于安全性相关的应用,如数据完整性验证、数字签名、安全通信等。官网Demo中给出了SHA-384的例程,看完简介和代码,了解了一下。" e# K2 i8 d. R  B. \! K
       SHA-384是一种安全哈希算法,属于SHA-2系列(Secure Hash Algorithm 2)。原理大概是对一组数据,经过复杂的哈希运算,最后生成8个64位长的字组成,共512位(64字节)。这个值通常以16进制表示,作为消息的唯一标识。例程中给给出了一组数据,通过NIST Vector预测了哈希算法的结果,通过哈希算法和预测的结果进行对比。1 C; B! y: V6 O3 E7 v; E2 ~" Z
STM32CubeMx中Hash的配置如图1所示:
* e( r- ]; B) `9 j5 C( ^* h/ O 3-1.JPG
, [" Q7 l) ~+ o* q# Z. |
& q; d3 x8 i3 J& G, E图11 [  ?8 S1 X& u8 b$ v) D
程序主要代码如下:- ~6 i/ @1 T: H' w! v
  1. if (HAL_HASH_Start(&hhash, (uint8_t *)Input, INPUT_TAB_SIZE, aDigest, 0xFF) != HAL_OK)
    6 W; e1 y. r' R, D  K: w* Y! z3 h
  2.   {
    / \' d) d0 k$ t1 [$ E
  3.     Error_Handler();$ X# p1 A! F1 A: z# u
  4.   }3 K/ e  k' A% |1 p, O
  5.    /* Check the output buffer containing the computing digest with the expected buffer */
    # g2 ^- {7 c4 M) _: c2 x% X
  6.   if(memcmp(aDigest, aExpectedDigest ,48) != 0): s' Q  B, I; @6 V% G7 a! g
  7.   {
    * L# k4 @# _0 ~# t4 ]; k
  8.     Error_Handler();
    ; s1 f5 j$ u) `! `! B  M* h, k4 i
  9.   }
    * Q  ~+ U' A  U* e* K
  10.   else
    7 ~1 ^. D3 z! H4 F! m
  11.   {  f0 ^7 j* Z8 N+ o
  12.     BSP_LED_On(LED2);& J: B2 Z$ p3 f1 r
  13.   }
复制代码
$ |; V: S4 ?- k6 {; `* b

2 Y  M) v0 O8 W% U# W测试对比一下,数据对比正确点亮LED,例程嘛,当然是预期结果。如图2所示:  M) ?/ h5 ?- d6 W: y6 h( d9 V
3-2.jpg
4 e2 T/ k9 B2 P1 {1 h6 A5 O' i5 P6 g2 d% B. G
图2
+ y6 H# x- J3 g- o0 y- [MCU安全应用这部分外设功能,还得好好研究一下。( B* l: }1 I  P9 n4 s
收藏 评论0 发布时间:2024-7-4 21:18

举报

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