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

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

3天内不再提示

防止技术“轻易”盗取,一种高端芯片加密方案详解

AGk5_ZLG_zhiyua 来源:互联网 作者:佚名 2017-12-15 09:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

提起唯一ID,最容易想到的就是我们每个人的身份证号,均是独一无二的,无法仿冒。作为芯片而言,同样具有这一身份标识——UID。利用芯片这唯一ID来实现加密,在智能产品竞争越来越激烈的情况下是十分必要的。

首先需要明确的是,没有一种加密是“绝对”可靠的,但是加密手段可以增加非法使用者的解密成本,借此来防止技术被“轻易”盗取。本次以LPC1000的UID加密方案为例进行介绍。

LPC1000系列的加密方案

通过分析得出,基于CortexM0或CortexM3内核的LPC1000系列MCU通过软件加密的方法有两种:

1、使用代码读保护机制,限制用户访问片内Flash;

2、通过芯片UID并添加加密算法使每片MCU内的程序具有唯一性。

代码读保护机制是通过使能系统中的不同安全级别,以便限制访问片内Flash,本次不做重点介绍。

UID加密

UID是唯一标识符(unique identifier),在LPC1000系列微控制器的每一颗芯片都具有全球唯一的标识符,该标识符为128位二进制序列。因此我们可以利用芯片UID的唯一性对程序进行加密,使每一个产品中的程序也具有唯一性,即使非法使用者获取了MCU中的程序复制到其他芯片中也是不能正常运行的,从而达到保护开发者的知识产权不被侵犯和盗用的目的。

LPC1000的UID加密方案

基本思路是使用上位机软件通过编程器读取芯片的UID,经加密算法运算后生成密钥,下载程序的同时向MCU的Flash中某个地址写入密钥;MCU上电后,首先读取芯片的UID,再通过与上位机相同的加密算法运算后计算出密钥,并与之前写入Flash中的密钥比较,若相同则继续执行用户程序,否则跳入死循环或执行程序开发者指定的代码。

图1 LPC1000 UID加密方案流程图

实现此方案需要准备的资源如下。

硬件资源:

  • LPC1766FBD100芯片;

  • SmartPRO 5000U-PLUS编程器;

  • QFP100-NXP适配座;

  • SmartCortex M3-1700开发板(测试用,非必需)。

软件资源:

  • SmartPRO 2008 2.0.56.exe上位机软件;

  • Programmer.rar编程器上位机UID加密补丁;

  • Uid.rar编程器上位机UID加密算法;

  • LPC1766在Keil4下的工程模板;

  • Keil4开发环境;

  • Microsoft Visual C++ 6.0。

一、下位机

下位机(即LPC1766芯片)上电并初始化后,首先读取芯片的UID,解析密钥并与Flash中的密钥比较判断后,再继续执行用户代码。这里我们举例采用的加密算法是将UID的补码作为密钥,加密方法比较简单,用户可自行对加密算法进行修改,写出复杂的加密算法。

读取芯片UID的方法是通过调用芯片内部的IAP函数实现,如图2所示。

图2 读取UID

二、上位机

在下位机LPC1766的程序编写完成并生成hex或bin文件后,按照以下步骤对MCU进行加密。

第一步,在Microsoft Visual C++ 6.0下编写加密算法,这里我们已经编写完成,仅需解压uid.rar并打开其中的VC工程。用户需要在uid.cpp中的UidAlgorithm函数中添加自定义算法,如图3。

图3 加密算法工程

加密算法编写完成后,编译将生成一个名为uid.dll的算法文件。

第二步,安装SmartPRO 2008软件,我们默认安装在C:Program Files路径下。

第三步,安装SmartPRO 2800加密补丁,方法是将Programmer.rar解压到C:Programd FilesSmartPRO 2008Programmer路径下,覆盖原来的文件。

第四步,将加密算法生成的uid.dll文件复制到C:Programd FilesSmartPRO 2008Programmer下,SmartPRO 2008启动后将会自动调用uid.dll。

第五步,连接硬件,将LPC1766芯片放入适配座ZY503D中,连接USB通信电缆和电源

第六步,烧写文件,启动SmartPRO 2008软件,选择芯片“LPC1766@LQFP100”,打开烧录文件(在Keil编写下位机程序时生成的hex或bin文件 )。此时会出现一个如图4的特殊提示,这是因为Keil编译器在编译时没有将Flash中前8个字单元的内容进行代码有效校验和的填充而产生该警告,点击“确定”即可,编译器在下载过程中会调用校验算法自动添加校验。关于代码有效校验和填充的相关内容请参考LPC1766用户手册中“Flash编程”一章的相关内容。

图4 用户代码无效提示

第七步,开始下载,点击“组合”即可,默认执行的是擦除、编程、校验三个步骤的结合。

成功编程后,如果重新读取Flash,打开缓冲区,定位到0x00002000处,可以看到已经写入的密钥。如图5所示,与此前设计的加密算法和加密预期效果一致。

图5 缓冲区查看密钥

验证方法:取下适配座中的芯片,焊接到TinyARMT17核心板上,查到SmartCortex M3-1700开发板底板上,连接P0.11到BEEP插针,如所示。开发板上电后即可听到蜂鸣器的鸣叫。以此验证芯片计算出的密钥与Flash中写入的密钥校验一致,芯片程序正常运行。

图6 开发板验证

总结

经此方法向芯片下载程序后,若有产品盗版者试图将程序读出然后复制到其他芯片上使用,程序将停留在判断密钥是否匹配语句,导致程序不再向下执行,从而防止软件程序被非法使用者盗用。ZLG致远电子在加密保护方面从未停止过脚步,为用户保驾护航不遗余力!

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

    关注

    61

    文章

    949

    浏览量

    72860
  • lpc1000
    +关注

    关注

    0

    文章

    1

    浏览量

    1657

原文标题:【安全】如何利用芯片“身份证”加密?

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HSC3211物联网安全芯片技术剖析与应用指南

    HSC3211物联网安全芯片技术剖析与应用指南 在物联网技术飞速发展的今天,设备的安全认证和通信问题愈发凸显。HSC3211 物联网安全芯片作为
    的头像 发表于 04-28 15:50 175次阅读

    瑞纳捷RJGT103芯片:高性能加密芯片的详细解析

    瑞纳捷RJGT103芯片:高性能加密芯片的详细解析 在电子设计领域,加密芯片的应用越来越广泛,武汉瑞纳捷半导体有限公司的RJGT103
    的头像 发表于 04-28 14:55 182次阅读

    高性能防复制加密芯片RJGT102:设计与应用全解析

    富的功能,为电子工程师们提供了个强大的安全解决方案。本文将深入剖析RJGT102芯片的各个方面,帮助工程师们更好地理解和应用该芯片。 文件下载: RJGT102WDP8.pdf 1.
    的头像 发表于 04-28 14:50 375次阅读

    Atmel CryptoCompanion™芯片:安全加密的理想之选

    Atmel CryptoCompanion™芯片:安全加密的理想之选 在当今数字化时代,数据安全和加密技术变得尤为重要。Atmel公司的CryptoCompanion™芯片为我们提供了
    的头像 发表于 04-06 09:05 329次阅读

    【封装技术】几种常用硅光芯片光纤耦合方案

    耦合,需要进行些特殊处理。硅片和光纤之间耦合主要有垂直耦合和水平耦合两方式。本文介绍了些典型的光纤阵列耦合方案。 1.V槽阵列耦合 在这种方案
    发表于 03-04 16:42

    如何正确配置AG32 MCU,实现FLASH或者代码加密?

    功能主要包括两方式:Lock fash(锁定Flash)和代码加密(Code Encryption),它们可以在烧录过程中通过特定工具和配置启用。 方式:Lockflash Lockflash
    发表于 01-22 15:01

    信道活跃检测(CAD)是一种无线唤醒技术,这个功能般是定时检测么?还是直检测?

    信道活跃检测(CAD)是一种无线唤醒技术,这个功能般是定时检测么?还是直检测?
    发表于 12-10 06:53

    芯源半导体在物联网设备中具体防护方案

    )数据传输安全防护方案​ 在物联网设备与云端、其他设备进行数据传输时,芯源半导体安全芯片通过以下方式保障数据传输安全:​ 数据加密传输:利用安全
    发表于 11-18 08:06

    芯源半导体安全芯片技术原理

    才能被加载运行。这机制可以防止恶意固件被植入设备,确保设备从启动阶段就处于安全状态。安全启动过程中,采用数字签名技术,通过验证固件的签名来确认固件的来源和完整性。​ 物理安全防护:安全芯片
    发表于 11-13 07:29

    加密算法的应用

    加密一种保护信息安全的重要手段,近年来随着信息技术的发展,加密技术的应用越来越广泛。本文将介绍加密算法的发展、含义、分类及应用场景。
    发表于 10-24 08:03

    AES加密流程

    AES(Advanced Encryption Standard)是一种对称密钥加密算法,它是当前最常用的加密标准之。AES是一种可靠、高
    发表于 10-23 06:13

    VPP加密芯片撑起虚拟电厂安全

    算法(SM2/SM3/SM4),并采用通过认证的密码产品,因此,加密芯片是满足这些要求的重要硬件基础。   而在实际应用中,包括保障数据安全,以及确保设备身份认证的准确性等,都需要用到安全加密
    的头像 发表于 09-28 08:13 4642次阅读

    一种基于红外吸收光谱技术的免校准气体传感芯片

    近日,天津大学精密仪器与光电子工程学院的光子芯片实验室研发了一种基于红外吸收光谱技术的免校准气体传感芯片,成果获得中国发明专利(ZL202411675536.3)授权。
    的头像 发表于 07-29 10:32 1167次阅读
    <b class='flag-5'>一种</b>基于红外吸收光谱<b class='flag-5'>技术</b>的免校准气体传感<b class='flag-5'>芯片</b>

    UWB - TDOA方案定位技术

    1、UWB - TDOA方法运用 1.1、TDOA定位技术概述 TDOA(Time Difference of Arrival,到达时间差)定位是一种被动测距技术:只比较同信号到达多
    发表于 07-14 17:32

    安芯半导体发布全新防复制加密芯片RJGT28E30

    ECC椭圆曲线加密算法是一种非对称加密算法,相对于对称加密算法,更便于密钥的管理,且相对于等密钥长度的RSA算法更安全。
    的头像 发表于 06-10 17:53 1586次阅读
    安芯半导体发布全新防复制<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>RJGT28E30