CN115134068A - 进行同态加密的终端装置及终端装置的加密方法 - Google Patents

进行同态加密的终端装置及终端装置的加密方法 Download PDF

Info

Publication number
CN115134068A
CN115134068A CN202210769462.4A CN202210769462A CN115134068A CN 115134068 A CN115134068 A CN 115134068A CN 202210769462 A CN202210769462 A CN 202210769462A CN 115134068 A CN115134068 A CN 115134068A
Authority
CN
China
Prior art keywords
ciphertext
homomorphic
message
ring
polynomial
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.)
Pending
Application number
CN202210769462.4A
Other languages
English (en)
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.)
Encryption Laboratory Co
Original Assignee
Encryption Laboratory Co
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
Priority claimed from KR1020170173608A external-priority patent/KR101965628B1/ko
Priority claimed from KR1020180129749A external-priority patent/KR102040106B1/ko
Application filed by Encryption Laboratory Co filed Critical Encryption Laboratory Co
Publication of CN115134068A publication Critical patent/CN115134068A/zh
Pending legal-status Critical Current

Links

Images

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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Telephonic Communication Services (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种进行同态加密的终端装置及终端装置的加密方法,所述加密方法包括步骤:设定一环,所述环是包括在其中定义加法及乘法的多个元素的一集合,所述环包括一明文空间,所述明文空间是来自对加法及乘法封闭的多个集合中的一实数;从所述环计算一密钥;计算与所述被计算出的密钥相应的一公钥;及将所述公钥应用于一消息并且生成一同态密文。据此,能够以一密文状态被计算的一同态密文可以被有效地生成。

Description

进行同态加密的终端装置及终端装置的加密方法
本申请是申请号为201880008003.6,名称为“进行同态加密的终端装置、处理密文的服务器装置及其方法”的发明专利申请的分案申请,该母案申请日为2018年12月17日。
技术领域
本公开涉及进行同态加密的一终端装置、处理所述密文的一服务器装置、其方法,以及将一环的一明文空间调整为一实数空间并且以被改进的计算速度生成一同态密文的一同态加密方法。
背景技术
电子及通信技术的进展已经支持在各种装置之间收发数据并且利用所述被收发的数据的各种服务。例如:在所述云计算服务中,一用户将他或她的个人信息存储在一服务器中并且通过使用他或她的已被有源地使用(actively used)的终端装置来利用所述服务器的信息。
在这样的一环境中,使用安全(security)技术来防止数据泄漏是必不可少的。因此,所述服务器存储一被加密的数据(encrypted data)。在这种情况下,每当所述服务器搜索被存储在其中的数据或者基于所述数据进行一系列操作时,将所述被加密的数据解密是必要的,因此浪费资源及时间。
另外,当一第三方的一黑客攻击(a hacking of a third party)在所述服务器临时进行解密用于计算的同时被进行时,存在的一问题是个人信息可以被轻易地泄露给所述第三方。
为了解决这个问题,一同态加密方法已经被研究。根据一同态加密,即使一计算以一密文本身被进行而不将被加密的信息解密,对于获得与通过进行一明文的计算然后将所述被计算的明文加密而被获得的一值相同的结果来说是可能的。因此,可以在所述密文未被解密的状态下进行各种计算。
然而,当根据一相关技术的同态加密方法进行一整数计算时,存在的一问题是所述明文的比特数(number of bits)呈指数增加并且用于所述计算所需的时间显着地增加。
同时,所述相关技术的同态加密方法具有的一缺点是一明文的一虚数部分在一计算处理过程中增加。例如:由于现有技术的同态加密方法在一复数空间中进行一消息的同态加密,即使在所述实数空间进行一消息的同态加密时,也将一误差加到所述虚数部分。如果重复一同态加密的一计算,则所述虚数空间的一误差逐渐增加,并且当所述虚数空间的一误差被显着增加时,此后相应于一实际消息的一实数部分的一消息可能在一同态乘法计算中被破坏。
因此,需要一种方法即使在一密文的状态下也能够提高一计算速度并且防止所述明文的所述虚数部分在所述计算处理过程中因被增加而被破坏。
所述以上信息仅被呈现作为背景信息,以帮助理解本公开。以至于任何上述内容是否可能适用关于本公开的现有技术没有决定被做出也没有主张被作出。
发明内容
技术问题:
本公开的多个方面是用以至少解决如上所述的问题及/或缺点,并且用以至少提供如下所述的优点。据此,本公开的一方面是用以提供一种通过将一缩放因子反映在一消息中来生成一同态密文并且然后加密所述消息的终端装置、一种计算所述密文的服务器装置及其方法。另外,本公开的一方面是用以提供一种通过将一环的一明文空间调整为一实数空间并且以被改进的计算速度生成一同态加密来进行一实数明文的同态加密的方法。
技术方案:
根据本公开的一方面,提供一种终端装置的加密方法。所述加密方法包括步骤:设定一缩放因子,并且将所述缩放因子反映在一待加密的消息中,并且使用一公钥进行加密以生成一同态密文。所述同态加密是基于正在被进行的一解密且处于一结果值被复原的一形式,所述结果值通过将一误差值加到通过将所述缩放因子反映在所述消息中获得的一值而被获得。
所述同态密文的一模数可以被设定为一个缩放因子的一取幂。
所述同态密文的一模数可以被设定为通过将多个不同的缩放因子彼此相乘而被获得的一值。所述多个不同的缩放因子可以被设定为多个值,所述多个值在一相似范围内彼此不相交。
所述生成所述同态密文可以包括从一离散高斯分布或在相对于所述离散高斯分布的一短统计距离内的一分布计算一误差,并且将所述消息乘以所述缩放因子并且将所述误差加到所述被乘的消息,并且使用所述公钥进行加密以生成所述同态密文。
所述加密方法还可以包括步骤:基于存在多个消息矢量的所述消息,将所述多个消息矢量转换为一多项式,所述多项式处于能够被平行加密的一形式。所述生成所述同态密文的步骤可以包括将所述多项式乘以所述缩放因子,并且使用所述公钥进行同态加密。
根据本公开的另一方面,提供一种服务器装置的密文处理方法。所述密文处理方法包括步骤:接收多个同态密文,所述多个同态密文被单独加密;进行关于所述多个同态密文的一预定计算,以及消除来自通过所述计算而被计算的一结果密文的一噪声域并且提取一有效域的数据。所述多个同态密文中的每个可以是通过将一消息乘以一缩放因子并且进行所述被乘的消息的加密而被生成的一密文。所述噪声域可以被决定以相应于所述缩放因子的一大小。
所述密文处理方法还可以包括步骤:基于所述多个同态密文中的每个是通过打包多个消息矢量而被生成的一密文,平行地进行多个消息矢量的一计算处理过程,所述多个消息矢量被包括在所述多个同态密文中的每个。
所述密文处理方法还可以包括步骤:旋转被包括在多个同态密文中的多个消息矢量中的每个的一顺序。
所述密文处理方法还可以包括步骤:基于作为一复数的所述消息,对于所述多个同态密文进行一共轭计算。
根据本公开的另一方面,提供一种终端装置。所述终端装置包括:一内存,被配置为存储一缩放因子及一公钥;一处理器,被配置为将所述缩放因子反映在一待被加密的消息中,然后使用所述公钥进行加密,并且生成一同态密文;及一通信器,被配置为将所述同态密文发送到一外部装置。所述同态密文是基于正在被进行的一解密且处于一结果值被复原的一形式,所述结果值通过将一误差值加到通过将所述缩放因子反映在所述消息中获得的一值而被获得。
所述终端装置还可以包括一输入接口,所述输入接口被配置为接收所述消息及所述缩放因子的输入。所述处理器可以被配置为将通过所述输入接口被输入的所述消息及所述缩放因子存储在所述内存中。
所述处理器可以被配置为将所述同态密文的一模数设定为所述缩放因子的一取幂,并且将所述同态密文的所述被设定的模数存储在所述内存中。
所述处理器可以被配置为将所述同态密文的一模数设定为通过将多个不同的缩放因子彼此相乘而被获得的一值,并且将所述同态密文的所述被设定的模数存储在所述内存中。所述多个不同的缩放因子可以被设定为在一相似范围内彼此不相交的多个值。
所述处理器可以被配置为计算一误差,所述误差来自一离散高斯分布或在相对于所述离散高斯分布的一短统计距离内的一分布,并且将所述消息乘以所述缩放因子并且将所述误差加到所述被乘的消息,然后使用所述公钥进行加密。
所述处理器可以被配置为基于存在多个消息矢量的所述消息,将所述多个消息矢量转换为处于能够被平行加密的一形式的一多项式,并且将所述多项式乘以所述缩放因子,然后使用所述公钥进行同态加密。
根据本公开的另一方面,提供一种终端装置的加密方法。所述加密方法包括设定一环(ring),所述环是包括在其中定义加法及乘法的多个元素的一集合,所述环包括一明文空间,所述明文空间是来自对加法及乘法封闭的多个集合中的一实数;从所述环计算一密钥;计算与所述被计算出的密钥相应的一公钥;及将所述公钥应用于一消息并且生成一同态密文。
所述环可以满足以下等式:
a(X)=a(X-1)其中a(X)∈R,X-1:=-Xn-1
在此,a(X)是与所述环相应的一多项式,所述R是包括一实空间(real space)的一环,所述实空间为一复数。
所述同态密文可以具有相对于一加法或乘法计算为o(n log n)的一复杂度。
所述加密方法还可包括步骤:从所述环计算一第一随机多项式;提取一误差;及调制在所述第一随机多项式及所述密钥中的所述误差并且计算一第二随机多项式。所述计算所述公钥的步骤可以包括使用所述第一随机多项式及第二随机多项式计算所述公钥。
所述生成所述同态密文的步骤可以包括将所述消息计算作为相应于所述环的一多项式,及将所述公钥应用于所述被计算的多项式并且生成一同态密文。
所述加密方法还可以包括步骤:从关于所述被生成的同态密文及一被预生成的同态密文的加法或乘法中进行至少一个计算。所述进行所述计算的步骤可以包括:进行关于所述被生成的同态密文及所述被预生成的同态密文中的每个的一第一函数处理过程;在进行所述第一函数处理过程的所述同态密文之间进行一计算;及进行一第二函数处理过程,所述第二函数处理过程是关于进行所述计算的一同态密文的所述第一函数的一反函数。
所述第一函数可以是一数值理论变换(NTT)函数。
所述同态密文是基于正在被进行的一解密且处于一结果值被复原的一形式,所述结果值通过将一误差值加到所述消息而被获得。
根据本公开的另一方面,提供一种终端装置。所述终端装置包括:一内存,被配置为存储一消息;及一处理器,被配置为设定一环,所述环是包括在其中定义加法及乘法的多个元素的一集合,所述环包括一明文空间,所述明文空间是来自对加法及乘法封闭的多个集合中的一实数,以从所述环计算一密钥,以计算与所述被计算出的密钥相应的一公钥;及将所述公钥应用于一消息并且生成一同态密文。
所述环可以满足以下等式:
a(X)=a(X-1)其中a(X)∈R,X-1:=-Xn-1
在此,a(X)是与所述环相应的一多项式,所述R包括一实空间的一环,所述实空间为一复数。
所述同态密文可以具有相对于加法或乘法的o(n log n)的一复杂度。
所述处理器可以被配置为从所述环计算一第一随机多项式,以提取一误差,以调制在所述第一随机多项式及所述密钥中的所述误差,并且计算一第二随机多项式,及使用所述第一随机多项式及第二随机多项式计算所述公钥。
所述处理器可以被配置为将所述消息计算作为与所述环相应的一多项式,并且将所述公钥应用于所述被计算的多项式并且生成一同态密文。
所述处理器被配置为进行关于所述被生成的同态密文及所述被预生成的同态密文中的每个的一第一函数处理过程,从进行所述第一函数处理过程的所述同态密文之间的加法或乘法中进行至少一个计算;及进行一第二函数处理过程,所述第二函数处理过程是关于进行所述计算的一同态密文的所述第一函数的一反函数。
所述第一函数可以是一数值理论变换(NTT)函数。
有益效果:
根据如上所述的本公开的各种实施例,包括一有效域的一同态密文可以被生成,因此在最小化消息丢失的同时减少计算时间及负担是可能的。
另外,由于通过将一环的一明文空间调整为一实数空间来生成一同态密文,因此可能的是在所述计算处理过程中初始地阻止所述明文的所述虚数部分的增加,并且支持相当于具备与先前的HEAAN相同的稳定性、计算速度、内存(密文及金钥(key)大小)的平行实数计算量的两倍。
通过以下结合所述附图公开本公开的各种实施例的详细描述,本公开的其他方面、优点及显着特征对于本领域技术人员将变得显而易见。
附图说明
图1是以图解说明根据本公开的一实施例的一网络系统的一结构的一图;
图2是以图解说明根据本公开的一实施例的一终端装置及一服务器装置的一配置的一框图;
图3是根据本公开的一实施例的一终端装置的一加密方法的一流程图;
图4是根据本发明实施例的一服务器装置的一密文处理方法的一流程图;
图5是以图解说明一服务器装置的一密文处理方法的各种示例的一图。
图6是以图解说明一服务器装置的一密文处理方法的各种示例的一图。
图7是以图解说明一服务器装置的一密文处理方法的各种示例的一图。
图8是以图解说明根据本公开的一实施例的一网络系统的一密文处理方法的一图;
图9是以图解说明根据本公开的一实施例的一网络系统的一结构的一图;
图10是以图解说明根据本公开的实施例的一终端装置的一简要配置的一框图;
图11是以图解说明根据本公开的一实施例的终端装置的一详细配置的一框图;
图12是以图解说明生成一公钥(public key)及一密钥(secret key)的一处理过程的一图。
图13是以图解说明生成一计算密钥的一动作的一图。
图14是以图解说明生成及解密一近似加密密文(approximate encryptionciphertext)的一动作的一图。
图15是以图解说明一同态密文的一加法计算的一图。
图16是以图解说明一同态密文的一乘法计算的一图。
图17是根据本公开的一实施例的一加密方法的一流程图;及
图18是以图解说明根据本公开的一实施例的一网络系统的一密文处理方法的一图。
在整个附图中,相同的附图标记被用于表示相同的元件。
具体实施方式
在下文中,将参考附图更详细地描述实施例。在本公开中进行的所述信息(数据)传输处理过程可以根据需要包括加密/解密(encryption/decryption)。在本公开及权利要求中,描述所述发送信息(数据)的处理过程的表述应被解释为包括加密/解密,即使没有被单独提及。在本公开中“从A发送(传送)到B(transmit(transfer)from A to B)”或“由A从B接收(receive from B by A)”形式的表述包括在其间发送(传送)或接收另一媒介,并且不仅仅表示从A到B的直接传输(传送)或由A从B直接。
在本公开的描述中,每个步骤的顺序应该被理解为是非限制性的,除非前一步骤必须在后续步骤之前在逻辑上及时间上被进行。换句话说,除了上述例外情况之外,即使在前一步骤中描述的处理过程之前进行下一步骤中描述的处理过程,本发明的性质也不受影响,权利的范围应该被定义为不管步骤顺序。另外,“A或B”在本文中被定义为不仅意指选择性地指向A或B,还包括A及B两者。此外,应被理解的是所述术语“包括(comprise)”旨在进一步包括除了被列出而被包括的所述元件之外还包括其他元件。
仅有必需用于解释本发明的必要构件在本公开中被描述,并且与本发明的本质无关的构件未被提及。本公开不应该被解释为仅包括所述被引用的元件的一排他性意义(exclusive sense),而是应该以一非排他性意义解释为包括其他元件。
在此说明书中,所述术语“值(value)”被定义为不仅包括一标量值(scalarvalue)而且包括一矢量(vector)的一概念。
稍后将被描述的本公开的每个步骤的所述数学计算及计算可以通过一公知的编码方法的一计算机操作被实现,用于进行根据本公开被设计的所述计算(computation)或所述计算(calculation)及/或编码(coding)。
以下描述的具体公式在各种可能的替代方案中被示例性地描述,并且本公开的所述范围不应被解释为限于本公开中提及的公式。
为了便于描述,以下符号将在本公开中被使用。
a←D:根据分布(D)选择元素(a)
s1,s2∈R:s1及s2中的每个是一集合R的一元素。
Mod(q):由一元素q进行一模块化计算(modular computation)。
Figure BDA0003723428600000091
将一内部值四舍五入(round up)。
在下文中,将参考附图详细描述本公开的各种实施例。
图1是以图解说明根据本公开的一实施例的一网络系统的一配置的一图。参考图1,多个终端装置100-1至100-n,一第一服务器装置(server device)200及一第二服务器装置300可以经由一网络(network)10被彼此连接。所述网络10可以被实现为有线/无线通信、一广播通信网络、一光通信网络及各种类型的一云网络,并且各自的装置可能以与Wi-Fi、蓝牙、近场通信(NFC)相同的方式被连接,而没有任何额外的媒介。
在图1中,以图解说明的是多个终端装置100-1至100-n。然而,多个终端装置必须被使用,但是一个装置可以被使用。例如:所述多个终端装置100-1至100-n可以被实现为各种形式的一装置,诸如一移动电话、一平板个人计算机(PC)、一游戏机、一台式PC、一膝上型PC、一家庭服务器(home server)及一信息亭(kiosk),并且还可以被实现为对于应用一物联网(IoT)技术的一家用电器。
所述用户可以通过他或她使用的多个终端装置输入各种信息。所述输入信息可以被存储在所述多个终端装置100-1至100-n本身中,但是可以为了存储容量、安全性等原因而被发送到一外部装置并且被存储。在图1中,所述第一服务器装置200可以起到(play)存储所述信息的一作用(a role),并且所述第二服务器装置300可以起到利用被存储在所述第一服务器装置200中的一些或全部信息的一作用。
所述多个各自的终端装置100-1至100-n可以进行所述输入信息的同态加密,并且将所述同态密文发送到所述第一服务器装置200。所述第一服务器装置200可以存储所述被获得的同态密文而不进行解密。
所述第二服务器装置300可以对所述第一服务器装置200请求进行一同态密文的一特定处理的一结果。所述第一服务器装置200可以根据所述请求进行一特定计算,然后将所述结果发送给所述第二服务器装置300。例如:在从两个终端装置100-1及100-2获得的密文ct1及ct2被存储在所述第一服务器装置200中的情况下,所述第二服务器装置300可以请求通过将从所述两个终端装置100-1及100-2提供给所述第一服务器装置200的信息相加而被获得的一值。所述第一服务器装置200可以进行一计算以将两个密文相加,然后将所述结果值(ct1+ct2)发送给所述第二服务器装置300。
所述多个各自的终端装置可以包括在进行同态加密的处理过程中被计算的一加密噪声(encryption noise),即是,一误差(error)。例如:在所述多个各自的终端装置100-1至100-n中被生成的一同态密文可以被生成的一方式是在使用一密钥进行解密时,复原包括一消息及一误差值的一结果值。
例如:在多个终端装置100-1至100-n中被生成的一同态密文可以被生成的一方式是在使用一密钥进行解密时满足以下属性。
[数学公式1]
Dec(ct,sk)=<ct,sk>=ΔM+e(mod q)
在此,所述<与>标示一通常的内积(a usual inner product)、ct标示一密文(aciphertext)、sk标示一密钥(a secret key)、所述M标示一明文消息(a plaintextmessage)、所述e标示一加密误差值(an encryption error value)、所述Δ标示一缩放因子(a scaling factor),及所述q标示一密文的一模数(a modulus of a ciphertext)。必要的是,所述q必须大于所述ΔM,所述ΔM是通过将一消息乘以一缩放因子而被获得的一结果值。如果一误差值e与所述ΔM相比是足够小的,则作为所述密文的一解密值的ΔM+e可以是能够在重要数值计算中以相同精度替换所述原始消息的一值。从所述被解密的数据中,所述误差可以被布置在一最低位(LSB)侧,并且所述ΔM可以被布置在一第二最低位侧。
如果所述消息的一大小是太小或太大的,则所述大小可以使用一缩放因子被调整。在一缩放因子被使用时,处于一实数形式的一消息以及处于一整数形式的一消息可以被加密,因此可以显着地增加可用性。另外,通过使用所述缩放因子调整所述消息的一大小,可以调整在进行所述计算之后在所述密文中被呈现的消息的一域的一大小,即,一有效域(valid domain)的一大小。
在一个实施例中,一密文模数(ciphertext modulus)q可以用各种形式被设定及被使用。例如:一密文的一模数可以被设定为q=ΔL,这是一缩放因子的一取幂。如果Δ是2,则可以将它设定为诸如q=210的一值。
作为另一示例,一密文模数可以被设定为通过乘以多个不同的缩放因子而被获得的一值。所述多个各自的因子可以被设定为多个相似范围内的多个值,即是,多个相似尺寸的多个值。例如:这可以被设定使得q=q1 q2 q3、...、qx,其中q1 q2 q3、...、qx中的每个具有与所述缩放因子Δ相似的大小,并且被设定为彼此处于一不相交的关系的多个值。在以这种方式设定一缩放因子时,整个计算可以根据中国剩余定理(Chinese RemainderTheorem)(CRT)被划分为多个模数计算(a plurality of modulus computations),因此计算负担可以被减少。另外,在使用类似尺寸的因子时,当在稍后将被描述的所述多个步骤中进行一舍入处理过程(a rounding process)时,可以获得与前一示例中的所述结果值几乎相同的结果。
如上所述,在所述多个各自的终端装置100-1至100-n中被生成的所述密文可以由所述第一服务器装置200处理,然后以一密文的形式被发送到所述第二服务器装置300。所述第二服务器装置300可以使用一密钥来解密所述被获得的密文。由于一同态加密处理已经被进行,因此所述解密数据可以是一值,诸如解密所述消息本身并且进行所述被解密的消息的一计算处理过程而被获得的一结果。结果,对于防止在所述中间处理过程中泄漏给第三方的风险是可能的。
在图1的所述实施例中,被用于进行加密的一公钥可以由所述多个各自的终端装置生成,或者可以在进行解密的所述第二服务器装置300中被生成,然后被分发给所述多个各自的终端装置。
一Ring-LWE方法可以被用在所述金钥生成处理过程(key generation process)。当假设所述第二服务器装置300生成所述金钥时,所述第二服务器装置300可以设定各种参数及环(various parameters and rings)。例如:可以设定各种参数,诸如多个明文消息比特的一长度、所述公钥及密钥的一大小等。
所述环可以被表述为如下所示的数学公式。
[数学公式2]
Figure BDA0003723428600000131
所述环指的是具备一预定系数的一组多项式(a set of polynomials with apredetermined coefficient)。例如:所述环意指的是具备一系数Zq的一组n阶多项式(aset ofn-th polynomials)。在所述数学公式2中,f(x)标示一n阶多项式。例如:如果n是Φ(N),则f(x)标示一n阶分圆多项式(an n-th cyclotomic polynomial)。(F(x))标示由f(x)生成的Zq[x]的一理想值。一欧拉函数(Euler totient function),Φ(N),标示与N不相交且小于N的多个自然数的所述数量。当ΦN(x)被定义为一n阶分圆多项式时,一环可以被表述为在如下所示的数学公式。
[数学公式3]
Figure BDA0003723428600000132
然后,所述第二服务器装置300可以从所述环计算一密钥(sk)。
[数学公式4]
sk←(1,s(x)),s(x)∈R
所述s(x)标示以一小的系数(a small coefficient)随机生成的一多项式(polynomial)。
所述第二服务器装置300可以从所述环计算一第一随机多项式(a(x))。所述第一随机多项式可以被表述如下。
[数学公式5]
a(x)<-R
另外,所述第二服务器装置300可以从一离散高斯分布或对其的一短统计距离内的一分布提取一误差。一误差可以被表述为如下所示的所述数学公式。
[数学公式6]
Figure BDA0003723428600000141
当一误差被计算时,所述第二服务器装置300可以用所述第一随机多项式及所述密钥调制所述误差,并且计算一第二随机多项式。所述第二随机多项式可以被表述如下。
[数学公式7]
b(x)=-a(x)s(x)+e(x)(mod q)
最后,所述公钥(pk)可以被设定如下所示,从而包括所述第一随机多项式及所述第二随机多项式。
[数学公式8]
pk=(b(x),a(x))
所述第二服务器装置300可以将所述被生成的公钥发送到所述被各自的终端装置100-1到100-n。所述多个各自的终端装置100-1至100-n可以存储所述被获得的公钥,然后使用所述被存储的公钥以进行加密。
在上述示例中,描述的是所述第二服务器装置300生成一公钥及一密钥。然而,在另一示例中,所述多个各自的终端装置100-1至100-n或另一装置可以生成一公钥或一密钥中的至少一个,然后与另一装置共享它。另外,被描述如上的所述金钥生成方法仅是示例,并且且不限于此。一公钥及一密钥可以用不同方式被生成。
图2是以图解说明根据本公开的一实施例的一终端装置100及一服务器装置200的一配置的一框图。
参考图2,所述终端装置100可以包括一内存(memory)110、一处理器(processor)120及一通信器(communicator)130。
所述内存110被配置为存储一操作系统(O/S)、操作所述终端装置100所需的各种软件及数据。所述内存110可以是各种形式,诸如RAM、ROM、闪存(flash memory)、HDD、外部的内存(external memory)、存储卡(memory card)等,并且不限于任何形式。
所述内存110可以存储一公钥、一缩放因子(scaling factor)等。
所述处理器120是用于执行被存储在所述内存110中的一程序并且进行各种计算操作的一元件。
所述通信器130是用于进行与外部装置的通信的一配置(configuration)。所述通信器130可以被实现为不仅支持无线通信诸如Wi-Fi、Zigbee、蓝牙及NFC,还支持通过各种有线通信接口的有线通信。
所述处理器120可以将一缩放因子反映在一待被加密的消息中,然后使用一公钥加密所述消息并且生成一同态密文。所述处理器120可以控制所述通信器130,使得所述被生成的同态密文被发送到一外部装置。
所述同态密文被生成,以满足如上所述的数学公式1中的一属性(property)。例如:所述处理器120可以将一待被加密的消息M乘以一缩放因子Δ,并且计算一ΔM,所述ΔM是一整数或一整数系数的一多项式。
然后,一多项式v可以被随机地决定。所述处理器120可以从一小的分布(例如:一离散高斯分布或与其类似的一分布)计算所述v。所述处理器120可以从一小的误差分布(例如:一离散高斯分布或与其类似的一分布)获得一误差e0及e1
所述处理器120可以生成一公钥pk=(b(x),a(x)),并且使用如下所示的所述数学公式生成一密文。
[数学公式9]
Ctxt=(v·b(x)+Δ·M+c0,v·a(x)+e1)∈R×R
一待被加密的消息可以从一外部来源被接收,或者可以从在所述终端装置100中直接提供的一输入装置或从被连接到所述终端装置100的一输入装置被输入。另外,一缩放因子可以由一用户直接输入,或者可以通过另一装置被提供。例如:在所述终端装置100包括一触摸屏或一键盘的情况下,所述处理器120可以将由所述用户通过所述触摸屏或键盘输入的数据存储在所述内存110中,然后加密所述被存储的数据。所述被生成的同态密文可以在被解密时被复原为一结果值,所述结果值为将一误差加到将一缩放因子反映在所述消息中而被获得的一值。所述缩放因子可以直接使用提前输入的一值并且设定。
根据多个实施例,如上所述的密文的所述模数q可以被不同地设定。例如:所述处理器120可以用一缩放因子(scaling factor)Δ的一取幂(exponentiation)是q=ΔL的形式设定所述密文模数,所述处理器120可将所述密文模数设定为通过将多个不同缩放因子相乘而被获得的一值。所述处理器120可以将所述被设定的密文模数存储在所述内存110中。如上所述,所述多个各自的因子可以在一相似范围内处于一彼此不相交关系。
所述处理器120可以使用一误差,用于一公钥的加密。一误差可以根据一离散高斯分布或在对其的一短统计距离内的一分布被计算。例如:处于如上所示的数学公式6中的一形式的一误差可以被计算。当一消息被输入时,所述处理器120可以将一误差加到通过将所述消息乘以所述缩放因子而被获得的一值,然后使用一公钥进行加密。在这种情况下,在所述密文被解密时获得的一误差值可以被获得而与在进行加密时被添加的一初始误差不同。
替代地,加密可以在所述消息被乘以所述缩放因子的一状态下立即使用所述公钥被进行。在这种情况下,在所述加密处理过程中被获得的一误差可以被加到通过将所述消息乘以所述缩放因子而被获得的一结果值。
所述处理器120可以生成一段长度的密文以相应于所述缩放因子的一大小。
同时,根据一实施例,打包(packing)可以被进行。当一打包被使用在所述同态加密中时,将多个消息加密为单个密文是可能的。在这种情况下,当在所述多个各自的密文之间的计算在所述第一服务器装置200中被进行时,结果是,所述多个消息的计算可以被平行处理,因此计算负担被显着减少。
在所述消息被实现为多个消息向量的情况下,所述处理器120可以将所述多个消息向量转换为一多项式,所述多项式处于能够被平行加密的一形式,然后将一缩放因子乘以所述多项式并且使用所述公钥进行同态加密。因此,可以生成通过打包所述多个消息矢量而被生成的一密文。
例如:所述处理器120可以利用一n阶分圆多项式(n-th cyclotomic polynomial)ΦN(x)在一复数
Figure BDA0003723428600000171
内具有一不同数量n=φ(N)的多个根
Figure BDA0003723428600000172
(原生的统一性N次方根,primitive N-th roots of unity)的事实。通过采用复数(complex numbers)的概念,同时进行多个消息的同态加密是可能的,这将在后面被描述。
然后,可以修改一规范嵌入函数(a canonical embedding function)并且可以计算一打包函数(a packing function)(σ)。所述规范嵌入函数是将一多项式
Figure BDA0003723428600000173
相应于(n/2)个根ζ1,...,ζn/2的一对(a pair)
Figure BDA0003723428600000174
的值而不是来自ΦN(x)的所述多个根
Figure BDA0003723428600000175
中的一复数共轭关系(complexconjugate relationship)的一函数。所述函数是同态(homomorphism)的事实可以由本领域技术人员轻易地验证。
所述规范嵌入函数被表示为一矩阵(C)是如下所示的。
[数学公式10]
Figure BDA0003723428600000181
当一多项式M(x)被表示为多个系数的一列向量(a column vector ofcoefficients),M=(M0,...,Mn-1)时,所述多项式M(x)可以与所述多项式σ(M)=(M(ζ1),...,M(ζn/2))的一打包函数具有C·M=σ(M)的一关系,即是,如下所示的一关系。
[数学公式11]
Figure BDA0003723428600000182
如上所述,在计算一规范嵌入函数(canonical embedding function)的状态下,当输入多个(例如:n/2)个消息矢量
Figure BDA0003723428600000183
时,所述处理器120可以使用上述规范嵌入函数将消息矢量转换为一多项式。
[数学公式12]
M(x)=σ-1(m)
以数学公式12中的方式转换的多项式M(x)满足如M(ζi)=mi的一关系。
处理器120可以将缩放因子添加到以上述方式转换的多项式,然后使用公钥进行同态加密。例如:可以使用具有误差的一环学习(LWE)来进行同态加密,LWE是同态加密方法中的一种。
特定密文可以以如下所示的形式表示。
[数学公式13]
Ctxt=(v·b(x)+Δ·M+e0,v·a(x)+e1)∈R×R
如上所述,由所述终端装置100生成的同态密文可以被提供给所述第一服务器装置200。第一服务器装置200可以存储从终端装置100接收的同态密文,并且在之后的计算处理过程中使用所述被存储的同态密文。所述第一服务器装置200可以进行的一计算处理过程不仅关于从多个不同终端装置接收的多个同态密文,而且还关于从一个终端装置100接收的多个同态密文。
所述第一服务器装置200可以被实现为包括一内存(memory)210、一处理器(processor)220及一通信器(communicator)230。
所述通信器230可以从所述终端装置100接收各种同态密文。所述各自的同态密文意指在不同的终端装置或一个终端装置中被单独加密的数据。
所述处理器220可以将所述被接收的同态密文存储在所述内存210中。图2以图解说明所述内存210。然而,所述第一服务器装置200还可以包括用于存储大容量数据的一附加存储器(additional storage),并且可以被分离地连接到一外部存储装置(externalstorage device)并且将所述各自的同态密文存储在所述外部存储装置中。
所述处理器220可以进行关于多个同态密文的一预设计算(presetcomputation)。待被进行的一种计算可以由所述第一服务器装置200的一管理器(manger)直接进行,并且可以被请求自所述第二服务器装置300。
例如:计算可以被设定为一规范计算(canonical computation),诸如乘法、除法、加法及减法,但是不限于此。例如:在一加密消息是一复数的情况下,可以进行一共轭计算(conjugate computation),或者可以进行诸如统计及排序的一计算。
在所述多个同态密文中的每个是通过打包多个消息矢量而被生成的一密文的情况下,所述处理器220可以平行地进行关于被包括在所述多个密文中的每个中的多个多项式的一密文的一计算处理过程。在这种情况下,多个密文的一计算顺序(computationorder)可以被旋转,或者可以被随机地混合并且进行一计算。所述第二服务器装置200的具体计算操作将再次被详细描述如下。
在图2中,以图解说明所述终端装置100及所述第一服务器装置200中的每个包括一通信器(communicator)、一内存(memory)及一处理器(processor)。然而,所述示例不限于此。也就是说,根据每个装置的所述类型及使用环境,可以进一步包括各种元件,诸如一输入装置(input means)、一显示器(display)及一总线(bus)。例如:所述终端装置100还可以包括一输入接口(input interface)(未示出),被配置为接收一待被发送的消息或一缩放因子的输入。所述处理器120可以将经由所述输入接口被输入的一消息或一缩放因子存储在所述内存110中。另外,所述处理器120可以使用所述被输入的缩放因子以上述的各种方式设定一密文的模数,然后将所述被设定的模数存储在所述内存110中。
图3是根据本公开的一实施例的一终端装置的一加密方法的一流程图。
参考图3,在操作S310处,所述终端装置100可以设定一缩放因子(scalingfactor)。用于设定缩放因子的方法可以被不同方式实现,如上所述。
所述终端装置100可以存储所述被设定的缩放因子。在操作S320处,当生成一待被加密的消息时,所述终端装置100可以将所述缩放因子反映在所述消息中,然后使用一公钥进行同态加密。所述公钥可以由所述终端装置100直接生成,或者可以被提供自一外部装置(external device)。
图4是根据本公开的一实施例的一服务器装置的一密文处理方法的一流程图。如图1中所示,一密文处理过程在所述第一服务器装置中被进行,因此由所述第一服务器装置进行的一方法被描述。
参考图4,在操作S410处,所述第一服务器装置200可以接收多个同态密文。所述各自的同态密文意指通过在应用一缩放因子的一状态下使用一公钥进行同态加密而被生成的数据。
在操作S420处,当一计算请求被输入自一外部装置或一管理器时,在操作S430处,所述第一服务器装置200可以进行关于多个同态密文的所述被请求计算。当所述计算被完成时,所述第一服务器装置200可以从计算结果数据中检测一有效域的数据。所述第一服务器装置200可以进行所述计算结果数据的一舍入处理过程(rounding process),并且检测有效域的数据。所述舍入处理过程意指将处于一加密状态的一消息四舍五入(rounding-off),并且可以不同于所称的重新缩放(rescaling)。例如:所述第一服务器装置300可以将所述密文的每个分量乘以一缩放因子的一倒数(reciprocal)Δ-1,并且四舍五入所述结果,并且消除一噪声域(noise domain)。所述噪声域可以决定以相应于所述缩放因子的一大小。结果是,可以检测到排除来自所述噪声域的一有效域的一消息。由于所述舍入处理过程处于一加密状态被进行,因此进一步发生一误差。但是,所述误差小到足以被忽略。
图5是被提供用以具体说明图4的一密文处理方法的一模仿图(mimeticdiagram)。
例如:在操作S510处,当请求关于一第一同态密文51及一第二同态密文52的一乘法计算时,所述第一服务器装置200可以进行乘法,处于一加密状态并且生成一计算密文53。所述被获得的计算密文53可以包括反映一缩放因子的一消息部分(Δ2M1M2)及一误差数据(emult)。在所述乘法处理过程中增加所述误差数据的一大小,但是如稍后将描述的,所述消息部分的一大小被减小,因此不会出现问题。这同样适用于加法。
然后,消息部分的大小(Δ2M1M2)可以被减小到与一有效数相应的一部分,即是,一有效域,并且可以生成一最终的计算密文(final computation ciphertext)54。如上所述,所述第二服务器装置200可以通过将所述计算密文53乘以所述缩放因子的一倒数以消除噪声域,然后四舍五入所述结果。结果是,包括有与所述有效域相相应的一数据(ΔM1M2)'+e')的一最终多个计算密文54可以被生成。通过此处理过程,一个进一步的误差被产生并且将所述误差数据(emult)被改变为e’,但是所述误差的一大小是小到足以被忽略的。
图6以图解说明在通过上述打包方法将多个消息加密为一个密文的情况下进行一计算的一方法。为了便于说明,将通过加密多个消息矢量而被生成的一密文称为一打包密文(packing ciphertext)。参考图6,一第一打包密文(ct)是通过将包括多个消息61-1到61-k的一向量加密而被生成的一密文,一第二打包密文(ct’)是通过将包括多个消息62-1至62-k的一向量加密而被生成的一密文。
当请求关于所述第一打包密文(ct)及所述第二打包密文(ct’)的一计算时,所述第一服务器装置200可以通过使用上述实施例的方法进行关于两个密文的一计算。因此,可以进行单指令多数据(single instruction multiple data)(SIMD)计算,在其中通过单个密文计算可以进行多个数据的平行处理过程。
参考图6,所述第一打包密文(ct)的一第一消息分量(first message component)61-1可以被乘以所述第二打包密文(ct’)的一第一消息构件62-1。同时,可以进行第二消息分量61-2及62-2的乘法。结果是,一最终的打包密文(ctmult)可以被理解为通过加密多个矢量63-1至63-k而被生成的一密文,所述密文包括通过将位于相同位置的消息分量相乘而被获得的多个值。
图7是用于解释当进行一SIMD计算时用于改变某些同态密文的位置并且对它们进行处理的一方法的一图。参考图7,一新的第二打包密文(ct’)可以使用所述第一打包密文(ct)被生成。所述第一打包密文(ct)可以被移位(shifted),使得所述第二打包密文的一第一分量与所述第一打包密文的一第二消息分量匹配。同时,所述第二打包密文的一第二分量可以等于所述第一打包密文的一第三消息分量。结果,所述第二打包密文是一打包密文,对于所述打包密文来说,通过移动所述第一打包密文的所有消息的多个位置而被生成的一新的消息矢量被加密。在本说明书中,如上所述的移动密文的一位置的一操作将被称为一旋转处理过程(a rotation process)。
图8是用于全面地解释图1的一网络系统的一操作的一时序图。在图8中,描述从两个终端装置100-1及100-2发送一密文的情况。
首先,在操作S810处,当一第一消息被接收自一终端装置1 100-1时,在操作S8150处,所述终端装置1 100-1可以生成如上所述的一第一同态密文,在操作S820处,并且将所述被生成的第一同态密文发送到所述第一服务器装置。例如:在所述终端装置1 100-1的一用户捕获一图像的情况下,所述图像及一捕获位置可以被加密,并且在所述用户再现一音乐内容或接入(access)一特定URL的情况下,所述再现历史及所述URL访问历史可以被加密。
在操作S825、S830及S835处,一终端装置2 100-2可以用类似的方式生成一密文,并且将所述被生成的密文发送到所述第一服务器装置200。
所述第一服务器装置200可以在被加密时存储所述被接收的密文。在这种状态下,在操作S840处,当所述第二服务器装置300请求一特定计算时,在操作S845处,所述第一服务器装置200可以处于所述被加密状态进行一计算,在操作S850处,并且将已经进行所述计算的所述密文发送到所述第二服务器装置。所述第二服务器装置300可以解密所述被接收的密文,并且检测所述消息。
例如:当所述第二服务器装置300使用一密钥为sk=(1,s)对通过进行如数学公式9中的加密而生成的一密文解密时,所述结果可以被表述为如下所示的数学公式。
[数学公式14]
<Ctxt,sk>=(v·b(x)+△·M+e0)+s(x)(v·a(x)+e1)
=v(b(x)+a(x)s(x))+△·△+e0+s(x)·e1
=△·M+(v·e+e0+s(x)·e1)
=△·M+esmall
结果是,所述被解密的数据包括通过将一小的尺寸的一误差esmall加到通过将所述缩放因子乘以所述消息被获得的一值而获得的一值,并且所述误差可以被布置在所述LSB侧,并且所述ΔM可以是被布置在与所述误差相邻的一位置。
例如:当假设一第一消息是1.23时、一第二消息是3.45并且一缩放因子是Δ=103、ΔM1+e1≒1230及ΔM2+e2≒3450时。当在所述第一服务器装置200中进行一乘法计算时,所述数据可以是Δ2M1M2+etotal≒4243500。当所述结果值被乘以Δ-1然后对其进行一舍入处理过程时,获得4243。所述第二服务器装置200可以通过解密获得此结果值。
所述第二服务器装置300可以输出一被解密的消息,在操作S860处。例如:在所述终端装置1100-1及所述终端装置2100-2已经分别处于将一图像发送到所述第一服务器装置200的状态下,所述第二服务器装置300可以输出由所述多个各自的装置100-1及100-2在一次捕获的照片。
在上述实施例中,被示出并且描述的是,在密文之间的一计算在所述第一服务器装置200中被进行,并且一噪声域从所述密文中被消除,然后,将所述密文发送到所述第二服务器装置300。然而,所述示例不限于此。例如:如果所述第二服务器装置300知道关于所述缩放因子的信息,则所述第二服务器装置300可以直接消除所述噪声域并且检测一有效域,然后继续所述解密。
同时,如上所述的加密方法及密文处理方法可以适用于一实数明文(real numberplaintext)。
图9是以图解说明根据本公开的一实施例的一网络系统的一配置的一图。
参考图9,所述网络系统可以包括多个终端装置100-1至100-n、一第一服务器装置200及一第二服务器装置300,并且所述多个各自的元件可以经由一网络10被彼此连接。
所述网络10可以被实现为一有线/无线通信网络、一广播通信网络、一光通信网络及各种类型的云网络,并且所述多个各自的装置可以用与Wi-Fi、蓝牙、近场通信(NFC)相同的方式被连接,而没有任何额外的媒介。
在图9中,以图解说明的是,存在多个终端装置100-1至100-n。然而,必须使用多个终端装置,但是,可以使用一个装置。例如:所述终端装置100-1至100-n可以实现为各种形式的装置,诸如一智能电话、一平板个人计算机(PC)、一游戏机、一台式PC、一膝上型PC、一家庭服务器、及一信息亭,并且还可以被实现为应用一物联网(IoT)技术的一家用电器。
所述用户可以通过他或她使用的终端装置输入各种信息。所述被输入的信息可以被存储在所述多个终端装置100-1至100-n本身中,但是可以为了存储容量、安全性等原因而被发送到一外部装置并且被存储。在图1中,所述第一服务器装置200可以起到存储此信息的一作用,并且第二服务器装置300可以起到利用被存储在所述第一服务器装置200中的一些或全部信息的作用。
所述多个各自的终端装置100-1至100-n可以进行所述输入信息的同态加密,并且将所述同态密文发送到所述第一服务器装置200。所述第一服务器装置200可以存储所述被获得的同态密文而不进行解密。
所述第二服务器装置300可以对所述第一服务器装置200请求进行同态密文的一特定处理的一结果。所述第一服务器装置200可以根据所述请求进行一特定计算,然后将所述结果发送到所述第二服务器装置300。例如:在获得自两个终端装置100-1及100-2的密文ct1及ct2被存储在所述第一服务器装置200中的情况下,所述第二服务器装置300可以请求通过将提供自两个终端装置100-1及100-2的信息加到所述第一服务器装置200而被获得的一值。所述第一服务器装置200可以进行所述计算以将两个密文相加,然后将所述结果值(ct1+ct2)发送到所述第二服务器装置300。
所述多个各自的终端装置100-1至100-n可以包括处于进行同态加密的处理过程中被计算的一加密噪声(encryption noise),即是,一误差。例如:在所述多个各自的终端装置100-1至100-n中生成的同态密文可以用这样的方式被生成,使得在使用一密钥进行解密时,复原包括一消息及一误差值的一结果值。
例如:在终端装置100-1至100-n中生成的一同态密文可以被生成,使得在使用一密钥进行解密时满足以下属性。
[数学公式1]
Dec(ct,sk)=<ct,sk>=ΔM+e(mod q)
在此,所述<与>标示一通常的内积,所述ct标示一密文,所述sk标示一密钥,所述M标示一明文消息,所述e标示一加密误差值,所述Δ表示一缩放因子,所述q表示一密文的模数。所述q必须大于所述ΔM,所述ΔM是通过将一消息乘以一缩放因子而获得的一结果值。如果一误差值e与所述ΔM相比是足够小的,则作为所述密文的一解密值的所述ΔM+e可以是能够在重要数值计算中以相同精度替换所述原始消息的一值。从所述解密数据中,所述误差可以被布置在最低位(LSB)侧,所述ΔM可以被布置在第二最低位侧。
如果所述消息的一大小是太小或太大,则可以使用一缩放因子进行调整所述大小。当一缩放因子被使用时,以一实数形式的一消息及以一整数形式的一消息可以被加密,因此可以显着增加可用性。另外,通过使用所述缩放因子调整所述消息的一大小,在所述计算被进行之后,在所述密文中存在的消息的一域的一大小,即一有效域的一大小,可以被调整。
在一个实施例中,一密文模数(ciphertext modulus)q可以用各种形式被设定及被使用。例如:一密文的一模数可以被设定为一缩放因子的一取幂是q=ΔL。如果所述Δ是2,则可以将它设定为诸如q=210的一值。
作为另一示例,可以将一密文模数设定为彼此不相交的多个整数值。例如:可以设定为q=q1 q2 q3,...,qx,其中q1 q2 q3,...,qx中的每个具有与所述缩放因子Δ相似的大小,并且被设定为那些彼此处于不相交的关系的值。当以这种方式设定一缩放因子时,可以根据一中国剩余定理(CRT)将整个计算划分为多个模数计算,因此可以减少计算负担。使用多个不相交的整数值的一方法将被称为RNS HEAAN方法,将参考图12至图16更详细地描述所述方法。
如上所述,在各自的终端装置100-1至100-n中被生成的所述密文可以由所述第一服务器装置200处理,然后以一密文的形式被发送到所述第二服务器装置300。所述第二服务器装置300可以使用一密钥来解密所述被获得的密文。由于已经进行一同态加密处理,因此所述被解密的数据可以是诸如通过解密所述消息本身并且进行所述被解密的消息的计算处理过程而获得的一结果的一值。结果,可以防止在中间处理过程中泄漏给第三方的风险。
在图9的实施例中,被用于进行加密的一公钥(public key)可以由所述各自的终端装置生成,或者可以在进行解密的所述第二服务器装置300中被生成,然后被分发给所述各自的终端装置。在下文中,为了便于解释,将描述在所述终端装置100侧生成各种密钥。
一种Ring-LWE方法可以被用在所述金钥生成处理过程中。
所述终端装置100可以接收用于生成一金钥及设定一环的各种参数的输入。例如:可以设定各种参数,诸如明文消息比特的一长度、所述公钥及密钥的大小等。另外,所述终端装置100可以基于所述被接收的参数生成一设定参数(setting parameter),用于生成一密钥及一公钥所需。
所述环可以被表示为如下所示的数学公式。
[数学公式2]
Figure BDA0003723428600000281
在此,所述R表示一环(ring),所述Zq表示一系数,所述f(x)表示一n阶多项式。
所述环是一组预设系数的多项式,其中定义在所述多个元素之间的加法及乘法,并且是用于加法及乘法的一闭集(closed set)。所述环可以被称为一环形(annulus)。
在上面所示的数学公式2中,如果n是Φ(N),则f(x)表示一n阶分圆多项式。(F(x))表示由f(x)生成的Zq[x]的一理想值。一欧拉函数Φ(N)表示与N不相交且小于N的自然数的数量,当ΦN(x)被定义为一n阶分圆多项式时,一环可以被表示为数学中的公式如下所示。另外,当在上面被示出的多项式中使用一倒数等式(reciprocal equation)时,所述环可以被表示为数学公式15。
[数学公式3]
Figure BDA0003723428600000282
[数学公式15]
Figure BDA0003723428600000283
如上所示的所述数学公式3及15的所述环在一明文空间中具有一复数。在本公开中,为了提高关于一同态密文的一计算速度,可以仅使用如上所述的环的集合中的一明文空间是一实数的一集合。在此,一明文空间是一实数的一环将被称为一R’,其可以被表示为如下所示的数学公式。使用所述R'的一方法将被称为一种Real HEAAN方法。
[数学公式16]
Figure BDA0003723428600000291
其中X-1:=-Xn-1
当这样的环被设定时,所述终端装置100可以从所述环计算一密钥(sk)。
[数学公式17]
sk←(1,s)
在此,所述S标示被随机生成作为一小系数的一值。
另外,所述终端装置100可以从所述环计算一第一随机多项式(a)。所述第一随机多项式可以被表达如下。
[数学公式18]
Figure BDA0003723428600000292
另外,所述终端装置100可以计算一误差。例如:所述终端装置100可以从一离散高斯分布或与其的一短统计距离内的一分布中提取一误差。此误差可以被表达如下。
[数学公式19]
e←Xerr
当一误差被计算时,所述终端装置100可以用所述第一随机多项式及所述密钥调制所述误差,并且计算一第二随机多项式。所述第二随机多项式可以被表达如下。
[数学公式20]
Figure BDA0003723428600000293
最后,所述公钥(pk)可以被设定如下所示,从而包括所述第一随机多项式及所述第二随机多项式。
[数学公式21]
Figure BDA0003723428600000294
所述终端装置100可以将所述被生成的公钥发送到其他终端装置100-2至100-n及/或服务器装置200。
在如上所述的示例中,描述的是所述终端装置100生成一公钥及一密钥。然而,在另一示例中,所述服务器装置200或另一装置可以生成一公钥或一密钥中的至少一个,然后与另一装置共享它。另外,上述密钥生成方法仅是一示例,并且不限于此。一公钥及一密钥可以用不同方式被生成。
下面将参考图12更详细地描述生成一公钥及一密钥的所述操作。
图10是以图解说明根据本公开的一实施例的一终端装置的一简要配置的一框图。
参考图10,所述终端装置100可以包括一内存110及一处理器120。
所述内存110被配置为存储一操作系统(O/S)、用于操作所述终端装置100所需的各种软件及数据。所述内存110可以是各种形式,诸如RAM、ROM、闪存、HDD、外部内存、存储卡等,并且不限于任何形式。
所述内存110可以被存储一待被加密的消息。在此,所述消息可以是被所述用户利用的各种信用信息、个人信息等,并且可以是涉及在所述终端装置100中被使用的一使用历史的信息,诸如位置信息、互联网使用时间信息等。
另外,所述内存110可以存储一公钥,并且在所述终端装置100是直接生成所述公钥的一装置的情况下,存储用于生成一公钥及一密钥所需的各种参数。
另外,所述内存110可以存储在以下处理过程中被生成的一同态密文。
所述处理器120可以被配置为控制所述终端装置100中的每个构件。所述处理器130可以被实现为一个装置,诸如一CPU,也可以被实现为多个装置,诸如一时钟生成电路、一CPU、一图形处理器等。
另外,所述处理器120可以进行被存储在所述内存110中的一程序,并且生成一密钥及一公钥,用于生成一同态密文所需。为此,主要地,所述处理器120可以设定一环,所述环是一预设系数的一组多项式。在这种情况下,所述环可以满足上面所示的数学公式15或16。
另外,所述处理器120可以从所述环计算一密钥。例如:所述处理器120可以基于如下所示的数学公式从所述环计算一密钥(SK)。
另外,所述处理器120可以从所述环计算一第一随机多项式(a),并且从一离散高斯分布或与其的一短距离内的一分布中提取一误差。
另外,所述处理器120可以将一误差调制为所述第一随机多项式及所述密钥并且计算一第二随机多项式,并且最终生成一公钥(pk),所述公钥(pk)包括所述第一随机多项式及所述第二随机多项式。在所述终端装置100支持RNS HEAAN的情况下,所述处理器120可以生成分别相应于多个不相交的整数的多个公钥。
另外,所述处理器120可以生成关于一消息的一同态密文。例如:所述处理器120可以将所述先前被生成的公钥应用于所述消息,并且生成一同态密文。
在所述终端装置100支持RNS HEAAN的情况下,所述处理器120可以通过使用分别相应于所述消息中的多个不相交整数的多个公钥,以生成被表达为多个基数的一同态密文。
另外,所述处理器120可以将一待被加密的消息计算为相应于所述环的一多项式,并且将所述公钥应用于所述被获得的多项式并且生成一同态密文。一待被加密的消息可以从一外部来源被接收,或者可以从在所述终端装置100中直接提供的一输入装置或从被连接到所述终端装置100的一输入装置被输入。另外,一缩放因子可以由一用户直接输入,或者可以由另一装置提供。
根据实施例,如上所述的密文的所述模数q可以不同地被设定。例如:所述处理器120可以用一缩放因子Δ的一取幂是q=ΔL的形式设定所述密文模数。作为另一示例,所述处理器120可以利用被设定为多个不相交的整数值的一值。
另外,所述处理器120可以生成一密文长度以相应于所述缩放因子的大小。
同时,根据一实施例,打包(packing)可以被进行。当一打包被使用在所述同态加密中时,将多个消息加密为单个密文是可能的。在这种情况下,当在所述第一服务器装置200中进行各自的密文之间的计算时,结果,多个消息的计算可以被平行处理,因此计算负担被显着减少。
在所述消息被实现为多个消息向量的情况下,所述处理器120可以将多个消息向量转换为能够平行加密的一形式的一多项式,然后将一缩放因子乘以所述多项式并且使用所述公钥进行同态加密。因此,可以生成由打包多个消息矢量而被生成的一密文。
所述处理器120可以进行关于一同态密文的计算。例如:所述处理器120可以在进行所述同态密文的加密的一状态下进行计算诸如加法或乘法。例如:所述处理器120可以针对将在所述计算中被使用的所述各自的同态密文进行一第一函数处理过程,进行计算诸如已经进行所述第一函数处理过程的所述同态密文之间的相加或相乘,并且进行一第二函数处理过程,所述第二函数处理过程是关于已经被进行所述计算的所述同态密文的所述第一函数的一反函数。在此,所述第一函数可以是一数理论变换(NTT)函数。
在使用如上所述的RNS方法生成所述同态密文的情况下,所述处理器120可以对于所述被生成的同态密文中的每个基数进行加法及乘法。
同时,当所述计算被完成时,所述终端装置100可以从所述计算结果数据中检测一有效域的数据。例如:所述终端装置100可以进行所述计算结果数据的一舍入处理过程,并且检测一有效域的数据。所述舍入处理过程意谓着将处于一加密状态的一消息四舍五入(rounding-off),并且可以不同地而被称为重新缩放(rescaling)。例如:所述终端装置100可以将所述密文的每个分量乘以一缩放因子Δ-1的一倒数(reciprocal),并且将所述结果四舍五入,并且消除一噪声域(noise domain)。所述噪声域可以被决定以相应于所述缩放因子的一大小。结果,排除来自所述噪声域的一有效域的一消息可以被检测。由于所述舍入处理过程(rounding process)以一加密状态被进行,因此发生进一步的误差。但是,所述误差很小,可以被忽略。
在所述终端装置100支持RNS HEAAN的情况下,如果多个基数中的任何一个的一权重超过一阈值,则所述处理器120可以将关于在所述被生成的同态密文的所述多个基数中的每个进行一消息的一舍入处理过程,并且重新缩放所述同态密文。
另外,如果所述计算结果密文内的一近似消息的一权重超过一阈值,则所述终端装置100可以扩展所述计算结果密文的一明文空间。例如:如果在上面所示的数学公式1中的q小于M,则M+e(mod q)具有与M+e不同的值,因此不可能进行解密。因此,必须始终将q的一值保持为大于M。然而,随着计算被进行,q的一值可能被逐渐减小。所述明文空间的所述扩展意谓着将一密文(ct)改变为具备一更大模数的一密文。扩展一明文空间的一操作可以被替代地称为重启(rebooting)。当重启被进行时,所述密文可以处于可以再次进行计算的一状态。
同时,尽管以上仅示出并且描述所述终端装置100的所述简要配置,但是在实际的实现方案中可以附加地包括各种元件。这将在下面参考图11被描述。
图11是以图解说明根据本公开的一实施例的一终端装置的一详细配置的一框图。
参考图11,所述终端装置100可以包括一内存110、一处理器120、一通信器130、一显示器140及一操纵输入装置150。
由于所述内存110已经参考图10被描述,因此将省略重复的描述。另外,所述处理器120在图10中被说明。因此,为了简洁起见,将不再进一步说明如下。仅在图11中被添加的元件将被解释如下。
所述通信器130被形成为将所述终端装置100连接到一外部装置(未被示出),并且可以不仅经由一局域网(LAN)或互联网被连接,还可以经由一通用串行总线(USB)端口或一无线通信(例如:Wi-Fi 802.11a/b/g/n、近场通信(NFC)或蓝牙)端口被连接。所述通信器130可以被称为一‘收发器(transceiver)’。
所述通信器130可以从一外部装置接收一公钥,并且将在所述终端装置100中被生成的一公钥发送到所述外部装置。
另外,所述通信器130可以从一外部装置接收一消息,并且将一被生成的同态密文发送给所述外部装置。
另外,所述通信器130可以从一外部装置接收用于生成一密文所需的各种参数。在一实现方案中,可以经由稍后将被描述的所述操纵输入装置150直接从一用户接收各种参数。
所述显示器140可以显示一用户界面视窗(user interface window)以选择由所述终端装置100支持的一功能。例如:所述显示器140可以显示一用户界面视窗以选择由所述终端装置100提供的各种功能。所述显示器140可以是一监视器诸如一LCD、CRT、OLED等,并且还可以被实现为一触摸屏,所述触摸屏能够同时进行稍后将被描述的所述操作输入装置150的功能。
所述显示器140可以显示一消息,所述消息请求输入用于生成一密钥及一公钥所需的参数。另外,所述显示器140可以显示一消息,所述消息允许加密一主题(subject)以选择所述消息。在一实现方案中,所述加密主题可以由所述用户直接选择或自动选择。也就是说,即使所述用户没有直接选择所述消息,也可以自动选择需被加密的个人信息。
所述操纵输入装置150可以从所述用户接收所述终端装置100的一功能选择或关于相应功能的一控制命令的输入。例如:所述操纵输入装置150可以从所述用户接收用于生成一密钥及一公钥所需的参数的输入。另外,所述操纵输入装置150可以从所述用户接收一待被加密的消息的设定。
当从所述用户接收到生成一密钥及一公钥所需的参数时,所述处理器120可以基于所接收的参数生成一设定参数(setting parameter),并且基于所述被生成的设定参数生成一密钥及一公钥。
另外,当需要生成关于所述消息的一密文时,所述处理器120可以将所述公钥应用于所述消息,并且生成一同态密文。例如:所述处理器120可以将所述消息转换为一多项式,并且将所述公钥应用于所述多项式形式的所述被转换后的消息,并且生成一同态密文。
另外,如果需要对所述同态密文进行解密,则所述处理器120可以将所述密钥应用于所述同态密文,并且以一多项式形式生成一破译文本(deciphertext),并且以所述多项式的形式将所述破译文本解码并且生成一消息。所述被生成的消息可以包括如上面所示的数学公式1中描述的一误差。
另外,如果需要针对所述同态密文进行计算,则所述处理器120可以针对由所述用户请求的多个同态密文进行一加法或乘法计算。一具体的计算操作参考图15及图16更详细地解释如下。
如上所述,根据一实施例的所述终端装置100可以对所述消息生成一同态密文,因此即使在需要计算时也可以提高所述消息的稳定性。另外,所述被生成的同态密文包括一误差,并且可以对于需要高安全性的生物信息保持稳定的安全性。另外,根据一实施例的所述终端装置100使用一明文空间是一实数的一环,因此可以提高计算速度。也就是说,一平行实数计算可以进行两倍于使用一明文空间是一复数的一相关技术环的一情况。
在下文中,将首先描述一种Real HEAAN方法的一种算法。
在多个密文之间的一计算是在多个元素R′q之间的一加法及乘法计算,因此有必要提高在R′q方面的计算效率。在R′q方面以最率直(naive)的方式进行乘法具有o(n2)的一复杂度。
为了降低此计算复杂度,在本公开中使用一数值理论变换(NTT)方法。所述NTTm标示从Zq[X]/(Xm-1)到
Figure BDA0003723428600000361
的一场同构(field isomorphism),并且它的反函数(inversefunction)被称为INTTm
当快速傅立叶变换算法被应用时,NTTm及INTTm可能具有o(m log m)的一复杂度。
也就是说,在a(X)·b(X)要针对a(X),b(X)∈Zq[X]/(Xm-1)被计算(calculated)的情况下,当计算(computation)被进行如INTTm(NTTm(a(X))⊙NTTm(b(X))时,所述复杂度可以是o(m log m)。
将上述方法应用于一环的一方法将被描述如下。
当属于所述环的各自的元素可以满足a(X)∈R′q
Figure BDA0003723428600000362
时,一元素可以被表述为如下所示的数学公式22。
[数学公式22]
Figure BDA0003723428600000363
首先,关于与R’有关的NTTm(NTT′n/2),Φ(a(X))可以被计算并且函数Φ可以被表述为如下所示的数学公式23。
[数学公式23]
Figure BDA0003723428600000364
Figure BDA0003723428600000371
另外,关于与R’有关的INTTm(INTT′n/2),Φ-1(INTTn/2(a))可以被计算并且可以输出如数学公式24中所示的一值。
[数学公式24]
Figure BDA0003723428600000372
在此,
Figure BDA0003723428600000373
因此,上面示出的所述数学公式23及24可以被表述如下。
[数学公式25]
INTT′n/2(NTT′n/2(a(X))+NIT′n/2(b(x)))=a(X)+b(X)
INTT′n/2(NTT′n/2(a(X))⊙NTT′n/2(b(x)))=a(X)·b(X)
也就是说,与R′q有关的NTT及反NTT都可能具有o(n log n)的一复杂度。因此,在满足a(X),b(X)∈R′q的一情况下,当a(X)·b(X)要被计算时,如果进行如INTT′n/2(NTT′n/2(a(X))⊙NTT′n/2(b(x)))的计算,则可以获得o(n log n)的一复杂度。
在下文中,将参考图12至图16更详细地描述用于生成一密钥及一公钥的一算法,用于生成同态密文的一方法及在应用REAL HEAAN的情况下的一计算方法。
图12是以图解说明生成一公钥及一密钥的一处理过程的一图。
参考图12,一设置模块(setup module)71可以从一用户接收一缩放因子(scalingfactor)(Δ)、一安全参数(security parameter)(λ)及一级别参数(level parameter)(L)的输入。在此,所述缩放因子(Δ)是用于调整一消息大小的一参数,并且大于1。另外,所述安全参数(λ)是指示一撇去(skim)的所述稳定性的一索引(index),并且可以被称为一计算复杂度(computation complexity)。另外,所述级别参数是指示一深度支持计算(depthsupporting computation)的一索引。
接收如上所述的参数的输入的所述设置模块71可以设定模数、随机选择整数(n)及正数(P),并且输出一设定参数(setting parameter)诸如(n,(qi)1≤i≤L,P,Δ)。
一金钥生成模块(key generation module)72可以接收先前在设置模块71中被生成的一设定参数的输入,并且基于所述被接收的设置参数(received setup parameter)生成一密钥(secret key)及一公钥(public key)。
例如:所述金钥生成模块72可以基于s←Xkey及sk←(1,s)生成一密钥,并且基于e←Xerr计算一误差。
另外,所述金钥生成模块72可以生成如
Figure BDA0003723428600000381
的一第一随机多项式,并且生成如
Figure BDA0003723428600000382
的一第二随机多项式。另外,基于上面被生成的所述第一随机多项式及所述第二随机多项式,如数学公式21中的一公钥可以被生成。
图13是以图解说明生成一计算密钥的一操作的一图。
参考图13,所述计算模块73可以计算一值满足S1,S2∈R′、
Figure BDA0003723428600000383
及e′<-Xerr,并且计算
Figure BDA0003723428600000384
满足b′←-a′s2+e′+P·s1(mod P·qL)。因此,所述计算模块73可以输出一计算密钥诸如evk←KSGen(s2,s)。
图14是以图解说明生成及解密一近似加密密文的一操作的图。
参考图14,一编码模块74可以接收一消息及一缩放因子的输入,并且将所述缩放因子反映给所述消息并且将它转换为一多项式形式。
例如:当
Figure BDA0003723428600000391
大于1的一缩放因子被输入时,所述编码模块74可以将所述消息作为一多项式输出,如数学公式26所示。
[数学公式26]
Figure BDA0003723428600000392
在此,所述m(x)标示处于一多项式形式的一消息。
另外,一加密模块75可以处于所述多项式形式接收所述消息,并且将一公钥反映给所述被接收的消息并且生成同态密文。例如:可以使用如下所示的数学公式27生成一同态密文。
[数学公式27]
v·pk+(m+e0,e1)(mod qL)
在此,所述v标示根据Xenc被选择的一元素,所述e0及e1表示根据Xerr选择的一误差值。
一解密模块76可以接收一密文及一密钥的输入,并且解密所述密文并且输出包括误差的一消息。例如:在输入密文如
Figure BDA0003723428600000393
的情况下,所述解密模块76可以输出一消息诸如m′=C0+c1·s(mod q1)。
从所述解密模块76输出的一消息是处于一多项式形式的一消息,因此所述解码模块77可以基于从所述解密模块76输出的所述消息及所述缩放因子输出一最终消息。例如:在所述多项式消息满足m(X)∈R′的情况下,所述解密模块76可以输出一消息诸如
Figure BDA0003723428600000394
图15是以图解说明一同态密文的一加法计算的一图。
参考图15,一第一终端装置81-1可以输出一第一消息的一第一同态密文Ct1,及一第二终端装置81-2可以输出一第二消息的一第二同态密文Ct2
接收所述第一同态密文Ct1及所述第二同态密文Ct2的所述服务器装置的所述计算模块83可以对所述两个同态密文进行一加法计算。例如:在满足
Figure BDA0003723428600000401
的一情况下,所述计算模块83可以如ctadd←ct+ct′(mod q1)对两个同态密文进行一加法计算。
也就是说,可以进行两个同态密文的一第一函数处理过程,以对已经进行所述函数处理过程的所述同态密文进行一加法计算,以进行一第二函数处理过程,所述第二函数处理过程是已经进行一加法计算的所述同态密文的所述第一函数的一反函数,并且对两个密文进行一加法计算。
此后,在需要一实际值的情况下,一解密模块85可以对所述加法结果进行解密及解码,并且输出所述第一及第二消息的所述总和。
图16是以图解说明一同态密文的一乘法计算的一图。
参考图16,一第一终端装置81-1可以输出一第一消息的一第一同态密文Ct1,及一第二终端装置81-2可以输出一第二消息的一第二同态密文Ct2。接收所述第一同态密文Ct1及所述第二同态密文Ct2的所述服务器装置的所述计算模块87可以对两个同态密文进行一乘法计算。例如:在满足ct=(C0,c1),
Figure BDA0003723428600000402
的一情况下,所述计算模块87可以如
Figure BDA0003723428600000403
的所述对两个同态密文进行一加法计算。在此,令(d0,d1,d2)=(c0c′0,c0c′1+c1C′0,c1C′1)(mod q1)。
也就是说,可以进行所述两个同态密文的一第一函数处理过程,以对已经进行所述函数处理过程的所述同态密文进行一乘法计算,以进行一第二函数处理过程,所述函数处理过程是已经进行所述乘法计算的所述同态密文的所述第一函数的一反函数,并且对两个密文进行乘法计算。
另外,如果通过计算被获得的所述计算结果密文内的一近似消息的一权重超过一阈值,则一重新缩放模块88可以扩展所述计算结果密文的一明文空间。例如:所述重新缩放模块88可以更新密文如下面的数学公式28。
[数学公式28]
Figure BDA0003723428600000414
在此,I′=I-1。
此后,所述解密模块85可以对所述加法结果进行解密及解码,并且输出所述第一消息及第二消息的所述总和。
所述真正的HEAAN方法被描述如上,所述RNS HEAAN方法将被描述如下。
为了解决诸如所述中国余数定理的一方法在先前的HEAAN方法中不适用的问题,所述RNS HEAAN替换被用于
Figure BDA0003723428600000411
的一先前密文空间
Figure BDA0003723428600000412
因此,一误差位的大小可以具有大约五到十倍大的一近似计算结果,但是在所述计算速度方面存在三到十倍的性能改进。
一操作方法类似于上述的REAL HEAAN方法,因此仅不同之处被描述如下。
首先,在所述RNS HEAAN中,一模数可以被定义为多个不相交的整数,如下面所示的数学公式29所示。
[数学公式29]
Figure BDA0003723428600000413
因此,所述被生成的评估金钥可以如下面所示的数学公式30,并且所述公钥可以被表述为分别相应于多个不相交数的多个基数,如数学公式31所示。
[数学公式30]
Figure BDA0003723428600000421
在此,b′(i)←-a′(i)·s2+e′(mod pi)for 0≤i<k,以及
Figure BDA0003723428600000422
此外,
Figure BDA0003723428600000423
[数学公式31]
Figure BDA0003723428600000424
在此,b(j)←-a(j)·s+e(mod qj)对于0≤j≤L及
Figure BDA0003723428600000425
因此,在一密文被生成的情况下,被表述为如下所示的数学公式32中的多个基数的一同态密文可以被生成。
[数学公式32]
Figure BDA0003723428600000426
在此,ct(j)←v·pk(j)+(m+e0,e1)(mod qj对于0≤j≤L、v←Xenc及e0,e1←Xerr
同时,可以如下面所示的数学公式33中那样进行在RNS HEAAN方法中生成的所述同态密文(ct=(ct(0),...,ct(I))及ct′=(ct′(0),...,ct′(1)))的一加法计算。
[数学公式33]
Figure BDA0003723428600000427
在此,
Figure BDA0003723428600000431
对于0≤j≤I。
同时,可以如以下步骤那样进行在RNS HEAAN方法中生成的所述同态密文(
Figure BDA0003723428600000432
Figure BDA0003723428600000433
)的一计算。
首先,可以主要进行如数学公式34中的计算。
[数学公式34]
Figure BDA0003723428600000434
Figure BDA0003723428600000435
Figure BDA0003723428600000436
然后,可以如数学公式35中那样进行一莫杜普(modup)操作。
[数学公式35]
Figure BDA0003723428600000437
然后,可以进行如数学公式36中的一个二次计算(secondary computation)。
[数学公式36]
Figure BDA0003723428600000438
在此,
Figure BDA0003723428600000439
Figure BDA00037234286000004310
另外,可以进行如数学公式37中的计算,并且最后,可以输出如数学公式38中的一值。
[数学公式37]
Figure BDA00037234286000004311
Figure BDA00037234286000004312
[数学公式38]
Figure BDA0003723428600000441
在此,
Figure BDA0003723428600000442
在计算之后,如果所述密文
Figure BDA0003723428600000443
的至少一个基数的一权重超过一阈值,则可以如下面所示的数学公式39那样进行针对多个基数中的每个基数的一消息的一舍入处理过程,并且重新缩放所述同态密文且可以所述重新缩放的密文
Figure BDA0003723428600000444
可以被输出。
[数学公式39]
Figure BDA0003723428600000445
图17是提供用于解释根据本公开的一实施例的一加密方法的一流程图。
首先,作为一预设系数的一多项式集合的一环可以在操作S910处被设定。例如:诸如对加法及乘法封闭的所述数学公式16的一环可以被设定,其中加法及乘法被定义在所述多个元素之间,并且可以设定一明文空间是一实数。
另外,在操作S920处,一密钥可以从所述环被计算。一s可以基于Xkey被选择,并且一密钥(SK)可以基于所述被选择的s被计算。
另外,在操作S930处,与所述被获得的密钥相应的一公钥可以被计算。例如:一第一随机多项式可以从所述环被计算,一误差可以被提取,所述误差可以在所述被计算的第一随机多项式中被调制,并且所述密钥及一第二随机多项式可以被计算,并且一公钥可以使用所述被计算的第一随机多项式及第二随机多项式被计算。
另外,在操作S940处,所述公钥可以被应用于所述消息并且一同态密文可以被生成。例如:所述消息的编码可以由与所述环相应的一多项式被进行,并且所述公钥可以被应用于所述被编码的消息,并且一同态密文可以被生成。在使用所述RNS HEAAN的情况下,被表述为多个基数的一同态密文可以使用一被生成的多个公钥生成。
如上所述,根据一实施例的所述加密方法生成一同态密文,所述同态密文包括误差,因此可以对于需要高安全性的生物信息保持稳定的安全性。另外,由于根据一实施例的所述加密方法可以使用一明文空间是一实数的一环,在所述计算处理过程中最初阻止所述明文的所述虚数部分的增加,并且支持与先前的HEAAN具备相同的稳定性、计算速度、内存(密文及金钥大小)的平行实数计算的两倍。
图18是以图解说明根据本公开的一实施例的一网络系统的一密文处理方法的一图。在图18中,从两个终端装置100-1及100-2发送一密文的情况被描述。
首先,在操作S1010处,当一第一消息从一终端装置1 100-1被接收时,在操作S1015处,所述终端装置1 100-1可以生成如上所述的一第一同态密文,并且在操作S1020处,将所述被生成的第一同态密文发送给所述第一服务器装置。例如:在所述终端装置1100-1的一用户捕获一图像的情况下,所述图像及一捕获位置可以被加密,并且在所述用户再现(reproduce)一音乐内容或接入一特定URL的情况下,所述再现历史及所述URL访问历史可以被加密。
在操作S1025、S1030及S1035处,一终端装置2 100-2可以以一类似的方式生成一密文,并且将所述被生成的密文发送给所述第一服务器装置200。
所述第一服务器装置200可以在所述被接收的密文被加密时存储所述被接收的密文。在这种状态下,在操作S1040处,当所述第二服务器装置300请求一特定计算时,在操作S1045处,所述第一服务器装置200可以进行由所述第二服务器装置300请求对于所述同态密文的一预定计算(predetermined computation),然后,在操作S1050处,发送所述密文,所述预定计算已经对所述第二服务器装置进行。所述第二服务器装置300可以解密所述被接收的密文,并且检测所述消息。
另外,在操作S1060,所述第二服务器装置300可以输出一被解密的消息。例如:在所述终端装置1100-1及所述终端装置2100-2已经分别将一图像发送给所述第一服务器装置200的状态下,所述第二服务器装置300可以输出由各自的装置100-1及100-2一次性捕获的照片。
如上所述的所述加密方法及密文处理方法不仅可以被用于收集各种应用的一执行结果,还可以被用于收集由一用户直接输入的各种信用信息或个人信息。在所述第二服务器装置300是一银行服务器的情况下,所述银行可以仅从客户的信用信息中收集必要的项目并且仅识别所述被收集的项目。
同时,根据上述各种实施例的一加密方法及密文处理方法能以用于进行每个步骤的一程序代码的形式被实现、被存储在一记录介质中并且被分发。在这种情况下,其上安装有记录介质的一装置可以进行上述加密或密文处理过程操作。
所述记录介质可以是各种类型的计算机可读介质,诸如ROM、RAM、一内存芯片(memory chip)、一存储卡(memory card)、一外部硬盘驱动器(external hard drive)、一硬盘驱动器、一光盘(CD)、一数字通用光盘(DVD)、一磁盘或一磁带。
如上所述,当进行根据本公开各种实施例的所述加密及密文处理过程时,即使在量子计算机时代也是安全的,可以大大提高加密/解密速度,并且可以减小密文的大小。特别地,用于加密的一消息可以被扩展到一实数域(real number domain),因此可以显着增加可用性。
尽管参考附图进行本公开的描述,但是权利的范围由所附权利要求限定,并且不应被解释为限于被描述的实施例及/或附图。另外,应当理解的是,本公开包括对本领域技术人员显而易见的权利要求的实施例的各种改进、修改及变化,其被包括在本公开的权利范围内。

Claims (15)

1.一种终端装置的加密方法,其特征在于:所述加密方法包括步骤:
设定一环,所述环是包括在其中定义加法及乘法的多个元素的一集合,所述环包括一明文空间,所述明文空间是来自对加法及乘法封闭的多个集合中的一实数;
从所述环计算一密钥;
计算与所述被计算出的密钥相应的一公钥;及
将所述公钥应用于一消息并且生成一同态密文。
2.如权利要求1所述的加密方法,其特征在于:所述环满足以下等式:
a(X)=a(X-1)其中a(X)∈R,X-1:=-Xn-1
其中,X是变量,n是自然数,a(X)是相应于环的一多项式,以及R是包括一复数的一实空间的一环。
3.如权利要求1所述的加密方法,其特征在于:所述同态密文具有关于加法或乘法计算的o(nlog n)的一复杂度,其中n为自然数。
4.如权利要求1所述的加密方法,其特征在于:所述加密方法还包括步骤:从所述环计算一第一随机多项式;
提取一误差;及
调制在所述第一随机多项式中的所述误差及所述密钥,并且计算一第二随机多项式,
其中所述计算所述公钥的步骤包括:
使用所述第一随机多项式及所述第二随机多项式计算所述公钥。
5.如权利要求1所述的加密方法,其特征在于:所述生成所述同态密文的步骤包括:
计算所述消息作为相应于所述环的一多项式,及将所述公钥应用于所述被计算的多项式及生成一同态密文。
6.如权利要求1所述的加密方法,其特征在于:所述加密方法还包括步骤:从关于所述被生成的同态密文及一被预生成的同态密文的加法或乘法中进行至少一个计算,
其中所述进行所述计算的步骤包括:
进行关于所述被生成的同态密文及所述被预生成的同态密文中的每个的一第一函数处理过程;
在进行所述第一函数处理过程的所述同态密文之间进行一计算;及
进行一第二函数处理过程,所述第二函数处理过程是关于进行所述计算的一同态密文的所述第一函数的一反函数。
7.如权利要求6所述的加密方法,其特征在于:所述第一函数是一数值理论变换函数。
8.如权利要求1所述的加密方法,其特征在于:所述同态密文是基于正在被进行的一解密且处于一结果值被复原的一形式,所述结果值通过将一误差值加到所述消息而被获得。
9.一种终端装置,其特征在于:所述终端装置包括:
一内存,被配置为存储消息;及
一处理器,被配置为设定一环,所述环是包括在其中定义加法及乘法的多个元素的一集合,所述环包括一明文空间,所述明文空间是来自对加法及乘法封闭的多个集合中的一实数;
从所述环计算一密钥;
计算与所述被计算出的密钥相应的一公钥;及
将所述公钥应用于一消息并且生成一同态密文。
10.如权利要求9所述的终端装置,其特征在于:所述环满足以下等式:
a(X)=a(X-1)其中a(X)∈R,X-1:=-Xn-1
其中,所述X是变量,所述n是自然数,所述a(X)是相应于环的一多项式,以及所述R是包括一复数的一实空间的一环。
11.如权利要求9所述的终端装置,其特征在于:所述同态密文具有关于加法或乘法计算的o(nlog n)的一复杂度,其中n为自然数。
12.如权利要求9所述的终端装置,其特征在于:所述处理器被配置为:
从所述环计算一第一随机多项式;
提取一误差;
调制在所述第一随机多项式中的所述误差及所述密钥,并且计算一第二随机多项式,以及
使用所述第一随机多项式及所述第二随机多项式计算所述公钥。
13.如权利要求9所述的终端装置,其特征在于:所述处理器被配置为计算所述消息作为相应于所述环的一多项式,及将所述公钥应用于所述被计算的多项式及生成一同态密文。
14.如权利要求9所述的终端装置,其特征在于:所述处理器被配置为:
进行关于所述被生成的同态密文及所述被预生成的同态密文中的每个的一第一函数处理过程;
在进行所述第一函数处理过程的所述同态密文之间进行加法或乘法中的至少一个计算;以及
进行一第二函数处理过程,所述第二函数处理过程是关于进行所述计算的一同态密文的所述第一函数的一反函数。
15.如权利要求11所述的终端装置,其特征在于:所述同态密文是基于正在被进行的一解密且处于一结果值被复原的一形式,所述结果值通过将一误差值加到所述消息而被获得。
CN202210769462.4A 2017-12-15 2018-12-17 进行同态加密的终端装置及终端装置的加密方法 Pending CN115134068A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR1020170173608A KR101965628B1 (ko) 2017-12-15 2017-12-15 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
KR10-2017-0173608 2017-12-15
KR1020180129749A KR102040106B1 (ko) 2018-10-29 2018-10-29 실수 평문에 대한 동형 암호화 방법
KR10-2018-0129749 2018-10-29
CN201880008003.6A CN110214433B (zh) 2017-12-15 2018-12-17 一种进行同态加密的终端装置及其加密方法、服务器装置的密文处理方法
PCT/KR2018/016060 WO2019117694A1 (ko) 2017-12-15 2018-12-17 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880008003.6A Division CN110214433B (zh) 2017-12-15 2018-12-17 一种进行同态加密的终端装置及其加密方法、服务器装置的密文处理方法

Publications (1)

Publication Number Publication Date
CN115134068A true CN115134068A (zh) 2022-09-30

Family

ID=66819634

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210769462.4A Pending CN115134068A (zh) 2017-12-15 2018-12-17 进行同态加密的终端装置及终端装置的加密方法
CN201880008003.6A Active CN110214433B (zh) 2017-12-15 2018-12-17 一种进行同态加密的终端装置及其加密方法、服务器装置的密文处理方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201880008003.6A Active CN110214433B (zh) 2017-12-15 2018-12-17 一种进行同态加密的终端装置及其加密方法、服务器装置的密文处理方法

Country Status (6)

Country Link
US (3) US10778409B2 (zh)
EP (2) EP3793127B1 (zh)
JP (2) JP7049374B2 (zh)
CN (2) CN115134068A (zh)
SG (2) SG11202001984SA (zh)
WO (1) WO2019117694A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
US11646877B2 (en) * 2019-05-14 2023-05-09 Samsung Sds Co., Ltd. Apparatus and method for generating secret key, apparatus and method for generating evaluation key
CN112580063B (zh) * 2019-09-27 2023-01-13 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
WO2021075057A1 (en) * 2019-10-18 2021-04-22 Loch Energy, Ltd. Digital currency operation system and operation method using fully homological encryption scheme
US11489659B2 (en) * 2019-10-30 2022-11-01 Via Science, Inc. Multiple data source secure data processing
FR3105684B1 (fr) * 2019-12-20 2022-12-23 Idemia France Procede de traitement cryptographique, dispositif electronique et programme d'ordinateur associes
KR20210083974A (ko) * 2019-12-27 2021-07-07 삼성에스디에스 주식회사 근사 함수를 이용한 연산 장치 및 방법
US20220020018A1 (en) * 2020-02-28 2022-01-20 Polymath Inc. Cryptographic encryption protocol for data types and values
US11558171B2 (en) * 2020-04-20 2023-01-17 Samsung Sds Co., Ltd. Apparatus and method for encryption, apparatus and method for converting ciphertext
KR102444193B1 (ko) 2020-04-29 2022-09-19 국방과학연구소 Ring-LWR기반 양자내성 서명 방법 및 그 시스템
KR20210135075A (ko) 2020-05-04 2021-11-12 삼성전자주식회사 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법
CN111949998B (zh) * 2020-05-11 2023-07-07 华控清交信息科技(北京)有限公司 对象检测及请求方法、数据处理系统、装置及存储介质
KR20220009643A (ko) 2020-07-16 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 클라이언트 및 서버, 및 이의 동작 방법
KR20220040309A (ko) 2020-09-23 2022-03-30 삼성전자주식회사 동형 암호화 장치 및 그 동작 방법
KR20220048225A (ko) 2020-10-12 2022-04-19 삼성전자주식회사 동형 연산 가속기 및 이를 포함하는 동형 연산 수행 장치
CN112906044B (zh) * 2021-05-10 2021-07-30 腾讯科技(深圳)有限公司 多方安全计算方法、装置、设备及存储介质
US20220385461A1 (en) * 2021-05-21 2022-12-01 Samsung Electronics Co., Ltd. Encryption key generating method, appratus, ciphertext operation method and apparatus using the generated encryption key
US20230036196A1 (en) * 2021-07-27 2023-02-02 International Business Machines Corporation Computer architecture for string searching
US11847938B2 (en) * 2021-08-03 2023-12-19 Nxp B.V. Combining regular and symbolic NTTs using co-processors
KR20230082126A (ko) * 2021-12-01 2023-06-08 삼성전자주식회사 암호화 장치 및 암호화 방법
KR20230161779A (ko) * 2022-05-19 2023-11-28 서울대학교산학협력단 동형자리바꿈 연산을 수행하는 방법 및 기기
CN115102689B (zh) * 2022-08-24 2022-11-15 北京信安世纪科技股份有限公司 两方协同的s盒生成方法、加密方法和存储介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
ES2696513T3 (es) 2009-09-04 2019-01-16 Gradiant Centro Tecnoloxico De Telecomunicacions De Galicia Sistema criptográfico para realizar cálculos y procesamiento de señales seguros directamente en datos encriptados en entornos no confiables
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
JP5448863B2 (ja) * 2010-01-15 2014-03-19 日本電信電話株式会社 鍵生成装置、鍵生成方法、プログラム及び記録媒体
US8625782B2 (en) * 2010-02-09 2014-01-07 Mitsubishi Electric Research Laboratories, Inc. Method for privacy-preserving computation of edit distance of symbol sequences
US8861716B2 (en) * 2010-03-30 2014-10-14 International Business Machines Corporation Efficient homomorphic encryption scheme for bilinear forms
US8903083B2 (en) * 2010-08-16 2014-12-02 International Business Machines Corporation Fast evaluation of many polynomials with small coefficients on the same point
US8891762B2 (en) * 2010-12-10 2014-11-18 Mitsubishi Electric Research Laboratories, Inc. Method for privacy-preserving order selection of encrypted element
US9083526B2 (en) * 2011-04-29 2015-07-14 International Business Machines Corporation Fully homomorphic encryption
US9281941B2 (en) * 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
US20150312028A1 (en) 2012-08-28 2015-10-29 Snu R&Db Foundation Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same
KR101449239B1 (ko) 2013-01-24 2014-10-15 서울대학교산학협력단 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
WO2015078533A1 (en) * 2013-11-29 2015-06-04 Nec Europe Ltd. Method and system for encrypting data
US9524392B2 (en) * 2013-11-30 2016-12-20 Microsoft Technology Licensing, Llc Encrypting genomic data for storage and genomic computations
KR102019159B1 (ko) * 2013-12-23 2019-09-09 한국전자통신연구원 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법
CN103744976B (zh) * 2014-01-13 2017-02-22 北京工业大学 一种基于同态加密的图像安全检索方法
KR102251697B1 (ko) 2014-04-23 2021-05-14 삼성전자주식회사 암호화 장치, 암호화 방법 및 컴퓨터 판독가능 기록매체
JP2016131335A (ja) * 2015-01-14 2016-07-21 富士通株式会社 情報処理方法、情報処理プログラムおよび情報処理装置
KR102423885B1 (ko) * 2015-05-08 2022-07-21 한국전자통신연구원 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템
US20160352710A1 (en) * 2015-05-31 2016-12-01 Cisco Technology, Inc. Server-assisted secure exponentiation
US10153894B2 (en) * 2015-11-05 2018-12-11 Microsoft Technology Licensing, Llc Homomorphic encryption with optimized encoding
US10454668B2 (en) * 2015-11-09 2019-10-22 Certsign Sa Fully homomorphic encryption from monoid algebras
US10791123B2 (en) * 2015-11-25 2020-09-29 Yaron Gvili Selectivity in privacy and verification with applications
US10116437B1 (en) * 2015-12-14 2018-10-30 Ingram Micro, Inc. Method for protecting data used in cloud computing with homomorphic encryption
US9876636B2 (en) * 2016-01-07 2018-01-23 Empire Technology Development Llc Homomorphic public-key encryption scheme
KR101829267B1 (ko) 2016-04-27 2018-02-14 서울대학교산학협력단 암호문의 크기가 감소되는 동형 암호화 방법
US10333715B2 (en) * 2016-11-14 2019-06-25 International Business Machines Corporation Providing computation services with privacy
CN110537191A (zh) * 2017-03-22 2019-12-03 维萨国际服务协会 隐私保护机器学习
CA3034597C (en) * 2017-04-11 2021-10-12 The Governing Council Of The University Of Toronto A homomorphic processing unit (hpu) for accelerating secure computations under homomorphic encryption
CN107294958B (zh) * 2017-05-27 2020-05-22 宁波大学 基于全同态mac的消息完整性认证方法
CN107294698B (zh) * 2017-07-25 2019-11-26 西安电子科技大学 单密文同态计算的全同态加密方法

Also Published As

Publication number Publication date
US20200162235A1 (en) 2020-05-21
US11101976B2 (en) 2021-08-24
EP3553995B1 (en) 2021-06-23
EP3793127B1 (en) 2023-02-01
JP2022059027A (ja) 2022-04-12
US10778409B2 (en) 2020-09-15
EP3553995A4 (en) 2020-05-13
JP2020528232A (ja) 2020-09-17
WO2019117694A1 (ko) 2019-06-20
US20190363871A1 (en) 2019-11-28
CN110214433A (zh) 2019-09-06
US20200252199A1 (en) 2020-08-06
EP3793127A1 (en) 2021-03-17
EP3553995A1 (en) 2019-10-16
US11115183B2 (en) 2021-09-07
JP7370402B2 (ja) 2023-10-27
SG11202001984SA (en) 2020-04-29
JP7049374B2 (ja) 2022-04-06
SG10202100111PA (en) 2021-02-25
CN110214433B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
CN110214433B (zh) 一种进行同态加密的终端装置及其加密方法、服务器装置的密文处理方法
KR101965628B1 (ko) 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
JP6964688B2 (ja) 暗号文に対する近似演算を行う装置及び方法
KR102040106B1 (ko) 실수 평문에 대한 동형 암호화 방법
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
KR102339833B1 (ko) 다변수 패킹을 이용하는 연산 장치 및 방법
KR102349855B1 (ko) 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법
JP7170878B2 (ja) 暗号文に対する非多項式演算を行う装置及び方法
US20230008949A1 (en) Simulation device and method for homomorphic cryptosystem
KR102304992B1 (ko) 동형 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
KR20220163493A (ko) 동형 암호문에 대한 통계 연산 수행하는 장치 및 방법
KR20200087708A (ko) 근사 계산에 대한 계산 검증
KR102393941B1 (ko) 근사 암호화된 암호문에 대한 인코딩 또는 디코딩
US20240039695A1 (en) Electronic apparatus for generating homomorphic encrypted message and method therefor
KR102452181B1 (ko) 근사 암호화된 암호문에 대한 정렬 장치 및 방법
CN112131596B (zh) 加解密方法、设备及存储介质
US20240127656A1 (en) Method for generating homomorphic encrypted message including vote analysis data and electronic apparatus therefor
US20230421352A1 (en) Apparatus for processing homomorphic encrypted messages and method thereof
US20240039696A1 (en) Apparatus and method for homomorphic encryption of text data
KR20240066048A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40077897

Country of ref document: HK