CN103198242A - 一种利用芯片实现加密的方法 - Google Patents
一种利用芯片实现加密的方法 Download PDFInfo
- Publication number
- CN103198242A CN103198242A CN2013101126587A CN201310112658A CN103198242A CN 103198242 A CN103198242 A CN 103198242A CN 2013101126587 A CN2013101126587 A CN 2013101126587A CN 201310112658 A CN201310112658 A CN 201310112658A CN 103198242 A CN103198242 A CN 103198242A
- Authority
- CN
- China
- Prior art keywords
- encryption
- chip
- program
- master chip
- chip program
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明一种利用芯片实现加密的方法,使用编译器编译包含加密算法的加密芯片程序,将编译出的OTP文件烧录到加密芯片上,并且在烧录时将该加密芯片锁定;主芯片程序跟加密芯片程序使用同一套加密算法,并且主芯片程序跟加密芯片程序使用同一个加密因子进行加密;若获得的加密数据相同,则达到加密的效果;同时,由于加密算法固化在加密芯片中,而加密芯片程序只能烧录一次,并且在烧录时将该加密芯片锁定,外部无法读取内部程序,所以本发明的加密操作更为安全可靠。
Description
技术领域
本发明涉及一种利用芯片实现加密的方法。
背景技术
生产商为了防止他人抄板,通常都会使用一种加密方法来提高芯片程序的可靠性和安全性。青岛海信电器股份有限公司于2006年12月31日在先申请了“软件系统的防盗版保护方法”,其专利申请号为200610171048.4,具体包括如下步骤:
步骤1、利用主芯片的编译器对加密芯片内部的加密程序进行编译,生成库文件后,插入到主芯片内部的主程序中;
步骤2、通过主芯片生成一个密钥,输入到所述的库文件中,并对所述库文件的输出值Result进行存储;
步骤3、通过主芯片将所述密钥发送给加密芯片,加密芯片利用其内部的加密函数对所述密钥进行加密处理后生成Reed值,返回给主芯片;
步骤4、主芯片对所述的Result值和Reed值进行配对操作,若配对成功,则继续执行后续程序;若失败,则退出主程序。
上述步骤1中需要将生成的库文件插入到主芯片内部,过程相对复杂,并且可以反复从主芯片里把数据读出来,数据一旦被读出来,就很容易被破解。
发明内容
本发明的目的在于提供一种实现方法简单,加密操作更为安全可靠的利用芯片实现加密的方法。
本发明一种利用芯片实现加密的方法,包括如下步骤:
步骤1、使用编译器编译包含加密算法的加密芯片程序,将编译出的OTP文件烧录到加密芯片上,并且在烧录时将该加密芯片锁定;
步骤2、主芯片程序跟加密芯片程序使用同一套加密算法,并且主芯片程序跟加密芯片程序使用同一个加密因子进行加密;
主芯片程序通过随机函数得到加密因子,并把该加密因子下发给加密芯片程序,该加密芯片程序使用收到的加密因子通过固化其中的加密算法计算出加密数据data2,然后以中断信号通知主芯片程序从加密芯片程序里把该加密数据data2读回;同时,主芯片程序使用上述加密因子通过与加密芯片程序相同的加密算法计算出加密数据data1;主芯片程序把从加密芯片程序里读回的加密数据data2跟自己计算出的加密数据data1进行比较,如果相等,则主芯片可以正常工作;如果不相等,则主芯片不能正常工作,此时主芯片程序进入一段空程序,不再向加密芯片发送任何内容。
在bootloader 阶段运行:主芯片启动到bootloader阶段,主芯片程序通过随机函数得到加密因子,主芯片程序把加密因子下发给加密芯片程序,该加密芯片程序利用收到的加密因子通过固化其中的加密算法计算出加密数据data2,然后以中断信号通知主芯片程序从加密芯片程序里把加密数据data2读回;同时,主芯片程序使用上述加密因子通过与加密芯片程序相同的加密算法计算出加密数据data1;主芯片程序把从加密芯片程序里读回的加密数据data2跟自己计算出的加密数据data1进行比较,如果相等,则主芯片bootloader阶段的驱动功能正常;如果不相等,则主芯片bootloader阶段的驱动功能失效。
在内核加载驱动的阶段运行:主芯片启动到内核且加载内核驱动程序的时候,主芯片运行内核驱动程序通过随机函数得到加密因子,主芯片的内核驱动程序把该加密因子下发给加密芯片程序,该加密芯片程序根据收到的加密因子计算出加密数据data2,然后以中断信号通知主芯片的内核驱动程序从加密芯片程序里把加密数据data2读回;同时,主芯片的内核驱动程序使用上述的加密因子通过与加密芯片程序相同的加密算法计算出加密数据data1;主芯片的内核驱动程序把从加密芯片程序里读回的加密数据data2跟自己计算出的加密数据data1进行比较,如果相等,则主芯片加载驱动程序成功,如果不相等,则主芯片加载驱动程序不成功,对应的驱动功能失效。
采用本发明的技术方案后,只要主芯片程序在驱动中通过随机函数获取加密因子,然后把加密因子给加密芯片程序,主芯片程序和加密芯片程序双方使用同样的加密算法获得加密数据,若获得的加密数据相同,则达到加密的效果;同时,由于加密算法固化在加密芯片中,而加密芯片程序只能烧录一次,并且在烧录时将该加密芯片锁定,外部无法读取内部程序,所以本发明的加密操作更为安全可靠。
附图说明
图1为本发明的工作原理图。
以下结合附图和具体实施例对本发明作进一步详述。
具体实现方式
如图1所示,本发明一种利用芯片实现加密的方法,具体包括如下步骤:
步骤1、使用编译器编译包含加密算法的加密芯片程序,将编译出的OTP文件烧录到加密芯片上,并且在烧录时将该加密芯片锁定;
步骤2、主芯片程序跟加密芯片程序使用同一套加密算法,并且主芯片程序跟加密芯片程序使用同一个加密因子进行加密,主芯片程序通过随机函数得到加密因子,并把该加密因子下发给加密芯片程序,该加密芯片程序使用收到的加密因子通过固化其中的加密算法计算出加密数据data2,然后以中断信号通知主芯片程序从加密芯片程序里把该加密数据data2读回;同时,主芯片程序使用上述加密因子通过与加密芯片程序相同的加密算法计算出加密数据data1;主芯片程序把从加密芯片程序里读回的加密数据data2跟自己计算出的加密数据data1进行比较,如果相等,则主芯片可以正常工作;如果不相等,则主芯片不能正常工作,此时主芯片程序进入一段空程序,不再向加密芯片发送任何内容。
具体加密方法在如下两个阶段中运行:
(1) bootloader 阶段
主芯片启动到bootloader阶段,主芯片程序通过随机函数得到加密因子,主芯片程序把加密因子下发给加密芯片程序,该加密芯片程序利用收到的加密因子通过固化其中的加密算法计算出加密数据data2,然后以中断信号通知主芯片程序从加密芯片程序里把加密数据data2读回;同时,主芯片程序使用上述加密因子通过与加密芯片程序相同的加密算法计算出加密数据data1;
主芯片程序把从加密芯片程序里读回的加密数据data2跟自己计算出的加密数据data1进行比较,如果相等,则主芯片bootloader阶段的驱动功能正常;如果不相等,则主芯片bootloader阶段的驱动功能失效;
(2) 内核加载驱动的阶段
主芯片启动到内核且加载内核驱动程序的时候,主芯片运行内核驱动程序通过随机函数得到加密因子,主芯片的内核驱动程序把该加密因子下发给加密芯片程序,该加密芯片程序根据收到的加密因子计算出加密数据data2,然后以中断信号通知主芯片的内核驱动程序从加密芯片程序里把加密数据data2读回;同时,主芯片的内核驱动程序使用上述的加密因子通过与加密芯片程序相同的加密算法计算出加密数据data1;
主芯片的内核驱动程序把从加密芯片程序里读回的加密数据data2跟自己计算出的加密数据data1进行比较,如果相等,则主芯片加载驱动程序成功,如果不相等,则主芯片加载驱动程序不成功,对应的驱动功能失效。
本发明与在先申请的区别点是:
1、本发明生成的OTP文件并不插入到主芯片程序中,而是直接将编译器编译出OTP文件烧录到加密芯片上,该OTP文件只能烧录一次,并且在烧录时给加密芯片上锁,使得他人无法从加密芯片里把数据读出来;
2、本发明的主芯片程序通过随机函数取得加密因子,并直接把加密因子发送给加密芯片程序,同时主芯片程序利用发送给加密芯片程序的加密因子通过跟加密芯片程序一样的加密算法进行加密,得到加密数据data1,加密芯片程序根据主芯片程序发送过来的加密因子通过加密算法得到一个加密数据data2,然后以中断信号通知主芯片来读取加密数据,所以此时的加密数据data2不是由加密芯片程序主动发送给主芯片程序,而是由主芯片程序主动来读取该加密数据data2的;这样做既可以帮主芯片节约宝贵的CPU资源,不需要实时访问是否有加密数据上传,又可以及时的把加密数据读回,通过中断信号,得知何时要去读取加密数据。 3、当加密数据data1跟加密数据data2不相等时,并不退出主芯片程序,而是让主芯片程序中部分功能失效,比如按键、喇叭、lcd、耳机等重要功能失效,失效的时候,会进入一段空程序,不再向加密芯片发送任何内容。此时没有任何信号发出的好处是可以防止破解者通过抓波形来分析。
以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (3)
1.一种利用芯片实现加密的方法,其特征在于包括如下步骤:
步骤1、使用编译器编译包含加密算法的加密芯片程序,将编译出的OTP文件烧录到加密芯片上,并且在烧录时将该加密芯片锁定;
步骤2、主芯片程序跟加密芯片程序使用同一套加密算法,并且主芯片程序跟加密芯片程序使用同一个加密因子进行加密;
主芯片程序通过随机函数得到加密因子,并把该加密因子下发给加密芯片程序,该加密芯片程序使用收到的加密因子通过固化其中的加密算法计算出加密数据data2,然后以中断信号通知主芯片程序从加密芯片程序里把该加密数据data2读回;同时,主芯片程序使用上述加密因子通过与加密芯片程序相同的加密算法计算出加密数据data1;主芯片程序把从加密芯片程序里读回的加密数据data2跟自己计算出的加密数据data1进行比较,如果相等,则主芯片可以正常工作;如果不相等,则主芯片不能正常工作,此时主芯片程序进入一段空程序,不再向加密芯片发送任何内容。
2.根据权利要求1所述的一种利用芯片实现加密的方法,其特征在于在bootloader 阶段运行加密:
主芯片启动到bootloader阶段,主芯片程序通过随机函数得到加密因子,主芯片程序把加密因子下发给加密芯片程序,该加密芯片程序利用收到的加密因子通过固化其中的加密算法计算出加密数据data2,然后以中断信号通知主芯片程序从加密芯片程序里把加密数据data2读回;同时,主芯片程序使用上述加密因子通过与加密芯片程序相同的加密算法计算出加密数据data1;
主芯片程序把从加密芯片程序里读回的加密数据data2跟自己计算出的加密数据data1进行比较,如果相等,则主芯片bootloader阶段的驱动功能正常;如果不相等,则主芯片bootloader阶段的驱动功能失效。
3.根据权利要求1所述的一种利用芯片实现加密的方法,其特征在于在内核加载驱动的阶段运行加密:
主芯片启动到内核且加载内核驱动程序的时候,主芯片运行内核驱动程序通过随机函数得到加密因子,主芯片的内核驱动程序把该加密因子下发给加密芯片程序,该加密芯片程序根据收到的加密因子计算出加密数据data2,然后以中断信号通知主芯片的内核驱动程序从加密芯片程序里把加密数据data2读回;同时,主芯片的内核驱动程序使用上述的加密因子通过与加密芯片程序相同的加密算法计算出加密数据data1;
主芯片的内核驱动程序把从加密芯片程序里读回的加密数据data2跟自己计算出的加密数据data1进行比较,如果相等,则主芯片加载驱动程序成功,如果不相等,则主芯片加载驱动程序不成功,对应的驱动功能失效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101126587A CN103198242A (zh) | 2013-04-02 | 2013-04-02 | 一种利用芯片实现加密的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101126587A CN103198242A (zh) | 2013-04-02 | 2013-04-02 | 一种利用芯片实现加密的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103198242A true CN103198242A (zh) | 2013-07-10 |
Family
ID=48720794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101126587A Pending CN103198242A (zh) | 2013-04-02 | 2013-04-02 | 一种利用芯片实现加密的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103198242A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463026A (zh) * | 2014-12-08 | 2015-03-25 | 深圳中科讯联科技有限公司 | 一种用于硬件防抄板的系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1229427A2 (en) * | 2001-01-31 | 2002-08-07 | Kabushiki Kaisha Toshiba | Microprocessor using public key decryption processing |
CN1677383A (zh) * | 2005-01-21 | 2005-10-05 | 深圳市致芯微电子有限公司 | 加密芯片、利用该加密芯片的cpu程序加密方法和系统 |
CN101211396A (zh) * | 2006-12-31 | 2008-07-02 | 青岛海信电器股份有限公司 | 软件系统的防盗版保护方法 |
CN102291591A (zh) * | 2011-06-24 | 2011-12-21 | 广州视源电子科技有限公司 | 电视软件功能免编译配置方法及其装置 |
CN102289625A (zh) * | 2011-09-30 | 2011-12-21 | 方波 | 具有加密功能的存储芯片和防盗版方法 |
CN102567671A (zh) * | 2011-12-30 | 2012-07-11 | 大连捷成实业发展有限公司 | 一种fpga配置数据的加密系统及其加密方法 |
-
2013
- 2013-04-02 CN CN2013101126587A patent/CN103198242A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1229427A2 (en) * | 2001-01-31 | 2002-08-07 | Kabushiki Kaisha Toshiba | Microprocessor using public key decryption processing |
CN1677383A (zh) * | 2005-01-21 | 2005-10-05 | 深圳市致芯微电子有限公司 | 加密芯片、利用该加密芯片的cpu程序加密方法和系统 |
CN101211396A (zh) * | 2006-12-31 | 2008-07-02 | 青岛海信电器股份有限公司 | 软件系统的防盗版保护方法 |
CN102291591A (zh) * | 2011-06-24 | 2011-12-21 | 广州视源电子科技有限公司 | 电视软件功能免编译配置方法及其装置 |
CN102289625A (zh) * | 2011-09-30 | 2011-12-21 | 方波 | 具有加密功能的存储芯片和防盗版方法 |
CN102567671A (zh) * | 2011-12-30 | 2012-07-11 | 大连捷成实业发展有限公司 | 一种fpga配置数据的加密系统及其加密方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463026A (zh) * | 2014-12-08 | 2015-03-25 | 深圳中科讯联科技有限公司 | 一种用于硬件防抄板的系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102464299B1 (ko) | 블록체인 구현 방법 및 시스템 | |
CN105426708B (zh) | 一种Android系统的应用程序的加固方法 | |
CN105260668B (zh) | 一种文件加密方法及电子设备 | |
CN110324146A (zh) | 对离线唯密文攻击的缓解 | |
CN101854243B (zh) | 一种电路系统设计加密电路及其加密方法 | |
CN105005718B (zh) | 一种利用马尔可夫链实现代码混淆的方法 | |
CN106411830B (zh) | 防止访问数据被篡改的方法及移动终端 | |
CN110008745B (zh) | 一种加密方法、计算机设备和计算机存储介质 | |
CN106650325B (zh) | 一种基于加密狗的软件平台管理方法 | |
CN103346885B (zh) | 一种令牌设备的激活方法 | |
CN103457733A (zh) | 一种云计算环境数据共享方法和系统 | |
CN104123769B (zh) | 一种安全智能锁的开锁、关锁控制方法 | |
CN103595525A (zh) | 一种抗去同步化的轻量级rfid双向认证协议 | |
CN103198247B (zh) | 一种计算机安全保护方法和系统 | |
CN103544410A (zh) | 一种嵌入式微处理器非可克隆函数密钥认证系统和方法 | |
CN104168116A (zh) | 一种数据库身份验证方法及系统 | |
US10944579B2 (en) | Device pairing and authentication | |
CN102663317A (zh) | 业务单据及关键数据流转过程安全加固系统 | |
CN103914662A (zh) | 一种基于分区的文件加密系统的访问控制方法和装置 | |
CN104637117A (zh) | 智能锁芯和钥匙实现的方法、智能锁芯、锁具和钥匙 | |
CN105007256A (zh) | 用于在非信任平台上执行安全功能的安全模块 | |
CN104200137A (zh) | 一种保护java程序自身安全的方法 | |
Shirey et al. | Analysis of implementations to secure git for use as an encrypted distributed version control system | |
CN104639330B (zh) | 一种goose报文完整性认证方法 | |
CN104298936A (zh) | 一种基于cpld芯片的fpga加密及参数配置系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130710 |