一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链存储的可验证的可搜索对称加密方法

2022-06-11 12:18:13 来源:中国专利 TAG:

技术特征:
1.一种基于区块链存储的可验证的可搜索对称加密方法,其特征在于,包括:s1.密钥生成算法:运行于数据用户端,数据用户输入安全参数λ,密钥生成算法使用随机数生成算法产生密钥k,k
′←
{0,1}
λ
,之后,数据用户将密钥k,k

妥善保存在本地存储中;s2.初始化算法:运行于数据用户端,用户输入密钥k,k

,以及数据库db,初始化算法为数据库db生成加密数据库edb=(lt1,lt2),并写入到仅追加块存储abs模型中;其中,lt1存储了加密数据库,用于加密搜索;而lt2存储了每个关键字对应的证据,用于结果验证;s3.令牌生成算法:运行于数据用户端,用户输入待搜索关键字w,以及密钥k1,k2,令牌生成算法生成一个与待搜索关键字w相关联的搜索令牌τ=(k1,k2,label),并将搜索令牌τ发送至服务提供者端;s4.搜索算法:运行于服务提供者端,当服务提供者收到数据用户发来的搜索令牌τ后,对保存在abs模型的加密数据库edb=(lt1,lt2)进行检索,调用搜索算法从lt1中得到相匹配的文件标识符集合并从lt2提取出相应的证据prf,最后将和prf发送至数据用户端;s5.验证算法:运行于数据用户端,当数据用户收到服务提供者返回的结果后,输入上述结果、密钥k

以及令牌生成阶段输出的label,验证算法校验服务提供者返回的结果是否正确,如果结果正确,则读取结果集合的文件标识符进行后续的操作;否则,数据用户选择继续和其他服务提供者沟通,重新执行搜索算法和验证算法以获取可靠的结果。2.根据权利要求1所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,所述的仅追加块存储abs模型用于对区块链存储进行高层次的功能抽象,以屏蔽区块链的运作细节,以便基于区块链存储的可搜索对称加密方法的设计与分析;abs模型使用数据块的结构组织数据,不能修改或删除已写入的块,只能将新的块写入到存储中;当一个块被写入后,abs模型会返回指向该块的地址;abs模型的数据块长度是固定的,由公共参数γ指定;当待写入数据的长度大于γ时,abs模型终止写入而不会切分数据;如果待写入数据的长度小于块的长度,abs模型在写入前使用足够多个0填充数据,直至数据长度等于块的长度。3.根据权利要求2所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,所述的abs模型包括:abs

init(γ):初始化abs算法,其接受一个公开参数γ作为输入,并输出一个仅追加块存储abs,其中γ指定块的长度;v/
⊥←
get(abs,addr):获取块数据算法,其输入一个仅追加块存储abs和一个块地址addr,如果addr指定的块存在,它返回该块所有的内容v;否则,它返回空指示符

;(abs

,addr)

put(abs,v):写入块数据算法,其输入一个仅追加块存储abs和一个要写入的数据v,如果v的长度大于块长度y,算法就会终止;否则,算法输出更新后的仅追加块存储abs

以及该数据所在的块地址addr。4.根据权利要求3所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,还包括基于区块链存储的静态查找表数据结构的实现方法,用于在区块链存储中实现较高效的键-值存储和读取效率,包括:(lt,abs

)

ltinit({(l1,v1),...,(l
n
,v
n
)},abs):初始化算法ltinit,其接受一组键-值对{(l
i
,v
i
)}
1≤i≤n
和仅追加块存储abs作为输入,然后输出更新后的块存储abs

,以及存储在abs

中的查找表lt;
v/
⊥←
ltget(l,lt,abs):查找表检索算法ltget,其接受一个键l、查找表lt以及仅追加块存储abs作为输入,如果查找表lt中存在键为l的项,则输出对应的值v;否则,输出空指示符

。5.根据权利要求4所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,基于二叉搜索树的思想,给出具体的基于区块链存储的静态查找表数据结构的实现方法,即binst;给定n个键-值对{(l1,v1),...,(l
n
,v
n
)},m阶binst的初始化算法ltinit包括:若n=0,返回空树,其中根节点地址表示为空指示符

;否则,对{(l1,v1),...,(l
n
,v
n
)}按键的非降序进行排序,结果为{(l
′1,v
′1),...,(l

n
,v

n
)};将有序的键-值对{(l
′1,v
′1),...,(l

n
,v

n
)}切分为个子集合为简化表示,使用符号b
i
来表示第i个子集合;对于子集合列表调用以下子例程自底向上地构造binst:读取子例程的输入,即子集合列表b={b1,b2,...,b
m
};若列表b为空,输出空树,其中根节点地址表示为空指示符

;否则,从列表b中选择中间元素构造binst结点x,将中的键-值对按序写入到结点x的相应数据成员中;对于位于左边的子列表递归调用该子例程生成左子树b
l
,将b
l
的根结点作为x的左孩子;同理,对于位于右边的子列表递归调用该子例程生成右子树b
r
,将b
r
的根结点作为x的右孩子;通过调用方法(abs,addr
x
)

put(abs,x),将节点x写入到块存储abs中,输出以结点x为根的binst子树b,其中b的根节点地址为addr
x
;在binstb(其中b的根节点表示为b.root,而根节点地址表示为addr
b.root
)中查找键l详细步骤,即查找表检索算法ltget包括:根据b的根节点地址addr
b.root
,如果addr
b.root
为空指示符

,则b为空树,查找失败,算法结束;否则,调用方法b.root

get(abs,addr
b.root
)读取b.root的详细数据;若l小于b.root的最小键,则根据b.root的左孩子地址,递归搜索左子树;若l大于b.root的最大键,则根据b.root的右孩子地址,递归搜索右子树,重复查找步骤;否则,对b.root中包含的键集合进行二分查找,如果查找成功,返回相应的值;否则,查找失败,算法结束。6.根据权利要求5所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,s2中的初始化算法具体包括:s21.初始化两个空列表l1,l2;s22.对于数据库db包含的每一个关键字w,进行以下操作:计算k1←
f(1||w),k2←
f(2||w),并初始化一个用于计数的变量c

0以及一个空字符串对于包含于db(w)的每一个文档标识符id,计算l

f(k1,c),d

e(k2,id),并自增计数器c

c 1,然后将二元组(l,d)添加至列表l1中,并将id追加到字符串上,即计算label
w

f(k3,w),以及并将二元组(label
w
,prf
w
)添加到列表l2中;s23.对列表l2按字典序的增序进行排序;
s24.初始化另一个空列表l
′2,并令i

0;s25.顺序遍历列表l2中的每一个元组(label,prf),计算prf
′←
sign(k

,label||i),将四元组(label,prf,i,prf

)添加到列表l
′2中,并自增计数器i

i 1;s26.最后将两个列表分别构建两个静态查找表(lt1,abs

)

ltinit(l1,abs),(lt2,abs

)

ltinit(l
′2,abs)。7.根据权利要求6所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,s3中的令牌生成算法具体包括:s31.计算k1←
f(1||w),k2←
f(2||w)以及label

f(k3,w);s32.返回搜索令牌τ=(k1,k2,label)。8.根据权利要求7所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,s4中的搜索算法具体包括:s41.将加密数据库edb解析为二元组(lt1,lt2),并将搜索令牌τ解析为三元组(k1,k2,label);s42.初始化一个空列表并初始化一个计数器c

0;s43.开始以下循环,直至循环内部发生终止:获取d

ltget(f(k1,c),lt1,abs),如果d为空白指示符

,则循环终止;否则,计算id

d(k2,d),并将id添加到列表上;自增计数器c

c 1;s44.如果列表不为空,则获取(prf,i,prf

)

ltget(label,lt2,abs),并跳过步骤s45执行步骤s46;否则,执行步骤s45;s45.找到i,使得label
i
<label<label
i 1
,并获取(prf
i
,i,prf
i

)

ltget(label
i
,lt2,abs),以及(prf
i 1
,i 1,prf

i 1
)

ltget(label
i 1
,lt2,abs);此时,构造证据prf

(label
i
,i,prf
i

,label
i 1
,i 1,prf

i 1
);s46.返回二元组9.根据权利要求8所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,s5中的验证算法具体包括:s51.如果服务提供者返回的结果集合不为空,则算法将其解析为并依次串接成字符串最后调用消息认证码的验证算法verify(k

,prf);如果验证算法校验成功,则结果集合是正确且完整的,算法返回true;否则,服务提供者返回的结果有误,算法返回false;s52.如果服务提供者返回的结果集合为空,则解析prf为(label
i
,i,prf

i
,label
i 1
,i 1,prf

i 1
);并检查是否满足label
i
≤label≤label
i 1
,如果不满足,意味着服务提供者返回的结果有误,算法返回false;否则,继续执行步骤s53;s53.分别调用两次消息认证码的验证算法verify(k

,label
i
||i,prf

i
)以及verify(k

,label
i 1
||i 1,prf

i 1
);如果两次消息认证码的验证算法都返回成功,则意味着相应关键字的结果确实为空,算法返回true;否则,服务提供者返回的结果有误,算法返回false。10.一种电子设备,包括:存储器、处理器以及存储在存储器上并可在处理器上运行计算机程序,其特征在于,所述的处理器执行所述计算机程序,实现权利要求1至9任一项所述
的基于区块链存储的可验证的可搜索对称加密方法。

技术总结
本发明属于信息检索和密码学技术领域,更具体地,涉及一种基于区块链存储的可验证的可搜索对称加密方法。本发明为方便查找表数据结构和可搜索对称加密方案的设计与实现,对区块链的存储机制进行高层次的功能抽象,屏蔽了区块链具体实现的细节;为实现紧密的空间存储和高效的检索性能,本发明基于二叉搜索树提出了一个高效的查找表数据结构实现,其中节点使用仅追加块存储的数据块进行紧密的打包存储,而检索操作则使用二分查找的思路来减少查询工作量;为实现可搜索对称加密的可验证性,本发明使用消息认证码,对与关键字所关联的次序和结果等信息进行了签名,实现了结果的可验证性和不可伪造性,从而抵御了恶意服务器的伪造行为。为。为。


技术研发人员:张方国 陈建彰
受保护的技术使用者:中山大学
技术研发日:2022.03.08
技术公布日:2022/6/10
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献