CN114237492A - 非易失性存储器保护方法及装置 - Google Patents
非易失性存储器保护方法及装置 Download PDFInfo
- Publication number
- CN114237492A CN114237492A CN202111383849.8A CN202111383849A CN114237492A CN 114237492 A CN114237492 A CN 114237492A CN 202111383849 A CN202111383849 A CN 202111383849A CN 114237492 A CN114237492 A CN 114237492A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- protection
- write
- ecc
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 52
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 238000012795 verification Methods 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 16
- 238000012937 correction Methods 0.000 claims description 14
- 230000017105 transposition Effects 0.000 claims description 11
- 238000012790 confirmation Methods 0.000 claims description 6
- 230000003993 interaction Effects 0.000 claims description 3
- 239000002245 particle Substances 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 239000000463 material Substances 0.000 claims description 2
- 230000003287 optical effect Effects 0.000 claims description 2
- 239000004065 semiconductor Substances 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 12
- 235000019580 granularity Nutrition 0.000 description 8
- 238000002955 isolation Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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/0614—Improving the reliability of storage systems
-
- 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
- G06F3/0622—Securing storage systems in relation to access
-
- 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)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种非易失性存储器保护方法及装置的技术方案,包括:将非易失性存储器划分为若干域;根据处理器的写操作指令及读操作指令,执行对应的访问控制处理;写操作指令的访问控制处理包括写保护控制、数据加扰处理、安全校验及写入数据;读操作指令的访问控制处理包括读保护控制、数据获取、安全校验及数据解扰处理。本发明的有益效果为:通过加密和扰动算法实现了加密和扰动;灵活性,用户可以选择域的保护方式;低成本,本发明提供了可以根据不同的安全性与成本的需求,进行平衡,减少了成本。
Description
技术领域
本发明涉及计算机存储设备领域,具体涉及了一种非易失性存储器保护方法及装置。
背景技术
安全存储是目前安全以及存储业界一个越来越重要的课题。目前,互联网的日新月异,用户隐私,数据安全,安全支付等等应用都与安全储存有着更高的要求。当然上述的安全都是一个系统概念,要在数据的发起端,传输路径,存储路径,目的端都实现高效安全的防护。其中存储就是在上述步骤都会需要的设备,所以安全存储就是重要的安全技术。
安全存储,顾名思义就是让存储器中存储的数据不被非法获取,保证内容的安全性,即使数据泄露也不会泄露数据信息的技术。非易失性存储,主要特点就是掉电后存储内容不会消失,也可以细分为一次性编程存储以及多次编程存储。而安全保护的重点在于两点。第一,存储内容的完整性以及正确性,两个都是防止数据被篡改;第二,存储内容的可获取性,这个是防止存储内容被一些没有权限的主机获取。对于第一点,非易失性存储器一般使用double-bits(双位)的方式,既是备份1片非易失性存储单元,输出时2片相或后输出,保证工艺偏差以及错误注入攻击造成的数据错误。这样的缺点是攻击两片时,可能不能纠正错误,同时成本较高,原先1片存储器变成2片存储器。对于第二点,非易失性存储器使用数据加密的方式,数据烧写时都是密文烧写,读取时都是读取密文后再解密。这样的缺点是灵活性较小,对于非易失性存储器中一次性编程存储器只能烧写一次,一旦加密后只能烧写一次,同时因为加密往往是多bits处理,所以会造成一片多bits区域必须一次性烧写;对于非易失性存储器中多次编程存储器,可以多次编程,加密时就没有一次性编程的烧写。上述两种加解密特性都需要兼容。
现有技术存在以下缺点:
(1)灵活性差,一般的都是必须依托固定算法以及固定保护机制;
(2)成本高,很多非易失性存储器的数据完整性都是使用double-bits方式进行,会造成存储设备的浪费;
(3)方案效率不高,加解密本身会占用存储读写速度,处理时间大大增加。
发明内容
本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种非易失性存储器保护方法及装置,实现了增加非易失性存储器的安全性和灵活性,同时减少了使用成本。
本发明的技术方案包括一种非易失性存储器保护方法,其特征在于,该方法包括:将非易失性存储器划分为若干域;根据处理器的写操作指令及读操作指令,执行对应的访问控制处理;所述写操作指令的所述访问控制处理包括写保护控制、数据加扰处理、安全校验及写入数据;所述读操作指令的所述访问控制处理包括读保护控制、数据获取、安全校验及数据解扰处理。
根据所述的非易失性存储器保护方法,其中将非易失性存储器划分为若干域包括:根据所述非易失性存储器的保护颗粒度以及保护方法,将所述非易失性存储器划分为比特域、字节域、字域及整个域,所述保护颗粒度为颗粒的大小,所述保护方法包括ECC安全方法及双位安全方法。
根据所述的非易失性存储器保护方法,其中将所述比特域、字节域、字域及整个域划分为安全区域及非安全区域,所述安全区域用于存储所述ECC安全方法及所述双位安全方法的纠错码及保护码。
根据所述的非易失性存储器保护方法,其中读保护控制包括:获取所述处理器的所述写操作指令及对应的所述域;进行读保护确认,对于要写入的域进行判断,根据所写入的数据类型及所述域,判定所写入的数据是否能够写入,若不能进行写入则屏蔽所写入的数据并结束写入流程;进行安全鉴权判断,确定所述写操作指令为安全写入或非安全写入,所述安全写入用于写入所述安全区域及所述非安全区域,所述非安全写入所述非安全区域;对于写入的数据,依次进行数据加扰、加密、明文处理,其中加扰、加密、明文根据所写入的所述域进行策略选择,并执行数据处理后的输出;根据所述写操作指令,判断是否进行ECC判断,如果不需要ECC判断则使用双位处理保护数据完整性;如果需要ECC处理,写入存储器数据后进入ECC校验;所述ECC校验根据所访问的所述域及存储空间采用对应的ECC算法进行纠错;执行完所述ECC算法后,将数据及ECC算法写入所述非易失性存储器。
根据所述的非易失性存储器保护方法,其中读保护控制包括:获取所述处理器的所述读操作指令及所访问的所述域;进行读保护确认,对于要读取的所述域进行判断,根据所读取的数据类型及所述域,判定所读取的数据是否能够读取,若不能进行读取则屏蔽所读取的数据并结束读取流程;进行安全鉴权判断,确定所述写操作指令为安全读取或非安全读取,所述安全读取用于读取所述安全区域及所述非安全区域,所述非安全读取所述非安全区域;根据所述写操作指令,判断是否进行ECC判断,如果不需要ECC判断则使用双位处理保护数据完整性;如果需要ECC处理,读取存储器数据后进入ECC校验;ECC校验成功后,进入数据处理过程,否则直接输出读取错误信息,并进行ECC校验失败上报;以及对于读取的数据,依次进行数据解扰、解密、明文处理,其中解扰、解密、明文根据所读取的区域进行策略选择,并执行数据处理后的输出。
根据所述的非易失性存储器保护方法,其中该方法还包括:对每个所述域设置对应的保护控制位,所述保护控制位包括:处理器对所述非易失性存储器进行访问时先对所述保护控制位进行访问,获取用于安全鉴权的保护码或纠错码,根据返回的所述保护码或纠错码,执行对所述非易失性存储器的后续读取及写入。
根据所述的非易失性存储器保护方法,其中数据加扰及数据解扰包括:以所述非易失性存储器保护唯一标识及内建密钥作为数据,执行异或和拼接处理,得到第一密钥;将所述第一密钥执行内部换位运算,得到第二密钥,其中内部换位运算包括将所述第一密钥划分为多个等同大小的密钥数据,将密钥数据按照最高位到最低位进行排布,将密钥数据的奇数比特位及偶数比特位进行对应的增大或减少;对所述第二密钥执行内部高低位之间的异或运算,得到第三密钥,所述第二密钥根据所述处理器访问的地址执行异或运算,得到第四密钥;数据的加密或解密通过所述第三密钥与存储数据进行异或运算,得到密文或明文;所述数据加扰和所述数据解扰通过所述第四密钥对存储数据进行高位或地位异或,执行数据换位的输入或输出,根据异或结果对异或位互换或保持原位,得到密文或明文。
根据所述的非易失性存储器保护方法,其中ECC保护方法及所述双位保护方法采用独立接口进行数据交互。
根据所述的非易失性存储器保护方法,其中非易失性存储器包括基于半导体材料的电子存储器、ROM和RAM的组合、芯片卡存储器、闪存及光盘驱动存储器。
本发明的技术方案还包括一种用于任一所述方法的非易失性存储器保护装置,其特征在于,该装置包括:非易失性存储器、读写控制模块、存储器读写控制模块、读写保护模块、数据加扰模块及ECC校验模块,所述读写控制模块分别连接所述处理器、所述读写保护模块、所述ECC校验模块及所述存储器读写控制模块,所述数据加扰模块分别连接所述读写保护模块及所述ECC校验模块,所述存储器连接所述存储器读写控制模块;所述读写控制模块及所述存储器读写控制模块用于根据所述非易失性存储器下发的写操作指令及读操作指令,执行对应的读写控制处理;所述读写保护模块、数据加扰模块及ECC校验模块用于对读写数据分别进行安全校验、数据加扰处理及ECC校验。
本发明的有益效果为:高安全性,分不同的域实现不同的保护方式,同时通过加密和扰动算法实现了加密和扰动;灵活性,用户可以选择域的保护方式,同时可以根据成本选择ECC验证还是双位验证,还可以根据性能需求选择读写保护的颗粒度等;低成本,本发明提供了可以根据不同的安全性与成本的需求,进行平衡,可以使用ECC校验替换双位验证,减少成本,也可以使用整体读写保护替代比特位的读写保护,减少成本。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1所示为根据本发明实施方式的方法示意图;
图2所示为根据本发明实施方式的装置示意图;
图3所示为根据本发明实施方式的写入流程示意图;
图4所示为根据本发明实施方式的读取流程示意图;
图5所示为根据本发明实施方式的读写保护机制示意图;
图6所示为根据本发明实施方式的存储安全隔离示意图;
图7所示为根据本发明实施方式的数据加扰逻辑流程图。
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。
本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
图1所示为根据本发明实施方式的方法示意图,其主要包括:将非易失性存储器划分为若干域;根据处理器的写操作指令及读操作指令,执行对应的访问控制处理;写操作指令的访问控制处理包括写保护控制、数据加扰处理、安全校验及写入数据;读操作指令的访问控制处理包括读保护控制、数据获取、安全校验及数据解扰处理。其中数据加扰及数据解扰时还会进行数据加密及解密。
图2所示为根据本发明实施方式的装置示意图,顶层支持一个CPU配置读写接口,支持一个存储交互接口。本装置包括:
当CPU等主机需要访问存储器时,首先通过配置接口进入读写控制模块,判断读写操作以及访问的区域以及region(域),以及对应的处理方式;
接收到操作指令后区分读写,写操作时依次进行读写保护控制,数据加扰处理,ECC校验码产生,最终写入存储器;读操作时,也是首先进行读写保护控制,通过权限的操作从存储器获取数据,进行ECC校验纠错,再进行数据解扰,输出;
读写保护模块,根据CPU输入的地址,查看对应region的保护颗粒度,产生prot_mask信号表示那些读写数据是限制的,颗粒度为4种bit/byte/word/whole(整个region)。此外在这里还需要判断需要访问的region属于安全区域还是非安全区域,实现安全隔离
数据加扰模块,根据CPU输入的地址,查看对应region的保护算法,根据不同的算法进行数据处理后输出sc_data。
ECC校验模块,如果是读操作时,进行ECC校验以及纠错;写操作时,进行ECC code产生。对于不进行ECC的就需要进行double-bits保护。ECC目前使用一个64bits的算法,产生8bits校验码
集成一个存储器读写控制模块,用于不同的存储器,本发明的实施例主要用于非易失性存储器。
图3所示为根据本发明实施方式的写入流程示意图,主要实现进行写保护确认,对于要烧写(写入)的区域进行判断,如果烧写一个word(字)数据,可能其中一些bits(比特)/bytes(字节)/整个word(字)都不能烧写,那么待烧写的数据就需要按照情况进行屏蔽处理。例如要烧写0xffffffff,变成烧写0xfffffff0或者0x0亦或者0xfffffffe,如果是全0,直接结束烧写流程;
进行安全鉴权判断,满足两个条件,安全烧写操作可以访问所有区域,非安全烧写只能访问非安全区域,否则直接结束烧写流程;
对于烧写数据进行加扰/加密/明文处理,这三种方式可以根据不同的区域进行策略选择;
判断是否进行ecc判断,如果不需要则使用double-bits保护数据完整性,即同时烧写两片存储器;如果需要ecc处理,那么进入ecc code计算;
ecc code(校验码,用于ecc的安全校验)计算,可以使用不同的ecc算法,达到不同的纠错能力,但同时需要考虑ecc code的存储空间占用。ecc code计算完毕后直接烧写数据以及ecc code。
图4所示为根据本发明实施方式的读取流程示意图,包括:
进行读保护确认,对于要读取的区域进行判断,如果读取一个word数据,可能其中一些bits/bytes/整个word都不能被读取,那么待读取的数据就需要按照情况进行屏蔽处理。例如要读取0xffffffff,变成读取结果0xfffffff0或者0x0亦或者0xfffffffe,如果是整word不能读取,直接结束读取流程;
进行安全鉴权判断,满足两个条件,安全读取操作可以访问所有区域,非安全读取只能访问非安全区域,否则直接结束读取流程;
判断是否进行ecc判断,如果不需要则使用double-bits保护数据完整性,即同时读取两片存储器,或逻辑后输出;如果需要ecc处理,读取存储器数据后进入ecc校验;
ecc校验成功后,进入数据处理过程,否则直接输出全0,并进行ecc校验失败上报;
对于读取到数据,进行解扰/解密/明文处理,这三种方式可以根据不同的区域进行策略选择,数据处理后输出。
图5所示为根据本发明实施方式的读写保护机制示意图,本发明实施方式中利用非易失性存储的特点,对于存储器中一些区域实现了读写访问限制,这些限制的控制既是利用非易失性存储中存储的数据实现的,例如一个region0为32bits,也就是说非易失性存储器中一段连续的32bits空间,这段空间需要按照byte为单位进行读写保护控制,需要8个bits存储在非易失性存储器中,这是因为32bits可以分为4个bytes,同时又分读写控制,所以一共4x2=8bits,每个bit控制一个byte大小的读或者写操作,如果该bit为1则不能读或者写操作,如果该bit为0则可以读或者写操作。
综上非易失性存储器中应该存在一个区域专门放置读写保护控制位,本发明中支持四种保护颗粒度,整体保护/按照word保护/按照byte保护/按照bit保护。颗粒度越细需要的读写保护控制就越多,因为要保护的区域大小是一定的。按照不同的颗粒度区分,主要可以平衡逻辑面积以及安全性的要求。
读写保护的机制可以参考图5所述,每次读写非易失性存储器一段空间时(如下图region0),本发明首先会读取对应的protect code区域(通过访问行为1),得到的protectcode数据用于进行访问region0的读写鉴权控制,如果对应protect code bit0为1那么region0的byte0不能烧写;如果对应protect code bit4为1那么region0的byte0不能读取,以此类推。只有鉴权通过的区域才可以通过访问2到达存储器中该空间。需要注意的是下图中访问1/2只是访问行为,硬件接口不代表有两个。
图6所示为根据本发明实施方式的存储安全隔离示意图,本发明的实施例利用安全与非安全的概念,天然得把非易失性存储器分为安全和非安全区域,对于ecc_code/protect_code以及一些安全要求比较高的区域都放到安全区域,如果使用double-bits的方案,double-bits中的全部非易失性存储器都会被分为安全与非安全区域。存储安全隔离实现安全操作可以访问全部区域,非安全操作只能访问非安全区域的规则。
对于非易失性存储器的区域划分可以如下图所示:对于存储器可以分为安全区域与非安全区域,同时安全保护相关的ecc_code/protect code都放在安全区域,实现硬件隔离。如果配置中对于某些区域还是使用double-bits,那么对于使用double-bits的方案也是相同的划分,对于ecc_code以及protect-code默认使用double-bits的方式保护。下述double-bits存储器的大小是小于或者等于存储器的大小,因为存储区域0或者存储区域1会有很多region实现ecc保护的方式不需要double-bits。本发明与两片存储器使用两个接口访问,可以提升访问效率。
图7所示为根据本发明实施方式的数据加扰逻辑流程图。本发明的技术方案提供了一种数据加扰和加解密算法,参考图7,可以对于非易失性存储的数据进行数据保护,可以适用于全部存储空间。
算法实现逻辑流程如下:
(1)使用chip id(每颗芯片唯一性的标识)以及芯片内建的逻辑key,作为key的原始输入,经过异或以及拼接后生成新的128bits f1_key,具体按照word为单位,高位word与低位word进行异或放到128bits中任意一个word中去;
(2)对于f1_key进行内部换位运算生成f2_key_pre,换位算法,使用把128bits分为16个8bits,从最高位8bits开始排布,按照{bit[0],bit[127],bit[1],bit[126],bit[2],bit[125],bit[3],bit[124]}排布,此后接着的8bits,奇数bit位减4,偶数bit位加4,对于次高8bits排布既是{bit[4],bit[123],bit[5],bit[122],bit[6],bit[121],bit[7],bit[120]},以此类推;
(3)对于生成f2_key_pre进行内部高低位之间异或,以及与addr_in异或产生出32bits f2_key,具体既是f2_key_pre可以被分为4个words,4个words之间异或生成一个32bits key,这个key再与addr_in(要访问的区域地址,这样每个地址使用的key不同)异或,产生32bits f2_key;
(4)对于数据加密的算法,直接使用f2_key与data_in异或,生成密文;对于数据加扰算法,需要利用f2_key产生data_in的换位运算
(5)对于数据加扰算法,data_in的换位运算使用f2_key 32bits高16bits与低16bits异或,作为为数据换位的输入,如果异或结果为1那么对应位需要与高16bits对应位进行互换,否则保持原位置不变,例如f2_key为0xffff_0000,那么高位16bits与低16bits按位异或即为0xffff,那么对于输入数据data_in位0x5555_aaaa,数据加扰后位0xaaaa_5555。
对于解密或者解扰,直接再进行一次运算即可,上述数据加解密,数据加解扰算法都是组合逻辑,没有任何延迟。
应当认识到,本发明实施例中的方法步骤可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (10)
1.一种非易失性存储器保护方法,其特征在于,该方法包括:
将非易失性存储器划分为若干域;
根据处理器的写操作指令及读操作指令,执行对应的访问控制处理;
所述写操作指令的所述访问控制处理包括写保护控制、数据加扰处理、安全校验及写入数据;
所述读操作指令的所述访问控制处理包括读保护控制、数据获取、安全校验及数据解扰处理。
2.根据权利要求1所述的非易失性存储器保护方法,其特征在于,所述将非易失性存储器划分为若干域包括:
根据所述非易失性存储器的保护颗粒度以及保护方法,将所述非易失性存储器划分为比特域、字节域、字域及整个域,所述保护颗粒度为颗粒的大小,所述保护方法包括ECC安全方法及双位安全方法。
3.根据权利要求2所述的非易失性存储器保护方法,其特征在于,该方法还包括:将所述比特域、字节域、字域及整个域划分为安全区域及非安全区域,所述安全区域用于存储所述ECC安全方法及所述双位安全方法的纠错码及保护码。
4.根据权利要求2所述的非易失性存储器保护方法,其特征在于,所述读保护控制包括:
获取所述处理器的所述写操作指令及对应的所述域;
进行读保护确认,对于要写入的域进行判断,根据所写入的数据类型及所述域,判定所写入的数据是否能够写入,若不能进行写入则屏蔽所写入的数据并结束写入流程;
进行安全鉴权判断,确定所述写操作指令为安全写入或非安全写入,所述安全写入用于写入所述安全区域及所述非安全区域,所述非安全写入所述非安全区域;
对于写入的数据,依次进行数据加扰、加密、明文处理,其中加扰、加密、明文根据所写入的所述域进行策略选择,并执行数据处理后的输出;
根据所述写操作指令,判断是否进行ECC判断,如果不需要ECC判断则使用双位处理保护数据完整性;如果需要ECC处理,写入存储器数据后进入ECC校验;
所述ECC校验根据所访问的所述域及存储空间采用对应的ECC算法进行纠错;
执行完所述ECC算法后,将数据及ECC算法写入所述非易失性存储器。
5.根据权利要求3所述的非易失性存储器保护方法,其特征在于,所述读保护控制包括:
获取所述处理器的所述读操作指令及所访问的所述域;
进行读保护确认,对于要读取的所述域进行判断,根据所读取的数据类型及所述域,判定所读取的数据是否能够读取,若不能进行读取则屏蔽所读取的数据并结束读取流程;
进行安全鉴权判断,确定所述写操作指令为安全读取或非安全读取,所述安全读取用于读取所述安全区域及所述非安全区域,所述非安全读取所述非安全区域;
根据所述写操作指令,判断是否进行ECC判断,如果不需要ECC判断则使用双位处理保护数据完整性;如果需要ECC处理,读取存储器数据后进入ECC校验;
ECC校验成功后,进入数据处理过程,否则直接输出读取错误信息,并进行ECC校验失败上报;以及
对于读取的数据,依次进行数据解扰、解密、明文处理,其中解扰、解密、明文根据所读取的区域进行策略选择,并执行数据处理后的输出。
6.根据权利要求4或5所述的非易失性存储器保护方法,其特征在于,该方法还包括:
对每个所述域设置对应的保护控制位,所述保护控制位包括:处理器对所述非易失性存储器进行访问时先对所述保护控制位进行访问,获取用于安全鉴权的保护码或纠错码,根据返回的所述保护码或纠错码,执行对所述非易失性存储器的后续读取及写入。
7.根据权利要求4或5所述的非易失性存储器保护方法,其特征在于,所述数据加扰及数据解扰包括:
以所述非易失性存储器保护唯一标识及内建密钥作为数据,执行异或和拼接处理,得到第一密钥;
将所述第一密钥执行内部换位运算,得到第二密钥,其中内部换位运算包括将所述第一密钥划分为多个等同大小的密钥数据,将密钥数据按照最高位到最低位进行排布,将密钥数据的奇数比特位及偶数比特位进行对应的增大或减少;
对所述第二密钥执行内部高低位之间的异或运算,得到第三密钥,所述第二密钥根据所述处理器访问的地址执行异或运算,得到第四密钥;
数据的加密或解密通过所述第三密钥与存储数据进行异或运算,得到密文或明文;
所述数据加扰和所述数据解扰通过所述第四密钥对存储数据进行高位或地位异或,执行数据换位的输入或输出,根据异或结果对异或位互换或保持原位,得到密文或明文。
8.根据权利要求4或5所述的非易失性存储器保护方法,其特征在于,所述ECC保护方法及所述双位保护方法采用独立接口进行数据交互。
9.根据权利要求1所述的非易失性存储器保护方法,其特征在于,所述非易失性存储器包括基于半导体材料的电子存储器、ROM和RAM的组合、芯片卡存储器、闪存及光盘驱动存储器。
10.一种用于实现权利要求1-9任一所述方法的非易失性存储器保护装置,其特征在于,该装置包括:非易失性存储器、读写控制模块、存储器读写控制模块、读写保护模块、数据加扰模块及ECC校验模块,所述读写控制模块分别连接所述处理器、所述读写保护模块、所述ECC校验模块及所述存储器读写控制模块,所述数据加扰模块分别连接所述读写保护模块及所述ECC校验模块,所述存储器连接所述存储器读写控制模块;
所述读写控制模块及所述存储器读写控制模块用于根据所述非易失性存储器下发的写操作指令及读操作指令,执行对应的读写控制处理;
所述读写保护模块、数据加扰模块及ECC校验模块用于对读写数据分别进行安全校验、数据加扰处理及ECC校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111383849.8A CN114237492A (zh) | 2021-11-19 | 2021-11-19 | 非易失性存储器保护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111383849.8A CN114237492A (zh) | 2021-11-19 | 2021-11-19 | 非易失性存储器保护方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114237492A true CN114237492A (zh) | 2022-03-25 |
Family
ID=80750299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111383849.8A Pending CN114237492A (zh) | 2021-11-19 | 2021-11-19 | 非易失性存储器保护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237492A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115994370A (zh) * | 2023-01-29 | 2023-04-21 | 紫光同芯微电子有限公司 | 一种软件加密处理方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043639A (zh) * | 2009-10-12 | 2011-05-04 | 珠海全志科技有限公司 | 一种从nand flash启动处理系统的方法及装置 |
US20130091405A1 (en) * | 2011-10-07 | 2013-04-11 | Aeroflex Colorado Springs Inc. | Independent orthogonal error correction and detection |
CN103777904A (zh) * | 2014-02-12 | 2014-05-07 | 威盛电子股份有限公司 | 数据储存装置以及数据加扰与解扰方法 |
CN106919865A (zh) * | 2017-03-02 | 2017-07-04 | 上海东软载波微电子有限公司 | 非易失性存储器数据加密系统 |
CN108229215A (zh) * | 2017-12-06 | 2018-06-29 | 杭州中天微系统有限公司 | 一种地址加扰的存储装置及方法 |
US20180323808A1 (en) * | 2017-05-08 | 2018-11-08 | Silicon Laboratories Inc. | ECC Memory Controller Supporting Secure And Non-Secure Regions |
CN110389851A (zh) * | 2018-04-20 | 2019-10-29 | 三星电子株式会社 | 具有错误校正功能的存储器设备及其操作方法 |
-
2021
- 2021-11-19 CN CN202111383849.8A patent/CN114237492A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043639A (zh) * | 2009-10-12 | 2011-05-04 | 珠海全志科技有限公司 | 一种从nand flash启动处理系统的方法及装置 |
US20130091405A1 (en) * | 2011-10-07 | 2013-04-11 | Aeroflex Colorado Springs Inc. | Independent orthogonal error correction and detection |
CN103777904A (zh) * | 2014-02-12 | 2014-05-07 | 威盛电子股份有限公司 | 数据储存装置以及数据加扰与解扰方法 |
CN106919865A (zh) * | 2017-03-02 | 2017-07-04 | 上海东软载波微电子有限公司 | 非易失性存储器数据加密系统 |
US20180323808A1 (en) * | 2017-05-08 | 2018-11-08 | Silicon Laboratories Inc. | ECC Memory Controller Supporting Secure And Non-Secure Regions |
CN108229215A (zh) * | 2017-12-06 | 2018-06-29 | 杭州中天微系统有限公司 | 一种地址加扰的存储装置及方法 |
CN110389851A (zh) * | 2018-04-20 | 2019-10-29 | 三星电子株式会社 | 具有错误校正功能的存储器设备及其操作方法 |
Non-Patent Citations (1)
Title |
---|
王辉;汪芸;马骏驰;: "一种考虑防护措施的缓存可靠性评估方法", 东南大学学报(自然科学版), no. 01, 20 January 2015 (2015-01-20), pages 17 - 22 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115994370A (zh) * | 2023-01-29 | 2023-04-21 | 紫光同芯微电子有限公司 | 一种软件加密处理方法、装置、设备及介质 |
CN115994370B (zh) * | 2023-01-29 | 2023-12-19 | 紫光同芯微电子有限公司 | 一种软件加密处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9537656B2 (en) | Systems and methods for managing cryptographic keys in a secure microcontroller | |
KR102113937B1 (ko) | 메모리 무결성 | |
EP1638033B1 (en) | Self testing and securing RAM system and method | |
KR102013841B1 (ko) | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 | |
CN103210396B (zh) | 包括用于保护敏感代码和数据的架构的方法和装置 | |
EP3326105B1 (en) | Technologies for secure programming of a cryptographic engine for secure i/o | |
CN100386707C (zh) | 生成用在隔离执行环境中的密钥层组 | |
JP2710754B2 (ja) | チップ・カードのキーを保護する装置 | |
US20070101158A1 (en) | Security region in a non-volatile memory | |
US8347114B2 (en) | Method and apparatus for enforcing a predetermined memory mapping | |
CN100578473C (zh) | 嵌入式系统和增加嵌入式系统安全性的方法 | |
US10318765B2 (en) | Protecting critical data structures in an embedded hypervisor system | |
US9152576B2 (en) | Mode-based secure microcontroller | |
US20070050642A1 (en) | Memory control unit with configurable memory encryption | |
US10797857B2 (en) | Data interleaving scheme for an external memory of a secure microcontroller | |
US7877615B2 (en) | Semiconductor devices and scrambled data transmission methods thereof | |
WO2008071222A1 (en) | Protecting a programmable memory against unauthorized modification | |
CN114237492A (zh) | 非易失性存储器保护方法及装置 | |
KR101687492B1 (ko) | 분산적으로 데이터를 저장하는 방법 및 암호학적 정보 처리 장치 | |
CN107861892B (zh) | 一种实现数据处理的方法及终端 | |
KR20180059217A (ko) | 메모리 데이터 보안 처리 장치 및 방법 | |
CN105512560A (zh) | 一种一次性可编程存储器芯片和及其的控制方法 | |
EP3907633B1 (en) | System and method for obfuscating opcode commands in a semiconductor device | |
CN109583196B (zh) | 一种密钥生成方法 | |
CN117216813B (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 |