CN113468518A - 用于针对非易失性存储器进行信息保护的方法和设备 - Google Patents
用于针对非易失性存储器进行信息保护的方法和设备 Download PDFInfo
- Publication number
- CN113468518A CN113468518A CN202010235475.4A CN202010235475A CN113468518A CN 113468518 A CN113468518 A CN 113468518A CN 202010235475 A CN202010235475 A CN 202010235475A CN 113468518 A CN113468518 A CN 113468518A
- Authority
- CN
- China
- Prior art keywords
- seed
- die
- data
- dependency
- controller
- 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 51
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000001419 dependent effect Effects 0.000 claims abstract description 50
- 238000006243 chemical reaction Methods 0.000 claims description 78
- 230000008707 rearrangement Effects 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 231100000957 no side effect Toxicity 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009466 transformation Effects 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- 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/75—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 inhibiting the analysis of circuitry or operation
- G06F21/755—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 inhibiting the analysis of circuitry or operation with measures against power attack
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种用于针对非易失性存储器进行信息保护的方法和设备,其中该方法应用于控制器。该方法包括:取得第一裸片依赖性种子与第二裸片依赖性种子,其中该第一裸片依赖性种子与该第二裸片依赖性种子对应于用来实施该非易失性存储器的裸片;依据该第一裸片依赖性种子对一地址的多组地址信息进行重新排列,以保护该控制器与该非易失性存储器之间的至少一个地址信号所载的该地址;以及依据该第二裸片依赖性种子对一组数据的多个子集合进行重新排列,以保护该控制器与该非易失性存储器之间的至少一个数据信号所载的该组数据。
Description
技术领域
本发明涉及存储器控制,尤其涉及一种用于针对非易失性存储器(non-volatilememory,NVM)进行信息保护的方法以及相关设备(apparatus),诸如控制器、包含该控制器的电子装置等。
背景技术
针对边信道攻击(side channel attack),黑客可依据控制器集成电路(integrated circuit,IC)对闪存(Flash memory)的读取或写入行为通过逻辑分析器(logic analyzer)或电流计来进行逆向工程,例如进行关联性分析以判断程序正在进行某一种运算行为,且进一步分析模式(patterns)以对某读取或写入地址进行攻击。相关技术中提出了关于内容加密的防护方法以尝试解决上述问题,但可能有额外的问题,诸如某些副作用。例如,关于上述防护方法(尤其,加密/解密等)的计算非常耗费时间,这可降低系统效能。另外,虽然厂商(vendor)可对不同版本的固件(firmware)进行加密,黑客可直接将旧电子产品中的旧闪存代换为新电子产品中的新闪存,使新版的固件可运行在旧版的IC平台上,以分析读取或写入模式,这可带来针对系统安全性的极大威胁。因此,需要一种新颖的方法以及相关架构,以在没有副作用或较不可能带来副作用的情况下解决相关技术的问题。
发明内容
本发明的目的在于提供一种针对非易失性存储器进行信息保护的方法以及相关设备,诸如控制器、包含该控制器的电子装置等,以解决上述的问题。
本发明的至少一个实施例提供一种用于针对非易失性存储器进行信息保护的方法,其中该方法应用于控制器。该方法包括:取得第一裸片依赖性种子(die-dependentseed)与第二裸片依赖性种子,其中该第一裸片依赖性种子与该第二裸片依赖性种子对应于用来实施该非易失性存储器的裸片(die);依据该第一裸片依赖性种子对一地址的多组地址信息进行重新排列(rearrangement),以保护该控制器与该非易失性存储器之间的至少一个地址信号所载(carry)的该地址;以及依据该第二裸片依赖性种子对一组数据的多个子集合进行重新排列,以保护该控制器与该非易失性存储器之间的至少一个数据信号所载的该组数据。
除了上述方法外,本发明也提供一种控制器,该控制器可应用于(applicable to)针对非易失性存储器进行信息保护。该控制器包含核心电路、以及分别耦合至该核心电路的地址信息重新排列电路与数据转换电路。该核心电路可用来依据从该非易失性存储器载入(load)的预定信息控制该控制器,以控制电子装置的操作,其中该电子装置包含该控制器以及该非易失性存储器。另外,该地址信息重新排列电路可用来进行地址信息重新排列,其中该地址信息重新排列电路取得第一裸片依赖性种子,且依据该第一裸片依赖性种子对一地址的多组地址信息进行重新排列,以保护该控制器与该非易失性存储器之间的至少一个地址信号所载的该地址。此外,该数据转换电路可用来进行数据转换,其中该数据转换电路取得第二裸片依赖性种子,且依据该第二裸片依赖性种子对一组数据的多个子集合进行重新排列,以保护该控制器与该非易失性存储器之间的至少一个数据信号所载的该组数据。例如,该第一裸片依赖性种子与该第二裸片依赖性种子对应于用来实施该非易失性存储器的裸片。
依据某些实施例,本发明也提供包含上述控制器的电子装置,其中该电子装置包含该非易失性存储器。
除了上述方法外,本发明也提供一种用来针对非易失性存储器进行信息保护的设备。该设备包含地址信息重新排列电路与数据转换电路。另外,该地址信息重新排列电路可用来进行地址信息重新排列,其中该地址信息重新排列电路取得第一裸片依赖性种子,且依据该第一裸片依赖性种子对一地址的多组地址信息进行重新排列,以保护控制器与该非易失性存储器之间的至少一个地址信号所载的该地址。此外,该数据转换电路可用来进行数据转换,其中该数据转换电路取得第二裸片依赖性种子,且依据该第二裸片依赖性种子对一组数据的多个子集合进行重新排列,以保护该控制器与该非易失性存储器之间的至少一个数据信号所载的该组数据。例如,该第一裸片依赖性种子与该第二裸片依赖性种子对应于用来实施该非易失性存储器的裸片。
本发明所提出的方法以及相关设备能确保该电子装置能在各种状况下妥善地操作,其中上述相关设备例如:该控制器、该电子装置等。此外,依据本发明的相关实施例来实施并不会增加许多额外的成本。因此,相关技术的问题可被妥善地解决。相较于相关技术,本发明能在没有副作用或较不可能带来副作用的情况下实现强健的信息保护机制。
附图说明
图1为依据本发明一个实施例的电子装置的示意图。
图2为依据本发明一个实施例的一种用来针对非易失性存储器进行信息保护的方法的流程图。
图3示出图2所示方法在本发明一个实施例中的写入控制方案。
图4示出图2所示方法在本发明一个实施例中的读取控制方案。
图5示出图2所示方法在本发明一个实施例中的混和(hybrid)转换控制方案。
图6示出图2所示方法在本发明一个实施例中的地址信息重新排列控制方案。
图7示出图2所示方法在本发明一个实施例中的数据转换控制方案。
图8示出图7所示数据转换控制方案的读取与还原操作的另一示例。
图9示出图7所示数据转换控制方案的读取与还原操作的另一示例。
图10示出图7所示数据转换控制方案的读取与还原操作的另一示例。
具体实施方式
图1为依据本发明一个实施例的电子装置100的示意图。电子装置100可包含彼此耦合的控制器100C与非易失性存储器100M,但本发明不限于此。例如,电子装置100还可以包含其它元件诸如触敏(touch-sensitive)显示模块、一个或多个声音输出模块、一个或多个无线传输模块等,其中这些元件中的至少一部分(例如一部分或全部)可通过总线彼此耦合,且耦合至控制器100C。为了便于理解,电子装置100的示例可包含(但不限于):多功能移动电话(multifunctional mobile phone)、可穿戴装置(wearable device)、平板电脑(tablet)、以及个人电脑(personal computer),诸如笔记本电脑。
控制器100C可包含核心电路101、储存单元110、地址信息重新排列电路120、种子产生电路130以及数据转换电路140,尤其,种子产生电路130可包含种子产生器(seedgenerator)130SG(例如计时器)以及多个种子转换器131、132、133、134与135,且数据转换电路140可包含数据子集合重新排列电路142与完整性码(integrity code)选择性排列电路144,其中地址信息重新排列电路120与数据转换电路140可耦合于核心电路101与控制器100C的NVM接口电路之间,而该NVM接口电路可通过控制器100C与NVM 100M之间的一组信号诸如IO0、IO1、IO2、IO3、CLK等为控制器100C对NVM 100M进行读取或写入操作,但本发明不限于此。在某些实施例中,储存单元110、地址信息重新排列电路120、种子产生电路130以及数据转换电路140的至少一部分(例如一部分或全部)可被整合进入核心电路101。另外,控制器100C(例如其NVM接口电路)可符合联合电子设备工程委员会(Joint Electron DeviceEngineering Council,JEDEC)规范或其它规范。
依据本实施例,核心电路101可依据从NVM 100M载入的预定信息控制控制器100C,以控制电子装置100的操作。另外,控制器100C可应用于针对NVM 100M进行信息保护,以对抗黑客的各种不当行为。地址信息重新排列电路120与数据转换电路140可分别进行地址信息重新排列与数据转换,尤其,通过某些种子诸如预先被储存在储存单元110的多个裸片依赖性种子Seed1与Seed2以及种子产生电路130所产生的多个转换种子(converted seed)Seed3.1、Seed3.2、Seed3.3、Seed3.4与Seed3.5的相关控制,以进行信息保护。例如,储存单元110可提供裸片依赖性种子Seed1给地址信息重新排列电路120,以使地址信息重新排列电路120依据裸片依赖性种子Seed1进行该地址信息重新排列,并且储存单元110与种子产生电路130可分别提供裸片依赖性种子Seed2以及转换种子Seed3.1、Seed3.2、Seed3.3、Seed3.4与Seed3.5给数据转换电路140,以使数据转换电路140(例如数据子集合重新排列电路142)依据裸片依赖性种子Seed2以及转换种子Seed3.1、Seed3.2、Seed3.3、Seed3.4与Seed3.5进行该数据转换。该数据转换可包含数据子集合重新排列,尤其,还可包含完整性码选择性排列,其中数据子集合重新排列电路142可依据裸片依赖性种子Seed2进行该数据子集合重新排列,而完整性码选择性排列电路144可依据转换种子Seed3.1、Seed3.2、Seed3.3、Seed3.4与Seed3.5进行该完整性码选择性排列,但本发明不限于此。
如图1所示,种子产生器130SG可产生初始种子Seed3,且种子转换器131、132、133、134与135可将初始种子Seed3分别转换为转换种子Seed3.1、Seed3.2、Seed3.3、Seed3.4与Seed3.5,以进行该数据转换。请注意,初始种子Seed3可随着时间变化而更新,且转换种子Seed3.1、Seed3.2、Seed3.3、Seed3.4与Seed3.5可随着初始种子Seed3变化而更新。因此,基于这些种子的该数据转换可带来控制器100C与NVM 100M之间的数据信号(例如信号IO0、IO1、IO2与IO3,尤其,由此传送中的数据)的各种变化。
此外,裸片依赖性种子Seed1与Seed2可对应于用来实施NVM 100M的裸片。当该裸片被代换为用来实施NVM 100M的另一裸片,裸片依赖性种子Seed1与Seed2可被更新以对应于该另一裸片。例如,多个电子装置{100}可通过量产来取得。针对分别用来实施这些电子装置{100}的各自的NVM{100M}的多个裸片,每一个裸片的裸片依赖性种子Seed1与Seed2分别不同于这些裸片中的任何其它裸片的裸片依赖性种子Seed1与Seed2。基于图1所示架构,本发明能在没有副作用或较不可能带来副作用的情况下实现强健的信息保护机制。
在上述实施例中,NVM 100M可通过闪存诸如NAND型闪存与NOR型闪存、电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EPRON)等方式来实施。另外,储存单元110可通过一次性编程(one-time programming)存储器元件诸如电子保险丝(electronic fuse,e-fuse)、寄存器诸如安全寄存器(secured register)等方式来实施。例如,储存单元110可包含至少一个电子保险丝和/或至少一个安全寄存器。此外,地址信息重新排列电路120与数据转换电路140(尤其,其内的数据子集合重新排列电路142)可分别通过多组开关等方式来实施。例如,地址信息重新排列电路120可包含一组开关,而这组开关可用来依据裸片依赖性种子Seed1对一组地址线中的两个或多个地址线进行交换,以进行该地址信息重新排列。又例如,数据转换电路140(尤其,其内的数据子集合重新排列电路142)可包含一组开关,而这组开关可用来依据裸片依赖性种子Seed2对一组数据线中的两个或多个数据线进行交换,以进行该数据子集合重新排列。
图2为依据本发明一个实施例的一种用于针对NVM诸如图1所示的NVM 100M进行信息保护的方法的流程图。该方法可被应用于相关设备诸如控制器100C、包含控制器100C的电子装置100等,且可由控制器100C来执行。举例来说,步骤S10~S18与S20~S28可分别执行于电子装置100的写入阶段PHASE(0)(例如生产阶段)与读取阶段PHASE(1)(例如终端使用者阶段),但本发明不限于此。为了便于理解,图2所示的工作流程中所述的第一裸片依赖性种子与第二裸片依赖性种子可分别描述为裸片依赖性种子Seed1与Seed2。
在步骤S10中,控制器100C取得裸片依赖性种子Seed1与Seed2。例如,地址信息重新排列电路120与数据转换电路140可分别从储存单元110取得裸片依赖性种子Seed1与Seed2。
在步骤S12中,控制器100C(例如地址信息重新排列电路120)依据裸片依赖性种子Seed1对地址的多组地址信息进行重新排列,以保护控制器100C与NVM 100M之间的至少一个地址信号所载的该地址,其中写入阶段PHASE(0)中的该地址可代表写入地址。例如,控制器100C可利用地址信息重新排列电路120中的该组开关,依据裸片依赖性种子Seed1对一组地址线中的两个或多个地址线进行交换,以重新排列(rearrange)该地址的该多组地址信息。
在步骤S14中,控制器100C(例如数据转换电路140)依据裸片依赖性种子Seed2对一组数据(例如一组写入数据)的多个子集合进行重新排列,以保护控制器100C与NVM 100M之间的至少一个数据信号所载的该组数据。例如,控制器100C可利用数据转换电路140(尤其,其内的数据子集合重新排列电路142)中的该组开关,依据裸片依赖性种子Seed2对一组数据线中的两个或多个数据线进行交换,以重新排列该组数据的该多个子集合。
在步骤S16中,控制器100C依据步骤S12中所述的该地址(例如该写入地址)对NVM100M进行写入操作,尤其,将步骤S14中已被重新排列的该组数据(例如该组写入数据)写入NVM 100M。
在步骤S18中,控制器100C判断写入阶段PHASE(0)中的写入是否完成。如果是,控制器100C可离开写入阶段PHASE(0),例如可在后续开机(例如下一次开机)的期间进入读取阶段PHASE(1),尤其,进入步骤S20;如果否,控制器100C可停留在写入阶段PHASE(0)以继续进行写入,尤其,进入步骤S10。
在步骤S20中,控制器100C取得裸片依赖性种子Seed1与Seed2。例如,地址信息重新排列电路120与数据转换电路140可分别从储存单元110取得裸片依赖性种子Seed1与Seed2。
在步骤S22中,控制器100C(例如地址信息重新排列电路120)依据裸片依赖性种子Seed1对一个地址的多组地址信息进行重新排列,以保护控制器100C与NVM 100M之间的至少一个地址信号所载的该地址,其中读取阶段PHASE(1)中的该地址可代表读取地址。例如,控制器100C可利用地址信息重新排列电路120中的该组开关,依据裸片依赖性种子Seed1对该组地址线中的两个或多个地址线进行交换,以重新排列这个地址的该多组地址信息。
在步骤S24中,控制器100C依据步骤S22中所述的该地址(例如该读取地址)对NVM100M进行读取操作,尤其,从NVM 100M读取一组数据(例如一组读取数据)。举例来说,这组数据可被载入至控制器100C中的随机存储器(Random Access Memory,RAM),但本发明不限于此。
在步骤S26中,控制器100C(例如数据转换电路140)依据裸片依赖性种子Seed2对步骤S24中的该组数据(例如该组读取数据)的多个子集合进行重新排列,以保护控制器100C与NVM 100M之间的至少一个数据信号所载的该组数据。例如,控制器100C可利用数据转换电路140(尤其,其内的数据子集合重新排列电路142)中的该组开关,依据裸片依赖性种子Seed2对该组数据线中的两个或多个数据线进行交换,以重新排列这组数据的该多个子集合。
在步骤S28中,控制器100C判断读取阶段PHASE(1)中的读取是否完成。如果是,控制器100C可离开读取阶段PHASE(1)以结束图2所示的工作流程;如果否,控制器100C可停留在读取阶段PHASE(1)以继续进行读取,尤其,进入步骤S20。举例来说,当离开读取阶段PHASE(1),控制器100C已将该预定信息控制(例如程序相关信息,诸如多个指令及其数据)载入至RAM,以控制电子装置100的操作,但本发明不限于此。
为了更好地理解,该方法可用图2所示的工作流程来说明,但本发明不限于此。依据某些实施例,一个或多个步骤可在图2所示的工作流程中增加、删除或修改。
依据某些实施例,图1所示的NVM 100M可包含对应的NVM侧信息保护电路架构,其可等同于控制器100C中的储存单元110、地址信息重新排列电路120、种子产生电路130以及数据转换电路140所组成的控制器侧信息保护电路架构,以依据该方法来操作,但本发明不限于此。举例来说,假设可供100C控制NVM 100M的一系列可用地址都是有效地址,且分别代表具有相同大小的一系列储存位置,诸如一系列页面(page)。Seed1可为依据一预定序列而变化的种子,其中针对同一个裸片,该预定序列不论在写入阶段PHASE(0)或读取阶段PHASE(1)中都是相同的。此情况下,不论该组地址线如何交换,写入阶段PHASE(0)中的该组数据诸如该组写入数据可被写入NVM 100M中的某处,也可依据相同的地址线交换被读取。因此,NVM 100M不需要进行该地址信息重新排列的逆向重新排列,也不需要设置对应的逆向地址信息重新排列电路。另外,Seed2可为依据另一预定序列而变化的种子,其中针对同一个裸片,该另一预定序列不论在写入阶段PHASE(0)或读取阶段PHASE(1)中都是相同的。此情况下,不论该组数据线如何交换,写入阶段PHASE(0)中的该组数据诸如该组写入数据可被写入NVM 100M中的某处,也可被读取出来以依据相同的数据线交换被还原(recover)。因此,NVM 100M不需要进行该数据子集合重新排列的逆向重新排列,也不需要设置对应的逆向数据子集合重新排列电路。
依据某些实施例,控制器110C(例如核心电路101)可解析(parse)来自NVM 100M的信息中的标头(header),以从该标头取得裸片依赖性种子Seed1与Seed2,且将裸片依赖性种子Seed1与Seed2提供给地址信息重新排列电路120与数据转换电路140。例如,上述对应的NVM侧信息保护电路架构可将从其内的对应的储存单元(例如电子保险丝或安全寄存器)取得裸片依赖性种子Seed1与Seed2,将裸片依赖性种子Seed1与Seed2内嵌或插入于该标头,且组合该标头以及已经加密过的数据诸如影像(image),以供传送至控制器110C。
图3示出图2所示方法在本发明一个实施例中的写入控制方案。针对地址信息重新排列电路120,该地址信息重新排列可包含地址信息平移(shift),例如平移0x1234的二进制版本0001_0010_0011_0100以成为0x2341的二进制版本0010_0011_0100_0001。尤其,该地址信息重新排列可另包含拼凑(scramble),例如拼凑0x2341的二进制版本0010_0011_0100_0001以成为0x4C18的二进制版本0100_1100_0001_1000。针对数据子集合重新排列电路142,该数据子集合重新排列可包含数据子集合平移,例如平移0xABCD的二进制版本1010_1011_1100_1101以成为0xBCDA的二进制版本1011_1100_1101_1010。尤其,该数据子集合重新排列可另包含拼凑,例如拼凑0xBCDA的二进制版本1011_1100_1101_1010以成为0x7CE5的二进制版本0111_1100_1110_0101。在传送命令后,控制器110C可传送该地址(例如该写入地址诸如通过该地址信息重新排列处理后的地址),且接着写入数据(例如该组写入数据)。例如,地址信息重新排列电路120与数据转换电路140(尤其,其内的数据子集合重新排列电路142)可分别利用其各自的取模(modulo)计算电路将取模运算符(modulooperator)mod施加于裸片依赖性种子Seed1与Seed2,尤其,对裸片依赖性种子Seed1与Seed2进行取模运算以产生取模运算结果,以依据这些取模运算结果进行该地址信息重新排列与该数据子集合重新排列。为了简明起见,在本实施例中类似的内容在此不重复赘述。
图4示出图2所示方法在本发明一个实施例中的读取控制方案。相较于图3所示的写入控制方案,在传送命令后,控制器110C可传送该地址(例如该读取地址,诸如通过该地址信息重新排列处理后的地址),且接着读取数据(例如该组读取数据)。为了简明起见,在本实施例中类似的内容在此不重复赘述。
图5示出图2所示方法在本发明一个实施例中的混和转换控制方案。图1所示的该控制器侧信息保护电路架构中的至少一部分(例如一部分或全部)可整合至混和转换模块500中。某一地址及其完整性码诸如循环冗余校验(Cyclic Redundancy Check,CRC)码可分别载于信号ADDR与CRC.ADDR,而在这个地址上的数据及其完整性码诸如CRC码可分别载于信号DATA与CRC.DATA。例如,混和转换模块500可预先计算一系列数据的完整性码,诸如其CRC码{C0,…,C3}、{C4,…,C7}、…、{C120,…,C127}等,且将这些完整性码诸如这些CRC码储存于CRC表。另外,混和转换模块500可利用其内的重新排列电路与拼凑电路依据对应的种子诸如种子Seed(1)、Seed(2)与Seed(3)进行重新排列,且可利用多路选择器(multiplexer,MUX)依据对应的种子诸如种子Seed(4)分别选择多个重新排列结果的其中之一和多个拼凑结果的其中之一,以供输出。为了简明起见,在本实施例中类似的内容在此不重复赘述。
图6示出图2所示方法在本发明一个实施例中的地址信息重新排列控制方案。基于图1所示架构,电子装置100可包含控制器100C与NVM 100M之间的多个实体线。这些实体线包含对应信号IO0、IO1、IO2与IO3的一组实体线,而这组实体线可在不同时间(或阶段)用来作为该组地址线或该组数据线。尤其,控制器100C可分别在命令阶段CMD_Phase、地址阶段Address_Phase与数据阶段Data_Phase进行命令传送、地址传送、以及数据传送或接收。例如,当控制器100C在地址阶段Address_Phase中进行该地址信息重新排列,该组实体线代表该组地址线,且传递在其上的对应的信号IO0、IO1、IO2与IO3代表地址信号。又例如,当控制器100C在数据阶段Data_Phase中进行该数据子集合重新排列,该组实体线代表该组数据线,且传递于其上的对应的信号IO0、IO1、IO2与IO3代表数据信号。
依据本实施例,该组实体线的实体位置分别是实体线位置P0、P1、P2与P3,且可通过利用上述开关来交换以变成各种重新排列结果中的任何一种。例如,在一时间点,实体线位置P0、P1、P2与P3可交换成为实体线位置P1、P3、P2与P0;在另一时间点,实体线位置P0、P1、P2与P3可交换成为实体线位置P2、P3、P1与P0;并且,在其它时间点,实体线位置P0、P1、P2与P3可交换成为其它重新排列结果。为了简明起见,在本实施例中类似的内容在此不重复赘述。
依据某些实施例,数据转换电路140(例如完整性码选择性排列电路144)可依据转换种子Seed3.1判断完整性码传送功能是否被启用(enable),以产生第一判断结果,其中该第一判断结果指出该完整性码传送功能是否被启用。该完整性码传送功能可用来依据转换种子Seed3.2传送该组数据(例如步骤S24中的该组数据,诸如该组读取数据)连同多组数据的各自的完整性码中的一完整性码,而该多组数据包含这组数据,其中该多组数据的所述各自的完整性码可分别用来进行该多组数据的错误检测。上述完整性码的例子可包含(但不限于):CRC码、哈希(Hash)值、奇偶校验(parity-check)码等。当该第一判断结果指出该完整性码传送功能被启用,数据转换电路140(例如完整性码选择性排列电路144)可依据转换种子Seed3.2判断该多组数据的所述各自的完整性码中的哪一个被选择作为该完整性码,以产生第二判断结果,其中该第二判断结果指出该多组数据的所述各自的完整性码中的哪一个被选择作为该完整性码,以供进行该数据转换。另外,针对传送该组数据连同该完整性码,数据转换电路140(例如完整性码选择性排列电路144)可依据转换种子Seed3.3判断该完整性码相对于这组数据的该多个子集合的相对位置(例如该完整性码诸如CRC码可位于这组数据前、这组数据后、这组数据的该多个子集合中的某两个子集合之间),以供进行该数据转换。此外,数据转换电路140(例如完整性码选择性排列电路144)可依据转换种子Seed3.4判断是否使用该完整性码进行该多组数据中的对应组数据的错误检测。数据转换电路140(例如完整性码选择性排列电路144)可依据该对应组数据产生自行产生的完整性码诸如自行产生CRC码,且将该完整性码诸如CRC码和该自行产生的完整性码诸如自行产生CRC码进行比较,其中两者相同代表没有错误,而两者相异代表有错误。数据转换电路140(例如完整性码选择性排列电路144)还可依据转换种子Seed3.5判断该多组数据的所述各自的完整性码的各自的重新排列位置(例如该完整性码诸如CRC码放置的位置,诸如相对于该多组数据的所述各自的完整性码中的其它完整性码的位置、和/或相对于该多组数据的位置),以供进行该多组数据的错误检测。
图7示出图2所示方法在本发明一个实施例中的数据转换控制方案。除了进行该地址信息重新排列与该数据子集合重新排列(例如分别依据裸片依赖性种子Seed1与Seed2对实体线进行交换),控制器100C可利用数据转换电路140(例如完整性码选择性排列电路144)进行完整性码选择性排列。由于本实施例中以读取阶段PHASE(1)为例来说明,故NVM100M(例如其内的NVM侧信息保护电路架构)可进行其本身的完整性码选择性排列以产生选择性排列结果,以供输出至控制器100C,且控制器100C可在读取NVM 100M时进行其本身的完整性码选择性排列,以还原该多组数据。
如图7所示,该多组数据诸如数据1、2、3、4、5、6、7与8以及其各自的完整性码诸如CRC码c0、c1、c2、c3、c4、c5、c6与c7,连同阴影所示的虚拟数据(dummy data),可被储存在NVM 100M中的一组地址{Addr}诸如0x0、0x1、0x2、0x3、0x4、0x5、0x6、0x7、0x8、0x9与0xA,其中该虚拟数据可被储存于地址0x6,且数据1、2、3、4、5、6、7与8的各自的子集合{1.1,1.2,1.3,1.4}、{2.1,2.2,2.3,2.4}、{3.1,3.2,3.3,3.4}、{4.1,4.2,4.3,4.4}、{5.1,5.2,5.3,5.4}、{6.1,6.2,6.3,6.4}、{7.1,7.2,7.3,7.4}与{8.1,8.2,8.3,8.4}以及CRC码{c0,c1,c2,c3}与{c4,c5,c6,c7}可分别被重新排列且储存在该组地址{Addr}中的其它地址。
依据本实施例,控制器100C可在某一时间点读取NVM 100M以从NVM 100M接收到信号IO0、IO1、IO2与IO3所载的重新排列的子集合{1.1,1.2,1.3,1.4}、{2.1,2.2,2.3,2.4}、{3.1,3.2,3.3,3.4}与{4.1,4.2,4.3,4.4},连同随机地出现在前或在后的CRC码c5、c6与c2,且可从这些由信号IO0、IO1、IO2与IO3所载的信息还原数据1、2、3与4,例如通过其本身的完整性码选择性排列与该数据子集合重新排列。尤其,数据转换电路140(例如完整性码选择性排列电路144)可依据CRC码c6对(先前或后续读取的)数据6进行错误检测。为了简明起见,在本实施例中类似的内容在此不重复赘述。
图8示出图7所示数据转换控制方案的读取与还原操作的另一示例。控制器100C可在另一时间点读取NVM 100M以从NVM 100M接收到信号IO0、IO1、IO2与IO3所载的重新排列的子集合{5.1,5.2,5.3,5.4}、{6.1,6.2,6.3,6.4}、{7.1,7.2,7.3,7.4}与{8.1,8.2,8.3,8.4},连同随机地出现在后的CRC码c1、c7与c6,且可从这些由信号IO0、IO1、IO2与IO3所载的信息还原数据5、6、7与8,例如通过其本身的完整性码选择性排列与该数据子集合重新排列。尤其,数据转换电路140(例如完整性码选择性排列电路144)可依据CRC码c7对数据7进行错误检测。为了简明起见,在本实施例中类似的内容在此不重复赘述。
图9示出图7所示数据转换控制方案的读取与还原操作的另一示例。控制器100C可在另一时间点读取NVM 100M以从NVM 100M接收到信号IO0、IO1、IO2与IO3所载的重新排列的子集合{1.1,1.2,1.3,1.4}、{2.1,2.2,2.3,2.4}、{3.1,3.2,3.3,3.4}、{4.1,4.2,4.3,4.4},连同随机地出现在前或在后的CRC码c7与c1,且可从这些由信号IO0、IO1、IO2与IO3所载的信息还原数据1、2、3与4,例如通过其本身的完整性码选择性排列与该数据子集合重新排列。尤其,数据转换电路140(例如完整性码选择性排列电路144)可依据CRC码c1对数据1进行错误检测。为了简明起见,在本实施例中类似的内容在此不重复赘述。
图10示出图7所示数据转换控制方案的读取与还原操作的另一示例。控制器100C可在另一时间点读取NVM 100M以从NVM 100M接收到信号IO0、IO1、IO2与IO3所载的重新排列的子集合{1.1,1.2,1.3,1.4}、{2.1,2.2,2.3,2.4}、{3.1,3.2,3.3,3.4}、{4.1,4.2,4.3,4.4},连同随机地出现在中(例如某些子集合之间)的CRC码c6与c2,且可从这些由信号IO0、IO1、IO2与IO3所载的信息还原数据1、2、3与4,例如通过其本身的完整性码选择性排列与该数据子集合重新排列。为了简明起见,在本实施例中类似的内容在此不重复赘述。
基于上述实施例,本发明提供用来针对NVM 100M进行信息保护的设备,而上述设备的示例可包含(但不限于):电子装置100、控制器100C及其内的控制器侧信息保护电路架构、NVM 100M及其内的NVM侧信息保护电路架构等。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的等同变化与修改,皆应属本发明的涵盖范围。
附图标记说明
100:电子装置
100C:控制器
100M:NVM
101:核心电路
110:储存单元
120:地址信息重新排列电路
130:种子产生电路
130SG:种子产生器
131,132,133,134,135:种子转换器
140:数据转换电路
142:数据子集合重新排列电路
144:完整性码选择性排列电路
IO0,IO1,IO2,IO3,CLK,ADDR,CRC.ADDR,DATA,CRC.DATA:信号
Seed1,Seed2,Seed3,Seed3.1,Seed3.2,Seed3.3,Seed3.4,Seed3.5,Seed(1),Seed(2),Seed(3),Seed(4):种子
S10,S12,S14,S16,S18,S20,S22,S24,S26,S28:步骤
PHASE(0):写入阶段
PHASE(1):读取阶段
mod:取模运算符
500:混和转换模块
C0~C3,C4~C7,C120~C127,c0,c1,c2,c3,c4,c5,c6,c7:CRC码
P0,P1,P2,P3:实体线位置
CMD_Phase:命令阶段
Address_Phase:地址阶段
Data_Phase:数据阶段
Addr:地址
1,2,3,4,5,6,7,8:数据
1.1,1.2,1.3,1.4,2.1,2.2,2.3,2.4,3.1,3.2,3.3,3.4,4.1,4.2,4.3,4.4,5.1,5.2,5.3,5.4,6.1,6.2,6.3,6.4,7.1,7.2,7.3,7.4,8.1,8.2,8.3,8.4:子集合
Claims (10)
1.一种用于针对非易失性存储器进行信息保护的方法,所述方法应用于控制器,所述方法包括:
取得第一裸片依赖性种子与第二裸片依赖性种子,其中所述第一裸片依赖性种子与所述第二裸片依赖性种子对应于用来实施所述非易失性存储器的裸片;
依据所述第一裸片依赖性种子对一地址的多组地址信息进行重新排列,以保护所述控制器与所述非易失性存储器之间的至少一个地址信号所载的所述地址;以及
依据所述第二裸片依赖性种子对一组数据的多个子集合进行重新排列,以保护所述控制器与所述非易失性存储器之间的至少一个数据信号所载的该组数据。
2.如权利要求1所述的方法,其中所述控制器包含储存单元;以及取得所述第一裸片依赖性种子与所述第二裸片依赖性种子的步骤还包括:
从所述储存单元取得所述第一裸片依赖性种子与所述第二裸片依赖性种子中的至少一个裸片依赖性种子,其中所述至少一个裸片依赖性种子预先被储存在所述储存单元中。
3.如权利要求1所述的方法,其中依据所述第一裸片依赖性种子对所述地址的所述多组地址信息进行所述重新排列的步骤还包括:
利用一组开关,依据所述第一裸片依赖性种子对一组地址线中的两个或多个地址线进行交换,以重新排列所述地址的所述多组地址信息。
4.如权利要求1所述的方法,其中依据所述第二裸片依赖性种子对该组数据的所述多个子集合进行所述重新排列的步骤还包括:
利用一组开关,依据所述第二裸片依赖性种子对一组数据线中的两个或多个数据线进行交换,以重新排列该组数据的所述多个子集合。
5.如权利要求1所述的方法,其中取得所述第一裸片依赖性种子与所述第二裸片依赖性种子的步骤还包括:
解析来自所述非易失性存储器的信息中的标头,以从所述标头取得所述第一裸片依赖性种子与所述第二裸片依赖性种子中的至少一个裸片依赖性种子。
6.如权利要求1所述的方法,还包括:
利用所述控制器中的种子产生器产生一初始种子,其中所述初始种子随着时间变化而更新;
利用所述控制器中的多个种子转换器将所述初始种子分别转换为多个转换种子,以供进行数据转换,其中所述多个转换种子随着所述初始种子变化而更新,且所述多个转换种子包含第一转换种子与第二转换种子;以及
依据所述第一转换种子判断完整性码传送功能是否被启用,以产生第一判断结果,其中所述完整性码传送功能是用来依据所述第二转换种子传送该组数据连同多组数据的各自的完整性码中的一个完整性码,所述多组数据包含该组数据,且所述第一判断结果指出所述完整性码传送功能是否被启用。
7.如权利要求1所述的方法,其中所述第一判断结果指出所述完整性码传送功能被启用;以及所述方法还包括:
依据所述第二转换种子判断所述多组数据的所述各自的完整性码中的哪一个被选择作为所述完整性码,以产生第二判断结果,其中所述第二判断结果指出所述多组数据的所述各自的完整性码中的哪一个被选择作为所述完整性码,以供进行所述数据转换。
8.一种控制器,可应用于针对非易失性存储器进行信息保护,所述控制器包括:
核心电路,用来依据从所述非易失性存储器载入的预定信息控制所述控制器,以控制电子装置的操作,其中所述电子装置包含所述控制器以及所述非易失性存储器;
地址信息重新排列电路,耦合至所述核心电路,用来进行地址信息重新排列,其中所述地址信息重新排列电路取得第一裸片依赖性种子,且依据所述第一裸片依赖性种子对一地址的多组地址信息进行重新排列,以保护所述控制器与所述非易失性存储器之间的至少一个地址信号所载的所述地址;以及
数据转换电路,耦合至所述核心电路,用来进行数据转换,其中所述数据转换电路取得第二裸片依赖性种子,且依据所述第二裸片依赖性种子对一组数据的多个子集合进行重新排列,以保护所述控制器与所述非易失性存储器之间的至少一个数据信号所载的该组数据;
其中所述第一裸片依赖性种子与所述第二裸片依赖性种子对应于用来实施所述非易失性存储器的裸片。
9.一种包含如权利要求8所述的控制器的电子装置,其中所述电子装置包含所述非易失性存储器。
10.一种用来针对非易失性存储器进行信息保护的设备,所述设备包括:
地址信息重新排列电路,用来进行地址信息重新排列,其中所述地址信息重新排列电路取得第一裸片依赖性种子,且依据所述第一裸片依赖性种子对一地址的多组地址信息进行重新排列,以保护控制器与所述非易失性存储器之间的至少一个地址信号所载的所述地址;以及
数据转换电路,用来进行数据转换,其中所述数据转换电路取得第二裸片依赖性种子,且依据所述第二裸片依赖性种子对一组数据的多个子集合进行重新排列,以保护所述控制器与所述非易失性存储器之间的至少一个数据信号所载的该组数据;
其中所述第一裸片依赖性种子与所述第二裸片依赖性种子对应于用来实施所述非易失性存储器的裸片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010235475.4A CN113468518A (zh) | 2020-03-30 | 2020-03-30 | 用于针对非易失性存储器进行信息保护的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010235475.4A CN113468518A (zh) | 2020-03-30 | 2020-03-30 | 用于针对非易失性存储器进行信息保护的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113468518A true CN113468518A (zh) | 2021-10-01 |
Family
ID=77864779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010235475.4A Pending CN113468518A (zh) | 2020-03-30 | 2020-03-30 | 用于针对非易失性存储器进行信息保护的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468518A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882678A (zh) * | 2012-07-02 | 2013-01-16 | 飞天诚信科技股份有限公司 | 一种非接触式烧写种子的方法及系统 |
CN103403670A (zh) * | 2011-06-03 | 2013-11-20 | 株式会社东芝 | 用于伪随机数生成的半导体存储器件 |
US20140173238A1 (en) * | 2012-12-18 | 2014-06-19 | Rambus Inc. | Methods and Circuits for Securing Proprietary Memory Transactions |
CN107003963A (zh) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | 具有改进的信号完整性的低功率加扰 |
CN107203435A (zh) * | 2016-03-17 | 2017-09-26 | 三星电子株式会社 | 非易失性存储器设备和所述非易失性存储器设备的操作方法 |
CN108074593A (zh) * | 2016-11-11 | 2018-05-25 | 桑迪士克科技有限责任公司 | 用于非易失性存储器的接口 |
-
2020
- 2020-03-30 CN CN202010235475.4A patent/CN113468518A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103403670A (zh) * | 2011-06-03 | 2013-11-20 | 株式会社东芝 | 用于伪随机数生成的半导体存储器件 |
CN102882678A (zh) * | 2012-07-02 | 2013-01-16 | 飞天诚信科技股份有限公司 | 一种非接触式烧写种子的方法及系统 |
US20140173238A1 (en) * | 2012-12-18 | 2014-06-19 | Rambus Inc. | Methods and Circuits for Securing Proprietary Memory Transactions |
CN107003963A (zh) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | 具有改进的信号完整性的低功率加扰 |
CN107203435A (zh) * | 2016-03-17 | 2017-09-26 | 三星电子株式会社 | 非易失性存储器设备和所述非易失性存储器设备的操作方法 |
CN108074593A (zh) * | 2016-11-11 | 2018-05-25 | 桑迪士克科技有限责任公司 | 用于非易失性存储器的接口 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9489540B2 (en) | Memory controller with encryption and decryption engine | |
US8054972B2 (en) | Encryption processor of memory card and method for writing and reading data using the same | |
EP1884873A2 (en) | Memory access control apparatus and method, and communication apparatus | |
CA1221466A (en) | Memory subsystem | |
US20060095975A1 (en) | Semiconductor device | |
JP2008530663A (ja) | マイクロプロセッサのデータセキュリティの方法およびシステム | |
CN104637534B (zh) | 半导体存储器件及操作其的方法 | |
US8549328B2 (en) | Memory controller, memory system including the same, and method for operating the same | |
US8831229B2 (en) | Key transport method, memory controller and memory storage apparatus | |
US10133680B2 (en) | Data storage apparatus, coding unit, systems including the same, method of coding and method of reading data | |
KR20090080032A (ko) | 저장 장치들에 대한 보안을 제공하는 방법 및 시스템 | |
US11397531B2 (en) | Method and apparatus for performing data protection regarding non-volatile memory | |
CN109493910B (zh) | 微控制器及其操作方法以及具有该微控制器的存储系统 | |
KR101311963B1 (ko) | 파워 어택으로부터 안전하게 데이터를 쓰고 읽을 수 있는반도체 메모리 장치 및 그 방법 | |
US8719588B2 (en) | Memory address obfuscation | |
CN113468518A (zh) | 用于针对非易失性存储器进行信息保护的方法和设备 | |
JP4863279B2 (ja) | メモリシステム及びメモリアクセス方法 | |
US11928077B2 (en) | Data processing circuit, data storage device including the same, and operating method thereof | |
JP4323527B2 (ja) | 半導体記憶装置 | |
US9390804B2 (en) | Flash memory counter | |
US8539251B2 (en) | Memory for protecting data, memory system including the memory, and method of driving the memory | |
JP2000181802A (ja) | 半導体記憶装置 | |
CN114329361B (zh) | 存储装置和数据读取方法 | |
CN112115094A (zh) | 一种处理器芯片及其数据存储方法和数据读取方法 | |
JP2007087424A (ja) | Icカード用lsiおよびその使用方法 |
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 |