(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202210870043.X
(22)申请日 2022.07.22
(65)同一申请的已公布的文献号
申请公布号 CN 114969164 A
(43)申请公布日 2022.08.30
(73)专利权人 华控清交信息科技 (北京) 有限公
司
地址 100084 北京市海淀区中关村东路1号
院3号楼10层10 09-1
(72)发明人 何昊青
(74)专利代理 机构 北京润泽恒知识产权代理有
限公司 1 1319
专利代理师 苏培华
(51)Int.Cl.
G06F 16/2458(2019.01)G06F 21/60(2013.01)
G06F 21/62(2013.01)
(56)对比文件
CN 111783109 A,2020.10.16
CN 114021006 A,2022.02.08
CN 1080238 87 A,2018.0 5.11
CN 112506440 A,2021.0 3.16
US 2016013933 A1,2016.01.14
审查员 邱爽
(54)发明名称
一种数据查询方法、 装置和可读存 储介质
(57)摘要
本发明实施例提供了一种数据查询方法、 装
置和可读存储介质。 其中的方法包括: 判断当前
迭代的有序数组a中剩余的元素个数是否为1; 若
剩余的元素个数为1, 则基于加密状态比较所述
数据x与当前迭代的有序数组 a中剩余的1个元素
是否相等, 得到查询结果, 终止迭代操作; 若剩余
的元素个数大于1, 则基于加密状态对所述数据x
和当前迭代的有序数组a的中间元素进行预设比
较操作, 得到密文比较结果, 并根据所述密文比
较结果对当前迭代的有序数组a进行更新, 更新
后的有序数组a为更新前的前半部分或后半部
分; 基于所述更新后的有序数组a执行下一轮迭
代操作。 本发 明实施例可以在保护数据隐私安全
的基础上进行二分查找, 提高数据查询效率。
权利要求书2页 说明书12页 附图3页
CN 114969164 B
2022.10.21
CN 114969164 B
1.一种数据查询方法, 其特征在于, 所述方法应用于多方安全计算系统, 所述方法用于
基于加密状态查找有序数组a中是否存在数据x, 所述数据x和所述有序数组a中的元素为密
文, 所述方法包括:
判断当前迭代的有序数组a 中剩余的元 素个数是否为1;
若当前迭代 的有序数组a中剩余的元素个数为1, 则基于加密状态比较所述数据x与当
前迭代的有序数组a 中剩余的1个元 素是否相等, 得到查询结果, 终止迭代操作;
若当前迭代 的有序数组a中剩余的元素个数大于1, 则基于加密状态对所述数据x和当
前迭代的有序数组a的中间元素进行预设比较操作, 得到密 文比较结果, 并根据所述密 文比
较结果对当前迭代的有序数组a进 行更新, 更新后的有序数 组a为更新前的前半部 分或后半
部分;
基于所述更新后的有序数组a执 行下一轮迭代操作;
其中, 所述密文比较结果为flag, flag为0或1的密文, flag为0的密文表示所述预设比
较操作不成立, flag为1的密文表示所述预设比较操作成立, 当前迭代的有序数组a中剩 余
的元素个数为 n, 所述根据所述密文比较结果对当前迭代的有序数组a进行 更新, 包括:
若n为偶数, 则通过 下式根据所述密文比较结果对当前迭代的有序数组a进行 更新:
a=[a1,a2,…,a⌊n/2⌋]*flag+[a⌊n/2⌋+1,a⌊n/2⌋+2,…,an]*(1‑flag);
若n为奇数, 则通过 下式根据所述密文比较结果对当前迭代的有序数组a进行 更新:
a=[a1,a2,…,a⌊n/2⌋+1]*flag+[a⌊n/2⌋+1,a⌊n/2⌋+2,…,an]*(1‑flag)。
2.根据权利要求1所述的方法, 其特征在于, 若所述有序数组a为升序排序, 则所述预设
比较操作为比较所述数据x是否小于或等于 当前迭代的有序数组a的中间元素; 若 所述有序
数组a为降序排序, 则所述预设比较操作为比较所述数据x是否大于或等于 当前迭代的有序
数组a的中间元 素。
3.根据权利要求1所述的方法, 其特征在于, 所述查询结果为第 一预设值或第 二预设值
的密文, 所述查询结果为第一预设值的密文表示所述有序数组a中不存在所述数据x, 所述
查询结果 为第二预设值的密文表示所述有序数组a 中存在所述数据x。
4.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括:
将所述查询结果发送至查询方。
5.根据权利要求1至4任一所述的方法, 其特征在于, 所述有序数组a和所述数据x分别
由不同的数据方 所持有, 所述方法还 包括:
接收第一数据方发送的有序数组a, 以及接收第二数据方发送的数据x。
6.一种数据查询装置, 其特征在于, 所述装置应用于多方安全计算系统, 所述装置用于
基于加密状态查找有序数组a中是否存在数据x, 所述数据x和所述有序数组a中的元素为密
文, 所述装置包括:
长度判断模块, 用于判断当前迭代的有序数组a 中剩余的元 素个数是否为1;
结果确定模块, 用于若当前迭代 的有序数组a中剩余的元素个数为1, 则基于加密状态
比较所述数据x与当前迭代的有序数组a中剩余的1个元素是否相等, 得到查询结果, 终止迭
代操作;
数组更新模块, 用于若当前迭代 的有序数组a中剩余的元素个数大于1, 则基于加密状
态对所述数据x和当前迭代的有序数组a的中间元素进行预设比较操作, 得到密文比较结权 利 要 求 书 1/2 页
2
CN 114969164 B
2果, 并根据所述密文比较结果对当前迭代的有序数组a进行更新, 更新后的有序数组a为更
新前的前半部分或后半部分;
迭代操作模块, 用于基于所述更新后的有序数组a执 行下一轮迭代操作;
其中, 所述密文比较结果为flag, flag为0或1的密文, flag为0的密文表示所述预设比
较操作不成立, flag为1的密文表示所述预设比较操作成立, 当前迭代的有序数组a中剩 余
的元素个数为 n, 所述数组更新模块, 具体用于:
若n为偶数, 则通过 下式根据所述密文比较结果对当前迭代的有序数组a进行 更新:
a=[a1,a2,…,a⌊n/2⌋]*flag+[a⌊n/2⌋+1,a⌊n/2⌋+2,…,an]*(1‑flag);
若n为奇数, 则通过 下式根据所述密文比较结果对当前迭代的有序数组a进行 更新:
a=[a1,a2,…,a⌊n/2⌋+1]*flag+[a⌊n/2⌋+1,a⌊n/2⌋+2,…,an]*(1‑flag)。
7.根据权利要求6所述的装置, 其特征在于, 若所述有序数组a为升序排序, 则所述预设
比较操作为比较所述数据x是否小于或等于 当前迭代的有序数组a的中间元素; 若 所述有序
数组a为降序排序, 则所述预设比较操作为比较所述数据x是否大于或等于 当前迭代的有序
数组a的中间元 素。
8.根据权利要求6所述的装置, 其特征在于, 所述查询结果为第 一预设值或第 二预设值
的密文, 所述查询结果为第一预设值的密文表示所述有序数组a中不存在所述数据x, 所述
查询结果 为第二预设值的密文表示所述有序数组a 中存在所述数据x。
9.根据权利要求6所述的装置, 其特 征在于, 所述装置还 包括:
结果发送模块, 用于将所述 查询结果发送至查询方。
10.根据权利要求6至9任一所述的装置, 其特征在于, 所述有序 数组a和所述数据x分别
由不同的数据方 所持有, 所述装置还 包括:
数据接收模块, 用于接收第 一数据方发送的有序 数组a, 以及接收第 二数据方发送的数
据x。
11.一种用于数据查询的装置, 其特征在于, 包括有存储器, 以及一个以上程序, 其中一
个以上程序存储于存储器中, 且经配置以由一个以上处理器执行所述一个以上程序, 所述
一个以上程序包 含用于进行如权利要求1至 5中任一所述的数据查询方法的指令 。
12.一种可读存储介质, 其上存储有指令, 当所述指令由装置的一个或多个处理器执行
时, 使得装置执 行如权利要求1至 5中任一所述的数据查询方法。权 利 要 求 书 2/2 页
3
CN 114969164 B
3
专利 一种数据查询方法、装置和可读存储介质
文档预览
中文文档
18 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共18页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-18 22:34:51上传分享