CN112231718B - 数据加密处理方法、装置、计算机设备和存储介质 - Google Patents
数据加密处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112231718B CN112231718B CN202010668219.4A CN202010668219A CN112231718B CN 112231718 B CN112231718 B CN 112231718B CN 202010668219 A CN202010668219 A CN 202010668219A CN 112231718 B CN112231718 B CN 112231718B
- Authority
- CN
- China
- Prior art keywords
- data
- integer
- decimal
- vector
- code vector
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 239000013598 vector Substances 0.000 claims abstract description 217
- 238000007667 floating Methods 0.000 claims abstract description 139
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims description 14
- 239000011159 matrix material Substances 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 7
- 238000013075 data extraction Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 21
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Nonlinear Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及信息安全技术领域,提供一种数据加密处理方法、装置、计算机设备和存储介质;上述方法包括:获取待加密数据;若待加密数据包括数据类型为浮点数的第一目标数据,则根据计算机设备预留给浮点数的整数部分的存储位数和小数部分的存储位数,从第一目标数据中提取与整数部分的存储位数对应的整数部分数据,以及从第一目标数据中提取与小数部分的存储位数对应的小数部分数据;将整数部分数据和小数部分数据组合得到数据类型为浮点数的第二目标数据;对第二目标数据进行向量编码,得到第二目标数据的整数编码向量和小数编码向量;对整数编码向量和小数编码向量分别进行同态加密,进而提高对浮点数进行同态加密处理时的计算精度。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种数据加密处理方法、装置、计算机设备和存储介质。
背景技术
同态加密是一种可以保护数据隐私的加密算法。同态加密算法不仅仅支持数据存储安全,还支持数据处理安全,也就是说,第三方系统可以对经过同态加密的数据密文进行处理,其处理过程不会泄露任何原始内容,与此同时,拥有私钥的用户对处理过的数据进行解密,其结果正好是明文数据经过同样处理后的结果。
目前同态加密方案包括BFV(Brakerski/Fan-Vercauteren)方案、BGV(Brakerski-Gentry-Vaikuntanathan)方案和CKKS(Cheon-Kim-Kim-Song)方案。但是BFV方案、BGV方案在理论上只能支持整数的编码,不能支持浮点数的编码,实际现实环境中的大部分场景均存在浮点数计算的问题,因此上述两套方案在实际使用上存在不足;虽然CKKS方案是可以支持浮点数编码和计算方案,但是从实际测试效果发现,存在浮点数精度控制偏差大,不能精准控制浮点数计算精度,在实际进行浮点数运算时,容易出现计算出错的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种数据加密处理方法、装置、计算机设备和存储介质。
一种数据加密处理方法,应用于计算机设备,包括:
获取待加密数据;
若所述待加密数据包括数据类型为浮点数的第一目标数据,则根据所述计算机设备预留给浮点数的整数部分的存储位数和小数部分的存储位数,从所述第一目标数据中提取与所述整数部分的存储位数对应的整数部分数据,以及从所述第一目标数据中提取与所述小数部分的存储位数对应的小数部分数据;
将所述整数部分数据和所述小数部分数据组合得到数据类型为所述浮点数的第二目标数据;
对所述第二目标数据进行向量编码,得到所述第二目标数据的整数编码向量和小数编码向量;
对所述整数编码向量和所述小数编码向量分别进行同态加密。
一种数据加密处理装置,应用于计算机设备,包括:
待加密数据获取模块,用于获取待加密数据;
数据提取模块,用于若所述待加密数据包括数据类型为浮点数的第一目标数据,则根据所述计算机设备预留给浮点数的整数部分的存储位数和小数部分的存储位数,从所述第一目标数据中提取与所述整数部分的存储位数对应的整数部分数据,以及从所述第一目标数据中提取与所述小数部分的存储位数对应的小数部分数据;
数据组合模块,用于将所述整数部分数据和所述小数部分数据组合得到数据类型为所述浮点数的第二目标数据;
向量编码模块,用于对所述第二目标数据进行向量编码,得到所述第二目标数据的整数编码向量和小数编码向量;
同态加密模块,用于对所述整数编码向量和所述小数编码向量分别进行同态加密。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
上述数据加密处理方法、装置、计算机设备和存储介质,计算机设备获取待加密数据;若待加密数据包括数据类型为浮点数的第一目标数据,则根据计算机设备预留给浮点数的整数部分的存储位数和小数部分的存储位数,从第一目标数据中提取与整数部分的存储位数对应的整数部分数据,以及从第一目标数据中提取与小数部分的存储位数对应的小数部分数据;将整数部分数据和小数部分数据组合得到数据类型为浮点数的第二目标数据;对第二目标数据进行向量编码,得到第二目标数据的整数编码向量和小数编码向量;对整数编码向量和小数编码向量分别进行同态加密;可见,计算机设备通过预留给浮点数的整数部分的存储位数和小数部分的存储位数,并将浮点数分为整数部分和小数部分进行向量编码,实现对浮点数进行数据同态加密处理的精度控制,可以较为精准地控制对浮点数的计算精度,进而提高对浮点数进行同态加密处理时的计算精度。
附图说明
图1为一个实施例中计算机设备的内部结构图;
图2为一个实施例中数据加密处理方法的流程示意图;
图3为另一个实施例中数据加密处理方法的流程示意图;
图4为一个实施例中数据加密处理装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请提供的数据加密处理方法,可以应用于如图1所示的计算机设备中,其内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的计算机设备进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据加密处理方法。该计算机设备的输入装置可以是上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图2所示,提供了一种数据加密处理方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:
步骤S201,计算机设备获取待加密数据。
其中,待加密数据可以是对浮点数的数据类型进行一种或多种运算处理的算式,该算式可以是用户直接输入至计算机设备的算式,也可以是计算机设备进行对应的转换处理后得到的算式;示例性地,计算机设备可以将用户直接输入的对浮点数进行相加、相减和/或相乘处理的算式作为待加密数据,计算机设备也可以将用户输入的对浮点数进行相除处理的算式转换为相乘处理的算式,并将转换得到的相乘处理的算式作为待加密数据。
步骤S202,计算机设备若待加密数据包括数据类型为浮点数的第一目标数据,则根据计算机设备预留给浮点数的整数部分的存储位数和小数部分的存储位数,从第一目标数据中提取与整数部分的存储位数对应的整数部分数据,以及从第一目标数据中提取与小数部分的存储位数对应的小数部分数据。
其中,第一目标数据可以包括一个或多个浮点数数据类型的数据(以下介绍中简称为浮点数);整数部分的存储位数和小数部分的存储位数为计算机设备预留给浮点数的存储位数,与计算机设备的存储性能、计算性能等因素有关,示例性地,计算机设备预留给浮点数的整数部分的存储位数可以是20位,预留给浮点数的小数部分的存储位数可以是10位。
结合表1,以整数部分的存储位数为20位、小数部分的存储位数为10位为例介绍:计算机设备在得到待加密数据后,若确定待加密数据包括一个或多个浮点数,则从浮点数的整数部分提取20位整数部分数据,从浮点数的小数部分提取10位小数部分数据,即保留浮点数的20位有效整数和10位有效小数。
其中,在对浮点数进行提取的过程中,计算机设备不单独存储浮点数的符号位(如“+”或“-”),以进一步节省存储资源,以便存储更多的浮点数的整数部分或小数部分的数据,提高对浮点数进行同态加密处理的精度。
表1
步骤S203,计算机设备将整数部分数据和小数部分数据组合得到数据类型为浮点数的第二目标数据。
其中,第二目标数据可以包括一个或多个浮点数,第二目标数据中的各个浮点数分别是对第一目标数据的各个浮点数进行提取组合后得到的,也就是说,第二目标数据中的各个浮点数分别与第一目标数据的各个浮点数对应。
示例性地,计算机设备在对其中一个浮点数进行与存储位数对应的提取后,得到整数部分数据和小数部分数据,并组合整数部分数据和小数部分数据,得到组合后的浮点数。
在一些实施例中,若计算机设备没有单独保存浮点数的符号位,则为了避免数据加密出错,计算机设备可以在组合的过程中融入浮点数的符号位,具体包括如下步骤:计算机设备从与浮点数存储器无关的存储位置获取上述浮点数的符号位,并对符号位、整数部分数据和小数部分数据进行组合,得到对应的组合后的浮点数,例如,计算机设备对符号位“+”、整数部分数据“31”和小数部分数据“26”进行组合,得到组合后的浮点数为“+31.26”,也可以表示为“31.26”;又例如,计算机设备对符号位“-”、整数部分数据“26”和小数部分数据“15”进行组合,得到组合后的浮点数为“-26.15”。
步骤S204,计算机设备对第二目标数据进行向量编码,得到第二目标数据的整数编码向量和小数编码向量。
在本步骤中,如表2所示,计算机设备在得到第二目标数据的浮点数后,对浮点数进行向量编码,得到上述浮点数的整数编码向量A和小数编码向量B,其中,整数编码向量对应浮点数的整数部分数据,小数编码向量对应浮点数的小数部分数据。
表2
更进一步地,若浮点数是十进制数,那么为了进一步提高对浮点数进行同态加密、解密的速度,避免在不同进制之间进行转换导致同态加密处理的速度降低的情况,计算机设备在对第二目标数据的浮点数进行向量编码时,可以将该浮点数转化为十进制对应的多项式编码形式,进而得到整数编码向量和小数编码向量。例如,对于形式为(a19a18....a1a0.b1b2...b10)的浮点数,通过多项式转换,取进制为10后,可以得到整数编码向量(a19,a18,...,a1,a0)和小数编码向量(b1,b2,...,b10)。示例性地,如表3所示,表3示出对浮点数“31.26”和“-26.15”进行十进制多项式编码,并得到对应的整数编码向量和小数编码向量。
表3
步骤S205,计算机设备对整数编码向量和小数编码向量分别进行同态加密。
在本步骤中,计算机设备在得到整数编码向量和小数编码向量后,对编码向量中的每一位数字进行同态加密处理,得到浮点数加密后的编码向量(也可称为密文编码向量)。
上述数据加密处理方法中,计算机设备获取待加密数据;若待加密数据包括数据类型为浮点数的第一目标数据,则根据计算机设备预留给浮点数的整数部分的存储位数和小数部分的存储位数,从第一目标数据中提取与整数部分的存储位数对应的整数部分数据,以及从第一目标数据中提取与小数部分的存储位数对应的小数部分数据;将整数部分数据和小数部分数据组合得到数据类型为浮点数的第二目标数据;对第二目标数据进行向量编码,得到第二目标数据的整数编码向量和小数编码向量;对整数编码向量和小数编码向量分别进行同态加密;可见,计算机设备通过预留给浮点数的整数部分的存储位数和小数部分的存储位数,并将浮点数分为整数部分和小数部分进行向量编码,实现对浮点数进行数据同态加密处理的精度控制,可以较为精准地控制对浮点数的计算精度,进而提高对浮点数进行同态加密处理时的计算精度。
其中,在步骤S201中,计算机设备获取待加密数据还可以进一步包括:获取输入至计算机设备的源数据,将源数据中的除数转化为除数的倒数,以及将源数据中的相除运算转化为相乘运算,得到待加密数据,进而保证浮点数加密处理的正常运算,避免出错。
其中,源数据可以是具有相除运算的算式;也就是说,在本实施例中,对于浮点数的除法,计算机设备可以在明文加密的时候保存除数的倒数,进而将浮点数的除法运算转为浮点数的乘法运算,得到包含相乘运算的待加密数据。
其中,在将浮点数的除法运算转为乘法运算得到的待加密数据的第一目标数据中,包括源数据中作为被除数的第一数据和作为除数的倒数的第二数据;计算机设备按照步骤S202至步骤S205对第一数据、第二数据进行处理,得到对应的同态加密后的整数编码向量和同态加密后的小数编码向量;进而,计算机设备对上述同态加密结果,得到密文形式的算式,也就是说,密文形式的算式包括同态加密后得到的,第一数据对应的第一整数编码向量和第一小数编码向量,以及第二数据对应的第二整数编码向量和第二小数编码向量。
在进行相乘运算时,计算机设备对第一整数编码向量和第一小数编码向量,与第二数据对应的第二整数编码向量和第二小数编码向量进行交叉相乘,得到四个矩阵;在得到的四个矩阵中,计算机设备确定与浮点数的整数部分对应的矩阵,并将与浮点数的整数部分对应的矩阵的元素进行相加,进而得到整数部分的编码向量作为第一整数结果编码向量,与浮点数的小数部分对应的矩阵的元素相加得到小数部分的编码向量作为第一小数结果编码向量;计算机设备根据第一整数结果编码向量和第一小数结果编码向量,获取密文形式的算式的运算结果。
例如,对于浮点数的乘法,设浮点数F1=(A1,B1),其中有A1=(α19,α18,...,α1,α0)和B1=(β1,β2,...,β9,β10),浮点数F2=(A2,B2),其中有A2=(η19,η18,...,η1,η0)和B2=(ξ1,ξ2,...,ξ9,ξ10),则在对浮点数F1=(A1,B1)和F2=(A2,B2)进行相乘后,可以得到以下四个矩阵:
其中,在上述四个矩阵中,第1个至第3个矩阵为与浮点数的整数部分对应的矩阵,第2个至第4个矩阵为与浮点数的小数部分对应的矩阵,计算机设备对第1个至第3个矩阵的元素进行相加,得到整数部分的编码向量,并作为第一整数结果编码向量
计算机设备对第2个至第4个矩阵的元素进行相加,得到小数部分的编码向量,并作为第一小数结果编码向量/>计算机设备进而根据第一整数结果编码向量和第一小数结果编码向量,得到密文形式的算式的运算结果F1*f2=((μ19,μ18,...,μ1,μ0),(ε1,ε2,...,ε9,ε10))。
在上述实施例中,计算机设备对与浮点数的整数部分对应的矩阵的元素进行相加,以及与浮点数的小数部分对应的矩阵的元素相加得到小数部分的编码向量,得到密文形式的算式的运算结果,可以使得在后期解密后可以得到更高精度的浮点数数据。
在另一些实施例中,若步骤S201的待加密数据为具有相加运算的算式,也就是说,第一目标数据包括在相加运算中作为被加数的第三数据,以及在相加运算中作为加数的第四数据;计算机设备在按照步骤S202至步骤S205对第三数据、第四数据进行处理,得到密文形式的算式;在该密文形式的算式中,包括同态加密后得到的第三整数编码向量和第三小数编码向量、以及第四整数编码向量和第四小数编码向量;其中,第三整数编码向量和第三小数编码向量为第三数据对应的编码向量;第四整数编码向量和第四小数编码向量为第四数据对应的编码向量。
计算机设备将第三整数编码向量和第四整数编码向量相加得到第二整数结果编码向量,将第三小数编码向量和第四小数编码向量进行相加得到第二小数结果编码向量;根据第二整数结果编码向量和第二小数结果编码向量,获取密文形式的算式的运算结果。
示例性地,对于浮点数加法,设浮点数F1=(A1,B1),其中有A1=(α19,α18,...,α1,α0)和B1=(β1,β2,...,β9,β10),浮点数F2=(A2,B2),其中有A2=(η19,η18,...,η1,η0)和B2=(ζ1,ζ2,...,ζ9,ζ10),计算机设备对两个浮点数进行相加F1+F2,得到密文形式的算式的运算结果为:
F1+F2=(A1+A2,B1+B2)=((α19+η19,α18+η18,...,α1+η1,α0+η0),(β1+ζ1,β2+ζ2,...,β9+ζ9,β10+ζ10))
在另一些实施例中,若步骤S201的待加密数据为具有相减运算的算式,也就是说,第一目标数据包括在相减运算中作为被减数的第三数据,以及在相减运算中作为减数的第四数据;计算机设备在按照步骤S202至步骤S205对第三数据、第四数据进行处理,得到密文形式的算式;在该密文形式的算式中,包括同态加密后得到的第三整数编码向量和第三小数编码向量、以及第四整数编码向量和第四小数编码向量;其中,第三整数编码向量和第三小数编码向量为第三数据对应的编码向量;第四整数编码向量和第四小数编码向量为第四数据对应的编码向量。
计算机设备将第三整数编码向量和第四整数编码向量相减得到第二整数结果编码向量,将第三小数编码向量和第四小数编码向量进行相减得到第二小数结果编码向量;根据第二整数结果编码向量和第二小数结果编码向量,获取密文形式的算式的运算结果。
示例性地,对于浮点数减法,设浮点数F1=(A1,B1),其中有A1=(α19,α18,...,α1,α0)和B1=(β1,β2,...,β9,β10),浮点数F2=(A2,B2),其中有A2=(η19,η18,...,η1,η0)和B2=(ζ1,ζ2,...,ζ9,ζ10),计算机设备对两个浮点数进行减F1-F2,得到密文形式的算式的运算结果为:
F1-F2=(A1-A2,B1-B2)=((α19-η19,α18-η18,...,α1-η1,α0-η0),(β1-ζ1,β2-ζ2,...,β9-ζ9,β10-ζ10))。
在上述实施例中,计算机设备对与浮点数的整数编码向量进行相加或相减,以及与浮点数的整数编码向量相加或相减,得到密文形式的算式的运算结果,可以使得在后期解密后可以得到更高精度的浮点数数据。
在一些实施例中,在对浮点数进行同态加密处理后,为了其他端得到对应的浮点数数据,计算机设备还可以在得到密文形式的算式的第一运算结果后,对第一运算结果进行解密,得到浮点数编码向量;将浮点数编码向量通过编码还原得到数据类型为浮点数的第二运算结果,作为算式的运算结果。
以下基于图1的计算机设备,详细阐明本申请提供的数据加密处理方法。如图3所示,该方法具体包括如下步骤:
步骤S301,计算机设备获取用户输入的算式;
步骤S302,计算机设备按照步骤S202至步骤S204的处理,对算式中的浮点数进行向量编码;
步骤S303,计算机设备对得到的编码向量进行同态加密;
步骤S304,在对算式中的浮点数进行同态加密后,计算机设备把算式转化为密文形式的算式;
步骤S305,计算机设备对密文形式的算式进行解析,得到运算符号;
步骤S306,计算机设备判断运算符号对应的运算类型;
步骤S307至步骤S309,计算机设备若确定为相加或相减的运算类型,则进行对应的运算处理;其中,对应的运算处理可以参照其他实施例的介绍,这里不赘述;
步骤S310至步骤S312,计算机设备若确定为相乘或相除的运算类型,则进行对应的运算处理;其中,对应的运算处理可以参照其他实施例的介绍,这里不赘述;
步骤S313,计算机设备得到对应运算处理的运算结果;
步骤S314,由于用户输入的算式中可以同时包括多种运算类型(相加、相减、相乘和相除中的至少一种),因此,计算机设备在完成一种运算类型的运算处理后,进一步判断是否完成算式中的其他运算类型,若是,则进入步骤S314;若否,则返回步骤S306;
步骤S315,计算机设备对密文结果(相当于算式各种运算类型的运算结果)进行解析,得到浮点数编码向量;
步骤S316,计算机设备将浮点数编码向量通过编码还原得到数据类型为浮点数的运算结果,并作为算式的运算结果。
步骤S317,计算机设备输出运算结果。
在上述实施例中,通过新的浮点数编码和对浮点数的运算处理方式,克服了现有的方案的BFV方案和BGV方案在只能支持整数的编码,不能支持浮点数的编码的缺陷,使得整体方案能同时支持整数和浮点数计算,也改进CKKS方案在浮点数编码支持位数少和浮点数精度支持力度不够的缺陷,提升浮点数的计算效率和性能。
应该理解的是,虽然图2至图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种数据加密处理装置,包括:
待加密数据获取模块401,用于获取待加密数据;
数据提取模块402,用于若待加密数据包括数据类型为浮点数的第一目标数据,则根据计算机设备预留给浮点数的整数部分的存储位数和小数部分的存储位数,从第一目标数据中提取与整数部分的存储位数对应的整数部分数据,以及从第一目标数据中提取与小数部分的存储位数对应的小数部分数据;
数据组合模块403,用于将整数部分数据和小数部分数据组合得到数据类型为浮点数的第二目标数据;
向量编码模块404,用于对第二目标数据进行向量编码,得到第二目标数据的整数编码向量和小数编码向量;
同态加密模块405,用于对整数编码向量和小数编码向量分别进行同态加密。
在一个实施例中,向量编码模块404,还用于将第二目标数据转化为十进制对应的多项式编码形式,得到整数编码向量和小数编码向量。
在一个实施例中,数据组合模块403,还用于基于第一目标数据的符号位以及整数部分数据和小数部分数据,组合得到第二目标数据。
在一个实施例中,待加密数据获取模块401,还用于获取输入至计算机设备的源数据;源数据为具有相除运算的算式;将源数据中的除数转化为除数的倒数,以及将源数据中的相除运算转化为相乘运算,得到待加密数据。
在一个实施例中,上述装置还包括:
密文算式获取模块,用于基于同态加密结果,得到密文形式的算式;密文形式的算式包括同态加密后得到的,第一数据对应的第一整数编码向量和第一小数编码向量,以及第二数据对应的第二整数编码向量和第二小数编码向量;
第一编码向量获取模块,用于将第一整数编码向量和第一小数编码向量,与第二数据对应的第二整数编码向量和第二小数编码向量进行交叉相乘得到的矩阵中,与浮点数的整数部分对应的矩阵的元素相加得到整数部分的编码向量作为第一整数结果编码向量,与浮点数的小数部分对应的矩阵的元素相加得到小数部分的编码向量作为第一小数结果编码向量;
第一运算结果获取模块,用于根据第一整数结果编码向量和第一小数结果编码向量,获取密文形式的算式的运算结果。
在一个实施例中,待加密数据为具有相加运算或者相减运算的算式;第一目标数据包括在相加运算中作为被加数或者在相减运算中作为被减数的第三数据,以及在相加运算中作为加数或者在相减运算中作为减数的第四数据;密文形式的算式还包括同态加密后得到的,第三整数编码向量和第三小数编码向量,以及第四整数编码向量和第四小数编码向量;第三整数编码向量和第三小数编码向量为第三数据对应的编码向量;第四整数编码向量和第四小数编码向量为第四数据对应的编码向量;
上述装置还包括:
第二编码向量获取模块,用于将第三整数编码向量和第四整数编码向量相加或者相减得到第二整数结果编码向量,将第三小数编码向量和第四小数编码向量进行相加或者相减得到第二小数结果编码向量;
第二运算结果获取模块,用于根据第二整数结果编码向量和第二小数结果编码向量,获取密文形式的算式的运算结果。
在一个实施例中,上述装置还包括:
运算结果解密模块,用于获取密文形式的算式的第一运算结果;对第一运算结果进行解密,得到浮点数编码向量;
编码还原模块,用于将浮点数编码向量通过编码还原得到数据类型为浮点数的第二运算结果,作为算式的运算结果。
关于数据加密处理装置的具体限定可以参见上文中对于数据加密处理方法的限定,在此不再赘述。上述数据加密处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据加密处理方法,其特征在于,应用于计算机设备,包括:
获取待加密数据;
若所述待加密数据包括数据类型为浮点数的第一目标数据,则根据所述计算机设备预留给浮点数的整数部分的存储位数和小数部分的存储位数,从所述第一目标数据中提取与所述整数部分的存储位数对应的整数部分数据,以及从所述第一目标数据中提取与所述小数部分的存储位数对应的小数部分数据;
将所述整数部分数据和所述小数部分数据组合得到数据类型为所述浮点数的第二目标数据;
对所述第二目标数据进行向量编码,得到所述第二目标数据的整数编码向量和小数编码向量;
对所述整数编码向量和所述小数编码向量分别进行同态加密。
2.根据权利要求1所述的方法,其特征在于,所述对所述第二目标数据进行向量编码,得到所述第二目标数据的整数编码向量和小数编码向量,包括:
将所述第二目标数据转化为十进制对应的多项式编码形式,得到所述整数编码向量和所述小数编码向量。
3.根据权利要求1所述的方法,其特征在于,所述将所述整数部分数据和所述小数部分数据组合得到数据类型为所述浮点数的第二目标数据,包括:
基于所述第一目标数据的符号位以及所述整数部分数据和所述小数部分数据,组合得到所述第二目标数据。
4.根据权利要求1所述的方法,其特征在于,所述获取待加密数据,包括:
获取输入至所述计算机设备的源数据;所述源数据为具有相除运算的算式;
将所述源数据中的除数转化为所述除数的倒数,以及将所述源数据中的所述相除运算转化为相乘运算,得到所述待加密数据。
5.根据权利要求4所述的方法,其特征在于,所述第一目标数据包括所述源数据中作为被除数的第一数据和作为除数的倒数的第二数据;所述对所述整数编码向量和所述小数编码向量分别进行同态加密之后,所述方法还包括:
基于同态加密结果,得到密文形式的所述算式;所述密文形式的所述算式包括同态加密后得到的,所述第一数据对应的第一整数编码向量和第一小数编码向量,以及所述第二数据对应的第二整数编码向量和第二小数编码向量;
将所述第一整数编码向量和第一小数编码向量,与所述第二数据对应的第二整数编码向量和第二小数编码向量进行交叉相乘得到的矩阵中,与浮点数的整数部分对应的矩阵的元素相加得到整数部分的编码向量作为第一整数结果编码向量,与浮点数的小数部分对应的矩阵的元素相加得到小数部分的编码向量作为第一小数结果编码向量;
根据所述第一整数结果编码向量和第一小数结果编码向量,获取所述密文形式的所述算式的运算结果。
6.根据权利要求5所述的方法,其特征在于,所述待加密数据为具有相加运算或者相减运算的算式;所述第一目标数据包括在所述相加运算中作为被加数或者在所述相减运算中作为被减数的第三数据,以及在所述相加运算中作为加数或者在所述相减运算中作为减数的第四数据;所述密文形式的所述算式还包括同态加密后得到的,第三整数编码向量和第三小数编码向量,以及第四整数编码向量和第四小数编码向量;所述第三整数编码向量和第三小数编码向量为所述第三数据对应的编码向量;所述第四整数编码向量和第四小数编码向量为所述第四数据对应的编码向量;
所述基于同态加密结果,得到密文形式的所述算式之后,所述方法还包括:
将所述第三整数编码向量和所述第四整数编码向量相加或者相减得到第二整数结果编码向量,将所述第三小数编码向量和所述第四小数编码向量进行相加或者相减得到第二小数结果编码向量;
根据所述第二整数结果编码向量和第二小数结果编码向量,获取所述密文形式的所述算式的运算结果。
7.根据权利要求5至6任一项所述的方法,其特征在于,所述方法还包括:
获取所述密文形式的所述算式的第一运算结果;
对所述第一运算结果进行解密,得到浮点数编码向量;
将所述浮点数编码向量通过编码还原得到数据类型为浮点数的第二运算结果,作为所述算式的运算结果。
8.一种数据加密处理装置,其特征在于,应用于计算机设备,包括:
待加密数据获取模块,用于获取待加密数据;
数据提取模块,用于若所述待加密数据包括数据类型为浮点数的第一目标数据,则根据所述计算机设备预留给浮点数的整数部分的存储位数和小数部分的存储位数,从所述第一目标数据中提取与所述整数部分的存储位数对应的整数部分数据,以及从所述第一目标数据中提取与所述小数部分的存储位数对应的小数部分数据;
数据组合模块,用于将所述整数部分数据和所述小数部分数据组合得到数据类型为所述浮点数的第二目标数据;
向量编码模块,用于对所述第二目标数据进行向量编码,得到所述第二目标数据的整数编码向量和小数编码向量;
同态加密模块,用于对所述整数编码向量和所述小数编码向量分别进行同态加密。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010668219.4A CN112231718B (zh) | 2020-07-13 | 2020-07-13 | 数据加密处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010668219.4A CN112231718B (zh) | 2020-07-13 | 2020-07-13 | 数据加密处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231718A CN112231718A (zh) | 2021-01-15 |
CN112231718B true CN112231718B (zh) | 2024-03-12 |
Family
ID=74115389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010668219.4A Active CN112231718B (zh) | 2020-07-13 | 2020-07-13 | 数据加密处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231718B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113341860B (zh) * | 2021-05-18 | 2022-08-02 | 中国航发湖南动力机械研究所 | 一种通用型电力加载装置及采用其的航空发动机试验台 |
CN114036550A (zh) * | 2022-01-10 | 2022-02-11 | 深圳奥联信息安全技术有限公司 | 一种保留浮点数格式的加密方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131139A (zh) * | 2016-06-23 | 2016-11-16 | 暨南大学 | 一种云关系数据库的浮点数据的加密及查询方法 |
CN107147484A (zh) * | 2017-05-12 | 2017-09-08 | 南京邮电大学 | 一种面向隐私保护的浮点数全同态加密方法 |
WO2018107949A1 (zh) * | 2016-12-13 | 2018-06-21 | 深圳市全同态科技有限公司 | 一种基于模运算的全同态加密处理方法 |
-
2020
- 2020-07-13 CN CN202010668219.4A patent/CN112231718B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131139A (zh) * | 2016-06-23 | 2016-11-16 | 暨南大学 | 一种云关系数据库的浮点数据的加密及查询方法 |
WO2018107949A1 (zh) * | 2016-12-13 | 2018-06-21 | 深圳市全同态科技有限公司 | 一种基于模运算的全同态加密处理方法 |
CN107147484A (zh) * | 2017-05-12 | 2017-09-08 | 南京邮电大学 | 一种面向隐私保护的浮点数全同态加密方法 |
Non-Patent Citations (1)
Title |
---|
支持浮点运算的高效并行全同态加密算法;史经启;杨庚;孙彦;白双杰;闵兆娥;;计算机科学;20180515(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112231718A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9614665B2 (en) | Encryption processing method, encryption processing device, and computer-readable recording medium storing program for encryption processing | |
JP2021513141A (ja) | 2次元バーコードの生成及び識別 | |
US10270588B2 (en) | Method and system for additive homomorphic encryption scheme with operation error detection functionality | |
JP2020074039A (ja) | データを暗号化する方法およびシステム | |
CN112231718B (zh) | 数据加密处理方法、装置、计算机设备和存储介质 | |
KR101913644B1 (ko) | 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법 | |
JP6044738B2 (ja) | 情報処理装置、プログラム及び記憶媒体 | |
CN111010266B (zh) | 消息的加解密、读写方法、装置、计算机设备和存储介质 | |
KR20060134992A (ko) | 정수를 가산하는 컴퓨터 시스템 | |
US20190065759A1 (en) | Method for protecting data | |
CN110505054B (zh) | 一种基于动态白盒的数据处理方法、装置及设备 | |
CN114647857A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN116484395A (zh) | 一种基于隐私数据的安全计算方法及相关设备 | |
US10635786B2 (en) | Methods and apparatus for encrypting multimedia information | |
CN107592963B (zh) | 用于执行安全计算的方法和计算设备 | |
CN115941304A (zh) | 数据的加密方法、装置、终端设备和计算机可读存储介质 | |
CN115834018A (zh) | 一种保护隐私的多方数据处理方法、系统和设备 | |
KR101440680B1 (ko) | 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치 | |
CN113901437A (zh) | 密码生成方法、装置、计算机设备和存储介质 | |
CN112614557A (zh) | 电子病历加密存档方法 | |
CN115918028A (zh) | 对同态密文执行统计操作的装置及其方法 | |
CN108075889B (zh) | 一种降低加解密运算时间复杂度的数据传输方法及系统 | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
CN114254372B (zh) | 数据加密处理方法、系统及电子设备 | |
KR101757768B1 (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 |