CN113239370A - 一种基于soc硬件标识码的嵌入式软件加密设计方法 - Google Patents
一种基于soc硬件标识码的嵌入式软件加密设计方法 Download PDFInfo
- Publication number
- CN113239370A CN113239370A CN202110472161.0A CN202110472161A CN113239370A CN 113239370 A CN113239370 A CN 113239370A CN 202110472161 A CN202110472161 A CN 202110472161A CN 113239370 A CN113239370 A CN 113239370A
- Authority
- CN
- China
- Prior art keywords
- fpga
- arm
- file
- specific format
- secret key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000013461 design Methods 0.000 title claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于SOC(片上系统)硬件标识码的嵌入式软件加密设计方法,包括:上位机通过网口或者串口与ARM通信,上位机通过加密工具将正确的密钥进行处理,生成一种特定格式的文件后,将所述特定格式的文件上传到ARM里面,ARM提前做好解密算法,只对所述特定格式的文件进行校验与解密,得到所述特定格式文件进行解密后的密钥,ARM对FPGA(现场可编程逻辑门阵列)产生的密钥与所述特定格式文件进行解密后的密钥进行对比,如果对比正确,则ARM给FPGA一个正确的反馈信号,从而对数据进行正确输出,否则,ARM给FPGA一个错误的反馈信号,从而使数据无法正确输出。
Description
技术领域
本发明涉及一种基于SOC硬件标识码的嵌入式软件加密设计方法。
背景技术
随着通信系统不断发展,数据存储量在嵌入式系统中大幅增加,大量敏感信息存储在嵌入式系统,如何确保这些敏感信息不被他人窃取成了当前一个重要问题。
当前,很多在嵌入式平台上实现的功能都未进行加密设计或者仅仅在实现功能的文件里面加入简单的加密算法,其他人很容易通过反向手段获取该功能文件用于其他嵌入式平台上,造成个人知识产权损失,严重的可能导致重大的泄密事故,因此仅仅通过简单软件加密或者不加密的方式无法满足现代嵌入式平台设计需求。
现场可编程逻辑门阵列(FPGA)与ARM结合在一起,可以组成一个片上系统(SOC),SOC作为新一代的嵌入式平台被大量广泛的使用;SOC中的FPGA可以根据用户需求进行反复编程,而且具有高速并行处理能力,与ARM(ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine)结合在一起,实现对运行在该平台的数据(实现某种功能、算法)进行加解密,从而保护个人的隐私或知识产权。
发明内容
发明目的:针对现有技术的不足,本发明提供了一种基于片上系统SOC硬件标识码的嵌入式软件加密设计方法,其具有FPGA+ARM的结构,能够实现对运行在该平台的数据进行高速处理并实现加解密。所述方法包括一片现场可编程逻辑门阵列FPGA和两个ARM以及外围硬件电路;
所述FPGA对自身携带的硬件标识码Device DNA(设备身份标识)以及由ARM读取外围电路中FLASH硬件标识码这两种硬件标识码进行自定义加密算法处理得到一串密钥,从而对运行在该嵌入式平台数据进行加密处理;上位机通过网口或者串口与ARM通信,上位机将事先准备好的正确的密钥进行处理,生成一种特定格式(例如XX.enc)的文件后,将所述特定格式的文件上传到ARM里面,两个ARM相互协同工作,提前做好解密算法(该算法为前续自定义加密算法的逆向算法),只对所述特定格式的文件进行校验与解密,得到所述特定格式文件进行解密后的密钥,ARM对FPGA产生的密钥与所述特定格式文件进行解密后的密钥进行对比,如果对比正确,则ARM给FPGA一个正确的反馈信号,从而对数据进行正确输出,否则,ARM给FPGA一个错误的反馈信号,从而使数据无法正确输出。
进一步地,所述FPGA自带一个Device DNA,Device DNA由57位二进制编码组成,FPGA根据Device DNA进行加密算法得到一串密钥。
进一步地,所述FPGA自带一个Device DNA,Device DNA由57位二进制编码组成,由于同一生产的批次中,超过32片FPGA后,Device DNA就会出现重复,FPGA根据Device DNA与其他硬件标识码(例如FLASH的硬件标识码)进行组合加密算法得到一种密钥,使密钥具有唯一性。
有益效果:本发明对数据进行加解密,确保形成一个安全的运行环境,确保个人的隐私安全或者保护个人知识产权不被盗用;另外不需要单独的保密模块进行加解密,降低加解密成本。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1是本发明架构图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本发明提供了一种基于SOC硬件标识码的嵌入式软件加密设计方法,选用工业级的ZYNQ-7100芯片;FPGA通过对硬件标识码进行加密算法处理得到一串密钥,从而对运行在该平台数据进行高速加密处理;上位机通过网口或者串口与ARM通信,上位机利用加密工具将正确的密钥进行处理,生成一种特定格式的文件后,将这种特定格式的文件上传到ARM里面,ARM提前做好解密算法,只对该格式的文件进行校验与解密,把特定文件进行解密后得到正确的密钥,ARM对FPGA产生的密钥与上位机输入的特定格式文件进行解密后的密钥进行对比,对比正确后对其进行解密,从而实现对数据的加解密,具体原理框图见图1。
一种基于SOC硬件标识码的嵌入式软件加密设计,该硬件标识码可以是一种,也可以是多种;例如每个可编程逻辑门阵列FPGA芯片都有自带一个Device DNA,Device DNA由57位二进制编码组成,通过根据Device DNA进行一种加密算法得到一串密钥,也可以是根据Device DNA生成一种文件(包含各种不同格式的数据,例如.bit或者.txt等多种格式的文件);也可以是对Device DNA与其他硬件标识码进行组合加密算法得到一种文件(包含各种不同格式的数据,例如.bit或者.txt等多种格式的文件)。
图1所示是本发明原理框图,其主要由三部分组成,分别FPGA部分与ARM部分以及外围硬件电路。
SOC平台具有FPGA+ARM的结构,首先FPGA读取自身独特的身份证号Device DNA,该身份证号是生产FPGA芯片时固化在芯片一个寄存器当中,具有不可修改的属性;获取到该Device DNA后,FPGA内部通过并行处理算法对Device DNA进行加密得到一种密钥文件;由于Device DNA不具备唯一性,ARM可以读取到外围硬件电路中FLASH的硬件标识码,然后通过AXI总线送到FPGA中,FPGA对Device DNA以及FLASH的硬件标识码进行组合加密生成密钥文件,该密钥文件包含在用户数据中。
上位机利用加密工具将正确的密钥进行处理,生成一种特定格式的文件后,将这种特定格式的文件上传到ARM里面,ARM提前做好解密算法,只对该格式的文件进行校验与解密,把特定文件进行解密后得到正确的密钥;ARM通过AXI总线读取FPGA生成的密钥文件,通过对比两组密钥文件,生成标识符,如果两组对比正确,则ARM给FPGA一个正确的反馈信号,从而对数据进行正确输出,如果两组密钥文件不相同,则ARM给FPGA一个错误的反馈信号,从而使数据无法正确输出(无法正确运行其功能或者算法)。这样就可以实现对数据进行加解密,同时也对密钥文件进行加密处理,双重方式确保数据安全。
本发明提供了一种基于SOC硬件标识码的嵌入式软件加密设计方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (3)
1.一种基于SOC硬件标识码的嵌入式软件加密设计方法,其特征在于,包括一片现场可编程逻辑门阵列FPGA和两个ARM以及外围硬件电路;
所述FPGA对自身携带的硬件标识码Device DNA以及由ARM读取外围电路中FLASH硬件标识码这两种硬件标识码进行自定义加密算法处理得到一串密钥,从而对运行在该嵌入式平台数据进行加密处理;上位机通过网口或者串口与ARM通信,上位机将事先准备好的正确的密钥进行处理,生成一种特定格式的文件后,将所述特定格式的文件上传到ARM里面,两个ARM相互协同工作,提前做好解密算法,只对所述特定格式的文件进行校验与解密,得到所述特定格式文件进行解密后的密钥,ARM对FPGA产生的密钥与所述特定格式文件进行解密后的密钥进行对比,如果对比正确,则ARM给FPGA一个正确的反馈信号,从而对数据进行正确输出,否则,ARM给FPGA一个错误的反馈信号,从而使数据无法正确输出。
2.根据权利要求1所述的方法,其特征在于,所述FPGA自带一个Device DNA,DeviceDNA由57位二进制编码组成,FPGA根据Device DNA进行加密算法得到一串密钥。
3.根据权利要求1所述的方法,其特征在于,所述FPGA自带一个Device DNA,DeviceDNA由57位二进制编码组成,FPGA根据Device DNA与其他硬件标识码进行组合加密算法得到一种密钥,使密钥具有唯一性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472161.0A CN113239370A (zh) | 2021-04-29 | 2021-04-29 | 一种基于soc硬件标识码的嵌入式软件加密设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472161.0A CN113239370A (zh) | 2021-04-29 | 2021-04-29 | 一种基于soc硬件标识码的嵌入式软件加密设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113239370A true CN113239370A (zh) | 2021-08-10 |
Family
ID=77131402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110472161.0A Pending CN113239370A (zh) | 2021-04-29 | 2021-04-29 | 一种基于soc硬件标识码的嵌入式软件加密设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113239370A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349904A (zh) * | 2023-12-04 | 2024-01-05 | 上海几何伙伴智能驾驶有限公司 | 基于fpga实现软件加密处理的方法 |
CN118171308A (zh) * | 2024-05-16 | 2024-06-11 | 贵州航天控制技术有限公司 | 一种嵌入式程序的加密方法及装置 |
CN118171308B (zh) * | 2024-05-16 | 2024-09-03 | 贵州航天控制技术有限公司 | 一种嵌入式程序的加密方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875318A (zh) * | 2018-05-28 | 2018-11-23 | 哈尔滨工程大学 | 一种基于mcu的fpga产权保护和远程更新系统及其方法 |
CN112532391A (zh) * | 2020-11-05 | 2021-03-19 | 成都芯通软件有限公司 | 一种基于fpga-id的数字产品软硬协同加密方法 |
-
2021
- 2021-04-29 CN CN202110472161.0A patent/CN113239370A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875318A (zh) * | 2018-05-28 | 2018-11-23 | 哈尔滨工程大学 | 一种基于mcu的fpga产权保护和远程更新系统及其方法 |
CN112532391A (zh) * | 2020-11-05 | 2021-03-19 | 成都芯通软件有限公司 | 一种基于fpga-id的数字产品软硬协同加密方法 |
Non-Patent Citations (1)
Title |
---|
戴计生;王成杰;李益;陈俊波;李程;: "嵌入式控制软件保密性设计研究与应用", 机车电传动, no. 05, 10 September 2018 (2018-09-10), pages 56 - 60 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349904A (zh) * | 2023-12-04 | 2024-01-05 | 上海几何伙伴智能驾驶有限公司 | 基于fpga实现软件加密处理的方法 |
CN117349904B (zh) * | 2023-12-04 | 2024-02-09 | 上海几何伙伴智能驾驶有限公司 | 基于fpga实现软件加密处理的方法 |
CN118171308A (zh) * | 2024-05-16 | 2024-06-11 | 贵州航天控制技术有限公司 | 一种嵌入式程序的加密方法及装置 |
CN118171308B (zh) * | 2024-05-16 | 2024-09-03 | 贵州航天控制技术有限公司 | 一种嵌入式程序的加密方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100499452C (zh) | 一种用于安全发送授权数据的装置和方法 | |
CN100487715C (zh) | 一种数据安全存储系统和装置及方法 | |
CN201181472Y (zh) | 硬件密钥装置和移动存储系统 | |
CN101196855B (zh) | 移动加密存储设备及密文存储区数据加解密处理方法 | |
KR102614209B1 (ko) | 디바이스들 사이에 안전하게 통신하기 위한 방법 및 디바이스 | |
US20170206174A1 (en) | Secure memory storage | |
CN101685425A (zh) | 移动存储设备及实现移动存储设备加密的方法 | |
CN105306194B (zh) | 供加密档案和/或通讯协定的多重加密方法与系统 | |
CN103415855A (zh) | 大容量存储设备存储器加密方法、系统及装置 | |
US10027639B2 (en) | IC chip performing access control based on encrypted ID | |
CN110889123A (zh) | 一种认证方法及密钥对的处理方法、装置与可读存储介质 | |
CN106100823B (zh) | 保护密码装置 | |
CN111984985A (zh) | 一种基于fpga硬件系统的hdl源码加密方法 | |
CN105760789A (zh) | 一种加密移动固态硬盘加密密钥的保护方法 | |
CN113239370A (zh) | 一种基于soc硬件标识码的嵌入式软件加密设计方法 | |
CN112968774B (zh) | 一种组态存档加密及解密方法、装置存储介质及设备 | |
CN102270182B (zh) | 基于同步用户和主机认证的加密可移动存储设备 | |
CN103457723B (zh) | 一种加密方法及以其为基础的加密设备 | |
CN103176917A (zh) | 储存装置保护系统及其储存装置上锁与解锁方法 | |
CN101883096B (zh) | 电子签名工具之间安全传递数据的方法、装置及系统 | |
CN105357005A (zh) | 一种pci/pci-e接口的电力可信计算密码模块 | |
CN102129535A (zh) | 基于硬件的非易失性计算机系统的加密方法及计算机 | |
CN111428232A (zh) | 一种加密输入的密码处理方法、加密处理装置、智能锁 | |
KR20020071274A (ko) | Pc기반의 암호칩 및 플래시 메모리를 이용한 유.에스.비보안보조기억장치 | |
CN100546242C (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 |