一种信息共享方法及装置

文档序号:1908063 发布日期:2021-11-30 浏览:8次 >En<

阅读说明:本技术 一种信息共享方法及装置 (Information sharing method and device ) 是由 张宇 汪宗斌 于 2021-08-10 设计创作,主要内容包括:本申请公开了一种信息共享方法及装置,针对现有技术中由于无法直接对椭圆曲线域上的秘密信息进行分割,导致秘密分享效率低的问题,该方法包括:获取目标秘密信息、目标份额m和恢复阈值k,目标秘密信息满足预设的椭圆曲线方程;基于椭圆曲线方程的基点生成的群,构造k-1次多项式,并基于k-1次多项式,将目标秘密信息分割为m个子秘密;将m个子秘密分别发送给m个秘密共享设备。这样,可以直接对椭圆曲线上的目标秘密信息进行分割,提高了秘密分割效率。(The application discloses an information sharing method and device, aiming at the problem that secret sharing efficiency is low due to the fact that secret information on an elliptic curve domain cannot be directly segmented in the prior art, the method comprises the following steps: acquiring target secret information, a target share m and a recovery threshold k, wherein the target secret information meets a preset elliptic curve equation; constructing a k-1 th-order polynomial based on a group generated by a base point of an elliptic curve equation, and dividing target secret information into m sub-secrets based on the k-1 th-order polynomial; the m sub-secrets are sent to the m secret sharing devices, respectively. Therefore, the target secret information on the elliptic curve can be directly divided, and the secret dividing efficiency is improved.)

一种信息共享方法及装置

技术领域

本发明涉及网络信息技术领域,尤其涉及一种信息共享方法及装置。

背景技术

秘密共享是一种常用的密码技术,其思想是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。

然而,现有技术中,秘密共享算法是基于整数域设计的,无法直接对椭圆曲线域上的秘密信息进行分割,导致秘密分享效率低,以SM9算法中的私钥为例,SM9算法生成的私钥属于椭圆曲线上的点,需要将私钥转换到整数域,再对转换后的私钥进行拆分。

发明内容

本申请提供了一种信息共享方法及装置,用以解决现有技术中由于无法直接对椭圆曲线域上的秘密信息进行分割,导致秘密分享效率低的问题。

本申请实施例提供的具体技术方案如下:

一种信息共享方法,应用于秘密分割设备,包括:

获取目标秘密信息、目标份额m和恢复阈值k,其中,所述目标秘密信息满足预设的椭圆曲线方程;

基于所述椭圆曲线方程的基点,确定k-1次多项式的多项式系数,并基于得到的k-1次多项式,将所述目标秘密信息分割为m个子秘密,其中,所述m个子秘密中的任意k个子秘密用于恢复所述目标秘密信息;

将所述m个子秘密分别发送给m个秘密共享设备。

本申请实施例中,通过椭圆曲线方程的基点,构建多项式的多项式系数,这样,基于目标秘密信息,可直接得到相应的m个子秘密,而不必将目标秘密信息转换至整数域中,从而提高了秘密分割效率,提高了秘密分享效率,且扩展了应用范围。

可选的,所述基于所述k-1次多项式,将所述目标秘密信息分割为m个子秘密,包括:

采用以下公式得到m个子秘密:

其中,f(v)表示子秘密;

v的取值为v1,v2,……,vm,v1,v2,……, 表示基于大素数n构成的非零乘法群;

G1,G2,……,Gk-1∈<G>,<G>表示由基点G生成的加法循环群,G=(xG,yG)表示所述椭圆曲线方程的基点,所述基点的阶为n,G0表示所述目标秘密信息。

可选的,所述将所述m个子秘密分别发送给m个秘密共享设备,包括:

将秘密份额集合S={(vi,f(vi))|i=1,2…m}中包含的m个秘密份额,分别发送给m个秘密共享设备;其中,每个秘密份额中包含vi和f(vi),vi用于表征所述秘密分割设备选取的v的取值,f(vi)表示基于vi生成的子秘密。

一种信息共享方法,应用于秘密恢复设备,包括:

获取恢复阈值k,并分别接收来自k个秘密共享设备的k个恢复信息,其中,每个恢复信息用于表征一个子秘密,k个子秘密是秘密分割设备获取目标秘密信息、目标份额m和所述恢复阈值k之后,基于预设的椭圆曲线方程的基点确定k-1次多项式的多项式系数,并基于所述k-1次多项式,对所述目标秘密信息分割得到的m个子秘密中的任意k个子秘密,所述目标秘密信息满足所述椭圆曲线方程;

基于所述k个恢复信息,采用拉格朗日插值算法,得到所述目标秘密信息。

可选的,每个恢复信息中包含一个秘密份额,所述一个秘密份额中包含vij和f(vij),其中,j=1,2…k,(vij,f(vij))∈S,S表示秘密份额集合{(vi,f(vi))|i=1,2…m},f(vi)表示基于vi生成的子秘密;

则所述基于所述k个恢复信息,采用拉格朗日插值算法,得到所述目标秘密信息,包括:

通过以下公式计算得到所述目标秘密信息:

其中,f′(0)表示所述目标秘密信息;

可选的,每个恢复信息中包含一个中间值,每个中间值是k个秘密共享设备中相应的一个秘密共享设备根据自身接收到的秘密份额(vij,f(vij)),采用以下公式计算得到的:

其中,pj(0)表示中间值的取值,S′={i1,i2,…,ik},j=1,2…k,(vij,f(vij))∈S,S表示秘密份额集合{(vi,f(vi))|i=1,2…m},f(vi)表示基于vi生成的子秘密;

则所述基于所述k个恢复信息,采用拉格朗日插值算法,得到所述目标秘密信息,包括:

通过以下公式计算得到所述目标秘密信息:

其中,f′(0)表示所述目标秘密信息。

一种秘密分割设备,包括:

获取单元,用于获取目标秘密信息、目标份额m和恢复阈值k,其中,所述目标秘密信息满足预设的椭圆曲线方程;

分割单元,用于基于所述椭圆曲线方程的基点,确定k-1次多项式的多项式系数,并基于得到的k-1次多项式,将所述目标秘密信息分割为m个子秘密,其中,所述m个子秘密中的任意k个子秘密用于恢复所述目标秘密信息;

发送单元,将所述m个子秘密分别发送给m个秘密共享设备。

可选的,所述基于所述k-1次多项式,将所述目标秘密信息分割为m个子秘密时,所述分割单元具体用于:

采用以下公式得到m个子秘密:

其中,f(v)表示子秘密;

v的取值为v1,v2,……,vm,v1,v2,……, 表示基于大素数n构成的非零乘法群;

G1,G2,……,Gk-1∈<G>,<G>表示由基点G生成的加法循环群,G=(xG,yG)表示所述椭圆曲线方程的基点,所述基点的阶为n,G0表示所述目标秘密信息。

可选的,所述将所述m个子秘密分别发送给m个秘密共享设备时,所述发送单元具体用于:

将秘密份额集合S={(vi,f(vi))|i=1,2…m}中包含的m个秘密份额,分别发送给m个秘密共享设备;其中,每个秘密份额中包含vi和f(vi),vi用于表征所述秘密分割设备选取的v的取值,f(vi)表示基于vi生成的子秘密。

一种秘密恢复设备,包括:

接收单元,用于获取恢复阈值k,并分别接收来自k个秘密共享设备的k个恢复信息,其中,每个恢复信息用于表征一个子秘密,k个子秘密是秘密分割设备获取目标秘密信息、目标份额m和所述恢复阈值k之后,基于预设的椭圆曲线方程的基点确定k-1次多项式的多项式系数,并基于所述k-1次多项式,对所述目标秘密信息分割得到的m个子秘密中的任意k个子秘密,所述目标秘密信息满足所述椭圆曲线方程;

恢复单元,用于基于所述k个恢复信息,采用拉格朗日插值算法,得到所述目标秘密信息。

可选的,每个恢复信息中包含一个秘密份额,所述一个秘密份额中包含vij和f(vij),其中,j=1,2…k,(vij,f(vij))∈S,S表示秘密份额集合{(vi,f(vi))|i=1,2…m},f(vi)表示基于vi生成的子秘密;

则所述基于所述k个恢复信息,采用拉格朗日插值算法,得到所述目标秘密信息时,所述恢复单元具体用于:

通过以下公式计算得到所述目标秘密信息:

其中,f′(0)表示所述目标秘密信息;

可选的,每个恢复信息中包含一个中间值,每个中间值是k个秘密共享设备中相应的一个秘密共享设备根据自身接收到的秘密份额(vij,f(vij)),采用以下公式计算得到的:

其中,pj(0)表示中间值的取值,S′={i1,i2,…,ik},j=1,2…k,(vij,f(vij))∈S,S表示秘密份额集合{(vi,f(vi))|i=1,2…m},f(vi)表示基于vi生成的子秘密;

则所述基于所述k个恢复信息,采用拉格朗日插值算法,得到所述目标秘密信息时,所述恢复单元具体用于:

通过以下公式计算得到所述目标秘密信息:

其中,f′(0)表示所述目标秘密信息。

本申请实施例中还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请所述的信息共享方法。

本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请所述的信息共享方法中的步骤。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的应用场景示意图;

图2为本发明实施例提供的秘密分割设备侧实施的信息共享方法的流程示意图;

图3为本发明实施例提供的秘密恢复设备侧实施的信息共享方法的流程示意图;

图4为本发明实施例提供的秘密分割设备的结构示意图;

图5为本发明实施例提供的秘密恢复设备的结构示意图;

图6为本发明实施例提供的电子设备的结构示意图。

具体实施方式

针对现有技术中由于无法直接对椭圆曲线域上的秘密信息进行分割,导致秘密分享效率低的问题,为了提高秘密分享效率,在本申请实施例中,提供一种用于信息共享的解决方案。

该方案为:获取目标秘密信息、目标份额m和恢复阈值k,其中,目标秘密信息满足预设的椭圆曲线方程;基于椭圆曲线方程,和恢复阈值k,构造k-1次多项式方程,并基于k-1次多项式方程,将目标秘密信息分割为m个子秘密,其中,k-1次多项式方程是由椭圆曲线方程的基点,生成的群构造的,m个子秘密中的任意k个子秘密用于恢复目标秘密信息;将m个子秘密分别发送给m个秘密共享设备。

以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

如图1所示,其为本申请实施例提供的应用场景示意图,该应用场景包括秘密分割设备101、秘密恢复设备102、m个秘密共享设备103。秘密分割设备101、秘密恢复设备102、m个秘密共享设备103之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

其中,秘密分割设备101用于获取目标秘密信息后,基于分割份额m,将目标秘密信息分割为m个子秘密,然后将m个子秘密分别发送给m个秘密共享设备103。

m个秘密共享设备103分别用于存储各自获取到的子秘密。

秘密恢复设备102用于获取来自m个秘密共享设备103中任意k个秘密共享设备103的恢复信息,进而基于恢复信息,采用拉格朗日插值算法,得到目标秘密信息。在一些实施例中,秘密恢复设备102可以直接获取m个秘密共享设备103中任意k个秘密共享设备103各自存储的子秘密,并基于得到的k个子秘密,采用拉格朗日插值算法,得到目标秘密信息。在另一些实施例中,秘密恢复设备102还用于获取m个秘密共享设备103中任意k个秘密共享设备103根据各自存储的子秘密计算得到的中间值,并基于得到的k个中间值,采用拉格朗日插值算法,得到目标秘密信息。

在一些实施例中,秘密分割设备101和秘密恢复设备102可以配置于同一装置中,也可以单独配置,本申请对此不作限定,在此不再赘述。秘密分割设备101也可以是m个秘密共享设备103中的任意一个设备。秘密恢复设备102也可以是m个秘密共享设备103中的任意一个设备。

秘密分割设备101、秘密恢复设备102、m个秘密共享设备103可以为用户使用的电子设备,该电子设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。秘密分割设备101、秘密恢复设备102、m个秘密共享设备103也可以是服务器,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务等基础云计算服务的云服务器。

如图2所示,其为本申请实施例提供的秘密分割设备侧实施的信息共享方法的流程示意图,具体可以包括以下步骤:

S201、秘密分割设备获取目标秘密信息、目标份额m和恢复阈值k,其中,目标秘密信息满足预设的椭圆曲线方程。

需要说明的是,本申请实施例中,目标秘密信息满足预设的椭圆曲线方程也可以理解为目标秘密信息满足为椭圆曲线方程上的点。椭圆曲线方程可以根据具体的应用场景设定,本申请实施例中,仅以椭圆曲线方程为SM9算法中定义的椭圆曲线方程为例进行说明。

在一些实施例中,椭圆曲线方程的系统参数可以由秘密分割设备通过以下方式确定,其中,椭圆曲线方程的系统参数包括椭圆曲线方程、椭圆曲线方程的基点、基于:秘密分割设备选择参数q,定义包含q个元素的有限域Fq,选择参数a,b∈Fq,由参数a,b定义椭圆曲线方程E(Fq),选择椭圆曲线方程上的基点G=(xG,yG),其中,(xG,yG)即为基点G的坐标,基点G的阶为n。

在另一些实施例中,也可以由密钥生产中心(Key Generation Center,KGC)进行椭圆曲线方程的系统参数的生成,由于KGC中的系统参数的生成过程与在秘密分割设备中的系统参数的生成过程类似,在此不再赘述。KGC公开选择的上述椭圆曲线方程相关的参数信息,以及选择的上述椭圆曲线方程上的基点、从所述基点坐标的倍点集合中随机选择的上述k-1个基点坐标的倍点信息。

发送端公开选择的上述椭圆曲线方程相关的参数信息,以及选择的上述椭圆曲线方程上的基点G。

S202、秘密分割设备基于所述椭圆曲线方程的基点,确定k-1次多项式的多项式系数,并基于确定的k-1次多项式,将目标秘密信息分割为m个子秘密,其中,k-1次多项式方程是由椭圆曲线方程的基点,生成的群构造的,m个子秘密中的任意k个子秘密用于恢复目标秘密信息。

需要说明的是,本申请实施例中,k、m的取值均为正整数,k的取值小于或等于m的取值。

具体的,k-1次多项式的公式如下:

其中,f(v)表示子秘密;

v的取值为v1,v2,……,vm,v1,v2,……, 表示基于大素数n构成的非零乘法群;

G1,G2,……,Gk-1∈<G>,<G>表示由基点G生成的加法循环群,G=(xG,yG)表示椭圆曲线方程的基点,所述基点的阶为n,G0表示目标秘密信息。

秘密分割设备随机选择G1,G2,……,Gk-1∈<G>,<G>表示由基点G生成的加法循环群,例如,<G>={[1]G,[2]G,……,[n]G},其中,[n]G=n*G,也就是说,G1,G2,……,Gk-1为从基点G生成的加法循环群{[1]G,[2]G,……,[n]G}中随机选择的k-1个点,定义k-1次多项式然后,从中随机选择任意m个数作为v1,v2,……,vm,分别计算得到f(v1),f(v2),……,f(vk-1),……,f(vm)。

S203、秘密分割设备将m个子秘密分别发送给m个秘密共享设备。

具体的,秘密分割设备将(v1,f(v1))、(v2,f(v2))、……、(vm,f(vm))作为m个秘密份额,将秘密份额集合S={(vi,f(vi))|i=1,2…m}中包含的m个秘密份额,分别发送给m个秘密共享设备;其中,每个秘密份额中包含vi和f(vi),vi用于表征秘密分割设备选取的v的取值,f(vi)表示基于vi生成的子秘密。

下面对信息共享中的信息恢复过程,也可以称为秘密恢复过程进行说明。

如图3所示,其为本申请实施例提供的秘密恢复设备侧实施的信息共享方法的流程示意图,具体可以包括以下步骤:

S301、秘密恢复设备获取恢复阈值k,并分别接收来自k个秘密共享设备的k个恢复信息,其中,每个恢复信息用于表征一个子秘密,k个子秘密是秘密分割设备获取目标秘密信息、目标份额m和恢复阈值k之后,基于预设的椭圆曲线方程的基点确定k-1次多项式的多项式系数,并基于k-1次多项式,对目标秘密信息分割得到的m个子秘密中的任意k个子秘密,目标秘密信息满足椭圆曲线方程。

在一些实施例中,秘密恢复设备可以向m个秘密共享设备中的任意k个秘密共享设备发送恢复信息获取请求,然后接收来自相应的k个秘密共享设备的k个恢复信息。在另一些实施例中,秘密恢复设备也可以向m个秘密共享设备均发送恢复信息获取请求,然后在获取来自m个秘密共享设备的恢复信息之后,从m个恢复信息中任意选取k个恢复信息。本申请对此不做限定,在此不再赘述。

S302、秘密恢复设备基于k个恢复信息,采用拉格朗日插值算法,得到目标秘密信息。

作为一种可能的实现方式,每个恢复信息中可以包含一个秘密份额,该一个秘密份额中包含vij和f(vij),其中,j=1,2…k,(vij,f(vij))∈S,S表示秘密份额集合{(vi,f(vi))|i=1,2…m},f(vi)表示基于vi生成的子秘密。也就是说,秘密恢复设备获取到k个恢复信息时,由于每个恢复信息中可以包含秘密份额集合S中的一个秘密份额,因此,秘密恢复设备可以获取到秘密份额集合S″={(vij,f(vij))|j=1,2…k},即获取到m个秘密份额中的任意k个秘密份额。

进而秘密恢复设备可以基于获取到的k个秘密份额,采用拉格朗日插值算法,得到目标秘密信息,具体的,秘密恢复设备通过以下公式计算得到目标秘密信息:

其中,f′(0)表示目标秘密信息;

也就是说,本申请实施例中,秘密恢复设备从m个秘密共享设备中的任意k个秘密共享设备处,获取到k个子秘密,(vi1,f(vi1))、(vi2,f(vi2))、……、(vik,f(vik))之后,采用拉格朗日插值算法,即可得到目标秘密信息f′(0)。

作为另一种可能的实现方式,每个恢复信息中包含一个中间值,每个中间值是k个秘密共享设备中相应的一个秘密共享设备根据自身接收到的秘密份额(vij,f(vij)),采用以下公式计算得到的:

其中,pj(0)表示中间值的取值,S′={i1,i2,…,ik},j=1,2…k,(vij,f(vij))∈S,S表示秘密份额集合{(vi,f(vi))|i=1,2…m},f(vi)表示基于vi生成的子秘密。

也就是说,秘密恢复设备获取到k个恢复信息时,由于每个恢复信息中包含一个中间值pj(0),因此,秘密恢复设备可以获取到k个中间值p1(0)、p2(0)、……、pk(0),而不是直接获取意k个秘密份额,从而提高了数据安全性。

相应的,秘密恢复设备获取到K个恢复信息,即获取到k个中间值p1(0)、p2(0)、……、pk(0)之后,采用拉格朗日插值算法,得到目标秘密信息,具体的,秘密恢复设备通过以下公式计算得到目标秘密信息:

其中,f′(0)表示所述目标秘密信息。

下面以应用场景为SM9分布式加解密为例进行说明。

该应用场景中包含KGC、设备B、设备B1、……、设备Bi等,其中,KGC用于系统的初始化和维护(例如生成系统参数)、生成并分发私钥,用户设备用于签密、解签密等。具体而言,包含生成系统参数、生成用户私钥、生成私钥分量、签密、解签密等步骤。

(一)生成系统参数

KGC选择整数z作为安全参数,选择素数N阶群G1、G2、GT,其中,G1、G2为加法循环群,生成元分别为P1、P2,GT为乘法循环群。

定义双线性对映射e:G1×G2→GT,定义密钥派生函数KDF(),定义哈希函数H1:{0,1}*×N→ZN

KGC随机选择主私钥ke∈ZN,计算主公钥Ppub-s=keP1

KGC选择并公开用一个字节表示的加密私钥生成函数识别符hid。

综上,KGC保密ke,公开{z,N,G1,G2,GT,e,KDF,H1,Ppub-s,hid}。

(二)生成私钥

以设备B为秘密分割设备为例,KGC输入系统参数、主私钥、用户设备B的标识IDB,输出用户设备B的私钥deB,具体的,KGC执行如下操作:

1)KGC计算t1=H1(IDB||hid,N)+ke mod N。如果t1=0,则KGC重新产生加密主密钥对,即重新选择主私钥ke,并计算得到新的主公钥Ppub-s;否则,KGC计算

2)KGC计算B的私钥deB=t2P2,然后,KGC将deB通过安全渠道发送给用户设备B。

(三)生成私钥分量,即进行目标秘密信息分割。

假设,秘密份额为m,恢复阈值为k,即将deB分割为m个子秘密,即m个私钥分量,当其他设备获取到m个私钥分量中的k个私钥分量时,可得到deB,解密密文。

具体的,设备B获取到私钥deB之后,执行上文中的秘密分割过程,得到秘密份额集合S={(vi,f(vi))|i=1,2…m}。由于过程相同,在此不再赘述。然后,设备B将秘密份额集合S中包含的(v1,f(v1)),(v2,f(v2)),……,(vm,f(vm))分别通过安全渠道发送给设备Bi,i=1,2…m。

(四)加密

设备A发送明文M给设备B,其中,mlen为M的比特长度,K1_len表示密钥K1的比特长度,K2_len为MAC()函数中密钥K2的比特长度。设备A具体执行如下操作:

1)计算群G1中的元素QB=H1(IDB||hid,N)P1+Ppub-e

2)产生随机数r∈[1,N-1]。

3)计算G1中的元素C1=rQB,将C1的类型转换为比特串。

4)计算GT中的元素g=e(Ppub-e,P2)。

5)计算GT中的元素w=gr,将w转换为比特串。

6)按照加密明文的方法,分类进行计算:

情况6-1:如果加密明文的方法是基于密钥派生函数的序列密码算法,那么,首先,设备A计算整数klen=mlen+K2_len,计算K=KDF(C1||w||IDB,klen),令K1代表K的最左边的mlen比特,K2为剩下的K2_len比特,若K1为全0比特串,则返回2)。然后,设备A计算

情况6-2:如果加密明文的方法是结合密钥派生函数的分组密码算法,那么,首先,设备A计算klen=K1_len+K2_len,计算K=KDF(C1||w||IDB,klen),令K1代表K的最左边的K1_len比特,K2为剩下的K2_len比特,若K1为全0比特串,则返回2)。然后,设备A计算C2=Enc(K1,M),Enc()表示加密算法。

7)计算C3=MAC(K2,C2)。其中,消息认证码(Message Authentication Code,MAC)也称为带密钥的Hash函数,用于保证消息数据完整性。

8)输出密文C=C1||C3||C2

(五)解密

1)设备Bi接收到密文C=C1||C2||C3之后,计算wi=e(C1,f(vi)),并将解密分量(vi,wi)发送给设备D。设备D可以是设备B1、……、设备Bi中除设备Bi之外的设备。

2)设备D获取到k个解密分量集合{(vij,wij)|j=1,2…k},令S′={i1,i2…ik},计算计算w′=∏ij∈S′wij′,将w′转化为比特串。

3)按照加密明文的方法,分类进行计算:

情况3-1:若加密明文的方法是基于密钥派生函数的序列密码算法,则设备D计算整数klen=mlen+K2_len,计算K′=KDF(C1||w′||IDB,klen)。令K1′代表K′的最左边的mlen比特,K2′为剩下的K2_len比特,若K1′为全0比特串,则报错并退出。然后,设备D计算

情况3-2:如果加密明文的方法是结合密钥派生函数的分组密码算法,则设备D计算klen=K1_len+K2_len,计算K′=KDF(C1||w′||IDB,klen)。令K1′代表K′的最左边的K1_len比特,K2′为剩下的K2_len比特。若K1′为全0比特串,则报错并退出。然后,设备D计算M′=Dec(K1′,C2)。

4)设备D计算C3′=MAC(K′2,C2),从C中取出C3,若C3′≠C3,则报错并退出。

5)设备D输出明文M′。

如图4所示,其为本发明实施例提供的秘密分割设备的结构示意图,可以包括:

获取单元401,用于获取目标秘密信息、目标份额m和恢复阈值k,其中,所述目标秘密信息满足预设的椭圆曲线方程;

分割单元402,用于基于所述椭圆曲线方程的基点,确定k-1次多项式的多项式系数,并基于得到的k-1次多项式,将所述目标秘密信息分割为m个子秘密,其中,所述m个子秘密中的任意k个子秘密用于恢复所述目标秘密信息;

发送单元403,将所述m个子秘密分别发送给m个秘密共享设备。

可选的,所述基于所述k-1次多项式,将所述目标秘密信息分割为m个子秘密时,所述分割单元402具体用于:

采用以下公式得到m个子秘密:

其中,f(v)表示子秘密;

v的取值为v1,v2,……,vm,v1,v2,……, 表示基于大素数n构成的非零乘法群;

G1,G2,……,Gk-1∈<G>,<G>表示由基点G生成的加法循环群,G=(xG,yG)表示所述椭圆曲线方程的基点,所述基点的阶为n,G0表示所述目标秘密信息。

可选的,所述将所述m个子秘密分别发送给m个秘密共享设备时,所述发送单元403具体用于:

将秘密份额集合S={(vi,f(vi))|i=1,2…m}中包含的m个秘密份额,分别发送给m个秘密共享设备;其中,每个秘密份额中包含vi和f(vi),vi用于表征所述秘密分割设备选取的v的取值,f(vi)表示基于vi生成的子秘密。

如图5所示,其为本发明实施例提供的秘密恢复设备的结构示意图,可以包括:

接收单元501,用于获取恢复阈值k,并分别接收来自k个秘密共享设备的k个恢复信息,其中,每个恢复信息用于表征一个子秘密,k个子秘密是秘密分割设备获取目标秘密信息、目标份额m和所述恢复阈值k之后,基于预设的椭圆曲线方程的基点确定k-1次多项式的多项式系数,并基于所述k-1次多项式,对所述目标秘密信息分割得到的m个子秘密中的任意k个子秘密,所述目标秘密信息满足所述椭圆曲线方程;

恢复单元502,用于基于所述k个恢复信息,采用拉格朗日插值算法,得到所述目标秘密信息。

可选的,每个恢复信息中包含一个秘密份额,所述一个秘密份额中包含vij和f(vij),其中,j=1,2…k,(vij,f(vij))∈S,S表示秘密份额集合{(vi,f(vi))|i=1,2…m},f(vi)表示基于vi生成的子秘密;

所述则所述基于所述k个恢复信息,采用拉格朗日插值算法,得到所述目标秘密信息时,所述恢复单元502具体用于:

通过以下公式计算得到所述目标秘密信息:

其中,f′(0)表示所述目标秘密信息;

可选的,每个恢复信息中包含一个中间值,每个中间值是k个秘密共享设备中相应的一个秘密共享设备根据自身接收到的秘密份额(vij,f(vij)),采用以下公式计算得到的:

其中,pj(0)表示中间值的取值,S′={i1,i2,…,ik},j=1,2…k,(vij,f(vij))∈S,S表示秘密份额集合{(vi,f(vi))|i=1,2…m},f(vi)表示基于vi生成的子秘密;

则所述基于所述k个恢复信息,采用拉格朗日插值算法,得到所述目标秘密信息时,所述恢复单元502具体用于:

通过以下公式计算得到所述目标秘密信息:

其中,f′(0)表示所述目标秘密信息。

基于同一技术构思,本申请实施例还提供了一种电子设备600,参照图6所示,电子设备600用于实施上述方法实施例记载的信息共享方法,该实施例的电子设备600可以包括:存储器601、处理器602以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个信息共享方法实施例中的步骤,例如图2所示的步骤S202。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。

本申请实施例中不限定上述存储器601、处理器602之间的具体连接介质。本申请实施例在图6中以存储器601、处理器602之间通过总线603连接,总线603在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器601可以是易失性存储器(volatile memory),例如随机存取存储器(raNdom-access memory,RAM);存储器601也可以是非易失性存储器(NoN-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器601是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器601可以是上述存储器的组合。

本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于区块链的多权限可撤销加密二维码电子病历

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!