CN117290874B - 电路板程序防破解方法、存储介质和电路板 - Google Patents
电路板程序防破解方法、存储介质和电路板 Download PDFInfo
- Publication number
- CN117290874B CN117290874B CN202311514237.7A CN202311514237A CN117290874B CN 117290874 B CN117290874 B CN 117290874B CN 202311514237 A CN202311514237 A CN 202311514237A CN 117290874 B CN117290874 B CN 117290874B
- Authority
- CN
- China
- Prior art keywords
- encryption
- chip
- identification code
- processor
- unique identification
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000002265 prevention Effects 0.000 title claims abstract description 9
- 238000012795 verification Methods 0.000 claims abstract description 31
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims abstract description 19
- 238000005336 cracking Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 101100244969 Arabidopsis thaliana PRL1 gene Proteins 0.000 description 7
- 102100039558 Galectin-3 Human genes 0.000 description 7
- 101100454448 Homo sapiens LGALS3 gene Proteins 0.000 description 7
- 101150051246 MAC2 gene Proteins 0.000 description 7
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 5
- 101150115300 MAC1 gene Proteins 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种电路板程序防破解方法、存储介质和电路板。该方法由电路板处理器执行,包括如下步骤:P.预先获取加密芯片的通用唯一识别码并进行存储,之后在需运行加密芯片中的核心程序时,执行如下验证步骤:A.一方面,A1.采用加密算法对所存储的通用唯一识别码进行加密计算得出处理器加密结果;另一方面,A2.通知加密芯片以让其采用所述加密算法对其自身的通用唯一识别码进行加密计算得出加密芯片加密结果;B.拿处理器加密结果与加密芯片加密结果进行比对,若两者一致则正常运行加密芯片的核心程序,否则不运行核心程序。该方法能够防止他人批量仿制电路板。
Description
技术领域
本发明涉及电路板技术领域,尤其涉及一种电路板程序防破解方法、存储介质和电路板。
背景技术
PCB电路板的功能亮点多数依赖于核心程序,为了避免抄袭者破解原装电路板上的核心程序并剽窃复制到仿制板上运行,PCB电路板厂家通常会对核心程序进行加密。业内通常采用专门的加密芯片来存储全部核心程序代码或者存储核心程序中的关键代码, PCB电路板的MCU如果要运行加密芯片中的核心程序,就如图1所示,首先用随机数发生器生成一个随机数,一方面把该随机数发送给加密芯片,另一方面,采用SHA-256算法对本次所生成的随机数以及预先存储的用户ID和安全密钥计算得出MAC1,把所得出的MAC1发送给加密芯片;加密芯片接收到MCU发送的随机数之后,就采用SHA-256算法对所接收到的随机数以及预先存储的用户ID和安全密钥计算得出MAC2,然后把所计算的MAC2发送给MCU;MCU接收到加密芯片的MAC2后与自身计算得出的MAC1进行比对,若两者一致MCU则继续运行,否则MCU异常结束运行;加密芯片接受到MCU的MAC1之后,也将其与本加密芯片所计算得出的MAC2进行比对,若两者一致则允许MCU运行加密芯片中的核心程序,否则不允许MCU运行加密芯片中的核心程序。这种方式由于系MCU和加密芯片进行双向验证,双向验证通过之后MCU才被允许运行加密芯片中的核心程序,这样可以很大程度上防止他人破解核心程序。尽管如此,加密芯片依然有被破解的风险,由于上述MAC计算验证流程中的用户id和安全密钥分别存储在MCU的程序中和加密芯片的工作固件中,如果加密芯片中的核心程序以及用于实现上述MAC计算验证流程的工作固件被破解,他人把MCU上的程序以及加密芯片的工作固件和核心程序批量复制到多个仿制板上,每个仿制板都能够成功通过上述MAC计算验证流程的验证,即每个仿制板上都能够运行该核心程序,实现批量仿制电路板。
发明内容
本发明所要解决的技术问题是提供一种电路板程序防破解方法、存储有被执行时实现该方法的计算机程序的计算机可读存储介质以及可实现该方法的电路板,该方法能够防止他人批量仿制电路板。
本发明提供了一种电路板程序防破解方法,由电路板处理器执行,包括如下步骤:
P.预先获取加密芯片的通用唯一识别码并进行存储,之后在需运行加密芯片中的核心程序时,执行如下验证步骤:
A.一方面,A1.采用加密算法对所存储的通用唯一识别码进行加密计算得出处理器加密结果;另一方面,A2.通知加密芯片以让其采用所述加密算法对其自身的通用唯一识别码进行加密计算得出加密芯片加密结果;
B.拿处理器加密结果与加密芯片加密结果进行比对,若两者一致则正常运行加密芯片的核心程序,否则不运行核心程序。
进一步地:
步骤P中,请求获取随机数后才执行所述验证步骤;
A1具体系采用加密算法对所存储的通用唯一识别码和所获取的随机数进行加密计算得出处理器加密结果;
A2具体系让加密芯片采用加密算法对其自身的通用唯一识别码和所述随机数进行加密计算得出加密芯片加密结果。
进一步地:步骤P中具体向加密芯片获取其通用唯一识别码,然后把该通用唯一识别码存储到闪存芯片中。
进一步地:步骤P中具体把加密芯片的通用唯一识别码进行加密后存储到闪存芯片中。
进一步地:步骤P中,还在闪存芯片中设置识别码绑定标志,存储好加密芯片的通用唯一识别码后把上述标志标记为已绑定,之后在需启动加密芯片的核心程序时,先判断闪存芯片的识别码绑定标志是否为已绑定,若是则执行所述验证步骤,否则不运行核心程序。
进一步地:具体是向加密芯片获取所述随机数。
本发明还提供一种电路板程序防破解方法,由电路板加密芯片执行,若接收电路板处理器发送的验证通知,则对自身的通用唯一识别码,采用所述加密算法进行加密计算得出加密芯片加密结果,并把该加密结果发送给电路板处理器。
进一步地:还生成随机数,具体是采用加密算法对自身的通用唯一识别码和所生成的随机数进行加密计算得出加密芯片加密结果。
本发明还提供一种计算机可读存储介质,其上存储有可执行的计算机程序,该计算机程序被处理器执行时实现如上所述的电路板程序防破解方法。
本发明还提供一种电路板,包括处理器、加密芯片和计算机可读存储介质;
处理器执行该计算机可读存储介质中的计算机程序可执行如下步骤:预先获取加密芯片的通用唯一识别码并进行存储,之后在需运行加密芯片的核心程序时,一方面,A1.采用加密算法对所存储的通用唯一识别码进行加密计算得出处理器加密结果;另一方面,A2.通知加密芯片以让其采用所述加密算法对其自身的通用唯一识别码进行加密计算得出加密芯片加密结果;
加密芯片接收到处理器的通知后,采用所述加密算法对自身的通用唯一识别码进行加密计算得出加密芯片加密结果,并把该加密结果发送给处理器;
处理器接收到加密芯片加密结果后,对处理器加密结果与加密芯片加密结果进行比对,若两者一致则正常运行加密芯片的核心程序,否则不运行核心程序。
由于每一款加密芯片都有其通用唯一识别码,不同的加密芯片按照同一工作固件,即按照自身的通用唯一识别码进行加密计算得到的加密芯片加密结果,所计算得出的加密芯片加密结果是不同的,上述电路板程序防破解方法采用加密芯片的通用唯一识别码来进行验证,即使有人把电路板处理器的程序以及加密芯片上的核心程序和工作固件分别对应复制到仿制板的处理器和加密芯片上,执行验证过程,也不能通过验证,也就无法正常运行核心程序,原因是:上述验证过程具体地,仿制板处理器执行处理器程序,该处理器程序根据原电路板上的加密芯片的通用唯一识别码计算得出处理器加密结果,仿制板加密芯片执行工作固件,按照仿制板加密芯片自身的通用唯一识别码进行加密计算得到的加密芯片加密结果,由于所采用加密芯片的通用唯一识别码不同,处理器和加密芯片各自所计算得到的加密结果自然就不同,比对不一致,仿制板处理器就会异常结束运行。只有把原电路板上的加密芯片拆卸下来安装到仿制板上才能够通过验证正常运行核心程序,而原电路板只有一个加密芯片,只能实现一个仿制板正常运行核心程序,无法实现批量仿制板正常运行核心程序,如此一来就能够有效防止他人批量仿制电路板。
附图说明
图1是现有技术中采用了加密芯片的PCB电路板的加密验证流程示意图。
图2是本发明提供的电路板程序防破解方法中的识别码绑定流程示意图。
图3是本发明提供的电路板程序防破解方法中的加密验证流程示意图。
具体实施方式
以下结合具体实施方式对本发明创造作进一步详细说明。
本实施例给出的PCB电路板,包括处理器、加密芯片和计算机可读存储介质。本实施例采用MCU作为PCB电路板的处理器,该计算机可读存储介质中存储有可执行的计算机程序,MCU执行该计算机程序可实现电路板程序防破解方法。下文通过实例来说明该方法的执行过程。
PCB电路板的MCU首先执行如图2所示的识别码绑定流程,具体地,MCU在系统启动后,向加密芯片发送uuid获取指令(uuid即通用唯一识别码)。加密芯片接收uuid获取指令后,向MCU发送本加密芯片的uuid。MCU接收加密芯片的uuid,然后采用3des加密算法对该uuid与特定字串进行加密计算,得到加密字串,然后将该加密字串存储到flash芯片(闪存芯片)中,然后在flash芯片中设置识别码绑定标志,把该标志标记为1,表示识别码已绑定。本实施例对加密芯片的uuid进行加密后将其存储在flash芯片上,而不是存储在MCU上,加强了uuid存储的安全性,增加他人的仿制难度。完成了识别码绑定之后,MCU每次要启动加密芯片中的核心程序时就能够通过如图3所示的加密验证流程来进行加密验证,验证通过后即可正常运行核心程序,否则异常结束,不运行核心程序,从而防止他人抄袭仿制。加密验证流程如下:
PCB电路板上电开机,系统启动,准备运行核心程序,此时,MCU首先判断flash芯片中的识别码绑定标志是否为1,如果识别码绑定标志不为1,就系统异常结束,即异常结束运行核心程序,同时提示异常结束原因为识别码未绑定。flash芯片的识别码绑定标志验证作为第一层防破解验证。本实施例在生产电路板时就对MCU进行识别码绑定并把识别码绑定标志设置在flash芯片上,在电路板实际使用过程中没有涉及识别码绑定程序,而他人在仿制电路板时,通常只会破解电路板实际使用过程中所涉及的程序,因此他人难以发现flash芯片上的识别码绑定标志,通常只能把MCU上的程序复制到仿制板上而不会对flash芯片进行识别码绑定标志设置,仿制板MCU运行程序时就读取不到flash芯片中的识别码绑定标志,因此,就无法通过识别码绑定标志验证,MCU就会异常结束运行程序。
MCU如果判断出flash芯片的识别码绑定标志为1,就从flash芯片获取加密字串,采用3des加密算法对其进行解密计算,得到加密芯片的uuid,然后向加密芯片获取随机数。加密芯片接收到随机数获取指令后,生成一个随机数,把该随机数发送给MCU。MCU接收随机数后,一方面,采用3des加密算法对加密芯片的uuid和随机数,进行加密计算,得到MCU加密结果(即处理器加密结果),另一方面,向加密芯片发送验证指令以通知加密芯片进行加密计算。加密芯片接收验证指令(即验证通知)后,就采用3des加密算法对本加密芯片的uuid和随机数进行加密计算,得到加密芯片加密结果,然后把该加密芯片加密结果发送给MCU。MCU接收到加密芯片加密结果后,就拿MCU加密结果与加密芯片加密结果进行比对,若两者一致则正常运行加密芯片的核心程序,否则异常结束,不运行核心程序。
由于每一款加密芯片都有其通用唯一识别码,不同的加密芯片按照同一工作固件,即按照自身的通用唯一识别码进行加密计算得到的加密芯片加密结果,所计算得出的加密芯片加密结果是不同的,本实施例采用加密芯片的通用唯一识别码来进行验证,即使有人把电路板处理器的程序以及加密芯片上的核心程序和工作固件分别对应复制到仿制板的处理器和加密芯片上,执行验证过程,也不能通过验证,也就无法正常运行核心程序,原因是:上述验证过程具体地,仿制板处理器执行处理器程序,该处理器程序根据原电路板上的加密芯片的通用唯一识别码计算得出处理器加密结果,仿制板加密芯片执行其工作固件,按照仿制板加密芯片自身的通用唯一识别码进行加密计算得到的加密芯片加密结果,由于所采用加密芯片的通用唯一识别码不同,处理器和加密芯片各自所计算得到的加密结果自然就不同,比对不一致,仿制板处理器就会异常结束运行。只有把原电路板上的加密芯片拆卸下来安装到仿制板上才能够通过验证正常运行核心程序,而原电路板只有一个加密芯片,只能实现一个仿制板正常运行核心程序,无法实现批量仿制板正常运行核心程序,如此一来就能够有效防止他人批量仿制电路板。
本实施例是对加密芯片的uuid和随机数一起进行加密计算得到加密结果,可以有效防止他人通过示波器等相关仪器监听MCU与加密芯片之间的数据传输来破解得到作为密钥的加密芯片uuid。非优选地,其他实施例可以改为只对加密芯片的uuid进行加密计算得到加密结果。本实施例是采用3des加密算法进行加解密计算,其他实施例可以改为其他加密算法例如MD5值加密算法、哈希值加密算法等等。
如上所述仅为本发明创造的实施方式,不以此限定专利保护范围。本领域技术人员在本发明创造的基础上作出非实质性的变化或替换,仍落入专利保护范围。
Claims (6)
1.一种电路板程序防破解方法,由电路板处理器执行,其特征是包括如下步骤:
P.预先获取加密芯片的通用唯一识别码并进行存储,之后在需运行加密芯片中的核心程序时,执行如下验证步骤:
A.一方面,A1.采用加密算法对所存储的通用唯一识别码进行加密计算得出处理器加密结果;另一方面,A2.通知加密芯片以让其采用所述加密算法对其自身的通用唯一识别码进行加密计算得出加密芯片加密结果;
B.拿处理器加密结果与加密芯片加密结果进行比对,若两者一致则正常运行加密芯片的核心程序,否则不运行核心程序;
步骤P中具体向加密芯片获取其通用唯一识别码,然后把该通用唯一识别码存储到闪存芯片中;还在闪存芯片中设置识别码绑定标志,存储好加密芯片的通用唯一识别码后把上述标志标记为已绑定,之后在需启动加密芯片的核心程序时,先判断闪存芯片的识别码绑定标志是否为已绑定,若是则执行所述验证步骤,否则不运行核心程序。
2.如权利要求1所述的电路板程序防破解方法,其特征是:
步骤P中,请求获取随机数后才执行所述验证步骤;
A1具体系采用加密算法对所存储的通用唯一识别码和所获取的随机数进行加密计算得出处理器加密结果;
A2具体系让加密芯片采用加密算法对其自身的通用唯一识别码和所述随机数进行加密计算得出加密芯片加密结果。
3.如权利要求1所述的电路板程序防破解方法,其特征是:步骤P中具体把加密芯片的通用唯一识别码进行加密后存储到闪存芯片中。
4.如权利要求2所述的电路板程序防破解方法,其特征是:具体是向加密芯片获取所述随机数。
5.一种计算机可读存储介质,其上存储有可执行的计算机程序,其特征是,该计算机程序被处理器执行时实现如权利要求1至4当中任一项所述的电路板程序防破解方法。
6.一种电路板,包括处理器、加密芯片和计算机可读存储介质,其特征是:
处理器执行该计算机可读存储介质中的计算机程序执行如下步骤:预先获取加密芯片的通用唯一识别码并进行存储到闪存芯片中;还在闪存芯片中设置识别码绑定标志,存储好加密芯片的通用唯一识别码后把上述标志标记为已绑定,之后在需运行加密芯片的核心程序时,先判断闪存芯片的识别码绑定标志是否为已绑定,若否则不运行核心程序,若是则:一方面,A1. 采用加密算法对所存储的通用唯一识别码进行加密计算得出处理器加密结果;另一方面,A2.通知加密芯片以让其采用所述加密算法对其自身的通用唯一识别码进行加密计算得出加密芯片加密结果;
加密芯片接收到处理器的通知后,采用所述加密算法对自身的通用唯一识别码进行加密计算得出加密芯片加密结果,并把该加密结果发送给处理器;
处理器接收到加密芯片加密结果后,对处理器加密结果与加密芯片加密结果进行比对,若两者一致则正常运行加密芯片的核心程序,否则不运行核心程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311514237.7A CN117290874B (zh) | 2023-11-14 | 2023-11-14 | 电路板程序防破解方法、存储介质和电路板 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311514237.7A CN117290874B (zh) | 2023-11-14 | 2023-11-14 | 电路板程序防破解方法、存储介质和电路板 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117290874A CN117290874A (zh) | 2023-12-26 |
CN117290874B true CN117290874B (zh) | 2024-05-10 |
Family
ID=89253744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311514237.7A Active CN117290874B (zh) | 2023-11-14 | 2023-11-14 | 电路板程序防破解方法、存储介质和电路板 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117290874B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441692A (zh) * | 2008-11-21 | 2009-05-27 | 北京市研祥兴业国际智能科技有限公司 | 实现计算机硬件和软件绑定的方法 |
CN110929271A (zh) * | 2019-10-31 | 2020-03-27 | 苏州浪潮智能科技有限公司 | 一种芯片防篡改方法、系统、终端及存储介质 |
CN111159722A (zh) * | 2019-11-06 | 2020-05-15 | 武汉迈威通信股份有限公司 | 一种基于单片机的芯片系统的加密方法及加密芯片系统 |
CN115357948A (zh) * | 2022-08-30 | 2022-11-18 | 深圳启芯信息科技有限公司 | 一种基于tee及加密芯片的硬件防抄板加密方法及其装置 |
-
2023
- 2023-11-14 CN CN202311514237.7A patent/CN117290874B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441692A (zh) * | 2008-11-21 | 2009-05-27 | 北京市研祥兴业国际智能科技有限公司 | 实现计算机硬件和软件绑定的方法 |
CN110929271A (zh) * | 2019-10-31 | 2020-03-27 | 苏州浪潮智能科技有限公司 | 一种芯片防篡改方法、系统、终端及存储介质 |
CN111159722A (zh) * | 2019-11-06 | 2020-05-15 | 武汉迈威通信股份有限公司 | 一种基于单片机的芯片系统的加密方法及加密芯片系统 |
CN115357948A (zh) * | 2022-08-30 | 2022-11-18 | 深圳启芯信息科技有限公司 | 一种基于tee及加密芯片的硬件防抄板加密方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117290874A (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102426640B (zh) | 用于产品验证和激活的安全软件产品标识符 | |
JP2011165175A (ja) | ソフトウェアのダウンロード方法 | |
JP2007293873A (ja) | 電子装置の安全性を保証する方法、セキュリティシステム及び電子装置 | |
US7681037B2 (en) | Network connection system | |
EP3612968B1 (en) | Method and apparatus to quickly authenticate program using a security element | |
US20020129265A1 (en) | Method and apparatus for managing software use | |
JP2007257197A (ja) | 起動検証機能を有する情報処理装置 | |
CN108875382B (zh) | 一种智能pos终端永久性防切机的保护方法 | |
WO2012130167A1 (zh) | 一种移动终端加密的方法、硬件加密器件及移动终端 | |
JP2016152623A (ja) | 操作から保護する方法 | |
JP2012191270A (ja) | 認証システム、端末装置、認証サーバ、およびプログラム | |
CN112417422B (zh) | 安全芯片升级方法及计算机可读存储介质 | |
CN111147259B (zh) | 鉴权方法和设备 | |
JP2007335962A (ja) | センサノードのデータ保護方法、センサノードを配布するための計算機システム及びセンサノード | |
CN117290874B (zh) | 电路板程序防破解方法、存储介质和电路板 | |
CN111159717A (zh) | 一种用于电子设备的启动方法及装置 | |
CN112699343A (zh) | 一种软件完整性保护、校验的方法及装置 | |
CN107133499B (zh) | 一种软件版权保护方法、客户端、服务端以及系统 | |
CN113946841A (zh) | 软件安全保护的方法、衣物处理设备及可读存储介质 | |
WO2007074992A1 (en) | Method for detecting malicious code changes from hacking of program loaded and executed on memory through network | |
JP2004282391A (ja) | 認証機能を有する情報処理装置及び認証機能付与方法 | |
CN109684791A (zh) | 一种软件保护方法及装置 | |
CN111506897B (zh) | 数据处理方法和装置 | |
CN112487470B (zh) | 信息校验方法、装置、终端设备和计算机可读存储介质 | |
CN114297597A (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 |