CN110278076B - 一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法 - Google Patents

一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法 Download PDF

Info

Publication number
CN110278076B
CN110278076B CN201910457102.9A CN201910457102A CN110278076B CN 110278076 B CN110278076 B CN 110278076B CN 201910457102 A CN201910457102 A CN 201910457102A CN 110278076 B CN110278076 B CN 110278076B
Authority
CN
China
Prior art keywords
user
data
cloud server
key
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201910457102.9A
Other languages
English (en)
Other versions
CN110278076A (zh
Inventor
许春香
李闪闪
白兰华
刘大为
温昕晟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201910457102.9A priority Critical patent/CN110278076B/zh
Publication of CN110278076A publication Critical patent/CN110278076A/zh
Application granted granted Critical
Publication of CN110278076B publication Critical patent/CN110278076B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于信息安全领域,具体为一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法;本发明所述方案包括四个模块:初始化参数、获取加密密钥、双向拥用性检验、透明化完整性审计和透明化去重。与现有方案相比,本发明可以抵抗云服务器的偏见审计和拖延审计,同时可以避免云服务器声称错误的去重等级以收取额外的费用;本发明能够防止单点失效攻击和穷举攻击,能够提供用户与云服务器的双向拥有性证明;本发明基于区块链实现了一种安全有效的,且能同时实现透明化数据完整性审计和透明化数据去重的协议。

Description

一种基于区块链的透明化数据完整性审计和透明化加密数据 去重方法
技术领域
本发明属于信息安全领域,具体涉及云存储中的一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法。
背景技术
云存储已成为我们日常生活中的一个重要的应用,在数据爆炸的时代,用户为了节省自己本地的存储空间,把数据外存到云服务器;目前有许多云存储提供商例如Dropbox,OneD rive和GoogleDrive。因为云存储提供商之间的竞争,现在的云存储提供商都采用更加有效的存储策略;当用户存储重复数据时,云存储提供商利用数据去重策略,对于相同的数据只存储一次,以此节省存储空间并降低存储成本。
由于云服务器不是完全可信的,所以用户通常对外存的数据加密以保护数据的隐私。利用传统的加密方法可以保护数据的隐私,然而使用传统加密,不同的用户对相同的数据加密,会产生不同的密文,致使无法达到去重的目的。为了达到加密数据去重的目的,Bellare等人形式化一个加密原语—消息锁加密。近些年,很多基于消息锁加密的方案被提出,这些方案主要分成两类:服务器端去重和客户端去重;在服务器端去重中,用户需要上传其数据到云服务器,用户意识不到可能发生的去重;但是,在客户端去重中,用户需要与云服务器交互以检查数据是否已经存储,如果该数据在云服务器中没有存储,云服务器则要求用户上传数据,如果数据已经存储,用户不需要再上传数据;很明显,相比于服务器去重,客户端去重不仅可以节省存储开销而且可以节省带宽。
在客户端去重中,用户判断云服务器是否已经存储数据的方法是:用户先发送数据的哈希值给云服务器,由云服务器判断该哈希值所对应的数据是否已经存储,若已经存储,则用户无需上传数据,若没有存储,云服务器则要求用户上传该数据。用上述方法判断数据是否存储给数据去重带来了很大的安全隐患,攻击者只需窃取数据的哈希值便可向云服务器证明自己拥有该数据,与此同时云服务器把攻击者添加到数据拥有者列表,之后攻击者再向云服务器请求数据具体内容,便可以窃取完整数据。为解决上述的安全隐患,引入拥有性证明技术,拥有性证明指用户和云服务器通过询问-应答机制,由云服务器发起挑战,用户响应,最终由云服务器验证用户是否真正拥有完整数据,然而这种拥有性证明是单向的,只允许云服务器检验用户对于数据的拥有性;由于用户并不确定云服务器是否真正拥有该数据,所以用户也需验证云服务器对数据的拥有性,即实现数据拥有性的双向认证。
数据去重可以节省云服务器的存储空间,提高经济利益,然而,用户在去重策略中没有获得直接利益。Armknecht等人指出云服务器应该根据存储相同数据的用户数量向每个用户收取存储费用,每个用户承担的费用应该与存储相同数据的用户数量成反比。为了避免云服务器为获取高额利润而恶意降低去重等级,Armknecht等人引入了透明化去重的概念,用户可以验证数据的去重等级,然而该方案没有实现数据完整性的审计。
当我们享受云存储服务带来的优势时,也出现了一些安全性问题,其中最受关注的安全问题是外存数据的完整性。用户把数据存储于云服务器,云服务器由于硬件故障或软件错误可能会导致数据丢失或服务不可用,有的服务器为了维护自己的声誉,即使丢失了用户的数据也不会主动告知用户。用户为了确保自己外存数据的完整性,可以随时对外存数据进行完整性审计。关于数据完整性审计的方案已经被提出很多,这些方案让用户雇佣第三方审计者完成审计,然而雇佣第三方会产生很大的代价而且第三方可能会与云服务器合谋生成有偏见的审计结果,比如只审计保存完整的数据块而忽略被损坏或者丢失的数据块。若要求用户自身完成审计,用户无法一直保持在线。若要求云服务器审计,云服务器可能会生成有偏见的审计结果或者拖延审计。
为了解决上述提出的问题,本发明提出了云存储中的一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法。
发明内容
针对上述问题,本发明提出了云存储中的一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法。
为实现上述目的,本发明采用如下技术方案:
一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法,所述方法包括三个主体:用户、n个密钥服务器与云服务器,具体包括:
初始化:系统初始化安全系数和参数,每个用户生成自身公钥和私钥,n个密钥服务器共享一个秘密值,密钥服务器相互交互,计算自身子秘密;
用户与n个密钥服务器交互,获取数据的加密密钥:用户选择随机数,并利用该随机数对上传数据的哈希值进行盲化,并把盲化值发送给n个密钥服务器;每个密钥服务器收到盲化值后,用自身子秘密做签名,签名结果返回给用户;用户随机选择t个密钥服务器的合法签名去盲化,并计算数据的加密密钥;
用户与云服务器通信,实现数据的双向拥有性检验:用户用加密密钥加密数据,并且用户用哈希函数生成该数据的标签值;用户选取一个随机数,并且发送该随机数和数据的标签值给云服务器;云服务器通过检查数据的标签值是否已经存储,进而判断该数据是否已经存储于云服务器:若数据没有存储,云服务器要求用户上传数据密文;若数据已经存储,云服务器选取一个随机数,并把该随机数与用户选取的随机数以及数据密文使用哈希函数做运算,得到一个承诺,之后云服务器发送自己选取的随机数和承诺给用户;用户收到承诺后,验证该承诺是否为真,若为真,用户将自己选取的随机数和云服务器选择的随机数以及数据密文使用哈希函数做运算,得到一个新的承诺,并将新承诺发送给云服务器;云服务器验证该承诺是否为真,若为真,云服务器将用户添加到数据拥有者列表中;
透明化数据完整性审计和透明化数据去重:云服务器利用区块链中未生成区块的哈希值的不可预测性,生成随机种子,再利用该随机种子生成数据样本和随机挑战块;云服务器利用数据样本的用户信息构造Merkle hash树,并生成去重等级的证据信息;同时,云服务器利用数据样本的随机块生成相应的数据完整性证明信息;云服务器公布生成的证明信息于区块链,每个用户进行公开验证并公布验证结果。
本发明的有益效果在于:
本发明提供一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法,该方法能够抵抗单点失效攻击、穷举攻击、云服务器的欺骗攻击。在本方法中,为了避免一个密钥服务器的单点失效攻击和敌手穷举攻击,本发明引入多个密钥服务器和Rate-limiting策略,抵御了密钥服务器的单点失效攻击,并且限制了用户与密钥服务器在一个周期内的交互次数,防止了攻击者穷举攻击,在线猜测数据的加密密钥。本方法在双向数据拥有性证明阶段可以抵抗用户和云服务器的欺骗攻击,通过双向数据拥有性证明,避免用户只拥有数据的哈希值,却欺骗云服务器拥有了整个完整数据,也避免了云服务器只保存部分数据或者数据的哈希值,却欺骗用户保存了完整数据。本方法可以抵御云服务器向用户收取费用时的欺骗攻击,同时本方法可以避免云服务器为了保护自身声誉,丢失数据却不向用户反馈的欺骗行为。本系统利用以太坊区块链技术,提供数据完整性和去重等级正确性的验证。然而,发布所有外存数据信息于云服务器会浪费云服务器的计算开销。为了节省开销,我们利用区块链的性质随机选取数据样本和数据样本的随机块,并公布相应的证据于区块链,用户利用区块链上的证据验证数据的完整性和数据去重等级。云服务器利用数据样本的用户信息构造Merkle hash树,并生成去重等级的证据信息,包括选中的数据样本、每个用户信息对应的兄弟路径、最右非零节点的兄弟路径以及数据样本的用户列表,与此同时,云服务器利用数据样本的随机块生成相应的数据完整性证明信息。云服务器公布生成的证明信息于区块链,每个用户进行公开验证并公布验证结果。
综上,本发明的方法确保了数据外存的安全性,包括数据的完整性和去重等级的正确性。
具体实施方式:
下面结合实施例对本发明作进一步详细说明。
本发明提供一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法,其中,涉及符号声明如下表:
Figure GDA0003584072420000041
Figure GDA0003584072420000051
本实施例中,具体过程如下:
1、初始化:
初始化参数集合PP={p,P,G,GT,e,h,h1,H,l,qE},其中,G为一个阶为素数p、生成元为P的加法群,e:G×G→GT为双线性映射,h、h1、H均为哈希函数,l是系统安全参数,qE是系统规定每个用户在每个周期向密钥服务器请求密钥的次数;
用户随机选择α∈Zp *作为用户的私钥sk,并计算y=αP作为用户的公钥pk;n个密钥服务器KSi、i∈[1,n]之间共享秘密值,Zp *表示p阶循环群;具体生成方法如下:
1)每个密钥服务器KSi随机选择ai0∈Zp *和一个t-1次的多项式fi(x),例如fi(0)=ai0,而fi(x)=ai0+ai1x+...+ait-1xt-1
2)对于ε=1,2,...,t-1,每一个KSi发送ai0P和aP到其他密钥服务器;KSi秘密发送fi(j)给密钥服务器KSj,其中,j=1,2,...,n;j≠i;
3)当密钥服务器KSi收到来自密钥服务器KSj发送的fj(i)后,KSi通过
Figure GDA0003584072420000061
验证fj(i),若验证通过、KSi接收,否则、KSi拒绝;
4)KSi计算自身子秘密:
Figure GDA0003584072420000062
并计算自身子公钥:Qi=siP;所有密钥服务器的秘密共享值为
Figure GDA0003584072420000063
公开值为
Figure GDA0003584072420000064
5)每个密钥服务器KSi保存每一个用户向其请求MLE密钥次数的列表,采用qN表示用户请求密钥次数,qN初始化为0。
2、用户与n个密钥服务器交互,获取数据M的加密密钥:
1)用户u随机选择r∈Zp *,并计算
Figure GDA0003584072420000065
用户u将
Figure GDA0003584072420000066
发送给每一个密钥服务器KSi
2)密钥服务器KSi收到用户发送的
Figure GDA0003584072420000067
首先检测qN≤qE是否成立,若不成立、密钥服务器拒绝,否则、KSi使用自身子秘密si
Figure GDA0003584072420000068
进行签名
Figure GDA0003584072420000069
并把签名结果发送给用户u;且,KSi设置qN=qN+1;
3)用户u通过检查等式
Figure GDA00035840724200000610
验证签名σi,随机选择通过验证的t个签名值σ1、σ2、...、σt;并计算
Figure GDA00035840724200000611
其中,
Figure GDA00035840724200000612
4)用户u验证e(σ,P)=e(H(M),Q),若成立,用户u计算K=h(σ)作为MLE密钥;否则,用户u终止程序。
3、用户与云服务器通信,实现数据的双向拥有性证明:
1)对于数据M,用户u利用MLE密钥加密获得数据密文C=EK(M),并且计算标签值tag=h1(C);并且,用户u选择随机数β∈Zp *;用户u发送tag和β到云服务器;
2)云服务器收到tag后,首先通过检测tag值是否已经存储判断数据C是否已经存在;若不存在,云服务器发送false给用户;若已经存在,云服务器随机选择
Figure GDA0003584072420000071
并生成一个承诺
Figure GDA0003584072420000072
云服务器发送随机数
Figure GDA0003584072420000073
和承诺
Figure GDA0003584072420000074
给用户;
3)用户收到
Figure GDA0003584072420000075
Figure GDA0003584072420000076
用户验证该承诺;若该承诺为真,用户计算一个新承诺
Figure GDA0003584072420000077
并发送新承诺
Figure GDA0003584072420000078
给云服务器;否则,用户丢弃该消息(
Figure GDA0003584072420000079
Figure GDA00035840724200000710
);
4)云服务器收到用户发送的新承诺
Figure GDA00035840724200000711
验证新承诺,若承诺为真,云服务器将用户添加到密文C的用户列表;否则,云服务器丢弃该消息(新承诺
Figure GDA00035840724200000712
);
4)若用户收到false,用户上传数据,具体为:
4.1)用户u把数据密文C分为v块,每块分为q个扇区,表示为:
c11…c1q,c21…c2q,……,cv1…cvq∈Zp *
4.2)用户u随机选择U1,U2,…,Uq←G,计算:
Figure GDA00035840724200000713
其中,1≤i≤v、1≤j≤q,K为数据M的MLE密钥,name为数据M的名字;
用户u发送C={c11…c1q,c21…c2q,……,cv1…cvq}、标签值{δ12,…,δv}以及随机数集合{U1,U2,…,Uq}到云服务器。
4、透明化数据完整性审计和透明化数据去重:
1)云服务器获取当前时间,并选取当前时间最近的周期ep;
2)云服务器计算种子:
θ1=h1(BT||BT-1||BT-2||BT-3||...||BT-11||1)
θ2=h1(BT||BT-1||BT-2||BT-3||...||BT-11||2)
θ3=h1(BT||BT-1||BT-2||BT-3||...||BT-11||3)
其中,{BT,BT-1,BT-2,BT-3,...,BT-11}是最新确认的12个块的哈希值,T是当前时间下最新被验证的块的序列号;
3)云服务器利用θ3作为种子在周期ep中选取数据样本密文C′,并且计算
Figure GDA0003584072420000081
其中,φ为包括数据样本的证明信息的证明,C′ID为数据样本密文C′的文件标识,CC′ID为数据样本密文C′的用户列表,
Figure GDA0003584072420000082
是Merkle hash树的根节点签名,具体构造如下:
3.1)云服务器根据数据样本拥有者列表构造Merkle hash树:
拥有相同样本数据的用户充当非零叶子结点,每一个用户计算
Figure GDA0003584072420000083
作为叶子节点(即非零节点),其中,W(·)为哈希函数,IDu为用户身份,ep为周期;云服务器利用叶子节点构造树高为
Figure GDA0003584072420000084
的Merkle hash树,其中,需要填充的叶子节点作为零节点,零节点表示为W(0);
3.2)云服务器计算Merkle hash树的树根rootC′,并对其进行签名
Figure GDA0003584072420000085
3.3)云服务器生成每个用户u的证明,云服务器计算叶子结点用户u到达根节点的兄弟路径apmC′;云服务器获取Merkle hash树的最右非零叶子节点hC′,并计算最右非零叶子节点hC′到达根节点的兄弟路径apcC′
3.4)云服务器生成去重等级的证明
Figure GDA0003584072420000086
φ=(apmC′,hC′,apcC′);
4)云服务器利用{θ12}种子,生成随机挑战块,并计算相应的证明;c是挑战块的块数;具体为:
4.1)云服务器计算一系列的挑战块I={ki}、1≤i≤c,其中,
Figure GDA0003584072420000087
并计算
Figure GDA0003584072420000088
4.2)云服务器计算
Figure GDA0003584072420000089
并计算
Figure GDA00035840724200000810
之后云服务器生成数据完整性审计的证明({μ12,…,μq},δ);c′ij为样本密文C′={c′11…c′1q,c′21…c′2q,……,c′c1…c′cq}的第i块第j扇区;
5)云服务器公布数据样本和挑战块的证明于区块链:
Figure GDA0003584072420000091
6)数据样本的用户验证区块链上的证明,具体为:
6.1)透明化去重验证过程如下:
6.1.1)用户u首先获取到T、θ3,然后验证下述等式是否成立:
θ3=h1(BT||BT-1||BT-2||BT-3||...||BT-11||3),
若成立、进行6.1.2),否则、进行6.1.5);
6.1.2)用户验证基于θ3生成的数据样本密文C′与公布的是否一致,若是、进行6.1.3),否则、进行6.1.5);
6.1.3)用户u从区块链上获取
Figure GDA0003584072420000092
并且根据CC′ID验证去重等级:
6.1.3.1)用户u从φ中获取
Figure GDA0003584072420000093
并且验证兄弟路径,确保该用户的身份信息包含在数据样本拥有者列表CC′ID中,若验证成果、进行6.1.3.2),否则、进行6.1.5);
6.1.3.2)用户u从φ中获取(apmC′,hC′,apcC′),并且验证最右非零节点以及该最右非零节点的兄弟路径;若验证成果、进行6.1.4),否则、进行6.1.5);
6.1.4)用户u验证是否只有一个数据样本拥有者列表
Figure GDA0003584072420000094
若是、用户记录云服务器所公布的信息正确,否则、进行6.1.5);
6.1.5)用户记录云服务器公布的信息不正确;
6.2)透明化数据完整性审计过程如下:
6.2.1)用户u获取T、θ1、θ2、c,再验证下述等式是否成立:
θ1=h1(BT||BT-1||BT-2||BT-3||...||BT-11||1)
θ2=h1(BT||BT-1||BT-2||BT-3||...||BT-11||2)
若成立、进行6.2.2),否则、进行6.2.4);
6.2.2)用户u计算随机挑战块I={ki}(1≤i≤c),其中,
Figure GDA0003584072420000095
并计算
Figure GDA0003584072420000096
6.2.3)用户u从区块链上获取{({μ12,…,μq},δ),{U1,U2,…,Uq}},并且验证等式
Figure GDA0003584072420000101
是否成立;若等式成立,则证明了外存数据的完整性;否则,进行6.2.4);
6.2.4)用户公布外存数据完整性被破坏。
以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。

Claims (4)

1.一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法,所述方法包括三个主体:用户、n个密钥服务器与云服务器,具体包括:
初始化:系统初始化安全系数和参数,每个用户生成自身公钥和私钥,n个密钥服务器共享一个秘密值,密钥服务器相互交互,计算自身子秘密;
用户与n个密钥服务器交互,获取数据的加密密钥:用户选择随机数,并利用该随机数对上传数据的哈希值进行盲化,把盲化值发送给n个密钥服务器;每个密钥服务器收到盲化值后,用自身子秘密做签名,签名结果返回给用户;用户随机选择t个密钥服务器返回的合法签名后去盲化,并计算数据的加密密钥;
用户与云服务器通信,实现数据的双向拥有性检验:用户用加密密钥加密数据,并用哈希函数生成该数据的标签值;用户选取一个随机数,并且发送该随机数和数据的标签值给云服务器;云服务器通过检查数据的标签值是否已经存储,进而判断该数据是否已经存储于云服务器:若数据没有存储,云服务器要求用户上传数据密文;若数据已经存储,云服务器选取一个随机数,并把该随机数与用户选取的随机数以及数据密文使用哈希函数做运算,得到一个承诺,之后云服务器发送自己选取的随机数和承诺给用户;用户收到承诺后,验证该承诺是否为真,若为真,用户将自己选取的随机数和云服务器选择的随机数以及数据密文使用哈希函数做运算,得到一个新的承诺,并将新承诺发送给云服务器;云服务器验证该承诺是否为真,若为真,云服务器将用户添加到数据拥有者列表中;
透明化数据完整性审计和透明化数据去重:云服务器利用区块链中未生成区块的哈希值的不可预测性,生成随机种子,再利用该随机种子生成数据样本和随机挑战块;云服务器利用数据样本的用户信息构造Merkle hash树,并生成去重等级的证明信息;同时,云服务器生成随机挑战块的证明信息;云服务器在区块链公布生成的证明信息,每个用户进行验证并公布验证结果;具体过程为:
1)云服务器获取当前时间,并选取当前时间最近的周期ep;
2)云服务器计算种子:
θ1=h1(BT||BT-1||BT-2||BT-3||...||BT-11||1)
θ2=h1(BT||BT-1||BT-2||BT-3||...||BT-11||2)
θ3=h1(BT||BT-1||BT-2||BT-3||...||BT-11||3)
其中,{BT,BT-1,BT-2,BT-3,...,BT-11}是最新确认的12个块的哈希值,T是当前时间最新被验证的块的序列号;h1()表示哈希函数;
3)云服务器利用θ3作为种子在周期ep中选取数据样本密文C′,并且生成
Figure FDA0003584072410000021
其中,φ为包括数据样本的证明信息的证明,C′ID为数据样本密文C′的文件标识,CC′ID为数据样本密文C′的用户列表,
Figure FDA0003584072410000022
是Merkle hash树的根节点签名,具体构造如下:
3.1)云服务器根据数据样本拥有者列表构造Merkle hash树:
拥有相同样本数据的用户充当非零叶子结点,每一个用户计算
Figure FDA0003584072410000023
作为叶子节点,其中,W(·)为哈希函数,IDu为用户身份,ep为周期;云服务器利用叶子节点构造树高为
Figure FDA0003584072410000024
的Merkle hash树,其中,需要填充的叶子节点作为零节点,零节点表示为W(0);
3.2)云服务器计算Merkle hash树的树根rootC′,并对其进行签名
Figure FDA0003584072410000025
其中Sig()为签名算法;
3.3)云服务器生成每个用户u的证明,云服务器计算叶子结点用户u到达根节点的兄弟路径apmC′;云服务器获取Merkle hash树的最右非零叶子节点hC′,并计算最右非零叶子节点hC′到达根节点的兄弟路径apcC′
3.4)云服务器生成去重等级的证明
Figure FDA0003584072410000026
φ=(apmC′,hC′,apcC′);
4)云服务器利用{θ12}种子,生成随机挑战块,并计算相应的证明;c为挑战块的块数;具体计算如下:
4.1)云服务器计算一系列的挑战块I={ki},1≤i≤c,其中,
Figure FDA0003584072410000027
并计算
Figure FDA0003584072410000028
πkey(·)表示基于key的伪随机置换函数,fkey(·)表示基于key的伪随机函数;
4.2)云服务器计算
Figure FDA0003584072410000029
并计算
Figure FDA00035840724100000210
之后云服务器生成数据完整性审计的证明({μ12,…,μq},δ);c′ij为样本密文C′={c′11…c′1q,c′21…c′2q,……,c′c1…c′cq}的第i块第j扇区;q表示扇区总数,
Figure FDA0003584072410000031
{U1,U2,…,Uq}为随机数集合,K为数据M的MLE密钥,name为数据M的名字,H()为哈希函数;
5)云服务器公布数据样本和挑战块的证明于区块链:
Figure FDA0003584072410000032
6)数据样本的用户验证区块链上的证明,具体为:
6.1)透明化去重验证过程如下:
6.1.1)用户u首先获取到T、θ3,然后验证下述等式是否成立:
θ3=h1(BT||BT-1||BT-2||BT-3||...||BT-11||3),
若成立、进行6.1.2),否则、进行6.1.5);
6.1.2)用户验证基于θ3生成的数据样本密文C′与公布的是否一致,若是、进行6.1.3),否则、进行6.1.5);
6.1.3)用户u从区块链上获取
Figure FDA0003584072410000033
并且根据CC′ID验证去重等级:
6.1.3.1)用户u获取
Figure FDA0003584072410000034
并且验证兄弟路径,确保该用户的身份信息包含在数据样本拥有者列表CC′ID中;若验证成功、进行6.1.3.2),否则、进行6.1.5);
6.1.3.2)用户u获取(apmC′,hC′,apcC′),并且验证最右非零节点以及该最右非零节点的兄弟路径;若验证成功、进行6.1.4),否则、进行6.1.5);
6.1.4)用户u验证是否只有一个数据样本拥有者列表
Figure FDA0003584072410000035
若是、用户记录云服务器所公布的信息正确,否则、进行6.1.5);
6.1.5)用户记录云服务器所公布的信息不正确;
6.2)透明化数据完整性审计过程如下:
6.2.1)用户u获取T、θ1、θ2、c,再验证下述等式是否成立:
θ1=h1(BT||BT-1||BT-2||BT-3||...||BT-11||1)
θ2=h1(BT||BT-1||BT-2||BT-3||...||BT-11||2)
若成立、进行6.2.2),否则、进行6.2.4);
6.2.2)用户u计算随机挑战块I={ki},1≤i≤c,其中,
Figure FDA0003584072410000041
并计算
Figure FDA0003584072410000042
6.2.3)用户u从区块链上获取{({μ12,…,μq},δ),{U1,U2,…,Uq}},并且验证等式
Figure FDA0003584072410000043
是否成立;若等式成立,则证明了外存数据的完整性;否则,进行6.2.4);e表示双线性映射,P表示加法群G的生成元;
6.2.4)用户公布外存数据完整性被破坏。
2.按权利要求1所述一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法,其特征在于,所述初始化的具体过程为:
初始化参数集合PP={p,P,G,GT,e,h,h1,H,l,qE},其中,G为一个阶为素数p、生成元为P的加法群,e:G×G→GT为双线性映射,h、h1、H均为哈希函数,l是系统安全参数,qE是系统规定每个用户在每个周期向密钥服务器请求密钥的次数;
用户随机选择α∈Zp *作为用户的私钥sk,并计算y=αP作为用户的公钥pk;n个密钥服务器KSi、i∈[1,n]之间共享秘密值,Zp *表示p阶乘法群;具体生成方法如下:
1)每个密钥服务器KSi随机选择ai0∈Zp *和一个t-1次的多项式fi(x):fi(0)=ai0,而fi(x)=ai0+ai1x+...+ait-1xt-1
2)对于ε=1,2,...,t-1,每一个KSi发送ai0P和aP到其他密钥服务器;KSi秘密发送fi(j)给密钥服务器KSj,其中,j=1,2,...,n;j≠i;
3)当密钥服务器KSi收到来自密钥服务器KSj发送的fj(i)后,KSi通过
Figure FDA0003584072410000044
验证fj(i),若验证通过、KSi接收,否则、KSi拒绝;
4)KSi计算自身子秘密:
Figure FDA0003584072410000045
并计算自身子公钥:Qi=siP;所有密钥服务器的秘密值为
Figure FDA0003584072410000046
公开值为
Figure FDA0003584072410000047
5)每个密钥服务器KSi保存每一个用户向其请求密钥次数的列表,采用qN表示用户请求密钥次数,qN初始化为0。
3.按权利要求2所述一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法,其特征在于,所述用户与n个密钥服务器交互,获取数据M的加密密钥,具体过程为:
1)用户u随机选择r∈Zp *,并计算
Figure FDA0003584072410000051
用户u将
Figure FDA0003584072410000052
发送给每一个密钥服务器KSi
2)密钥服务器KSi收到用户发送的
Figure FDA0003584072410000053
首先检测qN≤qE是否成立,若不成立、密钥服务器拒绝,否则、KSi使用自身子秘密si
Figure FDA0003584072410000054
进行签名
Figure FDA0003584072410000055
并把签名结果发送给用户u;并且,KSi设置qN=qN+1;qE是系统规定每个用户在每个周期向密钥服务器请求密钥的次数;
3)用户u通过检查等式
Figure FDA0003584072410000056
验证签名σi,随机选择通过验证的t个签名值σ1、σ2、...、σt;并计算
Figure FDA0003584072410000057
其中,
Figure FDA0003584072410000058
4)用户u验证e(σ,P)=e(H(M),Q),若成立,用户u计算K=h(σ)作为密钥;否则,用户u终止程序。
4.按权利要求3所述一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法,其特征在于,所述用户与云服务器通信,实现数据的双向拥有性证明,具体过程为:
1)对于数据M,用户u利用密钥加密获得数据密文C=EK(M),并且计算标签值tag=h1(C);并且,用户u选择随机数β∈Zp *;用户u发送tag和β到云服务器;
2)云服务器收到tag后,首先通过检测tag值是否已经存储判断数据密文C是否已经存在;若不存在,云服务器发送false给用户;若已经存在,云服务器随机选择
Figure FDA0003584072410000059
并生成一个承诺
Figure FDA00035840724100000510
云服务器发送随机数
Figure FDA00035840724100000511
和承诺
Figure FDA00035840724100000512
给用户;
3)若用户收到
Figure FDA00035840724100000513
Figure FDA00035840724100000514
用户验证该承诺;若该承诺为真,用户计算一个新承诺
Figure FDA00035840724100000515
并发送新承诺
Figure FDA00035840724100000516
给云服务器;否则,用户丢弃
Figure FDA00035840724100000517
Figure FDA00035840724100000518
云服务器收到用户发送的新承诺
Figure FDA0003584072410000061
验证新承诺,若承诺为真,云服务器将用户添加到密文C的用户列表;否则,云服务器丢弃新承诺
Figure FDA0003584072410000062
4)若用户收到false,用户上传数据,具体为:
4.1)用户u把数据密文C分为v块,每块分为q个扇区,表示为:
c11…c1q,c21…c2q,……,cv1…cvq∈Zp *
4.2)用户u随机选择U1,U2,…,Uq←G,计算认证值:
Figure FDA0003584072410000063
其中,1≤i≤v、1≤j≤q,K为数据M的密钥,name为数据M的名字;
4.3)用户u发送C={c11…c1q,c21…c2q,……,cv1…cvq}、认证值{δ12,…,δv}以及随机数集合{U1,U2,…,Uq}到云服务器。
CN201910457102.9A 2019-05-29 2019-05-29 一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法 Expired - Fee Related CN110278076B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910457102.9A CN110278076B (zh) 2019-05-29 2019-05-29 一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910457102.9A CN110278076B (zh) 2019-05-29 2019-05-29 一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法

Publications (2)

Publication Number Publication Date
CN110278076A CN110278076A (zh) 2019-09-24
CN110278076B true CN110278076B (zh) 2022-06-03

Family

ID=67960337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910457102.9A Expired - Fee Related CN110278076B (zh) 2019-05-29 2019-05-29 一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法

Country Status (1)

Country Link
CN (1) CN110278076B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111083105B (zh) * 2019-11-05 2021-06-25 湖南大学 一种基于区块链的云数据持有性验证方法及系统
CN111339572A (zh) * 2020-03-04 2020-06-26 鹏城实验室 云数据完整性的验证方法、系统、终端设备及存储介质
CN111698278B (zh) * 2020-04-10 2021-06-25 湖南大学 一种基于区块链的多云数据存储方法
US11816069B2 (en) 2020-07-27 2023-11-14 International Business Machines Corporation Data deduplication in blockchain platforms
CN112580083B (zh) * 2020-12-30 2023-04-14 电子科技大学 一种基于双向可延展持有权证明的数据外包去重复方法
CN112866990B (zh) * 2021-01-07 2022-02-01 哈尔滨工业大学(深圳) 一种具有激励机制的条件身份匿名隐私保护公共审计方法
CN113098681B (zh) * 2021-03-05 2022-03-15 电子科技大学 云存储中口令增强且可更新的盲化密钥管理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395349A (zh) * 2017-08-16 2017-11-24 深圳国微技术有限公司 一种基于自认证公钥体制的区块链网络密钥分发方法
CN108600263A (zh) * 2018-05-09 2018-09-28 电子科技大学 一种基于拥有性证明的安全有效的客户端去重协议
WO2018213519A1 (en) * 2017-05-17 2018-11-22 Trotter Douglas H Secure electronic transaction authentication
CN108924092A (zh) * 2018-06-07 2018-11-30 北京航空航天大学 基于区块链的可公开仲裁分布式云存储方法及系统
CN109391621A (zh) * 2018-10-24 2019-02-26 电子科技大学 基于区块链的公共云存储数据完整性检验方法
CN109462581A (zh) * 2018-10-24 2019-03-12 电子科技大学 能够抵御暴力字典敌手持续攻击的密文去重方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254374B (zh) * 2016-09-05 2019-10-01 电子科技大学 一种具备去重功能的云数据公开审计方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018213519A1 (en) * 2017-05-17 2018-11-22 Trotter Douglas H Secure electronic transaction authentication
CN107395349A (zh) * 2017-08-16 2017-11-24 深圳国微技术有限公司 一种基于自认证公钥体制的区块链网络密钥分发方法
CN108600263A (zh) * 2018-05-09 2018-09-28 电子科技大学 一种基于拥有性证明的安全有效的客户端去重协议
CN108924092A (zh) * 2018-06-07 2018-11-30 北京航空航天大学 基于区块链的可公开仲裁分布式云存储方法及系统
CN109391621A (zh) * 2018-10-24 2019-02-26 电子科技大学 基于区块链的公共云存储数据完整性检验方法
CN109462581A (zh) * 2018-10-24 2019-03-12 电子科技大学 能够抵御暴力字典敌手持续攻击的密文去重方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
《Blockchain Based Data Integrity Verification in P2P Cloud Storage》;Dongdong Yue et al.;《2018 IEEE 24th International Conference on Parallel and Distributed Systems (ICPADS)》;20181213;全文 *
《Blockchain-Based Public Integrity Verification for Cloud Storage against Procrastinating Auditors》;Yuan Zhang et al.;《IEEE Transactions on Cloud Computing》;20190329;全文 *
《Blockchain-Based Secure Data Provenance for Cloud Storage》;Yuan Zhang et al.;《Information and Communications Security》;20181026;全文 *
《Efficient Client-Side Deduplication of Encrypted Data With Public Auditing in Cloud Storage》;Taek-Young Youn et al.;《IEEE Access》;20180505;全文 *
《基于区块链的云数据删除验证协议》;刘忆宁等;《计算机研究与发展》;20181231;全文 *
《基于区块链的数据存储应用研究》;李亚楠;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180615;全文 *

Also Published As

Publication number Publication date
CN110278076A (zh) 2019-09-24

Similar Documents

Publication Publication Date Title
CN110278076B (zh) 一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法
CN105939191B (zh) 一种云存储中密文数据的客户端安全去重方法
CN107800688B (zh) 一种基于收敛加密的云端数据去重和完整性审计方法
CN108768608B (zh) 在区块链pki下支持瘦客户端的隐私保护身份认证方法
CN109905247B (zh) 基于区块链的数字签名方法、装置、设备及存储介质
CN110741600A (zh) 提供去中心化协议以找回加密资产的计算机实现的系统和方法
FR3027177A1 (fr) Procede d'authentification d'un dispositif client aupres d'un serveur a l'aide d'un element secret
JP2008545353A (ja) 未知の通信当事者間における信頼できる関係の確立
CN110365469B (zh) 一种支持数据隐私保护的云存储中数据完整性验证方法
CN103986732A (zh) 抵御密钥泄露的云存储数据审计方法
CN114049121B (zh) 基于区块链的账户重置方法和设备
CN108924103A (zh) 面向云存储的基于身份的在线/离线可搜索加密方法
CN116418560A (zh) 一种基于区块链智能合约的线上快速身份认证系统及方法
Liu et al. PTAP: A novel secure privacy-preserving & traceable authentication protocol in VANETs
CN1633072A (zh) 一种支持弱口令的双服务器认证方案
CN108809996B (zh) 不同流行度的删重存储数据的完整性审计方法
CN113098681B (zh) 云存储中口令增强且可更新的盲化密钥管理方法
CN114339735A (zh) 一种基于ntru的天地一体化网络匿名接入认证方法
CN106713256A (zh) 一种税控专用计算机软硬件绑定的认证方法
Ogundoyin An Efficient, Secure and Conditional Privacy-Preserving Authentication Scheme for Vehicular Ad-hoc Networks.
CN111245611B (zh) 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统
CN115865520B (zh) 移动云服务环境中具有隐私保护的认证和访问控制方法
CN109462581B (zh) 能够抵御暴力字典敌手持续攻击的密文去重方法
Yang et al. Provable Ownership of Encrypted Files in De-duplication Cloud Storage.
CN110737907A (zh) 基于联盟链的抗量子计算云存储方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220603