CN113420308A - 用于加密存储器的数据访问控制方法及控制系统 - Google Patents
用于加密存储器的数据访问控制方法及控制系统 Download PDFInfo
- Publication number
- CN113420308A CN113420308A CN202110742771.8A CN202110742771A CN113420308A CN 113420308 A CN113420308 A CN 113420308A CN 202110742771 A CN202110742771 A CN 202110742771A CN 113420308 A CN113420308 A CN 113420308A
- Authority
- CN
- China
- Prior art keywords
- key
- partition
- data access
- target address
- slots
- 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 42
- 238000005192 partition Methods 0.000 claims abstract description 106
- 238000012545 processing Methods 0.000 claims description 5
- 230000003068 static effect Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000013475 authorization Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification 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/604—Tools and structures for managing or administering access control 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/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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种用于加密存储器的数据访问控制方法以及系统。所述加密存储器包括存储器控制器和存储介质,所述存储器控制器设置有密码算法引擎,所述密码算法引擎包括高速密钥寄存器,所述高速密钥寄存器包括多个槽位,所述数据访问控制方法包括:接收数据访问命令,所述数据访问命令指定要访问的目标地址;检查所述目标地址所在分区对应的密钥是否已经加载到所述高速密寄存器中;如果不是,则检查所述多个槽位中是否仍有未被占用的槽位,并将所述目标地址所在分区对应的密钥加载到未被占用的槽位中;以及基于所述目标地址所在分区对应的密钥执行数据访问。这种方案在产品制造成本和系统性能之间取得合理的平衡,因此具有较高性价比。
Description
技术领域
本申请涉及信息安全存储领域,特别涉及一种用于加密存储器的数据访问控制方法及控制系统。
背景技术
随着科学技术的进步,服务于各类用户的‘计算系统’正在发生潮流性的深刻变更,特别是迅速普及的‘云计算’平台正在改变传统的以PC为中心的个人计算环境,智能手机及平板电脑之类的个人终端将数以亿计的用户的计算需求连接至中心服务器,所执行的‘计算任务’亦从传统意义上的数据运算扩展到数字通讯、多媒体交互、导航、信息搜索等多种多样的应用。
催发这种历史性变更的技术支撑依赖很多科技产品的飞速进步。其中,大容量、高性能存储设备便是这类产品之一。今天的机械硬盘的容量已可达到十数TB,即便是几TB高性能的固态硬盘(SSD)也已在普通用户的鞭长可及范围之内。
普通用户因为无法预计自己在未来对计算资源的需求,在选购PC时往往选择远超自己当下需求的算力和存储容量,不但超需求选购浪费用户财力资源,并且由于计算技术日新月异,购买的计算机几乎转眼就过时了。然而由于用户对已注入的财力资源的不舍,不得不继续使用已落后的设备。云计算的兴起可以使这一状况大为改观。在云计算环境中,用户可以量体裁衣,按照自己当下的需求选购算力和存储容量,例如从1GB到几十GB不等。服务提供商按照用户需求在中心服务器上为用户按需求构建‘虚拟机’,包含一定的算力和存储容量。当用户的计算资源需求增加或减少时,只需重新调整自己的云端虚拟计算机的资源的配置,并与提供商缔结相应的合同。一台服务器可为多个用户的虚拟机提供宿主环境,使得用户和服务提供商各自满足自己的盈利和计算能力的需求。
参考图1,使用在这类应用中的存储设备因为需要存储多个用户的数据,保障用户的隐私和数据的安全就是一个无法避免的重要指标,实现多用户共享物理存储空间的一个自然的方法就是将物理空间按用户需求划分成多个分区,亦称逻辑分区,并在这些分区上构建虚拟硬盘。对多分区、多用户加密硬盘的应用场景来说,用户与分区之间的映射关系除去一个用户对应一个分区(虚拟盘)的状况以外,还可能出现一个用户对应多个分区,及一个分区对应于多个用户的情形,如图2所示。
保障用户数据安全的最常用的方法就是对每个分区用特有的密钥进行加密。换言之,需要对物理硬盘空间实现多分区、多密钥的加、解密操作,如图3所示。虽然一个物理硬盘的存储空间会被划分成多个虚拟硬盘,数据的加、解密通常都是通过同一组密码算法引擎实现。对不同虚拟硬盘的访问,只需通过更换对应授权对象的密钥来实现。这就需要存储器的控制系统高效率地管理和控制多个分区及其所对应的密钥。在极端情形下,一个存储器的控制系统可能会需要管理成百上千个分区,这便会同时需要管理所对应的成百上千个密钥。举例来说,如果一个物理硬盘的容量为4TB,而每个用户平均分配4GB的容量,则需要管理的分区及对应的密钥便会多达1000多个。
由此,在大数量用户、大数量分区的场景下如何基于密钥实现高效数据访问是一件值得非常关注的问题。
发明内容
有鉴于此,本发明提供一种用于加密存储器的数据访问控制方法及控制系统,高效实现大数量用户、大数量分区的密钥切换。
第一方面,本申请提供一种用于加密存储器的数据访问控制方法,所述加密存储器包括存储器控制器和存储介质,所述存储器控制器设置有密码算法引擎,所述密码算法引擎包括高速密钥寄存器,所述高速密钥寄存器包括多个槽位,所述数据访问控制方法在所述密码算法引擎使用,包括:
接收数据访问命令,所述数据访问命令指定要访问的目标地址;
检查所述目标地址所在分区对应的密钥是否已经加载到所述高速密钥寄存器中;
如果不是,则检查所述多个槽位中是否仍有未被占用的槽位,若仍有未被占用的槽位,则将所述目标地址所在分区对应的密钥加载到未被占用的槽位中;以及
基于所述目标地址所在分区对应的密钥执行数据访问。
可选地,所述基于所述目标地址所在分区对应的密钥执行数据访问包括:
基于所述目标地址所在分区对应的密钥对写数据进行加密并将加密后的数据存储到所述存储介质;或者
基于所述目标地址所在分区对应的密钥对从所述存储介质读取到的数据进行解密,并发送解密后的数据。
可选地,还包括:如果所述多个槽位中不存在未被占用的槽位,则从所述多个槽位中确定可被替换的槽位,并将所述目标地址所在分区对应的密钥加载到所述可被替换的槽位。
可选地,还包括:将所述目标地址所在分区对应的密钥的加载状态从未加载修改为已加载。
可选地,还包括:将原存储在所述可被替换的槽位中的密钥的加载状态从已加载修改为未加载。
可选地,所述检查所述目标地址所在分区对应的密钥是否已经加载到所述高速密钥寄存器中包括:
将所述目标地址和分区信息表进行比较,以获得所述目标地址所在的分区的地址;以及
基于所述目标地址所在的分区的地址和密钥总表进行比较,以确定所述目标地址所在分区对应的密钥是否已经加载到所述高速密寄存器中。
可选地,还包括:在处理所述数据访问命令之前,执行权限认证操作,以确定是否开放当前用户所对应的分区的访问权限。
可选地,所述存储器控制器包括静态随机存取存储器,用于存储密钥信息和分区信息。
可选地,所述高速密钥寄存器还存储有每个密钥的最新访问时间,所述数据访问控制方法包括根据每个密钥的最新访问时间从所述多个槽位中确定可被替换的槽位。
可选地,所述高速密钥寄存器还存储有每个密钥在最新的设定时间内被使用的次数,所述数据访问控制方法可根据每个密钥被使用的次数从所述多个槽位中确定可被替换的槽位。
第二方面,本申请提供一种存储器控制器,包括:
主机接口,连接至主机;
控制单元,用于经由所述主机接口从主机接收并处理各种命令,所述各种命令包括数据访问命令;
存储器,用于存储分区信息、密钥及密钥加载状态信息、用户身份认证信息和分区权限控制信息;
密码算法引擎,包括高速密钥寄存器,所述高速密钥寄存器包括多个槽位,所述多个槽位用于存储至少一部分分区的密钥信息;
所述密码算法引擎执行以下操作:
接收数据访问命令,所述数据访问命令指定要访问的目标地址;
检查所述目标地址所在分区的访问权限是否开放,及对应的密钥是否已经加载到所述高速密钥寄存器中;
如果不是,则检查所述多个槽位中是否仍有未被占用的槽位,若仍有未被占用的槽位,则将所述目标地址所在分区对应的密钥加载到未被占用的槽位中;以及
基于所述目标地址所在分区对应的密钥执行数据访问。
可选地,所述密码算法引擎还执行以下操作:如果所述多个槽位中不存在未被占用的槽位,则从所述多个槽位中确定可被替换的槽位,并将所述目标地址所在分区对应的密钥加载到所述可被替换的槽位。
可选地,所述控制单元还用于将原存储在所述可被替换的槽位中的密钥的加载状态从已加载修改为未加载。
可选地,所述高速密钥寄存器还存储有每个密钥的最新访问时间,所述密码算法引擎根据每个密钥的最新访问时间从所述多个槽位中确定可被替换的槽位。
可选地,所述高速密钥寄存器还存储有每个密钥在最新的设定时间内被使用的次数,所述密码算法引擎根据每个密钥被使用的次数从所述多个槽位中确定可被替换的槽位。
第三方面,本申请提供一种存储器,包括上述任意一项所述的存储器控制器和存储介质。
本申请提供的加密解密方案,采用以相对少量的高性能、高成本的高速密钥寄存器来缓存部分的密钥信息,而完整的密钥信息则被放在大容量,相对性能较低,成本也较低的存储空间内。并且,通过设定策略使得高速寄存器中存储较为常用的密钥,以提高数据访问的执行效率。这种方案在产品制造成本和系统性能之间取得合理的平衡,因此具有较高性价比。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1示出将一个物理硬盘切分成若干虚拟硬盘的应用场景;
图2示出多个用户与多个分区之间的一种范例映射关系;
图3示出密码算法引擎使用密钥的应用场景示意图;
图4是包含本申请的一个较优的实施例的原理框图;
图5示出本申请所使用的密钥信息表的一种范例数据格式;
图6示出本申请所使用的密钥总表的一种范例数据格式;
图7示出本申请所使用的分区信息表的一种范例数据格式;
图8示出本申请所使用的权限控制信息表的一种范例数据格式。
图9是本申请提供的数据访问控制方法的流程图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
申请人在研究中发现,目前密钥的切换通常采用下述两种方案之一。
方案1:密钥切换由嵌入式软件(固件)完成。完整的密钥集以密文形式存放在非挥发性存储空间中(如NAND Flash等),被选中的分区的密钥将会被从上述非挥发存储空间中读出,解密后传输至密码算法引擎中的密码寄存器。
方案2:密钥切换完全借助高速硬件完成。如图3所示,密码算法引擎带有与分区管理数目相等的内建的密钥寄存器,作为高速密码运算硬件的一部分。所有分区所对应的密钥,在存取数据之前需被从密钥保存空间(较低性能的存储空间)提取出来(比如说从NANDFlash存储空间中读出密钥的密文,然后将其解密成明文)并加载到高速密码运算引擎的高速密钥寄存器,以完成对各分区的数据加、解密操作。在切换操作分区时只需切换当前密钥的指针。
但是,经申请人实验发现,方案1避免不了密钥提取与加载所引入的延迟,对系统性能会产生严重的负面影响。方案2虽然保障了性能,但由于密钥通常都由多个字节构成(例如AES-256密码算法的密钥由一个32Byte的数据块构成,如再考虑存放Tweak Value的空间,所需容量还要加倍,如果需要实现1000分区,所需高速存储空间将高达64KB)在芯片上增加大量高速存储器会使芯片成本与功耗大幅度增加,因而方案2只适合于分区数量不大的应用场景。
基于此,申请人提出一种更优的方案。图4示出包含本申请范例的计算机系统的示意性框图。计算机系统包括主机200和存储器100。在下文以固态硬盘为例进行描述。存储器100为固态硬盘时,包括图中所示的存储器控制器105和存储介质160,存储介质160例如为闪存芯片阵列。存储器控制器105接收并处理主机200发来的命令,并向主机200报告命令执行结果。在没有加解密功能时,存储器控制器128处理读写命令的具体流程可描述如下。在主机200执行数据操作时,存储器控制器105从主机200接收到命令。存储器控制器105将命令中的逻辑地址映射成物理地址,该物理地址用于表征存储介质160中的位置,包括通道、物理块和物理页等。在读取操作中,存储器控制器105从用户命令中获取逻辑地址,然后根据物理地址和逻辑地址的映射关系获得对应的物理地址,然后以物理页为单位从存储介质160读取数据。在写入操作中,存储器控制器105从用户命令中获取逻辑地址,然后根据物理地址和逻辑地址的映射关系获得对应的物理地址,然后将用户命令中的写数据以物理页单位写入到存储介质160中。
在具有加解密功能时,存储器控制器105包含密码算法引擎110。密码算法引擎110对来往于主机的数据进行高速实时加、解密。较为适合的密码算法为AES或SM4等对称加、解密算法。执行写入操作时从主机200发来的数据被加密后存入作为存储介质的160中指定的位置。执行读出操作时主机200指定的数据块中的数据将被读出,并以授权分区所对应的密钥进行解密,然后送往主机200。
为保证数据传输的性能,密码算法引擎110所使用的密钥来自高速密钥寄存器115,高速密钥寄存器115包含多个槽位。高速密钥寄存器115存储的密钥信息表用KR标识,其一个范例格式如图5所示。
KRidx为当前操作的槽位的索引值。该值被用来从KR中所包含的j个槽位中选出当前操作所用的密钥Ki,(i=1,2,…,j)是KR中所加载的最多j个密钥,而KRiSt,(i=1,2,…,j)为所述j个密钥所对应的状态信息。状态信息用来表示某一槽位的使用状态,包括‘槽位是否被占用’和‘槽位使用频度’两种状态信息。这一状态信息按某种预先设定的规则记录某一槽位中的密钥是否处于活跃状态,用以辅助管理密钥的加载。
由于高速密钥寄存器的实现成本较高,通常其中仅包含数量有限的槽位。当分区总数较大时,所有密钥中只有一部分可以被存储到高速密钥寄存器中。控制单元需按照某种策略管理高速寄存器中的各个密钥槽位,以提高总体性能。
例如,可以利用‘槽位使用频度’存储统计数据,以表征在最新的设定时间内与该槽位对应的密钥被使用的次数。密码算法引擎110或控制单元160判断所有槽位中不存在未被占用的槽位时,则将各个槽位对应的‘槽位使用频度’进行比较,将其中‘槽位使用频度’最小的槽位作为可被替换的槽位,将当前数据访问命令所需的密钥加载到该可被替换的槽位中。
再例如,可以利用‘槽位使用频度’对应槽位的最新访问时间。密码算法引擎110或控制单元160判断所有槽位中不存在未被占用的槽位时,则将各个槽位对应的‘槽位使用频度’进行比较,将其中访问时间距今最远的槽位作为可被替换的槽位,将当前数据访问命令所需的密钥加载到该可被替换的槽位中。
存储器控制器105中包含密钥总表(KeyTable,KT)150,密钥总表包含所有密钥,通常情况一个分区对应一个密钥,其一个示例性的格式KT如图6所示。表中每一项包含一个密钥Ki,(i=1,2,…,m)和该密钥的加载状态KTiSt。KTiSt表示所对应密钥是否已经被加载到高速密钥寄存器115中。若已被加载,该状态信息包含已加载密钥在高速密钥寄存器115中的索引值KRidx。此外,一个密钥从已被加载的状态转换为未被加载的状态,则需要将对应的KTiSt中的已加载密钥在KR中的索引值KRid修改为空,使其成为未加载状态。
上述分级密钥管理方案与计算机领域人员所熟知的高速缓存技术(Caching)相类似,都是以相对少量的高性能、高成本的硬件来缓存很可能马上被用到的部分信息,而完整的信息则被存放在大容量,相对性能较低,成本也较低的存储空间。本申请将这种设计理念应用于加解密硬盘的密钥管理机制中,以获得这类方案特有的高性价比的优点。
如图上所示,存储器控制器105还包括分区信息表(LockingTable,LT)140。其一个示例性的范例格式如图7所示。图上分区信息表LT包含有关分区的各项信息,包括分区地址LRiStart,(I=1,2,…,t)(可表示为起始逻辑地址,Start LBA),分区容量LRiLen(可表示为LBA长度,LBA Length),密区访问权限控制(可表示为访问许可,包括读permission,写permission及擦除permission等信息),密钥信息(可表示为所对应的密钥在密钥总表KT中的索引值,KTidx)。LT可以是一个独立的数据表,亦可是多个不同的数据表协作的结果。
如图上所示,存储器控制器105还可包括权限控制信息表120和用户信息表130。其一个示例性的权限控制信息表ACT的范例格式如图8所示。图上权限控制信息表ACT指定用户的各种权限信息。用户信息表130(未有具体示意图)包含用户的相关信息。权限控制信息表ACT和用户信息表130主要用于用户认证和权限认证,通常在进行读写操作之前,根据用户标识对用户进行身份和权限认证,以确定用户是否可以针对目标地址进行后续的读写操作。
如图上所示,存储器控制器105还包括分区权控单元170。其作用是动态监控所有数据访问命令,检查访问目标地址是否在享有权限的分区之内。如果是,则访问可以被允许进行,否则终止访问,并向主机报错。这一监控操作可以借助目标地址(该地址可以通过访问命令中的元数据计算得到)和分区信息表140中的信息来实现。假设要访问数据的目标地址为LBAcmd,分区权控单元170将LBAcmd与分区信息表LT中的信息做对比,如果可以找到某一分区LRx(Locking Rang x),其所对应的LT中的信息满足下列条件:
LRxStart<=LBAcmd<LRxStart+LRxLen,同时LRxPerm包含所需的访问权限(比方说读权限、写权限或擦除权限),即当前用户对指定分区的访问权限与当前的数据访问命令所进行的操作是适配的,则主机命令中的访问请求可以执行,否则终止命令执行,并报错。
前述的各种表格(KT、LT、ACT)仅用来说明完成分区、密钥、用户、权限的管理所需关联的信息,并非用来限定具体的管理机制。表格、表项及映射关系依具体实现方案可采取不同形式,此处不予一一枚举。
在一些实施中,用户信息表、权限控制信息表、分区信息表和密钥总表所需要的大容量,相对性能较低的存储空间是指在存储器控制器105中的设置的SRAM(静态随机存取存储器,Static Random-Access Memory)中,或NAND Flash存储器等。
本申请同时提出一种用于存储器的数据访问控制方法,该方法适用于管理大量分区、大量用户的场景下需要加解密功能的数据访问。
步骤1:执行准备操作,包括建立各种管理表格和数据结构,其中包括下列子步骤
·通过随机码产生单元,或外部的密钥产生机制产生足够数量的、不同的密钥并将其植入到密钥总表150。
·建立用户信息表130。本步骤需要借助主机上的辅助应用搜集用户身份认证信息。该表格在硬盘生命周期中会依用户的加减而调整
·建立分区信息表140。本步骤需要借助主机上的辅助应用按照某种预先制定的规则(比方说按用户数均分,或按用户提交的需求,或用户的租用合同等)将存储介质总空间划分成所需数目的子空间,或分区,并将分区的起始地址与长度记录进分区信息表140中。该表中的信息会随用户权限的改变而调整,包括分区数,分区大小和分区访问权限等
·建立权限控制信息表120。本表中的信息决定硬盘系统中各类信息的访问权限,其中最重要的就是分区访问权限,包括分区与用户之间的映射关系与读、写、擦除的授权状态。
·清空高速密钥寄存器中的所有槽位。如前所述,高速密钥寄存器中的槽位数量有限。如果总分区数小于槽位数,则高速密钥寄存器可以在启动时静态填充。若分区数大于高速密钥寄存器中的槽位数,则其内容是在使用过程中动态填充和调整的。
·其他辅助管理密钥的数据(其操作目的和操作步骤为本领域人员所熟知,不属于本发明特点)。
步骤2:等待接受并处理主机发来的认证请求。执行访问命令前以用户信息表中的信息完成用户身份认证及访问权限核实。若身份认证及权限检查通过开放授权用户所对应的分区权限,否则终止访问并向主机报错。
步骤3:基于图9所示的流程图处理主机发送来的数据访问命令。图9所示的流程图具体包括以下步骤。
步骤S901是接收数据访问命令。数据访问命令指定要访问的目标地址和操作类型。操作类型包括数据读取和数据写入。
步骤S902和S903是检查目标地址所在分区与当前授权的分区范围进行比较,若所访问的数据包含在授权区域内则执行后续操作,否则终止并报错。
步骤S904检查数据块所在分区所对应的密钥是否已被加载到高速密钥寄存器中。若所需密钥已被加载到高速密钥寄存器中,则继续执行步骤S909,否则执行步骤S905。
步骤S905是将所需密钥从密钥总表中提取出来(读出、解密等)。
步骤S906是检查高速密钥寄存器是否仍有未被占用的槽位。若有,则将提取出的密钥加载其中,并在密钥总表中记录所加载到的高速密钥寄存器中的槽位,并跳转到步骤S909完成数据访问,否则执行步骤S907。
步骤S907是在高速密钥寄存器中按某种规则寻找可被替代的槽位。所述规则的选用例如为前文所述的利用‘槽位使用频度’来选择可被替代的槽位。当然,其他各种Caching机制也可用于此处作为选择规则。
步骤S908是将所需密钥加载到相应槽位中。并在密钥总表中该密钥的状态信息中记录所选的槽位,并在密钥总表中将被替换的密钥的状态信息中将此密钥标识成“未被加载”状态。
步骤S909是执行数据访问,然后返回步骤S901。执行数据访问包括:执行写入操作时,将从主机200发来的数据加密后存入作为存储介质的130中指定的位置;执行读出操作时,主机200指定的数据块中的数据将被读出,并以授权分区所对应的密钥进行解密,然后送往主机200。
综上所述,本申请提供的加密解密方案,采用以相对少量的高性能、高成本的高速密钥寄存器来缓存部分的密钥信息,而完整的密钥信息则被放在大容量,相对性能较低,成本也较低的存储空间内。并且,通过设定策略使得高速寄存器中存储较为常用的密钥,以提高数据访问的执行效率。这种方案在产品制造成本和系统性能之间取得一定平衡,因此具有较高性价比。
本领域技术人员可以理解,根据本发明的数据处理系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用JAVA、C/C++/C#、SQL等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。
根据本发明的数据处理系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能单元、模块或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过Internet连接的多个PC机、PC服务器、刀片机、超级计算机等。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种用于加密存储器的数据访问控制方法,所述加密存储器包括存储器控制器和存储介质,所述存储器控制器设置有密码算法引擎,所述密码算法引擎包括高速密钥寄存器,所述高速密钥寄存器包括多个槽位,所述数据访问控制方法包括:
接收数据访问命令,所述数据访问命令指定要访问的目标地址;
检查所述目标地址所在分区对应的密钥是否已经加载到所述高速密钥寄存器中;
如果不是,则检查所述多个槽位中是否仍有未被占用的槽位,若仍有未被占用的槽位,则将所述目标地址所在分区对应的密钥加载到未被占用的槽位中;以及
基于所述目标地址所在分区对应的密钥执行数据访问。
2.根据权利要求1所述的数据访问控制方法,其中,所述基于所述目标地址所在分区对应的密钥执行数据访问包括:
基于所述目标地址所在分区对应的密钥对写数据进行加密并将加密后的数据存储到所述存储介质;或者
基于所述目标地址所在分区对应的密钥对从所述存储介质读取到的数据进行解密,并发送解密后的数据。
3.根据权利要求1所述的数据访问控制方法,其中,还包括:如果所述多个槽位中不存在未被占用的槽位,则从所述多个槽位中确定可被替换的槽位,并将所述目标地址所在分区对应的密钥加载到所述可被替换的槽位。
4.根据权利要求3所述的数据访问控制方法,还包括:将所述目标地址所在分区对应的密钥的加载状态从未加载修改为已加载。
5.根据权利要求3所述的数据访问控制方法,还包括:将原存储在所述可被替换的槽位中的密钥的加载状态从已加载修改为未加载。
6.根据权利要求1所述的数据访问控制方法,其中,所述检查所述目标地址所在分区对应的密钥是否已经加载到所述高速密钥寄存器中包括:
将所述目标地址和分区信息表进行比较,以获得所述目标地址所在的分区的地址;以及
基于所述目标地址所在的分区的地址和密钥总表进行比较,以确定所述目标地址所在分区对应的密钥是否已经加载到所述高速密寄存器中。
7.根据权利要求1所述的数据访问控制方法,还包括:在处理所述数据访问命令之前,执行权限认证操作,以确定是否开放当前用户所对应的分区的访问权限。
8.根据权利要求1所述的数据访问控制方法,其中,所述存储器控制器包括静态随机存取存储器,用于存储密钥信息和分区信息。
9.根据权利要求3或4所述的数据访问控制方法,其中,所述高速密钥寄存器还存储有每个密钥的最新访问时间,所述数据访问控制方法包括根据每个密钥的最新访问时间从所述多个槽位中确定可被替换的槽位。
10.根据权利要求3或4所述的数据访问控制方法,其中,所述高速密钥寄存器还存储有每个密钥在最新的设定时间内被使用的次数,所述数据访问控制方法根据每个密钥被使用的次数从所述多个槽位中确定可被替换的槽位。
11.一种存储器控制器,包括:
主机接口,连接至主机;
控制单元,用于经由所述主机接口从主机接收并处理各种命令,所述各种命令包括数据访问命令;
存储器,用于存储分区信息、密钥及密钥加载状态信息、用户身份认证信息和分区权限控制信息;
密码算法引擎,包括高速密钥寄存器,所述高速密钥寄存器包括多个槽位,所述多个槽位用于存储至少一部分分区的密钥信息;
所述控制单元执行以下操作:
接收数据访问命令,所述数据访问命令指定要访问的目标地址;
检查所述目标地址所在分区的访问权限是否开放,及对应的密钥是否已经加载到所述高速密钥寄存器中;
如果不是,则检查所述多个槽位中是否仍有未被占用的槽位,若仍有未被占用的槽位,则将所述目标地址所在分区对应的密钥加载到未被占用的槽位中;以及
基于所述目标地址所在分区对应的密钥执行数据访问。
12.根据权利要求11所述的存储器控制器,所述控制单元还执行以下操作:如果所述多个槽位中不存在未被占用的槽位,则从所述多个槽位中确定可被替换的槽位,并将所述目标地址所在分区对应的密钥加载到所述可被替换的槽位。
13.根据权利要求12所述的存储器控制器,所述控制单元还用于将原存储在所述可被替换的槽位中的密钥的加载状态从已加载修改为未加载。
14.根据权利要求12所述的存储器控制器,其中,所述高速密钥寄存器还存储有每个密钥的最新访问时间,所述密码算法引擎或所述控制单元根据每个密钥的最新访问时间从所述多个槽位中确定可被替换的槽位。
15.根据权利要求12所述的存储器控制器,其中,所述高速密钥寄存器还存储有每个密钥在最新的设定时间内被使用的次数,所述密码算法引擎或所述控制单元根据每个密钥被使用的次数从所述多个槽位中确定可被替换的槽位。
16.一种存储器,包括如权利要求11至15任意一项所述的存储器控制器和存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110742771.8A CN113420308A (zh) | 2021-07-01 | 2021-07-01 | 用于加密存储器的数据访问控制方法及控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110742771.8A CN113420308A (zh) | 2021-07-01 | 2021-07-01 | 用于加密存储器的数据访问控制方法及控制系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113420308A true CN113420308A (zh) | 2021-09-21 |
Family
ID=77717900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110742771.8A Pending CN113420308A (zh) | 2021-07-01 | 2021-07-01 | 用于加密存储器的数据访问控制方法及控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113420308A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821821A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 安全架构系统、安全架构系统的密码运算方法和计算设备 |
CN114611164A (zh) * | 2022-03-18 | 2022-06-10 | 广州威创信息技术有限公司 | 一种基于大数据的信息安全管理系统 |
CN114866514A (zh) * | 2022-04-29 | 2022-08-05 | 中国科学院信息工程研究所 | 多用户数据流转控制与处理方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716221A (zh) * | 2005-07-29 | 2006-01-04 | 大唐微电子技术有限公司 | 对存储器逻辑分区访问权限进行控制的方法和ic卡 |
CN101141257A (zh) * | 2006-09-07 | 2008-03-12 | 国际商业机器公司 | 用于保持加密密钥完整性的方法、密码单元和存储驱动器 |
CN102197382A (zh) * | 2008-10-23 | 2011-09-21 | 美信集成产品公司 | 多层内容保护微控制器 |
CN107315966A (zh) * | 2017-06-22 | 2017-11-03 | 湖南国科微电子股份有限公司 | 固态硬盘数据加密方法及系统 |
CN109240952A (zh) * | 2018-08-27 | 2019-01-18 | 北京计算机技术及应用研究所 | 一种高速数据加密NVMe-SATA转换器电路 |
CN110543764A (zh) * | 2019-09-11 | 2019-12-06 | 天津飞腾信息技术有限公司 | 片上系统内存防护方法、密码加速引擎及内存防护装置 |
CN111353156A (zh) * | 2018-12-20 | 2020-06-30 | 英特尔公司 | 可缩放多密钥总存储器加密引擎 |
CN112149151A (zh) * | 2019-06-29 | 2020-12-29 | 英特尔公司 | 用于微架构流水线的存储器加载单元和存储单元的加密计算引擎 |
-
2021
- 2021-07-01 CN CN202110742771.8A patent/CN113420308A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716221A (zh) * | 2005-07-29 | 2006-01-04 | 大唐微电子技术有限公司 | 对存储器逻辑分区访问权限进行控制的方法和ic卡 |
CN101141257A (zh) * | 2006-09-07 | 2008-03-12 | 国际商业机器公司 | 用于保持加密密钥完整性的方法、密码单元和存储驱动器 |
CN102197382A (zh) * | 2008-10-23 | 2011-09-21 | 美信集成产品公司 | 多层内容保护微控制器 |
CN107315966A (zh) * | 2017-06-22 | 2017-11-03 | 湖南国科微电子股份有限公司 | 固态硬盘数据加密方法及系统 |
CN109240952A (zh) * | 2018-08-27 | 2019-01-18 | 北京计算机技术及应用研究所 | 一种高速数据加密NVMe-SATA转换器电路 |
CN111353156A (zh) * | 2018-12-20 | 2020-06-30 | 英特尔公司 | 可缩放多密钥总存储器加密引擎 |
CN112149151A (zh) * | 2019-06-29 | 2020-12-29 | 英特尔公司 | 用于微架构流水线的存储器加载单元和存储单元的加密计算引擎 |
CN110543764A (zh) * | 2019-09-11 | 2019-12-06 | 天津飞腾信息技术有限公司 | 片上系统内存防护方法、密码加速引擎及内存防护装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821821A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 安全架构系统、安全架构系统的密码运算方法和计算设备 |
CN113821821B (zh) * | 2021-11-24 | 2022-02-15 | 飞腾信息技术有限公司 | 安全架构系统、安全架构系统的密码运算方法和计算设备 |
CN114611164A (zh) * | 2022-03-18 | 2022-06-10 | 广州威创信息技术有限公司 | 一种基于大数据的信息安全管理系统 |
CN114611164B (zh) * | 2022-03-18 | 2022-10-11 | 昆山华东信息科技有限公司 | 一种基于大数据的信息安全管理系统 |
CN114866514A (zh) * | 2022-04-29 | 2022-08-05 | 中国科学院信息工程研究所 | 多用户数据流转控制与处理方法、装置、设备及介质 |
CN114866514B (zh) * | 2022-04-29 | 2023-02-28 | 中国科学院信息工程研究所 | 多用户数据流转控制与处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11513707B2 (en) | Memory system and method of controlling nonvolatile memory | |
US20220214967A1 (en) | Management of Storage Resources Allocated from Non-volatile Memory Devices to Users | |
US11789614B2 (en) | Performance allocation among users for accessing non-volatile memory devices | |
US20230195654A1 (en) | Namespace encryption in non-volatile memory devices | |
US9342466B2 (en) | Multiple volume encryption of storage devices using self encrypting drive (SED) | |
CN113420308A (zh) | 用于加密存储器的数据访问控制方法及控制系统 | |
US20070150481A1 (en) | File distribution and access mechanism for file management and method thereof | |
US20180011801A1 (en) | Application-driven storage systems for a computing system | |
JP6513295B2 (ja) | 計算機システム | |
US8886963B2 (en) | Secure relocation of encrypted files | |
US11868246B2 (en) | Memory system and non-transitory computer readable recording medium | |
US10241934B2 (en) | Shared memory controller, shared memory module, and memory sharing system | |
CN108496159A (zh) | 数据密码引擎 | |
US12112052B2 (en) | Reading a master boot record for a namespace after reformatting the namespace | |
US20230342049A1 (en) | Reading a master boot record for a namespace using a regular read operation | |
WO2024051252A1 (zh) | 数据处理方法及装置 | |
US20240078322A1 (en) | Memory system, memory controller and operation method thereof | |
US20240211612A1 (en) | Data Storage Method and Apparatus, Device, and Readable Medium | |
US20210303204A1 (en) | Simple elastic file-based multi-class storage layer (efms) | |
CN115098876A (zh) | 主控芯片、固态硬盘及其密钥管理方法、计算机存储介质 | |
KR20240082056A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310051 room c1-604, building C, No. 459, Qianmo Road, Xixing street, Binjiang District, Hangzhou, Zhejiang Province Applicant after: Lianyun Technology (Hangzhou) Co.,Ltd. Address before: 6 / F, block C1, spotlight center, 459 Qianmo Road, Binjiang District, Hangzhou City, Zhejiang Province, 310051 Applicant before: MAXIO TECHNOLOGY (HANGZHOU) Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210921 |