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

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

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

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

0 D/ S$ @- u2 Q/ ^* h      对于安全领域的哈希算法还是很感兴趣的,读完参看手册的介绍,额。。。还是没怎么明白。找gpt了解了一下,给出的解释是:在STM32微控制器中,HASH外设是指硬件加速的哈希函数单元。它的主要作用是通过硬件加速算法来计算数据的哈希值,常见的算法包括SHA-1、SHA-224、SHA-256、MD5等。这些算法通常用于安全性相关的应用,如数据完整性验证、数字签名、安全通信等。官网Demo中给出了SHA-384的例程,看完简介和代码,了解了一下。! y( ~8 D8 `; x( h7 w
       SHA-384是一种安全哈希算法,属于SHA-2系列(Secure Hash Algorithm 2)。原理大概是对一组数据,经过复杂的哈希运算,最后生成8个64位长的字组成,共512位(64字节)。这个值通常以16进制表示,作为消息的唯一标识。例程中给给出了一组数据,通过NIST Vector预测了哈希算法的结果,通过哈希算法和预测的结果进行对比。
$ ~" J; J, t: |" NSTM32CubeMx中Hash的配置如图1所示:
7 c7 W& @6 a* p0 k 3-1.JPG
1 B8 I( p/ |8 o9 p% c+ F7 D. [- s# }$ A. Y8 w! U3 \8 p; K
图1& L) d+ b& |- M" n
程序主要代码如下:$ V9 q8 v, i0 u4 O1 I1 f/ D6 n
  1. if (HAL_HASH_Start(&hhash, (uint8_t *)Input, INPUT_TAB_SIZE, aDigest, 0xFF) != HAL_OK)$ U0 o+ N6 |$ w
  2.   {
    + m9 p' P* l: j1 G9 ^. [% {. `6 ?6 Q
  3.     Error_Handler();. j9 k) b- o# h" U2 G6 Z5 n* v# r0 J# C
  4.   }4 `3 Q4 j7 T) U/ m7 X
  5.    /* Check the output buffer containing the computing digest with the expected buffer */# ?1 {" m9 i8 b7 }& Q# c/ [
  6.   if(memcmp(aDigest, aExpectedDigest ,48) != 0)
    6 ~; [7 p( R# i5 `# y3 E" N8 m3 o
  7.   {
    / ?7 V3 J1 p) M; c3 g
  8.     Error_Handler();0 q& M. O3 L: e% n  w
  9.   }
    . U. w3 e5 n5 X
  10.   else
    4 [2 f/ t; U4 R
  11.   {
    3 Z5 }" O. q& }: l/ r: i8 R
  12.     BSP_LED_On(LED2);
    : O2 Y& O1 F/ o/ e: v+ d( G3 [
  13.   }
复制代码
/ r, \0 T$ H3 t8 N) M, k$ p

+ t8 Y* l: t3 P% x0 o4 w$ o' l测试对比一下,数据对比正确点亮LED,例程嘛,当然是预期结果。如图2所示:* J9 F+ v3 M; \' h5 ~& `; H6 X
3-2.jpg ) Z4 a& e" S% L" Z

+ P. D/ p+ f7 R: X, C* B图2
! L& x' O; \$ j# vMCU安全应用这部分外设功能,还得好好研究一下。% c" V# f/ G* D' P- q; Y# ]
收藏 评论0 发布时间:2024-7-4 21:18

举报

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