CN113297611B - 数据处理、加密存储、读取方法、设备及存储介质 - Google Patents
数据处理、加密存储、读取方法、设备及存储介质 Download PDFInfo
- Publication number
- CN113297611B CN113297611B CN202110184204.5A CN202110184204A CN113297611B CN 113297611 B CN113297611 B CN 113297611B CN 202110184204 A CN202110184204 A CN 202110184204A CN 113297611 B CN113297611 B CN 113297611B
- Authority
- CN
- China
- Prior art keywords
- data
- data record
- ciphertext
- page
- record
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种数据处理、加密存储、读取方法、设备及存储介质。获取到待加密存储的数据记录后,将数据记录写入位于可信存储空间中的数据页中,可避免明文的数据记录遭到泄露或者篡改。待满足设定的加密触发条件时,对数据页进行加密,实现了对数据页中的多条数据进行整体加密。在存储数据页加密得到密文数据块时,可将密文数据块及其元数据存储在数据库的指定存储空间中。这种整体加密并存储的方式,不再需要存储多条密文数据记录各自对应的元数据,只需要存储密文数据块的元数据,极大减少了需要存储的元数据的数量。进而,可在确保数据记录加密前具有较高安全性的前提下,有效缓解了数据加密产生的存储放大问题。
Description
技术领域
本申请涉及数据安全技术领域,尤其涉及一种数据处理、加密存储、读取方法、设备及存储介质。
背景技术
在信息技术迅速发展的互联网时代,由网络和信息系统构成的网络空间面临着日益严峻的安全问题。在这种情形下,安全数据库应运而生。安全数据库,通常是指在具有关系型数据库一般功能的基础上,提高数据库安全性,达到指定的安全标准的数据库管理系统。
现有的安全数据库的实现方式中,对数据进行加密存储的方式存在明显的存储放大缺陷,不利于降低存储成本。因此,有待提出一种新的解决方案。
发明内容
本申请的多个方面提供一种数据处理、加密存储、读取方法、设备及存储介质,用以降低加密存储产生的存储放大现象。
本申请实施例提供一种数据加密存储方法,包括:获取待加密存储的数据记录;将所述数据记录写入第一数据页中,所述第一数据页位于数据库中的可信存储空间;在满足设定的加密触发条件时,按照设定的加密算法,对所述第一数据页进行加密,得到第一密文数据块;所述第一数据页包含多条数据记录;将所述第一密文数据块和所述第一密文数据块的元数据,写入所述数据库中的指定存储空间。
本申请实施例提供一种密文数据读取方法,包括:响应针对数据记录的访问请求,确定所述数据记录所在的密文数据块,所述密文数据块采用计数器模式的加密算法进行加密;将所述密文数据块加载至数据库中的可信存储空间;在所述可信存储空间中,基于计数器模式的解密算法,对所述密文数据块进行局部解密,得到明文的所述数据记录。
本申请实施例还提供一种数据处理方法,包括:获取待加密存储至数据库的多条数据记录;将所述多条数据记录写入数据页中,所述数据页位于所述数据库中的可信存储空间;采用计数器模式的加密算法,对所述数据页进行加密,得到密文数据块;响应针对所述数据页中的第一数据记录的访问请求,在所述可信存储空间中,采用计数器模式的解密算法,对所述密文数据块进行局部解密,得到明文的所述第一数据记录。
本申请实施例提供一种电子设备,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本申请实施例提供的各方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现本申请实施例提供的各方法中的步骤。
本申请实施例提供的数据处理、加密存储、读取方法中,获取到待加密存储的数据记录后,将数据记录写入位于可信存储空间中的数据页中,可避免明文的数据记录遭到泄露或者篡改。待满足设定的加密触发条件时,对数据页进行加密,实现了对数据页中的多条数据进行整体加密。在存储数据页加密得到密文数据块时,可将密文数据块及其元数据存储在数据库的指定存储空间中。这种整体加密并存储的方式,不再需要存储多条密文数据记录各自对应的元数据,只需要存储密文数据块的元数据,极大减少了需要存储的元数据的数量。进而,可在确保数据记录加密前具有较高安全性的前提下,有效缓解了数据加密产生的存储放大问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的数据加密存储方法的流程示意图;
图2为本申请一示例性实施例提供的CTR解密过程的示意图;
图3为本申请一示例性实施例提供的加密数据读取方法的流程示意图;
图4为本申请一示例性实施例提供的数据处理方法的流程示意图;
图5为本申请一示例性实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
安全数据库场景下,获取到待加密存储的数据记录(record)后,通常,将数据记录进行加密,并以密文形式写到对应的文件中。同时,需要维护每条密文的元数据信息,进而导致这种以数据记录为粒度的加密方式存在较大的存储放大。例如,当存储N条16B(字节)的数据记录时,假设每条密文数据记录的元数据占16字节,那么,N条密文数据记录存储所占的空间为(16B+16B)*N。也就是说,N条数据记录加密后所占的存储空间为加密前的2倍,产生了2倍的存储放大。
在现有的访问方式中,当访问某条密文数据记录时,通常直接从对应的文件中取出密文数据记录,并进行解密。但是,这种方式容易泄露数据的访问模式,例如,容易泄露数据的访问频率、访问顺序等等。
针对上述技术问题,在本申请一些实施例中,提供了一种解决方案,以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的数据加密存储方法的流程示意图,如图1所示,该方法包括:
步骤101、获取待加密存储的数据记录。
步骤102、将所述数据记录写入第一数据页中,所述第一数据页位于数据库中的可信存储空间。
步骤103、在满足设定的加密触发条件时,按照设定的加密算法,对所述第一数据页进行加密,得到第一密文数据块所述第一数据页包含多条数据记录。
步骤104、将所述第一密文数据块和所述第一密文数据块的元数据,写入所述数据库中的指定存储空间。
其中,数据记录,指的是待存储到数据库的中的一条记录(Record),在数据库中,数据表中的一行称为一条记录。数据页,是数据文件中具有指定大小的存储单元。第一数据页,可以是可信存储空间中任一未写满的数据页。在本实施例中,采用“第一”对被描述的对象进行限定,仅用于方便描述和区分,并不对被描述对象的顺序、数量等信息构成限制。
其中,可信存储空间,提供了安全的数据存储环境,存储在可信存储空间中的代码和数据不会被泄露或者恶意篡改。
在本实施例中,可信存储空间,可基于TEE(Trusted Execution Environment,可信执行环境)技术实现。其中,TEE本质上是一种基于硬件的安全隔离技术。在处理器芯片上,有REE(Rich Execution Environment,富执行环境)和TEE两个区域,通过硬件配置的方式,可实现不同组件的访问控制,从而提供一个完全隔离的运行空间。
其中,处理器芯片可提供一组安全指令集,例如SGX(Software GuardExtensions,软件保护扩展)指令集,基于该指令集,能够为应用程序提供安全的隔离执行环境。SGX可为应用程序提供可信存储空间(Enclave),存储于Enclave中的代码和数据具有较高的安全性,不会被泄露或恶意篡改。
因此,在本实施例中,可在数据库中创建可信存储空间,并将第一数据页维护在可信存储空间中,以确保写入第一数据页的数据具有较高的安全性。
在本实施例中,与现有技术不同的是,接收到待加密存储的数据记录后,并不直接对数据记录进行加密并存储密文数据记录和密文数据记录的元数据,而是将明文的数据记录写入位于可信存储空间中的第一数据页,可确保明文数据记录在加密之前具有较高的安全性,降低了数据记录在加密存储之后面临的泄露或者被篡改的风险。
其中,设定的加密触发条件,可包括:第一数据页的剩余存储空间满足设定条件;或者,第一数据页中保存的数据记录的数量大于设定的数量阈值;或者,到达数据库预设的加密存储周期;或者,检测到指定的系统事件或者用户事件,本实施例不做限制。
其中,预设的加密存储周期,可以是一小时、24小时、48小时或者其他的周期长度,本实施例不做限制。
其中,第一数据页的剩余存储空间满足设定条件,可包括:第一数据页已存满,无剩余存储空间;或者,第一数据页尚未存满,但已占用的存储空间大于设定的上限存储阈值,本实施例包含但不限于此。
当满足上述加密触发条件时,可按照设定的加密算法,对第一数据页进行加密,得到第一密文数据块。其中,第一数据页包含多条数据记录,该多条数据记录,包括安全数据库场景下待加密存储的两条或者两条以上的数据记录。在这种实施方式中,第一数据页存储多条数据记录,对第一数据页进行加密,即可实现对多条数据记录进行整体加密。
其中,设定的加密算法,可包括:MD5(Message-Digest Algorithm 5,信息摘要算法5)、SHA1(Secure Hash Algorithm 1,安全散列算法1)、HMAC(Hash-based MessageAuthentication Code,密钥相关的哈希运算消息认证码)加密算法、AES(AdvancedEncryption Standard,高级加密标准)加密算法、RSA加密算法、ECC(Elliptic curvecryptography,椭圆曲线密码学)加密算法中的一种或者多种,本实施例不做限制。
对第一数据页进行加密后,得到第一数据页对应的密文数据。在本申请的各实施例中,为描述方便,将数据页加密得到的密文数据,描述为密文数据块,对第一数据页加密得到的密文数据块,可描述为第一密文数据块。
得到第一数据块之后,可将第一密文数据块以及第一密文数据块的元数据,写入数据库中的指定存储空间。其中,该指定存储空间,可以是数据库中位于可信存储空间外部的存储空间。在实际应用中,可信存储空间的存储容量较小,将密文数据块写入可信存储空间外部的数据文件中,可及时释放对可信存储空间的占用。
在本实施例中,获取到待加密存储的数据记录后,将数据记录写入位于可信存储空间中的数据页中,可避免明文的数据记录遭到泄露或者篡改。待满足设定的加密触发条件时,对数据页进行加密,实现了对数据页中的多条数据进行整体加密。在存储数据页加密得到密文数据块时,可将密文数据块及其元数据存储在数据库的指定存储空间中。这种整体加密并存储的方式,不再需要存储多条密文数据记录各自对应的元数据,只需要存储密文数据块的元数据,极大减少了需要存储的元数据的数量。进而,可在确保数据记录加密前具有较高安全性的前提下,有效缓解了数据加密产生的存储放大问题。
承接前述例子,假设数据页存储N条16B(字节)的数据记录,数据页加密后得到的密文数据块的元数据占16字节,那么,包含N条数据记录的数据页加密后所占的存储空间为16B*N++16B。也就是说,N条数据记录加密后所占的空间为加密前的1.01倍。相对于现有技术中2倍的存储放大,基于本实施例提供的加密存储方案,可极大缓解加密存储过程中的存储放大现象。
在一些可选的实施例中,将待加密存储的数据记录写入第一数据页中之后,可生成该数据记录的识别标识,并将识别标识作为该数据记录的索引信息维护在可信存储空间中。
可选地,数据记录的识别标识,包含数据记录的位置信息,其中该位置信息可包括:数据记录所在的数据页的标识(page ID)、数据记录在数据页中的偏移量(offset)以及数据记录的长度(length)。其中,偏移量用于表示数据记录所在的存储单元的实际地址与其所在数据页的起始地址之间的距离,如图2所示。
在一些实施例中,可采用RID(Record ID)来描述数据记录的识别标识。RID可以为结构体类型的数据,由page ID、offset以及length等字段组成。其中,数据记录的长度,指的是数据记录的字节数。例如,一条数据记录的字节数为12B、16B等等。
获取到多条数据记录的识别标识后,可根据多条数据记录的识别标识,生成第一数据页对应的索引信息中,并将第一数据页对应的索引信息,保存在可信内存空间中。
在本实施例中,数据页的索引信息,可基于平衡多路查找树B-Tree(Balance-Tree)或者B+Tree等结构存储。其中,B+Tree是在B-Tree基础上的一种优化,使其更适合实现外存储索引结构。
在本实施例中,将索引信息保存在可信存储空间中,在访问数据记录时,可直接从可信存储空间中访问索引信息,得到数据记录的RID;再通过RID查询数据记录所在的密文数据块。这种将索引信息维护在可信存储空间中的方式,可节省为确保索引信息的安全性而对索引信息进行加密的操作,以及,在访问索引信息之前对索引信息进行解密的操作。当索引信息的访问频率较高时,将索引信息保存在可信存储空间中,一方面可提升访问效率,另一方面可极大减少加密、解密所需的开销。
在一些可选的实施例中,为提升数据记录的访问安全性,对数据页进行加密时,可选择支持局部解密的加密算法,以便于在数据读取环节,可以对密文数据块进行局部解密,得到明文的数据记录。
可选地,对数据页进行加密采用的加密算法,可以是计数器模式(counter,简称CTR)的AES加密算法,即AES-CTR。
AES-CTR是AES加密算法的计数器模式,利用一个单调的计数器来初始化加解密,每个部分的计数器的值都不同。这种模式允许只解密密文块中的一小部分。
AES-CTR在对明文数据进行加密时,随机产生一个加密随机数,对加密随机数以及连续递增的计数值(counter)进行加密,产生流密码(keystream);将流密码与待加密的明文数据进行异或运算,即可得到密文数据。其中,计数值可由任意函数产生,通常,可使用逐一递增的方式得到计数值,即counter=counter+1。
在对密文数据进行解密时,可对加密时使用的加密随机数以及密文数据对应的计数值counter进行加密,产生流密码。将流密码与密文数据进行异或运算,可得到明文数据,如图2所示。
以下将结合AES-CTR,以第一数据页为例对加密过程进行示例性说明。
可选地,首先可采用AES-CTR加密算法,生成第一数据页对应的加密随机数(nounce)以及初始计数值(counter);接下来,基于加密随机数nounce和初始计数值counter,确定对第一数据页进行加密使用的初始化向量(Initialization Vector,简称IV)。在本实施例中,为便于区分,将加密阶段使用的IV描述为加密向量,将解密阶段使用的IV描述为解密向量。基于第一数据页对应的加密向量,可对第一数据页进行加密,得到第一密文数据块。
其中,加密向量可由加密随机数和初始计数值拼接得到,即,将nounce和counter进行拼接,得到第一数据页对应的解密向量IV。在基于解密向量IV对第一数据页进行加密时,可将解密向量IV与第一数据页中每条数据记录进行异或运算,得到包含多条密文数据记录的第一密文数据块。
基于上述实施例记载的加密方式,在访问数据记录时,可基于AES-CTR解密算法对密文数据块进行局部解密,得到明文的数据记录,避免了对密文数据块进行整体解密造成较大的解密开销。
以被访问的数据记录为第一数据记录为例,基于AES-CTR的原理,在解密时,可从第一数据记录的识别标识中,获取第一数据记录在第一数据页中的偏移量offset,并从第一密文数据块的元数据中,获取第一数据页对应的加密随机数nounce。
接下来,根据第一数据记录的偏移量计算,第一数据记录对应的计数值counter。其中counter=offset/L。其中,L表示第一数据页中的计数值counter逐一递增所需的字节数。在数据页中,每递增L个字节,counter的数值加1。通常,L的值与数据记录的长度相同,即L=Length。
接下来,将第一数据记录计数值counter以及加密随机数nounce进行拼接,得到解密向量IV。通常,计数值counter可占4B,加密随机数可占12B,解密向量IV占16B。
接下来,可根据第一数据记录在第一数据页中的偏移量以及第一数据记录的长度,在第一密文数据块中位定密文的第一数据记录,并基于解密向量,对密文的第一数据记录进行解密,得到明文的第一数据记录。
其中,基于解密向量,对密文的第一数据记录进行解密时,可将解密向量IV和密文的第一数据记录进行异或操作,不再赘述。
通常,获取到明文的第一数据记录后,可按照预设的加密算法对明文的第一数据记录进行加密,以确保将第一数据记录返回至用户的过程中具有较高的安全性。
在这种实施方式中,对当前被访问的数据记录进行局部解密,相对于对密文数据块进行整体解密而言,极大降低了解密所需的开销,在缓解加密产生的存储放大的同时,提升了解密效率。
在一些可选的实施例中,为进一步提升解密过程的安全性,避免泄露访问模式,可在对密文数据块进行解密之前,将密文数据块加载到数据块中的可信存储空间中。以下将以访问第一数据记录为例进行示例性说明,其中,该第一数据记录为数据库中加密存储的任意一条数据记录。
可选地,响应针对第一数据记录的访问请求,确定第一数据记录所在的数据页。
其中,访问请求可携带访问关键字,对访问请求进行解析得到访问关键字后,可确定第一数据记录的识别标识。基于识别标识,可查询可信存储空间中维护的索引信息,并根据索引信息,确定数据记录所在的数据页。继续以第一数据记录写在第一数据页中为例进行说明。
接下来,可从数据库中,将第一数据页对应的第一密文数据块加载到数据库中的可信存储空间中。在可信存储空间中,可基于计数器模式的解密算法,对第一密文数据块进行局部解密,得到明文的第一数据记录。
在局部解密时,可从第一数据记录的识别标识中,获取第一数据记录在所述第一数据页中的偏移量,并从第一密文数据块的元数据中,获取第一数据页对应的加密随机数;根据该偏移量以及该加密随机数,可确定第一数据记录对应的解密向量。接下来,可根据该偏移量以及该第一数据记录的长度,在第一密文数据块中确定密文的第一数据记录。接下来,可基于解密向量,对密文的第一数据记录进行解密,得到明文的第一数据记录。
在这种实施方式中,当被访问的数据记录所在的密文数据块采用计数器模式的加密算法进行加密时,可在读取数据记录时,基于计数器模式的解密算法对该密文数据块进行局部解密即可得到明文的数据记录。相对于对密文数据块进行整体解密而言,极大降低了解密所需的开销,在缓解加密产生的存储放大的同时,提升了解密效率。同时,在可信存储空间中进行局部解密,确保了数据访问模式不被泄露,提升了数据访问过程的安全性。
基于上述数据加密存储方法,本申请还提供一种加密数据读取方法,图3为本申请一示例性实施例提供的数据读取方法的流程示意图,如图3所示,该方法包括:
步骤301、响应针对数据库中的数据记录的访问请求,确定所述数据记录所在的密文数据块,所述密文数据块采用计数器模式的加密算法进行加密。
步骤302、将所述密文数据块加载至所述数据库中的可信存储空间。
步骤303、在所述可信存储空间中,基于计数器模式的解密算法,对所述密文数据块进行局部解密,得到明文的所述数据记录。
在本实施例中,被访问的数据记录所在的密文数据块采用计数器模式的加密算法进行加密,读取数据记录时,基于计数器模式的解密算法对该密文数据块进行局部解密即可得到明文的数据记录。相对于对密文数据块进行整体解密而言,极大降低了解密所需的开销,在缓解加密产生的存储放大的同时,提升了解密效率。同时,在可信存储空间中进行局部解密,确保了数据访问模式不被泄露,提升了数据访问过程的安全性。
本申请还提供一种数据处理方法,图4为本申请一示例性实施例提供的数据处理方法的流程示意图,如图4所示,该方法包括:
步骤401、获取待加密存储至数据库的多条数据记录。
步骤402、将所述多条数据记录写入数据页中,所述数据页位于所述数据库中的可信存储空间。
步骤403、采用计数器模式的加密算法,对所述数据页进行加密,得到密文数据块。
步骤404、响应针对所述数据页中的第一数据记录的访问请求,采用计数器模式的解密算法,对所述密文数据块进行局部解密,得到明文的所述第一数据记录。
在本实施例中,对数据页进行加密得到的密文数据块可以存储在可信存储空间中,可也以存储在可信存储空间之外的其他数据文件中,本实施例不做限制。当密文数据块存储在可信存储空间之外的其他数据文件中时,可在局部解密之前,将密文数据块加载到可信存储空间中,以避免泄露数据访问模式。
以可信存储空间实现为服务器上的Enclave为例对本实施例进行示例性说明。
可选地,可在Enclave中维护一个写入数据页,用来保存用户最新插入的数据记录。同时Enclave中也维护了一个访问数据页,存储了当前被访问的数据记录。
在本实施例中,数据记录的写入或更新流程如下:
S1.用户将加密的数据记录经由SGX可信通道传输到服务器端的Enclave中。服务器在Enclave中解密该数据记录,并将解密后得到的明文数据记录附加写到Enclave中维护的写入数据页中。
S2.当Enclave中维护的写入数据页存满时,可基于AES-CTR加密算法,以数据页为粒度进行加密,得到密文数据块,并将密文数据块并写到Enclave外部的数据文件中。其中,在对数据页加密时,随机生成一个全局的加密随机数nonce(12B),该加密随机保存在密文数据块的元数据中。
数据记录的访问流程如下:
S1.响应访问请求,查询索引信息以确定被访问的数据记录的RID,并根据RID确定密文数据记录所在的数据页。将该数据页对应的密文数据块加载到Enclave中作为访问数据页。
S2.从RID中获取数据记录在数据页中的偏移量offset,从密文数据块中获取加密随机数nounce;根据偏移量offset计算解密所需要的计数值counter,计算方式为;counter=offset/L。
S3.将加密随机数nonce和计数值counter拼接成解密算法所需要的解密向量IV。
S4.将密文的数据记录解密,得到明文的数据记录。
S5.将数据记录加密为传输所需的密文,并返回给用户。
相比于传统的以数据记录为粒度的存储加密和解密方式而言,本实施例提供了一种以数据页为粒度进行加密的方式以及以数据记录为粒度的解密方式。一方面,极大程度减少了维护加密元数据带来的存储开销,另一方面,在可信存储空间中进行解密,能够一定程度缓解访问模式的泄露。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤301至步骤304的执行主体可以为设备A;又比如,步骤301和302的执行主体可以为设备A,步骤303的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如301、302等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5是本申请一示例性实施例提供的电子设备的结构示意图,该电子设备可以实现为服务器,例如常规服务器、云服务器等。如图5所示,该电子设备包括:存储器501、处理器502以及通信组件503。
存储器501,用于存储计算机程序,并可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
处理器502,与存储器501耦合,用于执行存储器501中的计算机程序,以用于:通过通信组件503获取获取待加密存储的数据记录;将所述数据记录写入第一数据页中,所述第一数据页位于数据库中的可信存储空间;在满足设定的加密触发条件时,按照设定的加密算法,对所述第一数据页进行加密,得到第一密文数据块;所述第一数据页包含多条数据记录;将所述第一密文数据块和所述第一密文数据块的元数据,写入所述数据库中的指定存储空间。
进一步可选地,处理器502将所述数据记录,写入第一数据页中之后,还用于:根据所述数据记录在所述第一数据页中的位置信息,生成所述数据记录的识别标识;将所述数据记录的识别标识,作为所述数据记录的索引信息,保存在所述可信内存空间中。
进一步可选地,处理器502在根据所述数据记录在所述第一数据页中的位置信息,生成所述数据记录的识别标识时,具体用于:根据所述第一数据页的ID、所述数据记录在所述第一数据页中的偏移量以及所述数据记录的长度,生成所述数据记录的RID。
进一步可选地,处理器502还用于:响应针对所述第一数据页中的第一数据记录的访问请求,从所述指定存储空间中,将所述第一密文数据块加载到所述可信存储空间中;在所述可信存储空间中,基于所述加密算法对应的解密算法对所述第一密文数据块进行解密,得到所述第一数据页;根据所述第一数据记录在所述第一数据页中的位置,从所述第一数据页中,获取明文的所述第一数据记录。
进一步可选地,处理器502在按照设定的加密算法,对所述第一数据页进行加密,得到第一密文数据块时,具体用于:采用计数器模式的加密算法,生成所述第一数据页对应的加密随机数以及初始计数值;基于所述加密随机数以及所述初始计数值,确定所述第一数据页对应的加密向量;基于所述加密向量,对所述第一数据页进行加密,得到所述第一密文数据块。
进一步可选地,处理器502还用于:响应针对所述第一数据页中的第一数据记录的访问请求,从所述指定存储空间中,将所述第一密文数据块加载到所述可信存储空间中;在所述可信存储空间中,基于计数器模式的解密算法,对所述第一密文数据块进行局部解密,得到明文的所述第一数据记录。
进一步可选地,处理器502在所述可信存储空间中,基于计数器模式的解密算法,对所述第一密文数据块进行局部解密,得到明文的所述第一数据记录时,具体用于:从所述第一数据记录的识别标识中,获取所述第一数据记录在所述第一数据页中的偏移量,并从所述第一密文数据块的元数据中,获取第一数据页对应的加密随机数;根据所述偏移量以及所述加密随机数,确定所述第一数据记录对应的解密向量;根据所述偏移量以及所述第一数据记录的长度,在所述第一密文数据块中定位密文的第一数据记录;基于所述解密向量,对所述密文的第一数据记录进行解密,得到明文的第一数据记录。
进一步,如图5所示,该电子设备还包括:50电源组件50504等其它组件。图5中仅示意性给出部分组件,并不意味着电子设备只包括图5所示组件。
其中,存储器501可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
其中,通信组件503被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术和其他技术来实现。
其中,电源组件504,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本实施例中,获取到待加密存储的数据记录后,将数据记录写入位于可信存储空间中的数据页中,可避免明文的数据记录遭到泄露或者篡改。待满足设定的加密触发条件时,对数据页进行加密,实现了对数据页中的多条数据进行整体加密。在存储数据页加密得到密文数据块时,可将密文数据块及其元数据存储在数据库的指定存储空间中。这种整体加密并存储的方式,不再需要存储多条密文数据记录各自对应的元数据,只需要存储密文数据块的元数据,极大减少了需要存储的元数据的数量。进而,可在确保数据记录加密前具有较高安全性的前提下,有效缓解了数据加密产生的存储放大问题。
除前述记载的实施方式之外,图5所示的电子设备还可执行如下的密文数据读取方法:处理器502响应针对数据库中的数据记录的访问请求,确定所述数据记录所在的密文数据块,所述密文数据块采用计数器模式的加密算法进行加密;将所述密文数据块加载至所述数据库中的可信存储空间;在所述可信存储空间中,基于计数器模式的解密算法,对所述密文数据块进行局部解密,得到明文的所述数据记录。
在这种实施方式中,被访问的数据记录所在的密文数据块采用计数器模式的加密算法进行加密,读取数据记录时,基于计数器模式的解密算法对该密文数据块进行局部解密即可得到明文的数据记录。相对于对密文数据块进行整体解密而言,极大降低了解密所需的开销,在缓解加密产生的存储放大的同时,提升了解密效率。同时,在可信存储空间中进行局部解密,确保了数据访问模式不被泄露,提升了数据访问过程的安全性。
除前述记载的实施方式之外,图5所示的电子设备还可执行如下的数据处理方法:获取待加密存储至数据库的多条数据记录;将所述多条数据记录写入数据页中,所述数据页位于所述数据库中的可信存储空间;采用计数器模式的加密算法,对所述数据页进行加密,得到密文数据块;响应针对所述数据页中的第一数据记录的访问请求,采用计数器模式的解密算法,对所述密文数据块进行局部解密,得到明文的所述第一数据记录。
相比于传统的以数据记录为粒度的存储加密和解密方式而言,本实施例提供的电子设备支持以数据页为粒度进行加密的方式以及以数据记录为粒度的解密方式。一方面,极大程度减少了维护加密元数据带来的存储开销,另一方面,在可信存储空间中进行解密,能够一定程度缓解访问模式的泄露。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由电子设备执行的各步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (9)
1.一种数据加密存储方法,适用于数据库,包括:
获取待加密存储的数据记录;
将所述数据记录写入第一数据页中,所述第一数据页位于数据库中的可信存储空间;所述第一数据页为具有指定大小的存储单元;
在满足设定的加密触发条件时,按照设定的加密算法,对所述第一数据页进行加密,得到第一密文数据块;所述第一数据页包含多条数据记录;
将所述第一密文数据块和所述第一密文数据块的元数据,写入所述数据库中的指定存储空间;
所述第一密文数据块,用于在所述可信存储空间中进行局部解密,得到所述第一数据页中的明文的第一数据记录。
2.根据权利要求1所述的方法,将所述数据记录,写入第一数据页中之后,还包括:
根据所述数据记录在所述第一数据页中的位置信息,生成所述数据记录的识别标识;
将所述数据记录的识别标识,作为所述数据记录的索引信息,保存在所述可信存储空间中。
3.根据权利要求2所述的方法,根据所述数据记录在所述第一数据页中的位置信息,生成所述数据记录的识别标识,包括:
根据所述第一数据页的ID、所述数据记录在所述第一数据页中的偏移量以及所述数据记录的长度,生成所述数据记录的RID。
4.根据权利要求2所述的方法,还包括:
响应针对所述第一数据页中的第一数据记录的访问请求,从所述指定存储空间中,将所述第一密文数据块加载到所述可信存储空间中;
在所述可信存储空间中,基于所述加密算法对应的解密算法对所述第一密文数据块进行解密,得到所述第一数据页;
根据所述第一数据记录在所述第一数据页中的位置,从所述第一数据页中,获取明文的所述第一数据记录。
5.根据权利要求2所述的方法,按照设定的加密算法,对所述第一数据页进行加密,得到第一密文数据块,包括:
采用计数器模式的加密算法,生成所述第一数据页对应的加密随机数以及初始计数值;
基于所述加密随机数以及所述初始计数值,确定所述第一数据页对应的加密向量;
基于所述加密向量,对所述第一数据页进行加密,得到所述第一密文数据块。
6.根据权利要求5所述的方法,还包括:
响应针对所述第一数据页中的第一数据记录的访问请求,从所述指定存储空间中,将所述第一密文数据块加载到所述可信存储空间中;
在所述可信存储空间中,基于计数器模式的解密算法,对所述第一密文数据块进行局部解密,得到明文的所述第一数据记录。
7.根据权利要求6所述的方法,在所述可信存储空间中,基于计数器模式的解密算法,对所述第一密文数据块进行局部解密,得到明文的所述第一数据记录,包括:
从所述第一数据记录的识别标识中,获取所述第一数据记录在所述第一数据页中的偏移量,并从所述第一密文数据块的元数据中,获取第一数据页对应的加密随机数;
根据所述偏移量以及所述加密随机数,确定所述第一数据记录对应的解密向量;
根据所述偏移量以及所述第一数据记录的长度,在所述第一密文数据块中定位密文的第一数据记录;
基于所述解密向量,对所述密文的第一数据记录进行解密,得到明文的第一数据记录。
8.一种电子设备,包括:存储器和处理器;
所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令以用于:执行权利要求1-7任一项所述的方法中的步骤。
9.一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现权利要求1-7任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110184204.5A CN113297611B (zh) | 2021-02-08 | 2021-02-08 | 数据处理、加密存储、读取方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110184204.5A CN113297611B (zh) | 2021-02-08 | 2021-02-08 | 数据处理、加密存储、读取方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297611A CN113297611A (zh) | 2021-08-24 |
CN113297611B true CN113297611B (zh) | 2023-05-26 |
Family
ID=77318928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110184204.5A Active CN113297611B (zh) | 2021-02-08 | 2021-02-08 | 数据处理、加密存储、读取方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297611B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915480B (zh) * | 2022-05-19 | 2023-08-25 | 北京微纳星空科技有限公司 | 一种射频数据流的加密方法及星载加密机 |
CN115374483B (zh) * | 2022-10-24 | 2023-01-20 | 北京智芯微电子科技有限公司 | 数据安全存储方法及装置、电子设备、介质、芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106992851A (zh) * | 2017-04-01 | 2017-07-28 | 北京元心科技有限公司 | 基于TrustZone的数据库文件口令加解密方法、装置及终端设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050004924A1 (en) * | 2003-04-29 | 2005-01-06 | Adrian Baldwin | Control of access to databases |
CN102375852A (zh) * | 2010-08-24 | 2012-03-14 | 中国移动通信集团公司 | 建立数据索引的方法、利用该索引查询数据的方法和系统 |
CN103139143B (zh) * | 2011-11-23 | 2016-03-30 | 北大方正集团有限公司 | 数字版权管理的方法、系统和服务器 |
CN109447225B (zh) * | 2018-11-27 | 2024-06-04 | 公安部第一研究所 | 一种高速安全加密Micro SD卡 |
CN111414635A (zh) * | 2020-03-20 | 2020-07-14 | 广州市百果园信息技术有限公司 | 文件加密、解密方法、装置、设备和存储介质 |
-
2021
- 2021-02-08 CN CN202110184204.5A patent/CN113297611B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106992851A (zh) * | 2017-04-01 | 2017-07-28 | 北京元心科技有限公司 | 基于TrustZone的数据库文件口令加解密方法、装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113297611A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9548866B2 (en) | Deletion of content in digital storage systems | |
CN109886040B (zh) | 数据处理方法、装置、存储介质及处理器 | |
US10904231B2 (en) | Encryption using multi-level encryption key derivation | |
CN111756717B (zh) | 一种信息处理方法及装置 | |
US20220006617A1 (en) | Method and apparatus for data storage and verification | |
CN102855448B (zh) | 一种字段级数据库加密装置 | |
CN109040090A (zh) | 一种数据加密方法及装置 | |
US20160028719A1 (en) | Segmented secret-key storage system, segment storage apparatus, segmented secret-key storage method | |
CN113297611B (zh) | 数据处理、加密存储、读取方法、设备及存储介质 | |
CN105450620A (zh) | 一种信息处理方法及装置 | |
CN111190974B (zh) | 可验证声明的转发、获取方法、装置及设备 | |
CN114327261B (zh) | 数据文件的存储方法及数据安全代理 | |
CN109800582B (zh) | 可溯源的多方数据处理方法、装置及设备 | |
CN111639362B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
KR20170102219A (ko) | 트랜잭션을 처리하기 위한 방법 및 장치 | |
CN111566989B (zh) | 一种密钥处理方法及装置 | |
CN110717190A (zh) | 一种分布式数据存储方法、装置及数据存储设备 | |
US20230179425A1 (en) | Preventing rollback attacks on persisted data in a secure enclave | |
CN113886418B (zh) | 一种数据处理方法、装置、电子设备及机器可读存储介质 | |
US9218296B2 (en) | Low-latency, low-overhead hybrid encryption scheme | |
CN115694921B (zh) | 一种数据存储方法、设备及介质 | |
US8634561B2 (en) | Secure key management | |
CN113742370B (zh) | 全加密数据库的数据查询方法、统计信息密文生成方法 | |
JP2017532906A (ja) | プロビジョニングサーバでサブスクリプションを管理する方法 | |
US11645399B1 (en) | Searching encrypted data |
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 |