The invention discloses a software protection method based on the chip ID number, which includes the following steps: 1) constructing the encryption number of the chip ID; 2) constructing the encrypted main key of the chip ID number; 3) building the authentication key of the chip ID; 4) jumping; 5) generating a temporary key; 6) generating random codes; 7) generating verification code. ; 8) to judge the protection. This method can only run a set of software on the specified hardware, so that the cost of software protection is low, without any additional hardware, simple and practical, and has a broad application prospect.
【技术实现步骤摘要】
一种基于芯片ID号的软件保护方法
本专利技术涉及软件保护领域,特别涉及一种基于芯片ID号的软件保护方法。
技术介绍
随着科学技术水平的快速发展,嵌入式电子产品在人们的日常生活当中越来越普及,其中的软件功能也越来越丰富,但是电子产品的软件被盗版一直是困扰众多软件开发商的头痛问题。为此,不少软件开发商被迫在软件开发过程中投入大量精力去实现软件的保护,以防产品的技术被第三方非法盗用。特别是那些售价相对较高,面向特定领域的行业软件产品更是花费大量精力去实现软件的保护。目前对软件进行保护的方法主要有以下几种:指令伪装法,破坏芯片特定硬件资源加密法和ESAM加密法等,但是对于目前使用的情况来说,其综合应用的效果不是很理想。如指令伪装法只是增加了反汇编的阅读难度,对破解后直接复制的盗取没有任何防范作用;破坏芯片特定硬件资源加密法其具有一定的局限性,即破坏之后芯片很难再被使用;ESAM加密法需要额外的硬件,成本较高且实现较为复杂。为此,提出一种软件版权保护保护效果好、成本低、无需任何额外硬件、简单实用的软件保护方法就显得尤为重要。
技术实现思路
本专利技术的目的是针对现有技术的不足, ...
【技术保护点】
一种基于芯片ID号的软件保护方法,其特征是,包括如下步骤:1)构建芯片ID号的加密号
【技术特征摘要】
1.一种基于芯片ID号的软件保护方法,其特征是,包括如下步骤:1)构建芯片ID号的加密号在MCU芯片首次运行时,将经过防反汇编和反修改处理的主程序下载到主程序区的指定地址Flash当中,并在主程序运行时判断首次运行标志,如果首次运行标志为0,则读取该MCU芯片ID号,并对ID号进行加密同时将存储在指定数据区地址的Flash当中;2)构建芯片ID号的加密主密钥采用伪随机函数生成芯片ID号的主密钥MK=MKRand(m),并对MK进行加密加密成功之后,将存储在指定数据区地址的Flash当中;3)构建芯片ID号的认证密钥CSK:执行步骤1)、步骤2)后,将芯片ID号和MK所存放的临时存储区域清零,采用解密函数D(X)和加密算法AES(X,Y)生成认证密钥并存储在指定数据区地址的Flash当中,至此,成功构建出了MCU芯片的唯一的主密钥和认证密钥CSK;4)跳转:下载已经过防反汇编和反修改处理的主程序需要跳转的程序代码到指定代码区地址的Flash当中;5)生成临时密钥当跳转的程序代码下载成功之后,给芯片上电,则主程序将再次运行,此时其首次运行标志将因Flash中的代码区有程序代码变为1,这时主程序将执行读取芯片的ID号以及Flash数据区当中的主密钥和认证密钥CSK,并使用解密函数D(X)和加密算法AES(X,Y)生成临时密钥6)生成随机码Rand:采用随机函数生成随机码Rand;7)生成验证码:采用解密函数D(X)和加密算法A...
【专利技术属性】
技术研发人员:闭金杰,丘森辉,罗晓曙,杨日星,黄福旺,
申请(专利权)人:广西师范大学,
类型:发明
国别省市:广西,45
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。