请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
jundao721 发布时间:2024-7-4 21:18
7 {% e0 K2 e/ Z% A
      对于安全领域的哈希算法还是很感兴趣的,读完参看手册的介绍,额。。。还是没怎么明白。找gpt了解了一下,给出的解释是:在STM32微控制器中,HASH外设是指硬件加速的哈希函数单元。它的主要作用是通过硬件加速算法来计算数据的哈希值,常见的算法包括SHA-1、SHA-224、SHA-256、MD5等。这些算法通常用于安全性相关的应用,如数据完整性验证、数字签名、安全通信等。官网Demo中给出了SHA-384的例程,看完简介和代码,了解了一下。  F; t# e- \( N; i
       SHA-384是一种安全哈希算法,属于SHA-2系列(Secure Hash Algorithm 2)。原理大概是对一组数据,经过复杂的哈希运算,最后生成8个64位长的字组成,共512位(64字节)。这个值通常以16进制表示,作为消息的唯一标识。例程中给给出了一组数据,通过NIST Vector预测了哈希算法的结果,通过哈希算法和预测的结果进行对比。1 Q" ]0 U' U1 f9 E
STM32CubeMx中Hash的配置如图1所示:
1 b. G$ k8 c6 o* O% L; S 3-1.JPG
7 K) U. u6 A/ k" X% e1 v+ l8 {
图1
9 R0 G. W. v  z0 P8 q( h" D) a4 }0 V程序主要代码如下:
5 {7 u" I( W; i# Q
  1. if (HAL_HASH_Start(&hhash, (uint8_t *)Input, INPUT_TAB_SIZE, aDigest, 0xFF) != HAL_OK)
    & q; p0 ]- q' `3 P$ v
  2.   {/ ^5 a1 Q$ }4 l" B# _2 ?
  3.     Error_Handler();
    * ^  [& z- U( [% x
  4.   }3 U$ }9 E  G) f; N
  5.    /* Check the output buffer containing the computing digest with the expected buffer */: K" ^5 a! m; ^2 k1 T
  6.   if(memcmp(aDigest, aExpectedDigest ,48) != 0)
    ' ^3 ]& }' @$ ]3 G8 A  Y6 ?; }+ P, I
  7.   {
    ( u" y$ z* `  P) ]3 m
  8.     Error_Handler();- z/ Q/ R/ m+ F
  9.   }) i! ~; t4 L/ j5 X3 W5 l1 O" ~
  10.   else
    3 x8 ^6 C, X4 O+ l0 N
  11.   {/ d; \  w2 P1 v# y+ H* I
  12.     BSP_LED_On(LED2);' K& O3 i& v9 X4 u' [. {/ f
  13.   }
复制代码
* q# I0 @6 s2 _+ a; _
" |5 v+ W: d; n  O3 `* n/ a
测试对比一下,数据对比正确点亮LED,例程嘛,当然是预期结果。如图2所示:# S7 ]4 p9 S3 |
3-2.jpg / e- ~! {! U$ s1 N: z
6 @) o% W# F: Q& v- T+ |: F
图2
& X7 D% T3 d& qMCU安全应用这部分外设功能,还得好好研究一下。
2 t+ i7 r  D8 w/ j" Y4 r1 V  B1 k
收藏 评论0 发布时间:2024-7-4 21:18

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版