一种自适应带宽的门限秘密共享方法与流程

专利2022-06-29  100


本发明属于信息安全技术领域,具体涉及一种自适应带宽的门限秘密共享方法。



背景技术:

秘密共享是一种特殊的编码方法,它将用户的原始数据与冗余随机数据结合在一起,以确保只能通过一定量的编码片段才能获得原始数据。秘密共享是一种划分和存储秘密的加密技术,也是信息安全和数据保密的重要手段,其目的是防止秘密过度集中,从而达到分散风险和容忍入侵的效果。秘密共享的最大优势在于,它是无条件安全的,它并不像公钥加密一样需要依赖数学难解问题作为前提,即使是具有无限计算能力的攻击者也无法获得有关存储数据的任何信息。然而,与传统的加密方法相比,秘密共享虽不需要任何加密密钥,但是它将带来数倍于原始数据的存储开销以及额外的编码解码复杂性,并且需要生成大量的随机数据(这些数据在生成后将仅使用一次,并且不需要像密钥一样进行存储和重用)。因此它们目前仅用于远程存储少量数据,例如加密密钥。自提出该问题以来,运用于分布式存储中的秘密共享算法一直在不断发展。现在,它已成为一种基本的加密方法,并已在众多隐私协议中用作构建模块,尤其是在旧的脱机加密和安全多方计算中。在各种门限秘密共享方案中,应用最为广泛的就是shamir秘密共享方案。

shamir门限秘密方案的基本思想是类似2点足以定义一条直线,3点定义一条抛物线,4点定义一条三次曲线等等,即需要k个点来定义k-1维的多项式。

该方案设定s为需要共享的秘密,n为秘密s分成的子秘密数,k为秘密重构所需的门限份额数,假设我们想使用一个(n,k)门限方案来共享我们的秘密s,为了不失一般性,假定s是有限域gf(p)中的元素,其中p是质数且0<k≤n<p,s<p。随机选择k-1个小于p的正整数a1,...,ak-1,并令a0=s。

一、秘密分发阶段:

(1)秘密分发者d以随机数a1,...,ak-1和秘密s构建gf(p)上的k-1次多项式:f(x):f(x)=a0 a1x a2x2 a3x3 ... ak-1xk-1modp。

(2)d在有限域gf(p)中选择n个互不相同的非零元素x1,x2,...,xn,计算f(xi),i=1,...,n,得到(xi,f(xi)),即f(x)上的n个点。

(3)将(xi,f(xi))(i=1,...,n)秘密分配给参与者pi。

二、秘密重构阶段:

任何k个参与者,比如{p1,p2,...,pk},可以通过lagrange插值公式计算出f(x)。

通过计算得到的f(x),令x=0,可以求出f(0)=a0,也就得到了需要恢复的秘密s=a0。

上述的秘密共享过程中,恢复秘密时从各个参与者获取的子秘密份额是相等的。而在分布式云存储等实际应用中,参与者的表现形式一般是多个存储服务器。这意味着shamir秘密共享方案及其扩展方案都只能利用各个服务器的相同带宽,而无法自适应各个服务器带宽负载不平衡这一实际中更常见的情况,当共享的秘密数据量较大时容易造成带宽浪费。正因为上述现有秘密共享技术没有解决自适应带宽的问题,使得上述方案在实际应用中的带宽利用率较低,秘密恢复的效率也不高。



技术实现要素:

本发明的目的是解决现有秘密共享方案对不平衡带宽情况下带宽利用率不足的问题,针对较大的数据提供一种新的自适应带宽的秘密共享方法,能够有效提高降低带宽浪费,提高秘密恢复效率。

为了实现上述目的,本发明提供的一种自适应带宽的门限秘密共享方法,包括:

秘密分发:将秘密数据s的每个字节s都通过秘密共享的方式生成n个子秘密(xi,f(xi))(i=1,...,n);并将这n个子秘密分发给n个服务器p1,p2,...,pn;

秘密恢复:采用带宽矩阵m从各服务器下载数据,将下载的数据恢复成最终的秘密数据s;其特征在于:

所述的带宽矩阵m包括m行n列,n个列对应n个服务器,每一行为由0和1组成的行向量,表示恢复一个秘密字节需要从服务器下载数据的情况,1表示从所在列代表的服务器下载数据,0表示不从所在列代表的服务器下载数据。

作为本发明的一种优选方式,所述带宽矩阵m的构建方法为:

获取从各服务器下载数据的实时带宽b0=[x01,x02...,x0n];

b0中前k大带宽所在列设为1,n-k带宽所在列设为0,得到m1,即带宽矩阵m的第一行;

对b0进行分解:

其中,mm,m=1,2,...,就是带宽矩阵的第m行,它是只由0和1组成的行向量,mm中1所在的位置就是bm-1中前k大带宽所在的位置。

进一步改进在于,所述带宽矩阵m的各列带宽之和小于等于该列对应服务器的带宽。

进一步改进在于,带宽矩阵m的每一列下载来的数据,通过m的每一行以lagrange插值公式恢复秘密的每个字节,恢复的每个秘密字节合并成最终的秘密数据s。

本发明的有益效果是:该方法是将较大的数据分割成多个小数据块,每个数据块都以秘密共享的方式分布式地存储于多个服务器中;在恢复数据时获得各服务器到用户的带宽信息,并由带宽构建出带宽矩阵;以带宽矩阵为标准,将多个数据块用秘密共享的方式恢复;将多个数据块合并为原来的数据。本发明的方法,相比于传统方法,能大大提高带宽利用率和秘密数据恢复效率。

附图说明

图1是本发明实施例提供的自适应带宽的门限秘密共享方法的流程图;

图2是本发明实施例提供的秘密份额的分发、存储与恢复示意图。

具体实施方式

为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

本实施例提供的自适应带宽的门限秘密共享方法,是针对较大数据的自适应带宽秘密共享方法,如图1所示,具体包括:

步骤101、进行初始化,设置主要参数。

在进行秘密共享之前,需要知道秘密数据存放的分布式服务器的规模以及恢复数据的门限要求,也就是服务器数量n和门限值k,另外还要选定大于秘密数据任意字节的质数p。

将n个服务器记为p1,p2,...,pn。

步骤102、秘密分发者d将秘密数据以字节为单位分块,每块都通过多项式f(x)计算子秘密。

具体地,设秘密数据s分块后的某个字节为s,则生成k-1个随机数a1,...,ak-1并构建在有限域gf(p)上的k-1次shamir多项式为f(x)=s a1x a2x2 a3x3 ... ak-1xk-1modp。

d在有限域gf(p)中选择n个互不相同的非零元素x1,x2,...,xn,计算f(xi),i=1,...,n,得到(xi,f(xi))。

步骤103、进行秘密分发,将所有子秘密分布式地存储在n个服务器p1,p2,...,pn上。

具体地,如图2所示,之前计算得到的(xi,f(xi))代表n个子秘密,将他们一一对应地按顺序存储于n个服务器p1,p2,...,pn中。

按照上述方式将秘密数据的所有字节按顺序一层一层地存储于服务器p1,p2,...,pn中。

步骤104、分析实际带宽,构建带宽矩阵m

具体地,秘密恢复者r通过网络监测设备获取r从各服务器下载数据的实时带宽b0=[x01,x02...,x0n]。

b0中前k大带宽所在列设为1,n-k带宽所在列设为0,得到m1,即带宽矩阵m的第一行。

将b0以如下方式分解成只由0和1组成的带宽矩阵m:

直到bm中0的个数大于n-k为止。

其中,其中mm,m=1,2,...,就是带宽矩阵的第m行,它是只由0和1组成的行向量,mm中1所在的位置就是bm-1中前k大带宽所在的位置。

将通过上述向量计算得到的m1,m2,...,mm合并就能得到m行n列的带宽矩阵m。每一列对应一个服务器,每一行对应下载的一个字节的数据信息。

步骤105、秘密恢复者r根据带宽矩阵m从服务器下载数据。

具体地,带宽矩阵m中1所在的位置就是秘密恢复者r需要从各服务器下载的数据所在的位置,而带宽矩阵m的各列之和略小于或等于该列对应的服务器到r的带宽,因此通过这种方式下载数据无需担心带宽不够。

步骤106、秘密恢复者r以带宽矩阵m为框架通过lagrange插值公式恢复秘密数据s的每个块,并合并成需要的秘密s。

具体地,r将下载的数据重新以带宽矩阵m进行排列,也就是还原成这些数据在各服务器p1,p2,...,pn中的情况。

然后将以带宽矩阵m排列的数据的每一行通过lagrange插值公式计算出需要恢复秘密数据的一个字节s。

由于带宽矩阵m有m行,这样一次性就可以恢复m字节的秘密数据,经过足够长的时间后,就可以恢复秘密数据的所有字节,最终可以组合出完整的s。

下面以具体的实例对上述方法进行详细说明,本实例是以shamir(n,k)门限秘密共享为基础实现的上述自适应带宽秘密共享方案,具体如下:

首先进行初始化与参数设置,设定服务器数量n=5,门限值k=3,假设秘密数据s的前5个字节分别为01111011、00101101、01000011、01011001、11111111,转换为无符号的十进制则分别为123、45、67、89、255。

秘密发布者需要将这5个字节通过秘密共享分配到n=5个服务器中。

以第一字节数据s=123为例,先随机选定大于s的质数,以p=257为例,然后生成k-1=2个随机数a1=166,a2=94,则可构建多项式f(x)=123 166x 94x2mod257。

然后在gf(257)上选择n=5个互不相同的非零元素x1=1,x2=2,x3=3,x4=4,x5=5,并计算f(xi)得到子秘密:(xi,f(xi)),i=1,2,3,4,5。

则秘密数据s的第一个字节s=123在5个服务器上存储的数据分别为:[(1,126),(2,60),(3,182),(4,235),(5,219)],同理可以计算秘密数据s的其余字节的子秘密(一般来说不同字节数据所选用的p,a1和a2的值不同,为方便说明假设其余字节也选定p=257,a1=166,a2=94)。也就能得到秘密数据s前5个字节在这5个服务器上的存储情况:

在秘密恢复者r恢复需要的数据s之前,r要先通过网络监测设备获取各服务器与r之间的下行带宽,这里假设分别是5,2,4,3,1byte/s,即b0=[5,2,4,3,1]。

根据b0=[5,2,4,3,1],带宽较大的前3个带宽设为1,另外2个带宽设为0,得到m1为[1,0,1,1,0]。

然后计算出带宽矩阵的每一行:

[5,2,4,3,1]-[1,0,1,1,0]=[4,2,3,2,1]

[4,2,3,2,1]-[1,1,1,0,0]=[3,1,2,2,1]

[3,1,2,2,1]-[1,0,1,1,0]=[2,1,1,1,1]

[2,1,1,1,1]-[1,1,1,0,0]=[1,0,0,1,1]

[1,0,0,1,1]-[1,0,0,1,1]=[0,0,0,0,0]

从而得到带宽矩阵为:

则从服务器中实际下载的数据为:

然后秘密恢复者r根据上述数据,通过lagrange插值公式从每一行恢复一个字节的秘密数据。比如第一个字节可以通过如下过程计算:

需要注意的是,上述公式出现了除法取模运算,需要用到扩展欧几里得算法求解。

5个字节的数据都经过上述计算得出为123、45、67、89、255,转换为二进制便是秘密数据s的前5个字节01111011、00101101、01000011、01011001、11111111。即,秘密恢复者r在b0=[5,2,4,3,1]byte/s的带宽下每秒恢复出5个字节的数据,且带宽利用率为100%。

而如果是传统的非自适应方案,在实际带宽为b0=[5,2,4,3,1]byte/s的情况下,秘密恢复者r只会选择从带宽最大的k=3个服务器下载数据,而其余n-k=2个服务器不会用到,假设数据按顺序下载,r下载的数据就会是:

也就是说r只能恢复3个字节的数据,而如果不计算最后没有用到的下载的无效数据,传统方案的实际带宽利用率只有(k*3)/(5 2 4 3 1)=60%。

因此,采用本发明的方法,将大大提高带宽利用率,且能有效提升秘密恢复的效率。

以上结合对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。


技术特征:

1.一种自适应带宽的门限秘密共享方法,包括:

秘密分发:将秘密数据s的每个字节s都通过秘密共享的方式生成n个子秘密(xi,f(xi))(i=1,...,n);并将这n个子秘密分发给n个服务器p1,p2,...,pn;

秘密恢复:采用带宽矩阵m从各服务器下载数据,将下载的数据恢复成最终的秘密数据s;其特征在于:

所述的带宽矩阵m包括m行n列,n个列对应n个服务器,每一行为由0和1组成的行向量,表示恢复一个秘密字节需要从服务器下载数据的情况,1表示从所在列代表的服务器下载数据,0表示不从所在列代表的服务器下载数据。

2.根据权利要求1所述的自适应带宽的门限秘密共享方法,其特征在于,所述带宽矩阵m的构建方法为:

获取从各服务器下载数据的实时带宽b0=[x01,x02...,x0n];

b0中前k大带宽所在列设为1,n-k带宽所在列设为0,得到m1,即带宽矩阵m的第一行;

对b0进行分解:

b0-m1=bm;

b1-m2=b2;

bm-1-mm=bm;

其中:mm,m=1,2,...,就是带宽矩阵的第m行,它是只由0和1组成的行向量,mm中1所在的位置就是bm-1中前k大带宽所在的位置。

3.根据权利要求2所述的自适应带宽的门限秘密共享方法,其特征在于,所述带宽矩阵m的各列带宽之和小于等于该列对应服务器的带宽。

4.根据权利要求1-3任一项所述的自适应带宽的门限秘密共享方法,其特征在于,带宽矩阵m的每一列下载来的数据,通过m的每一行以lagrange插值公式恢复秘密的每个字节,恢复的每个秘密字节合并成最终的秘密数据s。

技术总结
本发明属于信息安全技术领域,具体涉及一种自适应带宽的门限秘密共享方法。一种自适应带宽的门限秘密共享方法,包括:秘密分发:将秘密数据S的每个字节s都通过秘密共享的方式生成n个子秘密(xi,f(xi))(i=,...,n);并将这n个子秘密分发给n个服务器P1,P2,...,Pn;秘密恢复:采用带宽矩阵M从各服务器下载数据,将下载的数据恢复成最终的秘密数据S;所述的带宽矩阵M包括m行n列,n个列对应n个服务器,每一行为由0和1组成的行向量,表示恢复一个秘密字节需要从服务器下载数据的情况,1表示从所在列代表的服务器下载数据,0表示不从所在列代表的服务器下载数据。本发明的方法,相比于传统方法,能大大提高带宽利用率和秘密数据恢复效率。

技术研发人员:熊海良;胡昌武;周洪超;王广渊;麦珍珍;卞若晨
受保护的技术使用者:山东大学
技术研发日:2020.01.10
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-20877.html

最新回复(0)