[发明专利]一种基于芯片ID号的软件保护方法在审
申请号: | 201711126313.1 | 申请日: | 2017-11-15 |
公开(公告)号: | CN107958141A | 公开(公告)日: | 2018-04-24 |
发明(设计)人: | 闭金杰;丘森辉;罗晓曙;杨日星;黄福旺 | 申请(专利权)人: | 广西师范大学 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/44 |
代理公司: | 桂林市华杰专利商标事务所有限责任公司45112 | 代理人: | 刘梅芳 |
地址: | 541004 广西壮*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于芯片ID号的软件保护方法,其特征是,包括如下步骤1)构建芯片ID号的加密号;2)构建芯片ID号的加密主密钥;3)构建芯片ID号的认证密钥;4)跳转;5)生成临时密钥;6)生成随机码;7)生成验证码;8)判断保护。这种方法能实现一套软件只能在指定硬件上运行,使得软件保护的成本低、无需任何额外硬件、简单实用,具有广阔的应用前景。 | ||
搜索关键词: | 一种 基于 芯片 id 软件 保护 方法 | ||
【主权项】:
一种基于芯片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)和加密算法AES(X,Y)生成验证码Y=AES(CSK*,Rand)和X=AES(CSK,Rand);8)判断保护:如果X与Y相等,则主程序跳到程序代码区进入正常执行状态,如果X与Y不相等,则主程序将Flash当中的程序代码区和数据区的所有代码和数据擦除,即自杀,完成对软件的保护。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广西师范大学,未经广西师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711126313.1/,转载请声明来源钻瓜专利网。