首页> 中国专利> 用于对密文进行非多项式计算的装置和方法

用于对密文进行非多项式计算的装置和方法

摘要

公开了一种密文计算方法。上述密文计算方法包括以下步骤:接收针对多个相同类型的密文的比较计算命令;以及通过在对应于比较计算命令的复合函数上反映多个相同类型的密文来执行计算;并输出计算的相同类型的密文。

著录项

  • 公开/公告号CN113169860A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 加密实验室公司;

    申请/专利号CN201980080489.9

  • 发明设计人 千丁熙;金东禹;金杜衡;

    申请日2019-11-13

  • 分类号H04L9/00(20060101);H04L9/30(20060101);

  • 代理机构11497 北京市正见永申律师事务所;

  • 代理人黄小临

  • 地址 韩国首尔

  • 入库时间 2023-06-19 11:55:48

说明书

技术领域

本申请涉及一种用于对近似加密消息执行诸如比较计算的非多项式计算的装置和方法。

背景技术

随着通信技术和电子设备的主动分发的发展,为保持电子设备之间的通信安全性而持续努力。因此,在大多数通信环境中,使用加密/解密技术。

当通过加密技术加密的消息被传递给另一方时,另一方需要执行解密以使用该消息。在这种情况下,另一方可能会在解密经加密数据的过程中浪费资源和时间。另外,当第三方在另一方已临时解密该消息以进行计算的状态下执行黑客攻击时,该消息可能会容易泄漏给第三方。

为了解决这样的问题,对同态加密方法进行了研究。根据同态加密,尽管在不解密经加密信息的情况下对加密消息本身执行计算,但是可获得与通过计算且然后加密明文而获得的值相同的结果。因此,可在未解密经加密消息的状态下执行各种计算。

然而,相关技术的同态密文仅支持诸如加法、乘法等的一些计算,且因此需要获得一种用于对同态密文应用诸如比较计算的非多项式计算的方法。

发明内容

做出本申请以解决上述问题,且其目的是提供一种用于对近似经加密消息执行诸如比较计算的非多项式计算的装置和方法。

本申请是为了实现上述目的。根据本申请的一个方面,提供了一种密文计算方法,包括:接收针对多个同态密文的比较计算命令的输入;通过将所述多个同态密文反映为与所述比较计算命令对应的复合函数(composite function)来执行计算,并输出计算的同态密文。

所述复函数可具有响应于精度2

比较计算可以是最大值运算或最小值运算,且执行所述计算可包括通过使用与平方根计算对应的复合函数来执行最大值运算或最小值运算的计算。

对应于平方根计算的复合函数可以是以预定次数重复执行第一函数和第二函数的计算的函数,该第一函数包括具有作为初始值的输入值的第一变量和具有从输入值中减去1而获得的值作为初始值的第二变量,且第二函数包括该第二变量。

该预定次数可以是与平方根计算的错误率对应的次数。

比较计算可以是根据大小比较输出预定值的计算,并且执行该计算可包括以预定次数重复执行包括与逆计算对应的函数计算的复合函数的计算。

比较运算可以是根据大小比较输出预定值的计算,且执行该计算可包括以预定次数重复执行通过使用与符号函数对应的复合函数的计算。

对应于符号函数的复合函数可以是这样的复合函数,其对于大于0的输入值获得接近1的输出值,对于小于0的输入值获得接近-1的输出值。

执行该计算可包括通过使用两个或更多个不同的复合函数来执行比较运算,所述两个或更多个不同的复合函数是与符号函数对应的近似函数。

根据本申请的另一方面,提供了一种计算装置,其包括:存储至少一条指令的存储器;以及被布置为执行所述至少一条指令的处理器,其中,所述处理器被配置为:通过执行所述至少一条指令,基于用于接收到的用于多个同态密文的比较计算命令的输入,通过将多个同态密文反映到与该比较计算命令对应的复合函数来执行计算,并且输出所计算的同态密文。

比较计算可以是最大值运算或最小值运算,且处理器可被配置为通过使用与平方根计算对应的复合函数来执行最大值运算或最小值运算的计算。

比较计算可以是根据大小比较输出预定值的计算,并且处理器可被配置为以预定次数重复执行包括与逆计算对应的函数计算的复合函数的计算。

比较计算可以是根据大小比较输出预定值的计算,且处理器可被配置为以预定次数重复执行通过使用与符号函数对应的复合函数的计算。

与符号函数对应的复合函数可以是这样的复合函数,该复合函数对于大于0的输入值获得接近1的输出值,且对于小于0的输入值获得接近-1的输出值。

处理器可被布置为通过使用两个或更多个不同的复合函数来执行比较计算,所述复合函数是与符号函数对应的近似函数。

发明效果

根据上述公开的各个实施例,在同态密文处理方法中,可通过使用复合函数来对近似加密密文执行比较计算。另外,本申请中建议的复合函数具有低复杂度,且因此即使精度增加,也可执行更快的计算。

附图说明

图1是示出根据实施例的网络系统的结构的图;

图2是示出根据实施例的计算设备的配置的框图;

图3是示出实施例的计算装置的计算操作的图;

图4是示出根据实施例的密文计算方法的流程图;

图5是示出根据实施例的通过使用复合函数来运算逆计算的方法的图;

图6是示出根据实施例的通过使用复合函数来运算平方根计算的方法的图;

图7是示出根据实施例的用于运算最大值和最小值的方法的图;

图8是示出第一实施例的大小比较方法的图;

图9是示出根据第二实施例的大小比较方法的图;

图10是示出求得与符号函数的斜率对应的复合函数的方法的图;

图11是示出第三实施例的大小比较方法的图;

图12是示出对于每个重复次数与符号函数对应的复合函数的形状的图;且

图13是示出对于每个重复次数与符号函数有关的各种复合函数的形状的图。

发明内容

示例性实施例的详述

在下文中,将参考附图详细描述本申请。对于本申请中执行的信息(数据)发送过程,如果需要,可应用加密/解密。在本申请和权利要求中,尽管没有分别指定,但描述信息(数据)传输过程的表述应被解释为包括加密和解密两者。在本申请中,诸如“从A到B的发送(传送)”或“由A从B接收”的表达包括在其间插入另一种介质的发送(传送)或接收,且不仅仅表示从A到B直接发送(传送)或由A从B直接接收。

在描述本申请时,应该理解,除非在逻辑上和时间上在后续步骤之前需要执行先前步骤,否则不限制每个步骤的顺序。换句话说,除了上述例外,即使在如先前步骤的步骤之前执行了如后续步骤的步骤,也不会影响本申请的要旨,并且还应定义权利的范围,而与步骤的顺序无关。在说明书中,“A或B”不仅选择性地指示A和B中的任何一个,而且被定义为包括A和B两者。另外,本申请中的术语“包括”除列出的要素,还额外地涵盖其他要素。

在说明书中,仅描述了描述本申请所必需的基本要素,并且未提及与本申请的要旨无关的要素。本申请不应以仅包括所述要素的排他性意义来解释,而应以非排他性意义来解释为也包括其他要素。

本申请中的“值”被定义为不仅包括标量值而且包括向量。

可将下面描述的本申请的每个步骤的数学操作和运算通过对于相应的操作或运算众所周知的编码方法和/或设计为适合于本申请的编码来实现为计算机计算。

下面描述的特定公式是几种可能的替代方案中的示例性示例,且不应解释为本申请的权利范围限于本申请中的公式。

为了描述的方便,在本申请中将使用以下符号。

a←D:根据分布(D)选择元素(a)

s1,s2∈R:S1和S2中的每一个是属于集合R的元素。

mod(q):采用元素q执行模计算

“-”:四舍五入内部值

在下文中,将参考附图详细描述本申请的各种实施例。

图1是示出根据实施例的网络系统的配置的图。

参照图1,网络系统包括多个电子设备100-1,…和100-n,第一服务器设备200和第二服务器设备300,并且这些元件可经由网络10彼此连接。

网络10可被实现为各种类型的有线和无线通信网络、广播通信网络、光通信网络、云网络等,并且每个设备可通过诸如Wi-Fi、蓝牙、近场通信(NFC)或其他无需单独的介质的方法来连接。

参照图1,示出了设置有多个(100-1,…和100-n)的电子设备,但是不是必需使用该多个电子设备,而是可使用一个设备。例如,电子设备100-1,…和100-n可被实现为各种类型的设备,诸如智能电话、平板电脑、游戏机、PC、膝上型PC、家庭服务器、自助服务终端、等等,并且也可以以应用了IoT功能的家用电器的形式实现。

用户可通过用户使用的电子设备100-1,…和100-n输入各条信息。输入信息可被存储在电子设备100-1,...和100-n自身中,并且由于存储容量,安全性等原因也可发送到并存储在外部设备中。参考图1,第一服务器设备200可起到存储这样的信息的作用,并且第二服务器设备300可起到使用存储在第一服务器设备200中的一些或全部信息的作用。

电子设备100-1,...和100-n中的每一个可对输入信息执行同态加密,且将同态密文发送到第一服务器设备200。

电子设备100-1,...和100-n中的每个可包括在执行同态加密的过程中计算的加密噪声,即,密文中的错误。具体地,可生成从电子设备100-1、...和100-n中的每一个生成的同态密文,使得当之后使用私钥执行解密时,结果值包括消息,并恢复错误值。

例如,当使用私钥执行解密时,可生成从电子设备100-1、...和100-n中的每一个生成的同态密文,以满足以下特性。

[公式1]

Dec(ct,sk)==M+e(mod q)

此处,<,>表示通常的内积,ct表示密文,sk表示私钥,M表示明文消息,e表示加密错误值,且mod q表示密文的模数(modulus)。对于q,需要选择比通过将消息乘以缩放因子Δ获得的结果值M大的值。如果误差值e的绝对值足够小于M,则密文的解密值M+e可以是可在有效数位计算中以相同的精度替换为原始消息的值。在解密的数据中,错误可被布置在最低有效位(LSB)的一侧,并且M可被布置在第二最低有效位的一侧。

如果消息的大小非常小或大,则可通过使用缩放因子来调整其大小。当使用缩放因子时,不仅可加密整数形式的消息,而且可加密实数形式的消息,且因此可用性可显著提高。另外,通过使用缩放因子调整消息的大小,可调整存在消息的域(domain),即在执行计算之后的密文的有效域的大小。

根据一个实施例,密文模数q可以以各种形式设置和使用。例如,密文的模数可以q=Δ

第一服务器设备200可在不执行解密的情况下以密文状态存储接收到的同态密文。

第二服务器设备300可向第一服务器设备200请求同态密文的具体处理结果。第一服务器设备200可根据第二服务器设备300的请求执行特定计算,并将其结果发送给第二服务器设备300。

在一示例中,当由两个电子设备100-1和100-2发送的密文ct1和ct2被存储在第一服务器设备200中时,第二服务器设备300可向第一服务器设备200请求通过将从两个电子设备100-1和100-2提供的多条信息相加而获得的值。第一服务器设备200可执行将两个密文相加的计算,并且根据请求将结果值(ct1+ct2)发送到第二服务器设备300。

根据同态密文的性质,第一服务器设备200可在不执行解密的状态下执行计算,并且其结果值是密文的形式。在本申请中,通过计算获得的结果值可称为计算结果密文。

第一服务器设备200可将计算结果密文发送到第二服务器设备300。第二服务器设备300可对接收到的计算结果密文进行解密,并且获得包括在每个同态密文中的数据的计算结果值。

第一服务器设备200可根据用户请求多次执行计算。此时,第一服务器设备200不仅可执行仅由加法、减法和乘法组成的计算,而且可执行包括逆计算和平方根计算的计算。另外,第一服务器设备200可执行比较运算,诸如最大值运算、最小值运算和大小比较。如上所述,第一服务器设备200可被称为计算设备,这是因为它可执行计算操作。

当执行比较运算时,第一服务器设备200可通过使用与非多项式计算对应的复合函数来执行计算。根据本申请的复合函数响应于精度2-α而具有复杂度θ(α)或θ(αlogα),且因此,在精度提高的情况下,可执行比相关技术更快的计算。

同时,参考图1,示出了第一电子设备和第二电子设备执行加密且第二服务器设备执行解密,但是不限于此。

图2是示出根据实施例的计算设备的布置的框图。

具体地,在图1的系统中,诸如第一电子设备和第二电子设备这样的执行同态加密的装置、诸如第一服务器设备这样的对同态密文执行计算的装置,以及诸如第二服务器设备这样的对同态密文进行解密的装置可被称为计算装置。这样的计算装置可以是各种设备,诸如个人计算机(PC)、膝上型计算机、智能电话、平板电脑、服务器等。

参照图2,计算设备400可包括通信装置410、存储器420、显示器430、操纵输入装置440和处理器450。

通信装置410可被形成为将计算装置400连接到外部装置(未示出),并且可通过局域网(LAN)和因特网访问外部装置,并且还可通过通用串行总线(USB)端口或无线通信(例如,Wi-Fi 802.11a/b/g/n、NFC、蓝牙)端口以下方式访问外部装置。通信装置410可被称为收发器。

通信装置410可从外部装置接收公共密钥,并且将由计算装置400自主生成的公共密钥发射到外部装置。

通信装置410可从外部装置接收消息,且将所生成的同态密文发射到外部装置。

另外,通信装置410可从外部装置接收生成密文所需的各种参数。同时,在实施方式中,可通过将在下面描述的操纵输入装置440直接从用户接收各种参数。

另外,通信装置410可从外部装置接收对同态密文的计算请求,并且将相应地运算的结果发送给外部装置。所请求的计算可以是诸如加法、减法或乘法之类的计算,或者还可以是作为非多项式计算的比较运算。

存储器420可存储与计算装置400有关的至少一个指令。具体地,存储器420可存储根据本申请的各种实施例的用于操作计算装置400的各种程序(或软件)。

存储器420可被实现为各种类型,诸如RAM、ROM、闪存、HDD、外部存储器和存储卡,并且不限于它们中的任何一种。

存储器420可存储要加密的消息。在此,该消息可以是用户参考的各种信用信息、私人信息等,并且可以是与使用历史等有关的信息等,诸如位置信息、互联网使用时间信息等在计算装置400上使用的信息。

存储器420可存储私钥(private key),并且如果计算装置400是直接生成公共密钥的设备,则存储器420不仅可存储私密密钥(secret key),还可存储生成私钥和私密密钥所需的各种参数。

存储器420可存储在以下将描述的处理中生成的同态密文。存储器420可存储从外部装置发送的同态密文。另外,存储器420还可存储计算结果密文,该计算结果密文是来自以下将描述的计算处理的结果。

显示器430可显示用于接收计算装置400所支持的功能的选择的用户界面窗口。具体地,显示器430可显示用于接收由计算装置400所提供的各种功能的选择的用户界面窗口。显示器430可以是诸如液晶显示器(LCD)、有机发光二极管(OLED)等的监视器,并且还可被实现为能够同时执行操纵输入装置440的功能的触摸屏,这将在下面描述。

显示器430可显示用于请求输入生成私密密钥和公共密钥所必需的参数的消息。显示器430可显示用于选择加密目标的消息。同时,在实施方式中,加密目标可由用户直接选择或自动选择。换句话说,尽管用户没有直接选择消息,但是可自动设置需要加密的私人信息等。

操纵输入装置440可从用户接收对计算装置400的功能的选择以及针对相应功能的控制命令。具体地,操纵输入装置440可从用户接收生成私密密钥和公共密钥所需的参数的输入。另外,操纵输入装置440可设置要从用户加密的消息。

处理器450可控制计算装置400的一般操作。具体地,处理器450可通过执行存储在存储器420中的至少一条指令来总体控制计算装置400的操作。处理器450可被配置有诸如中央处理单元(CPU)或专用集成电路(ASIC)的单个装置,或者也可配置有诸如CPU、图形处理单元(GPU)等的多个装置。

当输入要发送的消息时,处理器450可将该消息存储在存储器420中。处理器450可通过使用存储在存储器420中的各种设置值和程序来对该消息执行同态加密。在这种情况下,可使用公共密钥。

处理器450可自动地生成和使用执行加密所必需的公共密钥,或者可从外部装置接收公共密钥并使用该公共密钥。在示例中,执行解密的第二服务器设备300可将公共密钥分发给其他设备。

在自动生成密钥的情况下,处理器450可通过使用Ring-LWE技术来生成公共密钥。具体地,首先,处理器450可设置各种参数和环并存储在存储器420中。参数的各示例可包括明文消息的比特长度、公共密钥和私密密钥的大小等。

环(ring)可由下式表示。

[公式2]

这里,R表示环,Z

环是具有预定系数的多项式的集合,并且是指其中定义了元素之间的加法和乘法并且为加法和乘法而闭合的集合的集合。这样的环可被称为轮环(annulus)

例如,环可指的是系数为Z

[公式3]

私密密钥(sk)可如下表示。

同时,上述公式3的环在明文空间中具有复数。为了改善同态密文的计算速度,可仅使用上述环的集合中的在明文空间中具有实数的集合。

当设置了这样的环时,处理器450可从该环运算私密密钥(sk)。

[公式4]

sk←(1,s(x)),s(x)∈R

这里,s(x)表示以小系数随机产生的多项式。

处理器450可从环计算第一随机多项式a(x)。第一随机多项式可如下表示。

[公式5]

a(x)←R

处理器450可对错误进行计算。具体地,处理器450可从离散高斯分布或具有更接近离散高斯分布的统计距离的分布中提取错误。这样的错误可表示如下。

[公式6]

当计算出错误时,处理器450可将错误调制到第一随机多项式和私密密钥以计算第二随机多项式。第二随机多项式可如下表示。

[公式7]

b(x)=-a(x)s(x)+e(x)(mod q)

最后,可如下设置公共密钥(pk)以包括第一随机多项式和第二随机多项式。

[公式8]

pk=(b(x),a(x))

上述密钥生成方法仅是示例,并且因此不限于此,且公共密钥和私密密钥也可通过其他方法来生成。

同时,当生成公共密钥时,处理器450可控制通信装置410来将公共密钥发送到其他设备。

处理器450可为消息生成同态密文。具体地,处理器450可通过应用先前为该消息生成的公共密钥来生成同态密文。处理器450可生成密文,使得密文的长度对应于缩放因子的大小。

当生成同态密文时,处理器450可根据用户请求或预定的默认命令将同态密文存储在存储器420中或控制通信装置410将同态密文发送到另一设备。

根据本申请的实施例,可执行包装(packing)。当在同态加密中使用包装时,可将多个消息加密为一个密文。在这种情况下,当在计算装置400上执行密文之间的计算时,可并行处理针对多个消息的计算,从而显著降低了计算负荷。

具体地,当消息由多个消息向量形成时,处理器450可将多个消息向量转换为多项式以便并行地被加密,将该多项式乘以缩放因子,且通过使用公共密钥执行同态加密。因此,可生成具有多个包装消息矢量的密文。

当需要解密同态密文时,处理器450可通过将私密密钥应用于同态密文来生成多项式形式的解密文本,并以多项式形式对解密文本进行解码以生成消息。如上面参考上述公式1所述,此处生成的消息可能包括错误。

处理器450可对密文执行计算。具体地,处理器450可在保持同态密文的加密状态的同时执行诸如加法、减法或乘法这样的计算。

另外,处理器450可采用除对密文进行加法、减法或乘法之外的计算来执行针对多项式的计算。具体地,同态密文对于加法,减法或乘法是封闭的,但对于其他计算则不是封闭的。

因此,对于除加法、减法或乘法之外的计算,必需使用由以上三个计算表示的近似计算表达式。就这一点而言,对于除加法、减法或乘法之外的计算,处理器450可通过使用与所请求的计算对应的近似函数来执行计算。

为此,可使用在相关技术中众所周知的近似函数(例如,泰勒、最小二乘或最小极大),但是在相关技术中,该近似函数针对于精度2

为了解决这样的问题,在本申请中,可使用响应于精度2

在本申请中,针对逆计算、平方根、最大值或最小值以及大小比较中的每一个建议复合函数,且下面将参考图5至10描述将复合函数应用于每种计算的方法。

当计算完成时,计算设备400可从计算结果数据中检测有效域中的数据。具体地,计算装置400可通过对计算结果数据进行舍入(rounding)处理来检测有效域中的数据。舍入过程可指对处于加密状态的消息执行舍入(rounding-off),也可称为重新缩放。

另外,当计算结果密文中的近似消息的百分比超过阈值时,计算装置400可对密文执行重启(rebooting)操作。

图3是示出根据实施例的计算装置的计算操作的图。

参照图3,同态密文10和20分别包括近似消息区域11和21。近似消息区域11和21分别具有消息和错误m1+e1和m2+e2。

计算装置400可通过使用两个同态密文10和20作为输入值来执行特定计算。该计算可以是由加法、减法或乘法形成的多项式计算,并且也可以是其中必需使用近似函数的多项式计算或非多项式计算。

非多项式计算中最具表示性的计算是比较运算,并且可以是最大值运算、最小值运算或大小比较。最大值运算可从两个值中输出较大值,最小值运算可从两个值中输出最小值,且如果任一个值较大,则大小比较可能会输出1,如果另一个值较大,则输出0,如果两个值彼此相同,则输出1/2。同时,在大小比较中,输出数值仅是示例,并且在实施方式中,可输出其他值。

最大值运算可由下面的公式9表示,且最小值运算可由下面的公式10表示。

[公式9]

这里,a表示第一同态密文,b表示第二同态密文,max(a,b)表示输出在第一同态密文和第二同态密文中具有较大值的同态密文的值的函数。

[式10]

这里,a表示第一同态密文,b表示第二同态密文,min(a,b)表示输出在第一同态密文和第二同态密文中具有较小值的同态密文的值的函数。

参照上述公式9和10,可在同态密文状态下执行诸如加法、减法和除以常数2的计算,但是不能在同态密文状态下执行平方根计算。因此,平方根计算需要近似多项式,并且可使用以预定次数重复执行第一函数和第二函数的计算的复合函数,第一函数具有以输入值作为初始值的第一变量和通过从输入值中减去1而获得的值作为初始值的第二变量,且第二函数具有第二变量。平方根计算的具体操作将在下面参考图6进行描述。

当使用与平方根计算对应的复合函数时,最大值运算和最小值运算可如下表示。

[公式11]

[公式12]

这里,a表示第一同态密文,b表示第二同态密文,d表示重复次数,且Sqrt((a-b)

可通过重复执行诸如

同时,可通过使用符号函数来近似大小比较,并且这样的符号函数可以是对于除0以外的输入值获得彼此并行的输出值的复合函数(例如,对大于0的输入值获得接近1的输出值,且对于小于0的输入值获得接近-1的输出值)和/或可以是对于除0以外的输入值获得输入值彼此并行的输出值的复合函数。下面将参考图9和10描述使用这样的复合函数的操作。

同时,通过上述计算获得的密文30可包括在近似消息之间具有计算结果(m3+e3)的近似消息域31。如果明文空间32被去除或小于一限值,则计算装置400可执行重启操作。

图4是示出根据实施例的密文计算方法的流程图。

参照图4,可接收针对多个同态密文的比较计算命令(S410)。这样的命令可从外部装置接收或者可直接从计算装置输入。比较计算可以是最小值运算、最大值运算和大小比较之一。

可通过将多个同态密文反映到与比较计算命令对应的复合函数来执行计算(S420)。具体地,可通过使用具有复杂度θ(α)或θ(αlogα)的复合函数来执行比较计算。

可输出所计算的同态密文(S430)。具体地,可将计算结果输出到已请求计算的设备。

在根据本申请的密文运算方法中,可响应于精度2

图5是示出根据实施例的通过使用复合函数来运算逆计算的方法的图。

参考图5,用于变量x和正值d的逆函数Inv(x;d)是复合函数,其中设定具有通过从2减去输入值x而获得的值作为初始值a

可通过改变Goldschmidt的除法算法(诸如下面的公式13)来获得逆函数。

[公式13]

用于逆函数的该复合函数可具有复杂度θ(α)。

图6是示出根据实施例的通过使用复合函数来运算平方根计算的方法的图。

参考图6,变量x和正数d的平方根计算Sqrt(x;d)是复合函数,其中设定在初始阶段具有输入值x作为初始值a

用于平方根的该复合函数相对于误差界限2

图7是示出根据实施例的用于运算最大值和最小值的方法的图。

参照图7,最大值运算和最小值运算可由上述公式9和10表示,并且在公式9和10的平方根计算中,可使用如图6所示的用于平方根计算的复合函数。

例如,当请求针对同态密文A和B的最大值运算时,参考图7,计算装置400可:①计算(A+B)/2的值和(A﹣B)/2的值,②计算(A﹣B)/2的平方并通过使用相应于平方根计算的复合函数重复执行平方值的计算预定次数d,且③将复合函数的结果与先前计算的(A+B)/2的值相加,从而计算出最大值。

同时,当请求针对同态密文A和B的最小值运算时,计算装置400,参考图7,可:①计算(A+B)/2的值和(A﹣B)/2的值,②通过使用对应于平方根计算的复合函数来计算(A﹣B)/2的平方并通过使用相应于平方根计算的复合函数重复执行平方值的计算预定次数d,且③从先前计算的(A+B)/2的值中减去复合函数的结果,从而计算出最小值。

同时,在上文中,示出并描述了通过仅比较两个值来输出最大值或最小值,但是在实施方式中,还可针对三个或更多个同态密文来执行最大值运算和最小值运算。例如,当提供三个同态密文时,可将第一和第二同态密文相互比较,且然后将其结果与剩余的同态密文相互比较,以计算三个值中的最大值或三个值中的最小值。

图8是示出根据第一实施例的大小比较方法的图。

例如,当两个值彼此不同时,输出值为0或1;当两个值彼此相同时,输出0.5的比较函数可近似如下。

[公式14]

这里,a表示第一同态密文,b表示第二同态密文,且comp(a,b)表示比较两个输入同态密文的函数,并且当a大时输出1;当b大时输出0;当a与b相同时输出0.5。

参考公式14,用于比较函数的近似函数可包括逆计算。因此,当通过使用诸如公式14这样的近似函数对同态密文A和B进行比较运算时,计算装置400参照图8,可计算初始值a

图9是示出根据第二实施例的大小比较方法的图。

同时,大小比较函数可被表示为如下的符号函数。

[公式15]

comp(a,b)=(sgn(a-b)+1)/2

此处,a表示第一同态密文,b表示第二同态密文,且comp(a,b)表示比较两个输入同态密文的函数,并且当a大时输出1,当b大时输出0,当a与b相同时,输出0.5。sgn()表示符号函数。

因此,大小比较函数的近似可表示为符号函数的近似。

当符号函数满足以下公式16时,用于符号函数运算的复合函数可由下面的公式17表示。

[公式16]

Prop I.f(-x)=-f(x)

Prop II.f(1)=1,f(-1)=-1

Prop III.f′(x)=c(1-x

f(x)表示多项式函数。

[公式17]

如上所述的用于符号函数运算的复合函数可以是对于大于0的输入值获得接近1的输出值,且对于小于0的输入值获得接近-1的输出值的复合函数。

参照图9,当请求用于同态密文的大小比较计算命令时,计算装置400可通过执行以下来执行比较计算:①运算两个值(a-b)之间的差的计算;②通过使用公式17重复计算相应的计算值预定次数d,并且③对计算值进行常数(constant)计算。

同时,在图9的方法中,使用获得两端为1或-1即彼此并行的符号函数的方法。作为理想符号函数的另一个特征,值为0的斜率具有无穷大值,换句话说,值为0的斜率具有垂直形状。关于这一点,在下文中,将描述考虑到这一点的复合函数。

图10是示出用于求得与符号函数的斜率对应的复合函数的方法的图。

大小比较函数的近似可被表达为如上所述的符号函数的近似。

[公式18]

Prop I.g(-x)=-g(x) (Origin Symmetry)

这里,g(x)表示用于符号函数运算的另一复合函数,并且c表示输出值的收敛范围,该输出值的收敛范围可被定义为小于1的值,诸如1/4、1/3等。

当符号函数满足公式18时,计算装置400可通过使用图10所示的方法来计算g(x)的函数。

当通过图10所示的方法运算复合函数时,大小比较方法也可通过结合参考图9描述的复合函数来执行。下面将参考图11对此进行描述。

图11是示出根据第三实施例的大小比较方法的图。

参照图11,当请求用于同态密文的大小比较计算命令时,计算设备400可通过执行如下来执行比较计算:①运算两个值(a-b)之间的差的计算,②以重复次数d

图12是针对每个重复次数示出与符号函数对应的复合函数的形状的图,且图13是针对每个重复次数示出与符号函数有关的各种复合函数的形状的图。

参照图12,可确认参考图9描述的复合函数f

参照图13的左图,可确认参考图10描述的复合函数具有比图9的复合函数更高的斜率,但两端都发生错误。因此,当在初始阶段使用图10的复合函数,且在稍后阶段使用图9的复合函数时,换句话说,当通过使用如图11中的方法组合的复合函数时,与仅使用图9的复合函数的情况相比,或用相同的重复次数来比较,可获得理想的形状。

具体地,参考图13的右图,可确认,与应用图9的复合函数5次相比,当图10的复合函数被执行两次且应用图9的函数被施加三次时,可获得理想的形状。

同时,可以用于执行每个处理的程序代码的形式来执行根据各个实施例的密文处理方法,并且可将其存储在记录介质中并进行分发。在这种情况下,安装有记录介质的设备可执行诸如上述加密或密文处理的操作。

记录介质可以是各种类型的计算机可读介质,诸如ROM、RAM、存储芯片、存储卡、外部硬盘、硬盘、CD、DVD、磁盘、或磁带。

尽管参考附图进行了本申请的描述,但是权利的范围由所附权利要求限定,并且不被解释为限于所描述的实施例和/或附图。另外,应该清楚地理解,对于本领域技术人员显而易见的是,权利要求的实施例的各种改进、修改和变化被包括在本申请的权利的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号