题目:通过区块链的以及双方验证的可信赖的关键词搜索在加密数据上
摘要:
提出的问题:
(1)用户如何查询已经存贮的数据
(2)用户方如果怎样验证查询结果从而可以抵抗恶意的云服务器
(3)如任何使得云服务器方有效验证存贮的数据从而抵抗恶意的数据拥有者。
(4)怎样使得在用户和云服务之间的交易公平而不需要的第三方。
该方案为了解决是上述问题提出了从下面的方案:
(1)基于数字签名的加密数据的索引使得用户可以查询外包的加密数据以及搜寻结果是否被云服务器返回(是否履行了预先指定的搜索请求)
(2)TKSE使得云服务器方可以在数据存贮的阶段进行验证从而保护诚实的云服务器不受恶意的数据拥有者的欺骗。
(3)区块链技术和哈希函数可以确保支付的公平性。
具体方案的构造:
在这个方案中数据拥有者和用户都是一个人,所以共用一个secret key ,在这里记为K.算法有第三个。分别在索引生成阶段、CSP查询阶段、用户验证查询结果阶段。
1 初始化:设置用户和云服务器的ECDSA(椭圆曲线签名算法)公私钥对,设置初始锁定脚本(locking script)以及密钥K,以及一个伪随机序列,加密哈希函数以及一个对称加密方案。
2 数据存贮阶段
(1)数据加密:用户加密数据,并把加密好得数据发给云服务器
(2)索引生成:用户生成索引通过索引生成算法
(3)存贮阶段:云服务器存贮索引和密文,为了取得在用户请求搜索后的搜索费用,云服务器生成一个叶子由密文组成的默克尔树,然后云服务器计算根节点,并把更节点存贮在区块链上并广播一个查询签名交易,最后云服务器发送交易 ID给用户。
(4)存贮验证:在收到云服务器的交易ID后,用户先得到了从区块链上的根节点。然后用户根据密文和默克尔树计算根节点,并验证这两个更节点是否相同。最后用户删除文件和密文,只保存文件号以及交易ID.
3数据搜寻阶段
(1)搜寻请求:用户现在想搜寻一个关键字为w的文件,那么它就会所生成一个陷门Tw,并把它发送给与服务器。云服务器首先建立一个赔偿机制。
云服务器建立两个交易:一是如果没有搜索成功或者恶意搜索的话需要给用户赔偿,二是如果成功,用户会给云服务器一笔交易费。
(2)搜索执行:收到陷门之后,云服务器执行一个价值为B的TXSearchCommit的存缓存(存款)交易在区块链上,一旦出问题,用户可以索求这笔存款,一旦上述交易一旦在区块链上建立,云服务器会裂开建立赔偿交易,注意,一但交易是成立的,则云服务器会立刻收回存款。云服务器会建立搜索算法来找寻这个带w的密文和标签,最后发给用户。
(3)支付阶段:
(左边为用户操作,右边为云服务器操作)
in-script为unlocking script
out-script为locking script
里面的虚线为赔偿机制,实线代表正常运行。
(4)验证和支付:用算法三进行验证
4 用户申请赔偿
以上为简明叙述,详细还见笔记本。
文章来自研究生期间讨论班同学所讲。
日期;2018年9月14日
网友评论