standard library
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202211196732.3 (22)申请日 2022.09.28 (71)申请人 湖南大学 地址 410082 湖南省长 沙市岳麓区麓山 南 路2号 (72)发明人 刘琴 唐子逸  (74)专利代理 机构 长沙瀚顿知识产权代理事务 所(普通合伙) 43223 专利代理师 吴亮 朱敏 (51)Int.Cl. G06F 16/2458(2019.01) G06F 16/27(2019.01) G06F 16/22(2019.01) (54)发明名称 一种基于区块链的可验证关键词Top-K查询 方法 (57)摘要 本发明提供了基于区块链的可验证关键词 Top‑K非模糊查询以及模糊查询方法, 方案结合 RSA累加器、 倒排索引以及前缀树等相关技术来 构建ADS, 实现了对非模糊查询和模糊关键词的 排名搜索验证。 本发明框架可以使轻节点有效的 验证查询结果正确性, 且在搜索、 验证、 存储以及 更新操作的性能上表现出色, 具有很好的实用价 值。 权利要求书4页 说明书11页 附图2页 CN 115510126 A 2022.12.23 CN 115510126 A 1.一种基于区块链的可验证关键词Top ‑K非模糊查询方法, 其特征在于, 所述区块链包 括全节点和轻节点, 全节点为同步了所有区块链数据的节点, 包含块头和块体所有信息, 每 个块头包括一个ADS结构ADS1; 轻节点作为用户参与到区块链中, 轻节点只包含块头信息; 所述方法包括: 步骤S110: 全节点执行密钥生成算法Genkey(1k)→(pk, sk)和累计值生成算法 构建共识证明; Genkey(1λ)→(pk, sk)包括: λ∈[1, N]为安全参数, 给定RSA累加器参数N=p ·q和g, 其 中p和q为大素数, |p ·q|>3 λ, g是循环群 QRN的生成元, 输出公共参数pk={N, (g, QRN)}和私 钥sk=(p‑1)(q‑1); 包括: 根据所有数据D构建倒排索引, 其中每个关键词都 对应一系列对象, 所述对象按照时间由旧到新进行排序, 计算验证矩阵V[i][j]=H(Obji, j, j)i∈[1, m], j∈[1, n], 其中i代表第i个关键词, j代表关键词中排序的第j个对象, H为抗碰 撞哈希函数, m为D中关键词总数, n为单个关键词所包含对象的总数, Obji, j为第i个关键词 的第j个对象, 当有数据更新时, 更新 其中, P为通用哈 希函数, P(x)∈{0, 1}3λ代表x对应的素数值, 之后, 统计每个关键词包含的对象个数, 计算 其中counti是第i个关键词目前所包含对象的总数, 此时 counti=n, 最后使 将ΦI, ΦC和 作为ADS1添加到块头; 步骤S120: 轻节点向区块链里任意全节点发起非模糊查询请求, 所述非模糊查询请求 包括查询关键词w及Top ‑K查询结果数k到全节点; 步骤S130: 全节点收到所述非模糊查询请求后, 全节点执行查询算法Search(w, k) →R 获得结果R, 执行验证生成算法GenProof(w, k, pk) →VO计算验证对象VO, 并发送R和VO给轻 节点; Search(w, k)→R包括: 根据w, 将倒排索引中w对应的 由新到旧的前k个对象加入R; GenProof(w, k, pk) →VO包括: 计算 计算 其中, w是数据D倒排索引中的第r个关键词, countr为w目前所包含对象的总数, 步骤S140: 轻节点收到全节点返回的结果R和验证对象VO后, 执行验证算法Verify(w, k, R, VO, pk) →(1, 0)使用VO对R进行验证; Verify(w, k, R, VO, pk) →(1, 0)包括: 轻节点从块头获取ADS1值, 判断等式 是否成立, 如果不成立则返回0表示验证失败, 成立则继续 验证, 根据countr计算V[r][j]并判断等式 是否成 立, 如果不成立则返回0表示验证失败, 成立则返回1表示验证成功; 步骤S150: 有新块增加时, 全节点执行添加数据更新算法 更新区块链信息; 包括: 新对象Obj包含的关键词wi是需要更新信息关键词, i∈add, add为数据D中所有需更新信息的关键词的索引集合, 对于每个关键词wi, 计算权 利 要 求 书 1/4 页 2 CN 115510126 A 2count′i为新块增加后wi包含对象的总数, 计 算 在块头存 储Φ′I、 Φ′C、 2.一种基于区块链的可验证关键词Top ‑K模糊查询方法, 其特征在于, 所述区块链包括 全节点和轻节点, 全节点为同步了所有区块链数据的节点, 包含块头和块体所有信息, 每个 块头包括一个ADS结构ADS2; 轻节点作为用户参与到区块链中, 轻节点只包含块头信息; 所 述方法包括: 步骤S210: 全节点执行密钥生成算法Genkey(1k)→(pk, sk)和累计值生成算法AccGen (D, pk)→{ΦT}, 构建共识证明; Genkey(1λ)→(pk, sk)包括: λ∈[1, N]为安全参数, 给定RSA累加器参数N=p ·q和g, 其 中p和q为大素数, |p ·q|>3 λ, g是循环群 QRN的生成元, 输出公共参数pk={N, (g, QRN)}和私 钥sk=(p‑1)(q‑1); AccGen(D, pk) →ΦT包括: 根据所有数据D构建前缀树T, 将前缀树T的根节点的哈希值 ΦT作为ADS2保存到块头; 其中, 前缀树T是有序的多路树数据结构, 用于存储关键字, 从根节点到每个叶子节点 路径上的所有节点字符组成一个关键 字; 前缀树T的非叶子节点包括: 字符s、 所有子节点的哈希值连接后的哈希值Ch、 所有祖先 节点的字符组成的字符串Ap和所有子节点字符的集合Sc; 前缀树T根节点的字符为起始符 “$”; 前缀树T的叶子节点包括: 结束符 “#”、 该叶子节点包含的所有对象的累计值 和该叶子节 点中包含的所有对象的集合So, 验证矩阵V[j]=H (Objj, j), H为抗碰撞哈希函数, n为叶子节点所包含对象的总数, wi为该叶子节点对应的关 键词, 将该叶子节点包含的对象由旧到新进行排序, Objj为第j个对象, P为通用哈希函数, P (x)∈{0, 1}3 λ代表x对应的素 数值; 步骤S220: 轻节点向区块链里任意全节点发起模糊查询请求, 所述模糊查询请求包括 查询关键词w及Top ‑K查询结果数k到全节点, 其中w包 含模糊查询字符 “*”或“?”; 步骤S230: 全节点收到所述模糊查询请求后, 全节点执行查询算法Search(w, k) →R获 得查询结果R, 执行验证生成算法GenProof(w, k, pk) →VO计算验证对象VO, 并发送R和VO给 轻节点; Search(w, k) →R包括: 如果w包含模糊查询字符 “*”则执行第一模糊查询, 如果w包含模 糊查询字符 “?”则执行第二模糊查询; 第一模糊查询包括: 对于查询关键词w= “s1s2…st*”, 其中s1、 s2、…、 st为第1至第t个字 符, 字符“*”为第t+1个字符, 在前缀树T中搜索得到w的最长子串ws=“s1s2…sl”, 如果l<t, 则使 如果l=t, 则将 视为根节点得到子树 提取子树 中叶子节点So中前k 个对象加入到R中; 其中, 为Ap||s的值为ws的节点, | |为字符串连接操作; 第二模糊查询包括: 对于查询关键词w= “s1s2…sh? sh+2sh+3…st”, 其中s1、 s2、…、 sh、…、 st为第1至第h再至第t个字符, 字符 “?”为第h+1个字符, 在前缀树T中搜索得到字符串权 利 要 求 书 2/4 页 3 CN 115510126 A 3

PDF文档 专利 一种基于区块链的可验证关键词Top-K查询方法

文档预览
中文文档 18 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共18页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于区块链的可验证关键词Top-K查询方法 第 1 页 专利 一种基于区块链的可验证关键词Top-K查询方法 第 2 页 专利 一种基于区块链的可验证关键词Top-K查询方法 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-18 22:33:11上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。