0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HASH算法加密芯片的工作原理及其在STM32 MCU上的应用

CHANBAEK 来源:1ST-LABS 作者: 鲁杨 2023-10-24 15:01 次阅读

摘要: 本文主要研究了HASH算法加密芯片工作原理及其在STM32 MCU上的应用,实现了外部加密芯片对STM32 MCU的程序保护,目前的技术手段无法对其进行破解,其安全性优于其它加密方式。本文首先介绍了SHA256算法的特点。分析了外部加密芯片加密MCU的基本原理和加密安全性的理论分析。并以LCS4110R为例介绍了在STM32F103上的应用,包括软件和硬件。通过本文的论述,开发者可以对外部加密芯片加密MCU有一个理论的认识,并且对于加密芯片的应用提供参考和借鉴,对于MCU安全保护具有一定的参考价值和实用价值。同时,凝睿电子科技开发和支持了行业中比较有代表性的Maxim DS28E15, LCS4110R, RJGT102等不同方案,并已正式推向市场,为客户提供企业级别的高附加值产品的知识产权加密保护方案。

随着信息技术的迅猛发展和互联网的普及,保护敏感信息的安全性成为了当今社会不可或缺的需求。在数字化时代,知识产权保护,硬件设备防复制已经成为目前产品开发的关键问题。为了应对日益复杂和智能化的安全威胁,研究和采用高效、安全的加密机制至关重要。

而在信息安全领域中,外部加密芯片作为一种重要的技术,因其强大的加密能力和硬件级别的安全保障而备受瞩目。外部加密芯片通过将加密算法和密钥等关键信息嵌入到硬件芯片中,实现对敏感数据的高强度加密和解密过程。相比于传统软件加密方式,外部加密芯片具有更高的安全性和更强的防护能力,可以有效抵御各类物理和逻辑攻击。

本论文旨在对外部加密芯片的原理和应用进行深入研究和探讨,以期为大家提供一个全面的了解和认识。首先,我们将介绍外部加密芯片的原理,涵盖加密算法、加密芯片内部数据处理逻辑等关键内容。接着,我们将详细探讨外部加密芯片在STM32F103上的应用,包括硬件连接以及软件的实现。通过本文的论述,希望对开发外部加密芯片的开发者在理解,设计外部加密芯片方案时提供一些使用价值和参考借鉴。

01SHA256加密算法

1.1 HASH与SHA256

哈希算法(Hash Algorithm)又称散列算法、散列函数、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。无论输入是什么数字格式、文件有多大,输出都是固定长度的比特串。

HASH算法包括SHA-0、SHA-1、MD5、SHA-2、SHA-3等系列算法。SHA-2属于SHA算法之一,是SHA-1的后继者。其下又可再分为六个不同的算法标准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。SHA-?代表SHA算法输出的结果的长度,比如SHA256就表示算法输出的结果有256位,即32个字节。

如下图所示,对于任意长度的消息,SHA256都会产生一个256位的哈希值,称作消息摘要。这个摘要相当于是个长度为32个字节的数组,通常有一个长度为64的十六进制字符串来表示,其中1个字节=8位,一个十六进制的字符的长度为4位。

比如字符串EECraftsman经过SHA256加密后得到的摘要为:

E6953E84118305E6C668E944D8B00C635B4DFA5543DDFF0346BC03ABCBEEB0D0

图片

1.2 SHA256特点

a. 压缩性:任意长度的数据,算出的SHA256值长度都是固定的。

b. 容易计算:从原数据计算出SHA256值很容易。

c. 防碰撞:很难找出两个不同的输入数据源对应同一组MAC,想找到一个具有相同SHA256值的数据(即伪造数据)是非常困难的。

d. 雪崩效应:输入的数据列即使其中一位发生变化,SHA-256的计算结果也会发生非常巨大的变化。

由于以上特性,SHA256算法目前无法破解,也因此被用于比特币的加密算法。

02加密芯片的介绍

加密芯片内置高性能防复制保护集成电路,使得内部集成电路具有高度的安全性,能够有效的防止破解。内嵌SHA-256加密算法,能够快速的进行SHA256运算。内嵌一次性可编程单元,保证数据的安全性。

以LCS4110R加密芯片为例,芯片防篡改设计,不重复序列号,具有防止SEMA/DEMA、SPA/DPA、DFA和时序攻击的措施。多种安全检测传感器高压和低压传感器、频率传感器、滤波器、光传感器、脉冲传感器、温度传感器,具有传感器寿命测试功能,一旦芯片检测到非法探测,将启动内部的自毁功能。总线加密,具有金属屏蔽防护层,探测到外部攻击后内部数据自毁。具有真随机数发生器,随机数利用芯片内部的电磁白噪声产生,不会重复。

03加密芯片的原理分析

加密芯片的使用使得MCU内部程序即使被拷贝重新下载到其它MCU上,由于无法绕过外部加密芯片的认证,故此程序无法正常运行。

3.1加密芯片加密的基本原理

  1. 外部加密芯片和MCU存储相同的密钥
  2. 外部加密芯片和MCU分别通过SHA256计算,对密钥进行计算得到MAC值
  3. 对比两组计算得到的值是否相同,如果相同则认为双方的密钥相同(SHA256具有防碰撞的特点)则认证成功

图片

但是这样做存在一个问题,加密芯片和MCU之间需要通信传输MAC值,这个值在传输的过程中有被捕获的可能性,对于MCU而言,其对加密芯片的操作就是发送验证命令,获取MAC值然后对比。一旦此MAC值被捕获,那么攻击者就会模拟整个通信过程和MAC值,实现对系统的破解。

3.2 MCU认证的具体流程

为了解决3.1存在的问题我们在整个认证流程中增加了随机数,其流程框图如下图

  1. MCU生成随机数并发送给LCS4110R
  2. MCU内部将生成的随机数和密钥相结合,然后进行SHA256计算得到MAC值
  3. 加密芯片内部同样将自己获取到的随机数与自己保存的密钥融合后进行SHA256计算得到MAC值
  4. MCU获取加密芯片计算的MAC值和自身计算的MAC值作比较,相同则认为内部密钥相同,认证通过,否则认证不通过

图片

3.3加密系统的安全性分析

  1. 每次进行SHA256计算的原始数据都是随机数和密钥的结合,所以每一次经过SHA256计算之后生成MAC值都是不相同的,根据SHA256的雪崩效应,无法通过MAC结果去反推密钥
  2. 由于每次认证的MAC值都是不相同的,所以无法外部模拟加密芯片的计算结果,用以攻击MCU
  3. 由于加密芯片自身的安全性,其内部的密钥不会被攻击者窃取
  4. 由于MCU的FLASH容易收到攻击,所以本方案中将MCU中存储的密钥保存在代码区里面,并且采用分散的存储方案,使攻击者即使拿到了flash的所有内容也无法找到密钥存储的具体位置

04外部加密芯片的实际应用

4.1 硬件部分

图片

如上图所示,LCS4110R采用IIC通信,硬件上只需要两根线与MCU相连接即可。

4.2 软件部分

  1. MCU实现IIC通信协议

作为加密芯片和MCU之间的通信协议,IIC协议的实现是加密方案的基础。

  1. 对LCS4110R进行文件系统的构建

LCS4110R遵循LKCOS系统,对其进行的操作建立在其文件系统之上,其文件系统的需根据《LKCOS智能操作系统参考手册》进行创建,创建代码生成之后可将hex文件直接烧录到芯片中,如下图。

图片

  1. 认证程序流程
  2. 将随机数与SHA256计算命令下发到加密芯片
  3. 获取加密芯片的计算结果
  4. 对比MCU内部计算的结果与从加密芯片上获取的结果,相同则认为认证成功,不同则认为认证失败

05凝睿加密方案介绍

凝睿SHA_256方案提供多种加密芯片的支持,用户无需研究任何外部加密芯片的相关操作方法,也无需实现IIC通信协议,甚至不需要调试,使用凝睿SHA_256提供的库文件,实现其相关接口,即可完成加密相关开发。

此外,凝睿SHA_256提供烧录好密钥的加密芯片,提供企业级的密钥授权管理机制,用户无需考虑芯片代码的烧录与密钥的管理,极大的降低了密钥泄露的可能性。

5.1 凝睿方案的实现

凝睿SHA_256加密方案软件开发步骤如下(以LCS4110R为例)

  1. 包含如下图相关.h文件到工程

图片

  1. 将EEC_SHA256.lib库文件添加到工程

图片

  1. 实现以下物理层函数指针接口

图片

  1. 加密芯片初始化与认证函数

下图为加密芯片初始化与认证代码,其中SecurityInit函数为加密芯片初始化函数,开机运行即可。SecurityCertificate函数为认证函数,用户可以随时调用,用以进行外部加密芯片的认证。

图片

  1. 随机数生成函数

对于不同架构的MCU随机数生成的方式是不相同的,有的MCU具有硬件随机数发生器,这种情况下使用硬件随机数生成即可,对于没有硬件随机数生成的MCU,推荐以下方式:

首先使用ADC采样的值或者定时计数器的计数值生成随机数种子。

再生成随机数,这样生成的随机数更接近真随机。

代码如下图所示

图片

5.2更多支持

除了LCS4110R之外,我们还可以支持其它的加密芯片方案,如DS28E15、RJGT102等加密芯片。

其中DS28E15由美国美信公司生产具有高级物理安全保障的工业级加密芯片,RJGT102是由武汉瑞纳捷半导体生产的高性能防复制加密芯片。针对不同的使用场景与使用需求,我们可以提供不同的解决方案。

需要注意的是部分加密芯片使用的是1-Wire的通信协议(如DS28E15),这种情况下硬件设计时就需要不同的处理方式,下图展示了针对1-Wire通信的加密芯片的硬件方案。

图片

如图,IIC转1-Wire芯片为可选项,其主要针对主频较低的MCU驱动超高速1-Wire协议而设计,而对于低速的1-Wire协议则可以使用MCU直接模拟单总线。

06结论

综上所述,外部加密芯片以其卓越安全防护机制,能够从硬件有效的保护其内部数据不被攻击,SHA256算法从原理机制上杜绝了被恶意攻击的可能性,通过外部芯片对MCU的保护能够有效的保护MCU程序不被非法复制拷贝。防止非法抄板,极大程度保护了开发者的知识产权。

07合作模式

为推动知识产权与高附加值产品的保护,凝睿电子科技向有加密需求的客户,免费提供完整的技术解决方案,免费的软件库及整合编译使用支持,并提供企业级密钥管理的预加载密钥加密芯片零售及批量销售。

文章来源:上海凝睿电子科技有限公司西安分公司

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16840

    浏览量

    349714
  • STM32
    +关注

    关注

    2264

    文章

    10852

    浏览量

    354092
  • 程序
    +关注

    关注

    115

    文章

    3753

    浏览量

    80709
  • 加密芯片
    +关注

    关注

    2

    文章

    110

    浏览量

    23590
  • Hash算法
    +关注

    关注

    0

    文章

    43

    浏览量

    7379
收藏 人收藏

    评论

    相关推荐

    加密芯片工作原理max32555

    加密芯片MAX32555是一种广泛应用的硬件加密设备,它采用先进的加密算法和技术,对数据进行加密和解密操作,以确保数据传输和存储的安全性。本
    的头像 发表于 12-13 15:03 1939次阅读

    探讨一下怎么使用加密芯片加密,让方案的破解难度增加

    STM32有一个ID号,加密芯片有一个ID号。加密芯片有DES算法
    发表于 09-09 10:39

    如何选用正确的加密芯片

    芯片采用随机变量交换系统的认证加密芯片SOT-23F这样一个小封装内整合了1万多个逻辑门。ALPU与系统CPU以密码方式通信,CPU
    发表于 12-05 17:07

    MCU加密方法你知道多少?

    自家程序被恶意读取破解。2.常用MCU加密方式 通过写特定配置字; 增加外部加密芯片; 对程序代码进行密码加密,使程序变成密文; 程序校验
    发表于 10-10 14:53

    加密芯片在人脸识别算法的保护与应用

    晶振,无需外接晶振电路。如何保护人脸识别核心算法?1、ALPU系列加密芯片工作原理为在被保护器件的引导区写入密钥,从而防止器件内的软件代码被恶意拷贝,这是ASIC方式,,就是说硬件方式
    发表于 10-24 10:57

    1HASH函数软件自保护中的应用

    本文介绍了HASH 函数的原理,并重点讨论了其中的SHA-1 算法及其软件自保护中的应用和实现技术。关键词:HASH 函数软件保护 信息安
    发表于 08-07 09:28 17次下载

    常见的hash算法有哪些及其原理是什么

    Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间
    发表于 12-09 10:25 2.6w次阅读
    常见的<b class='flag-5'>hash</b><b class='flag-5'>算法</b>有哪些<b class='flag-5'>及其</b>原理是什么

    Hash算法简介

    区块Hash值时(即挖矿的过程),都使用了Hash算法,特别是SHA256算法。比特币系统本身也就是加密算法的衍生物。
    的头像 发表于 06-08 14:01 4998次阅读

    数据加密工作原理详解

    网络安全防范措施与应用是如何应用在我们的日常生活当中的呢?我相信网络安全防范措施与应用一定出现在我们的数据加密工作当中。下面让我们来了解一下数据加密工作原理,那么数据
    的头像 发表于 01-31 14:24 1.7w次阅读

    针对STM32客户的反馈,对使用STM32加密库开发比特币应用作一些补充的技术说明

    AES,又支持多种加密模式如ECB、CBC、CTR、GCM、CCM、XTS、Cipher-wrap等。非对称加解密算法支持RSA、ECC。Hash算法
    的头像 发表于 09-17 17:35 4050次阅读
    针对<b class='flag-5'>STM32</b>客户的反馈,对使用<b class='flag-5'>STM32</b><b class='flag-5'>加密</b>库开发比特币应用作一些补充的技术说明

    如何选择加密芯片以及加密芯片工作原理

    加密芯片,基本都是基于某款单片机,使用I2C或SPI等通讯,使用复杂加密算法加密来实现的。
    的头像 发表于 02-18 09:56 2285次阅读

    AN5281_STM32 MCU的受信任环境中使用OTFDEC进行加密/解密

    AN5281_STM32 MCU的受信任环境中使用OTFDEC进行加密/解密
    发表于 11-21 08:11 0次下载
    AN5281_<b class='flag-5'>在</b><b class='flag-5'>STM32</b> <b class='flag-5'>MCU</b>的受信任环境中使用OTFDEC进行<b class='flag-5'>加密</b>/解密

    hash算法FPGA中的实现(1)

    FPGA的设计中,尤其是通信领域,经常会遇到hash算法的实现。hash算法
    的头像 发表于 09-07 17:01 1113次阅读
    <b class='flag-5'>hash</b><b class='flag-5'>算法</b><b class='flag-5'>在</b>FPGA中的实现(1)

    hash算法FPGA中的实现(2)

    在前面的文章中:hash算法FPGA中的实现(一)——hash表的组建,记录了关于hash表的构建,这里记录另外一个话题,就是
    的头像 发表于 09-07 17:02 716次阅读
    <b class='flag-5'>hash</b><b class='flag-5'>算法</b><b class='flag-5'>在</b>FPGA中的实现(2)

    STM32 MCU工作原理、基本结构及优缺点

    STM32 MCU是STMicroelectronics公司生产的一款基于ARM Cortex-M内核的32位微控制器,广泛应用于汽车电子、工业控制、消费电子等领域。本文将介绍STM32 MC
    发表于 09-09 16:36 3286次阅读