加权密钥共享和重构方法

文档序号:7593033阅读:156来源:国知局
专利名称:加权密钥共享和重构方法
技术领域
本发明涉及一种加权密钥共享和重构方法,尤其是使用加权误差向量来共享并重构密钥的方法。
背景技术
当存在N个参与者的集R和N个参与者的子集的集L时,阈值密钥共享机制向所述N个参与者分配密钥的共享,并允许当参与者的子集属于集L时重构所述密钥。
理想的阈值密钥共享机制具有下列特征(i)所有的参与者必须参与集R的密钥协议;(ii)集R的主私有密钥不对所有参与者公开;(iii)至少预定数目(即,阀值)的参与者必须参与解密由主私有密钥加密的消息的过程;(iv)至少预定数目(即,阀值)的参与者必须参与使用主私有密钥的消息的签名过程;(v)在设置机制后,由参与者处理消息的解密或签名是非交互的,其中所述参与者的子集属于集L;和(vi)即使当新的参与者被包括在集R中或属于所述集R的参与者离开所述集R时,主私有密钥或公共密钥也不应该变化。
A(k,N)阈值密钥共享机制是所述阈值密钥共享机制的另一例子。所述(k,N)阈值密钥共享机制当收集N个分散的共享密钥中的k个时、允许重构密钥。图1举例说明了常规(k,N)阈值密钥共享机制的概念。参照图1,密钥10被分成具有同等重要性的共享密钥并被分给N个参与者11。所述密钥10通过收集所述N个参与者中的至少三个的共享密钥,合并它们(参见数字12)并重构密钥13来进行重构。
然而,所述(k,N)阈值密钥共享机制是不利的,这是因为具有同等重要性的N个共享密钥被分给N个参与者,所以要求至少k个共享密钥来重构密钥。例如,当收集并合并(K-1)个共享密钥时完全地重构所述密钥是不可能的。
作为选择,分级阈值密钥共享机制是阈值密钥共享机制的另一例子,并且允许多级结构中的每一级共享密钥,但是分级阈值密钥共享机制需要向要求访问所述多级结构的参与者给出分级授权。

发明内容
本发明提供了加权密钥共享和重构的方法,其中向参与者分配具有不同加权的共享密钥,以便即使当收集并合并(k-1)个共享密钥时也可以完全地重构密钥。
依照本发明的一个方面,提供了一种共享密钥的方法,包括使用预定代码来编码所述密钥,根据误差的定位生成参与权(voice)以便向误差向量中的误差给出不同的加权,并且使用所述误差向量加密代码,继而向多个参与者分配加密结果。
依照本发明的另一方面,提供了一种在使用预定代码来编码密钥,根据误差的定位产生参与权以便向误差向量中的误差给出不同的加权,并且使用所述误差向量加密代码之后,重构分配给参与者的密钥的方法,所述方法包括确定解码代码所需的参与权的数目,依照确定的参与权的数目选择部分参与者,从所选择的参与者中收集密钥,并通过解密和错误校正解码所述密钥来重构密钥。
依照本发明的又一方面,提供了一种共享并重构密钥的方法,所述方法包括使用预定代码来编码所述密钥,根据误差的定位生成参与权以便向误差向量中的误差给出不同的加权,并且使用所述误差向量加密代码,继而向多个参与者分配加密结果;确定解码代码所需的参与权的数目;通过确定的参与权的数目选择部分参与者;从所选择的参与者中收集所述密钥,并且通过解密和纠错解码所述密钥重构密钥。


通过参考附图详细描述本发明的示例性实施例,本发明的上述及其他方面和优点将变得更为明显,其中图1是常规的(k,N)阈值密钥共享机制的示意图;图2是依照本发明实施例的a(K,N)加权阀值密钥共享方法的示意图;图3是举例说明了依照本发明实施例共享和重构密钥的方法的流程图;图4是举例说明了当启动纠错的加权为3时加密密钥的方法的示意图;
图5是举例说明了依照本发明实施例从三个参与者中收集共享密钥并重构所述密钥的方法的示意图,所述参与者的参与权分别是1;图6是举例说明了依照本发明实施例从两个参与者中收集共享密钥并重构所述密钥的方法的示意图,所述参与者的参与权分别是1和2;图7是举例说明了依照本发明实施例从两个参与者中收集共享密钥并重构所述密钥的过程的示意图,所述参与者的参与权分别是1。
具体实施例方式
图2是依照本发明实施例的a(K,N)加权阀值共享和分配方法的概念的示意图。参照图2,密钥20被分成具有不同加权的共享密钥,并被分给N个参与者21。通过从所述N个参与者21中的两个——他们中的一个具有加权的共享密钥——收集共享密钥并且合并所收集的共享密钥,或者通过从三个参与者中收集无加权的共享密钥并且合并所收集的共享密钥来重构所述密钥20为密钥23。
更具体地说,密钥S被分成N个共享密钥并且所述N个共享密钥被分给N个参与者,所述参与者经由通道分别连结。使用误差向量e来加密密钥S,并将其依照McEliece技术分配。
每一个参与者可以访问所述密钥S。依照在误差向量中的定位i向共享密钥si给出加权(wt)τi(i=1,2,3...,N)T=Σi=1Nτi...(1),]]>其中T表示向所述误差向量给出的加权的总和。
依照所述McEliece技术,当接收共享密钥的参与者中的一个希望重构所述密钥S时,所述参与者使用他/她的共享密钥和(K-1)个共享密钥来重构所述密钥S。在这种情况下,被给予共享密钥的加权可以被如下表示Σi=1Nτi≥k...(2),]]>其中k表示重构密钥S所需的共享密钥的最小数目。
为了重构密钥S,N个参与者中的一个经由公共通信通道从K-1个参与者中收集(K-1)个加密共享密钥。接下来,所述参与者通过将他/她的共享密钥和所收集的(K-1)共享密钥合并并且解密合并的结果来重构所述密钥S。
为了加密和解密所述密钥S,本发明使用通用的戈帕码(Goppa code)。
具有长度n的q-ary通用戈帕码由N型向量α=(α1α2...αn)如下定义Σi=1NαiVi(x)Ui(x)=0modg(x)...(3),]]>其中αi∈GF(q),定位项集L={Vi(x)Ui(x)}i=1n,]]>其中Vi(x)和Ui(x)是在GF(qm)上的多项式。这里,对于所有的i≠j,GCD(Ui(x),Vi(x))=1,deg Vi(x)<deg Ui(x),GCD(Ui(x),Ui(x))=1。GCD表示最大公约数,deg表示多项式的最大次数,并且g(x)表示在GF(qm)上的戈帕多项式,满足GCD((Ui(x),g(x))=1,其中i的范围为1到n。
当d满足下列方程式(4)时,通用(L,g)戈帕码具有d0≥d的最小距离deg g(x)>(d-2)r+s ...(4),其中r=deg Ui(x)并且s=deg Vi(x)。
在用于启动纠错的通用戈帕码中,可以相对于所述戈帕多项式G(x)如下确定定位项集LL=UI=1I{Ri(j)}j=1nj,n=ΣI=1Inj...(5),]]>其中Ri(j)是有理函数并且可以如下表示Ri{j}=Vi(j)(x)/Ui(j)(x)...(6),]]>其中degVi(j)(x)=ri,]]>degUi(j)(x)=τi,]]>并且对于任意值i、j、k和r,(Vi(j)(x),Ur(k)(x))=1.]]>如果向量α=(α1(1)α2(1)...αn1(1)α1(2)α2(2)...αn2(2)α1(1)α2(1)...αn1(1))是具有长度n=n1+n2+...+n1的通用的(L,g)戈帕码的代码字,所述戈帕多项式g(x)和定位项集L必须满足下列方程式(7)Σi=1IΣi=1njαi(j)Vij(x)Ui(j)(x)≡0modg(x)...(7)]]>对于通用戈帕码而言,估算其最小距离是可能的。使用具有戈帕多项式g(x)和定位项集L的通用戈帕码,校正任意的误差集T={t1,t2,...,t1}是可能的,所述集T关于各自的代码块α1(1)α2(1)...αn1(1)满足下列方程式(8)(deg g(x))/2≥t1τ1+t2τ2+...+t1τ1...(8)其中t1,t2,...,和t1分别表示包含在具有长度n1,n2,...,和n1的代码块中的误差的数目。
在通用二进制戈帕码的情况下,存在于方程式(8)的(deg g(x))/2变为(2degg(x))/2。
假定有(36,18,7)的通用戈帕码,其中n1=8,n2=28并且如果α∈GF(23),所述戈帕多项式是g(x)=x6+x+α3。
结合长度n1的代码块,我们使用如下的一次函数Ui{1}=1/(x-αi),i=1,...,n1,αi∈GF(23),α8=0...(9)]]>结合长度n2的代码块,我们使用二次多项式,所述多项式在GF(23)范围内是不可约的,具有属于GF(23)的系数,如下{U1i(2)(x),U2i(2)(x),U3i(2),U4i(2)(x)}i=1,...7...(10)]]>其中U1i(2)(x)=(αix)2+α5(αix)+α3,U2i(2)(x)=(αix)2+α5(αix)+α4,U3i(2)(x)=(αix)2+α6(αix)+α9,并且U4i(2)(x)=(αix)2+α3(αix)+α。
根据方程式(4)获得d≥7并且所述二进制通用戈帕码允许满足(2deg g(x))/2≥t1+2t2的误差集T={t1,t2}的校正。t1和t2的范围如表1所示。


当通用戈帕码具有三次多项式的定位项集时,使用具有长度n=n1+n2+n3的通用戈帕码来校正满足(2deg g(x))/2≥t1+2t2+3t3的误差集T={t1,t2,t3}是可能的。
通过使用所述戈帕码能够实现依照本发明的采用使用公共密钥机制的阀值密钥共享方法。在所述方法中,误差向量e对所有参与者来说是已知的。此外,通过适当地选择代码参数,实现(k,N)阈值密钥共享机制也是可能的,其中N=wt(e)。误差校正码可以允许校正(d-1)或更小的误差。因此,要求重构密钥的参与者的数目至少为K个,所述K满足wt(e)-K≤(d-1)/2,即2K≥2wt(e)-d+1。当使用戈帕码时,所述最小距离为d≤deg g(x)+1;并且当使用有可拆分的戈帕多项式g(x)的二进制戈帕码时,所述最小距离为d≤2(degg(x))+1。
可能有这样一种情况,其中参与密钥解密的参与者中的一些人给出了他们的共享密钥的错误值。例如,当k1个参与者给出他们的共享密钥的正确值并且k2个参与者给出了他们的共享密钥的错误值时,这种情况可以如下表示wt(e)-k1+k2≤(d-1)/22k1-2k2≥2wt(e)-d+1 ...(11)上述机制对于参与者具有不同数目的参与权的情况可以是通用的。这里,参与权不同于共享,并且多个参与权可以被分配给共享密钥。
例如,当使用用于校正误差的通用戈帕码时,分配给所述参与者的许多参与权可以通过定位项的次数确定。定位项的次数相当于在误差向量e中的误差的定位j并且对参与者来说是已知的。在使用所述通用戈帕码的情况下,可以依照下列条件实现所述(k,T)或(K,N)加权的密钥共享机制。
在所述(k,T)或(K,N)加权密钥共享机制中,T表示被用于所述机制的参与权的总数,并且等于给予所述误差向量e的加权。也就是,T=t1τ1+t2τ2+...+t1τ1。这里,ti表示所述误差向量e中非零值的数目,所述误差向量e相当于具有次数τ1的定位项多项式的定位。N表示参与者的数目,即t1,t2,...,和t1的和。k表示密钥重构所需的参与权的最小数目,即t1τ1,t2τ2,...,和t1τ1的和。ki表示具有τi参与权的参与者的数目,所述τi等于或大于T-(deg g(x))/2。就具有可分的戈帕多项式的二进制戈帕码来说,k≥T-(deg g(x))。K表示密钥重构所需的参与者的最小数目,即k1,k2,...,和k1的和。
因此,依照本发明,要求k参与权而不是k共享密钥以重构密钥,并且参与者可以具有不同数目的参与权。共享密钥的大小同加权或参与权的数目没有关系。
图3是举例说明了依照本发明实施例的共享和重构密钥的方法的流程图。参照图3,使用误差校正码(优选的是通用戈帕码)编码所述密钥(步骤30)。然后,获得其中具有不同长度的多个代码块相互连接的代码,类似于由通用戈帕码的定位集确定的代码块。接下来,生成用于误差向量的误差定位的参与权,所述误差向量相当于各自的代码块(步骤31)。依照在步骤30获得的代码块中误差的误差定位,所述误差向量具有不同的参与权。例如,当在步骤30获得的代码的长度n是n1和n2的和时,参与权1被分配给对应于在误差向量中的n1的误差,并且参与权2被分配给在误差向量中对应于n2的误差。然后所述误差向量被加到在步骤30所获得的代码,并且加密相加的结果。所述加密的结果被分给N个参与者(步骤32)。这里,N=wt(e)。
为了重构所述密钥,确定解码所述密钥所需的参与权的数目(k,T)(步骤33)。接下来,通过参与权的数目(k,T)确定参与者的数目k(步骤34)。例如,如果(k,T)是(5,11),那么当N=9时,t1=7并且t2=2。因而,由于k1+2k2=k,(k1,k2)可以是(1,2),(3,1)和(5,0)中的一个。每个组合(1,2),(3,1)和(5,0)分别对应于(K=3,N=9),(K=4,N=9)和(K=5,N=9)。
在确定参与者的数目ki之后,通过从数目k的参与者中收集共享密钥(步骤35),并且解密和纠错解码所收集的共享密钥(步骤36)来重构密钥。
图4到7是举例说明了依照本发明实施例的加权密钥共享和重构方法的述示意图。
图4详细地举例说明了当用于纠错的加权被设置为3时加密密钥的方法。假定在粗线左边的密码本表明参与权是1的代码块,并且在粗线右边的密码本表明参与权是2的代码块。在图4中,a,e和b表示编码密钥的结果,误差向量和加密密钥的结果。
图5举例说明了依照本发明实施例从分别持有参与权的三个参与者中还原密钥,并且重构所述密钥的方法。参照图5,解密从三个参与者中收集的密钥的结果c包含具有参与权1的误差和具有参与权2的误差。接下来,通过使用纠错和译码算法解码所述结果c可以重构所述密钥。
图6举例说明了依照本发明实施例从分别持有参与权1和参与权2的两个参与者中还原密钥,并且重构所述密钥的方法。参照图6,解密从两个参与者中收集的密钥的结果c包含三个具有参与权1的误差。通过使用纠错和译码算法解码所述结果c可以重构所述密钥。
图7举例说明了依照本发明实施例从具有参与权1的两个参与者中收集密钥并重构密钥的方法。参照图7,解密从两个参与者中收集的密钥的结果c包含两个具有参与权1的误差和具有参与权2的误差。在这种情况下,因为参与权总和超出加权3,所述加权3启动纠错,所以不可能使用所述纠错&译码算法来重构所述密钥。换句话说,只有当可纠错的数目等于或大于带来参与权的误差的数目时,才可以重构所述密钥。
如上所述,依照本发明,可以实现这样机制,其中共享密钥的加权通过使用具有不相等的纠错能力的误差校正码,而不取决于其大小。此外,依照本发明的加权密钥共享机制给出用于任何参数(K,N)加权密钥共享机制的简单的构成方法。
虽然已经参考示例性的实施例详细地示出并描述了本发明,但本领域的技术人员应该理解,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节的各种修改。
权利要求
1.一种共享密钥的方法,包括使用预定代码编码所述密钥;根据误差的定位生成参与权以便向误差向量中的误差给出不同的加权;和使用所述误差向量加密代码并且向多个参与者分配加密结果。
2.如权利要求1所述的方法,其中所述代码具有代码字,其中具有不同长度的代码块相互连接,通过代码的生成多项式来确定所述代码块。
3.如权利要求2所述的方法,其中设置参与权以向所述误差给出不同的加权,所述误差对应于在误差向量中的每一代码本。
4.一种在使用预定代码编码密钥,生成参与权以便依照所述误差的定位向误差向量中的误差给出不同的加权,并且使用所述误差向量加密代码之后,重构分给参与者的密钥的方法,所述方法包括确定解码所述代码所需的参与权的数目;依照确定的参与权的数目选择一部分参与者;收集来自于所选择的参与者的密钥;和通过解密并纠错解码所述密钥来重构所述密钥。
5.如权利要求4所述的方法,其中所确定的参与权的数目是通过将具有所生成的参与权的参与者的数目分别乘以相应的参与权所获得的值的和。
6.如权利要求4所述的方法,其中当误差的数目等于或大于在由对应于剩余误差的每一参与权解密之后所剩余的每一误差的倍数的和时,所述纠错解码校正误差的数目。
7.一种共享并重构密钥的方法;包括使用预定代码编码所述密钥;根据误差的定位生成参与权以便向误差向量中的误差给出不同的加权;使用所述误差向量加密代码并且向参与者分配加密结果;确定解码所述代码所需的参与权的数目;通过确定的参与权的数目选择部分参与者;收集来自于所选择的参与者的密钥;和通过解密并纠错解码密钥来重构所述密钥。
8.如权利要求7所述的方法,其中所述代码具有代码字,其中具有不同长度的代码块相互连接,通过代码的生成多项式确定所述代码块。
9.如权利要求8所述的方法,其中确定所述参与权以便向误差给出不同的加权,所述误差对应于在误差向量中的每一代码块。
10.如权利要求9所述的方法,其中所确定的参与权的数目是将相当于所述代码块生成的参与权分别乘以具有相应的参与权的参与者的数目所获得值的和。
11.如权利要求8所述的方法,其中参与权的总数是分别乘以给予所述代码块的加权和对应于所述代码块的参与权所获得值的和。
12.如权利要求7所述的方法,其中当误差的数目等于或大于在由对应于剩余误差的每一参与权解密之后所剩余的每一误差的倍数的和时,所述纠错解码校正误差的数目。
全文摘要
提供了一种加权密钥共享并重构的方法。所述方法包括使用预定代码编码所述密钥,根据误差的定位生成参与权以便向误差向量中的误差给出不同的加权;并且使用所述误差向量加密代码并且向多个参与者分配加密结果。
文档编号H04L9/10GK1630231SQ20041004715
公开日2005年6月22日 申请日期2004年10月8日 优先权日2003年10月8日
发明者李炅熙, 郑太哲, 伊夫吉尼·克劳克, 伊夫吉尼·林斯基, 亚力克西·福明 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1