CN113111357B - 字段加密方法、装置、设备和介质 - Google Patents
字段加密方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113111357B CN113111357B CN202110253581.XA CN202110253581A CN113111357B CN 113111357 B CN113111357 B CN 113111357B CN 202110253581 A CN202110253581 A CN 202110253581A CN 113111357 B CN113111357 B CN 113111357B
- Authority
- CN
- China
- Prior art keywords
- field
- original
- encrypted
- target
- algorithm
- 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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种字段加密方法,该方法包括:首先获取映射表及标准结构化查询语句中原始字段的原始数据类型,从映射表中获取目标加密算法,根据目标加密算法对原始字段进行加密处理,得到加密字段。在进行运算时,当进行大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果。当进行乘除法运算时,对加密字段进行解密,获取原始字段,对原始字段进行乘除法运算,获取乘除法结果。本发明通过运用不同加密算法可使得数据加密后拥有在云端数据库中直接执行查询、算术运算的能力,可让每个字段在服务器端只保存一列的前提下,仍能进行各类运算。此外,还提出了字段加密装置、设备和介质。
Description
技术领域
本发明涉及云计算技术领域,尤其是涉及字段加密方法、装置、设备和介质。
背景技术
随着教育云的深入应用,随之而来的数据安全问题也越来越受到人们的关注。在开放的教育云环境中,如果相关技术人员可以对教育数据进行篡改和盗用,将会带来不可设想的后果。目前针对教育云数据安全问题的一种较为直接解决办法是对存储在云端的教育数据进行加密处理,数据加密后,即使有意者获得了加密数据,也无法了解加密数据的真实含义,从而降低了教育数据泄露的风险。
在加密的基础上,加密***也常需要对教育数据进行处理,例如进行加、减、乘、除等运算,通常采用直接解密后再进行运算的方法。由于在对字段加密时分别采用不同的加密方案,导致各个字段会被重写成多列。因此与直接存储明文相比,需要花费更多的存储空间。而且当一个字段对应服务器端的某一加密列的数值更新后,该字段在服务端的其他加密列的数据需要重新解密后再进行更新,这一方面增加了运算开销,另一方面存在数据泄露的风险。
发明内容
基于此,有必要针对上述问题,提供可直接对加密字段进行运算的字段加密方法、装置、设备和介质。
一种字段加密的方法,所述方法包括:
获取映射表及标准结构化查询语句中原始字段的原始数据类型,所述映射表包括不同的原始数据类型对应的加密算法和加密数据类型;
从所述映射表中获取所述原始数据类型对应的目标加密算法,根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段;
获取所述标准结构化查询语句中的目标运算算法,当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,以获得对所述原始字段进行所述目标运算算法的运算结果;
当所述目标运算算法包括乘除法运算时,对所述加密字段进行解密,获取所述原始字段,对所述原始字段进行所述乘除法运算,获取乘除法结果。
在其中一个实施例中,所述根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段,包括:
当所述原始字段的原始数据类型为整型时,选择两个不相等的随机质数,根据所述两个不相等的随机质数计算第一乘积及欧拉函数;
根据所述欧拉函数及所述第一乘积确定目标加密函数,根据所述目标加密函数对所述原始字段进行加密,获取所述原始字段加密后的加密字段。
在其中一个实施例中,所述当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,包括:
当所述原始数据类型为整型,且所述目标运算算法为大小比较运算时,将所述加密字段进行大小比较,获取加密比较结果,将所述加密结果作为所述运算结果。
在其中一个实施例中,所述当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,包括:
当所述原始数据类型为整型,所述目标运算算法为加减法运算时,获取所述加密字段进行加减法运算后的第一加减值及加减运算次数;
计算所述加减运算次数与所述第一乘积的乘积,获取第二乘积;
计算所述第一加减值与所述第二乘积的差,获取第一差值;
将所述第一差值除以所述欧拉函数,以获得对所述原始字段进行所述目标运算算法的运算结果。
在其中一个实施例中,所述根据所述目标运算算法对所述加密字段进行目标运算包括:
当所述原始数据类型为已设定浮点类型小数点位数的浮点型时,根据所述小数点位数设置目标指数的值;
当所述原始数据类型为未设定浮点类型小数点位数的浮点型时,设定所述目标指数为预设值;
将所述原始字段乘以所述目标指数,以将所述原始数据类型转换为整型,获取整形的第一原始字段,对所述整形的第一原始字段进行加密处理,获取所述整形的第一原始字段加密处理后的加密字段,据所述目标运算算法对所述加密字段进行目标运算;
在所述将所述第一差值除以所述欧拉函数,获取所述加密字段解密后的原始字段之后,还包括:
将整型的第一原始字段除以所述目标指数,以得到浮点型的原始字段。
在其中一个实施例中,所述根据所述目标运算算法对所述加密字段进行目标运算包括:
当所述原始字段为日期型时,根据目标转换格式将所述原始数据类型转换为整型,获取整形的第二原始字段,对所述整形的第二原始字段进行加密处理,获取所述整形的第二原始字段加密处理后的加密字段,据所述目标运算算法对所述加密字段进行目标运算;
在所述将所述第一差值除以所述欧拉函数,获取所述加密字段解密后的原始字段之后,还包括:
将整型的第二原始字段根据所述目标转换格式进行转换,以得到日期型的原始字段。
在其中一个实施例中,所述根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段,包括:
当所述原始字段的原始数据类型为字符型或二进制型时,根据高级加密标准算法对所述原始字段进行加密处理;
所述根据所述目标运算算法对所述加密字段进行目标运算,以获得对所述原始字段进行所述目标运算算法的运算结果,包括:
比较所述加密字段之间是否相同,若所述加密字段之间不相等,则对应的所述原始字段之间不相等。
一种字段加密装置,所述装置包括:
获取模块,用于获取映射表及标准结构化查询语句中原始字段的原始数据类型,所述映射表包括不同的原始数据类型对应的加密算法和加密数据类型;
加密模块,用于从所述映射表中获取所述原始数据类型对应的目标加密算法,根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段;
第一运算模块,用于获取所述标准结构化查询语句中的目标运算算法,当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,以获得对所述原始字段进行所述目标运算算法的运算结果;
第二运算模块,用于当所述目标运算算法包括乘除法运算时,对所述加密字段进行解密,获取所述原始字段,对所述原始字段进行所述乘除法运算,获取乘除法结果。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
获取映射表及标准结构化查询语句中原始字段的原始数据类型,所述映射表包括不同的原始数据类型对应的加密算法和加密数据类型;
从所述映射表中获取所述原始数据类型对应的目标加密算法,根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段;
获取所述标准结构化查询语句中的目标运算算法,当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,以获得对所述原始字段进行所述目标运算算法的运算结果;
当所述目标运算算法包括乘除法运算时,对所述加密字段进行解密,获取所述原始字段,对所述原始字段进行所述乘除法运算,获取乘除法结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
获取映射表及标准结构化查询语句中原始字段的原始数据类型,所述映射表包括不同的原始数据类型对应的加密算法和加密数据类型;
从所述映射表中获取所述原始数据类型对应的目标加密算法,根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段;
获取所述标准结构化查询语句中的目标运算算法,当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,以获得对所述原始字段进行所述目标运算算法的运算结果;
当所述目标运算算法包括乘除法运算时,对所述加密字段进行解密,获取所述原始字段,对所述原始字段进行所述乘除法运算,获取乘除法结果。
本发明提供了字段加密方法、装置、设备和介质,首先获取映射表及标准结构化查询语句中原始字段的原始数据类型,从映射表中获取原始数据类型对应的目标加密算法,根据目标加密算法对原始字段进行加密处理,得到加密字段。在进行运算时,当进行大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果。当进行乘除法运算时,对加密字段进行解密,获取原始字段,对原始字段进行乘除法运算,获取乘除法结果。本发明通过运用不同加密算法可使得数据加密后拥有在云端数据库中直接执行查询、算术运算的能力,可让每个字段在服务器端只保存一列的前提下,仍能进行各类运算。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中字段加密方法的流程示意图;
图2为一个实施例中字段加密装置的结构示意图;
图3为一个实施例中计算机设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,图1为一个实施例中字段加密方法的流程示意图,本实施例中字段加密方法提供的步骤包括:
步骤102,获取映射表及标准结构化查询语句中原始字段的原始数据类型。
映射表内则记录了每一原始数据类型对应的目标加密算法,及经加密处理后每一原始数据类型转换为的加密数据类型。参加下表1,原始数据类型包括整型、浮点型、字符型、日期时间型和二进制型,对应的关键字分别是INTEGER、FLOAT、STRING、DATETIME和BINARY。
表1:
当对数据库模式定义语句(DDL语句,Data Definition Language)进行加密处理时,获取数据库模式定义语句中的原始列集合描述COLs,遍历原始列集合描述中的每列C∈COLs,获取每列的及原始数据类型T。当对数据操作语句(DML语句,Data ManipulationLanguage)时进行加密处理时,获取数据操作语句中的原始值集合Vs,从原始值集合Vs中获取每个原始字段的原始数据类型T。
步骤104,从映射表中获取原始数据类型对应的目标加密算法,根据目标加密算法对原始字段进行加密处理,获取原始字段加密处理后的加密字段。
当原始字段的原始数据类型为整型时,由于整型数据涉及比较运算和算术运算,因此采用的是一种可在服务端进行比较、加减法运算的同态加密算法。具体的,选择两个不相等的随机质数p和q(在实际应用中,这两个质数比较大,以增加破解难度。),根据p和q计算第一乘积n和欧拉函数其中n=p*q,再由欧拉函数及第一乘积n确定目标加密函数f(m),该目标加密函数根据目标加密函数f(m)对原始字段m进行加密,获取原始字段m加密后的加密字段C。
对于原始数据类型为浮点型的原始字段而言,可以将浮点数转换成整型,然后再运用与整型相同的加密同态算法。具体的,通过乘法处理将浮点数变为整数。例如x为一个浮点数,对其进行乘法处理X=x*10e,使其变为整型X。而其中,e值的设定若偏大了则浮点数整数化后就会多浪费存储空间,若偏小了则浮点数进行运算后可能依旧是浮点数。对此,当原始数据类型为已设定浮点类型小数点位数的浮点型时,根据小数点位数设置目标指数的值。当原始数据类型为未设定浮点类型小数点位数的浮点型时,设定目标指数为预设值4,这是因为教育数据涉及浮点数主要有成绩、入学积分等,其小数点位数一般不会超过四位,因此将e设置为4位,通常能满足实际需求。
此外,对于原始数据类型为日期型的原始字段而言,也同样可以将浮点数转换成整型,然后再运用与整型相同的加密同态算法。当原始字段为日期型时,首先将日期型数据统一转化为“YYYY-MM-DD HH:MI:SS”的格式,如:2021-01-2209:30。再将日期型数据转化为一个整数D,D=YYYYMMDDHHMISS,如:202101220930。
进一步的,当原始字段的原始数据类型为字符型或二进制型时,通过高级加密标准算法(ASE算法)对原始字段进行加密处理,主要涉及到对原始字段的字节代换、行位移,列混淆及轮秘钥加处理。其中,字节代换是一个查表工作,AES定义了一个S盒和一个逆S盒。状态矩阵中的每一个元素(含1个字节)将字节高4位作为行值,低4位作为列值,取S盒中的元素作为输出。行移位是一个左循环移位操作。当密钥长度为128比特时,状态矩阵的第0行左移0字节,第1行左移1字节,第2行左移2字节,第3行左移3字节。列混合变换是通过矩阵相乘来实现的,经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵。轮密钥加是将128位轮密钥Ki同状态矩阵中的数据进行逐位异或操作。
示例性的,创建一学生信息表,该表主要有以下字段:编号(字段名:seq,类型:字符型)、姓名(字段名:name,类型:字符型)、性别(字段名:sex,类型:字符型)、班级(字段名:class,类型:字符型)、证件号(字段名:id,类型:字符型)、年龄(字段名:age,类型:整型)、成绩(字段名:score,类型:浮点型,两位小数),生日(字段名,birthdate,日期型)。学生信息管理***构建在oracle数据库上,因此创建学生信息表的数据库模式定义语句为:
create table student(
seq varchar2(20)primary key,
name varchar2(20),
sex varchar2(5),
class varchar2(20),
id varchar2(20),
age integer,
score number(5,2),
birthdate date
);
基于表1,将该数据库模式定义语句改写为:
CREATE TABLE YBY825E(//对应student表名
TFD VARCHAR2(4000)PRIMARY KEY,//编号seq字段的确定性加密
VNDM VARCHAR2(4000),//姓名name字段的确定性加密
Y92 VARCHAR2(4000),//姓别sex字段的确定性加密
JOBWX VARCHAR2(4000),//班级class字段的确定性加密
HZ VARCHAR2(4000),//证件号id字段的确定性加密
H8P NUMBER(38),//年龄age字段的同态加密
AV0R2 NUMBER(38),//成绩score字段的同态加密
WAKYL NUMBER(38)//生日birthdate字段的同态加密
);
进一步的,当我们往学生信息基本列表***一条数据时,执行的数据操作语句为:
insert into student values(
'11',
'李明',
'男',
'二班',
'430502200602030013',
13,
78.5,
to_date('2008-02-23 09:30','YYYY-MM-DD HH:MI:SS')
);
将该数据操作语句改写后,变为:
INSERT INTO YBY825E VALUES(
'85FD151ACDB4A5DA462FBEA884EEB064',
'98B59448E9D5FB552154E0306E37AB1A',
'32223FAC31AB933D89BE8A7F3FED3769',
'9CCAF5B9C4C904E75045E520BB29DF39',
'97TY234BEFC5G4JK323QOSF785FFB37T',
3179034307479,
178253167962456855,
45596927643640525161495);
步骤106,获取标准结构化查询语句中的目标运算算法,当目标运算算法包括大小比较或加减法运算时,执行步骤108。当目标运算算法包括乘除法运算时,执行步骤110。
步骤108,根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果。
当原始数据类型为整型,且进行原始字段对应的加密字段的大小比较运算时,加密字段进行大小比较的加密比较结果,就是原始字段的比较结果。即若目标加密字段越大,则目标加密字段对应的原始字段越大,例如对于明文m1加密后形成的密文为c1,和对于明文m2加密后形成的密文为c2。若c2大于c1,则相应的m2大于m1。
当原始数据类型为整型,且进行原始字段对应的加密字段的加减法运算时,直接对服务器上的加密字段进行加减法操作,为消除加密字段相加减后产生的噪声,加密中间件在提交结构化查询语句(SQL语句,Structured Query Language)到服务器端进行运算时,引入运算记数器,记录加减运算次数,记为counter,默认值为1,对于每次进行加法计算,记为counter+1,对于每次进行减法计算,记为counter-1。例如对于原始字段m1,m2,m3,m4,加密后形成的加密字段分别为SQL语句中想对加密字段进行加减法,即sum(m)=m1+m2-m3+m4,则在提交到服务器端执行后得到的第一加减值 此时,加减运算次数counter=2,在解码时可用于消除噪音。
进一步的,在进行第一加减值的解码时。计算加减运算次数counter与第一乘积n的乘积,记为第二乘积d。计算第一加减值与第二乘积d的差,记为第一差值s。将第一差值s除以欧拉函数以获得对原始字段进行目标运算算法的运算结果M(M=m1+m2+m3+m4)。
对于原始数据类型为浮点型的原始字段而言,后续运算的部分与整型一致,就不再赘述。而在解密时,在第一差值s除以欧拉函数之后,得到的是整型的原始字段X。因此再通过进行x=X÷10e,可得到浮点型的原始字段x。
对于原始数据类型为日期型的原始字段而言,后续运算的部分也与整型一致,同样不再赘述。而在解密时,将第一差值s除以欧拉函数之后,得到的是日期型的原始字段D。因此再通过“YYYY-MM-DD HH:MI:SS”的格式进行转换,可得到日期型的原始字段。
当原始字段的原始数据类型为字符型或二进制型时,仅进行加密字段之间的相同比较,若加密字段之间不相等,则对应的原始字段之间不相等。
步骤110,对加密字段进行解密,获取原始字段,对原始字段进行乘除法运算,获取乘除法结果。
其中,本步骤中的解密过程与步骤106中的解密过程一致,都为计算加减运算次数counter与第一乘积n的乘积,记为第二乘积d。其中,由于没有进行额外的加减运算,counter取默认值1。再计算加密字段与第二乘积d的差,记为第一差值s。将第一差值s除以欧拉函数以获取原始字段。最后对原始字段进行乘除法运算,从而得到乘除法结果。
上述字段加密方法,首先获取映射表及标准结构化查询语句中原始字段的原始数据类型,从映射表中获取原始数据类型对应的目标加密算法,根据目标加密算法对原始字段进行加密处理,得到加密字段。在进行运算时,当进行大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果。当进行乘除法运算时,对加密字段进行解密,获取原始字段,对原始字段进行乘除法运算,获取乘除法结果。本发明通过运用不同加密算法可使得数据加密后拥有在云端数据库中直接执行查询、算术运算的能力,可让每个字段在服务器端只保存一列的前提下,仍能进行各类运算。
在一个实施例中,如图2所示,提出了一种字段加密装置,该装置包括:
获取模块202,用于获取映射表及标准结构化查询语句中原始字段的原始数据类型,映射表包括不同的原始数据类型对应的加密算法和加密数据类型;
加密模块204,用于从映射表中获取原始数据类型对应的目标加密算法,根据目标加密算法对原始字段进行加密处理,获取原始字段加密处理后的加密字段;
第一运算模块206,用于获取标准结构化查询语句中的目标运算算法,当目标运算算法包括大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果;
第二运算模块208,用于当目标运算算法包括乘除法运算时,对加密字段进行解密,获取原始字段,对原始字段进行乘除法运算,获取乘除法结果。
上述字段加密装置,首先获取映射表及标准结构化查询语句中原始字段的原始数据类型,从映射表中获取原始数据类型对应的目标加密算法,根据目标加密算法对原始字段进行加密处理,得到加密字段。在进行运算时,当进行大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果。当进行乘除法运算时,对加密字段进行解密,获取原始字段,对原始字段进行乘除法运算,获取乘除法结果。本发明通过运用不同加密算法可使得数据加密后拥有在云端数据库中直接执行查询、算术运算的能力,可让每个字段在服务器端只保存一列的前提下,仍能进行各类运算。
在一个实施例中,加密模块204,具体用于:当原始字段的原始数据类型为整型时,选择两个不相等的随机质数,根据两个不相等的随机质数计算第一乘积及欧拉函数;根据欧拉函数及第一乘积确定目标加密函数,根据目标加密函数对原始字段进行加密,获取原始字段加密后的加密字段。
在一个实施例中,第一运算模块206,具体用于:当原始数据类型为整型,且目标运算算法为大小比较运算时,将加密字段进行大小比较,获取加密比较结果,将加密结果作为运算结果。
在一个实施例中,第一运算模块206,还具体用于:当原始数据类型为整型,目标运算算法为加减法运算时,获取加密字段进行加减法运算后的第一加减值及加减运算次数;计算加减运算次数与第一乘积的乘积,获取第二乘积;计算第一加减值与第二乘积的差,获取第一差值;将第一差值除以欧拉函数,以获得对原始字段进行目标运算算法的运算结果。
在一个实施例中,第一运算模块206,还具体用于:当原始数据类型为已设定浮点类型小数点位数的浮点型时,根据小数点位数设置目标指数的值;当原始数据类型为未设定浮点类型小数点位数的浮点型时,设定目标指数为预设值;将原始字段乘以目标指数,以将原始数据类型转换为整型,获取整形的第一原始字段,对整形的第一原始字段进行加密处理,获取整形的第一原始字段加密处理后的加密字段,据目标运算算法对加密字段进行目标运算;在将第一差值除以欧拉函数,获取加密字段解密后的原始字段之后,还包括:将整型的第一原始字段除以目标指数,以得到浮点型的原始字段。
在一个实施例中,第一运算模块206,还具体用于:当原始字段为日期型时,根据目标转换格式将原始数据类型转换为整型,获取整形的第二原始字段,对整形的第二原始字段进行加密处理,获取整形的第二原始字段加密处理后的加密字段,据目标运算算法对加密字段进行目标运算;在将第一差值除以欧拉函数,获取加密字段解密后的原始字段之后,还包括:将整型的第二原始字段根据目标转换格式进行转换,以得到日期型的原始字段。
在一个实施例中,加密模块204,还具体用于:当原始字段的原始数据类型为字符型或二进制型时,根据高级加密标准算法对原始字段进行加密处理;根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果,包括:比较加密字段之间是否相同,若加密字段之间不相等,则对应的原始字段之间不相等。
图3示出了一个实施例中计算机设备的内部结构图。如图3所示,该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作***,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现字段加密方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行字段加密方法。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
一种计算机设备,包括存储器、处理器以及存储在该存储器中并可在该处理器上执行的计算机程序,该处理器执行该计算机程序时实现如下步骤:获取映射表及标准结构化查询语句中原始字段的原始数据类型,映射表包括不同的原始数据类型对应的加密算法和加密数据类型;从映射表中获取原始数据类型对应的目标加密算法,根据目标加密算法对原始字段进行加密处理,获取原始字段加密处理后的加密字段;获取标准结构化查询语句中的目标运算算法,当目标运算算法包括大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果;当目标运算算法包括乘除法运算时,对加密字段进行解密,获取原始字段,对原始字段进行乘除法运算,获取乘除法结果。
在一个实施例中,根据目标加密算法对原始字段进行加密处理,获取原始字段加密处理后的加密字段,包括:当原始字段的原始数据类型为整型时,选择两个不相等的随机质数,根据两个不相等的随机质数计算第一乘积及欧拉函数;根据欧拉函数及第一乘积确定目标加密函数,根据目标加密函数对原始字段进行加密,获取原始字段加密后的加密字段。
在一个实施例中,当目标运算算法包括大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,包括:当原始数据类型为整型,且目标运算算法为大小比较运算时,将加密字段进行大小比较,获取加密比较结果,将加密结果作为运算结果。
在一个实施例中,当目标运算算法包括大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,包括:当原始数据类型为整型,目标运算算法为加减法运算时,获取加密字段进行加减法运算后的第一加减值及加减运算次数;计算加减运算次数与第一乘积的乘积,获取第二乘积;计算第一加减值与第二乘积的差,获取第一差值;将第一差值除以欧拉函数,以获得对原始字段进行目标运算算法的运算结果。
在一个实施例中,根据目标运算算法对加密字段进行目标运算包括:当原始数据类型为已设定浮点类型小数点位数的浮点型时,根据小数点位数设置目标指数的值;当原始数据类型为未设定浮点类型小数点位数的浮点型时,设定目标指数为预设值;将原始字段乘以目标指数,以将原始数据类型转换为整型,获取整形的第一原始字段,对整形的第一原始字段进行加密处理,获取整形的第一原始字段加密处理后的加密字段,据目标运算算法对加密字段进行目标运算;在将第一差值除以欧拉函数,获取加密字段解密后的原始字段之后,还包括:将整型的第一原始字段除以目标指数,以得到浮点型的原始字段。
在一个实施例中,根据目标运算算法对加密字段进行目标运算包括:当原始字段为日期型时,根据目标转换格式将原始数据类型转换为整型,获取整形的第二原始字段,对整形的第二原始字段进行加密处理,获取整形的第二原始字段加密处理后的加密字段,据目标运算算法对加密字段进行目标运算;在将第一差值除以欧拉函数,获取加密字段解密后的原始字段之后,还包括:将整型的第二原始字段根据目标转换格式进行转换,以得到日期型的原始字段。
在一个实施例中,根据目标加密算法对原始字段进行加密处理,获取原始字段加密处理后的加密字段,包括:当原始字段的原始数据类型为字符型或二进制型时,根据高级加密标准算法对原始字段进行加密处理;根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果,包括:比较加密字段之间是否相同,若加密字段之间不相等,则对应的原始字段之间不相等。
一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如下步骤:获取映射表及标准结构化查询语句中原始字段的原始数据类型,映射表包括不同的原始数据类型对应的加密算法和加密数据类型;从映射表中获取原始数据类型对应的目标加密算法,根据目标加密算法对原始字段进行加密处理,获取原始字段加密处理后的加密字段;获取标准结构化查询语句中的目标运算算法,当目标运算算法包括大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果;当目标运算算法包括乘除法运算时,对加密字段进行解密,获取原始字段,对原始字段进行乘除法运算,获取乘除法结果。
在一个实施例中,根据目标加密算法对原始字段进行加密处理,获取原始字段加密处理后的加密字段,包括:当原始字段的原始数据类型为整型时,选择两个不相等的随机质数,根据两个不相等的随机质数计算第一乘积及欧拉函数;根据欧拉函数及第一乘积确定目标加密函数,根据目标加密函数对原始字段进行加密,获取原始字段加密后的加密字段。
在一个实施例中,当目标运算算法包括大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,包括:当原始数据类型为整型,且目标运算算法为大小比较运算时,将加密字段进行大小比较,获取加密比较结果,将加密结果作为运算结果。
在一个实施例中,当目标运算算法包括大小比较或加减法运算时,根据目标运算算法对加密字段进行目标运算,包括:当原始数据类型为整型,目标运算算法为加减法运算时,获取加密字段进行加减法运算后的第一加减值及加减运算次数;计算加减运算次数与第一乘积的乘积,获取第二乘积;计算第一加减值与第二乘积的差,获取第一差值;将第一差值除以欧拉函数,以获得对原始字段进行目标运算算法的运算结果。
在一个实施例中,根据目标运算算法对加密字段进行目标运算包括:当原始数据类型为已设定浮点类型小数点位数的浮点型时,根据小数点位数设置目标指数的值;当原始数据类型为未设定浮点类型小数点位数的浮点型时,设定目标指数为预设值;将原始字段乘以目标指数,以将原始数据类型转换为整型,获取整形的第一原始字段,对整形的第一原始字段进行加密处理,获取整形的第一原始字段加密处理后的加密字段,据目标运算算法对加密字段进行目标运算;在将第一差值除以欧拉函数,获取加密字段解密后的原始字段之后,还包括:将整型的第一原始字段除以目标指数,以得到浮点型的原始字段。
在一个实施例中,根据目标运算算法对加密字段进行目标运算包括:当原始字段为日期型时,根据目标转换格式将原始数据类型转换为整型,获取整形的第二原始字段,对整形的第二原始字段进行加密处理,获取整形的第二原始字段加密处理后的加密字段,据目标运算算法对加密字段进行目标运算;在将第一差值除以欧拉函数,获取加密字段解密后的原始字段之后,还包括:将整型的第二原始字段根据目标转换格式进行转换,以得到日期型的原始字段。
在一个实施例中,根据目标加密算法对原始字段进行加密处理,获取原始字段加密处理后的加密字段,包括:当原始字段的原始数据类型为字符型或二进制型时,根据高级加密标准算法对原始字段进行加密处理;根据目标运算算法对加密字段进行目标运算,以获得对原始字段进行目标运算算法的运算结果,包括:比较加密字段之间是否相同,若加密字段之间不相等,则对应的原始字段之间不相等。
需要说明的是,上述字段加密方法、装置、设备及计算机可读存储介质属于一个总的发明构思,字段加密方法、装置、设备及计算机可读存储介质实施例中的内容可相互适用。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种字段加密的方法,其特征在于,所述方法包括:
获取映射表及标准结构化查询语句中原始字段的原始数据类型,所述映射表包括不同的原始数据类型对应的目标加密算法和加密数据类型;
从所述映射表中获取所述原始数据类型对应的目标加密算法,根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段;
获取所述标准结构化查询语句中的目标运算算法,当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,以获得对所述原始字段进行所述目标运算算法的运算结果;
当所述目标运算算法包括乘除法运算时,对所述加密字段进行解密,获取所述原始字段,对所述原始字段进行所述乘除法运算,获取乘除法结果;
数据加密后拥有在云端数据库中直接执行查询、算术运算的能力,让每个字段在服务器端只保存一列的前提下进行各类运算;
其中,每种加密数据类型对应一种加密算法,且当所述原始数据类型与所述加密数据类型为不同数据类型时,则将所述原始数据类型转换为所述加密数据类型;
其中,所述根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段,包括:
当所述原始字段的原始数据类型为整型时,选择两个不相等的随机质数p和q,根据所述两个不相等的随机质数p和q计算第一乘积n及欧拉函数φ(n),其中n=p*q,φ(n)=(p-1)(q-1);
根据所述欧拉函数φ(n)及所述第一乘积n确定目标加密函数f(m),根据所述目标加密函数f(m)对所述原始字段进行加密,获取所述原始字段加密后的加密字段,其中,所述目标加密函数f(m)=φ(n)*m+n,其中,m为所述原始字段,由此实现在服务器进行比较、加减运算的同态加密算法。
2.根据权利要求1所述的方法,其特征在于,所述当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,包括:
当所述原始数据类型为整型,且所述目标运算算法为大小比较运算时,将所述加密字段进行大小比较,获取加密比较结果,将所述加密比较结果作为所述运算结果。
3.根据权利要求1所述的方法,其特征在于,所述当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,获取所述原始字段加密处理后的加密字段,包括:
当所述原始数据类型为整型,且所述目标运算算法为加减法运算时,获取所述加密字段进行加减法运算后的第一加减值及加减运算次数;
计算所述加减运算次数与所述第一乘积的乘积,获取第二乘积;
计算所述第一加减值与所述第二乘积的差,获取第一差值;
将所述第一差值除以所述欧拉函数,以获得对所述原始字段进行所述目标运算算法的运算结果。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标运算算法对所述加密字段进行目标运算,获取所述原始字段加密处理后的加密字段,包括:
当所述原始数据类型为已设定浮点类型小数点位数的浮点型时,根据所述小数点位数设置目标指数的值;
当所述原始数据类型为未设定浮点类型小数点位数的浮点型时,设定所述目标指数为预设值;
将所述原始字段乘以所述目标指数,以将所述原始数据类型转换为整型,获取整型的第一原始字段,对所述整型的第一原始字段进行所述目标加密算法对应的加密处理,获取所述整型的第一原始字段加密处理后的加密字段,根据所述目标运算算法对所述加密字段进行目标运算;
在所述将所述第一差值除以所述欧拉函数,获取所述加密字段解密后的原始字段之后,还包括:
将整型的第一原始字段除以所述目标指数,以得到浮点型的原始字段。
5.根据权利要求3所述的方法,其特征在于,所述根据所述目标运算算法对所述加密字段进行目标运算,获取所述原始字段加密处理后的加密字段,包括:
当所述原始字段为日期型时,根据目标转换格式将所述原始数据类型转换为整型,获取整型的第二原始字段,对所述整型的第二原始字段进行所述目标加密算法对应的加密处理,获取所述整型的第二原始字段加密处理后的加密字段,根据所述目标运算算法对所述加密字段进行目标运算;
在所述将所述第一差值除以所述欧拉函数,获取所述加密字段解密后的原始字段之后,还包括:
将整型的第二原始字段根据所述目标转换格式进行转换,以得到日期型的原始字段。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段,包括:
当所述原始字段的原始数据类型为字符型或二进制型时,根据高级加密标准算法对所述原始字段进行加密处理;
所述根据所述目标运算算法对所述加密字段进行目标运算,以获得对所述原始字段进行所述目标运算算法的运算结果,包括:
比较所述加密字段之间是否相同,若所述加密字段之间不相等,则对应的所述原始字段之间不相等。
7.一种字段加密装置,其特征在于,所述装置包括:
获取模块,用于获取映射表及标准结构化查询语句中原始字段的原始数据类型,所述映射表包括不同的原始数据类型对应的目标加密算法和加密数据类型,其中,每种加密数据类型对应一种加密算法,且当所述原始数据类型与所述加密数据类型为不同数据类型时,则将所述原始数据类型转换为所述加密数据类型;
加密模块,用于从所述映射表中获取所述原始数据类型对应的目标加密算法,根据所述目标加密算法对所述原始字段进行加密处理,获取所述原始字段加密处理后的加密字段;
第一运算模块,用于获取所述标准结构化查询语句中的目标运算算法,当所述目标运算算法包括大小比较或加减法运算时,根据所述目标运算算法对所述加密字段进行目标运算,以获得对所述原始字段进行所述目标运算算法的运算结果;
第二运算模块,用于当所述目标运算算法包括乘除法运算时,对所述加密字段进行解密,获取所述原始字段,对所述原始字段进行所述乘除法运算,获取乘除法结果;
数据加密后拥有在云端数据库中直接执行查询、算术运算的能力,让每个字段在服务器端只保存一列的前提下进行各类运算;
其中,所述第一运算模块具体用于,当所述原始字段的原始数据类型为整型时,选择两个不相等的随机质数p和q,根据所述两个不相等的随机质数p和q计算第一乘积n及欧拉函数φ(n),其中n=p*q,φ(n)=(p-1)(q-1);根据所述欧拉函数φ(n)及所述第一乘积n确定目标加密函数f(m),根据所述目标加密函数f(m)对所述原始字段进行加密,获取所述原始字段加密后的加密字段,其中,所述目标加密函数f(m)=φ(n)*m+n,其中,m为所述原始字段,由此实现在服务器进行比较、加减运算的同态加密算法。
8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110253581.XA CN113111357B (zh) | 2021-03-09 | 2021-03-09 | 字段加密方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110253581.XA CN113111357B (zh) | 2021-03-09 | 2021-03-09 | 字段加密方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113111357A CN113111357A (zh) | 2021-07-13 |
CN113111357B true CN113111357B (zh) | 2022-02-22 |
Family
ID=76710743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110253581.XA Active CN113111357B (zh) | 2021-03-09 | 2021-03-09 | 字段加密方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113111357B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953722A (zh) * | 2017-05-09 | 2017-07-14 | 深圳市全同态科技有限公司 | 一种全同态加密的密文查询方法和*** |
CN109190395A (zh) * | 2018-08-21 | 2019-01-11 | 浙江大数据交易中心有限公司 | 一种基于数据变换的全同态加密方法及*** |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875370B2 (en) * | 2015-03-26 | 2018-01-23 | Microsoft Technology Licensing, Llc | Database server and client for query processing on encrypted data |
US10255454B2 (en) * | 2016-02-17 | 2019-04-09 | Microsoft Technology Licensing, Llc | Controlling security in relational databases |
CN107168998B (zh) * | 2017-03-30 | 2021-02-12 | 广东工业大学 | 一种基于保留格式的数据库透明加密方法 |
US10846423B2 (en) * | 2017-08-11 | 2020-11-24 | Palo Alto Research Center Incorporated | System and architecture for analytics on encrypted databases |
CN109409129A (zh) * | 2018-10-23 | 2019-03-01 | 杭州弗兰科信息安全科技有限公司 | 一种基于sql改写实现的数据库同态加密方法 |
CN109522320B (zh) * | 2018-11-12 | 2022-08-02 | 杭州弗兰科信息安全科技有限公司 | 一种服务于数据库同态加密的优化方法 |
CN109815719A (zh) * | 2019-01-21 | 2019-05-28 | 广东电网有限责任公司信息中心 | 一种可搜索的数据库安全加密*** |
CN110113326B (zh) * | 2019-04-26 | 2021-07-06 | 深圳前海微众银行股份有限公司 | 一种基于区块链的竞争排名方法及装置 |
CN110750797B (zh) * | 2019-09-27 | 2023-11-03 | 南京大学 | 基于组合加密的云数据库加密方法 |
CN112380557B (zh) * | 2020-12-01 | 2021-10-12 | 江西师范大学 | 一种关系型数据库加密方法及该加密数据库查询方法 |
-
2021
- 2021-03-09 CN CN202110253581.XA patent/CN113111357B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953722A (zh) * | 2017-05-09 | 2017-07-14 | 深圳市全同态科技有限公司 | 一种全同态加密的密文查询方法和*** |
CN109190395A (zh) * | 2018-08-21 | 2019-01-11 | 浙江大数据交易中心有限公司 | 一种基于数据变换的全同态加密方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN113111357A (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10652010B2 (en) | Fully homomorphic encrypted ciphertext query method and system | |
US20200366460A1 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
JP6934963B2 (ja) | データを暗号化する方法およびシステム | |
CN108463968B (zh) | 可变长度数据的快速格式保留加密 | |
US20180198601A1 (en) | String Matching in Encrypted Data | |
Wu et al. | Secure and efficient outsourced k-means clustering using fully homomorphic encryption with ciphertext packing technique | |
WO2024077948A1 (zh) | 匿踪查询方法、装置和***及存储介质 | |
US20170063528A1 (en) | Method and apparatus for encrypting data | |
EP3442158B1 (en) | System and architecture for supporting analytics on encrypted databases | |
CN110505054B (zh) | 一种基于动态白盒的数据处理方法、装置及设备 | |
CN112865957A (zh) | 数据加密传输方法、装置、计算机目标设备和存储介质 | |
CN113111357B (zh) | 字段加密方法、装置、设备和介质 | |
Rentería-Mejía et al. | Lattice-based cryptoprocessor for CCA-secure identity-based encryption | |
US11343070B2 (en) | System and method for performing a fully homomorphic encryption on a plain text | |
Elmacı et al. | An Efficient Image Encryption Algorithm for the Period of Arnold's CAT Map | |
WO2023074133A1 (ja) | 暗号処理装置、暗号処理方法、及び暗号処理プログラム | |
CN114936350B (zh) | 一种基于gpu快速数论转换的全同态加密门自举方法 | |
CN115640601A (zh) | 一种实现隐私信息检索的方法、***、服务端和客户端 | |
Chung et al. | Encoding of rational numbers and their homomorphic computations for FHE-based applications | |
JP5436373B2 (ja) | 秘匿性増強処理演算装置およびこれを備えた量子暗号通信端末 | |
EP4335073A1 (en) | Blind rotation for use in fully homomorphic encryption | |
CN111008399B (zh) | 姓名数据脱敏装置、方法及可读存储介质 | |
KR20210067961A (ko) | 완전동형암호 기법으로 암호화된 데이터의 연산을 위한 장치 및 방법 | |
CN115918028A (zh) | 对同态密文执行统计操作的装置及其方法 | |
KR102522393B1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |