发布时间:2025-02-21 13:12:54 点击量:
HASH GAME - Online Skill Game GET 300
本文主要研究了HASH算法加密芯片的工作原理及其在STM32 MCU上的应用,实现了外部加密芯片对STM32 MCU的程序保护,目前的技术手段无法对其进行破解,其安全性优于其它加密方式。本文首先介绍了SHA256算法的特点。分析了外部加密芯片加密MCU的基本原理和加密安全性的理论分析。并以LCS4110R为例介绍了在STM32F103上的应用,包括软件和硬件。通过本文的论述,开发者可以对外部加密芯片加密MCU有一个理论的认识,并且对于加密芯片的应用提供参考和借鉴,对于MCU安全保护具有一定的参考价值和实用价值。同时,凝睿电子科技开发和支持了行业中比较有代表性的Maxim DS28E15, LCS4110R, RJGT102等不同方案,并已正式推向市场,为客户提供企业级别的高附加值产品的知识产权加密保护方案。
随着信息技术的迅猛发展和互联网的普及,保护敏感信息的安全性成为了当今社会不可或缺的需求。在数字化时代,知识产权保护,硬件设备防复制已经成为目前产品开发的关键问题。为了应对日益复杂和智能化的安全威胁,研究和采用高效、安全的加密机制至关重要。而在信息安全领域中,外部加密芯片作为一种重要的技术,因其强大的加密能力和硬件级别的安全保障而备受瞩目。外部加密芯片通过将加密算法和密钥等关键信息嵌入到硬件芯片中,实现对敏感数据的高强度加密和解密过程。相比于传统软件加密方式,外部加密芯片具有更高的安全性和更强的防护能力,可以有效抵御各类物理和逻辑攻击。本论文旨在对外部加密芯片的原理和应用进行深入研究和探讨,以期为大家提供一个全面的了解和认识。首先,我们将介绍外部加密芯片的原理,涵盖加密算法、加密芯片内部数据处理逻辑等关键内容。接着,我们将详细探讨外部加密芯片在STM32F103上的应用,包括硬件连接以及软件的实现。通过本文的论述,希望对开发外部加密芯片的开发者在理解,设计外部加密芯片方案时提供一些使用价值和参考借鉴。
1.SHA256加密算法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算法目前无法破解,也因此被用于比特币的加密算法
2.加密芯片的介绍加密芯片内置高性能防复制保护集成电路,使得内部集成电路具有高度的安全性,能够有效的防止破解。内嵌SHA-256加密算法,能够快速的进行SHA256运算。内嵌一次性可编程单元,保证数据的安全性。以LCS4110R加密芯片为例,芯片防篡改设计,不重复序列号,具有防止SEMA/DEMA、SPA/DPA、DFA和时序攻击的措施。多种安全检测传感器:高压和低压传感器、频率传感器、滤波器、光传感器、脉冲传感器、温度传感器,具有传感器寿命测试功能,一旦芯片检测到非法探测,将启动内部的自毁功能。总线加密,具有金属屏蔽防护层,探测到外部攻击后内部数据自毁。具有真随机数发生器,随机数利用芯片内部的电磁白噪声产生,不会重复。
3.2 MCU认证的具体流程为了解决3.1存在的问题,我们在整个认证流程中增加了随机数,其流程框图如下图1. MCU生成随机数并发送给LCS4110R2. MCU内部将生成的随机数和密钥相结合,然后进行SHA256计算得到MAC值3. 加密芯片内部同样将自己获取到的随机数与自己保存的密钥融合后进行SHA256计算得到MAC值4. MCU获取加密芯片计算的MAC值和自身计算的MAC值作比较,相同则认为内部密钥相同,认证通过,否则认证不通过
3.3加密系统的安全性分析1. 每次进行SHA256计算的原始数据都是随机数和密钥的结合,所以每一次经过SHA256计算之后生成MAC值都是不相同的,根据SHA256的雪崩效应,无法通过MAC结果去反推密钥2. 由于每次认证的MAC值都是不相同的,所以无法外部模拟加密芯片的计算结果,用以攻击MCU3. 由于加密芯片自身的安全性,其内部的密钥不会被攻击者窃取4. 由于MCU的FLASH容易收到攻击,所以本方案中将MCU中存储的密钥保存在代码区里面,并且采用分散的存储方案,使攻击者即使拿到了flash的所有内容也无法找到密钥存储的具置
5. 凝睿加密方案介绍凝睿SHA_256方案提供多种加密芯片的支持,用户无需研究任何外部加密芯片的相关操作方法,也无需实现IIC通信协议,甚至不需要调试,使用凝睿SHA_256提供的库文件,实现其相关接口,即可完成加密相关开发。此外,凝睿SHA_256提供烧录好密钥的加密芯片,提供企业级的密钥授权管理机制,用户无需考虑芯片代码的烧录与密钥的管理,极大地降低了密钥泄露的可能性。5.1凝睿方案的实现凝睿SHA_256加密方案软件开发步骤如下(以LCS4110R为例)1.包含如下图相关.h文件到工程
5.2更多支持除了LCS4110R之外,我们还可以支持其它的加密芯片方案,如DS28E15、RJGT102等加密芯片。其中DS28E15由美国美信公司生产具有高级物理安全保障的工业级加密芯片,RJGT102是由武汉瑞纳捷半导体生产的高性能防复制加密芯片。针对不同的使用场景与使用需求,我们可以提供不同的解决方案。需要注意的是部分加密芯片使用的是1-Wire的通信协议(如DS28E15),这种情况下硬件设计时就需要不同的处理方式,下图展示了针对1-Wire通信的加密芯片的硬件方案。