hi 不知道各位大神在做单片机代码的时候用什么加密方式?我这边使用了DES和AES加密,但是这两种加密都是对称加密,也就是说我的秘钥还是需要保存在我单片机的eeprom或者flash里面的。我老是担心这样会被别人读出来,或者破解出来。其方法如下:
A 加密
在PC端或者手持加密机上读出需要被加密机器的唯一ID, 根据ID生成密文(加密机使用秘钥A),写入到EEPROM或者flash特定位置
B解密
系统启动后,读出唯一ID,读出特定位置的密文,根据秘钥(也要存在代码里面)解密判断解密之后的得到的ID和读出芯片的ID是否一 致.
上面的方法的问题点就在于,秘钥还是要保存在代码里面,这样就有被别人识别出来的风险。非对称加密现在还没有搞定。各位大神有什么建议?关于代码加密的都行
最近编辑记录 伍零壹 (2021-01-06 09:49:31)
离线
这个方法好像不错!通过计算ROM里面代码的hash值作为秘钥,这样秘钥就不是以明文的方式存在,而是在运行计算的时候得到。
最近编辑记录 伍零壹 (2021-01-06 11:15:45)
离线
"根据秘钥(也要存在代码里面)解密判断解密之后的得到的ID和读出芯片的ID是否一 致."
这种不是一个跳转就解决了?
不一定是跳转,比如我的解密函数是decode_A,我读到读到ID数据是B,B=GetID();
我在做一些循环的时候我用 for(i=decode_A-B;i<ff;i++)这种形式,只要ID不同 程序也许不会马上死掉但是会出现异常。这样也是保护产品代码的方法。用跳转指令有可能会被破解。
离线
暗装,虚拟机,片外加密芯片
单片机里面如何跑虚拟机?兄台能否指点下?
离线
产品利润高的话,可以用专用加密芯片,大概会多2,3元成本. 专用加密芯片使用的类似银行卡的技术,至少难度比单片机破解复杂多了. 把核心的一段代码,但要求运算量不大不影响速度放进去即可. 我买的类似是51内核的,但是用了银行卡的防破解技术
一般人就是简单的防止别人直接抄板就差不多了,直接抄板是很多电子厂的手段,稍微加密一下他们不能直接操就差不多了.
如果是大钱的项目,人家直接请别的重新自主开发也不难吧
你用的这个芯片的型号能推荐下么?
离线
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(可定制封装)。
应用领域:
移动支付领域
需要超高安全性,以及需要加密的各类设备,单片机系统。
好的
离线
现在是希望大家讨论下加密的方法 不是说用什么加密方法让别人破戒不了 道高一尺魔高一丈。现在想知道大家一般采用什么方式加密 或者说有什么技巧
离线
用环氧树脂胶将芯片滴起来,看起来像牛屎芯片。别人就没兴趣破解了。
嗯 这个也算是一种方法
离线
搞了个quicklz的压缩与解压缩 看看能不能用来加密使用
离线