1.一种基于用户代理的云量子隐私查询方法,其特征在于,包括以下步骤:S1、利用数据库与用户代理通过经典信道协商得到第一共享密钥;
S2、利用数据库根据密钥生成量子态序列,对量子态序列加密得到第一量子态序列,对第一量子态序列添加诱骗态生成第一混合序列,将第一混合序列传输至云服务提供商,具体包括以下分步骤:
S21、根据数据库中长为n的密钥KB生成量子态序列S,具体为:若第i位密钥 =0,则随机生成量子态 或 ;
若第i位密钥 =1,则随机生成量子态 或 ;
将全部量子态序列作为量子态序列S,表示为 ;
a b (1)
S22、对量子态序列S采用X Z 门进行加密得到第一量子态序列S ,表示为;aibi表示数据库与用户代理预先协商的密钥;
(1) (1)
S23、对第一量子态序列S 添加诱骗态 生成第一混合序列S ’,将第一(1)
混合序列S ’传输至云服务提供商;
S3、利用云服务提供商对第一混合序列进行量子委托计算得到第二量子态序列,对第二量子态序列添加诱骗态生成第二混合序列,将第二混合序列传输至用户代理,具体包括以下分步骤:
(1)
S31、利用云服务提供商对第一量子态序列S 执行Clifford 群组门中的{Z, X}操作,(2)
得到第二量子态序列S ,表示为 ;
(2) (2)
S32、对第二量子态序列S 添加诱骗态 生成第二混合序列S ’,将第二(2)
混合序列S ’传输至用户代理;
S4、利用用户代理根据第一共享密钥对第二混合序列解密得到第三量子态序列,对第三量子态序列作量子傅里叶变换后添加诱骗态生成第三混合序列,将第三混合序列传输至查询用户群组,具体包括以下分步骤:(2)
S41、利用用户代理根据第一共享密钥KAB对第二混合序列S ’解密得到第三量子态序(3)
列S ,表示为 ;
S42、利用用户代理生成一个任意的d维量子态 ,对该量子态作量子逆傅里叶变换,得到量子态 ;
(3)
S43、以量子态 作为控制位,第三量子态序列S 作为靶位,利用用户代理执行CNOT操作,得到量子态 ;
S44、利用用户代理对量子态 作量子傅里叶变换,得到量子态 ;
S45、利用用户代理将量子态 分解为量子态 和n个量子态 ,并添加l个诱骗态{ }或{ }生成第三混合序列,将第三混合序列传输至查询用户群组;
S5、利用查询用户对第三混合序列进行量子逆傅里叶变换,再根据查询用户与云服务提供商通过经典信道协商得到的第二共享密钥进行解密得到查询量子态,根据得到的查询量子态进行量子隐私查询,具体包括以下分步骤:S51、利用查询用户对量子态 和量子态 作量子逆傅里叶变换,得到量子态 和量子态 ;
S52、以量子态 作为控制位,量子态 作为靶位,利用查询用户执行CNOT操作,得到量子态 ;
S53、利用查询用户根据查询用户与云服务提供商通过经典信道协商得到的第二共享密钥进行解密得到查询量子态 ;
S54、利用查询用户根据查询量子态 查询数据库条目。
2.根据权利要求1所述的基于用户代理的云量子隐私查询方法,其特征在于,所述步骤S2还包括对数据库与云服务提供商通信的量子信道进行安全检测,具体为:(1)
当云服务提供商接收完数据库传输的所有第一混合序列S ’后,由数据库公布所有诱骗态的位置和相应测量基;
利用云服务提供商根据数据库公布的测量基测量所有诱骗态,并将测量结果发送给数据库;
利用数据库将诱骗态的初始态与测量结果进行对比,判断错误概率是否超过预设阈值;若是,则重启数据库与云服务提供商通信的量子信道协议;否则判断量子信道安全。
3.根据权利要求1所述的基于用户代理的云量子隐私查询方法,其特征在于,所述步骤S3还包括对云服务提供商与用户代理通信的量子信道进行安全检测,具体为:(2)
当用户代理接收完云服务提供商传输的所有第二混合序列S ’后,由云服务提供商公布所有诱骗态的位置和相应测量基;
利用用户代理根据云服务提供商公布的测量基测量所有诱骗态,并将测量结果发送给云服务提供商;
利用云服务提供商将诱骗态的初始态与测量结果进行对比,判断错误概率是否超过预设阈值;若是,则重启云服务提供商与用户代理通信的量子信道协议;否则判断量子信道安全。
4.根据权利要求1所述的基于用户代理的云量子隐私查询方法,其特征在于,所述步骤S54具体包括以下分步骤:S541、利用数据库根据发送的初始态公布0或1;
S542、利用查询用户根据数据库公布结果选择测量基;
S543、利用数据库将密钥KB根据查询用户公布的移位长度移位后得到密钥KB’,采用密钥KB’对待查询数据库条目X加密得到信息Y ’,将信息Y ’传输至查询用户;
S544、利用查询用户根据密钥KA对信息Y’解密得到待查询的第k条数据库条目作为查询结果Xk。
5.根据权利要求4所述的基于用户代理的云量子隐私查询方法,其特征在于,所述步骤S5还包括利用查询用户Aj对查询用户Ai的查询结果Xk进行验证,具体包括:利用查询用户Ai将作为控制位的量子态 和查询结果Xk发送给查询用户Aj;
利用查询用户Aj以量子态 作为控制位,量子态 作为靶位,执行CNOT操作,得到量子态 和量子态 ;
利用查询用户Aj根据密钥KB对原始加密信息Y解密得到待查询数据库条目作为查询结果Xk’;
利用查询用户Aj比较查询结果Xk与查询结果Xk’的值;若两者相等,则公布0;否则公布
1。