一种不经意量子密钥分配的后处理方法与流程

文档序号:12889859阅读:564来源:国知局
一种不经意量子密钥分配的后处理方法与流程

本发明涉及不经意量子密钥分配及经典的后处理领域,具体涉及一种不经意量子密钥分配的后处理方法。



背景技术:

如今大数据的发展越来越快,数据库查询服务变得越来越广泛,因此查询数据库时的隐私问题也变得越来越重要。这种在数据库查询时的隐私保护问题最早由chor等人在1995年提出,被称为隐私信息检索(privateinformationretrieval,pir),这种策略能够避免数据库持有者获取用户查询语句的相关信息,从而保护用户隐私,但同时也暴露了数据库安全性的问题。随后gertner等人针对数据库安全性的问题提出了对称隐私信息检索(symmetricallyprivateinformationretrieval,spir),这可以被描述为:一个用户alice想获取数据库持有者bob所持数据库中的一个元素,但她不希望bob知道自己具体对哪个元素感兴趣(用户隐私),反过来bob不允许alice获得数据库中其他敏感的信息(数据库隐私)。

由于经典spir方案的通信和计算复杂度很高,giovannetti等人在2008年首次提出用量子方法来解决这个问题,即量子隐私查询(quantumprivatequery,qpq)。量子隐私查询的出现很好地解决了经典方案的不足,但是这种方案存在不实用的缺点。于是jakobi等人在2011年提出了一种实用的数据库隐私查询方案,该方案在数据库和查询用户之间进行不经意量子密钥分配,并经过经典的后处理过程,来实现隐私查询的目的。这种量子隐私查询方案相对较为实用,因为它只需要制备单光子,现有技术设备容易实现,因此能更好地推广到实际应用中。此外,该方案还能够有效抵抗量子存储攻击、发送伪造量子态攻击以及纠缠测量攻击,同时还能抵抗信道的损失。

然而,已有的基于单光子的不经意量子密钥分配的后处理方法都还没有达到精确控制查询用户已知密钥位数的效果,也就是说,查询用户最终获得的已知密钥位数是概率性的,这可能会对数据库的安全性造成影响,此外还无法适用于一些特殊的数据库查询服务,例如返回指定个数查询结果的数据库查询服务。



技术实现要素:

本发明的目的在于解决现有不经意量子密钥分配的后处理方法的不足,提供一种不经意量子密钥分配的后处理方法,以期使数据服务中心能根据具体的应用需求,精确地控制查询用户知道任意位数(但是事先约定好的)的密钥,从而既能提高数据库的安全性,又能更好地应用于一些特殊的数据库查询服务。

本发明为解决技术问题所采用如下的技术方案是:

本发明一种不经意量子密钥分配的后处理方法的特点是,在数据库查询服务中,存在一个数据服务中心s和一个查询用户u,所述数据服务中心s向所述查询用户u分配一个n位不经意密钥k,其中,所述数据服务中心s知道所述不经意密钥k中所有的n比特,而所述查询用户u仅知道所述不经意密钥k的任意m比特,1≤m≤n,且所述数据服务中心s不知道所述查询用户u具体m比特的位置;所述后处理方法是按如下步骤进行:

步骤1:判断m=1是否成立,若成立,则执行步骤2;否则,执行步骤4;

步骤2:所述数据服务中心s和所述查询用户u之间进行n次不经意量子密钥分配,从而建立n个n位的预处理不经意密钥{k1,k2,…,ki,…kn},ki表示任意第i个n位的预处理不经意密钥,i=1,2,...,n;

步骤2.1:所述查询用户u事先生成一个秘密的正整数x,1≤x≤n;

步骤2.2:初始化i=1;

步骤2.3:所述数据服务中心s利用不经意量子密钥分配方法生成第i个长度为n的原始不经意密钥roki,其中,所述数据服务中心s知道所述第i个原始不经意密钥roki所有的n比特,而所述查询用户u仅知道所述第i个原始不经意密钥roki中的若干比特;并将所述若干比特中的一个已知位的下标记为j,1≤j≤n;

步骤2.4:所述查询用户u利用式(1)计算第i轮位移量si并发送给所述数据服务中心s:

si=j-x(1)

步骤2.5:所述数据服务中心s根据所述第i轮位移量si对所述第i个原始不经意密钥roki进行移位,使得所述数据服务中心s和所述查询用户u之间共享第i个n位的预处理不经意密钥ki;

步骤2.6:将i+1赋值给i,并判断i>n是否成立,若成立,则执行步骤3,否则返回步骤2.3;

步骤3:所述数据服务中心s利用式(2)计算所述n位不经意密钥k:

所述查询用户u利用式(3)得到密钥位k(x):

式(3)中,k(x)是所述n位不经意密钥k的第x位,ki(x)是所述第i个n位的预处理不经意密钥ki的第x位;

步骤4:初始化变量t=1;

步骤5:判断t<m是否成立,若成立,则将赋值给n后,执行步骤2和步骤3,得到位不经意密钥kt′;否则,执行步骤7;

步骤6:令t+1赋值给t后,返回步骤5;

步骤7:将赋值给n后,执行步骤2和步骤3,从而得到位不经意密钥k′m;

步骤8、将m个不经意密钥{k1′,k2′,…,kt′,…k′m}按序拼接起来,从而组成一个n位的不经意密钥k;

步骤9:所述查询用户u随机生成一种置换函数π(·),并公开给所述数据服务中心s;

步骤10、所述查询用户u和所述数据服务中心s分别利用式(4)对所述n位的不经意密钥k进行置换,得到置换后的n位不经意密钥k*

k*=π(k)(4)

从而使得所述数据服务中心s知道所述置换后的n位不经意密钥k*中所有的n比特,而所述查询用户u仅知道所述置换后的n位不经意密钥k*中的m比特,且所述数据服务中心s不知道所述查询用户u具体m比特的位置。

与已有技术相比,本发明的有益效果体现在:

1、针对已有的不经意量子密钥分配的后处理方法不足,本发明通过多次执行不经意量子密钥分配及多次移位异或的方法,从而实现了数据服务中心精确控制查询用户的已知密钥位数,使得不经意的量子密钥分配更实用。

2、本发明通过多次执行不经意量子密钥分配、多次移位异或及最终的随机置换方法能够精确控制查询用户所能知道的不经意密钥中的比特位数,确保查询用户只能检索数据库中所规定的条目(项)数,从而减少了其它数据项泄露的风险,保护了数据库的安全性。

3、本发明通过多次执行不经意量子密钥分配、多次移位异或及最终的随机置换方法,能够精确控制查询用户恰好知道不经意密钥中的任意1比特或任意m比特,从而扩大了不经意量子密钥分配的应用范围,例如返回一个查询结果的最近隐私查询,返回多个(任意m个)查询结果的近邻隐私查询。

附图说明

图1为本发明数据服务中心s向查询用户u精确分配1位不经意密钥的后处理示意图;

图2为本发明数据服务中心s向查询用户u精确分配m(m>1)位不经意密钥时的拼接示意图;

图3为本发明数据服务中心s向查询用户u精确分配m(m>1)位不经意密钥时的随机置换示意图。

具体实施方式

下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。

本实施例中,一种不经意量子密钥分配的后处理方法,是在数据库查询服务中,存在一个数据服务中心s和一个查询用户u,数据服务中心s向所述查询用户u分配一个n位不经意密钥k,其中,数据服务中心s知道不经意密钥k中所有的n比特,而查询用户u仅知道不经意密钥k的任意m比特,1≤m≤n,且数据服务中心s不知道查询用户u具体m比特的位置;该后处理方法是按如下步骤进行:

步骤1:判断m=1是否成立,若成立,则执行步骤2;否则,执行步骤4;

通常n为一个较大的整数,而m为一个相对较小的整数。本实施例中,为方便起见,令m=2,n=8,并进入步骤4。

步骤2:数据服务中心s和查询用户u之间进行n次不经意量子密钥分配,从而建立n个n位的预处理不经意密钥{k1,k2,…,ki,…kn},ki表示任意第i个n位的预处理不经意密钥,i=1,2,...,n;

在实际应用中,n一般为一个较大的整数,而n为一个相对较小的整数。本实施例中,不失一般性,令n=2,n=8。

步骤2.1:查询用户u事先生成一个秘密的正整数x,即查询用户u想知道最终n位的不经意密钥中的第x位密钥;1≤x≤n;

本实施例中,假设x=7,即查询用户u想知道最终8位的不经意密钥中的第7位密钥。

步骤2.2:初始化i=1;

步骤2.3:数据服务中心s利用不经意量子密钥分配方法生成第i个长度为n的原始不经意密钥roki,其中,数据服务中心s知道第i个原始不经意密钥roki所有的n比特,而查询用户u仅知道第i个原始不经意密钥roki中的若干比特;并将所述若干比特中的一个已知位的下标记为j,1≤j≤n;

步骤2.4:查询用户u利用式(1)计算第i轮位移量si并发送给数据服务中心s:

si=j-x(1)

步骤2.5:数据服务中心s根据第i轮位移量si对第i个原始不经意密钥roki进行移位,使得数据服务中心s和查询用户u之间共享第i个n位的预处理不经意密钥ki;

其中si<0,右移;si>0,左移动;si=0,不移动。

步骤2.6:将i+1赋值给i,并判断i>n是否成立,若成立,则执行步骤3,否则返回步骤2.3;

本实施例中,n=2,即循环执行2次不经意量子密钥分配,生成2个原始不经意密钥。如图1所示,查询用户u记rok1中的j=6,rok2中的j=4,计算得s1=-1,s2=-3并发送给数据服务中心s,经移位后数据服务中心s和查询用户u之间共享k1和k2。

步骤3:数据服务中心s利用式(2)计算n位不经意密钥k:

查询用户u利用式(3)得到密钥位k(x):

式(3)中,k(x)是n位不经意密钥k的第x位,ki(x)是第i个n位的预处理不经意密钥ki的第x位;

如图1下部分所示,尽管查询用户u分别知道k1和k2中各两位密钥,但异或后,查询用户u仅仅知道1位密钥,即k(7)=1;而数据服务中心s知道k的所有位密钥。由于每次不经意量子密钥的分配及稀释过后查询用户u的已知位下标随机落在1~n之间,并且查询用户u事先生成了秘密正整数x,即使初步稀释后还有若干个已知位,但n次的移位异或使得最终不经意密钥k除第x位已知外再出现一个已知位成为小概率事件,其概率为这就达到了精确控制查询用户u只知道1位密钥的目的。在实际应用中,当n较大时,可以取n为2。

步骤4:初始化变量t=1;

步骤5:判断t<m是否成立,若成立,则将赋值给n后,执行步骤2和步骤3,得到位不经意密钥kt′;否则,执行步骤7;

本实施例中,m=2,n=8,计算赋值给n,代入执行步骤2和3之后得到长度为4的不经意密钥k1′。

步骤6:令t+1赋值给t后,返回步骤5;

由于本例中m=2,故执行一次步骤5后进入步骤7。

步骤7:将赋值给n后,执行步骤2和步骤3,从而得到位不经意密钥k′m;

计算赋值给n,代入执行步骤2和3之后得到长度为4的不经意密钥k2′。

步骤8、将m个不经意密钥{k1′,k2′,…,kt′,…k′m}按序拼接起来,从而组成一个n位的不经意密钥k;

如图2所示,将2个不经意密钥{k1′,k2′}按序拼接形成一个8位的不经意密钥k。

步骤9:所述查询用户u随机生成一种置换函数π(·),并公开给所述数据服务中心s;

步骤10、所述查询用户u和所述数据服务中心s分别利用式(4)对所述n位的不经意密钥k进行置换,得到置换后的n位不经意密钥k*

k*=π(k)(4)

从而使得所述数据服务中心s知道所述置换后的n位不经意密钥k*中所有的n比特,而所述查询用户u仅知道所述置换后的n位不经意密钥k*中的m比特,且所述数据服务中心s不知道所述查询用户u具体m比特的位置。

本实施例中,数据服务中心s和查询用户u的随机置换π(·)如图3所示,这么做的目的是为了打乱查询用户u的已知m比特的下标次序,进一步确保用户的隐私。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1