CN116541897B - 基于离散分布式芯片唯一序列号的flash加密方法和装置 - Google Patents
基于离散分布式芯片唯一序列号的flash加密方法和装置 Download PDFInfo
- Publication number
- CN116541897B CN116541897B CN202310806787.XA CN202310806787A CN116541897B CN 116541897 B CN116541897 B CN 116541897B CN 202310806787 A CN202310806787 A CN 202310806787A CN 116541897 B CN116541897 B CN 116541897B
- Authority
- CN
- China
- Prior art keywords
- unique serial
- chip
- serial number
- ciphertext
- flash
- 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 40
- 230000011218 segmentation Effects 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 5
- 108091029480 NONCODE Proteins 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 238000012545 processing 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/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/76—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 in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- 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/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
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明属于嵌入式闪存安全加密技术领域,提供基于离散分布式芯片唯一序列号的FLASH加密方法和装置,其方法包括:将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文;配备每段芯片唯一序列号密文的半字的起始虚拟地址,并将每段芯片唯一序列号密文的起始虚拟地址与每段芯片唯一序列号密文一一对应绑定;将多段芯片唯一序列号密文及绑定的起始虚拟地址编程到FLASH的多个页区,并离散分布到各自页区的随机地址,以完成所述内置芯片唯一序列号的加密。对芯片唯一序列号进行分段加密并随机离散分布于FLASH各个页区,提高了芯片唯一序列号的安全性。
Description
技术领域
本发明涉及嵌入式闪存安全加密技术领域,特别是涉及一种基于离散分布式芯片唯一序列号的FLASH加密方法和装置。
背景技术
FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因此适合用于做程序存储器。同样FLASH是MCU运行的重要存储电路,在程序编译完成后,可通过FLM或Debug等方式将程序下载到MCU的FLASH存储器中。同时,第三方可以通过外部调试接口或其他物理方法读取FLASH中程序数据。若需要对MCU程序进行加密操作,则需要采用一些常规的加密方式,如增加外部加密芯片、程序校验芯片的唯一ID、编程特定配置字等方式。完成简单常规的单闸校验,来判别是否有破解入侵行为。
在多个现有常规的FLASH加密方法中。选择唯一芯片唯一序列号加密法,仅将芯片唯一序列号独立存储在特定地址,进行匹配校验,软件算法过单一,易被破解;选择硬件物理加密法,可以在下载完成后,故意烧坏数据总线或则劈坏芯片的加密锁定位诸多方式,同时也会带来一定的损坏风险;选择加密芯片外置加密法,尽管一定程度上能够提高安全等级,但也带来了额外成本。以上加密方法并不能很好地满足独立MCU的各种加密需求。
因此,现有的常规FLASH加密方法还有待改进和提高安全性。
发明内容
本发明的目的是提供一种基于离散分布式芯片唯一序列号的FLASH加密方法,能够解决上述问题。
本发明提供的技术方案如下:
在一些实施方式中,本发明提供一种基于离散分布式芯片唯一序列号的FLASH加密方法,包括:
将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文;
配备每段芯片唯一序列号密文的半字的起始虚拟地址,并将每段芯片唯一序列号密文的起始虚拟地址与每段芯片唯一序列号密文一一对应绑定;
将多段芯片唯一序列号密文及绑定的起始虚拟地址编程到FLASH的多个页区,并离散分布到各自页区的随机地址,以完成所述内置芯片唯一序列号的加密。
在一些实施方式中,所述将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文,包括:
从所述MCU的三个芯片唯一序列号寄存器中,分别提取32位芯片唯一序列号;
对每个所述32位芯片唯一序列号进行分段,以得到每个所述32位芯片唯一序列号对应的两段16位的半字芯片唯一序列号数据。
在一些实施方式中,所述配备每段芯片唯一序列号密文的半字的起始虚拟地址,并将每段芯片唯一序列号密文的起始虚拟地址与每段芯片唯一序列号密文一一对应绑定,包括:
为每段16位的半字芯片唯一序列号数据配备一个起始虚拟地址,并将所述16位的半字芯片唯一序列号数据和所述起始虚拟地址进行绑定。
在一些实施方式中,在所述将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文之前,还包括:
通过编程下载FLASH中的内置芯片唯一序列号;所述内置芯片唯一序列号包括预先写入到FLM代码中芯片唯一序列号;或;通过仿真器访问MCU的芯片唯一序列号寄存器,以读取所述芯片唯一序列号寄存器中的内置芯片唯一序列号。
在一些实施方式中,还包括:
当所述FLASH开始启动后,通过查询起始虚拟地址以寻找被离散分布的芯片唯一序列号密文;
对每段所述芯片唯一序列号密文进行拼接、解析,以得到对应的芯片唯一序列号;
对所述芯片唯一序列号进行检验,校验成功则允许跳转主入口,校验失败则执行自销毁操作。
在一些实施方式中,本发明还提供一种基于离散分布式芯片唯一序列号的FLASH加密装置,包括:
分段模块,用于将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文;
绑定模块,用于配备每段芯片唯一序列号密文的半字的起始虚拟地址,并将每段芯片唯一序列号密文的起始虚拟地址与每段芯片唯一序列号密文一一对应绑定;
离散模块,用于将多段芯片唯一序列号密文及绑定的起始虚拟地址编程到FLASH的多个页区,并离散分布到各自页区的随机地址,以完成所述内置芯片唯一序列号的加密。
在一些实施方式中,所述分段模块,用于:
从所述MCU的三个芯片唯一序列号寄存器中,分别提取32位芯片唯一序列号;
对每个所述32位芯片唯一序列号进行分段,以得到每个所述32位芯片唯一序列号对应的两段16位的半字芯片唯一序列号数据。
在一些实施方式中,所述绑定模块,用于:
为每段16位的半字芯片唯一序列号数据配备一个起始虚拟地址,并将所述16位的半字芯片唯一序列号数据和所述起始虚拟地址进行绑定。
在一些实施方式中,还包括获取模块,用于:
通过编程下载FLASH中的内置芯片唯一序列号;所述内置芯片唯一序列号包括预先写入到FLM代码中芯片唯一序列号;或;通过仿真器访问MCU的芯片唯一序列号寄存器,以读取所述芯片唯一序列号寄存器中的内置芯片唯一序列号。
在一些实施方式中,还包括校验模块,用于:
当所述FLASH开始启动后,通过查询起始虚拟地址以寻找被离散分布的芯片唯一序列号密文;
对每段所述芯片唯一序列号密文进行拼接、解析,以得到对应的芯片唯一序列号;
对所述芯片唯一序列号进行检验,校验成功则允许跳转主入口,校验失败则执行自销毁操作。
本发明提供的一种基于离散分布式芯片唯一序列号的FLASH加密方法和装置至少具有以下有益效果:
通过对芯片唯一序列号进行分段加密并随机离散分布于FLASH的各个页区中,以完成芯片唯一序列号的加密,能够满足独立MCU的各种加密需求,提高了MCU的芯片唯一序列号的安全性。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种基于离散分布式芯片唯一序列号的FLASH加密方法的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明中一种基于离散分布式芯片唯一序列号的FLASH加密方法第一个实施例的示意图;
图2是本发明FLASH地址数据空间分布图;
图3是本发明单页FLASH变量元素组合图;
图4是本发明单页FLASH编程过程中查找非代码区的FLASH页的示意图;
图5是本发明单页FLASH编程过程中写入页头标志的示意图;
图6是本发明单页FLASH编程过程中写入密文组的示意图;
图7是本发明单页FLASH编程过程中填充当前FLASH页剩余空间的示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
需要说明的是UID密文即芯片唯一序列号密文。
在一个实施例中,如图1所示,本发明提供一种基于离散分布式芯片唯一序列号的FLASH加密方法,包括:
S101将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文。
具体的,每个MCU有其唯一的96位芯片唯一序列号,分布在MCU的三个寄存器中,所以取MCU的三个寄存器中的芯片唯一序列号片段。在本实施例中,分段处理为6分段处理。
S102配备每段芯片唯一序列号密文的半字的起始虚拟地址,并将每段芯片唯一序列号密文的起始虚拟地址与每段芯片唯一序列号密文一一对应绑定。
其中,起始虚拟地址是由FLM代码产生的随机地址,只不过是在一个页面中没有编程密文和虚拟地址的地方,填充其他数据。
S103将多段芯片唯一序列号密文及绑定的起始虚拟地址编程到FLASH的多个页区,并离散分布到各自页区的随机地址,以完成所述内置芯片唯一序列号的加密。
具体的,离散具体效果就是在FLASH中非代码区的位置在一页中的某个位置编程芯片唯一序列号+虚拟地址,在这一页的其他地方随机填充数据,最后解析也是通过查找虚拟地址来查询芯片唯一序列号密文。
在本实施例中,通过对芯片唯一序列号进行分段加密并随机离散分布于FLASH的各个页区中,以完成芯片唯一序列号的加密,能够满足独立MCU的各种加密需求,提高了MCU的芯片唯一序列号的安全性。
在一个实施例中,所述将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文,包括:
从所述MCU的三个芯片唯一序列号寄存器中,分别提取32位芯片唯一序列号;
对每个所述32位芯片唯一序列号进行分段,以得到每个所述32位芯片唯一序列号对应的两段16位的半字芯片唯一序列号数据。
在一个实施例中,所述配备每段芯片唯一序列号密文的半字的起始虚拟地址,并将每段芯片唯一序列号密文的起始虚拟地址与每段芯片唯一序列号密文一一对应绑定,包括:
为每段16位的半字芯片唯一序列号数据配备一个起始虚拟地址,并将所述16位的半字芯片唯一序列号数据和所述起始虚拟地址进行绑定。
具体的,绑定的操作为数据拼接,例如芯片唯一序列号密文是0xff,虚拟地址是0xee,那么拼接后的数据就是0xffee。
在一个实施例中,在所述将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文之前,还包括:
通过编程下载FLASH中的内置芯片唯一序列号;所述内置芯片唯一序列号包括预先写入到FLM代码中芯片唯一序列号;或;通过仿真器访问MCU的芯片唯一序列号寄存器,以读取所述芯片唯一序列号寄存器中的内置芯片唯一序列号。
其中,FLM代码是ARM提供的一种官方的下载算法代码,用来下载需要存储在FLASH中代码的载体。
在一个实施例中,还包括:
当所述FLASH开始启动后,通过查询起始虚拟地址以寻找被离散分布的芯片唯一序列号密文;
对每段所述芯片唯一序列号密文进行拼接、解析,以得到对应的芯片唯一序列号;
对所述芯片唯一序列号进行检验,校验成功则允许跳转主入口。
其中,虚拟地址生成的规则是由FLM下载算法中随机生成并存储在FLASH的非代码区,根据虚拟地址进行拼接芯片唯一序列号。
在一个实施例中,本发明还提供一种基于离散分布式芯片唯一序列号的FLASH加密装置,包括:
分段模块,用于将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文;
绑定模块,用于配备每段芯片唯一序列号密文的半字的起始虚拟地址,并将每段芯片唯一序列号密文的起始虚拟地址与每段芯片唯一序列号密文一一对应绑定;
离散模块,用于将多段芯片唯一序列号密文及绑定的起始虚拟地址编程到FLASH的多个页区,并离散分布到各自页区的随机地址,以完成所述内置芯片唯一序列号的加密。
在一个实施例中,所述分段模块,用于:
从所述MCU的三个芯片唯一序列号寄存器中,分别提取32位芯片唯一序列号;
对每个所述32位芯片唯一序列号进行分段,以得到每个所述32位芯片唯一序列号对应的两段16位的半字芯片唯一序列号数据。
在一个实施例中,所述绑定模块,用于:
为每段16位的半字芯片唯一序列号数据配备一个起始虚拟地址,并将所述16位的半字芯片唯一序列号数据和所述起始虚拟地址进行绑定。
在一个实施例中,还包括获取模块,用于:
通过编程下载FLASH中的内置芯片唯一序列号;所述内置芯片唯一序列号包括预先写入到FLM代码中芯片唯一序列号;或;通过仿真器访问MCU的芯片唯一序列号寄存器,以读取所述芯片唯一序列号寄存器中的内置芯片唯一序列号。
在一个实施例中,还包括校验模块,用于:
当所述FLASH开始启动后,通过查询起始虚拟地址以寻找被离散分布的芯片唯一序列号密文;
对每段所述芯片唯一序列号密文进行拼接、解析,以得到对应的芯片唯一序列号;
对所述芯片唯一序列号进行检验,校验成功则允许跳转主入口,校验失败则执行自销毁操作。
通过对芯片唯一序列号进行分段加密并随机离散分布于FLASH的各个页区中,以完成芯片唯一序列号的加密,能够满足独立MCU的各种加密需求,提高了MCU的芯片唯一序列号的安全性。
在一个实施例中,本发明涉及嵌入式闪存安全加密领域,具体是一种基于离散分布式芯片唯一序列号的FLASH加密方法。
步骤1:编程下载算法内置芯片唯一序列号。
其中,芯片唯一序列号的获取有两种方式,一是提前预置写到FLM代码中,二是通过仿真器访问MCU的芯片唯一序列号寄存器读取其具体值即芯片唯一序列号。
步骤2:将内置芯片唯一序列号进行分段,数据加密形成多段密文。
其中,按芯片唯一序列号寄存器进行分段,每个MCU有唯一的96位芯片唯一序列号,分布在三个芯片唯一序列号寄存器中,所以取三个芯片唯一序列号寄存器中的芯片唯一序列号片段。
步骤3:再给每段密文配备半字的起始虚拟地址。
举例说明,每一段是32位的芯片唯一序列号片段,将此片段再分成两段16位的半字数据,给每个半字数据配备一个虚拟地址,将此虚拟地址和16位半字芯片唯一序列号数据绑定,写到FLASH中。
具体的,在编程阶段,将多段密文及绑定的虚拟地址编程到多个页区,并离散分布到各自页区的随机地址。
官方FDS库HAL_flash提供了:
FLASH_EraseAllPages()、FLASH_ErasePage(u32 pageAddress)、FLASH_ProgramHalfWord(u32 address,u16 data)、FLASH_ProgramWord(u32 address,u32 data)四种编程和擦除的基本函数。同时也由FLASH特性决定了其至少整页擦除和至少半字编程的特性,使得我们需要引入一定的软件方法才能实现连续至少半字的读写访问。
首先,模拟eeproom的实现原理,需要引入多种flag状态以及虚拟地址的概念,通过至少利用两页的flash page完成两页的数据编程。同时,当存储数据较多时,可以增加每组Flash页的数量,实现损耗均衡,增加Flash可擦写次数。本发明以多页page为例进行说明,如图3所示。
多种状态:头字段的信息包含了每页的基地址和这页的状态,用32位数据表示。
空页:页是空的,已被擦除,用0xFFFFFFFF表示。
有效页:开始写入数据,且短时间内不会改变,直到页被删除,用0x00000000表示。
在本实施例中,上述方案为本发明提供的几个接口函数、状态标志,具体就是为了详细说明把芯片唯一序列和虚拟地址编程到FLASH中以及读取芯片唯一序列和虚拟地址。
虚拟地址是由用户定义的16位数据表示,用于匹配每一个写入的成员变量数据(同样也是16位半字),如Viraddress:0x0001、0x0002。
在本实施例中,说明书附图2为本发明FLASH地址数据空间分布图。
具体的,FLM算法代码会计算出目标代码所占用的空间,在非目标代码的FLASH首页开始编程,在页头写入0x0000000,每页离散分布一个成员变量,成员变量包含芯片唯一序列号密文和虚拟地址,其他地址全部填充随机数,但尽量不能与成员变量中的虚拟地址一致,就算一致也必须保证成员变量所编程的物理地址靠后。
示例性的,page n到page n+5,总共6页,对应了6段密文,每一页的操作方法是一样的。
在本实施例中,附图3为本发明单页FLASH变量元素组合图。
具体的,表示单页中32位FLASH变量元素存在的形式,通常1k大小为一页。本方案中芯片唯一序列号密文存储的物理地址靠前,虚拟变量的物理地址靠后。
本实施例的应用中,通过使用多页flash去模拟EEPROM。每一个变量元素都被定义为一个虚拟地址和一个存储在FLASH中的值,此存储在FLASH中的值与芯片唯一序列号对应,在软件中,虚拟地址和数据都是16位长。
当数据被修改的时候,早先与虚拟地址有关的要修改的数据会被存储在一个新的flash地址。数据检索返回修改的数据是flash的最新位置也是高位地址处。也就是说当写入新的数据时,旧的数据并没有被覆盖或者擦除,只是新旧数据储存的flash地址不一样。
当需要读取此变量时只会认为高位地址处虚拟地址匹配的数据为最新有效的数据。
示例性的,编程举例:
参考说明书附图4~7,附图4~7为本发明中单页FLASH编程过程示意图。
具体的,附图4表示了某一页FLASH编程的大致过程:查找非代码区的FLASH页、写入页头标志、写入密文成员组、填充本页其他未编程地址。在启动阶段,芯片开始启动,查询起始虚拟地址,寻找被离散分布的芯片唯一序列号数据,校验解析完成后的芯片唯一序列号,校验成功后允许跳转main入口,非法情况执行自销毁操作。
其中,非法情况指从FLASH中解析出来的芯片唯一序列号与MCU的硬件芯片唯一序列号寄存器的值不一致。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述或记载的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的系统,可以通过其他的方式实现。示例性的,以上所描述的实施例仅仅是示意性的,示例性的,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,示例性的,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种基于离散分布式芯片唯一序列号的FLASH加密方法,其特征在于,包括:
将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文;
配备每段芯片唯一序列号密文的半字的起始虚拟地址,并将每段芯片唯一序列号密文的起始虚拟地址与每段芯片唯一序列号密文一一对应绑定;具体包括步骤:为每段16位的半字芯片唯一序列号密文配备一个起始虚拟地址,并将所述16位的半字芯片唯一序列号密文和所述起始虚拟地址进行绑定;
将多段芯片唯一序列号密文及绑定的起始虚拟地址编程到FLASH的多个页区,并离散分布到各自页区的随机地址,以完成所述内置芯片唯一序列号的加密。
2.根据权利要求1所述的基于离散分布式芯片唯一序列号的FLASH加密方法,其特征在于,所述将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文,包括:
从所述MCU的三个芯片唯一序列号寄存器中,分别提取32位芯片唯一序列号;
对每个所述32位芯片唯一序列号进行分段,以得到每个所述32位芯片唯一序列号对应的两段16位的半字芯片唯一序列号数据。
3.根据权利要求1所述的基于离散分布式芯片唯一序列号的FLASH加密方法,其特征在于,在所述将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文之前,还包括:
通过编程下载FLASH中的内置芯片唯一序列号;所述内置芯片唯一序列号包括预先写入到FLM代码中芯片唯一序列号;或;通过仿真器访问MCU的芯片唯一序列号寄存器,以读取所述芯片唯一序列号寄存器中的内置芯片唯一序列号。
4.根据权利要求1~3中任一项所述的基于离散分布式芯片唯一序列号的FLASH加密方法,其特征在于,还包括:
当所述FLASH开始启动后,通过查询起始虚拟地址以寻找被离散分布的芯片唯一序列号密文;
对每段所述芯片唯一序列号密文进行拼接、解析,以得到对应的芯片唯一序列号;
对所述芯片唯一序列号进行检验,校验成功则允许跳转主入口,校验失败则执行自销毁操作。
5.一种基于离散分布式芯片唯一序列号的FLASH加密装置,其特征在于,包括:
分段模块,用于将MCU的内置芯片唯一序列号进行分段,并通过数据加密将分段后的内置芯片唯一序列号形成多段芯片唯一序列号密文;
绑定模块,用于配备每段芯片唯一序列号密文的半字的起始虚拟地址,并将每段芯片唯一序列号密文的起始虚拟地址与每段芯片唯一序列号密文一一对应绑定;具体还用于:为每段16位的半字芯片唯一序列号密文配备一个起始虚拟地址,并将所述16位的半字芯片唯一序列号密文和所述起始虚拟地址进行绑定;
离散模块,用于将多段芯片唯一序列号密文及绑定的起始虚拟地址编程到FLASH的多个页区,并离散分布到各自页区的随机地址,以完成所述内置芯片唯一序列号的加密。
6.根据权利要求5所述的基于离散分布式芯片唯一序列号的FLASH加密装置,其特征在于,所述分段模块,用于:
从所述MCU的三个芯片唯一序列号寄存器中,分别提取32位芯片唯一序列号;
对每个所述32位芯片唯一序列号进行分段,以得到每个所述32位芯片唯一序列号对应的两段16位的半字芯片唯一序列号数据。
7.根据权利要求5所述的基于离散分布式芯片唯一序列号的FLASH加密装置,其特征在于,还包括获取模块,用于:
通过编程下载FLASH中的内置芯片唯一序列号;所述内置芯片唯一序列号包括预先写入到FLM代码中芯片唯一序列号;或;通过仿真器访问MCU的芯片唯一序列号寄存器,以读取所述芯片唯一序列号寄存器中的内置芯片唯一序列号。
8.根据权利要求5~7中任一项所述的基于离散分布式芯片唯一序列号的FLASH加密装置,其特征在于,还包括校验模块,用于:
当所述FLASH开始启动后,通过查询起始虚拟地址以寻找被离散分布的芯片唯一序列号密文;
对每段所述芯片唯一序列号密文进行拼接、解析,以得到对应的芯片唯一序列号;
对所述芯片唯一序列号进行检验,校验成功则允许跳转主入口,校验失败则执行自销毁操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310806787.XA CN116541897B (zh) | 2023-07-04 | 2023-07-04 | 基于离散分布式芯片唯一序列号的flash加密方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310806787.XA CN116541897B (zh) | 2023-07-04 | 2023-07-04 | 基于离散分布式芯片唯一序列号的flash加密方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116541897A CN116541897A (zh) | 2023-08-04 |
CN116541897B true CN116541897B (zh) | 2023-09-22 |
Family
ID=87456258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310806787.XA Active CN116541897B (zh) | 2023-07-04 | 2023-07-04 | 基于离散分布式芯片唯一序列号的flash加密方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541897B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111132154A (zh) * | 2019-12-26 | 2020-05-08 | 飞天诚信科技股份有限公司 | 一种协商会话密钥的方法及系统 |
CN112235608A (zh) * | 2020-12-11 | 2021-01-15 | 视联动力信息技术股份有限公司 | 一种基于视联网的数据加密传输方法、装置及介质 |
CN112311787A (zh) * | 2020-10-28 | 2021-02-02 | 深圳市启望科文技术有限公司 | 录音文件分段加密方法、装置、计算机设备及存储介质 |
-
2023
- 2023-07-04 CN CN202310806787.XA patent/CN116541897B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111132154A (zh) * | 2019-12-26 | 2020-05-08 | 飞天诚信科技股份有限公司 | 一种协商会话密钥的方法及系统 |
CN112311787A (zh) * | 2020-10-28 | 2021-02-02 | 深圳市启望科文技术有限公司 | 录音文件分段加密方法、装置、计算机设备及存储介质 |
CN112235608A (zh) * | 2020-12-11 | 2021-01-15 | 视联动力信息技术股份有限公司 | 一种基于视联网的数据加密传输方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116541897A (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100899242B1 (ko) | 메모리 시스템 및 불휘발성 반도체 메모리 기입 방법 | |
Breeuwsma et al. | Forensic data recovery from flash memory | |
CN1218249C (zh) | 具有多个保密级别的保密存储器 | |
US8000153B2 (en) | Enhanced erase for flash storage device | |
JP4956068B2 (ja) | 半導体記憶装置およびその制御方法 | |
JP2000148567A (ja) | スマ―ト・カ―ドのメモリにデ―タ・オブジェクトを記憶する方法 | |
US9772937B2 (en) | Data processing method, memory controller and memory storage apparatus | |
US8417902B2 (en) | One-time-programmable memory emulation | |
CN102163155A (zh) | 存储设备的升级方法及升级控制装置 | |
US11199970B2 (en) | Data storage device and method for rewriting parameters thereof | |
CN111176579B (zh) | 使用norflash模拟eeprom的方法 | |
CN116541897B (zh) | 基于离散分布式芯片唯一序列号的flash加密方法和装置 | |
CN101551838B (zh) | 一种存储卡身份认证方法及其系统 | |
CN107678770B (zh) | 接口芯片升级方法、装置、存储介质和处理器 | |
EP1510924B1 (en) | Apparatus and method for handling transactions with writes and reads to EEPROM or Flash memories | |
CN110209349B (zh) | 数据处理的方法及终端设备 | |
US20130275688A1 (en) | Data processing device and method | |
CN113345510B (zh) | 一种flash的容量识别方法及容量识别系统 | |
CN1532713A (zh) | 非易失性存储器的存取控制系统 | |
US11347860B2 (en) | Randomizing firmware loaded to a processor memory | |
CN108121667B (zh) | 数据擦除方法、装置及计算机存储介质 | |
US20070088905A1 (en) | System and method for purging a flash storage device | |
CN114995843B (zh) | 一种程序包组件的下载存储方法及装置 | |
US10223195B2 (en) | Counter in a flash memory | |
CN115543876B (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 |