1.一种基于全同态加密的云环境数据完整性验证方法,其特征在于:包括以下步骤:
步骤1、初始化参数:由用户和云存储服务器协商产生一组双方共享的参数;
步骤2、初始化秘钥:用户在初始化秘钥后将公钥公开,私钥则由用户秘密保存;
步骤3、生成同态标签:用户在将文件上传到云存储服务器之前,首先按照一定大小对文件进行分块,之后用户在本地通过计算产生同态标签,一个文件块对应一个标签,文件块和用户的私钥将作为输入,同态标签则是对应的输出;
步骤4、存储文件和标签:在产生同态标签后,用户将对文件本身和标签进行存储管理,用户将文件本身移动到云端进行在线存储,移动完成后删除本地的文件副本以释放本地的存储空间,同态标签存储在用户本地或者使用对称加密算法进行加密后上传到云存储服务器中进行保存;
步骤5、用户发起验证挑战:用户在本地产生若干随机数,构造挑战消息,并将该消息传输给服务器;
步骤6、产生完整性证据:服务器解析用户发送的挑战消息,读取对应的文件块,计算完整性证据的算法包括3个输入:文件块、挑战信息和步骤1得到的参数,计算过程的输出则是文件块的完整性证据,服务器将产生的完整性证据返回到挑战发起者;
步骤7、验证完整性证据:用户接收到完整性证据后对其进行合法性验证,该步骤中使用的算法包括3个输入:完整性证据、同态标签和用户公钥,输出则是一个代表完整性证据是否有效的布尔值。
2.根据权利要求1所述的一种基于全同态加密的云环境数据完整性验证方法,其特征在于:该验证方法包括Diffie-Hellman体制、RSA体制和双线性对等若干具有同态性质的算法。
3.根据权利要求1所述的一种基于全同态加密的云环境数据完整性验证方法,其特征在于:该验证方法用到的安全模型,包括以下步骤:A1、初始化:挑战者运行初始化算法,输入相关安全参数k、λp、λq以及m、s,得到具有同态性质的密钥K和私钥sk,同时把公钥传给对手,公钥为:KeyGen(1k,λp,λq,m,s)→(K,sk),其中,m为消息扇区数目,s为随机种子;
A2、阶段1:这一阶段是由数据所有者执行,以生成文件的标记,输入同态密钥K、私钥sk以及文件F,得到用于表示每个块的标记的顺序集合的输出标签集T:TagGen(K,sk,F)→T;
A3、挑战:数据所有者执行该算法以生成质疑信息,它以被挑战的块计数c作为输入,并输出挑战chall,其表达式为:Challenge(c)→chall;
A4、猜测:CSS执行该算法生成完整性验证P,它输入文件F、标签集T和质疑集chall,并输出验证P,其表达式为:ProofGen(F,T,chall)→P;
A5、证明:数据所有者执行该算法,使用CSS返回的验证P检查文件的完整性,输入同态密钥K、私钥sk、挑战chall以及验证P,如果P正确则输出1,否则P错误则输出0,其表达式为:Verify(K,sk,chall,P)→{1,0}。
4.根据权利要求1所述的一种基于全同态加密的云环境数据完整性验证方法,其特征在于:步骤1-7均以数据块作为最小单位进行。
5.根据权利要求1所述的一种基于全同态加密的云环境数据完整性验证方法,其特征在于:该验证方法还包括混合数据动态数据操作方法,该操作方法包括三个概率多项式时间算法,具体包括以下子步骤:B1、PrepareUpdate(pk,sk,m')→Info:由用户执行的生成更新请求算法,用户根据需求,输入公钥pk、私钥sk、新的数据信息m',输出更新请求信息Info,更新请求中包括更新的数据信息,以及操作类型Modify,Insert或Delete分别表示修改、插入或删除操作;
B2、PerformUpdate(Info,F,φ)→{F',φ',P'}:由云存储服务器CSS执行的更新算法,输入接收到的更新请求Info、保存的用户数据F和元数据φ,输出更新后的数据集合F'、新的元数据φ'、CSS执行更新操作的证据P';
B3、VerifyUpdate(pk,P')→{accept,reject}:由第三方审计员执行的验证更新操作的算法,输入用户的公钥pk和CSS返回的更新证据P',若验证通过,则输出accept;否则,验证不通过,则输出reject。