CN107908359B - 一种otp存储器及其数据写入和读取方法、安全芯片 - Google Patents
一种otp存储器及其数据写入和读取方法、安全芯片 Download PDFInfo
- Publication number
- CN107908359B CN107908359B CN201711071386.5A CN201711071386A CN107908359B CN 107908359 B CN107908359 B CN 107908359B CN 201711071386 A CN201711071386 A CN 201711071386A CN 107908359 B CN107908359 B CN 107908359B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- storage area
- block
- segment
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种OTP存储器及其数据写入和读取方法、安全芯片。OTP存储器的数据写入方法包括以下步骤:S1,将所述OTP存储器在物理空间中分块成n+1块存储区,n为大于1的正整数;所述n+1块存储区包括n块数据存储区以及一块始终处于可读取状态的地址存储区;S2,通过随机数发生器生成随机序列,根据所述随机序列从所述n块数据存储区中随机选取一块,定义为地址记录区;S3,按照随机顺序将n‑1块数据存储区的首地址依次写入所述地址记录区中,按照写入的先后顺序在各块数据存储区中写入待存储的数据;S4,将所述地址记录区的首地址写入始终处于可读取状态的所述地址存储区中。本发明的数据读写方法可增加破解者获取存储器内存储的数据的难度,提高存储安全性。
Description
【技术领域】
本发明涉及存储器和信息安全领域,特别是涉及一种OTP存储器的数据写入读取方法。
【背景技术】
OTP是一种一次可编程的存储器类型,其主要特点是只能编程一次,因此具有保护重要数据的特点,所以大量应用于安全芯片的密钥存储区。安全芯片是指可存储密钥和特征数据,带有独立处理单元和存储区的集成芯片,广泛应用于身份认证、数字签名等安全领域。虽然安全芯片具有足够的保密性,但是近年来逆向工程的发展已经到了足够攻破一般安全芯片的地步。
逆向工程对芯片的反向获取方法主要有物理研磨和聚焦离子束处理。聚焦离子束(FIB)将集成电路的内部信号暴露到表面,随后使用探针将信号线连接到攻击者的电子设备,然后读出线上传递的数据。研磨是指通过对安全芯片层层物理研磨,然后通过电子显微镜拍照,即可得到芯片的硬件结构和软件内容。传统的安全芯片的密钥存储区在物理制造上是空间相连的,形成标准的一次可编程存储阵列(OTP)。由于其空间连续性,攻击者往往易于连续地获取密钥数据。
OTP存储阵列由若干OTP位元组成,OTP存储单元目前分为熔丝结构和反熔丝结构。熔丝型单元在击穿前是导通状态,击穿后熔丝层被熔断,导通关闭。反熔丝型在编程击穿之前表现为开路状态,熔丝在击穿熔断之后电路导通。
具体来说,传统OTP存储阵列由于物理上存储区连续,凡是通过反熔丝或者熔丝技术在编程时反熔断或者熔断的OTP位元单元可以通过电子显微镜观察出,进而得到整个OTP存储区的数据。因此密钥数据容易被非法获取。
以上背景技术内容的公开仅用于辅助理解本发明的发明构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述背景技术不应当用于评价本申请的新颖性和创造性。
【发明内容】
本发明所要解决的技术问题是:弥补上述现有技术的不足,提出一种OTP存储器及其数据写入和读取方法,可增加破解者获取存储器内存储的数据的难度,提高存储安全性。
本发明的技术问题通过以下的技术方案予以解决:
一种OTP存储器的数据写入方法,包括以下步骤:S1,将所述OTP存储器在物理空间中分块成n+1块存储区,n为大于1的正整数;所述n+1块存储区包括n块数据存储区以及一块始终处于可读取状态的地址存储区;S2,通过随机数发生器生成随机序列,根据所述随机序列从所述n块数据存储区中随机选取一块,定义为地址记录区;S3,按照随机顺序将n-1块数据存储区的首地址依次写入所述地址记录区中,按照写入的先后顺序在各块数据存储区中写入待存储的数据;S4,将所述地址记录区的首地址写入始终处于可读取状态的所述地址存储区中。
上述方案中,OTP存储器分块存储数据,且地址记录区的选取是随机的,通过外部的随机数发生器随机生成随机序列,从n块数据存储区中随机选取一块作为地址记录区。此外,n-1块数据存储区写入数据的先后过程也是随机的,从而存储的数据从整体上不易被攻破获取。另外,OTP区域的分块化与隔离化使得存储器中各个存储区的识别难度增大,不易于直接寻找到面积明显变小的存储区块,当其应用于安全芯片中时,可从一定程度上保护安全芯片的电路结构,增大芯片被反向攻破的难度。
优选的技术方案中,
步骤S3包括以下步骤:S31,通过随机数发生器生成随机序列,根据所述随机序列从n-1块数据存储区中选取一块写入待存储的数据,并将该数据存储区的首地址存储于所述地址记录区中;S32,重复步骤S31进行下一块数据存储区的数据写入过程,直至各块数据存储区域均完成数据写入过程。该方案中,通过随机数发生器控制n-1块数据存储区的数据随机写入过程,实现成本低,控制成本也较低。
步骤S3中,写入的待存储的数据为密钥数据。
进一步优选的方案中,
步骤S3中,在一块数据存储区中写入数据时包括以下步骤:将所述数据进行分段处理,对于分出的第一段数据:直接将当前数据存储区的起始地址作为存储的首地址;对于分出的其余各段数据:通过随机数发生器为每段数据生成随机序列,以其中的m位作为每段数据在当前数据存储区中存储的首地址,其中,m表示地址位数,其大小满足通过寻址能够覆盖到当前块数据存储区所有存储空间;对于分出的各段数据,存储时,将各段数据与下一段数据的首地址进行拼接后,存入各段数据的首地址对应的存储地址段中。
拼接时,在当前段数据的结尾加入段结束标记,然后将下一段数据的首地址连接其后,成为一段封装的数据包。
上述进一步优选的方案中,输入的数据流经过分段,配合随机数发生器为每一段数据生成随机存储的首地址,该地址与当前块数据存储区绑定,同时将数据段与下一段数据的首地址进行封装。通过采用上述自定义构造的数据方式进行封装随机存储在一块数据存储区的内部存储区域中,这对于用户是一个封闭以及隐藏细节的过程,可在很大程度上提高各小块存储区存储数据的安全性,进一步保护存储的数据。
进一步优选的方案中,
拼接完成后还包括:对封装完成的数据包进行检查,检查数据包中数据是否符合格式要求以及地址是否有效,若否,则返回拼接过程,重新封装;若是,则将所述封装的数据包存入到相应的存储地址段中。自检过程检查封装格式的正确与否以及随机地址是否有效,通过检查的数据包才存储到相应位置,可提高数据封装操作的准确性。
本发明的技术问题通过以下进一步的技术方案予以解决:
一种OTP存储器的数据读取方法,所述OTP存储器在物理空间中分块成n+1块存储区,n为大于1的正整数;所述n+1块存储区包括n块数据存储区以及一块始终处于可读取状态的地址存储区;所述读取方法包括以下步骤:R1,从所述始终处于可读取状态的地址存储区中读取地址记录区的首地址,经过块地址译码器找到所述地址记录区,读取所述地址记录区中的数据;R2,按照此数据中首地址的存储顺序依次将每个首地址传输给所述块地址译码器,依次找到相应的各块数据存储区,读取各块数据存储区中存储的数据;R3,将各次读取到的数据按照读取顺序进行拼接,最终得到完整的数据。
上述方案中,读取数据时,首先从地址存储区获取地址记录区的地址,然后访问该地址记录区,随后根据地址记录区中的数据进行逐个访问剩余n-1块数据存储区,将数据存储区读取的数据拼接后进而得到完整的数据。通过该过程,可实现对前述数据随机写入过程中写入的数据的读取。
进一步优选的技术方案中,
各块数据存储区中存储的数据为多个封装数据包的形式,各个封装数据包均包括一段数据以及位于该段数据结尾处的段结束标记、下一段数据的首地址;其中,下一段数据的首地址的位数为m位,m的大小满足通过寻址能够覆盖到当前块数据存储区所有存储空间;步骤R2中读取多个封装数据包时包括以下步骤:a,从起始地址开始读取封装数据包,每读取一个封装数据包时,先读取一段数据,当读取到段结束标记时,继续读取段结束标记后长度为m位的数据,将读取到的m位数据作为下一段数据的首地址,根据首地址找到下一段封装数据包;b,重复步骤a读取下一个封装数据包,直至当前块数据存储区中存储的多个封装数据包均被读取完毕;c,将读取出的各段数据进行拼接,输出当前数据存储区中存储的完整的数据。通过该过程,可实现对前述自定义构造的数据封装进而随机存储的数据的读取。
本发明的技术问题通过以下进一步的技术方案予以解决:
一种可实现如上所述的数据写入方法的OTP存储器,包括在物理空间中划分成的n+1块存储区,n为大于1的正整数;所述n+1块存储区包括n块数据存储区以及一块始终处于可读取状态的地址存储区;所述n块数据存储区中的一块为地址记录区,用于按随机顺序存储其余n-1块数据存储区的首地址;所述n-1块数据存储区中用于按所述随机顺序写入待存储的数据;所述地址存储区用于存储所述地址记录区的首地址。
优选的方案中,所述n+1块存储区域在所述OTP存储器的内部空间位置是随机设置的。通过存储区域在物理层面上的随机设置,可进一步提高OTP存储器存储数据的安全性。
一种安全芯片,包括处理模块和存储模块,所述存储模块为如上所述的OTP存储器。
本发明与现有技术对比的有益效果是:
本发明的提出的分布式OTP存储器数据读写方式,通过物理上分块与隔离,以及按随机顺序写入数据,从而存储的数据从整体上不易被攻破获取,可提高数据存储的安全性。OTP区域的分块化与隔离化也使得存储器中各个存储区的识别难度增大,不易于直接寻找到面积明显变小的存储区块,当其应用于安全芯片中时,可从一定程度上保护安全芯片的电路结构,增大芯片被反向攻破的难度。
【附图说明】
图1是本发明具体实施方式一中的安全芯片的结构示意图;
图2是本发明具体实施方式一中的OTP区块单元的访问逻辑示意图;
图3是本发明具体实施方式一中的OTP存储器的数据读写流程图;
图4是本发明具体实施方式二中的各OTP小区块中的数据写入的流程图;
图5是本发明具体实施方式二中的各OTP小区块中的数据读取的流程图。
【具体实施方式】
下面结合具体实施方式并对照附图对本发明做进一步详细说明。
本发明的构思是:对于逆向工程攻破存储器内存储的数据而言,如果所有的器件的空间摆放顺序被获知的话,那么每个部件的工作原理也将被获取。例如传统的安全芯片的密钥存储区在物理制造上是空间相连的,形成标准的一次可编程存储阵列(OTP),由于其空间连续性,这样攻击者往往易于连续地获取密钥数据。因此,本发明构思一种分块和随机的存储方式,将传统OTP存储阵列分块化与物理空间隔离化,以此增加非法人员通过逆向工程等非法手段获取OTP中存储的密钥数据和安全芯片中电路结构的难度,进而保护芯片重要数据,提高芯片安全性。
传统OTP存储阵列在物理设计上是空间连续的,存储阵列往往设计在一起,这样的主要优势在于工艺制造的简单以及读写数据的方便。但是存储阵列的集中分布导致存储区域易于被定位到,并且由于在存储阵列周围分布着逻辑控制电路以及读写电路等电路模块,这种设计方法容易导致芯片电路结构被非法获取。本发明提出的存储阵列分块化方案不仅将传统OTP存储阵列分块,而且可将各个存储区块随机摆放设置在OTP存储器内,从而可将庞大的存储区缩小化、随机化,从而从物理层面增加攻破难度。
具体实施方式一
一般地,安全芯片至少包含片内CPU、ROM、密钥存储区(通常为OTP阵列)、相关处理电路模块。ROM中通常存放片内CPU操作该芯片逻辑的处理代码及数据,例如对密钥的解析与提取等逻辑处理。密钥存储区,也即OTP存储器中一般存储密钥数据。本发明提出的安全芯片中对密钥数据提高安全性保护的过程包含对OTP存储区的分块化与隔离化、存储区读写的随机化。
密钥数据的写入通过芯片编程实现。编程时通过高压信号将反熔丝结构进行击穿,改变OTP位元的状态,从而进行数据0或1的写入,数据一旦写入该位元将无法在编程,否则将导致位元的损坏。片内CPU在对芯片编程时,代码存储在相对于OTP存储区外部的ROM存储区中,使用烧录器进行硬件编程,编程状态下双向数据端口处于写入状态,CPU通过地址译码器找到相应的地址段,数据通过数据总线经过IO端口写入存储区。每个OTP位元将根据代码的数据值要求进行熔丝,以此存储数据。
如图1所示,本具体实施方式中将OTP存储器分块化,均分为n块小OTP存储区块+1块始终处于可读取状态的地址存储区,并且在空间上将n+1个小区块随机摆放在芯片内部。需说明的是,地址存储区与其它n块存储区块在OTP工艺、结构、尺寸方面可设置为相同的,这样设置,可增加破解者识别出地址存储区的难度,提高OTP存储器存储数据的安全性。此外,地址存储区也可采用与其它n块存储区块相同的OTP制作工艺、结构,但是尺寸可设置得相对较小(因为地址存储区后续只是用于存储一个地址(地址记录区的首地址),所需空间很小)。当地址存储区的尺寸较小时,同样可以增加破解者识别出的难度。
OTP存储区在物理空间上分块化与隔离化,将一定大小的OTP区域分为n+1块小OTP区块,采用一定方式分布在安全芯片内部。其中一块作为地址存储区,从另外n块小OTP区域中随机选取其中一块作为pattern记录区(也即图中的地址记录区),其他n-1块作为OTP密钥存储区。
Pattern记录区用于记录芯片内CPU访问其他n-1区块的顺序,CPU首先访问该pattern记录区,随后根据pattern记录区中的数据进行逐个访问剩余n-1块密钥区,将密钥拼接后进而得到完整的密钥数据。
Pattern记录区的选取是随机的,通过片内的随机数发生电路随机生成其地址。它与其他n-1块OTP小区块在物理构造上是相同的,不同的是它内部存放的是n-1块密钥区的首地址。CPU每读取一个首地址,便发起中断请求,CPU根据此地址访问n-1块密钥区的一块,读取其中全部密钥数据后,便回到中断点,继续读取下一个地址,以此往复,直至所有密钥区被访问完毕才结束,进而整个密钥数据的读取过程也结束。也即,在对OTP区域进行编程写入数据时,片内CPU随机选取一块OTP小区块作为Pattern记录区,在其中通过编程记录下所有n-1块密钥区的首地址。在读取OTP中完整密钥数据时,CPU根据pattern记录区中记录的n-1块小区块的首地址进行逐个小区块数据读取与拼接,最终形成完整数据。
OTP区域的分块化与隔离化使得芯片上各个电路模块识别难度增大,不易于直接寻找到面积明显变小的存储区块以及随之变动的电路模块,从一定程度上保护了安全芯片的电路结构,增大芯片反向设计的难度。
如图2所示,为片内CPU对各个OTP小区块单元进行访问的示意图。片内CPU在读写OTP区块时首先通过块地址选中某个小区块,将该区块使能后区块的行列地址译码器会根据输入的地址找到相应的存储单元,并且将数据写入到数据总线上或者从数据总线上获取数据。因此,芯片中每个OTP存储区块可至少包括芯片使能端、编程使能端、输出使能端等控制端口,通过这些端口的逻辑组合实现不同的区块状态。例如,在对某个区块进行编程时,首先通过外部片选信号将该区块使能,并且编程使能端有效,数据通过双向数据端口写入区块中。读取数据时,输出使能有效,被选中OTP区块数据输出到数据总线上,进而被CPU读入内存中,然后与已有数据进行拼接,进而得到完整的密钥数据。
如下详细说明本具体实施方式中数据写入与读取的过程。
如图3所示,在编程(数据写入)模式下,随机数发生电路随机生成一定长度的序列作为pattern记录区选取的依据,生成的序列送给块地址译码器进行区块选择,被选择区块作为pattern记录区。CPU随后将剩下的n-1个区块的首地址随机地存入pattern记录区,同时将pattern记录区的首地址存入前述一块始终处于可读取状态的特殊OTP区块中,这块特殊的OTP区块在工艺以及电路上与该芯片内其他OTP区块相同,不同的是它的物理地址是已知的并且默认处于芯片使能状态。默认处于使能状态是为了使该区块始终处于可读取状态,这样,在完成编程后,每次读取数据时将首先从该区块进行读取。在该编程模式下,数据从IO端口流入,编程电路根据密钥数据进行数据的写入,数据被分解到n-1块OTP密钥存储区中,并且无法再次进行修改。
读取模式下,CPU从这块默认使能的特殊OTP区块中读取pattern记录区的地址,经过块地址译码找到pattern记录区,读取pattern记录区中的数据,该数据从双向IO端口中流出,存入内存。该数据是编程模式下写入的各OTP密钥小区块的首地址,CPU按照此数据中首地址的存储顺序依次将每个首地址送给块地址译码器,通过每个OTP密钥区的读出电路进行数据的读取。每次将该次读取的密钥数据片段与前面已读取的密钥数据片段进行拼接,最终完成密钥的读取工作。
以反熔丝OTP位元结构为例,OTP存储器在进行编程时,双向IO端口作为数据输入,该密钥数据实际上是一组电信号,通过灵敏放大电路以及电荷泵电路模块产生符合击穿要求的编程高压,该编程高压信号将反熔丝结构从高阻态的绝缘状态击穿为低阻态的导通状态,当输入数据为1时,电荷泵输出编程高压对输入地址指定的存储单元进行编程,实现数据1的写入;当输入数据为0时,对输入地址指定的存储单元不进行操作,未击穿位元将保持数据0。OTP存储器在进行数据读取时,双向IO端口作为数据输出,经过地址译码器找到输入地址指定单元,通过读取电路将逻辑值输出到IO端口,进而被***存储到内存中。
具体实施方式二
本具体实施方式与实施方式一的不同之处在于:进一步限定了在各OTP小区块中写入数据时,按照分段以及封装的方式进行写入,从而进一步提高数据存储的安全性。
本实施方式中,写入数据时,将一段完整的输入数据进行分解以及随机存储到一个小区块中的各个地址段中。传统的数据存储方法是直接将该数据全部写入到以某个地址为首地址的连续区段中。这种方式固然在读写数据方面比较方便,但是非法人员容易通过总线侦测等方法获取该密钥数据,存储安全性不高。本具体实施方式中通过对任何一段输入数据将其分解存储到随机地址段中,读取时返回与存储时相同的数据。这个处理过程对于使用者来说,其中的处理逻辑是完全封闭,这种数据存储方式在一定程度上可进一步保护存储的数据。
将数据进行分段处理,对于分出的第一段数据:直接将当前数据存储区的起始地址作为存储的首地址。对于分出的其余各段数据,则为每段数据生成随机序列,以其中的m位作为每段数据在当前数据存储区中存储的首地址。其中,m表示地址位数,其大小满足通过寻址能够覆盖到当前OTP小块的所有存储空间。例如,以一级3-8译码器为例,2位输入地址经过一级3-8译码可以寻到32个单元(0000H-00FFH),一个单元1个字节大小。如果当前OTP小区块的存储空间大小小于等于32个字节,那么2位的寻址地址即足够寻找到32个存储单元,从而m设置为2。当存储空间大于32字节并且小于256字节时,则需要m设置为3,可以寻址到256个单元(0000H-FFFFH);以此类推。
如图4所示,各小块中写入数据的过程主要包括以下步骤:
第一,随机数发生器生成一段随机序列作为该段数据的存储首地址;
第二,数据从IO端口流入,流向中间寄存器,该寄存器缓存一定大小的数据段,同时随机数发生器生成一段随机序列,以其中的m位作为下一段数据段存储的首地址;
第三,将该段数据段与下一段数据段的首地址进行拼接。在该段数据的结尾加入结束标记,例如“\0”,然后将下一段数据段的首地址连接其后,成为一段重新封装的数据包;
第四,将封装完成的数据包通过检查过程,检查数据包中数据是否符合格式要求以及地址是否有效,若否,则返回第二、三步重新封装。若时,则通过检查,存入到相应的地址段中;
第五,重复执行二、三、四步,直至所有数据存储完成,最后在数据末尾可加入数据结束标记,该标记与片段数据结束标记不同,并且最后一段数据可不设置片段结束标记。
如图5所示,读取数据的过程主要包括以下步骤:
第一,从当前OTP小区块的起始地址开始读取数据;
第二,每读取一个封装数据包时,先读取一段数据,当读取到片段结束标记时,继续读取固定长度(m位)的地址数据,该固定长度与当前OTP小区块中的地址字节长度相关。读取到的m位地址数据作为下一段数据的首地址,根据首地址读取下一段数据;
第三,将读取到的一段数据写入到IO端口,作为读取结果;
第四,重复第二、三步,直至读取到数据末尾结束标记,整个数据读取过程完毕。
上述数据分段、读写过程,可视为一种地址混淆的数据读写方式。对用户输入的数据进行混淆存储,采用自定义构造的数据方式进行封装随机存储,对于用户是一个封闭以及隐藏细节的过程。输入的数据流经过数据分段以及地址封装,且通过随机数发生器为每一段数据生成地址,该地址与当前小块绑定。检查封装格式的正确与否以及随机地址是否有效。通过检查的数据包将存储到相应位置。每段数据都根据由前一段数据封装时随机数发生器生成的随机物理地址进行地址译码,找到对应单元进行存储。在读取时,每读取到数据段的段结束标记符,便继续读取固定长度的数据,该数据便是下一段数据的物理首地址。本段数据输出给IO端口,随后循环访问下一段数据,直至访问到数据结束标记符,整个数据读取过程结束。
通过上述数据分段、地址封装、标记符标志、随机发生地址等过程从读写层面加强数据安全性。传统的数据存储通常是CPU随机分配或者用户指定存储地址,对于CPU随机分配的内存通常使用的是逻辑地址,通过分页管理***与实际物理地址进行映射。但是对于大多数小型片上***(SOC)是不具有分页内存管理***的,用户存储的地址就是其在存储器上的实际地址,对于敏感数据来说容易被破解者获取。而通过上述方式,无需分页管理***,即可实现数据的随机存储,可通过较低成本实现较高的安全性存储。本具体实施方式的数据写入以及读取过程,可适合各个小区块中的数据读写,与本具体实施方式一相结合将进一步提高安全芯片的数据安全性,极大保护存储的重要数据,例如密钥数据。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
Claims (9)
1.一种OTP存储器的数据写入方法,其特征在于:包括以下步骤:S1,将所述OTP存储器在物理空间中分块成n+1块存储区,n为大于1的正整数;所述n+1块存储区包括n块数据存储区以及一块始终处于可读取状态的地址存储区;S2,通过随机数发生器生成随机序列,根据所述随机序列从所述n块数据存储区中随机选取一块,定义为地址记录区;S3,按照随机顺序将其余n-1块数据存储区的首地址依次写入所述地址记录区中,按照写入的先后顺序在各n-1块数据存储区中写入待存储的数据;S4,将所述地址记录区的首地址写入始终处于可读取状态的所述地址存储区中。
2.根据权利要求1所述的数据写入方法,其特征在于:步骤S3中,在一块数据存储区中写入数据时包括以下步骤:将所述数据进行分段处理,对于分出的第一段数据:直接将当前块数据存储区的起始地址作为存储的首地址;对于分出的其余各段数据:通过随机数发生器为每段数据生成随机序列,以其中的m位作为每段数据在当前数据存储区中存储的首地址,其中,m表示地址位数,其大小满足通过寻址能够覆盖到当前块数据存储区所有存储空间;对于分出的各段数据,存储时,将各段数据与下一段数据的首地址进行拼接后,存入各段数据的首地址对应的存储地址段中。
3.根据权利要求2所述的数据写入方法,其特征在于:拼接时,在当前段数据的结尾加入段结束标记,然后将下一段数据的首地址连接其后,成为一段封装的数据包。
4.根据权利要求3所述的数据写入方法,其特征在于:拼接完成后还包括:对封装完成的数据包进行检查,检查数据包中数据是否符合格式要求以及地址是否有效,若否,则返回拼接过程,重新封装;若是,则将所述封装的数据包存入到相应的存储地址段中。
5.一种OTP存储器的数据读取方法,其特征在于:所述OTP存储器在物理空间中分块成n+1块存储区,n为大于1的正整数;所述n+1块存储区包括n块数据存储区以及一块始终处于可读取状态的地址存储区,所述地址存储区存储有地址记录区的首地址;所述地址记录区为通过随机数发生器生成随机序列,根据所述随机序列从所述n块数据存储区中随机选取的一块,同时记录有按照随机顺序写入的其余n-1块数据存储区的首地址;所述读取方法包括以下步骤:R1,从所述始终处于可读取状态的地址存储区中读取地址记录区的首地址,经过块地址译码器找到所述地址记录区,读取所述地址记录区中的数据;R2,按照此数据中首地址的存储顺序依次将每个首地址传输给所述块地址译码器,依次找到相应的各n-1块数据存储区,读取各n-1块数据存储区中存储的数据;R3,将各次读取到的数据按照读取顺序进行拼接,最终得到完整的数据。
6.根据权利要求5所述的OTP存储器的数据读取方法,其特征在于:各块数据存储区中存储的数据为多个封装数据包的形式,各个封装数据包均包括一段数据以及位于该段数据结尾处的段结束标记、下一段数据的首地址;其中,下一段数据的首地址的位数为m位,m的大小满足通过寻址能够覆盖到当前块数据存储区所有存储空间;步骤R2中读取多个封装数据包时包括以下步骤:a,从起始地址开始读取封装数据包,每读取一个封装数据包时,先读取一段数据,当读取到段结束标记时,继续读取段结束标记后长度为m位的数据,将读取到的m位数据作为下一段数据的首地址,根据首地址找到下一段封装数据包;b,重复步骤a读取下一个封装数据包,直至当前块数据存储区中存储的多个封装数据包均被读取完毕;c,将读取出的各段数据进行拼接,输出当前块数据存储区中存储的完整的数据。
7.一种可实现权利要求1所述的数据写入方法的OTP存储器,其特征在于:包括在物理空间中划分成的n+1块存储区,n为大于1的正整数;所述n+1块存储区包括n块数据存储区以及一块始终处于可读取状态的地址存储区;所述n块数据存储区中的一块为地址记录区,用于按随机顺序存储其余n-1块数据存储区的首地址;所述n-1块数据存储区中用于按所述随机顺序写入待存储的数据;所述地址存储区用于存储所述地址记录区的首地址。
8.根据权利要求7所述的OTP存储器,其特征在于:所述n+1块存储区在所述OTP存储器的内部空间位置是随机设置的。
9.一种安全芯片,包括处理模块和存储模块,其特征在于:所述存储模块为如权利要求7所述的OTP存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711071386.5A CN107908359B (zh) | 2017-11-03 | 2017-11-03 | 一种otp存储器及其数据写入和读取方法、安全芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711071386.5A CN107908359B (zh) | 2017-11-03 | 2017-11-03 | 一种otp存储器及其数据写入和读取方法、安全芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107908359A CN107908359A (zh) | 2018-04-13 |
CN107908359B true CN107908359B (zh) | 2020-12-29 |
Family
ID=61842554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711071386.5A Active CN107908359B (zh) | 2017-11-03 | 2017-11-03 | 一种otp存储器及其数据写入和读取方法、安全芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107908359B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026597B (zh) * | 2019-01-31 | 2023-12-26 | 安天科技集团股份有限公司 | 一种芯片隐藏存储空间的检测方法、装置及存储介质 |
CN113821160A (zh) * | 2020-11-27 | 2021-12-21 | 北京京东拓先科技有限公司 | 内存数据存取装置、内存数据存储和读取方法 |
CN113010121B (zh) * | 2021-05-25 | 2021-09-07 | 高拓讯达(北京)科技有限公司 | 一种数据修改方法、装置、设备及存储介质 |
CN113590209B (zh) * | 2021-09-29 | 2022-03-01 | 翱捷科技(深圳)有限公司 | 芯片启动控制方法、芯片及电子设备 |
CN115237831B (zh) * | 2022-09-22 | 2023-02-07 | 瀚博半导体(上海)有限公司 | 数据传输方法、装置、芯片、电子设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761185A (zh) * | 2005-11-18 | 2006-04-19 | 清华大学 | 乱序执行的数据流aes加密电路结构 |
CN1902698A (zh) * | 2004-01-05 | 2007-01-24 | 三星电子株式会社 | 记录/再现数据的方法和装置及一次写入信息存储介质 |
US7945587B2 (en) * | 2007-10-10 | 2011-05-17 | Microsoft Corporation | Random allocation of media storage units |
CN103164490A (zh) * | 2011-12-19 | 2013-06-19 | 北京新媒传信科技有限公司 | 一种不固定长度数据的高效存储实现方法和装置 |
CN203773957U (zh) * | 2013-10-25 | 2014-08-13 | 上海宇芯科技有限公司 | Otp寄存器的多次写入装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9003110B2 (en) * | 2010-01-13 | 2015-04-07 | International Business Machines Corporation | Dividing incoming data into multiple data streams and transforming the data for storage in a logical data object |
-
2017
- 2017-11-03 CN CN201711071386.5A patent/CN107908359B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1902698A (zh) * | 2004-01-05 | 2007-01-24 | 三星电子株式会社 | 记录/再现数据的方法和装置及一次写入信息存储介质 |
CN1761185A (zh) * | 2005-11-18 | 2006-04-19 | 清华大学 | 乱序执行的数据流aes加密电路结构 |
US7945587B2 (en) * | 2007-10-10 | 2011-05-17 | Microsoft Corporation | Random allocation of media storage units |
CN103164490A (zh) * | 2011-12-19 | 2013-06-19 | 北京新媒传信科技有限公司 | 一种不固定长度数据的高效存储实现方法和装置 |
CN203773957U (zh) * | 2013-10-25 | 2014-08-13 | 上海宇芯科技有限公司 | Otp寄存器的多次写入装置 |
Non-Patent Citations (1)
Title |
---|
一种基于OTP的设计方案及实现;刘必广;《长春工程学院学报(自然科学版) 》;20090630;第10卷(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107908359A (zh) | 2018-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107908359B (zh) | 一种otp存储器及其数据写入和读取方法、安全芯片 | |
CN109495243B (zh) | 使用随机数位的安全***及安全***的操作方法 | |
CN111833937B (zh) | 用于存储器的刷新模式及存取模式 | |
EP3407335A1 (en) | Non-volatile memory based physically unclonable function with random number generator | |
US6792528B1 (en) | Method and apparatus for securing data contents of a non-volatile memory device | |
KR101484331B1 (ko) | 데이터 저장 디바이스의 데이터 무결성 검증 | |
CN1799104B (zh) | 存储在非易失性存储器中的数据的完整性控制 | |
US20020002654A1 (en) | Semiconductor storage device | |
US11416417B2 (en) | Method and apparatus to generate zero content over garbage data when encryption parameters are changed | |
TW201805942A (zh) | 用於非揮發性記憶體之安全性延伸 | |
JP2008152549A (ja) | メモリ装置、およびメモリ装置のパスワード記憶方法 | |
US20100165715A1 (en) | Protection register for a phase-change memory | |
US20180322278A1 (en) | Secure integrated-circuit state management | |
JP2007512656A (ja) | セキュリティ行ロック保護された埋込型メモリ | |
US20190377693A1 (en) | Method to generate pattern data over garbage data when encryption parameters are changed | |
US20170221581A1 (en) | Semiconductor Apparatus and Identification Method of a Semiconductor Chip | |
US9319387B2 (en) | Secure spin torque transfer magnetic random access memory (STTMRAM) | |
US9373377B2 (en) | Apparatuses, integrated circuits, and methods for testmode security systems | |
CN1389873A (zh) | 半导体存储器 | |
JP2677342B2 (ja) | 携帯形半導体記憶装置システム | |
CN104575609B (zh) | Otp寄存器中的芯片标识符读写方法 | |
JP2003203012A (ja) | マイクロコンピュータ装置 | |
Xiao et al. | A physically-secure write scheme of Multi-time Programmable RRAM for critical information storage | |
ES2683998T3 (es) | Dispositivo de memoria con modo de prueba segura | |
KR20240017315A (ko) | 비휘발성 메모리의 보안 프로그래밍을 위한 메모리장치 및 방법 |
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 |