CN111159722B - 一种基于单片机的芯片系统的加密方法及加密芯片系统 - Google Patents

一种基于单片机的芯片系统的加密方法及加密芯片系统 Download PDF

Info

Publication number
CN111159722B
CN111159722B CN201911078078.4A CN201911078078A CN111159722B CN 111159722 B CN111159722 B CN 111159722B CN 201911078078 A CN201911078078 A CN 201911078078A CN 111159722 B CN111159722 B CN 111159722B
Authority
CN
China
Prior art keywords
data
identification
singlechip
chip system
cpu
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.)
Active
Application number
CN201911078078.4A
Other languages
English (en)
Other versions
CN111159722A (zh
Inventor
周厚明
苏功关
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Maiwei Communications Co ltd
Original Assignee
Wuhan Maiwei Communications Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Maiwei Communications Co ltd filed Critical Wuhan Maiwei Communications Co ltd
Priority to CN201911078078.4A priority Critical patent/CN111159722B/zh
Publication of CN111159722A publication Critical patent/CN111159722A/zh
Application granted granted Critical
Publication of CN111159722B publication Critical patent/CN111159722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于单片机的芯片系统的加密方法及加密芯片系统,芯片系统包含处理器,单片机包含标识ID,加密方法包括:根据标识ID按照设定算法生成秘钥的第一数据,将第一数据写入单片机;处理器初始化时内部按照标识ID和设定算法生成秘钥的第二数据;第一数据和第二数据匹配时判定芯片系统验证通过,否则退出运行程序。利用包含出厂唯一且不可修改的标识ID的单片机,根据该单片机的标识ID生成秘钥,在芯片系统初始化时先进行秘钥匹配性判断,匹配时判定芯片系统验证通过,则程序向下执行,否则程序直接退出,如果复制芯片系统内的程序,芯片系统验证不通过则程序不能继续运行,可以防止芯片系统被复制仿造,并且不需要在外围电路加上加密芯片。

Description

一种基于单片机的芯片系统的加密方法及加密芯片系统
技术领域
本发明涉及单片机应用技术领域,尤其涉及一种基于单片机的加密方法及加密芯片系统。
背景技术
嵌入式系统软件领域,如果没有任何保密措施,产品会轻易被竞争对手复制盗版。目前常用的ARM、单片机芯片,自身的安全防护手段很少,公司产品的程序暴露在flash或eeprom中,这些程度可以通过flash读写器读出来,就可以进行复制,再加上硬件抄板,这样公司的产品就轻易被别人仿造,因此如何保护嵌入式软件生产厂家的利益,是嵌入式产品需要面对和解决的问题。
现有技术中为了防止产品成果被人复制盗用,通常情况下,嵌入式MCU会在外围电路加入一个加密芯片,嵌入式程序运行前和加密芯片有一个交互的步骤,如果认证通过,就正常运行程序,如果认证失败,程序直接退出。
发明内容
本发明针对现有技术中存在的技术问题,提供一种基于单片机的加密方法及加密芯片系统,解决芯片系统的产品成果被复制的风险。
本发明解决上述技术问题的技术方案如下:一种基于单片机的芯片系统的加密方法,所述芯片系统包含处理器,所述单片机包含标识ID,所述加密方法包括:
步骤1,根据所述标识ID按照设定算法生成秘钥的第一数据,将所述第一数据写入所述单片机;
步骤2,处理器初始化时内部按照所述标识ID和所述设定算法生成秘钥的第二数据;
步骤3,所述第一数据和所述第二数据匹配时判定所述芯片系统验证通过,否则退出运行程序。
一种基于单片机的加密芯片系统,所述加密芯片系统包括通过UART口通信连接的CPU和单片机;所述单片机包括标识ID;
所述单片机接收写入的由所述标识ID生成的secret码,将所述标识ID发送给所述CPU后,根据所述secret码生成第一数据发送给所述CPU;
所述CPU根据所述标识ID生成所述secret码,根据所述secret码生成第二数据;判断所述第一数据和所述第二数据匹配时判定所述加密芯片系统验证通过。
本发明的有益效果是:利用包含出厂唯一且不可修改的标识ID的单片机,根据该单片机的标识ID生成秘钥,在芯片系统初始化时,先进行秘钥匹配性判断,匹配时判定芯片系统验证通过,则程序向下执行,否则程序直接退出,如果复制芯片系统内的程序,由于指定位置已经写好了由标识ID得到的第一数据,标识ID不同,而且复制者不知道第一数据的算法,所以无法更改这个数据,秘钥肯定不能匹配,芯片系统验证不通过则程序不能继续运行,可以防止芯片系统被复制仿造,并且不需要在外围电路加上加密芯片。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述处理器为CPU,所述芯片系统包括所述CPU和所述单片机。
进一步,所述步骤1中根据所述标识ID和常量按照第一设定算法生成secret码;所述步骤2中所述CPU根据所述标识ID和所述常量按照所述第一设定算法生成secret码,所述第一数据和所述第二数据由所述secret码生成。
进一步,认证时所述CPU产生随机数并发送给所述单片机,生成所述第一数据和第二数据的数据包括所述随机数。
进一步,所述第一数据和第二数据进行匹配之前包括:
步骤201,所述CPU发送随机数给单片机;
步骤202,所述单片机将所述标识ID和所述常量发送给所述CPU,所述CPU根据所述第一设定算法计算得到所述secret码;
步骤203,所述单片机内部根据所述标识ID、所述常量、所述随机数和所述secret码按照第二设定算法生成所述第一数据发送给所述CPU,所述CPU内部根据所述标识ID、所述常量、所述随机数和所述secret码按照所述第二设定算法生成所述第二数据。
进一步,所述secret码由所述标识ID和常量按照第一设定算法生成。
进一步,所述CPU产生随机数发送给所述单片机;生成所述第一数据和所述第二数据的数据包括所述随机数。
进一步所述单片机还将所述常量发送给所述CPU;
所述第一数据和所述第二数据由所述标识ID、常量、所述secret码和所述随机数按照第二设定算法生成。
采用上述进一步方案的有益效果是:芯片系统的处理器采用包含标识ID的单片机,单片机内部通过匹配秘钥进行加密,即便有人拷贝了单片机的程序,由于单片机的ID的唯一性,必然会出现二者数据不一致,认证失败可以防止芯片系统被复制仿造,并且不需要在外围电路加上加密芯片。
在芯片系统需要更高精度的处理器时,增加与处理器通信的包含标识ID的单片机,根据该标识ID生成秘钥,处理器和单片机之间交互通过匹配秘钥进行加密,即便有人拷贝了单片机和处理器的程序,由于单片机的ID的唯一性,必然会出现二者数据不一致,认证失败,secret码加入常量增加破解难度,处理器产生随机数发送给单片机,生成秘钥的数据包括该随机数,即便有人拷贝了单片机和处理器的程序,即便破解者通过仪器知道了处理器和单片机之间的交互数据,也难以解密,进一步增加了芯片系统的安全性。
附图说明
图1为本发明提供的一种基于单片机的芯片系统的加密方法的流程图;
图2为本发明提供的一种基于单片机的芯片系统的加密方法的一个实施例的流程图;
图3为本发明提供的一种基于单片机的芯片系统的加密方法的另一个实施例的流程图;
图4为本发明提供的一种基于单片机的加密芯片系统的实施例的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示为本发明提供的一种基于单片机的芯片系统的加密方法的流程图,其中芯片系统为包含单片机和/或CPU等处理器芯片的系统,本发明提供的实施例中,该芯片系统包含处理器,该单片机包含标识ID,可以采用例如stm32系列单片机,stm32系列单片机有些系列具有出厂唯一且不可修改的标识ID,由图1可知,该方法包括:
步骤1,根据标识ID按照设定算法生成秘钥的第一数据,将该第一数据写入单片机。
步骤2,处理器初始化时内部按照标识ID和该设定算法生成秘钥的第二数据。
步骤3,第一数据和第二数据匹配时判定芯片系统验证通过,否则退出运行程序。
具体实施过程中,步骤1可以通过电脑将该第一数据写入单片机flash指定位置,步骤3中第二数据会在指定位置取这个数据进行比对。本发明提供的一种基于单片机的芯片系统的加密方法,利用包含出厂唯一且不可修改的标识ID的单片机,根据该单片机的标识ID生成秘钥,在芯片系统初始化时,先进行秘钥匹配性判断,匹配时判定芯片系统验证通过,则程序向下执行,否则程序直接退出,如果复制芯片系统内的程序,由于指定位置已经写好了由标识ID得到的第一数据,标识ID不同,而且复制者不知道第一数据的算法,所以无法更改这个数据,秘钥肯定不能匹配,芯片系统验证不通过则程序不能继续运行,可以防止芯片系统被复制仿造,并且不需要在外围电路加上加密芯片。
实施例1
本发明提供的实施例1为本发明提供的一种基于单片机的芯片系统的加密方法的一个实施例,该实施例中,芯片系统包含的处理器为单片机,该单片机包含标识ID,如图2所示为本发明提供的一种基于单片机的芯片系统的加密方法的一个实施例的流程图。
由图2可知,该方法包括:
步骤1,根据标识ID按照设定算法生成秘钥的第一数据,将该第一数据写入单片机。
该设定算法可以采用MD5或者用户自己定义算法,这个算法得保证不可逆性和散列性,即根据算法计算得出结果反推不出源数据,生成芯片系统唯一秘钥。芯片系统对处理器的精度要求不是很高时,可以采用单片机作为处理器,将该第一数据预先写入单片机中。
步骤2,处理器初始化时内部按照标识ID和该设定算法生成秘钥的第二数据。
单片机初始化时使用相同的设定算法生成秘钥的第二数据。
步骤3,第一数据和第二数据匹配时判定芯片系统验证通过,否则退出运行程序。
本发明提供的一种基于单片机的芯片系统的加密方法的一个实施例中,芯片系统的处理器采用包含标识ID的单片机,单片机内部通过匹配秘钥进行加密,即便有人拷贝了单片机的程序,由于单片机的ID的唯一性,必然会出现二者数据不一致,认证失败可以防止芯片系统被复制仿造,并且不需要在外围电路加上加密芯片。
实施例2
本发明提供的实施例2为本发明提供的一种基于单片机的芯片系统的加密方法的另一个实施例,芯片系统需要更高精度的处理器时,该处理器可以为CPU,芯片系统包括CPU和单片机,该单片机包含标识ID,该CPU和单片机通过uart口相互连接,通过通讯协议进行数据交互。如图3所示为本发明提供的一种基于单片机的芯片系统的加密方法的另一个实施例的流程图。
由图3可知,该方法包括:
步骤1,根据标识ID按照第一设定算法生成secret码,将该secret码写入单片机。
进一步的,可以根据标识ID和常量按照第一设定算法生成secret码,该第一数据由secret码生成,加入常量可以增加破解难度。该第一设定算法可以采用MD5或自己定义算法,这个算法得保证不可逆性和散列性,即根据算法计算得出结果反推不出源数据。
步骤2,处理器初始化时内部按照标识ID和该设定算法生成秘钥的第二数据。
该处理器为CPU,CPU根据标识ID和常量按照第一设定算法生成secret码,该第二数据由secret码生成。
进一步的,每次认证时CPU会产生随机数并发送给单片机,生成该第一数据和第二数据的数据包括该随机数。由于随机数的存在,即便破解者通过仪器知道了CPU和单片机之间的交互数据,也难以解密。
具体的,步骤3中第一数据和第二数据进行匹配之前包括:
步骤201,CPU发送随机数给单片机。
步骤202,单片机将标识ID和常量发送给CPU,CPU根据第一设定算法计算得到secret码。
步骤203,单片机内部根据标识ID、常量、随机数和secret码按照第二设定算法生成第一数据发送给CPU,CPU内部根据标识ID、常量、随机数和secret码按照第二设定算法生成第二数据。
单片机内部的常量和secret码在出厂时已经写入相应的数据,随机数在每一次认证的时候写入。对于单片机芯片来说,标识ID,常量和secret码是常量,随机数是变量,该第二设定算法为MD5或自定义算法。
步骤3,第一数据和第二数据匹配时判定芯片系统验证通过,否则退出运行程序。
本发明提供的一种基于单片机的芯片系统的加密方法的另一个实施例中,在芯片系统需要更高精度的处理器时,增加与处理器通信的包含标识ID的单片机,根据该标识ID生成秘钥,处理器和单片机之间交互通过匹配秘钥进行加密,即便有人拷贝了单片机和处理器的程序,由于单片机的ID的唯一性,必然会出现二者数据不一致,认证失败,secret码加入常量增加破解难度,处理器产生随机数发送给单片机,生成秘钥的数据包括该随机数,即便有人拷贝了单片机和处理器的程序,即便破解者通过仪器知道了处理器和单片机之间的交互数据,也难以解密,进一步增加了芯片系统的安全性。
实施例3
本发明提供的实施例3为本发明提供的一种基于单片机的加密芯片系统的实施例,如图4所示为本发明提供的一种基于单片机的加密芯片系统的实施例的结构框图,由图4可知,该系统包括:通过UART口通信连接的CPU和单片机,单片机包括标识ID。
单片机接收写入的由标识ID生成的secret码,将标识ID发送给CPU后,根据secret码生成第一数据发送给CPU。
具体的,该secret码由标识ID和常量按照第一设定算法生成,增加破解难度。
CPU根据标识ID生成secret码,根据secret码生成第二数据,判断第一数据和第二数据匹配时判定加密芯片系统验证通过。
进一步的,CPU还产生随机数发送给单片机,生成第一数据和第二数据的数据包括该随机数。由于随机数的存在,即便破解者通过仪器知道了CPU和单片机之间的交互数据,也难以解密。
单片机还将常量发送给CPU,第一数据和第二数据由标识ID、常量、secret码和随机数按照第二设定算法生成。
该第一设定算法和第二设定算法可以为MD5或者用户自己定义算法。
本发明提供的一种基于单片机的加密芯片系统,在芯片系统需要更高精度的处理器时,增加与处理器通信的包含标识ID的单片机,根据该标识ID生成秘钥,处理器和单片机之间交互通过匹配秘钥进行加密,即便有人拷贝了单片机和处理器的程序,由于单片机的ID的唯一性,必然会出现二者数据不一致,认证失败,secret码加入常量增加破解难度,处理器产生随机数发送给单片机,生成秘钥的数据包括该随机数,即便有人拷贝了单片机和处理器的程序,即便破解者通过仪器知道了处理器和单片机之间的交互数据,也难以解密,进一步增加了芯片系统的安全性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于单片机的芯片系统的加密方法,其特征在于,所述芯片系统包含处理器,所述单片机包含标识ID,所述加密方法包括:
步骤1,根据所述标识ID按照设定算法生成秘钥的第一数据,将所述第一数据写入所述单片机;
步骤2,处理器初始化时内部按照所述标识ID和所述设定算法生成秘钥的第二数据;
步骤3,所述第一数据和所述第二数据匹配时判定所述芯片系统验证通过,否则退出运行程序;
所述处理器为CPU,所述芯片系统包括所述CPU和所述单片机;
所述步骤1中根据所述标识ID和常量按照第一设定算法生成secret码;所述步骤2中所述CPU根据所述标识ID和所述常量按照所述第一设定算法生成secret码,所述第一数据和所述第二数据由所述secret码生成;
所述第一数据和第二数据进行匹配之前包括:
步骤201,所述CPU发送随机数给单片机;
步骤202,所述单片机将所述标识ID和所述常量发送给所述CPU,所述CPU根据所述第一设定算法计算得到所述secret码;
步骤203,所述单片机内部根据所述标识ID、所述常量、所述随机数和所述secret码按照第二设定算法生成所述第一数据发送给所述CPU,所述CPU内部根据所述标识ID、所述常量、所述随机数和所述secret码按照所述第二设定算法生成所述第二数据。
2.根据权利要求1所述的方法,其特征在于,认证时所述CPU产生随机数并发送给所述单片机,生成所述第一数据和第二数据的数据包括所述随机数。
3.一种基于单片机的加密芯片系统,其特征在于,所述加密芯片系统包括通过UART口通信连接的CPU和单片机;所述单片机包括标识ID;
所述单片机接收写入的由所述标识ID生成的secret码,将所述标识ID发送给所述CPU后,根据所述secret码生成第一数据发送给所述CPU;
所述CPU根据所述标识ID生成所述secret码,根据所述secret码生成第二数据;判断所述第一数据和所述第二数据匹配时判定所述加密芯片系统验证通过;
所述单片机还将常量发送给所述CPU;
所述第一数据和所述第二数据由所述标识ID、常量、所述secret码和随机数按照第二设定算法生成。
4.根据权利要求3所述的加密芯片系统,其特征在于,所述secret码由所述标识ID和常量按照第一设定算法生成。
5.根据权利要求3所述的加密芯片系统,其特征在于,所述CPU产生随机数发送给所述单片机;生成所述第一数据和所述第二数据的数据包括所述随机数。
CN201911078078.4A 2019-11-06 2019-11-06 一种基于单片机的芯片系统的加密方法及加密芯片系统 Active CN111159722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911078078.4A CN111159722B (zh) 2019-11-06 2019-11-06 一种基于单片机的芯片系统的加密方法及加密芯片系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911078078.4A CN111159722B (zh) 2019-11-06 2019-11-06 一种基于单片机的芯片系统的加密方法及加密芯片系统

Publications (2)

Publication Number Publication Date
CN111159722A CN111159722A (zh) 2020-05-15
CN111159722B true CN111159722B (zh) 2023-05-16

Family

ID=70556365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911078078.4A Active CN111159722B (zh) 2019-11-06 2019-11-06 一种基于单片机的芯片系统的加密方法及加密芯片系统

Country Status (1)

Country Link
CN (1) CN111159722B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117290874B (zh) * 2023-11-14 2024-05-10 广东汉为信息技术有限公司 电路板程序防破解方法、存储介质和电路板

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0962850A2 (en) * 1998-06-01 1999-12-08 Nokia Mobile Phones Ltd. A method for protecting embedded system software and embedded system
CN1677383A (zh) * 2005-01-21 2005-10-05 深圳市致芯微电子有限公司 加密芯片、利用该加密芯片的cpu程序加密方法和系统
CN101635019A (zh) * 2009-08-25 2010-01-27 中国华录集团有限公司 基于安全mcu的嵌入式软件程序的加密系统
CN102915411A (zh) * 2011-08-02 2013-02-06 张景彬 嵌入式系统软硬件反复制加密锁
CN103366103A (zh) * 2013-06-13 2013-10-23 广东岭南通股份有限公司 读卡器的应用程序加密保护方法
CN107967413A (zh) * 2017-11-28 2018-04-27 深圳进化动力数码科技有限公司 软件加密方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0962850A2 (en) * 1998-06-01 1999-12-08 Nokia Mobile Phones Ltd. A method for protecting embedded system software and embedded system
CN1677383A (zh) * 2005-01-21 2005-10-05 深圳市致芯微电子有限公司 加密芯片、利用该加密芯片的cpu程序加密方法和系统
CN101635019A (zh) * 2009-08-25 2010-01-27 中国华录集团有限公司 基于安全mcu的嵌入式软件程序的加密系统
CN102915411A (zh) * 2011-08-02 2013-02-06 张景彬 嵌入式系统软硬件反复制加密锁
CN103366103A (zh) * 2013-06-13 2013-10-23 广东岭南通股份有限公司 读卡器的应用程序加密保护方法
CN107967413A (zh) * 2017-11-28 2018-04-27 深圳进化动力数码科技有限公司 软件加密方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨海良.STM32 微控制器程序保护方法.《电子设计工程》.2016,第24卷(第24期),第189页. *

Also Published As

Publication number Publication date
CN111159722A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
US10616197B2 (en) Message authentication with secure code verification
US8898477B2 (en) System and method for secure firmware update of a secure token having a flash memory controller and a smart card
JP5703391B2 (ja) 耐タンパー性ブート処理のためのシステム及び方法
US8261072B2 (en) Method and system for secure external TPM password generation and use
TW201732669A (zh) 受控的安全碼鑑認
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
US20110176682A1 (en) Integrity protected smart card transaction
CN110096849A (zh) 一种License授权认证方法、装置、设备及可读存储介质
US8522351B2 (en) Production security control apparatus for software products and control method thereof
CN111159722B (zh) 一种基于单片机的芯片系统的加密方法及加密芯片系统
JP2008287488A (ja) データ分散保存装置
CN111143784A (zh) 一种版权保护的实现方法和版权保护存储装置
KR20030033863A (ko) Usb 모듈방식의 능동형 사용자 인증카드를 이용한다단계 사용자 인증방법 및 시스템
US11455379B2 (en) Control system and method thereof for secure manufacturing
WO1988005941A1 (en) Apparatus and method for regulating the use of proprietary computer software
CN117708794A (zh) 设备授权方法和设备授权装置
CN110740036A (zh) 基于云计算的防攻击数据保密方法
CN112948771A (zh) 权限校验方法、装置、可读存储介质及电子设备
JP7535071B2 (ja) 安全製造に適用される制御システム及び制御方法
CN112861137A (zh) 安全固件
JP2006527446A (ja) 取引を実行し、ディジタル・データへの正当なアクセスまたはその使用を検証するための方法およびシステム
CN110414192B (zh) 应用于安全制造的控管系统及其方法
WO2013114649A1 (ja) 生体認証システム、生体認証装置、および、生体認証方法
TWI718525B (zh) 應用於安全製造的控管系統及其方法
CN113946841A (zh) 软件安全保护的方法、衣物处理设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant