本发明涉及嵌入式ems设备,具体是指一种ems嵌入式软件加密算法。
背景技术:
1、嵌入式ems设备中,单片机一般作为产品的逻辑中心,工作时一直在进行着逻辑判断与执行操作,相当于人类的大脑。单片机可以通过修改程序来控制外围电路的工作状态,从而改变产品的功能。而开发一款功能复杂且成熟的ems设备所需要的费用不低并且研发周期较长,一些个人为了某些原因,为了快速仿造竞争对手的产品,一般就原样照抄对方的硬件电路,但由于单片机内部有针对产品功能单独设计的程序,不能直接在市面上购买,所以就只能想办法通过特殊的解密方法将单片机内部的程序读取出来。将解密后读取出来的程序烧录在新的芯片中从而完成产品功能的抄袭。通过专用的设备和工具,利用单片机芯片设计上的硬件漏洞或软件缺陷,通过多种技术手段获取单片机内程序这叫做单片机解密或单片机破解。以不正当方式获得其他公司或个人的商业秘密,是一种常见的不正当竞争行为。
技术实现思路
1、本发明要解决的技术问题是在嵌入式设备上使用单片机程序加密方式,防止程序被恶意破解,避免产品功能被恶意抄袭。
2、为解决上述技术问题,本发明提供的技术方案为:一种ems嵌入式软件加密算法,包括以下步骤:
3、步骤一、在芯片外部,获取单片机芯片唯一的uid;
4、步骤二、在芯片外部,计算出预烧录程序固件的crc校验码;
5、步骤三、在芯片外部,通过自定义加密算法,计算出密钥m2;
6、步骤四、在芯片外部,将计算出的密钥m2写入单片机flash的固定位置;
7、步骤五、将预烧录的程序固件烧录到单片机中,单片机程序开始运行;
8、步骤六、在芯片内部,单片机正式程序运行前,获取单片机芯片唯一的uid;
9、步骤七、在芯片内部,从单片机flash中读取出整个程序,并计算出crc校验码;
10、步骤八、在芯片内部,通过自定义加密算法,计算出密钥m1;
11、步骤九、在芯片内部,获取flash固定位置储存的密钥值m2;
12、步骤十、在芯片内部,比对密钥值m1和m2;
13、步骤十一、在芯片内部,若比对成功,程序继续,开始执行正式程序;若比对失败,自动清除固件。
14、本发明与现有技术相比的优点在于:1)在基于嵌入式单片机实现的ems设备中,能够有效的防止程序被恶意破解,避免自己的产品被恶意抄袭;
15、2)将每个单片机唯一的uid和烧录的程序crc校验码两者加入加密算法中,让密钥跟每个单片机、每个程序绑定,使安全性更进一步提升;
16、3)密钥比对不成功时,单片机会自动清除固件,防止恶意程序的注入和攻击,保证ems系统下其他设备不被影响。
17、进一步的,步骤三的自定义加密算法采用uid和crc校验码进行计算加密。
18、进一步的,步骤八的自定义加密算法采用uid和crc校验码进行计算加密。
1.一种ems嵌入式软件加密算法,其特征在于包括以下步骤:
2.根据权利要求1所述的一种ems嵌入式软件加密算法,其特征在于:所述步骤三的自定义加密算法采用uid和crc校验码进行计算加密。
3.根据权利要求1所述的一种ems嵌入式软件加密算法,其特征在于:所述步骤八的自定义加密算法采用uid和crc校验码进行计算加密。