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

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

3天内不再提示

加密芯片硬件和软件的作用

武汉瑞纳捷半导体有限公司 2022-06-02 16:25 次阅读

硬件方面

如果加密芯片本身硬件会被物理破解,那就毫无安全可言,失去了加密芯片保护MCU方案的意义。

智能卡内核的加密芯片,硬件方面安全性是最高的。智能卡自从上世纪70年代末诞生以来,就是直接跟“钱”直接打交道。例如最早的IC卡就用于存话费打电话,现在银行卡,社保卡,电表卡等等,上面就直接存放着“钱”,没有足够安全的硬件支持,这些行业也不可能敢将“钱”直接存放在卡上。

经过几十年的发展,MCU的功能越来越强大:如IO口数量,越来越多,IO口的种类也越来越多,支持的通信协议也越来越多,等等。然而同样是几十年,接触式智能卡,却依旧只有ISO7816的UART口。硬件上增加的只有存储空间大了,速度快了,算法及安全寄存器越来越多。几十年来,智能卡除了变大,变快外,就一直围绕着安全在发展。

智能卡内核,在硬件方面,使用了顶层金属网络设计,提升入侵难度。所有的网格都用来监控短路和开路,一旦触发,会导致存储器复位或清零;另外智能卡使用存储器总线加密,每张卡片总线加密密钥不同,这样即使入侵者完全破解了,也无法生产出相同功能的芯片来。智能卡将标准的模块结构使用混合逻辑(Gle Logic)设计,使得攻击者不可能通过信号或节点来获得卡的信息进行物理攻击;智能卡还砍掉了标准的编程接口,甚至干掉了读取EEPROM接口,取而代之的是启动模块,可以在代码装入后擦掉或者屏蔽自己,之后只能响应使用者的嵌入软件所支持的功能。

软件方面

最好的软件方案是将MCU的一部分功能程序,移植到加密芯片里面执行。这样即使攻击者破解了MCU的程序,也无法得到加密芯片里面的代码(加密芯片要能做到硬件上不被破解)。

很多加密芯片号称有AES算法,或者SHA256算法等等。一味的强调算法的强度,而忽略了其工作原理。实际上,不管用哪种加密算法,MCU及加密芯片上都要存储一致的密钥,才能保证双方协同工作。而MCU可被破解,理论上都可以被攻击者拿到密钥,利用这种攻击方法,再高强度加密算法也无济于事。

例如DES算法,自从上世纪70年代被研制出来,然后运用到银行卡中(PBOC银行卡现在仍然还在使用的是DES/3DES算法)已经几十年了,目前为止,除了穷举外还没有其他方法可以破解其密钥。我们假设1us计算一次DES,一年有365天24小时60分60秒100000微秒=3153600000000微秒。单DES密钥长度为8字节,如果要把这8字节穷举完,则要580万年(0xFFFFFFFFFFFFFFFF除以十进制3153600000000 =约等于580万)。也就是说,如果不是直接从MCU中直接获取密钥的话,破解DES算法,需要580万年。那些所谓的很多算法比DES算法更强大,毫无意义,人家破解不会从算法本身破解,而是从MCU中去获取密钥。

所以DES/AES/SM1 /SM3/SHA1/SHA256等等,无论是哪种算法,使用者都无需担心算法本身的强度,不会有人来攻击这些算法,因为代价太高。

相反,更多的破解是从MCU这端拿到密钥的,因为理论上只要把MCU破解后仿真,定位到了加解密函数,就能找到相关的密钥。所以软件方案本身的设计,远比算法本身的强度重要。

只有把MCU的部分代码移植到加密芯片中,并在加密芯片中执行此代码,这种软件方案才是最安全的,其他的软件方案,都可以被破解(因为MCU可被破解,并被仿真)。现在市面上有部分加密芯片,把MCU的部分代码存放在加密芯片中,然后通过密文方式读到MCU中去执行。这种方法同样可被破解,因为其代码不是在加密芯片中执行。

瑞纳捷的RJMU401加密芯片,硬件上使用的是最高安全强度的智能卡芯片内核;软件上使用的是灵活的可编程方式,可内置算法。具有接口简单(SPI),安全强度高,开发简单,价格低,性价比高等特点。我们提供了一套经典加密方案设计样例,并提供了各种MCU下的源代码,例如:STM32等等。开发者几个小时就能上手,然后再根据样例设计出自己的加密方案。

最后给广大开发者一些忠告:

不要相信主控MCU本身的加密机制,我们太多的客户因为相信芯片本身的加密,没有做其他的保护,而受到巨大的损失。

要想加密芯片硬件本身不被破解,请尽量选择智能卡内核的加密芯片。

要想软件方案足够安全,一定要将MCU的部分代码放入加密芯片中执行,否则都会被攻击者在MCU中,找到密钥而破解方案。

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

    关注

    6037

    文章

    44558

    浏览量

    635261
收藏 人收藏

    评论

    相关推荐

    RAID 5 硬件软件 RAID 的区别

    RAID 5硬件RAID与软件RAID之间存在显著的差异,这些差异主要体现在实现方式、性能、数据安全性、灵活性以及成本等方面。 一、实现方式 硬件RAID : 依赖于专用的硬件RAID
    的头像 发表于 12-27 18:05 267次阅读

    STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计

    反而价格更有优势,因为他们的开发投入几乎可以忽略不计。 所以针对这种主芯片可以被破解的产品方案,开发者需要在开发时在产品方案中使用加密芯片并设计合理的加密方案。开发者首先需要选定性价比
    发表于 12-27 13:03

    加密芯片的一种破解方法和对应加密方案改进设计

    使用芯片ID和随机数,结合逻辑加密芯片加密方案,如果设计不合理,貌似安全可靠的加密方案,在实际使用是可能会被轻易破解。本文通过实例详细分析
    发表于 12-23 16:36 1次下载

    浅谈加密芯片的一种破解方法和对应加密方案改进设计

    目前市面上很多防抄板加密方案都是基于加密芯片的安全存储和密文通讯来实现对主MCU方案的保护。比如把主MCU用到的一些参数、配置信息等存储在加密芯片
    发表于 12-20 15:31

    浅谈加密芯片的一种破解方法和加密方案改进设计

    目前市面上很多防抄板加密方案都是基于加密芯片的安全存储和密文通讯来实现对主MCU方案的保护。比如把主MCU用到的一些参数、配置信息等存储在加密芯片
    发表于 12-20 15:10

    加密核心是基于Rijndael AES-128,具有192位可编程参数的加密芯片

    加密芯片 - ALPU-C,该款加密芯片是ALPU系列中的高端IC,其加密核心基于RijntradAES-128,具有192位可编程参数。它
    的头像 发表于 12-04 09:32 141次阅读
    <b class='flag-5'>加密</b>核心是基于Rijndael AES-128,具有192位可编程参数的<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>

    安卓APP开发中,如何使用加密芯片?

    加密芯片是一种专门设计用于保护信息安全的硬件设备,它通过内置的加密算法对数据进行加密和解密,以防止敏感数据被窃取或篡改。如下图HD-RK35
    的头像 发表于 10-31 17:43 398次阅读
    安卓APP开发中,如何使用<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>?

    AG32 芯片保护与加密

    AG32 芯片保护与加密 代码安全有两种方式: 一种是 Lock flash,一个是代码加密。 Lock flash: Lock flash 是在烧录代码后,锁定 flash,防止外部
    发表于 09-19 16:01

    嵌入式产品如何做安全加密

    为了防止硬件电路与固件被抄袭,核心在于加密芯片和安全解决方案的设计,目前大多MPU并不具备安全防护功能,所以最好的办法是使用一颗专用的加密芯片
    的头像 发表于 06-20 17:46 821次阅读
    嵌入式产品如何做安全<b class='flag-5'>加密</b>?

    PSoC 6 MCUBoot和mbedTLS是否支持加密硬件加速?

    。 使用 MCUBoot 验证两个应用程序时,运行时间大约需要五秒钟。 在 README.md 的 \"安全 \"一栏中写道 与软件实现相比,硬件加速加密威廉希尔官方网站 将启动时间缩短了四倍多
    发表于 05-29 08:17

    软件看门狗和硬件看门狗的区别

    软件看门狗和硬件看门狗都是用于监控系统崩溃的工具,它们的作用是在系统出现故障或异常情况时自动恢复系统。  软件看门狗是一种程序,运行在操作系统中,通过定时检测系统是否正常运行来判断系统
    的头像 发表于 04-16 15:10 1088次阅读

    fpga是硬件还是软件

    FPGA(现场可编程门阵列)本质上是一种硬件设备,但它在功能实现上结合了硬件软件的特性。
    的头像 发表于 03-27 14:14 937次阅读

    fpga是硬件还是软件

    FPGA(现场可编程门阵列)属于硬件设备,而不是软件。它是一种可编程的硬件设备,由大量的逻辑单元、存储单元和互连资源组成,能够实现复杂的数字电路和系统设计。
    的头像 发表于 03-14 17:08 1887次阅读

    加密狗是什么意思 加密狗怎么解除加密

    加密狗(Dongle)又称为加密锁、硬件锁或USB密钥是一种用于软件保护和授权管理的硬件设备。它通常是一个外部设备,插入到计算机的USB接口
    的头像 发表于 01-25 17:19 8659次阅读

    韩国Neowine(纽文微)第三代加密芯片ALPU-C

    的开发商更能有效保障所开发产品与软体。 产品描述: ALPU-C加密芯片由模拟模块(OSC、POR和LDO)以及存储模块和数字逻辑模块组成;一如既往采用ASIC的硬件加密,其
    的头像 发表于 01-15 10:46 449次阅读
    韩国Neowine(纽文微)第三代<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>ALPU-C