顺序保持加密系统、设备、方法和程序的制作方法

文档序号:7989855阅读:155来源:国知局
顺序保持加密系统、设备、方法和程序的制作方法
【专利摘要】顺序保持加密系统包括根据预定分布(X)以数据的求和的形式生成加密文本的加密装置。加密装置使用如下分布作为分布(X)来生成加密文本,按照该分布,根据与随机确定的比特长度对应的分布随机选择具有该比特长度的数据。
【专利说明】顺序保持加密系统、设备、方法和程序
【技术领域】
[0001]本发明涉及一种顺序保持加密系统、加密设备、顺序保持加密方法和顺序保持加密程序。
【背景技术】
[0002]密码系统用来确保通信中的数据保密性。存在例如在非专利文献I中作为有关技术公开的系统。
[0003]引用列表
[0004]非专利文献
[0005]NPLl: Alexandra Boldyreva, Nathan Chenette, Younho Lee and Adam0' Neill, Order-Preserving Symmetric Encryption.EUR0CRYPT2009, pp.224-241

【发明内容】

[0006]技术问题
[0007]虽然密码系统用来确保通信中的数据保密性,但是使数据完全保密在应用方面未必有用,并且使数据过于保密在一些情况下破坏有用性。
[0008]例如,在比较两项数值数据的小和大的大小时存在问题。虽然如果可以直接读取两项数据则可以比较m和m’的小`和大的大小,但是根据密码系统(比如AES和DES)加密并且存储m和m’时,即使读取这些密文,仍然不能比较m和m’的小和大的大小。虽然可以通过解密这些密文并且解密m和m’来比较m和m’的小和大的大小,但是需要私用密钥以解密密文,并且因此不知道私用密钥的用户不能比较小和大的大小。另外,解密需要计算成本,因此即使对于知道私用密钥的用户仍然不容易比较多个数据的小和大的大小。
[0009]以上事项特别地在安全数据库中变成显著问题。这是因为从安全观点来看不希望如在数据库中那样存储明文,并且因此有必要加密并且存储明文。在数据库中存储这些密文的密钥使加密无意义,并且然后有必要比较未用密钥加密的数据的小和大的大小。另外,即使有可能获得密钥,仍然在数据库中存储多项数据,并且因此解密所有多项数目并且比较数据的小和大的大小在效率方面不现实。
[0010]另外,预计伴随云计算技术的近来发展,用户在云上的数据库中越来越多地存储数据。因此,比较数据库中的加密的数据的小和大的大小的技术很可能在不远的将来变得颇为重要。
[0011]如非专利文献I的作者承认的那样,仅仅不完全地遵守非专利文献I提出的系统的安全性,这在将这一系统投入实用时引起问题。
[0012]本发明的目的因此是提供一种执行可以确保安全的顺序保持加密的顺序保持加密系统、加密设备、顺序保持加密方法和顺序保持加密程序。
[0013]问题的解决方案
[0014]根据本发明的一种顺序保持加密系统具有加密装置,该加密装置将密文生成为符合预先确定的分布X的数据的求和,并且该加密装置使用以如下格式代表的分布X来生成密文,该格式为根据与随机确定的比特长度匹配的分布随机选该择比特长度的数据。
[0015]根据本发明的一种加密设备具有加密装置,该加密装置将密文生成为符合预先确定的分布X的数据的求和,并且加密装置使用以如下格式代表的分布X来生成密文,该格式为根据与随机确定的比特长度匹配的分布随机选择该比特长度的数据。
[0016]根据本发明的一种顺序保持加密方法包括:将密文生成为符合预先确定的分布X的数据的求和;并且使用以如下格式代表的分布X来生成密文,该格式为根据与随机确定的比特长度匹配的分布随机选择该比特长度的数据。
[0017]根据本发明的一种顺序保持加密程序使计算机执行加密处理,该加密处理将密文生成为符合预先确定的分布X的数据的求和,并且在加密处理中使计算机使用以如下格式代表的分布X来生成密文,该格式为根据与随机确定的比特长度匹配的分布随机选择该比特长度的数据。
[0018]本发明的有利效果
[0019]本发明可以执行可以确保安全的顺序保持加密。
【专利附图】

【附图说明】
[0020][图1]它描绘框图,该框图图示根据本发明的设备的配置示例。
[0021][图2]它描绘说明图,该说明图图示根据本发明的设备间关系。
[0022][图3]它描绘流程图,该流程图图示根据第一示例性实施例的密钥生成处理。
[0023][图4]它描绘流程图,该流程图图示根据第一示例性实施例的加密处理。
[0024][图5]它描绘流程图,该流程图图示根据第一示例性实施例的解密处理。
[0025][图6]它描绘流程图,该流程图图示根据第二示例性实施例的密钥生成处理。
[0026][图7]它描绘流程图,该流程图图示根据第二示例性实施例的RecEnc算法。
[0027][图8]它描绘流程图,该流程图图示根据第二示例性实施例的加密处理。
[0028][图9]它描绘流程图,该流程图图示根据第二示例性实施例的RecEnc算法的流程图。
[0029][图10]它描绘流程图,该流程图图示根据第二示例性实施例的解密处理。
[0030][图11]它描绘流程图,该流程图图示根据第三实施例的加密处理。
[0031][图12]它描绘流程图,该流程图图示根据第三实施例的解密处理。
[0032][图13]它描绘框图,`该框图图示顺序保持加密系统的最小配置示例。
【具体实施方式】
[0033]首先,将描述以下描述的第一至第三示例性实施例中的所有实施例共同的思想。{1,...,N}是明文空间。另外,X是在几乎所有情况下输出正值的概率分布,并且ζ是常数。关于ie {-ζ,...,N},可以用EnC(K,m) = Σi=_ξ, ,mα[i]的形式书写第一至第三示例性实施例中的明文me {I,...,N}的密文。同时,a [i]是与概率分布X匹配的随机数,并且仅知道私用密钥K的那些人可以计算a [i]。
[0034]为了解密密文C,输出满足C=2i=_,,,ma [i]的m作为明文。虽然Enc (K,m)在本发明中是至m之和,但是在Enc (K,m)是O至m之和时,I的明文Enc (K,I)取Enc (K, 1) = α [I]的简单形式,并且因此未确保安全。
[0035]根据本发明,在Εηο(Κ,πι) = Σ?=_?,[i]的右侧上的m更高时,待相加的a [i]的值增加。因此,在m更高时,Enc (K, m)更高。因而,在m〈m’为真时,Enc (K, m)〈Enc (K, m’)为真。
[0036]虽然可以在原理上关于任意X执行本发明,但是分布从安全观点来看优选地在更低概率提供更高数目的比特。在X满足这一性质时,根据X选择每个a [m],并且a [m]在更低概率具有比a [m+1]、a [m+2]和…的比特长度更长的比特长度。在这一情况下,作为更长比特长度的随机数的a [m]隐藏作为更短比特长度的随机数的a [m+1]、a [m+2]和…,并且因此a [m]、a [m] + a [m+1]、a [m] + a [m+2]和...取几乎相同值并且不能被标识。因此,不能标识 Enc(K,m) = 2i=j,...,ma [i]、Enc (K, m+1) = Σ i=_^,...,m+1 a [i]、Enc(K, m+2) = Xi=_5; ;m+2a [i]和...,从而使得不能确保安全。
[0037]作为满足以上性质的X,例如,可以使用如下定义的分布。p[l]、...和p[U]是变成P [I]+...+P [U] =1 的非负整数,并且 η [I]、...和 η [U]为非负整数。D[p[l]、...和 p[U]]在用于输出整数j的概率分布中的概率P[i]提供j=i。B[l]是用于输出与长度n[l]相等或者更少的比特长度的非负整数的概率分布,并且B[U]是用于输出与长度n[U]相等或者更少的比特长度的非负整数的概率分布。X是在根据方法“根据D[p[l]、...和p[U]]选择整数j并且然后根据B[j]选择a ”选择a时a符合的分布。
[0038]在如以上描述的那样定义X时,X在概率P [I]输出与长度η [I]相等或者更少的比特长度的非负整数、在概率Ρ[2]输出比η[1]更长的比特长度η[2]的非负整数,并且在概率Ρ[3]输出比η[2]更长的比特长度η[3]的非负整数…因此,在适当选择P [I]、...和P [U]以及η [I]、...和η [U]时,X满足以上性质。
[0039]接着,以下将描述以`下描述的第一示例性实施例的概况。在第一示例性实施例中,根据Κ=(α [-ζ],..., a [N])定义私用密钥K,并且通过在加密时计算a [I]、...和a [m]之和来获得密文 Enc (K,m) = Σ i=_,,,m a [i]。
[0040]另外,为了解密给定的密文C,为每个m计算Si=I,,ma [i],并且发现提供C=2i=_5;...;ma [i]的 m。
[0041]在第一示例性实施例中,在加密m时,有必要将m+ζ+1项数据a [-ζ ]、...和a [m]相加并且因此加密的计算量与m的大小成比例。另外,解密的计算量同样地与m的大小成比例。因此,虽然根据本示例性实施例有可能在m更小时提供效果,但是效率少于在m更高时以下描述的其它示例性实施例。
[0042]接着,将描述以下描述的第二示例性实施例的概况。与第一示例性实施例相似,虽然m的密文Enc(K,m)在第二示例性实施例中是Enc (K, m) = Σ i='...,m a [i],但是通过更高效的方法执行加密和解密。在第二示例性实施例中,分布B [j]是用于实现高效加密和解密的二项分布Β(τ [j],q),
[0043]同时,τ [1],...,τ [U]和q是参数。另外,二项分布B (k,p’)是在硬币的扔硬币k次时硬币的正面出现的次数符合的分布,其中硬币的正面出现的概率是P’。
[0044]定义符号以描述第二示例性实施例的细节以描述根据本发明的密文的性质。在i的集合是S[j]时,其中根据B[j]选择a [i],等于或者少于m的S[j]的源的集合是 S [m, j], Si e s[m;J] a [i]是 C[m, j],并且 m 的密文 Enc (K, m)被记为 C[m],C[m] = Xi=1; ^;uC[m, j]根据 C[m]的定义成立。
[0045]S[m,j]的源的数目是n[m, j]。发现如下事实:在i属于S[m, j]时,每个a [i]符合分布B[j], S[m, j]具有n[m, j]个源,并且根据二项分布的再现性质,C[m, J-1 = Si es[m;J]a [i]符合分布 Β( τ [j]n[m, j], q)。
[0046]vecn [m] = (n[m, I],..., n [m, U])为真,并且关于矢量 vecu= (u [I],..., u [U]),s(vecu)是[j]u[m]。发现如下事实:(:[ηι] = Σj]为真,并且根据根据二项分布的再现性质,C[m]符合分布B(s(vecn[m]),q)。
[0047]因此,根据vecn[m]确定C[m]符合的分布。类似地,发现如下事实:关于明文m,m’ <m, C [m] -C [m’ ]符合分布 B (s (vecn [m] -vecn [m’ ]),q)。下文将 vecn [m] -vecn [m’ ]称为关于{m’+l,...,m}的“分布确定参数”。vecn [m] =vecn [m] -vec [- ζ -1]为真,并且 vecn [m]是关于{_ ζ -1,...,m}的分布确定参数。下文也将Vecn[m]称为“分布确定参数”。
[0048]对于满足Σ?=1; [i]=l 的 veep’=(p’ [I],...,p’ [U]), vecB(k, veep’)是用于根据方法“在根据数值i的概率为P’ [i]的随机变量X独立选择k个值
a[l].....a[k]时设置在值a[l].....a[k]之中等于j的数目作为n’ [j]”确定输出
vecn= (η [1],...,η,[U])的分布。发现如下事实:根据B [j]选择a [i]的概率是p[j],并且在 veep= (P[I],…,p[U])为真时,vecn[m] = (n[m, I],..., n[m, U])根据二项分布的再现性质符合分布vecB (m+ ζ +1, veep)。
[0049]Algo (k, p’)是根据二项分布B (k, p’)选择输出的算法,并且vecAlgo (k, veep’)是根据分布vecB(k, veep’)选择输出的算法。
[0050]在第二示例性实施例中,使用以上描述的事实来如下计算M的密文C[M],该M是属于明文空间的最大源。`
[0051]首先,根据vecAlgo (Μ+ζ+1,veep)为M选择分布确定参数vecn [Μ]。接着,根据分布 Algo (s (vecn [Μ]), q)选择 C [Μ]。
[0052]使用其它密文来递归地计算密文C[M]。在其中某个明文u,v>u满足以下条件的状态中使用根据本发明的递归。
[0053]?计算u的密文C [u]和V的密文C [V]。
[0054].计算关于{u+1,...,v}的分布确定参数vecn。
[0055].需要计算其密文的明文m属于分节{u+1,...,v}。
[0056]在初始状态中,u和V被分别设置为-ζ -1和Μ。在初始状态中,C[u]是0,并且C[v]和vecn是已经计算的C[M]和vecn[M]。另外,在初始状态中,分节{u+1,...,v}与明文空间匹配,并且然后需要计算其密文的明文m属于分节{u+l,...,v}。因而,在初始状态中满足以上条件。
[0057]使用函数RecEnc (K’,u, v, C[u], C[v], vecn, m)根据二分法递归地计算m的密文如下。同时,K’是随机数序列,该随机数序列是私用密钥的部分。另外,Ceil(X)是输出通过对输入的实际数X的小数点或者更少进行上取整而获得的值的函数。
[0058].在m=u为真时,输出C[u],并且在m=v为真时,输出C [V]。
[0059].计算 W=Ceil (u+v/2)。
[0060]?根据函数Dist (U,V, W,vecn)计算关于{u+1,...,w}的分布确定参数vecn’。同时,作为由vecDist (u, v, w, vecn)使用的随机数,使用伪随机数序列,该伪随机数序列是使用K’来选择的。
[0061].通过使用vecn’,根据“w的密文在u的密文和V的密文是C[u]和C[v]的条件之下符合”的分布Dist (C [u], C [V], vecn, vecn’)选择C[w]。对于用来根据Dist (C[u], C[V], vecn, vecn’)选择C[w]的随机数,使用伪随机数序列,该伪随机数序列是使用K’来选择的。
[0062]?在 m < w 为真时,递归地执行 RecEnc (K,, u, w, C[u], C [w], vecn’ , m)。
[0063].如果不是,则递归地执行 RecEnc (K,, w, v, C[w], C[v], vecn-vecn’ , m)。
[0064]伪随机数用来根据以上算法从Dist (C[u], C[v], vecn, vecn’)选择源以便确保对于相同(C[u], C[V], vecn, vecn’)一直输出相同密文C[w]。关于各种输入m执行以上算法,并且计算C[w]。C[w]是w的密文,并且值C[w]无论m如何都一直取相同值。然而,使用真随机数以计算Dist (C[u],C[v], vecn, vecn’)未确保未一直取相同值。同时,确定性地确定伪随机数序列的值,从而使得使用伪随机数序列而不是真随机数确保Dist (C[u], C[V], vecn, vecn’) 一直输出相同值 C[w]。
[0065]定义函数HG(k, t, I)和vecHG(k, vect, I)如下。同时,k、t和I为非负整数。另外,vect=(t[l],...,t[U])是用满足=Σ% ut[i]的非负整数t[l],...,t[U]形成的矢量。
[0066]*HG(k, t, I):是根据在选择的球之中的黑球的数目在从包括k_t个白球和t个黑球的瓶选择I个球时符合的分布确定输出的概率算法。
[0067].vecHG(k, vect, I):是 根据以下分布确定输出η’= (η’ [I],...,η’ [U])的概率算法:在瓶中有k个球。当在球上书写标记1、...和U之一并且标记为i的球数目为t[i]的条件之下选择I个球时,在选择的球之中包括的标记为i的球数目为n’ [j]。
[0068]在这一情况下,以上vecDist (U,V, W,vecn)和 Dist (C[u],C[v],vecn, vecn’)是 vecDist (u, v, w, vecn) =VecHG (v_u, vecn, w_u; cc)、Dist (C[u], C[v], vecn, vecn') =C[u] +HG (s (vecn), C[v]-C[u], s (vecn’); cc’)。同时,符号“A(x;r) ”意味着“在使用r作为随机数来执行AU)时的输出”。cc和cc’是使用K’来选择的伪随机数序列。
[0069]与以上描述的加密算法相似,根据二分法递归地执行根据第二示例性实施例的解密算法。在根据第二示例性实施例的加密算法与解密算法之间的不同如下。
[0070]在加密算法中的读为“C[u]是在m=u时的输出并且C[V]是在m=v时的输出”的一部分改变成读为“u是在C=C[u]时的输出,V是在C=C[V]时的输出,并且输出C在u=V时为无效密文这样的消息”。同时,C是需要被解密的密文。另外,不同在于递归地调用RecDec而不是递归地调用RecEnc。
[0071]接着,以下将描述以下描述的第三示例性实施例的概况。虽然已经用第三示例性实施例描述其中使用二项分布Β(τ [j],q)作为B[j]的情况,但是原理上满足以下性质的分布执行与第二示例性实施例中的操作相同的操作。
[0072]?在根据 B[j],...,B[k]选择 a [j],...,a [k]时,易于从 a [j]+...+a [k]符合的分布来选择源。
[0073].在“关于每个j,属于分节{u+1,..., V}的S[j]的源的数目是n[j]”的条件之下,易于从“属于分节{u+l,...,Ceil(u+v/2)}的S[j]的源的数目”符合的分布来选择源。
[0074].在u的密文是C[u]、V的密文是C [V]并且“关于每个j,属于分节{u+1,..., v}的s[j]的源的数目是n[j]”的条件之下,易于从W=Ceil(u+v/2)的密文符合的分布来选择源。
[0075]例如,作为B[j],可以使用正态分布Ν(τ [j],V[j])和τ [j]=V[j]=2jA/2。同时,Ν(μ ,V)代表正态分布,该正态分布的μ是平均值而V是离散。在这一情况下,通过在第二示例性实施例中用充分函数Algo’和Dist’替换Algo和Dist并且改变伪随机数序列cc和cc ’的比特数目来执行运算。
[0076]最后,将描述根据第二示例性实施例的安全性。如以上描述的那样,根据第二示例性实施例的密文与根据本发明的第一示例性实施例的密文相同。因此,根据第二示例性实施例的安全性与根据第一示例性实施例的安全性相同。可以如以上根据第一示例性实施例描述的那样确保安全性,这确保根据第二示例性实施例的安全性。
[0077]第一示例性实施例
[0078]将参照图1和图2描述根据本发明的顺序保持加密系统的配置。如图1中所示,根据本示例性实施例的每个设备(图2中所示的加密设备100、解密设备200和密钥生成设备300)具有输入/输出单元11、计算单元12、存储单元13和通信单元14。这些设备由信息处理设备(比如根据例如程序操作的个人计算机)实现。另外,在这一情况下,输入/输出单元11、计算单元12、存储单元13和通信单元14例如分别由键盘、CPU、存储器和网络接口实现。另外,如图2中所示,在本示例性实施例中,顺序保持加密系统具有加密设备100、解密设备200和密钥生成设备300。
[0079]在本示例性实施例中,加密设备100包括加密装置101。另外,解密设备200包括解密装置201。虽然下文将描述其中使用加密设备100和解密设备200这两个类型的设备的情况,但是一个设备可以被配置用于包括加密装置和解密装置二者。另外,虽然以下将描述加密算法和解码算法,但是更具`体而言,实现顺序保持加密系统的一个或者多个信息处理设备的CPU根据这些算法执行处理。
[0080]在加密设备100和解密设备200的存储单元13中,预先存储作为密钥的比特序列(K)(以下称为“密钥K”)。密钥K由被称为密钥生成装置的装置生成。图2中所示的示例假设如下情况,其中从加密设备100和解密设备200分离地预备密钥生成设备300,并且这一设备包括密钥生成装置301并且执行生成密钥K的处理。然而,本发明不限于这一示例,密钥生成装置可以被配置用于包括于加密设备100、解密设备200或者与这些设备不同的第三设备中并且执行生成密钥K的处理。从安全观点来看,密钥K无需被除了加密设备100或者解密设备200之外的设备知道,并且因此加密设备100或者解密设备200希望包括密钥生成装置并且执行生成密钥K的处理。
[0081]图2中所示的每个装置的数据输入和输出如下。
[0082]密钥生成装置301生成密钥K并且输出生成的密钥K。更具体而言,密钥生成装置301由根据程序操作的信息处理设备的CPU实现。
[0083]加密装置101接收密钥K和明文m的输入、使用密钥K来加密接收的明文m并且输出密文C。更具体而言,加密装置101由根据程序操作的信息处理设备的CPU实现。
[0084]解密装置201接收密钥K和密文C的输入、使用密钥K来解密接收的密文C并且输出明文m。更具体而言,解密装置201由根据程序操作的信息处理设备的CPU实现。
[0085]在本示例性实施例中,根据以下过程执行处理。此外,在加密设备100和解密设备200的存储单元13中写入由密钥生成装置301预先生成的密钥K。
[0086]首先,加密设备100在存储单元13中写入由输入/输出单元11作为输入而接收的明文m。
[0087]接着,加密设备100从存储单元13读取密钥k和明文m、通过加密装置101执行作为输入的密钥K和明文m的加密处理并且计算密文C作为输出。
[0088]接着,加密设备100从通信单元14向解密设备200传输密文C。
[0089]解密设备200使用通信单元14来接收密文C。另外,解密设备200从存储单元13读取密钥K、借助解密装置201执行作为输入的密钥K和密文C的解码处理并且计算明文m作为输出。
[0090]接着,将描述由顺序保持加密设备执行的处理的细节。下文中,{1,...,M}是明文空间,并且U、λ和ζ是常数。关于i=l,...,U,B[i]是概率分布。作为B[j],例如,可以使用关于分节{0,...,τ [j]}的均匀分布或者二项分布Β(τ [j],p[j])和正态分布
Ν(τ [j],V[j])。
[0091]从安全观点来看,λ是等于或者多于80的值。τ [j]、p[j]和V[j]例如是τ [j]=V[j]=2jA 和 p[j]=q。
[0092]例如,在引用的参考文献(YOTSUJI,Tetsuaki, "Probability DistributionRandom Number Generating Method for Calculator Simulation", Pleiades PublishingHouse, June2010)中公开计算二项分布和正态分布的算法。
[0093]ρ[1],...,ρ[υ]为非负整数并且满足Σμ, uP[i]=l,并且veep= (p[I],..., p[U])为真。vecBer`noulli (veep)是输出I或者更多和U或者更少的值并且在概率p[j]输出j的算法。虽然可以通过任何方法实现vecBernoulli (veep),但是例如通过以下方法实现 vecBernoulli (veep)。同时,P[k] = Σ i=1,..,kp [i]为真。另外,P[0]=0为真。
[0094].从分节{0,...,2λ}随机均匀选择X。
[0095].发现提供2AP[j-l]<x ( 2AP[j]的j并且输出这一个j。
[0096]在每个设备的存储单元13中存储参数M、U、ζ、λ和vecp,并且每个设备可以在必要时使用这些值。
[0097]接着,将描述由密钥生成装置执行的处理。由根据本示例性实施例的密钥生成装置301执行的处理的细节如下。
[0098]密钥生成装置301关于i=_ ζ,...,N执行以下处理(图3中的步骤IKl )。
[0099].密钥生成装置301执行vecBernoulli (vecp)并且获得输出j [i] (IKl)。
[0100]?密钥生成装置301根据B[j[i]]选择a [i] (IKl)0
[0101]接着,密钥生成装置301输出Κ=(α [-ζ ],...,α [N])作为密钥K(图3中的步骤1Κ2)。在本示例性实施例中,密钥生成装置301向加密设备100和解密设备200输出密钥K0
[0102]接着,将描述由加密装置执行的处理。由根据本示例性实施例的加密装置101执行的处理的细节如下。
[0103]加密装置101从存储单元13读取密钥K= (α [-ζ],..., α [N])和明文m(图4中的步骤IEl )。[0104]接着,加密装置101计算C=2i=_,,,ma[i](图4中的步骤1E2)。
[0105]接着,加密装置101输出C作为密文C (图4中的步骤1E3)。在本示例性实施例中,加密装置101向解密设备200输出密文C。
[0106]接着,将描述由解密装置执行的处理。由根据本示例性实施例的解密装置201执行的处理的细节如下。
[0107]解密装置201从存储单元13读取密钥Κ=(α [-ζ ],...,α [N])和密文C(图5中的步骤IDl )。
[0108]解密装置201计算S=2i=_,,,Qa[i](图5中的步骤1D2)。
[0109]接着,在C ( S为真时,解密装置201输出指示密文无效这样的消息并且标记异常停止(步骤1D2)。同时,在C SS不为真时,解密装置201关于i=l,...,N执行以下处理(I)和(2)(步骤1D2)。
[0110](I)将 S+a [i]新设置为 S (步骤 1D2)。
[0111](2)在CSS为真时,输出i作为解密结果并且进行普通停止(步骤1D2 )。
[0112]另外,在输入是无效数据时,解密装置201输出密文无效这样的消息并且进行异常停止(步骤1D2)。此外,通知不限于输出消息并且可以用任何方式来提供,只要可以通知密文无效即可。
[0113]如以上描述的那样,根据本示例性实施例,有可能在其中确保安全性的加密的状态中高效比较明文的小和大的大小。
[0114]第二示例性实施例`
[0115]根据第二示例性实施例的设备配置以及参数M、U、ζ、λ和vecp与第一示例性实施例中的设备配置和参数相同。同时,本示例性实施例与第一示例性实施例不同在于每个装置的功能。
[0116]在本示例性实施例中,P是除了根据第一示例性实施例的配置之外的参数。从安全观点来看,P是等于或者多于160比特的值。另外,在本示例性实施例中,τ [I],..., τ [U]是参数。从安全观点来看,τ [j+1]/τ [j]是等于或者多于2'的值。例如,在τ [j]=2JA为真时,满足这一性质。在每个设备的存储单元13中存储每个参数,并且每个设备可以在必要时使用这些值。
[0117]关于矢量vecu= (u[I],..., u[U]), s (vecu)是 Σ」=1,...;υ τ [j]u[m]。Algo、vecAlgo、Dist和vecDist是以下算法。
[0118].Algo (k, p'):根据二项分布B (k, p’)选择输出。
[0119].vecAlgo (k, vecp')::根据在以上概括中描述的分布vecB (k, vecp’)选择输出。
[0120].Dist (Cl, C2, vecn, vecn'):输出 Cl+HG (s (vecn),C2-C1, s (vecn,))。同时,HG 是在以上概括中描述的函数。
[0121].vecDist (u, v, w, vecn):输出 vecHG (v_u, vecn, w_u)。同时,vecHG 是在以上概括中描述的函数。
[0122]例如,在引用的参考文献(YOTSUJI,Tetsuaki, "Probability DistributionRandom Number Generating Method for CalculatorSimulation^, Pleiades PublishingHouse, June2010)中公开计算二项分布和HG的算法。
[0123]可以例如根据以下方法计算vecAlgo(k,vecp’)。同时,vecp’=(p’ [I],..., p' [U])和 Σ」=ι,...,υΡ’ [j]=l 为真。
[0124]Lk’=k 为真。
[0125]2.关于j=l,…,U-1执行以下(I)和(2)。
[0126](I)根据二项分布 B(k, p’ [j])选择 n[j]。
[0127](2)用 k’_n[j]改写 k’。
[0128]3.η [U] =k'为真。
[0129]4.输出 vecn=(n[l],...,n[U])。
[0130]可以例如根据以下方法计算vecHG(k, vect, I)。同时,vect= (t[I],…,t[U])和2j=1,...,ut[j]=k 为真。
[0131]1.1^’=1^和1’=1为真。
[0132]2.关于j=l,…,U-1执行以下(I)和(2)。
[0133](I)执行 HG(k’,t[j],I’),并且获得输出 n[j]。
[0134](2)用 k’ 改写 k’_t[j],并且用 I’ 改写 l’_n[j]。
[0135]3.n[U]=l,为真。
[0136]4.输出 vecn=(n[l],...,n[U])。
`[0137]接着,将描述由密钥生成装置执行的处理。由根据本示例性实施例的密钥生成装置301执行的处理的细节如下。
[0138]密钥生成装置301随机选择P比特的比特序列K’(图6中的步骤2K1)。
[0139]接着,密钥生成装置301执行vecAlgo (Μ+ζ+1,vecp),并且获得输出vecn [M](图6中的步骤2K2)。
[0140]接着,密钥生成装置301执行Algo(S(Vecn[M]),q),并且获得输出C[M](图6中的步骤2K3)。
[0141]接着,密钥生成装置301输出K= (K’,vecn [M],C [M])(图6中的步骤2K4)。
[0142]Ceil(x)是输出通过上取整输入的实际数X的小数点或者更少而获得的值的函数,用于算法Dist和vecDist的计算的随机数的比特数目为L和L’,PRF’ (K,.)是使用K作为密钥的伪随机函数,并且输出是L’比特的伪随机数。另外,符号“a| |b”代表在比特序列a与b之间的耦合,并且,对于算法A,“A (x; r) ”代表“通过使用r作为随机数来执行A (x)而获得的输出”。
[0143]递归地定义算法RecEnc (K,,U,V, C [u],C [V],vecn, m)如下。
[0144]在m=u为真时,输出C[u],并且在m=v为真时,输出C[v](图7中的步骤2RE1 )。
[0145]接着,计算w=Ce i I ((u+v) /2)(图 7 中的步骤 2RE2 )。
[0146]接着,计算cc=PRF (K’,(v-u I I vecn I |w_u))(图 7 中的步骤 2RE3)。另外,计算vecn’ =VecDist (u, v, w, vecn; cc)(图 7 中的步骤 2RE3)。
[0147]接着,计算cc’ =PRF' (K,, s (vecn) | | (C[v]-C[u]) | | s (vecn,))(图 7 中的步骤2RE4)。另外,计算 C[w]=Dist(C[u], C[v], vecn, vecn’ ; cc,)(图 7 中的步骤 2RE4)。
[0148]接着,在m ( w 为真时,输出 RecEnc (K,, u, w, C[u], C[w], vecn’,m)(图 7 中的步骤2RE5)。
[0149]同时,在m>w 为真时,输出 RecEnc (K,, w, v, C[w], C[v], vecn-vecn' , m)(图 7 中的步骤2RE6)。[0150]接着,将描述由加密装置执行的处理。由根据本示例性实施例的加密装置101执行的处理的细节如下。
[0151]加密装置101接收K= (K’,C [M],vecn [M])作为输入(图8中的步骤2E1)。
[0152]接着,加密装置101 执行 RecEnc’ (K,,- ζ _1,M,0,C[M],vecn[M],m)(图 8 中的步骤 2E2)。
[0153]递归地定义算法RecDec (K,,U,V, C [u],C [V],vecn, m)如下。
[0154]在u≤O为真时,执行以下处理(图9中的步骤2RD1)。更具体而言,在C=C[u]为真时,输出u,在m=C[v]为真时,输出V,并且在u=v为真时,输出指示密文无效这样的消息(图9中的步骤2RD1)。
[0155]接着,计算w=Ce i I ((u+v) /2)(图 9 中的步骤 2RD2 )。
[0156]接着,计算cc=PRF (K’,(v-u I I vecn I |w_u))(图 9 中的步骤 2RD3)。另外,计算vecn’ =VecDist (u, v, w, vecn; cc)(图 9 中的步骤 2RD3)。
[0157]接着,计算cc’ =PRF' (K,, s (vecn) | | (C[v]-C[u]) | | s (vecn,))(图 9 中的步骤2RD4)。另外,计算 C[w] =Dist (C[u],C[v],vecn, vecn’ ; cc’(图 9 中的步骤 2RD4)。
[0158]接着,在m ( w 为真时,输出 RecDec (K,, u, w, C[u], C[w], vecn’,m)(图 9 中的步骤2RD5)。
[0159]同时,在m>w 为真时,输出 RecDec (K,, w, v, C[w], C[v], vecn-vecn’ , m)(图 9 中的步骤2RD6)。
[0160]接着,将描述由解密装置执行的处理。由根据本示例性实施例的解密装置201执行的处理的细节如下。
[0161]解密装置201接收K= (K’,C [M],vecn [M])作为输入(图10中的步骤2D1)。
[0162]接着,解密装置201 执行 RecDec’(K,,- ζ _1,M,0,C[M],vecn[M],m)(图 10 中的步骤 2D2)。
[0163]如以上描述的那样,根据本示例性实施例,有可能在其中确保安全性的加密的状态中高效比较明文的小和大的大小。另外,根据本示例性实施例,有可能通过比第一示例性实施例中的方法更高效的方法执行加密和解密处理。
[0164]第三示例性实施例
[0165]根据第三示例性实施例的设备配置以及参数M、U、ζ、λ和vecp与第一示例性实施例中的设备配置和参数相同。同时,本示例性实施例与第一示例性实施例不同在于每个装置的功能。
[0166]在本示例性实施例中,V[l],..., V[n]是参数,并且,除了第一示例性实施例的配置之外,关于 vecu= (u[I],..., u[U]), t (vecn[Μ]) = Σ i=1; ^;uu[i]V[i]为真。
[0167]V[j]可以例如被设置为V[j]=2JA。Normal ( μ,V)是根据平均值μ和离散V的正态分布来选择输出的算法。在根据第三示例性实施例的密钥生成处理中,将根据第二示例性实施例的密钥生成装置的Alg0(S(VeCn[M]),q)改变成以下算法Algo,(s(vecn[Μ]),t (vecn [Μ]))。
[0168].根据 Normal (s (vecn [Μ]),t (vecn [Μ]))选择 C [Μ]。
[0169].输出 C[M]。
[0170]如下定义算法Dist’ (C[u], C[v], vecn, vecn') ?[0171]C=C [u]+s (vecn,)+Normal (2 (C [V]-C [u]-s (vecn)) V (t (vecn,)/t (vecn))、V (t (vecn’)t (vecn-vecn’)/t (vecn)))为真,并且输出 C。
[0172]用于算法Dist’的计算的随机数的比特数目是L”,PRF" (K,.)是使用K作为密钥的伪随机函数,并且输出是L”比特的伪随机数。RecEnc’ (K', u, v, C[u], C[v], vecn, m)为用以下过程替换根据第二示例性实施例的RecEnc (K’,u, v, C[u], C[v], vecn, m)(步骤2RE4)。
[0173]计算cc’=PRF" (K,,s(vecn) I I (C[v]_C[u]) I I s(vecn,))。另外,计算 C[w]=Dist,(C [u],C [v],vecn, vecn,; cc')。
[0174]接着,将描述由加密装置执行的处理。由根据本示例性实施例的加密装置101执行的处理的细节如下。
[0175]加密装置101接收K= (K’,C [M],vecn [M])作为输入(图11中的步骤3E1)。
[0176]加密装置101 执行 RecEnc’ (K,,- ζ _1,M,0,C[M],vecn[M],m)(图 11 中的步骤3E2)。
[0177]同时,RecDec’ (K' , u, v, C [u], C [v], vecn, m)为用以下过程替换根据第二示例性实施例的 RecDec (K,, u, v, C [u], C[v], vecn, m)(步骤 2RD4 )。
[0178]计算cc’=PRF" (K,,s(vecn) I I (C[v]_C[u]) I I s(vecn,))。另外,计算 C[w]=Dist,(C [u],C [V],vecn, vecn,; cc')。
[0179]接着,将描述由解密装置执行的处理。由根据本示例性实施例的解密装置201执行的处理的细节如下。
[0180]解密装置201接收K= (K’,C [M],vecn [M])作为输入(图12中的步骤3D1)。
[0181]解密装置201 执行 RecDec’ (K,,- ζ _1,M,0,C[M],vecn[M],m)(图 12 中的步骤3D2)。
[0182]如以上描述的那样,根据本示例性实施例,有可能以其中确保安全性的加密的状态高效比较明文的小和大的大小。另外,根据本示例性实施例,有可能通过比第一示例性实施例中的方法更高效的方法执行加密和解密处理。
[0183]第四示例性实施例
[0184]通过向根据第一示例性实施例的密文添加随机数R来获得根据第四示例性实施例的密文。通过被添加随机数R来混合密文,从而使得确保更高安全性。根据第四示例性实施例的设备配置与第一示例性实施例的设备配置相同。同时,本示例性实施例与第一示例性实施例不同在于每个装置的功能。
[0185]此外,在本示例性实施例中,可以将ζ设置为O。其它参数与第一示例性实施例中的其它参数相同
[0186]接着,将描述由密钥生成装置执行的处理。由根据本示例性实施例的密钥生成装置301执行的处理的细节如下。
[0187]与根据第一示例性实施例的密钥生成处理相似,密钥生成装置301生成密钥K’。
[0188]接着,密钥生成装置301选择P比特的随机数R。
[0189]接着,密钥生成装置301输出密钥Κ=(Κ’,P )。
[0190]接着,将描述由加密装置执行的处理。由根据本示例性实施例的加密装置101执行的处理的细节如下。
[0191]加密装置101从存储单 元13读取K= (K’,P)和明文m。[0192]接着,加密装置101接收K’和m作为输入、执行与第一示例性实施例中的加密处理相同的加密处理并且获得输出C’。
[0193]接着,加密装置101输出密文C=C’+R。
[0194]接着,将描述由解密装置执行的处理。由根据本示例性实施例的解密装置201执行的处理的细节如下。
[0195]解密装置201从存储单元13读取密钥K= (K’,R)和密文C。
[0196]接着,解密装置201计算C’ =C_R。
[0197]接着,解密装置201接收K’和C’作为输入、执行与第一示例性实施例中的解码处理相同的解码处理并且获得输出m。
[0198]接着,解密装置201输出明文m。
[0199]如以上描述的那样,根据本示例性实施例,有可能在其中确保安全性的加密的状态中高效比较明文的小和大的大小。另外,在本示例性实施例中,可以通过被添加随机数R来混合密文,从而使得与第一示例性实施例比较确保更高的安全性。
[0200]第五示例性实施例
[0201 ] 在第五示例性实施例中,将第四示例性实施例中的“第一示例性实施例”的配置改变成“第二示例性实施例”的配置。也就是说,在第四示例性实施例中描述的配置被应用于在第二示例性实施例中描述的配置。另外,根据本示例性实施例,有可能通过比第四示例性实施例中的方法更高效的方法执行加密和解密处理。
[0202]第六示例性实施例
`[0203]在第六示例性实施例中,将第四示例性实施例中的“第一示例性实施例”的配置改变成“第三示例性实施例”的配置。也就是说,在第四示例性实施例中描述的配置被应用于在第三示例性实施例中描述的配置。另外,根据本示例性实施例,有可能通过比第四示例性实施例中的方法更高效的方法执行加密和解密处理。
[0204]如以上描述的那样,本发明在保证例如安全数据库中的安全性之时实现根据顺序的数据搜索。因而,本发明在防止读取数据时有用并且在借助搜索来使用数据时有用。
[0205]关于新颖性,虽然即使在非专利文献I中公开的系统与本发明的第二示例性实施例相似根据二分法执行递归,但是分布确定参数确保本发明的新颖性。在非专利文献I中公开的系统没有与根据本发明的分布确定参数vecn对应的数据。可以通过基于根据本发明的分布确定参数确定分布来第一次执行递归,从而使得本发明显著地不同于在非专利文献I中公开的系统并且涉及到新颖性。
[0206]另外,分布确定参数也确保本发明的创造性的步骤。通过使用分布确定参数来执行递归,根据第二示例性实施例的密文变得与根据第一示例性实施例的密文相同,并且本发明根据第二示例性实施例也如以上描述的那样保证安全性。在非专利文献I中公开的系统未保证安全性,从而使得本发明涉及到创造性的步骤。
[0207]接着,将描述根据本发明的顺序保持加密系统的最小配置。图13是图示顺序保持加密系统的最小配置示例的框图。如图13中所示,顺序保持加密系统包括加密装置101作为最少部件。
[0208]在运用图13中所示的最小配置的顺序保持加密系统中,加密装置101将密文生成为符合预先确定的分布X的数据的求和。另外,加密装置101使用以如下格式代表的分布X来生成密文,该格式为根据与随机确定的比特长度匹配的分布随机选择该比特长度的数据。
[0209]因而,运用最小配置的顺序保持加密系统可以实现可以确保安全性的顺序保持加
LU ο
[0210]此外,在本示例性实施例中,描述如在以下(I)至(7)中描述的顺序保持加密系统的特有配置。
[0211](I) 一种顺序保持加密系统具有(例如,由加密装置101实现的)加密装置,该加密装置将密文生成为符合预先确定的分布X的数据的求和(例如,a [j]),并且加密装置使用以如下格式代表的分布作为分布X来生成密文,该格式为根据与随机确定的比特长度(例如,j[i])匹配的分布(例如,B[j])随机选择该比特长度的数据(例如,a [j])。
[0212](2)可以运用如下配置,其中顺序保持加密系统具有密钥生成装置(例如,密钥生成装置301),该密钥生成装置选择项的数目与明文空间(例如,(α [_ζ ],...,α [N]))中的源的数目成比例的数据,并且生成和输出包括选择的数据的所有项的集合作为密钥,并且在选择数据时,密钥生成装置选择确定数据的长度的随机数并且选择与选择的随机数匹配的比特长度的数据。
[0213](3)可以运用如下配置,其中在顺序保持加密系统中,加密装置将项的数目与明文的大小成比例的数据相加(例如,0=Σ^ζ._ffla [i])以使用包括数据的多个项的集合的密钥(例如,Κ=(α [-ζ],..., α [N]))以用于加密来加密明文。
[0214](4)可以运用如下配置,其中顺序保持加密系统具有(例如,由解密装置201实现的)解密装置,该解密装置解密使用包括数据的多个项的集合的密钥(例如,K= (α [_ζ ],...,α [N]))加密的密文,并且为了解密密文,解密装置为每个m计算通过将数目与m的大小成比例的数据相加(例`如,_ffla [i])而获得的值、输出其相加的值与密文匹配的m,并且在没有与密文匹配的m时通知密文无效。
[0215](5)可以运用如下配置,其中顺序保持加密系统具有:加密设备,该加密设备具有使用包括数据的多个项的集合的密钥以用于加密的加密装置;以及解密设备,该解密设备具有解密使用密钥而加密的密文的解密装置,并且顺序保持加密系统具有密钥生成装置,该密钥生成装置选择项的数目与明文空间中的源的数目成比例的数据并且生成和输出包括选择的数据的所有项的集合作为密钥,在选择数据时,密钥生成装置选择确定数据的长度的随机数,并且选择与选择的随机数匹配的比特长度的数据,加密装置接收密钥和明文的输入、将项的数目与明文的大小成比例的数据相加并且计算待加密的密文,并且解密装置接收密钥和密文的输入、为每个m计算通过将数目与m的大小成比例的数据相加而获得的值、输出其相加的值与密文匹配的m,并且在没有与密文匹配的m时通知密文无效。
[0216](6)可以运用如下配置,其中顺序保持加密系统具有密钥生成装置,该密钥生成装置随机选择K’、根据预先确定的算法选择确定分布的参数vecn [Μ]、接收vecn [Μ]的输入作为参数,并且根据分布来选择密文C[M],并且输出包括K’、vecn[M]和C[Μ]的集合作为密钥。
[0217](7)可以运用如下配置,其中在顺序保持加密系统中,vecn[M]是包括数据的多个项的集合,并且密钥生成装置在数据的总和是预先确定的值的条件之下根据二项分布来选择在vecn[M]中包括的数据。[0218]以上示例性实施例的部分或者全部可以如在以下备注中那样来描述,然而决不限于以下备注。
[0219](补充备注I)在权利要求6中描述的顺序保持加密系统中,vecn[M]是包括数据的多个项的集合,并且密钥生成装置在数据的总和是预先确定的值的条件之下根据正态分布来选择在vecn[M]中包括的数据。
[0220](补充备注2)在补充备注I中描述的顺序保持加密系统中,加密装置接收密钥和明文的输入并且执行子例程(例如,RecEnc'),并且子例程包括:接收包括明文的分节(例如,u、v)的输入、也接收与在分节的两端的值对应的密文(例如,C[u]、C[v])的输入、也接收分节中的分布确定参数vecn的输入、指定值w并且计算与w对应的密文、根据w将分节划分成两个、根据明文属于划分的分节中的哪个分节接收明文属于的分节的输入并且递归地执行子例程,在计算与w匹配的密文时,首先根据预先确定的算法选择分布确定参数vecn’,然后根据使用vecn、vecn’和与在分节的两端的值对应的密文而选择的分布来选择与w匹配的密文,在根据分布来选择数据时使用伪随机数,并且在输入的明文与计算的其密文的值之一匹配时输出密文。
[0221](补充备注3)在补充备注2中描述的顺序保持加密系统中,vecn’是包括数据的多个项的集合,并且子例程包括在数据的总和是预先确定的值的条件之下根据超几何分布来选择在vecn’中包括的数据。
[0222](补充备注4)在补充备注3中描述的顺序保持加密系统中,通过向超几何分布添加与分节的一端对应的密文来获得确定的分布。
[0223](补充备注5)在补充备注3中描述的顺序保持加密系统中,确定的分布是正态分布。
[0224](补充备注6)在补充备注I中描述的顺序保持加密系统中,解密装置接收密钥和密文的输入并且执行子例程(例如`,RecEnc'),并且子例程包括:接收属于密文空间的分节(例如,C[u]、C[v])的输入的密文的输入、也接收对应于与分节的两端对应的密文的明文的输入(例如,U、V)、也接收分节中的分布确定参数vecn的输入、指定值w并且计算与w对应的密文C[w]、根据C[w]将分节划分成两个、根据输入的密文属于划分的分节中的哪个分节来接收输入的密文属于的分节的输入并且递归地执行子例程,在计算与w匹配的密文时,首先根据预先确定的算法选择分布确定参数vecn’,然后根据使用vecn、vecn’和与在分节的两端的值对应的密文而选择的分布来选择与w匹配的密文,在根据分布来选择数据时使用伪随机数,并且在输入的密文与计算的其密文的值之一匹配时输出密文。
[0225](补充备注7)在补充备注6中描述的顺序保持加密系统中,通过向超几何分布添加与分节的一端对应的密文来获得确定的分布。
[0226](补充备注8)在补充备注6中描述的顺序保持加密系统中,确定的分布是正态分布。
[0227](补充备注9)一种顺序保持加密系统具有:具有加密装置的加密设备;以及具有解密装置的解密设备,并且顺序保持加密系统具有密钥生成装置,该密钥生成装置选择K’、根据预先确定的算法选择确定分布的参数vecn[M]、接收vecn[M]的输入作为参数,并且根据分布来选择密文C[M],并且输出包括K’、vecn[M]和C[M]的集合作为密钥,加密装置接收密钥和明文的输入并且执行子例程,该子例程包括:接收包括明文的分节的输入、也接收与在分节的两端的值对应的密文的输入、也接收分节中的分布确定参数vecn的输入、指定值w并且计算与w对应的密文、根据w将分节划分成两个、根据明文属于划分的分节中的哪个分节接收明文属于的分节的输入并且递归地执行子例程,在计算与w匹配的密文时,首先根据预先确定的算法选择分布确定参数vecn’,然后根据使用vecn、vecn’和与在分节的两端的值对应的密文而选择的分布来选择与w匹配的密文,在根据分布来选择数据时使用伪随机数,并且在输入的明文与计算的其密文的值之一匹配时输出密文,解密装置接收密钥和密文的输入并且执行子例程,并且子例程包括:接收属于密文空间的分节的输入的密文的输入、也接收对应于与分节的两端对应的密文的明文的输入、也接收分节中的分布确定参数vecn的输入、指定值w并且计算与w对应的密文C[w]、根据C[w]将分节划分成两个、根据输入的密文属于划分的分节中的哪个分节来接收输入的密文属于的分节的输入并且递归地执行子例程,在计算与w匹配的密文时,首先根据预先确定的算法选择分布确定参数vecn’,然后根据使用vecn、vecn’和与在分节的两端的值对应的密文而选择的分布来选择与w匹配的密文,在根据分布来选择数据时使用伪随机数,并且在输入的密文与计算的其密文的值之一匹配时输出密文。
[0228](补充备注10)顺序保持加密系统具有:具有加密装置的加密设备;以及具有解密装置的解密设备,并且顺序保持加密系统具有密钥生成装置,该密钥生成装置选择K’、根据预先确定的算法选择确定分布的参数vecn[M]、接收vecn[M]的输入作为参数,并且根据分布来选择密文C[M],并且输出包括K’、vecn[M]和C [Μ]的集合作为密钥,vecn[M]是包括数据的多个项的集合,密钥生成装置在数据的总和是预先确定的值的条件之下根据二项分布来选择在vecn[M]中包括的数据,加密装置接收密钥和明文的输入并且执行子例程,该子例程包括:接收包括明文的分节的输入、也接收与在分节的两端的值对应的密文的输入、也接收分节中的分布确定参数vecn的输入、指定值w并且计算与w对应的密文、根据w将分节划分成两个、根据明文属于划分的分节中的哪个分节接收明文属于的分节的输入并且递归地执行子例程,在计算与w匹配的密文时,首先根据预先确定的算法选择分布确定参数vecn’,然后根据使用vecn、vecn’和与在分节的两端的值对应的密文而选择的分布来选择与w匹配的密文,在根据分布来选择数据时使用伪随机数,并且在输入的明文与计算的其密文的值之一匹配时输出密文,vecn’`是包括数据的多个项的集合,加密装置在数据的总和是预先确定的值的条件之下根据超几何分布来选择在vecn’中包括的数据,解密装置接收密钥和密文的输入并且执行子例程,该子例程包括:接收属于密文空间的分节的输入的密文的输入、也接收对应于与分节的两端对应的密文的明文的输入、也接收分节中的分布确定参数vecn的输入、指定值w并且计算与w对应的密文C[w]、根据C[w]将分节划分成两个、根据输入的密文属于划分的分节中的哪个分节来接收输入的密文属于的分节的输入并且递归地执行子例程,在计算与w匹配的密文时,首先根据预先确定的算法选择分布确定参数vecn’,然后根据使用vecn、vecn’和与在分节的两端的值对应的密文而选择的分布来选择与w匹配的密文,在根据分布来选择数据时使用伪随机数,并且在输入的密文与计算的其密文的值之一匹配时输出密文,并且通过向超几何分布添加与分节的一端对应的密文来获得确定的分布。
[0229](补充备注11)顺序保持加密系统具有:具有加密装置的加密设备;以及具有解密装置的解密设备,并且顺序保持加密系统具有密钥生成装置,该密钥生成装置选择K’、根据预先确定的算法选择确定分布的参数vecn[M]、接收vecn[M]的输入作为参数,并且根据分布来选择密文C [M],并且输出包括K’、vecn [M]和C[M]的集合作为密钥,vecn [Μ]是包括数据的多个项的集合,密钥生成装置在数据的总和是预先确定的值的条件之下根据二项分布来选择在vecn[M]中包括的数据,加密装置接收密钥和明文的输入并且执行子例程,该子例程包括:接收包括明文的分节的输入、也接收与在分节的两端的值对应的密文的输入、也接收分节中的分布确定参数vecn的输入、指定值w并且计算与w对应的密文、根据w将分节划分成两个、根据明文属于划分的分节中的哪个分节接收明文属于的分节的输入并且递归地执行子例程,在计算与w匹配的密文时,首先根据预先确定的算法选择分布确定参数vecn’,然后根据使用vecn、vecn’和与在分节的两端的值对应的密文而选择的分布来选择与w匹配的密文,在根据分布来选择数据时使用伪随机数,并且在输入的明文与计算的其密文的值之一匹配时输出密文,通过向超几何分布添加与分节的一端对应的密文来获得确定的分布,解密装置接收密钥和密文的输入并且执行子例程,该子例程包括:接收属于密文空间的分节的输入的密文的输入、也接收对应于与分节的两端对应的密文的明文的输入、也接收分节中的分布确定参数vecn的输入、指定值w并且计算与w对应的密文C[w]、根据C[w]将分节划分成两个、根据输入的密文属于划分的分节中的哪个分节来接收输入的密文属于的分节的输入并且递归地执行子例程,在计算与w匹配的密文时,首先根据预先确定的算法选择分布确定参数vecn’,然后根据使用vecn、vecn’和与在分节的两端的值对应的密文而选择的分布来选择与w匹配的密文,在根据分布来选择数据时使用伪随机数,并且在输入的密文与计算的其密文的值之一匹配时输出密文,并且确定的分布是正态分布。
[0230]虽然以上已经参照示例性实施例和示例描述了本发明,但是本发明决不限于以上示例性实施例和示例。可以在本领域普通技术人员可以理解的本发明的范围内不同地改变本发明的配置和细节。
[0231]本申请要求对通过引用将全部内容结合于此、于2011年5月18日提交的第2011-111599号日本专利申请的优先权。
[0232]工业适用性
[0233]本发明可以例如用于安 全数据库。通过在数据库中存储由本发明加密的数据,有可能保持数据安全性并且根据顺序搜寻数据,这在工业上适用。预计伴随云计算技术的近来发展,用户越来越多地使用数据库,并且本发明的有用性将在将来进一步改进。
[0234]标号列表
[0235]100加密设备
[0236]101加密装置
[0237]200解密设备
[0238]201解密装置
[0239]300密钥生成设备
[0240]301密钥生成装置。
【权利要求】
1.一种顺序保持加密系统,包括加密装置,所述加密装置将密文生成为符合预先确定的分布X的数据的求和, 其中所述加密装置使用以如下格式代表的所述分布X来生成所述密文,所述格式为随机确定的比特长度的数据根据与所述比特长度匹配的分布而被随机选择。
2.根据权利要求1所述的顺序保持加密系统,还包括密钥生成装置,所述密钥生成装置选择其项的数目与明文空间中的源的数目成比例的数据,并且生成和输出包括选择的数据的所有项的集合作为密钥, 其中,在选择所述数据时,所述密钥生成装置选择确定所述数据的长度的随机数,并且选择与选择的所述随机数匹配的比特长度的数据。
3.根据权利要求1所述的顺序保持加密系统,其中所述加密装置将其项的数目与明文的大小成比例的所述数据相加,以使用用于加密的包括数据的多个项的集合的密钥来加密所述明文。
4.根据权利要求1所述的顺序保持加密系统,还包括解密装置,所述解密装置对使用包括数据的多个项的集合的密钥加密的所述密文解密, 其中为了解密所述密文,所述解密装置针对每个m计算一个值,所述值是通过将其所述数目与m的大小成比例的所述数据相加而获得的;输出如下m,所述m的相加的所述值与所述密文匹配;并且在没有与所述密文匹配的所述m时通知所述密文为无效。
5.根据权利要求1所述的顺序保持加密系统,还包括: 加密设备,所述加密设备包括所述加密装置,所述加密装置使用包括数据的多个项的集合的密钥以用于加密;以及 解密设备,所述解密设备包括解密装置,所述解密装置对使用所述密钥加密的所述密文解密,其中: 所述顺序保持加密系统包括密钥生成装置,所述密钥生成装置选择其项的数目与明文空间中的源的数目成比例的数据,并且生成和输出包括选择的数据的所有项的集合作为所述密钥, 在选择所述数据时,所述密钥生成装置选择确定所述数据的长度的随机数,并且选择与选择的所述随机数匹配的比特长度的数据, 所述加密装置接收所述密钥和明文的输入,将其项的所述数目与所述明文的大小成比例的所述数据相加,并且计算待加密的所述密文,并且 所述解密装置接收所述密钥和所述密文的输入;针对每个m计算一个值,所述值是通过将其所述数目与m的大小成比例的所述数据相加而获得的;输出如下m,所述m的相加的所述值与所述密文匹配;并且在没有与所述密文匹配的所述m时通知所述密文为无效。
6.根据权利要求1所述的顺序保持加密系统,包括密钥生成装置,所述密钥生成装置随机选择K’, 根据预先确定的算法选择确定所述分布的参数vecn[M], 接收所述vecn[M]的输入作为所述参数,并且根据所述分布来选择密文C[M],并且 输出包括所述K’、所述vecn[M]和所述C[M]的集合作为密钥。
7.根据权利要求6所述的顺序保持加密系统,其中: vecn[M]是包括数据的多个项的集合,并且所述密钥生成装置在所述数据的总和是预先确定的值的条件之下,根据二项分布来选择被包括在所述vecn[M]中的所述数据。
8.一种加密设备,包括加密装置,所述加密装置将密文生成为符合预先确定的分布X的数据的求和, 其中所述加密装置使用以如下格式代表的所述分布X来生成所述密文,所述格式为随机确定的比特长度的数据根据与所述比特长度匹配的分布而被随机选择。
9.一种顺序保持加密方法,包括: 将密文生成为符合预先确定的分布X的数据的求和;以及 使用以如下格式代表的所述分布X来生成所述密文,所述格式为随机确定的比特长度的数据根据与所述比特长度匹配的分布而被随机选择。
10.一种顺序保持加密程序,使计算机执行: 加密处理,所述加密处理将密文生成为符合预先确定的分布X的数据的求和, 其中在所述加密处理中使所述计算机使用以如下格式代表的所述分布X来生成所述密文,所述格式为随机确定的比特长度的数据根据与所述比特长度匹配的分布而被随机选择。`
【文档编号】H04L9/06GK103503363SQ201280021751
【公开日】2014年1月8日 申请日期:2012年5月17日 优先权日:2011年5月18日
【发明者】寺西勇 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1