您尚未登录。

楼主 #1 2021-01-06 09:47:32

伍零壹
会员
注册时间: 2019-12-16
已发帖子: 158
积分: 36

关于单片机代码加密相关讨论

hi 不知道各位大神在做单片机代码的时候用什么加密方式?我这边使用了DES和AES加密,但是这两种加密都是对称加密,也就是说我的秘钥还是需要保存在我单片机的eeprom或者flash里面的。我老是担心这样会被别人读出来,或者破解出来。其方法如下:
A 加密                                                                                             
在PC端或者手持加密机上读出需要被加密机器的唯一ID, 根据ID生成密文(加密机使用秘钥A),写入到EEPROM或者flash特定位置                                                         
                                                                                                                                                   
B解密
系统启动后,读出唯一ID,读出特定位置的密文,根据秘钥(也要存在代码里面)解密判断解密之后的得到的ID和读出芯片的ID是否一 致.

上面的方法的问题点就在于,秘钥还是要保存在代码里面,这样就有被别人识别出来的风险。非对称加密现在还没有搞定。各位大神有什么建议?关于代码加密的都行

最近编辑记录 伍零壹 (2021-01-06 09:49:31)

离线

#2 2021-01-06 10:13:29

raspberryman
会员
注册时间: 2019-12-27
已发帖子: 503
积分: 465

Re: 关于单片机代码加密相关讨论

可以读出一部分ROM的数据,HASH操作之后变为KEY,这样比较难猜到KEY

不过,再牛逼的系统也有短板

离线

楼主 #3 2021-01-06 11:14:18

伍零壹
会员
注册时间: 2019-12-16
已发帖子: 158
积分: 36

Re: 关于单片机代码加密相关讨论

这个方法好像不错!通过计算ROM里面代码的hash值作为秘钥,这样秘钥就不是以明文的方式存在,而是在运行计算的时候得到。

最近编辑记录 伍零壹 (2021-01-06 11:15:45)

离线

#4 2021-01-06 11:15:47

JUN626
会员
注册时间: 2020-11-29
已发帖子: 48
积分: 43

Re: 关于单片机代码加密相关讨论

其实吧,要不是这个产品能有千八百万的纯利,没谁会去想着破解你的,随便做点加密就行了,但是呢,要是利润那么高,又不如直接重新开发来得好

离线

#5 2021-01-06 11:22:59

真的是很烦
会员
注册时间: 2018-10-08
已发帖子: 155
积分: 147.5

Re: 关于单片机代码加密相关讨论

"根据秘钥(也要存在代码里面)解密判断解密之后的得到的ID和读出芯片的ID是否一 致."

这种不是一个跳转就解决了?

离线

楼主 #6 2021-01-06 11:46:14

伍零壹
会员
注册时间: 2019-12-16
已发帖子: 158
积分: 36

Re: 关于单片机代码加密相关讨论

真的是很烦 说:

"根据秘钥(也要存在代码里面)解密判断解密之后的得到的ID和读出芯片的ID是否一 致."

这种不是一个跳转就解决了?

不一定是跳转,比如我的解密函数是decode_A,我读到读到ID数据是B,B=GetID();
我在做一些循环的时候我用 for(i=decode_A-B;i<ff;i++)这种形式,只要ID不同  程序也许不会马上死掉但是会出现异常。这样也是保护产品代码的方法。用跳转指令有可能会被破解。

离线

#7 2021-01-07 11:30:38

wu150
会员
注册时间: 2019-03-30
已发帖子: 57
积分: 56.5

Re: 关于单片机代码加密相关讨论

没必要太复杂,加一颗专用加密芯片,比你想的靠谱

离线

#8 2021-01-07 11:54:52

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: 关于单片机代码加密相关讨论

暗装,虚拟机,片外加密芯片

离线

楼主 #9 2021-01-07 16:59:45

伍零壹
会员
注册时间: 2019-12-16
已发帖子: 158
积分: 36

Re: 关于单片机代码加密相关讨论

达克罗德 说:

暗装,虚拟机,片外加密芯片

单片机里面如何跑虚拟机?兄台能否指点下?

离线

#10 2021-01-07 17:33:37

david
会员
注册时间: 2018-03-05
已发帖子: 388
积分: 319.5

Re: 关于单片机代码加密相关讨论

有那种1元一个的外置加密芯片 可以在上面跑程序 据说是银行卡的保密级别

离线

#11 2021-01-07 20:53:03

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: 关于单片机代码加密相关讨论

伍零壹 说:
达克罗德 说:

暗装,虚拟机,片外加密芯片

单片机里面如何跑虚拟机?兄台能否指点下?

https://www.amobbs.com/thread-5720433-1-1.html

离线

#12 2021-01-08 10:27:40

马前卒
会员
注册时间: 2020-08-08
已发帖子: 60
积分: 57

Re: 关于单片机代码加密相关讨论

各位F1C100s有研究过怎样加密吗??
http://whycan.com/t_3118.html#p26369
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)

离线

#13 2021-01-08 11:25:38

jiangchun9981
会员
注册时间: 2019-07-31
已发帖子: 170
积分: 130.5

Re: 关于单片机代码加密相关讨论

产品利润高的话,可以用专用加密芯片,大概会多2,3元成本. 专用加密芯片使用的类似银行卡的技术,至少难度比单片机破解复杂多了.   把核心的一段代码,但要求运算量不大不影响速度放进去即可.  我买的类似是51内核的,但是用了银行卡的防破解技术

一般人就是简单的防止别人直接抄板就差不多了,直接抄板是很多电子厂的手段,稍微加密一下他们不能直接操就差不多了.   

如果是大钱的项目,人家直接请别的重新自主开发也不难吧

离线

楼主 #14 2021-01-08 11:49:52

伍零壹
会员
注册时间: 2019-12-16
已发帖子: 158
积分: 36

Re: 关于单片机代码加密相关讨论

jiangchun9981 说:

产品利润高的话,可以用专用加密芯片,大概会多2,3元成本. 专用加密芯片使用的类似银行卡的技术,至少难度比单片机破解复杂多了.   把核心的一段代码,但要求运算量不大不影响速度放进去即可.  我买的类似是51内核的,但是用了银行卡的防破解技术

一般人就是简单的防止别人直接抄板就差不多了,直接抄板是很多电子厂的手段,稍微加密一下他们不能直接操就差不多了.   

如果是大钱的项目,人家直接请别的重新自主开发也不难吧

你用的这个芯片的型号能推荐下么?

离线

#15 2021-01-08 13:05:12

jiangchun9981
会员
注册时间: 2019-07-31
已发帖子: 170
积分: 130.5

Re: 关于单片机代码加密相关讨论

伍零壹 说:
jiangchun9981 说:

产品利润高的话,可以用专用加密芯片,大概会多2,3元成本. 专用加密芯片使用的类似银行卡的技术,至少难度比单片机破解复杂多了.   把核心的一段代码,但要求运算量不大不影响速度放进去即可.  我买的类似是51内核的,但是用了银行卡的防破解技术

一般人就是简单的防止别人直接抄板就差不多了,直接抄板是很多电子厂的手段,稍微加密一下他们不能直接操就差不多了.   

如果是大钱的项目,人家直接请别的重新自主开发也不难吧

你用的这个芯片的型号能推荐下么?


LKT4101 开发套件 LKT4100 LKT4200 LKT4201
他这个有很多序列,内核便宜的有51内核的,还有ARM内核的适合高级算法.


还有个最简单的方法,就是买台系几毛钱的单片机(反正是冷门的),算法放进去一点,注意一定是算法而不是什么KEY(任何KEY都是可能拿到或者跳过你判断的地方的),然后型号擦除,用作加密芯片,

主芯片嘛随便你用熟悉的来开发了,用到算法的地方就调用上面那个芯片,这样不可能破解这个芯片跳过了,基本也能阻挡99%的破解的人了

最近编辑记录 jiangchun9981 (2021-01-08 13:25:32)

离线

#16 2021-01-08 13:09:50

jiangchun9981
会员
注册时间: 2019-07-31
已发帖子: 170
积分: 130.5

Re: 关于单片机代码加密相关讨论

LKT4201 32位高性能超低功耗RSA加密IC

分类: 嵌入式

2013-07-15 11:27:05

LKT4201 32位高性能超低功耗RSA加密IC是目前行业内最低功耗的高性能的RSA加密芯片,芯片采用32位CPU(获得全球最高安全等级EAL5+的智能卡芯片),18K RAM ,支持ISO7816及UART通信,通讯速率最高可达1.25Mbps;用户数据存储区容量最低64K字节。在超高安全等级加密的同时,速度大大超越一般8位或16位RSA加密芯片。RSA加接密功耗只相当于市面上普通8位16位RSA加密芯片的十分之一。

  产品特点:

  高性能、低功率32位CPU内核

  64K以上字节用户数据存储区;

  内嵌真随机数发生器,符合FIPS140-2标准;

  外部时钟频率范围1~10M Hz;

  支持UART接口 最高支持1.25Mbps通讯速率;

  通讯速率远远超过普通8位16位智能卡芯片为基础的RSA加密芯片;

  芯片安全性能,采用通过国际智能卡安全检测标准EAL5+,高于8位16位的智能卡加密芯片。

  安全特性:

  电压检测模块对抗高低电压攻击;

  频率检测模块对抗高低频率攻击;

  多种检测传感器:高压和低压传感器,频率传感器、滤波器、脉冲传感器、温度传感器,具有传感器寿命测试功能,一旦芯片检测到非法探测,将启动内部的自毁功能;

  芯片防篡改设计,唯一序列号;

  总线加密,具有金属屏蔽防护层,探测到外部攻击后内部数据自毁;

  硬件RSA、3DES算法协处理器;

  32位可编程算法协处理器;

  MMU存储器管理单元,可灵活设置SYS\APP模式及授予相应权限;

  程序和数据均加密存储;

  安全认证目标:EAL5+。

  产品功能:

  支持产生存储多条公私钥

  RSA密钥支持1024-1984位、2048位可定制

  公钥指数可以设定多种模式

  公私钥文件安全权限可以自定义

  支持SHA1、SHA256摘要算法

  支持DES、3DES算法

  支持DES 3DES过程密钥

  支持AES算法

  支持标准二进制、记录等文件系统

  技术参数:

  工作电压范围:1.8v—5.5v;

  工作温度:-20℃~+85℃;

  ESD保护:大于4KV;

  封装形式:SSOP20(可定制封装)。

  应用领域:

  移动支付领域

  需要超高安全性,以及需要加密的各类设备,单片机系统。

离线

楼主 #17 2021-01-08 20:18:11

伍零壹
会员
注册时间: 2019-12-16
已发帖子: 158
积分: 36

Re: 关于单片机代码加密相关讨论

jiangchun9981 说:

LKT4201 32位高性能超低功耗RSA加密IC

分类: 嵌入式

2013-07-15 11:27:05

LKT4201 32位高性能超低功耗RSA加密IC是目前行业内最低功耗的高性能的RSA加密芯片,芯片采用32位CPU(获得全球最高安全等级EAL5+的智能卡芯片),18K RAM ,支持ISO7816及UART通信,通讯速率最高可达1.25Mbps;用户数据存储区容量最低64K字节。在超高安全等级加密的同时,速度大大超越一般8位或16位RSA加密芯片。RSA加接密功耗只相当于市面上普通8位16位RSA加密芯片的十分之一。

  产品特点:

  高性能、低功率32位CPU内核

  64K以上字节用户数据存储区;

  内嵌真随机数发生器,符合FIPS140-2标准;

  外部时钟频率范围1~10M Hz;

  支持UART接口 最高支持1.25Mbps通讯速率;

  通讯速率远远超过普通8位16位智能卡芯片为基础的RSA加密芯片;

  芯片安全性能,采用通过国际智能卡安全检测标准EAL5+,高于8位16位的智能卡加密芯片。

  安全特性:

  电压检测模块对抗高低电压攻击;

  频率检测模块对抗高低频率攻击;

  多种检测传感器:高压和低压传感器,频率传感器、滤波器、脉冲传感器、温度传感器,具有传感器寿命测试功能,一旦芯片检测到非法探测,将启动内部的自毁功能;

  芯片防篡改设计,唯一序列号;

  总线加密,具有金属屏蔽防护层,探测到外部攻击后内部数据自毁;

  硬件RSA、3DES算法协处理器;

  32位可编程算法协处理器;

  MMU存储器管理单元,可灵活设置SYS\APP模式及授予相应权限;

  程序和数据均加密存储;

  安全认证目标:EAL5+。

  产品功能:

  支持产生存储多条公私钥

  RSA密钥支持1024-1984位、2048位可定制

  公钥指数可以设定多种模式

  公私钥文件安全权限可以自定义

  支持SHA1、SHA256摘要算法

  支持DES、3DES算法

  支持DES 3DES过程密钥

  支持AES算法

  支持标准二进制、记录等文件系统

  技术参数:

  工作电压范围:1.8v—5.5v;

  工作温度:-20℃~+85℃;

  ESD保护:大于4KV;

  封装形式:SSOP20(可定制封装)。

  应用领域:

  移动支付领域

  需要超高安全性,以及需要加密的各类设备,单片机系统。


好的

离线

#18 2021-01-09 09:47:15

JasonWoo
会员
注册时间: 2019-06-04
已发帖子: 84
积分: 55.5

Re: 关于单片机代码加密相关讨论

不同的加密芯片有不同的破解价格,就看你要到哪种程度了。普通的加密芯片是很容易被破解的,以现在的技术就算你把核心代码下载到加密芯片也可以被攻破。

离线

#19 2021-01-09 13:58:23

jiangchun9981
会员
注册时间: 2019-07-31
已发帖子: 170
积分: 130.5

Re: 关于单片机代码加密相关讨论

JasonWoo 说:

不同的加密芯片有不同的破解价格,就看你要到哪种程度了。普通的加密芯片是很容易被破解的,以现在的技术就算你把核心代码下载到加密芯片也可以被攻破。

没错  普通的STM32这类的好像几千块就能读出ROM什么的  但是冷门或者专用芯片要几万或者几十万几百万,那破解的就的想想了

离线

楼主 #20 2021-01-10 10:10:56

伍零壹
会员
注册时间: 2019-12-16
已发帖子: 158
积分: 36

Re: 关于单片机代码加密相关讨论

现在是希望大家讨论下加密的方法   不是说用什么加密方法让别人破戒不了  道高一尺魔高一丈。现在想知道大家一般采用什么方式加密  或者说有什么技巧

离线

#21 2021-01-10 12:07:40

迪卡
会员
所在地: 河北
注册时间: 2018-11-02
已发帖子: 916
积分: 903
个人网站

Re: 关于单片机代码加密相关讨论

用环氧树脂胶将芯片滴起来,看起来像牛屎芯片。别人就没兴趣破解了。

离线

楼主 #22 2021-01-12 11:44:21

伍零壹
会员
注册时间: 2019-12-16
已发帖子: 158
积分: 36

Re: 关于单片机代码加密相关讨论

迪卡 说:

用环氧树脂胶将芯片滴起来,看起来像牛屎芯片。别人就没兴趣破解了。

嗯 这个也算是一种方法

离线

楼主 #23 2021-02-01 17:28:10

伍零壹
会员
注册时间: 2019-12-16
已发帖子: 158
积分: 36

Re: 关于单片机代码加密相关讨论

搞了个quicklz的压缩与解压缩   看看能不能用来加密使用

离线

#24 2021-02-02 09:28:05

wujique
会员
注册时间: 2018-10-30
已发帖子: 178
积分: 172

Re: 关于单片机代码加密相关讨论

参考POS机安全认证。
0 硬件用安全芯片,设备加防拆。
1 关键信息加密,比如密钥,受到攻击就清除。
2 固件加密校验,现在的新芯片都有truceZone,相当于有可信根。
3 固件用非对称校验,公私密钥对,私钥放保险柜。
4 根据ID生成一机一密,被攻击了就销毁。

这些,功能挺多的,要看你保护什么。
可以找找银联认证的要求,或者国际认证PCI的要求。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn