CN107729766B - 数据存储方法、数据读取方法及其系统 - Google Patents

数据存储方法、数据读取方法及其系统 Download PDF

Info

Publication number
CN107729766B
CN107729766B CN201710940111.4A CN201710940111A CN107729766B CN 107729766 B CN107729766 B CN 107729766B CN 201710940111 A CN201710940111 A CN 201710940111A CN 107729766 B CN107729766 B CN 107729766B
Authority
CN
China
Prior art keywords
data
sub
sequence number
subdata
key
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
Application number
CN201710940111.4A
Other languages
English (en)
Other versions
CN107729766A (zh
Inventor
刘明辉
刘镝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN201710940111.4A priority Critical patent/CN107729766B/zh
Publication of CN107729766A publication Critical patent/CN107729766A/zh
Application granted granted Critical
Publication of CN107729766B publication Critical patent/CN107729766B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2291User-Defined Types; Storage management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据存储方法、数据读取方法及其系统,其中该数据存储方法包括:将第i个完整数据Di分割为n个子数据;将n个子数据分别存储至对应的n个数据子表中。本发明的技术方案通过将完整数据拆分为若干个子数据,并分别存入至对应的数据子表中的相应存储顺序号的位置,可在实现数据库明文存储的同时对数据库中的数据进行了有效保护;当用户访问某条隐私信息数据时,需要先获取子数据在对应数据子表中的存储顺序号,然后获取相应的子数据,最后将所有需要的子数据拼接在一起,才能形成一条完整的隐私信息数据,因而能对隐私数据进行有效保护。此外,数据在数据库中是明文存储,因此读取过程为明文读取,因而具有较高的读取效率。

Description

数据存储方法、数据读取方法及其系统
技术领域
本发明涉及数据处理领域,特别涉及一种数据存储方法、数据读取方法及其系统。
背景技术
在具体数据应用中,隐私数据即为数据所有者不愿意被披露的敏感信息,包括敏感数据以及数据所表征的特性,如用户的手机号、固话号码、公司的经营信息等。隐私保护是数据库安全的重要内容,其安全威胁来自于两方面,一方面是数据库系统外部,攻击者利用系统的漏洞或者非法获取访问权限,从而窃取隐私数据;另一方面是数据库系统内部,具有合法访问权限的数据库管理员,存在探查、泄露隐私数据的可能性。
为了防止从数据库泄露用户隐私信息,目前常用的方法是在数据存入数据库时进行加密,数据库中存储密文,每当有用户访问数据库时,先对数据进行解密,然后返回明文的数据给用户
目前,现有基于数据库的数据存储、读取方法存在如下缺陷:数据存储、读写时都要进行加解密操作,效率低,明文数据经过加密后,原有对明文的运算也无法在密文上执行,需要将所有密文解密为明文才能完成操作,这种方案在面对大规模的数据库存储需求时,在执行效率上远低于明文数据库。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一,提出了一种数据存储方法、数据读取方法及其系统
为实现上述目的,本发明提供了一种数据存储方法,包括:
将第i个完整数据Di分割为n个子数据,n个子数据分别记为Di_1、Di_2……Di_n,i为整数,n≥2且为整数;
将n个子数据分别存储至对应的n个数据子表中,n个数据子表分别记为T1、T2……Tn,子数据Di_1在数据子表T1中的存储顺序号为i,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,其中,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为Q,Q为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算。
可选地,根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算。
可选地,进行密钥分散运算时采用的算法为对称密钥算法。
为实现上述目的,本发明还提供了一种数据读取方法,包括:
从n个数据子表中依次获取用于构成第i个完整数据Di的n个子数据,n个数据子表分别记为T1、T2……Tn,完整数据Di存储在n个数据子表中的n个子数据分别记为Di_1、Di_2……Di_n,子数据Di_1在数据子表T1中的存储顺序号为i,i为整数,n≥2且为整数,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,其中,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为Q,Q为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算;
将n个子数据按顺序进行组合以构成完整数据Di
可选地,根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算。
可选地,进行密钥分散运算时采用的算法为对称密钥算法。
为实现上述目的,本发明还提供了一种数据存储系统,包括:
数据分割模块,用于将第i个完整数据Di分割为n个子数据,n个子数据分别记为Di_1、Di_2……Di_n,i为整数,n≥2且为整数;
数据写入模块,用于将n个子数据分别存储至对应的n个数据子表中,n个数据子表分别记为T1、T2……Tn
所述数据写入模块包括:第一顺序号确定单元和写入单元;
所述第一顺序号确定单元用于确定各子数据在对应的数据子表中的存储顺序号,其中,子数据Di_1在数据子表T1中的存储顺序号为i,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为M,M为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算;
所述写入单元用于根据第一顺序号确定单元确定出的各子数据在对应的数据子表中的存储顺序号,将各子数据写入至对应的数据子表中的相应位置,以进行存储。
可选地,所述第一顺序号确定单元包括:第一分散因子计算子单元和第一密钥分散运算单元;
所述第一分散因子计算子单元用于根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算。
所述第一密钥分散运算单元用于采用对称密钥算法进行密钥分散运算。
为实现上述目的,本发明还提供了一种数据读取系统,包括:
数据读取模块,用于从n个数据子表中依次获取用于构成第i个完整数据Di的n个子数据,n个数据子表分别记为T1、T2……Tn,完整数据Di存储在n个数据子表中的n个子数据分别记为Di_1、Di_2……Di_n,i为整数,n≥2且为整数;
所述数据读取模块包括:第二顺序号确定单元和读取单元;
所述第二顺序号确定单元用于确定各子数据在对应的数据子表中的存储顺序号,其中,子数据Di_1在数据子表T1中的存储顺序号为i,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,其中,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为Q,Q为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算;
读取单元,用于根据第二顺序号确定单元确定出的各子数据在对应的数据子表中的存储顺序号,从各数据子表中的相应位置读取各子数据;
重组模块,用于将读取出的n个子数据按顺序进行组合以构成完整数据Di
可选地,所述第二顺序号确定单元包括:第二分散因子计算子单元和第二密钥分散运算单元;
所述第二分散因子计算子单元用于根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算;
所述第二密钥分散运算单元用于采用对称密钥算法进行密钥分散运算。
本发明具有以下有益效果:
本发明提供了一种数据存储方法、数据读取方法及其系统,通过将完整数据拆分为若干个子数据,并分别存入至对应的数据子表中的相应存储顺序号的位置,可在实现数据库明文存储的同时对数据库中的数据进行了有效保护;当用户访问某条隐私信息数据时,需要按照相应的关联算法,先获取子数据在对应数据子表中的存储顺序号,然后获取相应的子数据,最后将所有需要的子数据拼接在一起,才能形成一条完整的隐私信息数据,因而能对隐私数据进行有效保护。此外,数据在数据库中是明文存储,因此读取过程为明文读取,因而具有较高的读取效率。
附图说明
图1为本发明实施例一提供的一种数据存储方法的流程图;
图2为本发明实施例二提供的一种数据读取方法的流程图;
图3为本发明实施例三提供的一种数据存储系统的结构框图;
图4为本发明实施例四提供的一种数据读取系统的结构框图。
具体实施方式
为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明提供的一种数据存储方法、数据读取方法及其系统进行详细描述。
本发明中的“数据存储”具体是指将一条完整数据于数据库中。其中,一条完整数据包含有多个不同的属性数据,数据库中由多个数据子表构成,每一个数据子表中可存储一条完整数据中对应的部分属性数据,全部的数据子表可实现对完整明文数据进行分布式存储。
本发明中的“数据读取”具体是指从各数据子表中分别读取中构成一条完整数据的全部属性数据,读取出的全部属性数据可组合成一条完整数据。
图1为本发明实施例一提供的一种数据存储方法的流程图,如图1所示,该数据存储方法包括:
步骤S101、将第i个完整数据Di分割为n个子数据。
本实施例中,以电子医疗信息为例进行示例性描述,假定一条完整数据包括:姓名、性别、电话号码、年龄、身份证号、家庭住址、身高、体重、血压、视力、是否存在高血压、是否存在糖尿病、血常规参数、肝功能参数、肾功能参数、B超数据、X光片数据、CT数据、核磁共振数据等属性。
基于上述属性,可预先针对电子医疗信息数据设计出对应的6个数据子表,如下表1:
子表序号 表名 存储的属性数据
1 个人基础信息1 姓名、性别、电话号码
2 个人基础信息2 年龄、身份证号、家庭住址
3 个人基本健康状况 身高、体重、血压、视力
4 既往病史 高血压、糖尿病
5 检查报告1 血常规、肝功能、肾功能
6 检查报告2 B超、X光片、CT、核磁共振
表1.电子医疗信息数据库对应的数据子表的信息表
根据预先设定的数据子表的数量以及各数据子表存储的属性数据,将一条完整的电子医疗数据分割为6(即n取值为6)个对应的子数据。
需要说明的是,上述表1中所示的情况仅起到示例性作用,其不会对本发明的技术方案产生限制。本领域技术人员应该知晓的是,在本发明中,仅需根据预先设计好的数据子表的数量以及各数据子表可存储的属性数据,来对一条完整数据进行分割,一条完整数据对应的子数据的数量与数据子表的数量相同。
在本实施例中,欲存储至数据库的第i个完整数据记为Di,其中i为整数;对完整数据Di进行分割后得到的n个子数据分别记为Di_1、Di_2……Di_n,其中n≥2且为整数;用于存储上述n个子数据所对应的n个数据子表分别记为T1、T2……Tn,其中数据子表Tj用于存储子数据Di_j,其中1≤j≤n。
步骤S102、将n个子数据分别存储至对应的n个数据子表中。
其中,步骤S102具体包括:
步骤S1021、确定子数据Di_1在数据子表T1中的存储顺序号为i。
在本发明中,针对数据子表T1,将子数据Di_1按顺序依次进行存储,即第i个完整数据对应的第一个子数据Di_1存储于第一个数据子表T1中存储顺序号为i的位置。在实际应用中,数据子表T1中存储的数据为可以建立主索引的属性数据(例如;姓名、身份证号、学号等),方便后续查找。
步骤S1022、计算子数据Di_m在数据子表Tm中的存储顺序号,2≤m≤n且m为整数。
在步骤S1022中,采用如下算法来计算子数据Di_m在数据子表Tm中的存储顺序号Ki_m
Ki_m=f(Ki_m-1i_m-1)……(1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为Q,Q为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算。
可选地,根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)……(2)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算。
下面将对利用上述公式分别计算子数据Di_2……Di_n在数据子表T2……Tn的过程进行详细描述。
需要说明的是,本实施例中对子数据Di_m-1进行哈希运算并将取值作为分散因子的技术手段为本发明中的一种可选方案,其不会对本发明的技术方案产生限制。
首先,将m=2分别代入至上述公式(1)(2)中计算子数据Di_2在数据子表T2中的存储顺序号Ki_2
Ki_2=f(Ki_1i_1)……(3)
εi_1=hash(Di_1)……(4)
其中,Ki_1的取值为Q;εi_1为根据子数据Di_1生成的分散因子,具体地,在公式(4)中对子数据Di_1进行哈希运算后得到的值作为εi_1的取值。
在公式(3)中,对根据分散因子εi_1对上级密钥Ki_1(取值为Q)进行密钥分散运算。本实施例中,可选地,进行密钥分散运算时采用的算法为对称密钥算法。
需要说明的是,密钥分散算法为本领域中的常用算法,其运算过程此处不进行详细描述。上述采用对称密钥算法来进行密钥分散运算的技术手段为本发明中的可选方案,其不会对本领域的技术方案产生限制。
通过公式(3)计算出的值即可作为子数据Di_2在数据子表T2中的存储顺序号。
接着,将m=3分别代入至上述公式(1)(2)中计算子数据Di_3在数据子表T3中的存储顺序号Ki_3
Ki_3=f(Ki_2i_2)……(5)
εi_2=hash(Di_2)……(6)
其中,Ki_2的取值为可通过前述公式(3)获得;εi_2为根据子数据Di_1生成的分散因子,εi_2可通过对子数据Di_2进行哈希运算后获得。
在公式(5)中,对根据分散因子εi_2对上级密钥Ki_2进行密钥分散运算,并将计算出的值Ki_3作为子数据Di_3在数据子表T3中的存储顺序号。
重复上述过程,直至m=n时,计算出子数据Di_n在数据子表Tn中的存储顺序号Ki_n
上述计算存储序号的过程,可看作为对主密钥Q进行多级密钥分散的过程,每次进行密钥分散过程中所选择的分散因子由对应的子数据Di_m-1决定,进行多次密钥分散后,可得到一个密钥串,该密钥串即为子数据Di_2……Di_n在对应的数据子表T2……Tn中的存储顺序号所构成的序号串。
步骤S1023、根据确定出的各子数据在对应的数据子表中的存储顺序号,将各子数据写入至对应的数据子表中的相应位置,以进行存储。
根据步骤S1021和步骤S1022中获取到的各子数据在对应的数据子表中的存储顺序号,将各子数据写入至对应的数据子表中的相应位置,以实现存储。
在存储过程中,无需对数据进行加密,直接进行明文存储,因而具有较高的存储效率。
需要说明的是,本发明中也可以在计算出某个子数据在对应的数据子表中的存储顺序号后立即对该子数据进行存储,然后再进行下一个子数据在对应数据子表中的存储顺序号的计算。该计算存储顺序号的步骤与子数据存储的步骤交替进行方法,其也应属于本发明的保护范围。
在本发明中,将完整数据拆分为若干个子数据,并分别存入至对应的数据子表中的相应存储顺序号的位置,可在实现数据库明文存储的同时对数据库中的数据进行了有效保护。
图2为本发明实施例二提供的一种数据读取方法的流程图,该数据读取方法包括:
步骤S201、从n个数据子表中依次获取用于构成第i个完整数据Di的n个子数据
在步骤S201中,n个数据子表分别记为T1、T2……Tn,n≥2且为整数,完整数据Di存储在n个数据子表中的n个子数据分别记为Di_1、Di_2……Di_n
步骤S201包括:
步骤S2011、确定子数据Di_1在数据子表T1中的存储顺序号为i。
参见实施例一中内容可见,第一个数据子表T1对各完整数据的第一个子数据采用顺序存储方式的进行存储。因此,第i个完整数据对应的第一个子数据Di_1在第一个数据子表T1中存储顺序号为i。
步骤S2012、计算子数据Di_m在数据子表Tm中的存储顺序号,2≤m≤n且m为整数。
在步骤S2012中,采用如下算法来计算子数据Di_m在数据子表Tm中的存储顺序号Ki_m
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为Q,Q为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算。
可选地,根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算。
需要说明的是,在基于上级密钥Ki_m-1和分散因子εi_m-1计算本级密钥Ki_m时,上级密钥Ki_m-1可通过迭代过程(参见实施例一)计算出,分散因子εi_m-1可通过对数据子表Tm-1中位于Ki_m-1存储序列号的子数据Di_m-1进行哈希运算求得。
对于利用上述公式分别计算子数据Di_2……Di_n在数据子表T2……Tn的过程可参见前述实施例一中的描述,此处不再赘述。
可选地,进行密钥分散运算时采用的算法为对称密钥算法。
步骤S2013、根据确定出的各子数据在对应的数据子表中的存储顺序号,从各数据子表中的相应位置读取各子数据。
需要说明的是,本发明中也可以在确定出某个子数据在对应的数据子表中的存储顺序号后立即对该子数据进行读取,然后再进行下一个子数据在对应数据子表中的存储顺序号的计算。该计算存储顺序号的步骤与子数据读取的步骤交替进行方法,其也应属于本发明的保护范围。
步骤S202、将读取出的n个子数据按顺序进行组合以构成完整数据Di
通过将步骤S102中获取的全部子数据Di_1、Di_2……Di_n按照顺序进行重组,即可得到数据库中的第i个完整数据。
在本发明中,当用户访问某条隐私信息数据时,需要按照相应的关联算法,先获取子数据在对应数据子表中的存储顺序号,然后获取相应的子数据,最后将所有需要的子数据拼接在一起,才能形成一条完整的隐私信息数据,因而能对隐私数据进行有效保护。此外,数据在数据库中是明文存储,因此读取过程为明文读取,因而具有较高的读取效率。
图3为本发明实施例三提供的一种数据存储系统的结构框图,如图3所示,该数据存储系统用于实现上述实施例一中的数据存储方法,该数据存储系统包括:数据分割模块1和数据写入模块2。
其中,数据分割模块1用于将第i个完整数据Di分割为n个子数据,n个子数据分别记为Di_1、Di_2……Di_n,i为整数,n≥2且为整数;
数据写入模块2用于将n个子数据分别存储至对应的n个数据子表中,n个数据子表分别记为T1、T2……Tn
数据写入模块2包括:第一顺序号确定单元21和写入单元22;
第一顺序号确定单元21用于确定各子数据在对应的数据子表中的存储顺序号,其中,子数据Di_1在数据子表T1中的存储顺序号为i,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为M,M为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算;
写入单元22用于根据第一顺序号确定单元确定出的各子数据在对应的数据子表中的存储顺序号,将各子数据写入至对应的数据子表中的相应位置,以进行存储。
需要说明的是,本实施例中的数据分割模块1用于执行上述实施例一中的步骤S101,数据写入模块2用于执行上述实施例一中的步骤S102,第一顺序号确定单元21用于执行上述实施例一中的步骤S1021和步骤S1022,写入单元22用于执行上述实施例一中的步骤S1023,对于各模块和单元的具体描述可参见上述实施例一中的内容,此处不再赘述。
可选地,第一顺序号确定单元21包括:第一分散因子计算子单元211和第一密钥分散运算单元212。
其中,第一分散因子计算子单元211用于根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算。
第一密钥分散运算单元212用于采用对称密钥算法进行密钥分散运算。
图4为本发明实施例四提供的一种数据读取系统的结构框图,如图4所示,该数据读取系统用于实现上述实施例二中的数据读取方法,该数据读取系统包括:数据读取模块3和重组模块4。
其中,数据读取模块3用于从n个数据子表中依次获取用于构成第i个完整数据Di的n个子数据,n个数据子表分别记为T1、T2……Tn,完整数据Di存储在n个数据子表中的n个子数据分别记为Di_1、Di_2……Di_n,i为整数,n≥2且为整数;
重组模块4用于将读取出的n个子数据按顺序进行组合以构成完整数据Di
数据读取模块3包括:第二顺序号确定单元31和读取单元32。
第二顺序号确定单元31用于确定各子数据在对应的数据子表中的存储顺序号,其中,子数据Di_1在数据子表T1中的存储顺序号为i,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,其中,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为Q,Q为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算。
读取单元32用于根据第二顺序号确定单元确定出的各子数据在对应的数据子表中的存储顺序号,从各数据子表中的相应位置读取各子数据。
需要说明的是,本实施例中的数据读取模块3用于执行上述实施例二中的步骤S201,重组模块4用于执行上述实施例二中的步骤S202,第二顺序号确定单元31用于执行上述实施例二中的步骤S2011和步骤S2012,读取单元32用于执行上述实施例二中的步骤S2013,对于各模块和单元的具体描述可参见上述实施例二中的内容,此处不再赘述。
可选地,第二顺序号确定单元31包括:第二分散因子计算子单元311和第二密钥分散运算单元312;
第二分散因子计算子单元311用于根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算;
第二密钥分散运算单元312用于采用对称密钥算法进行密钥分散运算。
需要说明的是,在本发明中也可将实施例三中的提供的数据读取系统和数据写入系统进行整合,以得到一个具有数据存入/读取的管理系统,其也应属于本发明的保护范围。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

Claims (10)

1.一种数据存储方法,其特征在于,包括:
将第i个完整数据Di分割为n个子数据,n个子数据分别记为Di_1、Di_2……Di_n,i为整数,n≥2且为整数;
将n个子数据分别存储至对应的n个数据子表中,n个数据子表分别记为T1、T2……Tn,子数据Di_1在数据子表T1中的存储顺序号为i,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,其中,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为Q,Q为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算。
2.根据权利要求1所述的数据存储方法,其特征在于,根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算。
3.根据权利要求1所述的数据存储方法,其特征在于,进行密钥分散运算时采用的算法为对称密钥算法。
4.一种数据读取方法,其特征在于,包括:
从n个数据子表中依次获取用于构成第i个完整数据Di的n个子数据,n个数据子表分别记为T1、T2……Tn,完整数据Di存储在n个数据子表中的n个子数据分别记为Di_1、Di_2……Di_n,子数据Di_1在数据子表T1中的存储顺序号为i,i为整数,n≥2且为整数,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,其中,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为Q,Q为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算;
将n个子数据按顺序进行组合以构成完整数据Di
5.根据权利要求4所述的数据读取方法,其特征在于,根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算。
6.根据权利要求4所述的数据读取方法,其特征在于,进行密钥分散运算时采用的算法为对称密钥算法。
7.一种数据存储系统,其特征在于,包括:
数据分割模块,用于将第i个完整数据Di分割为n个子数据,n个子数据分别记为Di_1、Di_2……Di_n,i为整数,n≥2且为整数;
数据写入模块,用于将n个子数据分别存储至对应的n个数据子表中,n个数据子表分别记为T1、T2……Tn
所述数据写入模块包括:第一顺序号确定单元和写入单元;
所述第一顺序号确定单元用于确定各子数据在对应的数据子表中的存储顺序号,其中,子数据Di_1在数据子表T1中的存储顺序号为i,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为M,M为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算;
所述写入单元用于根据第一顺序号确定单元确定出的各子数据在对应的数据子表中的存储顺序号,将各子数据写入至对应的数据子表中的相应位置,以进行存储。
8.根据权利要求7所述的数据存储系统,其特征在于,所述第一顺序号确定单元包括:第一分散因子计算子单元和第一密钥分散运算单元;
所述第一分散因子计算子单元用于根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算;
所述第一密钥分散运算单元用于采用对称密钥算法进行密钥分散运算。
9.一种数据读取系统,其特征在于,包括:
数据读取模块,用于从n个数据子表中依次获取用于构成第i个完整数据Di的n个子数据,n个数据子表分别记为T1、T2……Tn,完整数据Di存储在n个数据子表中的n个子数据分别记为Di_1、Di_2……Di_n,i为整数,n≥2且为整数;
所述数据读取模块包括:第二顺序号确定单元和读取单元;
所述第二顺序号确定单元用于确定各子数据在对应的数据子表中的存储顺序号,其中,子数据Di_1在数据子表T1中的存储顺序号为i,子数据Di_m在数据子表Tm中的存储顺序号为Ki_m,2≤m≤n且m为整数,其中,
Ki_m=f(Ki_m-1i_m-1)
εi_m-1为根据子数据Di_m-1生成的分散因子,Ki_1的取值为Q,Q为预先设置的一个主密钥,f(Ki_m-1i_m-1)表示以Ki_m-1作为上级密钥、εi_m-1作为分散因子进行密钥分散运算;
读取单元,用于根据第二顺序号确定单元确定出的各子数据在对应的数据子表中的存储顺序号,从各数据子表中的相应位置读取各子数据;
重组模块,用于将读取出的n个子数据按顺序进行组合以构成完整数据Di
10.根据权利要求9所述的数据读取系统,其特征在于,所述第二顺序号确定单元包括:第二分散因子计算子单元和第二密钥分散运算单元;
所述第二分散因子计算子单元用于根据如下公式计算分散因子εi_m-1
εi_m-1=hash(Di_m-1)
其中,hash(Di_m-1)表示对子数据Di_m-1进行哈希运算;
所述第二密钥分散运算单元用于采用对称密钥算法进行密钥分散运算。
CN201710940111.4A 2017-09-30 2017-09-30 数据存储方法、数据读取方法及其系统 Active CN107729766B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710940111.4A CN107729766B (zh) 2017-09-30 2017-09-30 数据存储方法、数据读取方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710940111.4A CN107729766B (zh) 2017-09-30 2017-09-30 数据存储方法、数据读取方法及其系统

Publications (2)

Publication Number Publication Date
CN107729766A CN107729766A (zh) 2018-02-23
CN107729766B true CN107729766B (zh) 2020-02-07

Family

ID=61210199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710940111.4A Active CN107729766B (zh) 2017-09-30 2017-09-30 数据存储方法、数据读取方法及其系统

Country Status (1)

Country Link
CN (1) CN107729766B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110210211B (zh) * 2019-06-05 2021-09-07 北京证大向上金融信息服务有限公司 一种数据保护的方法和计算设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101989929A (zh) * 2010-11-17 2011-03-23 中兴通讯股份有限公司 容灾数据备份的方法及系统
CN102664928A (zh) * 2012-04-01 2012-09-12 南京邮电大学 一种用于云存储的数据安全存取方法及用户端系统
CN102831120A (zh) * 2011-06-15 2012-12-19 腾讯科技(深圳)有限公司 一种数据处理方法及系统
CN103607393A (zh) * 2013-11-21 2014-02-26 浪潮电子信息产业股份有限公司 一种基于数据分割的数据安全保护方法
CN103810061A (zh) * 2014-01-28 2014-05-21 河南科技大学 一种高可用云存储方法
CN105975877A (zh) * 2016-07-01 2016-09-28 中国联合网络通信有限公司重庆市分公司 一种敏感文件安全存储办法
CN106407766A (zh) * 2011-03-07 2017-02-15 安全第公司 安全文件共享方法与系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101989929A (zh) * 2010-11-17 2011-03-23 中兴通讯股份有限公司 容灾数据备份的方法及系统
CN106407766A (zh) * 2011-03-07 2017-02-15 安全第公司 安全文件共享方法与系统
CN102831120A (zh) * 2011-06-15 2012-12-19 腾讯科技(深圳)有限公司 一种数据处理方法及系统
CN102664928A (zh) * 2012-04-01 2012-09-12 南京邮电大学 一种用于云存储的数据安全存取方法及用户端系统
CN103607393A (zh) * 2013-11-21 2014-02-26 浪潮电子信息产业股份有限公司 一种基于数据分割的数据安全保护方法
CN103810061A (zh) * 2014-01-28 2014-05-21 河南科技大学 一种高可用云存储方法
CN105975877A (zh) * 2016-07-01 2016-09-28 中国联合网络通信有限公司重庆市分公司 一种敏感文件安全存储办法

Also Published As

Publication number Publication date
CN107729766A (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
Shimizu et al. Efficient privacy-preserving string search and an application in genomics
US10237074B2 (en) Redactable document signatures
US8930691B2 (en) Dynamic symmetric searchable encryption
KR101403745B1 (ko) 데이터베이스 시스템에서 비-결정적으로 암호화된 데이터에대한 검색을 수행하는 방법 및 이를 위한 원격 데이터베이스를 제공하는 방법, 및 기계-판독가능 매체
US20150026462A1 (en) Method and system for access-controlled decryption in big data stores
US20130262863A1 (en) Searchable encryption processing system
US20100153403A1 (en) Method for data encryption and method for conjunctive keyword search of encrypted data
CN106452770B (zh) 一种数据加密方法、解密方法、装置和系统
CN106022155A (zh) 用于数据库安全管理的方法及服务器
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
CN104951680A (zh) 一种生物特征信息处理方法、保存方法及装置
JP2014119486A (ja) 秘匿検索処理システム、秘匿検索処理方法、および秘匿検索処理プログラム
EP2892175B1 (en) Secure software components anti-reverse-engineering by table interleaving
US9641328B1 (en) Generation of public-private key pairs
US9361480B2 (en) Anonymization of streaming data
US11184163B2 (en) Value comparison server, value comparison encryption system, and value comparison method
Al Sibahee et al. Efficient encrypted image retrieval in IoT-cloud with multi-user authentication
CN108985102A (zh) 数据完整性验证方法、装置、系统及存储介质
CN112751670A (zh) 一种多中心密文策略的属性基可搜索加密及相应的搜索获取数据的方法
CN112100679A (zh) 基于隐私保护的数据处理方法、装置和服务器
CN106446697A (zh) 隐私数据的保存方法及装置
CN107729766B (zh) 数据存储方法、数据读取方法及其系统
CN105553661B (zh) 密钥管理方法和装置
Dayıoğlu Secure database in cloud computing-cryptdb revisited
EP2775420A1 (en) Semantic search over 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