一种基于新型认证结构的卫星数据完整性验证方法与流程
未命名
07-14
阅读:114
评论:0
1.本发明涉及卫星通信和网络安全技术领域,特别涉及一种基于新型认证结构的卫星数据完整性验证方法。
背景技术:
2.随着云计算技术的发展和卫星通信网络的推广应用,越来越多的卫星通信数据通过云计算中心来进行存储、转发和计算。然而,传统的云存储中支持数据动态操作的方案一般是基于跳表结构或者是mht的结构。跳表结构在支持数据完整性验证的过程中,认证路径较长,因此造成的卫星通信网络通信开销较大,而mht的结构便于操作且效率较高。但是,在mht的结构中,如果在树的同一位置多次插入新的数据块后,容易造成某个结点分支过长,使整个树失去平衡。为了解决认证路径过长的问题,本方法提出一种基于改进的三层树的新型认证结构,将其应用于卫星数据完整性验证模型中,验证数据完整性。
技术实现要素:
3.本发明针对基于mht树的卫星数据完整性方案存在的认证路径过长的问题,提供了一种基于新型认证结构的卫星数据完整性验证方法。
4.为了实现以上发明目的,本发明采取的技术方案如下:
5.一种基于新型认证结构的卫星数据完整性验证方法,包括:所述新型认证结构的数据完整性验证模型包括三个角色:用户、第三方审计tpa和云存储服务器css。
6.所述卫星数据完整性验证方法包括以下步骤:
7.s1、初始化阶段,用户生成验证过程所需的公钥和私钥,然后将文件分块,得到数据块集合;
8.s2、上传阶段:为每一个数据块生成验证标签,并将标签集合和数据块集合一起发送给第三方审计tpa;
9.s3、挑战阶段:tpa收到用户发送的文件后,构建新型认证结构,计算根节点并对根节点签名;随后,tpa将数据块集合,标签集合以及根节点发送到云存储服务器css;
10.s4、应答阶段:用户授权tpa向云存储服务器发起完整性挑战,云存储服务器收到挑战后得到完整性证据,并将其发送给tpa;
11.s5、验证阶段:最后tpa完成完整性验证并将验证结果返回给用户。
12.进一步地,所述新型认证结构,包括:改进的三层树结构:根结点、中间结点和叶子结点;
13.叶子节点存储数据块相关信息,中间节点以及根节点的值是叶子结点存储信息通过运算得到的。
14.用户将文件f分成l块:f={m1,m2,l,m
l
},树的高度为3层,中间节点子节点数目为k,根结点子节点数目没有限制。
15.所述认证结构保留了传统的默克尔哈希树节点间哈希运算的特性,叶子结点的存
储的数据是数据块mi的哈希值h(mi),中间节点存储的数据对应的k个叶子结点存储的哈希值链接之后再进行哈希运算之后得到的,根节点存储的数据则是所有的间节点进行链接之后再进行哈希运算得到的。
16.叶子结点运算公式为
17.f(mi)=h(mi)
ꢀꢀ
(3-1)
18.中间节点计算公式为
19.f(qi)=h(f(m1)|f(m2)||l||f(mk))
ꢀꢀ
(3-2)
20.根节点计算公式为
21.f(r)=h(f(q1)||f(q2)||l||f(q
x
))
ꢀꢀ
(3-3)
22.中间节点存储的信息是辅助认证路径信息,在验证数据完整性时,css返回的是辅助认证路径信息、数据块信息以及根节点信息。验证者根据数据块信息以及辅助认证路径信息计算出认证结构中根节点r的值,然后将计算出的结果与存储在验证者本地的根哈希值进行对比,验证数据块的存储位置以及数据块信息是否发生变化,从而验证存储在css的数据的完整性。如果对比结果一致,则数据的完整性得到了验证;否则,数据完整性遭到了破坏,用户可以向css提出赔偿要求。
23.进一步地,s1、初始化阶段具体为:由多项式时间算法kengen组成,这一阶段由用户完成。用户首先运行密钥生成算法keygen(1k)
→
(sk,pk):用户随机选择一个整数u
←zq
,计算v=gu,则验证过程中的公私钥对为(u,v)。然后,用户将文件f切分成大小相同的l块,即f=(m1,m2,m3,l,m
l
);
24.进一步地,s2、上传阶段具体为:用户将文件f的分块数据mi(i=1,2,l,l)发送给tpa。tpa收到文件之后,运行数据块签名算法siggen(f,u):对于文件f,tpa分别为每一个数据块mi生成一个标签其中ξi=name||t||δ是文件f的唯一标识,t为更新时间戳,δ
←
g为用户随机选取的一个元素。这一阶段结束之后,tpa得到一个数据块签名集合φ=(φi|i=1,2,l,l)。同时,tpa利用数据块构造新型认证结构,计算根节点r,并对根节点r进行签名sigu(f(r))=(f(r))u,并将标签t=sigu(f(r))发送给用户,作为消息确认。随后tpa将数据分块集合、标签集合以及标签t发送给css,然后删除本地文件节省存储空间,只保留标签t。
25.进一步地,s3、挑战阶段具体为:由第三方审计tpa或者用户完成。当用户将初始化处理之后的数据上传到云端,用户会授权第三方审计tpa定期对存储在云端的数据进行完整性验证。tpa运行挑战信息生成算法chalgen。为了保证验证结果的可靠性,tpa随机抽取数据块进行验证,即从数据块的索引集合[1,l]中随机抽取c个元素组成验证数据块索引集合i={q1,q2,l,qc}(q1<q2<l<qc)。对于随机抽取的任意数据块i,tpa随机选择非负整数λi∈zq,生成挑战信息对集合然后将生成的挑战信息集合chal发送到云服务端。
[0026]
进一步地,s4、应答阶段具体为:css接收到tpa发送的挑战信息后,运行证据生成算法genpro生成完整性证据。云服务端分别对挑战信息集合中i所对应的数据块以及数据块签名进行运算得到μ和σ,其中随后将数据完整性验证证据
sigu(f(r))}发送给tpa。
[0027]
进一步地,s5、验证阶段具体为:第三方审计tpa接收到证据后运行验证算法verpro。tpa首先验证sigu(f(r)),通过返回证据中的{h(mi),ωi}计算根哈希值f(r),验证e(t,g)=e(f(r),v)。若这一等式不成立,则数据完整性遭到破坏。当等式成立的时候,继续验证是否成立,如果成立,则证明数据是完整的,否则说明数据被损坏了,发生了修改操作。
[0028]
与现有技术相比,本发明的优点在于:
[0029]
为三层树结构,当插入新的数据时,树的根节点的子节点的数目会增加,但是树的高度不会增加,使得验证过程中的辅助信息减少,减小了验证过程中的开销。本发明还具有良好的验证卫星云平台数据的性能,不仅可以完成完整性验证的功能,还能够有效地减小计算与通信开销,提高验证效率。
附图说明
[0030]
图1是本发明实施例数据完整性验证模型结构示意图;
[0031]
图2是本发明实施例新型认证结构示意图;
[0032]
图3是本发明实施例9个数据块的新型认证结构示意图;
[0033]
图4是本发明实施例验证过程流程图;
[0034]
图5是本发明实施例初始化阶段和上传阶段具体流程图;
[0035]
图6是本发明实施例挑战阶段、应答阶段以及审计阶段具体流程图。
具体实施方式
[0036]
为使本发明的目的、技术方案及优点更加清楚明白,以下根据附图并列举实施例,对本发明做进一步详细说明。
[0037]
本发明提供一种一种基于新型认证结构的卫星数据完整性验证方法,首先需要明确定义图1为该方法的所提出的数据完整性验证模型,包括:
[0038]
基于改进的新型认证结构的数据完整性验证模型如图1所示。该模型主要包括三个角色:用户、第三方审计(third party auditor,tpa)和云存储服务器(cloud server provider)。
[0039]
整个验证过程中的包括的算法如下。
[0040]
keygen(
·
):用户执行,生成验证过程中所需的公私钥对。输入的信息是安全参数,输出的信息是公私钥对;
[0041]
siggen(
·
):由用户执行,对文件进行初步处理,并生成与文件相关的元数据,用户后期的完整性验证。输入的信息是私钥、文件,输出的是数据块集合以及数据块标签集合;
[0042]
genpro(
·
):由css执行,根据tpa发送的挑战信息,得到完整性证据。输入的信息是数据块集合和数据块标签集合,输出的是完整性验证证据;
[0043]
verpro(
·
):由tpa执行,输入的是css返回的完整性证据,输出的是验证结果。
[0044]
根据本发明实施例,图2为该方法的所提出的新型认证结构,包括:
[0045]
新型认证结构为改进的三层树结构,它的叶子节点存储数据块相关信息,中间节点以及根节点的值是叶子结点存储信息通过某种运算得到的。用户将文件f分成l块:f={m1,m2,l,m
l
},树的高度为3层,中间节点子节点数目为k,根结点子节点数目没有限制。这种新型认证结构保留了传统的默克尔哈希树节点间哈希运算的特性,叶子结点的存储的数据是数据块mi的哈希值h(mi),中间节点存储的数据对应的k个叶子结点存储的哈希值链接之后再进行哈希运算之后得到的,根节点存储的数据则是所有的间节点进行链接之后再进行哈希运算得到的。新型认证结构如图2所示。
[0046]
叶子结点运算公式为
[0047]
f(mi)=h(mi)
ꢀꢀ
(3-1)
[0048]
中间节点计算公式为
[0049]
f(qi)=h(f(m1)|f(m2)||l||f(mk))
ꢀꢀ
(3-2)
[0050]
根节点计算公式为
[0051]
f(r)=h(f(q1)||f(q2)||l||f(q
x
))
ꢀꢀ
(3-3)
[0052]
中间节点存储的信息是辅助认证路径信息,在验证数据完整性时,css返回的是辅助认证路径信息、数据块信息以及根节点信息。验证者根据数据块信息以及辅助认证路径信息计算出认证结构中根节点r的值,然后将计算出的结果与存储在验证者本地的根哈希值进行对比,验证数据块的存储位置以及数据块信息是否发生变化,从而验证存储在css的数据的完整性。如果对比结果一致,则数据的完整性得到了验证;否则,数据完整性遭到了破坏,用户可以向css提出赔偿等要求。
[0053]
具体地,假设用户将文件f分成9块,中间节点的子节点数目为3,则新型认证结构如图3所示。
[0054]
在用户验证完整性时,如果tpa请求验证数据块m3的完整性,css返回的辅助认证路径信息ωi。验证数据块m3的完整性时,需要进行两次哈希运算:
[0055]
f(q1)=h(f(m3)||f(m1)||f(m2))
ꢀꢀ
(3-4)
[0056]
f(r)=h(f(q1)||f(q2)||f(q3))
ꢀꢀ
(3-5)
[0057]
计算次数明显小于使用默克尔哈希树认证结构进行完整性验证时进行的运算次数。云审计端的审计效率与目标数据块的认证路径长度正相关,新型认证结构可以缩短认证路径长度,进而减小数据完整性验证时的开销,从而提高验证效率。
[0058]
图4为该方法的所提出的验证过程流程图,包括:
[0059]
定义双线性映射e:g1×
g1→
g,其中,g1和g都是素数阶为q的乘法循环群,g为g1的生成元。h(
·
):{0,1}
*
→
g1是非碰撞的哈希函数。
[0060]
基于改进的新型认证结构的数据完整性验证方案由多个阶段构成,包括数据初始化阶段、数据上传阶段以及完整性验证阶段。
[0061]
初始化阶段:由多项式时间算法kengen组成,这一阶段由用户完成。用户首先运行密钥生成算法keygen(1k)
→
(sk,pk):用户随机选择一个整数u
←zq
,计算v=gu,则验证过程中的公私钥对为(u,v)。然后,用户将文件f切分成大小相同的l块,即f=(m1,m2,m3,l,m
l
);
[0062]
上传阶段:用户将文件f的分块数据mi(i=1,2,l,l)发送给tpa。tpa收到文件之后,运行数据块签名算法siggen(f,u):对于文件f,tpa分别为每一个数据块mi生成一个标签其中ξi=name||t||δ是文件f的唯一标识,t为更新时间戳,δ
←
g为用户
随机选取的一个元素。这一阶段结束之后,tpa得到一个数据块签名集合φ=(φi|i=1,2,l,l)。同时,tpa利用数据块构造新型认证结构,计算根节点r,并对根节点r进行签名sigu(f(r))=(f(r))u,并将标签t=sigu(f(r))发送给用户,作为消息确认。随后tpa将数据分块集合、标签集合以及标签t发送给css,然后删除本地文件节省存储空间,只保留标签t。初始化阶段和上传阶段具体流程如图5所示。
[0063]
挑战阶段:这一阶段可以由第三方审计tpa完成,也可以由用户完成。由于用户不是一直在线,同时为了减少用户的工作量,大部分时候由tpa完成。当用户将初始化处理之后的数据上传到云端,用户会授权第三方审计tpa定期对存储在云端的数据进行完整性验证。tpa运行挑战信息生成算法chalgen。为了保证验证结果的可靠性,tpa随机抽取数据块进行验证,即从数据块的索引集合[1,l]中随机抽取c个元素组成验证数据块索引集合i={q1,q2,l,qc}(q1<q2<l<qc)。对于随机抽取的任意数据块i,tpa随机选择非负整数λi∈zq,生成挑战信息对集合然后将生成的挑战信息集合chal发送到云服务端。
[0064]
应答阶段:css接收到tpa发送的挑战信息后,运行证据生成算法genpro生成完整性证据。云服务端分别对挑战信息集合中i所对应的数据块以及数据块签名进行运算得到μ和σ,其中随后将数据完整性验证证据sigu(f(r))}发送给tpa。
[0065]
验证阶段:第三方审计tpa接收到证据后运行验证算法verpro。tpa首先验证sigu(f(r)),通过返回证据中的{h(mi),ωi}计算根哈希值f(r),验证e(t,g)=e(f(r),v)。若这一等式不成立,则数据完整性遭到破坏。当等式成立的时候,继续验证是否成立,如果成立,则证明数据是完整的,否则说明数据被损坏了,发生了修改操作。挑战阶段、应答阶段以及审计阶段具体流程如图6所示。
[0066]
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
技术特征:
1.一种基于新型认证结构的卫星数据完整性验证方法,包括:所述新型认证结构的数据完整性验证模型包括三个角色:用户、第三方审计tpa和云存储服务器css;所述卫星数据完整性验证方法包括以下步骤:s1、初始化阶段,用户生成验证过程所需的公钥和私钥,然后将文件分块,得到数据块集合;s2、上传阶段:为每一个数据块生成验证标签,并将标签集合和数据块集合一起发送给第三方审计tpa;s3、挑战阶段:tpa收到用户发送的文件后,构建新型认证结构,计算根节点并对根节点签名;随后,tpa将数据块集合,标签集合以及根节点发送到云存储服务器css;s4、应答阶段:用户授权tpa向云存储服务器发起完整性挑战,云存储服务器收到挑战后得到完整性证据,并将其发送给tpa;s5、验证阶段:最后tpa完成完整性验证并将验证结果返回给用户。2.根据权利要求1所述的一种基于新型认证结构的卫星数据完整性验证方法,其特征在于:所述新型认证结构,包括:改进的三层树结构:根结点、中间结点和叶子结点;叶子节点存储数据块相关信息,中间节点以及根节点的值是叶子结点存储信息通过运算得到的;用户将文件f分成l块:f={m1,m2,l,m
l
},树的高度为3层,中间节点子节点数目为k,根结点子节点数目没有限制;所述认证结构保留了传统的默克尔哈希树节点间哈希运算的特性,叶子结点的存储的数据是数据块m
i
的哈希值h(m
i
),中间节点存储的数据对应的k个叶子结点存储的哈希值链接之后再进行哈希运算之后得到的,根节点存储的数据则是所有的间节点进行链接之后再进行哈希运算得到的;叶子结点运算公式为f(m
i
)=h(m
i
)
ꢀꢀ
(3-1)中间节点计算公式为f(q
i
)=h(f(m1)|f(m2)||l||f(m
k
))
ꢀꢀ
(3-2)根节点计算公式为f(r)=h(f(q1)||f(q2)||l||f(q
x
))
ꢀꢀ
(3-3)中间节点存储的信息是辅助认证路径信息,在验证数据完整性时,css返回的是辅助认证路径信息、数据块信息以及根节点信息;验证者根据数据块信息以及辅助认证路径信息计算出认证结构中根节点r的值,然后将计算出的结果与存储在验证者本地的根哈希值进行对比,验证数据块的存储位置以及数据块信息是否发生变化,从而验证存储在css的数据的完整性;如果对比结果一致,则数据的完整性得到了验证;否则,数据完整性遭到了破坏,用户可以向css提出赔偿要求。3.根据权利要求1所述的一种基于新型认证结构的卫星数据完整性验证方法,其特征在于:s1、初始化阶段具体为:由多项式时间算法kengen组成,这一阶段由用户完成;用户首先运行密钥生成算法keygen(1
k
)
→
(s
k
,p
k
):用户随机选择一个整数u
←
z
q
,计算v=g
u
,则验证过程中的公私钥对为(u,v);然后,用户将文件f切分成大小相同的l块,即f=(m1,m2,m3,l,m
l
)。
4.根据权利要求1所述的一种基于新型认证结构的卫星数据完整性验证方法,其特征在于:s2、上传阶段具体为:用户将文件f的分块数据m
i
(i=1,2,l,l)发送给tpa;tpa收到文件之后,运行数据块签名算法siggen(f,u):对于文件f,tpa分别为每一个数据块m
i
生成一个标签其中ξ
i
=name||t||δ是文件f的唯一标识,t为更新时间戳,δ
←
g为用户随机选取的一个元素;这一阶段结束之后,tpa得到一个数据块签名集合φ=(φ
i
|i=1,2,l,l);同时,tpa利用数据块构造新型认证结构,计算根节点r,并对根节点r进行签名sig
u
(f(r))=(f(r))
u
,并将标签t=sig
u
(f(r))发送给用户,作为消息确认;随后tpa将数据分块集合、标签集合以及标签t发送给css,然后删除本地文件节省存储空间,只保留标签t。5.根据权利要求1所述的一种基于新型认证结构的卫星数据完整性验证方法,其特征在于:s3、挑战阶段具体为:由第三方审计tpa或者用户完成;当用户将初始化处理之后的数据上传到云端,用户会授权第三方审计tpa定期对存储在云端的数据进行完整性验证;tpa运行挑战信息生成算法chalgen;为了保证验证结果的可靠性,tpa随机抽取数据块进行验证,即从数据块的索引集合[1,l]中随机抽取c个元素组成验证数据块索引集合i={q1,q2,l,q
c
}(q1<q2<l<q
c
);对于随机抽取的任意数据块i,tpa随机选择非负整数λ
i
∈z
q
,生成挑战信息对集合然后将生成的挑战信息集合chal发送到云服务端。6.根据权利要求1所述的一种基于新型认证结构的卫星数据完整性验证方法,其特征在于:s4、应答阶段具体为:css接收到tpa发送的挑战信息后,运行证据生成算法genpro生成完整性证据;云服务端分别对挑战信息集合中i所对应的数据块以及数据块签名进行运算得到μ和σ,其中随后将数据完整性验证证据发送给tpa。7.根据权利要求1所述的一种基于新型认证结构的卫星数据完整性验证方法,其特征在于:s5、验证阶段具体为:第三方审计tpa接收到证据后运行验证算法verpro;tpa首先验证sig
u
(f(r)),通过返回证据中的{h(m
i
),ω
i
}计算根哈希值f(r),验证e(t,g)=e(f(r),v);若这一等式不成立,则数据完整性遭到破坏;当等式成立的时候,继续验证是否成立,如果成立,则证明数据是完整的,否则说明数据被损坏了,发生了修改操作。
技术总结
本发明公开了一种基于新型认证结构的卫星数据完整性验证方法,该新型认证结构采用改进的三层树模型,每个节点采用的遍历方式是从上到下,从左到右依次遍历。该结构中,只在叶子结点存储信息,中间节点的值是通过叶子结点链接并进行计算得到的,而根节点是将中间节点值链接之后再进行哈希运算得到。本发明的优点是:不仅可以较好地完成完整性验证的功能,还能够有效地减小计算与通信开销,提高验证效率。率。率。
技术研发人员:李源 许海涛 徐佳康
受保护的技术使用者:北京鹏鹄物宇科技发展有限公司
技术研发日:2023.05.29
技术公布日:2023/7/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种抗震管道封堵装置的制作方法 下一篇:一种防振屏蔽环的制作方法
