CN102495990A - 一种基于微型芯片的软件保护方法 - Google Patents
一种基于微型芯片的软件保护方法 Download PDFInfo
- Publication number
- CN102495990A CN102495990A CN2011104019910A CN201110401991A CN102495990A CN 102495990 A CN102495990 A CN 102495990A CN 2011104019910 A CN2011104019910 A CN 2011104019910A CN 201110401991 A CN201110401991 A CN 201110401991A CN 102495990 A CN102495990 A CN 102495990A
- Authority
- CN
- China
- Prior art keywords
- software
- microchip
- module
- encrypted
- random number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种基于微型芯片的软件保护方法,包括使用前对软件进行加密的步骤,使用时对软件加密信息进行读取和验证的步骤;在对软件加密信息进行读取和验证步骤之前还设置有用于验证的验证模块与用于获取加密信息的获取模块之间的握手步骤,其实现过程是利用微型芯片ID号的唯一性,同时加入了握手验证的步骤,通过将ID号加密之后写入微型芯片的熔丝位中,每次要使用基于微型芯片的软件模块时候就必须通过握手验证以及ID号与熔丝位数据的比对验证。本发明将软件模块与微型芯片绑定,因此安全性很高,不易破解;所涉及的数据量以及运算量小,基本不影响性能;同时无需添加其它硬件设备,成本很低。
Description
技术领域
本发明涉及一种基于微型芯片的软件保护方法。
背景技术
几乎所有的软件公司都拥有自己的核心技术,这些技术是不容许非法盗用的。属于某公司或某个人私有的软件模块被非法盗用的现象却也普遍存在,尤其是在将项目交由外包公司开发,并且项目中要使用自身的某些核心技术的情况下,这些核心技术很容易被非法盗用。例如:某公司自主研发出了手写识别软件模块,而该公司将一个需要使用到手写识别模块的项目外包给外包公司开发,当该公司将手写识别软件模块交给外包公司后,手写识别软件模块被盗用的可能性是很高的。软件模块的保护在PC机上很容易实现,但要保护基于微型芯片的软件,就必须要有一个能够将软件模块与微型处理器绑定且安全性高、不易破解、同时不影响微型芯片的工作性能的解决方案,由于微型芯片的自身局限性,很多解决方案都无法兼顾上述的要求。
发明内容
本发明针对目前对基于微型芯片的软件模块的保密需求存在的问题,提出一种基于微型芯片的软件保护方法。
实现本发明目的的技术方案是:一种基于微型芯片的软件保护方法,包括:
使用前,对软件进行加密的步骤;使用时,对软件加密信息进行读取和验证的步骤。
在对软件加密信息进行读取和验证步骤之前还设置有用于验证的验证模块与用于获取加密信息的获取模块之间的握手步骤。
所述握手步骤中,首先确定数学关系H(x)、G(x)、F(x),令H(G(F(x)))=x;由验证模块生成随机数A,使B=F(A),并将B发送到获取模块;获取模块收到B后,使C=G(B),并向C中添加入随机数后发送至验证模块;验证模块接收C后,去除添加的随机数,使D=H(C),如D=A则握手成功,通过验证,否则握手失败,获取模块将不予提供加密信息给验证模块,则验证失败,禁止对软件使用。
具体的,所述对软件进行加密的步骤为:微型芯片应用前,使用获取模块读取微型芯片的ID号X,验证模块将读取到的ID号X加密,得到密文Y,再通过获取模块将Y写到微型芯片的熔丝位中。
所述对软件加密信息进行读取和验证的步骤为:
(1)微型芯片应用时,应用请求模块请求访问软件模块,获取模块读取微型芯片的ID号X与熔丝位中加密后的ID号Y,验证模块将X用权利要求2中所述的加密方法加密,得到密文Z。
(2)软件验证及加密模块将Z与Y比对,如果相同,则通过验证应用请求模块可以正常访问软件模块;如果不同,则拒绝应用请求模块对软件模块的访问。
优选的,所述加密方法为不可逆算法。
优选的,所述加密方法不对ID号直接加密,采用置换加密对ID号进行初步加密。
进一步的,所述置换加密的步骤为:
(1)设计一个包含多个随机数值的置换盒,随机数值个数不少于ID号的字节数;
(2)根据置换盒建立函数K(x),通过K(x)分别将ID号的每个字节的数值转换成置换盒随机数值。
优选的, 所述置换盒中的随机数数值各不相同。
本发明具有积极的效果:(1)本发明将软件模块与微型芯片绑定,因此安全性很高,不易破解。(2)在认证ID号前加入握手认证,保证处理器id号及熔丝内容的获取是安全的。(3)本发明所涉及的数据量以及运算量都很小,因此性能很高。(4)无需添加其它硬件设备,因此成本很低。
附图说明
附图1为本发明模块关系示意图;
附图2为本发明所述握手验证流程图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图和具体实施例对本发明的技术方案作一详细描述:
一种基于微型芯片的软件保护方法,包括应用请求模块,ID号操作模块,软件验证及加密模块,如图1所示,其实施步骤为:
使用前,对软件进行加密的步骤,使用获取模块读取微型芯片的ID号X,验证模块将读取到的ID号X加密,得到密文Y,再通过获取模块将Y写到微型芯片的熔丝位中。
使用时,对软件加密信息进行读取和验证的步骤,即:
(1)微型芯片应用时,应用请求模块请求访问软件模块,获取模块读取微型芯片的ID号X与熔丝位中加密后的ID号Y,验证模块将X用对软件进行加密的步骤中所述的加密方法加密,得到密文Z。
(2)软件验证及加密模块将Z与Y比对,如果相同,则通过验证应用请求模块可以正常访问软件模块;如果不同,则拒绝应用请求模块对软件模块的访问。
由于在ID号与熔丝位的内容获取的时候存在人为篡改的可能性,也即是说,软件验证及加密模块中所获取的微型芯片ID号以及熔丝位的内容可能是不正确的。所以本发明在上述步骤(1)与步骤(2)之间还设置有握手验证,如图2所示,其步骤为:
首先确定数学关系H(x)、G(x)、F(x),令H(G(F(x)))=x;由验证模块生成随机数A,使B=F(A),并将B发送到获取模块;获取模块收到B后,使C=G(B),并向C中添加入随机数后发送至验证模块;验证模块接收C后,去除添加的随机数,使D=H(C),如D=A则握手成功,通过验证,否则握手失败,获取模块将不予提供加密信息给验证模块,则验证失败,禁止对软件使用。有了握手验证的过程,我们就可以保证软件验证及加密模块中所获取微型芯片ID号以及熔丝位内容的安全性。
为了保证对ID号加密的安全性,加密方法可选用MD5等不可逆算法。同时不对ID号直接加密,而是采用置换加密对ID号进行初步加密。
加密的步骤为:
(α)设计一个包含多个随机数值的置换盒,随机数值个数不少于ID号的字节数;
(β)根据置换盒建立函数K(x),通过K(x)分别将ID号的每个字节的数值转换成置换盒随随机数值。
为了保证加密结果的唯一性,置换盒中的各个随机数数值都不相同。
在本实施例中,假设微型芯片的id号为(1,2,3,4,5,6,7,8)这样一个数字串,建立一个包含n个数字串(n > 0)的置换盒S(S1,S2,…,Sn), 每个数字串长度要求远大于8,数字串内的数值为为随机数。设计一个数学关系K(x),将微型芯片的id号的各个字节转化成数字串的编号。
本实施例,将微型芯片的id号的数值总和与n求余,假设n=10,则选择数字串S6。设计数学关系K(x),将微型芯片的id号中的每个数字转化成S6中的某个或某几个数值; 比如: K(x) = x(这是最简单的线性数学关系,可设计成很复杂)。
假设S6 = 123, 244, 45, 66, 99, 23, 34, 78, 111, ……
依照数学关系K(x) = x, 可知:f(1) = 1, 1对应S6中第1个数字 123 ,f(2) = 2, 2对应S6中第2个数字 244,依此类推,因此,用于加密的数据串为(123, 244, 45, 66, 99, 23, 34, 78)。
上述的置换加密只是一种较简单的实施例子。为了达到更好的安全性,在实际应用中可以根据需要设计更加复杂的置换盒以及置换算法K(x)。
本实施例只是本发明的较优实施方式,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (7)
1.一种基于微型芯片的软件保护方法,包括:
使用前,对软件进行加密的步骤;
使用时,对软件加密信息进行读取和验证的步骤;
其特征在于,在对软件加密信息进行读取和验证步骤之前还设置有用于验证的验证模块与用于获取加密信息的获取模块之间的握手步骤;
所述握手步骤中,首先确定数学关系H(x)、G(x)、F(x),令H(G(F(x)))=x;由验证模块生成随机数A,使B=F(A),并将B发送到获取模块;获取模块收到B后,使C=G(B),并向C中添加入随机数后发送至验证模块;验证模块接收C后,去除添加的随机数,使D=H(C),如D=A则握手成功,通过验证,否则握手失败,获取模块将不予提供加密信息给验证模块,则验证失败,禁止对软件使用。
2.根据权利要求1所述的基于微型芯片的软件保护方法,其特征在于,所述对软件进行加密的步骤为:
微型芯片应用前,使用获取模块读取微型芯片的ID号X,验证模块将读取到的ID号X加密,得到密文Y,再通过获取模块将Y写到微型芯片的熔丝位中。
3.根据权利要求1和2所述的基于微型芯片的软件保护方法,其特征在于,所述对软件加密信息进行读取和验证的步骤为:
(1)微型芯片应用时,应用请求模块请求访问软件模块,获取模块读取微型芯片的ID号X与熔丝位中加密后的ID号Y,验证模块将X用权利要求2中所述的加密方法加密,得到密文Z;
(2)软件验证及加密模块将Z与Y比对,如果相同,则通过验证应用请求模块可以正常访问软件模块;如果不同,则拒绝应用请求模块对软件模块的访问。
4.根据权利要求3所述的基于微型芯片的软件保护方法,其特征在于:所述加密方法为不可逆算法。
5.根据权利要求4所述的基于微型芯片的软件保护方法,其特征在于:所述加密方法不对ID号直接加密,采用置换加密对ID号进行初步加密。
6.根据权利要求5所述的基于微型芯片的软件保护方法,其特征在于:所述置换加密的步骤为:
(1)设计一个包含多个随机数值的置换盒,随机数值个数不少于ID号的字节数;
(2)根据置换盒建立函数K(x),通过K(x)分别将ID号的每个字节的数值转换成置换盒随机数值。
7.根据权利要求6所述的基于微型芯片的软件保护方法,其特征在于:所述置换盒中的随机数数值各不相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104019910A CN102495990A (zh) | 2011-12-07 | 2011-12-07 | 一种基于微型芯片的软件保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104019910A CN102495990A (zh) | 2011-12-07 | 2011-12-07 | 一种基于微型芯片的软件保护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102495990A true CN102495990A (zh) | 2012-06-13 |
Family
ID=46187815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104019910A Pending CN102495990A (zh) | 2011-12-07 | 2011-12-07 | 一种基于微型芯片的软件保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102495990A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544413A (zh) * | 2013-10-31 | 2014-01-29 | 宇龙计算机通信科技(深圳)有限公司 | 一种在智能终端中校验软件版权的方法及装置 |
CN104469773A (zh) * | 2014-12-31 | 2015-03-25 | 平安科技(深圳)有限公司 | 一种无线信标防伪造方法 |
CN105045695A (zh) * | 2015-08-17 | 2015-11-11 | 大唐微电子技术有限公司 | 一种芯片进入测试模式的保护方法和系统 |
CN105895158A (zh) * | 2016-04-23 | 2016-08-24 | 华为技术有限公司 | 芯片中的die id的读取电路以及芯片 |
CN106874775A (zh) * | 2016-12-26 | 2017-06-20 | 深圳市风云实业有限公司 | 一种防复制的嵌入式系统实现方法 |
CN108304700A (zh) * | 2017-12-19 | 2018-07-20 | 浙江泰米电子科技有限公司 | 基于mcu的软件防反编译加密方法 |
CN109002695A (zh) * | 2018-06-20 | 2018-12-14 | 浙江理工大学 | 一种软件加密方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794258A (zh) * | 2005-12-23 | 2006-06-28 | 左长进 | 利用网卡物理地址防止软件非授权使用的方法 |
CN1905436A (zh) * | 2005-07-28 | 2007-01-31 | 北京航空航天大学 | 保证数据交换安全的方法 |
CN101437224A (zh) * | 2008-12-22 | 2009-05-20 | 中兴通讯股份有限公司 | 移动终端软件的更新方法和移动终端 |
-
2011
- 2011-12-07 CN CN2011104019910A patent/CN102495990A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1905436A (zh) * | 2005-07-28 | 2007-01-31 | 北京航空航天大学 | 保证数据交换安全的方法 |
CN1794258A (zh) * | 2005-12-23 | 2006-06-28 | 左长进 | 利用网卡物理地址防止软件非授权使用的方法 |
CN101437224A (zh) * | 2008-12-22 | 2009-05-20 | 中兴通讯股份有限公司 | 移动终端软件的更新方法和移动终端 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544413A (zh) * | 2013-10-31 | 2014-01-29 | 宇龙计算机通信科技(深圳)有限公司 | 一种在智能终端中校验软件版权的方法及装置 |
CN104469773A (zh) * | 2014-12-31 | 2015-03-25 | 平安科技(深圳)有限公司 | 一种无线信标防伪造方法 |
CN104469773B (zh) * | 2014-12-31 | 2018-08-24 | 平安科技(深圳)有限公司 | 一种无线信标防伪造方法 |
CN105045695A (zh) * | 2015-08-17 | 2015-11-11 | 大唐微电子技术有限公司 | 一种芯片进入测试模式的保护方法和系统 |
CN105045695B (zh) * | 2015-08-17 | 2018-08-10 | 大唐微电子技术有限公司 | 一种芯片进入测试模式的保护方法和系统 |
CN105895158A (zh) * | 2016-04-23 | 2016-08-24 | 华为技术有限公司 | 芯片中的die id的读取电路以及芯片 |
CN105895158B (zh) * | 2016-04-23 | 2020-01-31 | 华为技术有限公司 | 芯片中的die id的读取电路以及芯片 |
CN106874775A (zh) * | 2016-12-26 | 2017-06-20 | 深圳市风云实业有限公司 | 一种防复制的嵌入式系统实现方法 |
CN106874775B (zh) * | 2016-12-26 | 2020-07-07 | 深圳市风云实业有限公司 | 一种防复制的嵌入式系统实现方法 |
CN108304700A (zh) * | 2017-12-19 | 2018-07-20 | 浙江泰米电子科技有限公司 | 基于mcu的软件防反编译加密方法 |
CN109002695A (zh) * | 2018-06-20 | 2018-12-14 | 浙江理工大学 | 一种软件加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6592621B2 (ja) | 認証ネットワーク | |
ES2691254T3 (es) | Método y sistema para verificar la integridad de un activo digital mediante el uso de una tabla de hash distribuidas y un libro mayor distribuido entre pares | |
CN109074579B (zh) | 使用分布式散列表和区块链保护计算机软件的方法及系统 | |
CN102495990A (zh) | 一种基于微型芯片的软件保护方法 | |
CN103609059B (zh) | 用于安全数据共享的系统和方法 | |
EP2759955A1 (en) | Secure backup and restore of protected storage | |
GB2538052A (en) | Encoder, decoder, encryption system, encryption key wallet and method | |
CN103236930A (zh) | 数据加密方法和系统 | |
CN103701829B (zh) | 一种离线解析dpapi加密数据的方法 | |
JP2015154491A (ja) | リモートアクセス、リモートデジタル署名のためのシステムおよび方法 | |
CN102138300A (zh) | 消息认证码预计算在安全存储器中的应用 | |
US10630474B2 (en) | Method and system for encrypted data synchronization for secure data management | |
CN102508791A (zh) | 一种对硬盘分区进行加密的方法及装置 | |
US9276887B2 (en) | Systems and methods for managing security certificates through email | |
TW201201041A (en) | Data security method and system | |
CN104333545A (zh) | 对云存储文件数据进行加密的方法 | |
CN102043804A (zh) | 数据库系统的安全登录方法 | |
EP3214567B1 (en) | Secure external update of memory content for a certain system on chip | |
US20130145145A1 (en) | System and method of securing data using a server-resident key | |
CN102612025A (zh) | 手机文件保护系统及方法 | |
CN103051593A (zh) | 一种数据安全摆渡的方法及系统 | |
CN103532712B (zh) | 数字媒体文件保护方法、系统及客户端 | |
CN106919846B (zh) | 一种消息中间件处理方法和系统 | |
CN103699850A (zh) | 云环境下的文件处理方法和装置 | |
CN103235910A (zh) | iOS操作系统中基于智能卡实现网络账户保护控制的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120613 |