CN106452723B - 一种基于模运算的全同态加密处理方法 - Google Patents

一种基于模运算的全同态加密处理方法 Download PDF

Info

Publication number
CN106452723B
CN106452723B CN201611145127.8A CN201611145127A CN106452723B CN 106452723 B CN106452723 B CN 106452723B CN 201611145127 A CN201611145127 A CN 201611145127A CN 106452723 B CN106452723 B CN 106452723B
Authority
CN
China
Prior art keywords
ciphertext
result
encryption
divisor
processing method
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
CN201611145127.8A
Other languages
English (en)
Other versions
CN106452723A (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.)
Shenzhen Fhe Technologies Co ltd
Original Assignee
Shenzhen Fhe Technologies 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 Shenzhen Fhe Technologies Co ltd filed Critical Shenzhen Fhe Technologies Co ltd
Priority to CN201611145127.8A priority Critical patent/CN106452723B/zh
Publication of CN106452723A publication Critical patent/CN106452723A/zh
Application granted granted Critical
Publication of CN106452723B publication Critical patent/CN106452723B/zh
Priority to JP2019514179A priority patent/JP6682041B2/ja
Priority to PCT/CN2017/112482 priority patent/WO2018107949A1/zh
Priority to EP17880833.3A priority patent/EP3531611A4/en
Priority to US16/106,029 priority patent/US10868666B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于模运算的全同态加密处理方法,包括以下步骤:获取加密过程中任意数值数据类型的明文,并根据加密需要将其转换为对应的进制位明文,对得到的进制位明文中的各个数进行加密运算,将加密运算得到的密文进行组合,从而得到对应的密文组合,采用基于模加密的密文原码、密文反码和密文补码对得到的密文组合进行加减乘除密文运算,利用模除法对获取的密文运算结果进行解密,以获得解密后的明文。本发明能够解决现有的基于模运算的全同态加密处理方法中,由于密文乘法噪音难以控制,以及密文加法的结果等于进制时密文求和的结果在解密过程中出错所导致的加密结果无法被正确解密的技术问题。

Description

一种基于模运算的全同态加密处理方法
技术领域
本发明属于信息安全领域,更具体地,涉及一种基于模运算的全同态加密处理方法。
背景技术
全同态加密作为一种前沿和先进的加密算法,已经经历了接近40年的发展。1978年,R.Rivest等人提出了“全同态加密”的概念,2009年C.Gentry理论上设计了基于理想格的全同态加密方案,2010年他又提出了“somewhat”同态加密方案,2011年Brakerski等人提出了基于容错学习问题(Learning with errors,简称LWE)和环上的容错学习问题(Ringlearning with errors,简称RLWE)构造出一种不依赖理想格的全同态加密方案。
然而,现有的基于模运算的全同态加密处理方法都存在一些不可忽略的问题:首先,其在加密过程中存在着密文乘法噪音难以控制的问题,导致加密结果无法被正确解密;其次,由于明文求和结果等于进制时,其密文求和的结果在解密过程中必然会出错,由此会导致加密结果无法被正确解密。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于模运算的全同态加密处理方法,其目的在于,解决现有的基于模运算的全同态加密处理方法中,由于密文乘法噪音难以控制,以及密文加法的结果等于进制时密文求和的结果在解密过程中出错所导致的加密结果无法被正确解密的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于模运算的全同态加密处理方法,包括以下步骤:
(1)获取加密过程中任意数值数据类型的明文,并根据加密需要将其转换为对应的进制位明文;
(2)对步骤(1)中得到的进制位明文中的各个数进行加密运算,将加密运算得到的密文进行组合,从而得到对应的密文组合;
(3)采用基于模加密的密文原码、密文反码和密文补码对步骤(2)得到的密文组合进行密文运算;
(4)利用模除法对步骤(3)获取的密文运算结果进行解密,以获得解密后的明文。
优选地,步骤(2)中加密运算是采用以下公式:
c=(m+s*r+p*r)mod x0
其中c表示密文,m表示明文中的进制位,s表示加密中所采用的进制,r表示随机数,p为加密密钥,x0是一个中间变量,其等于加密密钥p与另一个加密密钥q的乘积,所述密钥均不对外公开。
优选地,步骤(4)具体是采用以下公式:(c mod p)mod s。
优选地,步骤(3)中,对于密文加法运算,直接将两个密文组合进行对位求和运算。
优选地,步骤(3)中,对于密文减法运算,首先获取减数的密文组合的反码,然后根据该反码获取对应的补码,最后将该补码与被减数的密文组合的原码进行对位求和运算。
优选地,步骤(3)中,对于密文乘法运算,首先根据密文组合c1和c2中元素的个数n创建一个n*(2n-1)的矩阵,该矩阵的第一行从右至左的元素分别为:c1中最右侧元素与c2中最右侧元素的乘积、c1中右侧倒数第二个元素与c2中最右侧元素的乘积、以此类推、c1中左侧第一个元素与c2中最右侧元素的乘积;该矩阵的第二行从右至左的元素分别为:1个0、c1中最右侧元素与c2中右侧倒数第二个元素的乘积、c1中右侧倒数第二个元素与c2中右侧倒数第二个元素的乘积、以此类推、c1中左侧第一个元素与c2中右侧倒数第二个元素的乘积;…该矩阵的第n行从右至左的元素分别为:(n-1)个0,c1中最右侧元素与c2中左侧第一个元素的乘积、c1中右侧倒数第二个元素与c2中左侧第一个元素的乘积、以此类推、c1中左侧第一个元素与c2中左侧第一个元素的乘积,然后,将构建的矩阵的每列进行求和,从而得到一个新的行向量,取该行向量作为密文乘法运算的结果,最后,取该行向量作为密文乘法运算的结果。
优选地,步骤(3)中,对于密文除法运算,其包括以下子步骤:
(3-4-1)创建空的除法运算结果的存储格式,该存储格式的总长度为32位、64位或80位,且包括符号位、整数位和小数位,并根据该存储格式对二进制位明文进行扩展;
(3-4-2)根据步骤(2)的算法对扩展后的二进制位明文进行加密运算,将加密运算结果进行组合,从而得到对应的密文分别作为被除数和除数;
(3-4-3)用步骤(2)中得到的1的密文乘以作为除数的密文;
(3-4-4)设置小数位计数器count的初始值等于存储格式的长度-L,其中L是存储格式中整数位的长度;
(3-4-5)判断被除数的密文是否大于除数的密文,如果大于转步骤(3-4-6),否则转步骤(3-4-7);
(3-4-6)将被除数的密文与步骤(3-4-3)中的除数密文的补码做加法,得到余数作为新的被除数,并且在整数位用1的密文做加法,即得到的是密文商,并返回步骤(3-4-5);
(3-4-7)判断余数的密文是否全部为零或小数位计数器count大于存储格式的总长度,如果不是,则转步骤(3-4-8);如果是,则密文除法运算结束,并转入步骤(3-4-13),以获得密文除法运算结果;
(3-4-8)在余数密文的最右边添加0的密文,得到新的余数密文,并转步骤(3-4-9);
(3-4-9)判断步骤(3-4-8)得到新的余数密文是否大于除数的密文,如果是大于则转步骤(3-4-10)步骤,否则转(3-4-11);
(3-4-10)将新的余数密文与除数的密文补码做加法,以再次获得新的余数密文,同时将第count个小数位的值设置为1对应的密文值;
(3-4-11)将第count个小数位的值设置为0对应的密文值,然后转步骤(3-4-12);
(3-4-12)将小数位计数器count加1,然后返回步骤(3-4-7);
(3-4-13)根据得到的密文值获取商的整数部分和小数部分,并按步骤(3-4-1)中的存储格式进行存放。
优选地,商的整数部分等于:
xL*20+xL-1*21+…+x1*2L-1,其中x表示整数部分中的密文值;
商的小数部分等于:
y1*2-1+y2*2-2+…+y存储格式的总长度-L*2存储格式的总长度-L,其中y表示小数部分中的密文值。
优选地,步骤(3-4-5)具体为,判断被除数的密文是否大于除数的密文,是从左到右以遍历的方式判断被除数中的每一位是否大于或等于除数中的对应位,如果一旦有其中一位小于除数中的对应位,则表示被除数的密文不是大于除数的密文。
优选地,在密文加法运算中,首先将密文的每一位根据解密公式(密文mod p)mods求出对应的明文,并将得到的明文按位进行求和相加,接下来判断每个位求和后得到的值是否等于进制,如果等于,则表示出现了进位,此时返回进位值,并返回密文位求和的结果,并且在该密文位的上一位求和过程中加1;如果不等于,则表示没有出现进位,此时返回进位值以及密文位求和的结果,并且在该密文位的上一位求和过程中加0。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明能够解决现有方法中由于密文乘法噪音难以控制导致的加密结果无法被正确解密的技术问题:由于本发明采用了加密过程中的进位机制和密文计算结果的刷新,能够解决全同态加密过程中出现的噪音问题。
(2)本发明能够解决现有方法中密文加法的结果等于进制时,密文求和的结果在解密过程中出错所导致的加密结果无法被正确解密的技术问题:由于本发明采用了加密过程中的进位机制,该机制通过判断密文求和结果是否等于进制来确定是否需要进行进位操作,从而解决了密文加法出错的问题。
(3)本发明通过模加密的密文原码、密文反码和密文补码,能够实现任意数据密文之间的加减乘除运算,从而进一步扩展了本发明的应用场景,并提升了应用场景密文计算过程中的数据安全性。
附图说明
图1是本发明基于模运算的全同态加密处理方法的流程图。
图2是本发明方法中执行密文除法计算过程的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
进制位:根据进制所确定的位的数量,例如:二进制就是1位,八进制就是3位,16进制就是4位,32进制就是5位,64进制就是6位,128进制就是7位。
本发明的方法采用基于模加密的密文原码、密文反码和密文补码实现了所有数据类型的加密、解密和密文计算。该方法通过构造电路函数刷新密文实现了算术运算、关系运算和逻辑运算的密文计算,其中算术运算包括加、减、乘、除(+,-,*,/),关系运算包括小于、小于等于、大于、大于等于、等于和不等于(<,≤,>,≥,=,≠),逻辑运算包括与、或和非(and,or,not)等操作。
一种基于模运算的全同态加密处理方法包含有数据表示、密钥生成、加密算法、解密算法以及密文运算(Ciphertext Operation,简称CO)。
数据表示:记明文m的类型(Type)为T,T的集合为{整数、实数、字符、日期、布尔型}等,已知明文ms,其中:s表示数据进制(System),即二进制、十进制、十六进制、521进制等等,记作(T,ms);例如:s=2表示二进制,二进制通常用B表示,明文m表示为二进制位mB,记作(T,mB);s=16表示十六进制,十六进制通常用H表示,明文m表示为十六进制位mH,记作(T,mH);s=512表示512进制,明文m表示为512进制位m512,记作(T,m512)等。
密钥生成(KeyGen):选择一个大奇数p,计算x0=q0*p+s*r,x0必须是一个奇数,否则重新计算。随机生成τ个数,计算xi=qi*p+s*r,其中:0≤i≤τ,qi<<q0、r是随机数。用于非对称算法的公钥为pk=(x0,x1,…,xi,…xτ),私钥为p;用于对称算法的密钥为(x0,p)。为了清晰的表达加密、解密和密文计算的算法描述引入工作密钥Wkey(pk,p)。
加密算法(Enc):由KeyGen生成的工作密钥Wkey,对于任意的一个数m加密。将m转换成二进制mB表示为B,B=(b1,b2,…,bi,…,bn),bi∈{0,1},1≤i≤n,c=Enc(Wkey,B),c是采用加密算法f得到c=(c1,c2,…,ci,…,cn),其中:r是随机数。
解密算法(Dec):由KeyGen生成的工作密钥Wkey,对输入的密文数据c,b’=Dec(Wkey,ci),b’是采用解密算法f’得到b’=(b1’,b2’,…,bi’,…,bn’),其中:b’=f’(Wkey,ci)=(ci mod p)mod s,1≤i≤n,将s进制b’转换成明文m。
密文运算(CO):由KeyGen生成的工作密钥Wkey,对于输入的两个密文数据c1、c2,c’=CO(Wkey,c1 O c2),c’是采用构造的密文运算函数f”计算得到c’=(c1’,c2’,…,ci’,…,cn’)
ci’=f”(Wkey,c1i’O c2i’)
其中:1≤i≤n,O∈{+,-,*,/……}
构造密文运算函数f”来实现密文计算,其密文计算过程是根据加密算法f推导出如下判断规则。
以s=2二进制为例:假设
c1=m1+2*r1+p*r1 mod x0
c2=m2+2*r2+p*r2 mod x0
c=c1+c2=(m1+m2)+2*r1+p*r1+2*r2+p*r2
=(m1+m2)+2*(r1+r2)+p*(r1+r2)
c=c1*c2=(m1+2*r1+p*r1)(m2+2*r2+p*r2)
=m1*m2+m1*2*r2+m1*p*r2+2*r1*m2+2*r1*2*r2+2*r1*p*r2+p*r1*m2+p*r1*2*r2+p*r1*p*r2
=m1*m2+2*(m1*r2+m2*r1+2*r1*r2)+p*(m1*r2+4*r1*r2+r1*m2+r1*p*r2)
对密文c mod p后,密文计算的加法和乘法噪音公式如下:
c=(c1+c2)mod p=(m1+m2)+2(r1+r2) (1)
c=(c1*c2)mod p=m1*m2+2*(m1*r2+m2*r1+2*r1*r2) (2)
当明文(m1=0,m2=0),(m1=0,m2=1),(m1=1,m2=0),(m1=1,m2=1)时:
加法的密文计算判断规则为:
c=0+2(r1+r2);(c mod p)mod 2=0;解密正确
c=1+2(r1+r2);(c mod p)mod 2=1;解密正确
c=1+2(r1+r2);(c mod p)mod 2=1;解密正确
c=2+2(r1+r2);(c mod p)mod 2=0;解密错误
乘法的密文计算判断规则为:
c=0+4r1r2;(c mod p)mod 2=0;解密正确
c=0+2(r1+2r1r2);(c mod p)mod 2=0;解密正确
c=0+2(r2+2r1r2);(c mod p)mod 2=0;解密正确
c=1+2(r1+r2+2r1r2);(c mod p)mod 2=1;解密正确
根据以上分析,从噪音公式(1)可知当明文(m1=1,m2=1)时,密文加法计算时得到的密文结果是错误的,即解密时一定会出错。从噪音公式(2)可知两个密文的乘积使得噪音成指数级的增涨,一旦模p后的结果不在(-p/s,p/s]范围内,解密也一定会出错。掌握这个规律后,构造两个电路函数如下。
1、电路函数f1
功能描述:二进制密文计算,解决密文计算时的噪音问题。
输入参数:工作密钥Wkey(x0,p),密文c1、c2,操作符op。
输出参数:返回计算的密文c,返回进位标识flag,1表示进位,0表示不进位。
密文计算步骤如下:
步骤1:初始化c=0,flag=0。
步骤2:如果op等于add转步骤3,否则密文相乘c=c1*c2,转步骤4。
步骤3:判断两个密文((c1 mod p)mod 2)and((c2 mod p)mod 2)是否为真,如果为真密文相加c=c1+c2,flag=1。
步骤4:返回刷新密文c和进位标识flag。
2、电路函数f2
功能描述:判断二进制位密文大小,解决密文除法计算时是否能够继续做减法。
输入参数:工作密钥Wkey(x0,p),密文c1、c2
输出参数:如果c1≥c2,返回结果值flag为真,否则flag为假。
密文计算步骤如下:
步骤1:初始化flag=假;
步骤2:判断两个密文((c1 mod p)mod 2)≥((c2 mod p)mod 2)是否为真,如果为真flag=真。
步骤3:返回flag的值。
如图1所示,本发明的基于模运算的全同态加密处理方法包括以下步骤:
(1)获取加密过程中任意数值数据类型的明文,并根据加密需要将其转换为对应的进制位明文;举例而言,
例1,两个明文分别为m1=5,m2=3,需要分别对其进行二进制位加密,则得到的二进制位明文分别为101和011;
例2,两个明文分别为m1=7,m2=3,需要分别对其进行二进制位加密,则得到的二进制位明文分别为111和011;
例3,两个明文分别为m1=7,m2=2,需要分别对其进行二进制位加密,则得到的二进制位明文分别为111和010;
(2)对步骤(1)中得到的进制位明文中的各个数进行加密运算,将加密运算得到的密文进行组合,从而得到对应的密文组合,加密运算具体是采用以下公式:
c=(m+s*r+p*r)mod x0
其中c表示密文,m表示明文中的进制位,s表示加密中所采用的进制(例如二进制,则s=2;十六进制,则s=16),r表示随机数,p为加密密钥,x0是一个中间变量,其等于加密密钥p与另一个加密密钥q(其中p和q均是奇数)的乘积,上述密钥都是对外不公开。
例如,假设工作密钥p=111,q=11,x0=p*q=1221,令r=1,则对于明文5的二进制位明文101和明文3的二进制位明文011中的数0和1而言,使用本步骤的上述公式计算后,可得到:
数0加密后的密文等于113;
数1加密后的密文等于114;
举例而言,
例1:明文5的二进制位明文为101经过加密后的密文组合变成了c1=(114,113,114);明文3的二进制位明文011经过加密后的密文变成了c2=(113,114,114);
例2:明文7的二进制位明文为111经过加密后的密文组合变成了c1=(114,114,114);明文3的二进制位明文011经过加密后的密文变成了c2=(113,114,114)。
例3:明文7的二进制位明文为111经过加密后的密文组合变成了c1=(114,114,114);明文2的二进制位明文010经过加密后的密文变成了c2=(113,114,113)。
(3)采用基于模加密的密文原码、密文反码和密文补码对步骤(2)得到的密文组合进行密文运算;如图2所示,本步骤具体包括以下子步骤:
(3-1)对于密文加法运算,直接将两个密文组合进行对位求和运算;
对于上面的示例而言,即为:
例1:c1+c2=(114,113,114)+(113,114,114);
例2:c1+c2=(114,114,114)+(113,114,114);
例3:c1+c2=(114,114,114)+(113,114,113);
在密文加法运算中,首先需要将密文的每一位根据解密公式(密文mod p)mod s求出对应的明文,并将得到的明文按位进行求和相加,接下来判断每个位求和后得到的值是否等于进制,如果等于,则表示出现了进位,此时返回进位值(即1),并返回密文位求和的结果(即实现了密文求和结果的刷新),并且在该密文位的上一位求和过程中加1;如果不等于,则表示没有出现进位,此时返回进位值(即0)以及密文位求和的结果,并且在该密文位的上一位求和过程中加0。
在以下的密文减法、乘法、除法运算中,都会出现加法进位的情况,其处理方式与上述进位过程完全相同,以下再不赘述。
例1:c1+c2=(114,228,228,228)
例2:c1+c2=(114,228,229,228)
例3:c1+c2=(114,228,228,227)
用解密算法m=(c mod p)mod 2验证密文计算是正确的,举例而言,
例1:解密密文c1+c2计算结果:(114,228,228,228)=(1000)=8
例2:解密密文c1+c2计算结果:(114,228,229,228)=(1010)=10
例3:解密密文c1+c2计算结果:(114,228,228,227)=(1001)=9
(3-2)对于密文减法运算,首先获取减数的密文组合的反码,然后根据该反码获取对应的补码,最后将该补码与被减数的密文组合的原码进行对位求和运算;
对于上面的示例而言,即为:
首先,获取密文组合c2的反码,其具体等于进制的数量-进制位-1;
对于c2而言,其明文原码是011,第一位0对应的反码是2-0-1=1,第二位1对应的反码是2-1-1=0,第三位是2-1-1=0,因此其反码就是100,对应的密文反码是对密文原码的每一位加1。
举例而言,
例1:c2反码=(114,115,115);
例2:c2反码=(114,115,115);
例3:c2反码=(114,115,114);
然后通过对反码中最后一位加1得到密文组合c2的补码:
例1:c2补码=(114,115,116);
例2:c2补码=(114,115,116);
例3:c2补码=(114,116,115);
最后将c1的原码与c2的补码做加法,得到:
例1:c1-c2=c1原码+c2补码=(114,113,114)+(114,115,116)=(228,229,230)
例2:c1-c2=c1原码+c2补码=(114,114,114)+(114,115,116)=(229,230,230)
例3:c1-c2=c1原码+c2补码=(114,114,114)+(114,116,115)=(229,230,229)
应该注意的是,在上述密文计算过程中会出现进位情况,下面用解密算法m=(cmod p)mod 2验证密文计算是正确的,举例而言,
例1:解密密文c1-c2计算结果:(228,229,230)=(010)=2;
例2:解密密文c1-c2计算结果:(229,230,230)=(100)=4;
例3:解密密文c1-c2计算结果:(229,230,229)=(101)=5;
(3-3)对于密文乘法运算,首先根据密文组合c1和c2中元素的个数n(在本实施方式中n=3)创建一个n*(2n-1)的矩阵,该矩阵的第一行从右至左的元素分别为:c1中最右侧元素与c2中最右侧元素的乘积、c1中右侧倒数第二个元素与c2中最右侧元素的乘积、…c1中左侧第一个元素与c2中最右侧元素的乘积;该矩阵的第二行从右至左的元素分别为:1个0、c1中最右侧元素与c2中右侧倒数第二个元素的乘积、c1中右侧倒数第二个元素与c2中右侧倒数第二个元素的乘积、…c1中左侧第一个元素与c2中右侧倒数第二个元素的乘积;…该矩阵的第n行从右至左的元素分别为:(n-1)个0,c1中最右侧元素与c2中左侧第一个元素的乘积、c1中右侧倒数第二个元素与c2中左侧第一个元素的乘积、…c1中左侧第一个元素与c2中左侧第一个元素的乘积。
然后,将构建的矩阵的每列进行求和,从而得到一个新的行向量,取该行向量作为密文乘法运算的结果。举例而言,
例1:针对上述示例而言,首先将c1(114,113,114)和c2(113,114,114)相乘,并根据以上规则构建一个3行5列的矩阵如下:
然后将该矩阵的每一列求和,从而得到以下行向量:
(12882 25765 38770 25878 12996)
最后,取该行向量作为密文乘法运算的结果,即c1*c2=(12882,25765,38770,25878,12996)。
例2:针对上述示例而言,首先将c1(114,114,114)和c2(113,114,114)相乘,并根据以上规则构建一个3行5列的矩阵如下:
然后将该矩阵的每一列求和,从而得到以下行向量:
(12883 25879 38875 25992 12996)
最后,取该行向量作为密文乘法运算的结果,即c1*c2=(12883,25879,38875,25992,12996)。
例3:针对上述示例而言,首先将c1(114,114,114)和c2(113,114,113)相乘,并根据以上规则构建一个3行5列的矩阵如下:
然后将该矩阵的每一列求和,从而得到以下行向量:
(12882 25878 38760 25878 12882)
最后,取该行向量作为密文乘法运算的结果,即c1*c2=(12882,25878,38760,25878,12882)。
应该注意的是,在上述密文计算过程中会出现进位情况,下面用解密算法m=(cmod p)mod 2验证密文计算是正确的,举例而言,
例1:解密密文c1*c2计算结果:
(12882,25765,38770,25878,12996)=(01111)=15;
例2:解密密文c1*c2计算结果:
(12883,25879,38875,25992,12996)=(10101)=21;
例3:解密密文c1*c2计算结果:
(12882,25878,38760,25878,12882)=(01110)=14;
(3-4)对于密文除法运算,其包括以下子步骤:
(3-4-1)创建空的除法运算结果的存储格式,该存储格式的总长度符合IEEE754标准,为32位、64位或80位,且包括符号位、整数位和小数位,并根据该存储格式对二进制位明文进行扩展;
需要注意的是,在存储格式中,第一位是符号位,其取值等于0或1,用于分别表示密文的正负数;整数位的长度也同时符合IEEE754标准,并表示为L;那么剩下的小数位长度就是(存储格式的总长度-L),具体如以下格式所示:
使用该存储格式的目的在于,分别计算出除法运算的商的整数部分和小数部分,其中,商的整数部分等于xL*20+xL-1*21+…+x1*2L-1,其中x表示整数部分中的密文值;
商的小数部分等于:
y1*2-1+y2*2-2+…+y存储格式的总长度-L*2存储格式的总长度-L
其中y表示小数部分中的密文值。
举例而言,为了简单表示和方便描述起见,以存储格式长度8位为例进行说明:从左至右第1位为符号位,第2~4位为整数位,第5~8位为小数位。并将步骤(1)中得到的二进制位明文进行扩展,扩展后的明文长度为8位,扩展位均用数字0进行填充,举例而言,
例1:步骤(1)中的二进制位明文101被扩展为00000101,二进制位明文011被扩展为00000011;
例2:步骤(1)中的二进制位明文111被扩展为00000111,二进制位明文011被扩展为00000011;
例3:步骤(1)中的二进制位明文111被扩展为00000111,二进制位明文010被扩展为00000010。
(3-4-2)根据步骤(2)的算法对扩展后的二进制位明文进行加密运算,将加密运算结果进行组合,从而得到对应的密文分别作为被除数和除数;举例而言,
例1:上述扩展后的明文00000101和00000011,经过本过程的运算,分别被变为了(113,113,113,113,113,114,113,114)(00000101)和(113,113,113,113,113,113,114,114)(00000011);
例2:上述扩展后的明文00000111和00000011,经过本过程的运算,分别被变为了(113,113,113,113,113,114,114,114)(00000111)和(113,113,113,113,113,113,114,114)(00000011);
例3:上述扩展后的明文00000111和00000010,经过本过程的运算,分别被变为了(113,113,113,113,113,114,114,114)(00000111)和(113,113,113,113,113,113,114,113)(00000010);
(3-4-3)用步骤(2)中得到的1的密文乘以作为除数的密文,举例而言,
例1:密文114乘以(113,113,113,113,113,113,114,114)(00000011),即得到密文组合(12882,12882,12882,12882,12882,12882,12996,12996)(00000011),并对其乘积求密文补码,求密文补码的步骤与上述步骤(3-2)完全相同,乘积求补码后得到密文组合为(12883,12883,12883,12883,12883,12883,12997,12998)(11111101);例2的密文补码与例1相同。
例3:密文114乘以(113,113,113,113,113,113,114,113)(00000010),即得到密文组合(12882,12882,12882,12882,12882,12882,12996,12882)(00000010),并对其乘积求密文补码,求密文补码的步骤与上述步骤(3-2)完全相同,乘积求补码后得到密文组合为(12883,12883,12883,12883,12883,12883,12998,12884)(11111110)。
(3-4-4)设置小数位计数器count的初始值等于(存储格式的长度-L);
(3-4-5)判断被除数的密文是否大于除数的密文,如果大于转(3-4-6)步骤,否则转(3-4-7)步骤;
具体而言,判断被除数的密文是否大于除数的密文,是从左到右以遍历的方式判断被除数中的每一位是否大于或等于除数中的对应位,如果一旦有其中一位小于除数中的对应位,则表示被除数的密文不是大于除数的密文;
(3-4-6)将被除数的密文与步骤(3-4-3)中的除数密文的补码做加法,得到余数作为新的被除数,并且在整数位用1的密文做加法,即得到的是密文商,并返回步骤(3-4-5);
举例而言,
例1:第1次循环计算得到的余数密文=被除数密文+除数密文补码=(113,113,113,113,113,114,113,114)(00000101)+(12883,12883,12883,12883,12883,12883,12997,12998)(11111101)=(12997,12997,12997,12997,12997,12997,13111,13112)(00000010),应注意本过程求和中会有进位的情况,获得余数密文后转(3-4-5)步骤;
例2:第1次循环计算得到的余数密文=被除数密文+除数密文补码=(113,113,113,113,113,114,114,114)(00000111)+(12883,12883,12883,12883,12883,12883,12997,12998)(11111101)=(12997,12997,12997,12997,12997,12998,13112,13112)(00000100),应注意本过程求和中会有进位的情况,获得余数密文后转(3-4-5)步骤;
第2次循环计算得到的余数密文=(12997,12997,12997,12997,12997,12998,13112,13112)(00000100)+(12883,12883,12883,12883,12883,12883,12997,12998)(11111101)=(25881,25881,25881,25881,25881,25881,26109,26110)(00000001)
例3:第1次循环计算得到的余数密文=被除数密文+除数密文补码=(113,113,113,113,113,114,114,114)(00000111)+(12883,12883,12883,12883,12883,12883,12998,12884)(11111110)=(12997,12997,12997,12997,12997,12998,13112,12998)(00000101),应注意本过程求和中会有进位的情况,获得余数密文后转(3-4-5)步骤;
第2次循环计算得到的余数密文=(12997,12997,12997,12997,12997,12998,13112,12998)(00000101)+(12883,12883,12883,12883,12883,12883,12998,12884)(11111110)=(25881,25881,25881,25881,25881,25881,26110,25882)(00000011)
第3次循环计算得到的余数密文=(25881,25881,25881,25881,25881,25881,26110,25882)(00000011)+(12883,12883,12883,12883,12883,12883,12998,12884)(11111110)=(38765,38765,38763,38765,38765,38765,39108,38766)(00000001)
(3-4-7)判断余数的密文是否全部为零或小数位计数器count大于存储格式的总长度,如果不是,则转步骤(3-4-8);如果是,则密文除法运算结束,并转入步骤(3-4-13),以获得密文除法运算结果;
(3-4-8)在余数密文的最右边添加0的密文,得到新的余数密文,并转步骤(3-4-9),举例而言,
例1:第1次循环得到新的余数密文为(12997,12997,12997,12997,12997,13111,13112,113)(00000100);
例2:第1次循环得到新的余数密文为(25881,25881,25881,25881,25881,26109,26110,113)(000000010);
第2次循环得到新的余数密文为(25881,25881,25881,25881,26109,26110,113,113)(0000000100);
例3:第1次循环得到新的余数密文为(38765,38763,38765,38765,38765,39108,38766,113)(00000010);
(3-4-9)判断步骤(3-4-8)得到新的余数密文是否大于除数的密文,如果是大于则转步骤(3-4-10)步骤,否则转(3-4-11);
(3-4-10)将新的余数密文与除数的密文补码做加法,以再次获得新的余数密文,同时将第count个小数位的值设置为1对应的密文值;例如:1的密文是114,然后转步骤(3-4-12);举例而言,
例1:更新的余数密文=新的余数密文+除数密文补码=(12997,12997,12997,12997,12997,13111,13112,113)(00000100)+(12883,12883,12883,12883,12883,12883,12997,12998)(11111101)=(25881,25881,25881,25881,25881,25994,26109,13111)(00000001);
例2:更新的余数密文=新的余数密文+除数密文补码=(25881,25881,25881,25881,26109,26110,113,113)(0000000100)+(12883,12883,12883,12883,12883,12883,12997,12998)(11111101)=(38765,38765,38765,38765,38993,38993,13110,13111)(00000001);
例3:更新的余数密文=新的余数密文+除数密文补码=(38765,38763,38765,38765,38765,39108,38766,113)(00000010)+(12883,12883,12883,12883,12883,12883,12998,12884)(11111110)=(51649,51649,51649,51649,51649,51992,51764,12997)(00000000);
(3-4-11)将第count个小数位的值设置为0对应的密文值,例如:0的密文是113,然后转步骤(3-4-12);
(3-4-12)将小数位计数器count加1,然后返回步骤(3-4-7);
(3-4-13)根据得到的密文值获取商的整数部分和小数部分,并按步骤(3-4-1)中的存储格式进行存放,举例而言,
例1:整数部分执行(3-4-6)步骤记下一次密文114,由于此例是一个无法整除的数,所以直到小数位记满,即小数位计数器count大于存储格式的总长度使得密文除法运算结束,即小数部分在循环过程中执行(3-4-10)、(3-4-11)、(3-4-10)、(3-4-11)四个步骤,分别在小数位的第5位到第8位记下的密文为114,113,114和113,即商的密文值为(113,113,113,114,114,113,114,113)。
例2:整数部分循环执行(3-4-6)步骤2次,第1次在整数位的第4位记下一次密文值114,第2次在整数位的第4位加密文值114,所以整数位的密文值为113、114、228,由于此例是一个无法整除的数,所以直到小数位记满,即小数位计数器count大于存储格式的总长度使得密文除法运算结束,即小数部分在循环过程中执行(3-4-10)、(3-4-11)、(3-4-10)、(3-4-11)四个步骤,分别在小数位的第5位到第8位记下的密文值为113,114,113和114,即商的密文值(113,113,114,228,113,114,113,114)。
例3:整数部分循环执行(3-4-6)步骤3次,第1次在整数位的第4位记下一次密文值114,第2次在整数位的第4位加密文值114,所以整数位的密文值为113、114、228,第3次在整数位的第4位加密文值114,所以整数位的密文值为113、114、342,由于此例是一个可以整除的数,所以余数的密文全部为零使得密文除法运算结束,即小数部分在循环过程中执行(3-4-10)步骤,并且在小数位的第5位记下的密文值114,即商的密文值为(113,113,114,342,114,113,113,113)。
以上密文计算过程得到的结果与明文计算的结果一致,举例而言,
例1:
c1/c2=5/3=(113,113,113,113,113,114,113,114)(00000101)/(113,113,113,113,113,113,114,114)(00000011)=(113,113,113,114,114,113,114,113)。
例2:
c1/c2=7/3=(113,113,113,113,113,114,114,114)(00000111)/(113,113,113,113,113,113,114,114)(00000011)=(113,113,114,228,113,114,113,114)。
例3:
c1/c2=7/2=(113,113,113,113,113,114,114,114)(00000111)/(113,113,113,113,113,113,114,114)(00000010)=(113,113,114,342,114,113,113,113)。
应该注意的是,在上述密文计算过程中会出现进位情况,下面用解密算法m=(cmod p)mod 2验证密文计算是正确的,举例而言,
例1:解密密文c1/c2计算结果:(113,113,113,114,114,113,114,113)=(00011010)=1.625
说明:由于此例的浮点数的小数位只有4位,所以结果为1.625;如果把小数位用7位来表示,那么结果是1.664063,这说明小数位的精度是与保留小数位的长度相关。
例2:解密密文c1/c2计算结果:(113,113,114,228,113,114,113,114)=(00100101)=2.3125
说明:由于此例的浮点数的小数位只有4位,所以结果为2.3125;如果把小数位用8位来表示,那么结果是2.332031,这说明小数位的精度是与保留小数位的长度相关。
例3:解密密文c1/c2计算结果:(113,113,114,342,114,113,113,113)=(00111000)=3.5
以上进行密文计算的结果表明,两个明文加密后,进行密文的加、减、乘、除的密文计算结果解密后与明文的计算结果相同。
(4)利用模除法对步骤(3)获取的密文运算结果进行解密,以获得解密后的明文;具体而言,是采用以下公式:(c mod p)mod s。
对于上述步骤中提到的所有示例而言,由于在加、减、乘、除加密运算的末尾,都对随后的解密过程和结果进行了详细描述,因此在本步骤中不单独对其再进行赘述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于模运算的全同态加密处理方法,其特征在于,包括以下步骤:
(1)获取加密过程中任意数值数据类型的明文,并根据加密需要将其转换为对应的进制位明文;
(2)对步骤(1)中得到的进制位明文中的各个数进行加密运算,将加密运算得到的密文进行组合,从而得到对应的密文组合;加密运算是采用以下公式:
c=(m+s*r+p*r)mod x0
其中c表示密文,m表示明文中的进制位,s表示加密中所采用的进制,r表示随机数,p为加密密钥,x0是一个中间变量,其等于加密密钥p与另一个加密密钥q的乘积,所述密钥均不对外公开;
(3)采用基于模加密的密文原码、密文反码和密文补码对步骤(2)得到的密文组合进行密文运算;
(4)利用模除法对步骤(3)获取的密文运算结果进行解密,以获得解密后的明文。
2.根据权利要求1所述的基于模运算的全同态加密处理方法,其特征在于,步骤(4)具体是采用以下公式:(c mod p)mod s。
3.根据权利要求2所述的基于模运算的全同态加密处理方法,其特征在于,步骤(3)中,对于密文加法运算,直接将两个密文组合进行对位求和运算。
4.根据权利要求2所述的基于模运算的全同态加密处理方法,其特征在于,步骤(3)中,对于密文减法运算,首先获取减数的密文组合的反码,然后根据该反码获取对应的补码,最后将该补码与被减数的密文组合的原码进行对位求和运算。
5.根据权利要求2所述的基于模运算的全同态加密处理方法,其特征在于,步骤(3)中,对于密文乘法运算,首先根据密文组合c1和c2中元素的个数n创建一个n*(2n-1)的矩阵,该矩阵的第一行从右至左的元素分别为:c1中最右侧元素与c2中最右侧元素的乘积、c1中右侧倒数第二个元素与c2中最右侧元素的乘积、以此类推、c1中左侧第一个元素与c2中最右侧元素的乘积;该矩阵的第二行从右至左的元素分别为:1个0、c1中最右侧元素与c2中右侧倒数第二个元素的乘积、c1中右侧倒数第二个元素与c2中右侧倒数第二个元素的乘积、以此类推、c1中左侧第一个元素与c2中右侧倒数第二个元素的乘积;…该矩阵的第n行从右至左的元素分别为:(n-1)个0,c1中最右侧元素与c2中左侧第一个元素的乘积、c1中右侧倒数第二个元素与c2中左侧第一个元素的乘积、以此类推、c1中左侧第一个元素与c2中左侧第一个元素的乘积,然后,将构建的矩阵的每列进行求和,从而得到一个新的行向量,取该行向量作为密文乘法运算的结果,最后,取该行向量作为密文乘法运算的结果。
6.根据权利要求2所述的基于模运算的全同态加密处理方法,其特征在于,步骤(3)中,对于密文除法运算,其包括以下子步骤:
(3-4-1)创建空的除法运算结果的存储格式,该存储格式的总长度为32位、64位或80位,且包括符号位、整数位和小数位,并根据该存储格式对二进制位明文进行扩展;
(3-4-2)根据步骤(2)的算法对扩展后的二进制位明文进行加密运算,将加密运算结果进行组合,从而得到对应的密文分别作为被除数和除数;
(3-4-3)用步骤(2)中得到的1的密文乘以作为除数的密文;
(3-4-4)设置小数位计数器count的初始值等于存储格式的长度-L,其中L是存储格式中整数位的长度;
(3-4-5)判断被除数的密文是否大于除数的密文,如果大于转步骤(3-4-6),否则转步骤(3-4-7);
(3-4-6)将被除数的密文与步骤(3-4-3)中的除数密文的补码做加法,得到余数作为新的被除数,并且在整数位用1的密文做加法,即得到的是密文商,并返回步骤(3-4-5);
(3-4-7)判断余数的密文是否全部为零或小数位计数器count大于存储格式的总长度,如果不是,则转步骤(3-4-8);如果是,则密文除法运算结束,并转入步骤(3-4-13),以获得密文除法运算结果;
(3-4-8)在余数密文的最右边添加0的密文,得到新的余数密文,并转步骤(3-4-9);
(3-4-9)判断步骤(3-4-8)得到新的余数密文是否大于除数的密文,如果是大于则转步骤(3-4-10)步骤,否则转(3-4-11);
(3-4-10)将新的余数密文与除数的密文补码做加法,以再次获得新的余数密文,同时将第count个小数位的值设置为1对应的密文值;
(3-4-11)将第count个小数位的值设置为0对应的密文值,然后转步骤(3-4-12);
(3-4-12)将小数位计数器count加1,然后返回步骤(3-4-7);
(3-4-13)根据得到的密文值获取商的整数部分和小数部分,并按步骤(3-4-1)中的存储格式进行存放。
7.根据权利要求6所述的基于模运算的全同态加密处理方法,其特征在于,
商的整数部分等于:
xL*20+xL-1*21+…+x1*2L-1,其中x表示整数部分中的密文值;
商的小数部分等于:
y1*2-1+y2*2-2+…+y存储格式的总长度-L*2存储格式的总长度-L,其中y表示小数部分中的密文值。
8.根据权利要求6所述的基于模运算的全同态加密处理方法,其特征在于,步骤(3-4-5)具体为,判断被除数的密文是否大于除数的密文,是从左到右以遍历的方式判断被除数中的每一位是否大于或等于除数中的对应位,如果一旦有其中一位小于除数中的对应位,则表示被除数的密文不是大于除数的密文。
9.根据权利要求3至6中任意一项所述的基于模运算的全同态加密处理方法,其特征在于,在密文加法运算中,首先将密文的每一位根据解密公式(密文mod p)mod s求出对应的明文,并将得到的明文按位进行求和相加,接下来判断每个位求和后得到的值是否等于进制,如果等于,则表示出现了进位,此时返回进位值,并返回密文位求和的结果,并且在该密文位的上一位求和过程中加1;如果不等于,则表示没有出现进位,此时返回进位值以及密文位求和的结果,并且在该密文位的上一位求和过程中加0。
CN201611145127.8A 2016-12-13 2016-12-13 一种基于模运算的全同态加密处理方法 Active CN106452723B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201611145127.8A CN106452723B (zh) 2016-12-13 2016-12-13 一种基于模运算的全同态加密处理方法
JP2019514179A JP6682041B2 (ja) 2016-12-13 2017-11-23 モジュロ演算に基づく完全準同型暗号化の処理方法
PCT/CN2017/112482 WO2018107949A1 (zh) 2016-12-13 2017-11-23 一种基于模运算的全同态加密处理方法
EP17880833.3A EP3531611A4 (en) 2016-12-13 2017-11-23 MODULE-BASED COMPLETE HOMOMORPH ENCRYPTION PROCESSING METHOD
US16/106,029 US10868666B2 (en) 2016-12-13 2018-08-21 Fully homomorphic encryption method based on modular operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611145127.8A CN106452723B (zh) 2016-12-13 2016-12-13 一种基于模运算的全同态加密处理方法

Publications (2)

Publication Number Publication Date
CN106452723A CN106452723A (zh) 2017-02-22
CN106452723B true CN106452723B (zh) 2017-05-31

Family

ID=58217890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611145127.8A Active CN106452723B (zh) 2016-12-13 2016-12-13 一种基于模运算的全同态加密处理方法

Country Status (5)

Country Link
US (1) US10868666B2 (zh)
EP (1) EP3531611A4 (zh)
JP (1) JP6682041B2 (zh)
CN (1) CN106452723B (zh)
WO (1) WO2018107949A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023204534A1 (en) * 2022-04-20 2023-10-26 Crypto Lab Inc. Apparatus for bootstrap processing homomorphic encrypted message and method thereof

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106452723B (zh) * 2016-12-13 2017-05-31 深圳市全同态科技有限公司 一种基于模运算的全同态加密处理方法
CN106953722B (zh) * 2017-05-09 2017-11-07 深圳市全同态科技有限公司 一种全同态加密的密文查询方法和系统
CN107294697B (zh) * 2017-07-21 2019-08-13 西安电子科技大学 基于明文相似矩阵的对称全同态加密方法
CN107977193A (zh) * 2017-12-12 2018-05-01 金陵科技学院 一种基于 b/s 架构下的高精度计算方法
CN110335586B (zh) * 2018-03-31 2021-07-02 深圳市掌网科技股份有限公司 一种信息转换方法及系统
CN109190414B (zh) * 2018-08-09 2021-06-15 宁波大学 一种用于乘法器的全同态混淆方法
CN110019075B (zh) * 2018-08-09 2021-08-10 苏州科达科技股份有限公司 日志加密方法与解密方法及装置
CN109190395B (zh) * 2018-08-21 2020-09-04 浙江大数据交易中心有限公司 一种基于数据变换的全同态加密方法及系统
CN109412786B (zh) * 2018-11-14 2022-09-06 沈阳航空航天大学 一种基于同态加密的整数密文算术运算方法
CN109921907B (zh) * 2019-02-12 2023-11-07 国网安徽省电力有限公司电力科学研究院 一种身份认证识别算法和基于该算法的系统
CN113098675B (zh) * 2019-12-23 2023-04-18 郑珂威 基于多项式完全同态的二进制数据加密系统及方法
KR20210147645A (ko) 2020-05-29 2021-12-07 삼성전자주식회사 동형 암호화 장치 및 그것의 암호문 연산 방법
CN112231718B (zh) * 2020-07-13 2024-03-12 广发银行股份有限公司 数据加密处理方法、装置、计算机设备和存储介质
KR20220009643A (ko) 2020-07-16 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 클라이언트 및 서버, 및 이의 동작 방법
CN111885079B (zh) * 2020-07-31 2022-04-12 支付宝(杭州)信息技术有限公司 保护数据隐私的多方联合处理数据的方法及装置
CN112543091B (zh) * 2020-10-26 2022-10-14 中国人民武装警察部队工程大学 密文长度固定的多密钥全同态加密方法
CN112367157B (zh) * 2020-10-31 2023-05-12 深圳供电局有限公司 一种物联网环境加密方法及装置
EP4050471A1 (en) * 2021-02-26 2022-08-31 Zama SAS Encrypted scalar multiplication
CN113032848B (zh) * 2021-05-20 2021-08-10 华控清交信息科技(北京)有限公司 一种数据处理方法和用于数据处理的芯片
CN113343262B (zh) * 2021-06-22 2022-10-11 海光信息技术股份有限公司 同态加密装置、同态加密芯片及同态加密方法
JP7187074B1 (ja) * 2021-10-26 2022-12-12 株式会社アクセル 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP7187076B1 (ja) * 2021-11-26 2022-12-12 株式会社アクセル 暗号処理装置、暗号処理方法、及び暗号処理プログラム
US11856083B2 (en) 2022-01-06 2023-12-26 International Business Machines Corporation Analysis and debugging of fully-homomorphic encryption
CN115314600B (zh) * 2022-10-12 2023-01-24 山东沃尔美肥业有限公司 一种化肥生产监控数据管理方法
CN115801224B (zh) * 2023-01-16 2023-04-28 北京隐算科技有限公司 一种云计算环境中支持浮点数运算的全同态加密方法
CN116743349B (zh) * 2023-08-14 2023-10-13 数据空间研究院 一种Paillier密文求和方法、系统、装置和存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69840959D1 (de) * 1997-12-17 2009-08-20 Nippon Telegraph & Telephone Verschlüsselungs- und Entschlüsselungsvorrichtungen für Kryptosysteme mit öffentlichem Schlüssel und Aufzeichnungsmedium mit darauf gespeicherten zugehörigen Verarbeitungsprogrammen.
US6785388B1 (en) * 1998-09-16 2004-08-31 Murata Kikai Kabushiki Kaisha Encryption method, decryption method, encryption/decryption method, cryptographic communications system, and computer usable medium
US7532720B2 (en) * 2003-10-15 2009-05-12 Microsoft Corporation Utilizing SIMD instructions within montgomery multiplication
US20050157872A1 (en) * 2003-11-12 2005-07-21 Takatoshi Ono RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus
US7769168B2 (en) * 2005-03-31 2010-08-03 Microsoft Corporation Locally interative encryption generating compliant ciphertext for general syntax specifications
US20060251248A1 (en) * 2005-05-03 2006-11-09 Jesse Lipson Public key cryptographic methods and systems with preprocessing
JP5297918B2 (ja) * 2009-07-03 2013-09-25 日本電信電話株式会社 暗号化数値二進変換システム及び方法とプログラム
US9946810B1 (en) * 2010-04-21 2018-04-17 Stan Trepetin Mathematical method for performing homomorphic operations
US9442980B1 (en) * 2010-04-21 2016-09-13 Stan Trepetin Mathematical method for performing homomorphic operations
EP2778951B1 (en) * 2011-11-11 2017-04-26 NEC Corporation Database encryption system, method and program
EP2873186B1 (en) * 2012-07-26 2018-03-07 NDS Limited Method and system for homomorphicly randomizing an input
CN103259643B (zh) * 2012-08-14 2016-06-15 苏州大学 一种矩阵全同态加密方法
JP6083234B2 (ja) * 2012-12-27 2017-02-22 富士通株式会社 暗号処理装置
CN105099653A (zh) * 2014-05-20 2015-11-25 华为技术有限公司 分布式数据处理方法、装置及系统
CN105323209A (zh) * 2014-06-05 2016-02-10 江苏博智软件科技有限公司 全同态加密和多重数字水印技术的云数据安全保护方法
JP2016012111A (ja) * 2014-06-30 2016-01-21 富士通株式会社 暗号処理方法、暗号処理装置、および暗号処理プログラム
CN104283669B (zh) * 2014-08-25 2017-07-18 东南大学 全同态加密中重加密深度优化方法
JP2016131335A (ja) * 2015-01-14 2016-07-21 富士通株式会社 情報処理方法、情報処理プログラムおよび情報処理装置
US10061715B2 (en) * 2015-06-02 2018-08-28 Hong Kong Baptist University Structure-preserving subgraph queries
US10581812B2 (en) * 2015-12-01 2020-03-03 Duality Technologies, Inc. Device, system and method for fast and secure proxy re-encryption
US9973342B2 (en) * 2016-06-16 2018-05-15 International Business Machines Corporation Authentication via group signatures
US10129029B2 (en) * 2016-06-16 2018-11-13 International Business Machines Corporation Proofs of plaintext knowledge and group signatures incorporating same
US10833841B2 (en) * 2016-07-13 2020-11-10 Sap Se Leakage-free order-preserving encryption
CN106452723B (zh) * 2016-12-13 2017-05-31 深圳市全同态科技有限公司 一种基于模运算的全同态加密处理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023204534A1 (en) * 2022-04-20 2023-10-26 Crypto Lab Inc. Apparatus for bootstrap processing homomorphic encrypted message and method thereof

Also Published As

Publication number Publication date
EP3531611A4 (en) 2019-11-27
EP3531611A1 (en) 2019-08-28
US20180359079A1 (en) 2018-12-13
CN106452723A (zh) 2017-02-22
JP2019517684A (ja) 2019-06-24
JP6682041B2 (ja) 2020-04-15
WO2018107949A1 (zh) 2018-06-21
US10868666B2 (en) 2020-12-15

Similar Documents

Publication Publication Date Title
CN106452723B (zh) 一种基于模运算的全同态加密处理方法
Carlet Boolean functions for cryptography and coding theory
CN106953722B (zh) 一种全同态加密的密文查询方法和系统
US11159305B2 (en) Homomorphic data decryption method and apparatus for implementing privacy protection
Tsuzuku Finite groups and finite geometries
Galbraith Mathematics of public key cryptography
JP5256342B2 (ja) 情報生成装置、方法、プログラム及びその記録媒体
CN106850221A (zh) 信息加密、解密方法及装置
CN104937537A (zh) 包括与标量或求幂的乘法运算的密码学方法
Coron et al. High order masking of look-up tables with common shares
CN101483517A (zh) 加速对特性2椭圆曲线密码系统的计算的方法
CN107004084A (zh) 用于加密操作的乘法掩码
JP2020515093A (ja) 符号化加算のための計算デバイス
Fouotsa et al. SimS: a simplification of SiGamal
CN105099693B (zh) 一种传输方法及传输装置
CN111831979A (zh) 一种数据隐私保护协议的分析方法及装置
Arslan et al. Integer representations of classical Weyl groups
Babenko et al. Euclidean division method for the homomorphic scheme ckks
Opalikhina Applied aspects of number theory
Sheikh et al. Circuits and systems for security and privacy
Cascudo et al. A note on secure multiparty computation via higher residue symbols
Zakasovskaya et al. Construction of asymmetric cryptosystems using finite non-commutative algebraic groups
Varghese et al. A Novel Method for Mapping Plaintext Characters to Elliptic Curve Affine points over Prime Field and Pseudorandom Number Generation
Liu et al. PDPHE: Personal Data Protection for Trans-Border Transmission Based on Homomorphic Encryption
Nilsson et al. Decryption Failure Attacks on Post-Quantum Cryptography

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220512

Address after: 518000 b1201, block B, innovation Plaza, No. 2007, Pingshan Avenue, Pingshan street, Pingshan District, Shenzhen, Guangdong

Patentee after: SHENZHEN FHE TECHNOLOGIES Co.,Ltd.

Address before: 518042 368d, floor 3, floor 1-6, building 301, chegongmiao plant, chegongmiao Industrial Zone, Futian District, Shenzhen, Guangdong Province

Patentee before: SHENZHEN FHE TECHNOLOGIES Co.,Ltd.

Patentee before: Hu Heping