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

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

[复制链接]
jundao721 发布时间:2024-7-4 21:18
! F+ Z3 f  _; i4 W% l8 Y# \, V3 a
      对于安全领域的哈希算法还是很感兴趣的,读完参看手册的介绍,额。。。还是没怎么明白。找gpt了解了一下,给出的解释是:在STM32微控制器中,HASH外设是指硬件加速的哈希函数单元。它的主要作用是通过硬件加速算法来计算数据的哈希值,常见的算法包括SHA-1、SHA-224、SHA-256、MD5等。这些算法通常用于安全性相关的应用,如数据完整性验证、数字签名、安全通信等。官网Demo中给出了SHA-384的例程,看完简介和代码,了解了一下。
% I) S9 ?2 ^" ?8 {0 u" U7 I       SHA-384是一种安全哈希算法,属于SHA-2系列(Secure Hash Algorithm 2)。原理大概是对一组数据,经过复杂的哈希运算,最后生成8个64位长的字组成,共512位(64字节)。这个值通常以16进制表示,作为消息的唯一标识。例程中给给出了一组数据,通过NIST Vector预测了哈希算法的结果,通过哈希算法和预测的结果进行对比。( ~3 q: W, y$ u  R9 b
STM32CubeMx中Hash的配置如图1所示:0 }4 S- k7 k  _% R5 r7 B
3-1.JPG ' B! Y' q) W0 E) q1 L- t

# U0 L' R- C+ W; \图13 \: L9 K4 q2 F. ?, c+ ?7 ]2 @
程序主要代码如下:! T3 S* t/ O7 `
  1. if (HAL_HASH_Start(&hhash, (uint8_t *)Input, INPUT_TAB_SIZE, aDigest, 0xFF) != HAL_OK)6 M- a( U9 @& F; L3 ]' i8 x( P; S* j
  2.   {; J; C% p. Q4 L6 y
  3.     Error_Handler();% t) `- c/ q8 s4 e4 q
  4.   }
    3 J7 B' Z  m" Z/ o, T
  5.    /* Check the output buffer containing the computing digest with the expected buffer */4 B) }. l2 m5 m8 F2 s
  6.   if(memcmp(aDigest, aExpectedDigest ,48) != 0)2 a' i$ }* o8 ^7 ~, d
  7.   {0 s% k- D6 l6 Y1 m
  8.     Error_Handler();  c1 T8 D* o# f% I9 s
  9.   }3 }0 W) F* _2 F& Q% p1 T
  10.   else
    ' s- k( W, P$ x* X
  11.   {
    ' y7 n2 o2 o* N8 Q
  12.     BSP_LED_On(LED2);9 G0 s! ~9 u  B( l
  13.   }
复制代码
2 @; t: H9 x- D- a( A

* ]' P- A: }% Q+ z8 Y: `测试对比一下,数据对比正确点亮LED,例程嘛,当然是预期结果。如图2所示:
3 X' O9 A: F0 O! F3 p5 S 3-2.jpg
# L% G1 q- V7 p- I
1 t9 b* E6 r3 R图2* a4 m9 ]" b; ~- Q# R
MCU安全应用这部分外设功能,还得好好研究一下。3 G. S! ^* P% K. F& {+ J
收藏 评论0 发布时间:2024-7-4 21:18

举报

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