CN111162906B - 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质 - Google Patents

一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质 Download PDF

Info

Publication number
CN111162906B
CN111162906B CN201911376598.3A CN201911376598A CN111162906B CN 111162906 B CN111162906 B CN 111162906B CN 201911376598 A CN201911376598 A CN 201911376598A CN 111162906 B CN111162906 B CN 111162906B
Authority
CN
China
Prior art keywords
secret
component
communication party
calculating
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911376598.3A
Other languages
English (en)
Other versions
CN111162906A (zh
Inventor
崔久强
徐祺
余力
张永雪
许学文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Digital Certificate Certification Center Co ltd
Original Assignee
Shanghai Digital Certificate Certification Center Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Digital Certificate Certification Center Co ltd filed Critical Shanghai Digital Certificate Certification Center Co ltd
Priority to CN201911376598.3A priority Critical patent/CN111162906B/zh
Publication of CN111162906A publication Critical patent/CN111162906A/zh
Application granted granted Critical
Publication of CN111162906B publication Critical patent/CN111162906B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及分布式计算技术领域,更具体的说,涉及一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质。本方法包括以下步骤:S1第一通信方和第二通信方分别获取乘法分解的第一秘密分量和第二秘密分量,选取公共参数;S2第二通信方,基于SM2算法计算得到混淆因子集合,发给第一通信方;S3第一通信方,计算随机参数和加密结果集合,并发送给第二通信方,第一通信方计算得到加法分解的第一分解分量;S4第二通信方,根据随机参数和加密结果集合,计算分享参数集合,计算得到加法分解的第二分解分量。本发明采用茫然传输算法,在不需要安全信道的条件下,高效率地实现安全两方计算,实现对共享秘密数据的变换与计算。

Description

一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质
技术领域
本发明涉及分布式计算技术领域,更具体的说,涉及一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质。
背景技术
安全多方计算(Secure Multi-Party Computation,SMC)是解决一组互不信任的参与方之间保护隐私的协同计算问题,SMC要确保输入的独立性、计算的正确性、去中心化等特征,同时不泄露各输入值给参与计算的其他成员。
主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题,同时要求每个参与主体除了计算结果外不能得到其他实体任何的输入信息。安全多方计算在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。
在两方安全计算协议中,通信实体Alice和Bob可以将共享的秘密进行不同的分解,常见的两种方式是乘法分解和加法分解,而在两种分解方式之间进行转换,是安全两方计算必须解决的常见问题。
安全多方计算协议有很多构造方法,譬如可以基于半同态加密来实现,也可以基于茫然传输(Oblivious Transfer,简称OT)来实现。茫然传输(OT)是一种基本密码学原语,被广泛的用于安全多方计算等领域。OT最早在1981年被Michael O.Rabin提出,Rabin的OT协议方案是基于RSA加密体系构造的,在协议中发送者S发送一个信息m给接收者R,接收者R以1/2的概率接受信息m。所以在协议交互的结束的时候,S并不知道R是否接受了消息。OT协议的另一种形式是发送者S发送了2个消息m1和m2,接收者R可以获得其中一个消息m1或m2,但是无法获得另一个未选择的消息,而发送者S也无法获知接收者R选择了哪一个消息。然而OT协议普遍存在运算量大、执行效率低的问题。
发明内容
本发明的目的是提供一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质,解决现有技术中两个参与方之间将共享秘密的乘法分解转换为加法分解的低安全性和低效率问题。
为了实现上述目的,本发明提供了一种基于茫然传输算法的协同秘密分享方法,包括以下步骤:
S1第一通信方持有的第一秘密分量A∈{0,1}l,第二通信方持有的第二秘密分量B∈{0,1}l,l为第一秘密分量A和第二秘密分量B的比特长度,第一秘密分量A和第二秘密分量B构成共享秘密S的乘法分解;
第一通信方和第二通信方在椭圆曲线E上随机选取一个群元素P作为公共参数;
S2第二通信方,基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,…,Ul},所述混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B中的1个比特相对应;
第二通信方,将混淆因子集合的计算结果{Ui}发给第一通信方;
S3第一通信方,接收混淆因子集合{Ui};
第一通信方,选择l个随机数x1,x2,…,xl,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一秘密分量A形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l};
第一通信方,计算得到第一分解分量x:
Figure BDA0002341145260000021
第一通信方,将随机参数Va和加密结果集合{<Xj,X′j>}发送给第二通信方;
S4第二通信方接收随机参数Va和加密结果集合{<Xj,X′j>};
根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应;
第二通信方,计算得到第二分解分量y:
Figure BDA0002341145260000031
第一分解分量和第二分解分量构成共享秘密S的加法分解。
在一实施例中,所述步骤S1中,第一通信方和第二通信方通过密钥协商算法,协商选取公共参数。
在一实施例中,所述步骤S2中,混淆因子集合{Ui}的计算方法,进一步包括以下步骤:
S21第二通信方选择l个随机数m1,m2,…,mi,…ml
S22第二通信方从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S23第二通信方根据比特bi的值来决定计算Ui的计算公式:
若bi=0,计算Ui=[mi]G;
若bi=1,计算Ui=P-[mi]G;
其中,G是椭圆曲线E的基点,P是协商选取的公共参数,[mi]G代表基点G的mi倍点。
在一实施例中,所述步骤S3中,随机参数Va、VaP和第一集合{<sj,s′j>}通过以下步骤获得:
根据第一秘密分量A,计算得到第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j>的计算公式为:
Figure BDA0002341145260000032
选取1个比特长度为l的随机数a∈{0,1}l,计算得到随机参数Va和VaP,其中随机参数Va和VaP的计算公式为:
Figure BDA0002341145260000033
在一实施例中,所述步骤S3中,第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式:
Figure BDA0002341145260000034
在一实施例中,所述步骤S4中,分享参数集合{ti}的计算方法,进一步包括以下步骤:
S411第二通信方从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S412第二通信方根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算:
Figure BDA0002341145260000041
若bi=1,计算:
Figure BDA0002341145260000042
在一实施例中,所述步骤S3中,第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式:
Figure BDA0002341145260000043
在一实施例中,所述步骤S4中,分享参数集合{ti}的计算方法,进一步包括以下步骤:
S421第二通信方从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S422第二通信方根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算
Figure BDA0002341145260000044
若bi=1,计算
Figure BDA0002341145260000045
在一实施例中,所述步骤S3中,第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式:
Figure BDA0002341145260000046
在一实施例中,所述步骤S4中,分享参数集合{ti}的计算方法,进一步包括以下步骤:
S431第二通信方从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S432第二通信方根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算:
Figure BDA0002341145260000051
若bi=1,计算:
Figure BDA0002341145260000052
在一实施例中,所述第一分解分量x设为固定值。
为了实现上述目的,本发明提供了一种基于茫然传输算法的协同秘密分享装置,包括第一通信方和第二通信方:
所述第一通信方包括第一秘密获取单元、第一密码运算单元和第一通信单元;
所述第二通信方包括第二秘密获取单元、第二密码运算单元和第二通信单元;
所述第一秘密获取单元,获取第一秘密分量A∈{0,1}l,所述第二秘密获取单元,获取第二秘密分量B∈{0,1}l,l为第一秘密分量和第二秘密分量的比特长度,第一秘密分量和第二秘密分量构成共享秘密S的乘法分解;
所述第一密码运算单元,随机选择的l个随机数xi,i∈{1,2,…,l},计算得到第一分解分量x:
Figure BDA0002341145260000053
所述第一密码运算单元,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一秘密分量A形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l};
所述第二密码运算单元,基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,…,Ul}所述混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B中的1个比特相对应;
所述第一通信单元,与第二通信单元进行数据传输,向第二通信单元发送随机参数Va和加密结果集合{<Xj,X′j>};
所述第二通信单元,与第一通信单元进行数据传输,向第一通信单元发送混淆因子集合{Ui};
所述第二密码运算单元,根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},计算得到第二分解分量y:
Figure BDA0002341145260000054
所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应,第一分解分量和第二分解分量构成共享秘密S的加法分解。
在一实施例中,所述第一通信方和第二通信方在椭圆曲线E上随机选取一个群元素P作为公共参数。
在一实施例中,所述混淆因子集合{Ui}={U1,U2,…,Ul},由第二密码运算单元通过以下方式获得:
选择l个随机数m1,m2,…,mi,…ml
从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
根据比特bi的值来决定计算Ui的计算公式:
若bi=0,计算Ui=[mi]G;
若bi=1,计算Ui=P-[mi]G;
其中,G是椭圆曲线E的基点,P是协商选取的公共参数,[mi]G代表基点G的mi倍点。
在一实施例中,所述随机参数Va、VaP和第一集合{<sj,s′j>},由第一密码运算单元通过以下方式获得,
根据第一秘密分量A,计算得到第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j>的计算公式为:
Figure BDA0002341145260000061
选取1个比特长度为l的随机数a∈{0,1}l,计算得到随机参数Va和VaP,其中随机参数Va和VaP的计算公式为:
Figure BDA0002341145260000062
在一实施例中,所述第一密码运算单元,对集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式为:
Figure BDA0002341145260000063
在一实施例中,所述分享参数集合{ti},由第二密码运算单元通过以下方式获得:
从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算:
Figure BDA0002341145260000071
若bi=1,计算:
Figure BDA0002341145260000072
在一实施例中,所述第一密码运算单元,对集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式为:
Figure BDA0002341145260000073
在一实施例中,所述分享参数集合{ti},由第二密码运算单元通过以下方式获得:
从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算
Figure BDA0002341145260000074
若bi=1,计算
Figure BDA0002341145260000075
在一实施例中,所述第一密码运算单元,对集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式为:
Figure BDA0002341145260000076
在一实施例中,所述分享参数集合{ti},由第二密码运算单元通过以下方式获得:
从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算:
Figure BDA0002341145260000077
若bi=1,计算:
Figure BDA0002341145260000078
为了实现上述目的,本发明提供了一种基于茫然传输算法的协同秘密分享系统,包括:存储器,用于存储可由处理器执行的指令;
处理器,用于执行所述指令以实现如上述任一项所述的方法。
为了实现上述目的,本发明提供了一种计算机可读介质,其上存储有计算机指令,其中当计算机指令被处理器执行时,执行如上述任一项所述的方法。
本发明提供的一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质,采用茫然传输协议算法,在不需要安全信道的条件下,高效率地实现安全两方计算,实现对共享秘密数据的变换与计算。
附图说明
本发明上述的以及其他的特征、性质和优势将通过下面结合附图和实施例的描述而变的更加明显,在附图中相同的附图标记始终表示相同的特征,其中:
图1揭示了根据本发明一实施例的基于茫然传输算法的协同秘密分享方法流程图;
图2揭示了根据本发明一实施例的协同秘密分享装置的结构示意图;
图3揭示了根据本发明一实施例的协同秘密分享系统的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释发明,并不用于限定发明。
椭圆曲线密码(ECC,Elliptic curve cryptography)是一种基于在有限域上定义的椭圆曲线算法的公开密钥体制。SM2算法是是ECC密码体制的一种具体算法。在国家标准《GB/T 32918信息安全技术SM2椭圆曲线公钥密码算法》标准中规定了一种椭圆曲线公钥密码算法,基于SM2的加密算法和解密算法符合该标准的规定。
本发明的技术方案基于椭圆曲线密码体制(ECC,Elliptic curvecryptography),涉及两个对等的通信实体,在通信双方执行规定的协议,实现基于茫然传输算法的协同秘密分享。
参考图1所示,图1揭示了根据本发明一实施例的基于茫然传输算法的协同秘密分享方法流程图。该基于茫然传输算法的协同秘密分享方法,主要包括如下的步骤:
S1、第一通信方和第二通信方分别获取乘法分解的第一秘密分量和第二秘密分量,选取公共参数。
S2、第二通信方,基于SM2算法计算得到混淆因子集合,发给第一通信方。
S3、第一通信方,计算随机参数和加密结果集合,并发送给第二通信方,第一通信方计算得到加法分解的第一分解分量。
S4、第二通信方,根据随机参数和加密结果集合,计算分享参数集合,第二通信方计算得到加法分解的第二分解分量。
下面对基于茫然传输算法的协同秘密分享方法中的每一步骤进行详细的展开阐述。
共享秘密S的乘法分解为S=AB,其中A为第一秘密分量、B为第二秘密分量,共享秘密S的加法分解为S=x+y,其中x为第一分解分量和y为第二分解分量。
不失一般性,使用Alice和Bob来标识两个对等的通信实体。通信实体Alice和Bob分别对应第一通信方和第二通信方,两者的地位与顺序可以互换,不影响整体方案的实现。
Alice和Bob共同约定椭圆曲线的公共参数,并规定以下符号,以下符号同样参照了国家标准《GB/T 32918信息安全技术SM2椭圆曲线公钥密码算法》规定的参数:
Fq,包含q个元素的有限域;a,b,Fq中的元素,它们定义Fq上的一条椭圆曲线E;E,有限域上由a和b定义的一条椭圆曲线。
E(Fq),Fq上椭圆曲线E的所有有理点(包括无穷远点O)组成的集合。
#E{Fq),E(Fq)上点的数目,称为椭圆曲线E(Fq)的阶。
G,椭圆曲线的一个基点,其阶为素数;n,基点G的阶,n是#E(Fq)的素因子;mod n,模n运算。
O,椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位元;P,P=(xP,yP)是椭圆曲线上除O之外的一个点,其坐标xP,yP满足椭圆曲线方程。
xP,点P的x坐标;yP,点P的y坐标;x‖y,x与y的拼接,其中x和y是比特串或字节串;P1+P2,椭圆曲线E上两个点P1与P2的和。
[k]P,椭圆曲线上点P的k倍点,即
Figure BDA0002341145260000101
其中k是正整数。
Hv(*),消息摘要长度为v比特的密码杂凑算法。
⊕,长度相等的两个比特串按比特的异或运算。
S1、第一通信方和第二通信方分别获取乘法分解的第一秘密分量和第二秘密分量,选取公共参数。
Alice持有的第一秘密分量A∈{0,1}l,Bob持有的第二秘密分量B∈{0,1}l,l为第一秘密分量和第二秘密分量的比特长度,第一秘密分量和第二秘密分量构成共享秘密S的乘法分解。Alice和Bob各自持有的秘密分量可以是密钥以及任意一段秘密数据。
Alice和Bob在椭圆曲线E上随机选取一个群元素P作为公共参数。
作为安全条件Alice和Bob可以通过密钥协商算法,协商选取公共参数。在本实施例中,Alice和Bob执行ECDH(elliptic curves Diffie-Hellman,椭圆曲线密钥交换算法)协议来选取群元素P,计算共享的点乘结果,Alice和Bob任何一方均无法获得群元素P的离散对数结果。
Alice与Bob通过交换中间计算结果,并执行如下分布式计算协议。
S2、第二通信方,基于SM2算法计算得到混淆因子集合,发给第一通信方。
Bob基于SM2算法计算混淆因子集合{Ui}={U1,U2,…,Ul},混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B的1个比特相对应。
本实施例中,混淆因子集合{Ui}具体计算规则如下:
步骤S21、Bob选择l个随机数m1,m2,…,mi,…ml
步骤S22、Bob从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
步骤S23、Bob根据比特bi的值来决定计算Ui的公式:
若bi=0,计算Ui=[mi]G;
若bi=1,计算Ui=P-[mi]G;
其中,G是椭圆曲线E的基点,P是在步骤S1中协商获得的公共参数;
[mi]G代表基点G的mi倍点。
在完成对混淆因子集合{Ui}的计算之后,Bob将混淆因子集合{Ui}的结果发给Alice。
S3、第一通信方,计算随机参数和加密结果集合,并发送给第二通信方,第一通信方计算得到加法分解的第一分解分量。
Alice收到混淆因子集合{Ui}之后,选择l个随机数x1,x2,…,xl,根据第一秘密分量A,来计算得到l个参数对的第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j>的计算公式为:
Figure BDA0002341145260000111
为了便于理解,将参数对集合{<sj,s′j>}的所有元素列出如下:
s1=x1 mod n,s′1=20A+x1 mod n;
s2=x2 mod n,s′2=21A+x2 mod n;
……
sj=xj mod n,s′j=2j-1A+xj mod n;
……
sl=xl mod n,s′l=2l-1A+xl mod n。
Alice选择1个比特长度为l的随机数a∈{0,1}l,计算得到以下随机参数Va和VaP
Figure BDA0002341145260000112
根据随机参数VaP和混淆因子集合{Ui},对第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l}。
Alice计算得到第一分解分量x:
Figure BDA0002341145260000113
在完成计算之后,Alice将随机参数Va和加密结果集合{<Xj,X′j>}发送给Bob。
在一实施例中,第一分解分量x设为固定值,l个随机数x1,x2,…,xl求和得到的值为固定值,从而简化Alice作为服务器端的实现。对于每一个用户Bob,在执行乘法-加法变换的OT协议过程中,服务端Alice都选择一组不同的随机数xi,i∈{1,2,…,l},但是xi的求和总是和固定值x相等。这一方案的优点是作为服务端的Alice仅需要存储1个加法第一分解分量x,就可以为海量的移动终端Bob提供协同秘密分享服务;为了确保安全性,服务端需要将第一分解分量x存储在HSM内部以保证协同秘密分享的私密性。
本发明根据加密结果集合的加密计算方法的区别,提出三种不同的实施例。
在第一实施例中,加密结果集合{<Xj,X′j>},j∈{1,2,…,l},其中第j个元素<Xj,X′j>的计算公式:
Figure BDA0002341145260000121
其中,运算符“||”代表将其两边的操作数执行比特串接的运算;Uj是混淆因子集合{Ui}的第j个元素,是一个椭圆曲线E上的群元素;[a]Uj代表以标量a作为输入与群元素Uj执行椭圆曲线点乘运算的计算结果。
labelA和labelB是固定的标签参数,在本实施例中,labelA=′A′,labelB=′B′。
{(x,y)|[a]Uj}代表将点乘计算结果[a]Uj的横坐标x和纵坐标y按照预先定义的方式进行处理。在本实施例中,预先定义的方式为将比特串进行串接。
Hv(*)代表使用预先规定的密码杂凑函数H来对输入数据进行处理并获得杂凑值,保证了本发明算法的安全性。可选的,密码杂凑函数Hv采用的SM3密码杂凑算法。更进一步的,密码杂凑算法采用的相关标准为GB/T32905-2016《信息安全技术SM3密码杂凑算法》。
为了便于理解,将加密结果集合{<Xj,X′j>}的所有元素列出如下:
Figure BDA0002341145260000122
Figure BDA0002341145260000123
Figure BDA0002341145260000124
Figure BDA0002341145260000125
……
Figure BDA0002341145260000126
Figure BDA0002341145260000127
……
Figure BDA0002341145260000131
Figure BDA0002341145260000132
在第二实施例中,加密结果集合{<Xj,X′j>},j∈{1,2,…,l},其中第j个元素<Xj,X′j>的计算公式:
Figure BDA0002341145260000133
其中,{(x,y)|[a]Uj}代表将点乘计算结果[a]Uj的横坐标x和纵坐标y按照预先定义的方式进行处理。在本实施例中,预先定义的方式为将比特串进行串接。
Hv(*)代表使用预先规定的密码杂凑函数H来对输入数据进行处理并获得杂凑值。可选的,密码杂凑函数Hv采用的SM3密码杂凑算法。更进一步的,密码杂凑算法采用的相关标准为GB/T 32905-2016《信息安全技术SM3密码杂凑算法》。
在第三实施例中,加密结果集合{<Xj,X′j>},j∈{1,2,…,l},其中第j个元素<Xj,X′j>的计算公式:
Figure BDA0002341145260000134
其中,{(x,y)|[a]Uj}代表将点乘计算结果[a]Uj的横坐标x和纵坐标y按照预先定义的方式进行处理。在本实施例中,预先定义的方式为将比特串进行串接。
KDF(*)代表使用预先规定的密钥派生函数,klen表述输出的比特串长度。密钥派生函数的作用是对输入数据进行处理并获得密钥数据。可选的,密钥派生函数采用的相关标准为GB/T 32918.4-2016《信息安全技术SM2椭圆曲线公钥密码算法第4部分:公钥加密算法》。
S4、第二通信方,根据随机参数和加密结果集合,计算分享参数集合,第二通信方计算得到加法分解的第二分解分量。
Bob在收到随机参数Va和加密结果集合{<Xj,X′j>}之后,根据收到的结果来计算分享参数集合{ti},所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应。
对应于加密结果集合的三个实施例,在第一实施例中,分享参数集合{ti}计算规则如下:
步骤S411、Bob从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
步骤S412、Bob根据比特bi的值来决定计算分享参数集合{ti}中第i个元素ti的公式:
若bi=0,计算:
Figure BDA0002341145260000141
若bi=1,计算:
Figure BDA0002341145260000142
在第二实施例中,分享参数集合{ti}计算规则如下:
步骤S421、Bob从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
步骤S422、Bob根据比特bi的值来决定计算分享参数集合{ti}中第i个元素ti的公式:
若bi=0,计算:
Figure BDA0002341145260000143
若bi=1,计算:
Figure BDA0002341145260000144
在第三实施例中,分享参数集合{ti}计算规则如下:
步骤S431、Bob从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
步骤S432、Bob根据比特bi的值来决定计算分享参数集合{ti}中第i个元素ti的公式:
若bi=0,计算:
Figure BDA0002341145260000145
若bi=1,计算:
Figure BDA0002341145260000146
Bob在计算出分享参数集合{ti}之后,计算得到第二分解分量y:
Figure BDA0002341145260000147
在执行上述分布式计算协议之后,Alice获得第一分解分量x,Bob获得第二分解分量y,第一分解分量和第二分解分量构成共享秘密S的加法分解,在本实施例中,它们满足如下数学关系:
x+y=A·Bmod n。
通过基于ECC的茫然传输协议来执行协同秘密转换操作,可以在采用SM2标准算法实现全部协同秘密转换分解过程,而不需要引入其他类型的半同态加密算法,有利于产品标准化,满足合规性。
同时,基于ECC的茫然传输协议的效率较高,相比逐比特传输可以减少大量运算步骤。对于双方传输256比特的秘密,与本发明的技术方案相比较,现有技术的茫然传输协议将需要执行更多的ECC点乘运算,同时需要传输更多的中间计算结果。
本发明还提供了一种可以实现上述基于茫然传输算法的协同秘密分享方法的协同秘密分享装置。图2揭示了根据本发明一实施例的协同秘密分享装置的结构示意图,如图2所示,该协同秘密分享装置包括第一通信方100和第二通信方200:
所述第一通信方100包括第一秘密获取单元101、第一密码运算单元102和第一通信单元103;所述第二通信方200包括第二秘密获取单元201、第二密码运算单元202和第二通信单元203。
第一秘密获取单元101,与第一密码运算单元102连接,获取持有乘法分解的第一秘密分量A,并发送给第一密码运算单元102。
第二秘密获取单元201,与第二密码运算单元202连接,获取持有乘法分解的第二秘密分量B,并发送给第二密码运算单元202。第一秘密分量A和第二秘密分量B构成共享秘密S的乘法分解。
第一密码运算单元102,与第一秘密获取单元101、第一通信单元103连接,接收第一秘密获取单元101发送的第一秘密分量A,接收第一通信单元103发送的混淆因子集合{Ui}。
第一密码运算单元102,计算得到第一分解分量x:
Figure BDA0002341145260000151
xi为随机选择的l个随机数。
第一密码运算单元102,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一秘密分量A形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l),并将随机参数Va和加密结果集合{<Xj,X′j>}发送至第一通信单元103。
第一通信单元103,与第二通信单元203进行数据传输,向第二通信单元203发送随机参数Va和加密结果集合{<Xj,X′j>}。
第二密码运算单元202,与第二秘密获取单元201、第二通信单元203连接,接收第二秘密获取单元201发送的第二秘密分量B,接收第二通信单元203发送的随机参数Va和加密结果集合{<Xj,X′j>}。
第二密码运算单元202,根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},计算得到第二分解分量y:
Figure BDA0002341145260000161
所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应。第一分解分量和第二分解分量构成共享秘密S的加法分解。
第二密码运算单元202,基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,…,Ul},并将计算结果发送至第二通信单元203,所述混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B中的1个比特相对应。
第二通信单元203,与第一通信单元103进行数据传输,向第一通信单元103发送的混淆因子集合{Ui}。
更进一步的,混淆因子集合{Ui},由第二密码运算单元202通过步骤S2中的方式获得。
更进一步的,随机参数Va、VaP、第一集合{<sj,s′j>},由第一密码运算单元102通过步骤S3中的方式获得。
更进一步的,第一通信方和第二通信方在椭圆曲线E上随机选取一个群元素P作为公共参数。
更进一步的,所述第一密码运算单元102,对第一集合{<sj,s′j>}的每一个元素进行加密计算,加密计算公式通过上述步骤S3中的第一实施例的方式获得。
更进一步的,所述分享参数集合{ti}的计算公式,由第二密码运算单元202通过上述步骤S4中第一实施例的方式获得。
更进一步的,所述第一密码运算单元102,对第一集合{<sj,s′j>}的每一个元素进行加密计算,加密计算公式通过上述步骤S3中的第二实施例的方式获得。
更进一步的,所述分享参数集合{ti}的计算公式,由第二密码运算单元202通过上述步骤S4中第二实施例的方式获得。
更进一步的,所述第一密码运算单元102,对第一集合{<sj,s′j>}的每一个元素进行加密计算,加密计算公式通过上述步骤S3中的第三实施例的方式获得。
更进一步的,所述分享参数集合{ti}的计算公式,由第二密码运算单元202通过上述步骤S4中第三实施例的方式获得。
图3揭示了根据本发明一实施例的协同秘密分享系统的框图。协同秘密分享系统可包括内部通信总线301、处理器(processor)302、只读存储器(ROM)303、随机存取存储器(RAM)304、通信端口305、输入/输出端306以及硬盘307。内部通信总线301可以实现协同秘密分享系统组件间的数据通信。处理器302可以进行判断和发出提示。在一些实施例中,处理器302可以由一个或多个处理器组成。
通信端口305可以实现协同秘密分享系统与外部的输入/输出设备之间进行数据传输与通信。在一些实施例中,协同秘密分享系统可以通过通信端口305从网络发送和接收信息及数据。在一些实施例中,协同秘密分享系统可以通过输入/输出端306以有线的形式与外部的输入/输出设备之间进行数据传输与通信。在一些实施例中,输入端为虚拟键盘,在协同秘密分享过程中供用户在移动终端输入验证信息,验证信息可以是PIN码。
协同秘密分享系统还可以包括不同形式的程序储存单元以及数据储存单元,例如硬盘307,只读存储器(ROM)303和随机存取存储器(RAM)304,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器302所执行的可能的程序指令。处理器302执行这些指令以实现方法的主要部分。处理器302处理的结果通过通信端口305传给外部的输出设备,在输出设备的用户界面上显示。
举例来说,上述的协同秘密分享方法的实施过程文件可以为计算机程序,保存在硬盘307中,并可记载到处理器302中执行,以实施本申请的方法。
需要指出的是,术语“计算机”应该做广义的理解,可以包括但不限于云计算服务器,智能移动终端,物联网设备,计算机电脑等。对于移动端,秘密分量/分解分量可以储存在本地介质中,对于服务端,秘密分量/分解分量可以选择储存在数据库、HSM内部。
协同秘密分享方法的实施过程文件为计算机程序时,也可以存储在计算机或移动设备的可读存储介质中作为制品。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(CD)、数字多功能盘(DVD))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(EPROM)、卡、棒、键驱动)。此外,本文描述的各种存储介质能代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。
本发明提供的一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质,采用茫然传输协议算法,在不需要安全信道的条件下,高效率地实现安全两方计算,实现对秘密共享数据的变换与计算。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
上述实施例是提供给熟悉本领域内的人员来实现或使用本发明的,熟悉本领域的人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。

Claims (13)

1.一种基于茫然传输算法的协同秘密分享方法,其特征在于,包括以下步骤:
S1第一通信方持有的第一秘密分量A∈{0,1}l,第二通信方持有的第二秘密分量B∈{0,1}l,l为第一秘密分量A和第二秘密分量B的比特长度,第一秘密分量A和第二秘密分量B构成共享秘密S的乘法分解;
第一通信方和第二通信方在椭圆曲线E上随机选取一个群元素P作为公共参数;
S2第二通信方,基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,...,Ul},所述混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B中的1个比特相对应;
第二通信方,将混淆因子集合的计算结果{Ui}发给第一通信方;
S3第一通信方,接收混淆因子集合{Ui};
第一通信方,选择l个随机数x1,x2,...,xl,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一秘密分量A形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l};
第一通信方,计算得到第一分解分量x:
Figure FDA0004093067710000011
n为椭圆曲线E上基点G的阶;
第一通信方,将随机参数Va和加密结果集合{<Xj,X′j>}发送给第二通信方;
S4第二通信方,接收随机参数Va和加密结果集合{<Xj,X′j>};
根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应;
第二通信方,计算得到第二分解分量y:
Figure FDA0004093067710000012
第一分解分量x和第二分解分量y构成共享秘密S的加法分解;
所述步骤S3中,随机参数Va、VaP和第一集合{<sj,s′j>}通过以下步骤获得:
根据第一秘密分量A,计算得到第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j>的计算公式为:
Figure FDA0004093067710000021
选取1个比特长度为l的随机数a∈{0,1}l,计算得到随机参数Va和VaP,其中随机参数Va和VaP的计算公式为:
Figure FDA0004093067710000022
所述步骤S3中,第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式:
Figure FDA0004093067710000023
所述步骤S4中,分享参数集合{ti}的计算方法,进一步包括以下步骤:
S411第二通信方从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S412第二通信方根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算:
Figure FDA0004093067710000024
若bi=1,计算:
Figure FDA0004093067710000025
2.一种基于茫然传输算法的协同秘密分享方法,其特征在于,包括以下步骤:
S1第一通信方持有的第一秘密分量A∈{0,1}l,第二通信方持有的第二秘密分量B∈{0,1}l,l为第一秘密分量A和第二秘密分量B的比特长度,第一秘密分量A和第二秘密分量B构成共享秘密S的乘法分解;
第一通信方和第二通信方在椭圆曲线E上随机选取一个群元素P作为公共参数;
S2第二通信方,基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,...,Ul},所述混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B中的1个比特相对应;
第二通信方,将混淆因子集合的计算结果{Ui}发给第一通信方;
S3第一通信方,接收混淆因子集合{Ui};
第一通信方,选择l个随机数x1,x2,...,xl,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一秘密分量A形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l};
第一通信方,计算得到第一分解分量x:
Figure FDA0004093067710000031
n为椭圆曲线E上基点G的阶;
第一通信方,将随机参数Va和加密结果集合{<Xj,X′j>}发送给第二通信方;
S4第二通信方,接收随机参数Va和加密结果集合{<Xj,X′j>};
根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应;
第二通信方,计算得到第二分解分量y:
Figure FDA0004093067710000032
第一分解分量x和第二分解分量y构成共享秘密S的加法分解;
其中,所述步骤S3中,随机参数Va、VaP和第一集合{<sj,s′j>}通过以下步骤获得:
根据第一秘密分量A,计算得到第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j>的计算公式为:
Figure FDA0004093067710000033
选取1个比特长度为l的随机数a∈{0,1}l,计算得到随机参数Va和VaP,其中随机参数Va和VaP的计算公式为:
Figure FDA0004093067710000034
所述步骤S3中,第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式:
Figure FDA0004093067710000035
所述步骤S4中,分享参数集合{ti}的计算方法,进一步包括以下步骤:
S421第二通信方从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S422第二通信方根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算
Figure FDA0004093067710000041
若bi=1,计算
Figure FDA0004093067710000042
3.一种基于茫然传输算法的协同秘密分享方法,其特征在于,包括以下步骤:
S1第一通信方持有的第一秘密分量A∈{0,1}l,第二通信方持有的第二秘密分量B∈{0,1}l,l为第一秘密分量A和第二秘密分量B的比特长度,第一秘密分量A和第二秘密分量B构成共享秘密S的乘法分解;
第一通信方和第二通信方在椭圆曲线E上随机选取一个群元素P作为公共参数;
S2第二通信方,基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,...,Ul},所述混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B中的1个比特相对应;
第二通信方,将混淆因子集合的计算结果{Ui}发给第一通信方;
S3第一通信方,接收混淆因子集合{Ui};
第一通信方,选择l个随机数x1,x2,...,xl,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一秘密分量A形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l};
第一通信方,计算得到第一分解分量x:
Figure FDA0004093067710000043
n为椭圆曲线E上基点G的阶;
第一通信方,将随机参数Va和加密结果集合{<Xj,X′j>}发送给第二通信方;
S4第二通信方,接收随机参数Va和加密结果集合{<Xj,X′j>};
根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应;
第二通信方,计算得到第二分解分量y:
Figure FDA0004093067710000044
第一分解分量x和第二分解分量y构成共享秘密S的加法分解;
其中,所述步骤S3中,随机参数Va、VaP和第一集合{<sj,s′j>}通过以下步骤获得:
根据第一秘密分量A,计算得到第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j>的计算公式为:
Figure FDA0004093067710000051
选取1个比特长度为l的随机数a∈{0,1}l,计算得到随机参数Va和VaP,其中随机参数Va和VaP的计算公式为:
Figure FDA0004093067710000052
所述步骤S3中,第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式:
Figure FDA0004093067710000053
所述步骤S3中,分享参数集合{ti}的计算方法,进一步包括以下步骤:
S431第二通信方从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S432第二通信方根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算:
Figure FDA0004093067710000054
若bi=1,计算:
Figure FDA0004093067710000055
4.根据权利要求1至3任一项所述的基于茫然传输算法的协同秘密分享方法,其特征在于,所述步骤S1中,第一通信方和第二通信方通过密钥协商算法,协商选取公共参数。
5.根据权利要求1至3任一项所述的基于茫然传输算法的协同秘密分享方法,其特征在于,所述步骤S2中,混淆因子集合{Ui}的计算方法,进一步包括以下步骤:
S21第二通信方选择l个随机数m1,m2,...,mi,...ml
S22第二通信方从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S23第二通信方根据比特bi的值来决定计算Ui的计算公式:
若bi=0,计算Ui=[mi]G;
若bi=1,计算Ui=P-[mi]G;
其中,G是椭圆曲线E的基点,P是协商选取的公共参数,[mi]G代表基点G的mi倍点。
6.根据权利要求1-3任一项所述的基于茫然传输算法的协同秘密分享方法,其特征在于,所述第一分解分量x设为固定值。
7.一种基于茫然传输算法的协同秘密分享装置,其特征在于,包括第一通信方和第二通信方:
所述第一通信方包括第一秘密获取单元、第一密码运算单元和第一通信单元;
所述第二通信方包括第二秘密获取单元、第二密码运算单元和第二通信单元;
所述第一秘密获取单元,获取第一秘密分量A∈{0,1}l,所述第二秘密获取单元,获取第二秘密分量B∈{0,1}l,l为第一秘密分量和第二秘密分量的比特长度,第一秘密分量和第二秘密分量构成共享秘密S的乘法分解;
所述第一密码运算单元,随机选择的l个随机数xi,i∈{1,2,…,l},计算得到第一分解分量x:
Figure FDA0004093067710000061
n为椭圆曲线E上基点G的阶;
所述第一密码运算单元,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一秘密分量A形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l};
所述第二密码运算单元,基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,...,Ul}所述混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B中的1个比特相对应;
所述第一通信单元,与第二通信单元进行数据传输,向第二通信单元发送随机参数Va和加密结果集合{<Xj,X′j>};
所述第二通信单元,与第一通信单元进行数据传输,向第一通信单元发送混淆因子集合{Ui};
所述第二密码运算单元,根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},计算得到第二分解分量y:
Figure FDA0004093067710000071
所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应,第一分解分量x和第二分解分量y构成共享秘密S的加法分解;
其中,所述随机参数Va、VaP和第一集合{<sj,s′j>},由第一密码运算单元通过以下方式获得,
根据第一秘密分量A,计算得到第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j>的计算公式为:
Figure FDA0004093067710000072
选取1个比特长度为l的随机数a∈{0,1}l,计算得到随机参数Va和VaP,其中随机参数Va和VaP的计算公式为:
Figure FDA0004093067710000073
所述第一密码运算单元,对集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式为:
Figure FDA0004093067710000074
所述分享参数集合{ti},由第二密码运算单元通过以下方式获得:
从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算:
Figure FDA0004093067710000075
若bi=1,计算:
Figure FDA0004093067710000076
8.一种基于茫然传输算法的协同秘密分享装置,其特征在于,包括第一通信方和第二通信方:
所述第一通信方包括第一秘密获取单元、第一密码运算单元和第一通信单元;
所述第二通信方包括第二秘密获取单元、第二密码运算单元和第二通信单元;
所述第一秘密获取单元,获取第一秘密分量A∈{0,1}l,所述第二秘密获取单元,获取第二秘密分量B∈{0,1}l,l为第一秘密分量和第二秘密分量的比特长度,第一秘密分量和第二秘密分量构成共享秘密S的乘法分解;
所述第一密码运算单元,随机选择的l个随机数xi,i∈{1,2,…,l},计算得到第一分解分量x:
Figure FDA0004093067710000081
n为椭圆曲线E上基点G的阶;
所述第一密码运算单元,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一秘密分量A形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l};
所述第二密码运算单元,基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,...,Ul}所述混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B中的1个比特相对应;
所述第一通信单元,与第二通信单元进行数据传输,向第二通信单元发送随机参数Va和加密结果集合{<Xj,X′j>};
所述第二通信单元,与第一通信单元进行数据传输,向第一通信单元发送混淆因子集合{Ui};
所述第二密码运算单元,根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},计算得到第二分解分量y:
Figure FDA0004093067710000082
所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应,第一分解分量x和第二分解分量y构成共享秘密S的加法分解;
其中,所述随机参数Va、VaP和第一集合{<sj,s′j>},由第一密码运算单元通过以下方式获得,
根据第一秘密分量A,计算得到第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j>的计算公式为:
Figure FDA0004093067710000091
选取1个比特长度为l的随机数a∈{0,1}l,计算得到随机参数Va和VaP,其中随机参数Va和VaP的计算公式为:
Figure FDA0004093067710000092
所述第一密码运算单元,对集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式为:
Figure FDA0004093067710000093
所述分享参数集合{ti},由第二密码运算单元通过以下方式获得:
从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算
Figure FDA0004093067710000094
若bi=1,计算
Figure FDA0004093067710000095
9.一种基于茫然传输算法的协同秘密分享装置,其特征在于,包括第一通信方和第二通信方:
所述第一通信方包括第一秘密获取单元、第一密码运算单元和第一通信单元;
所述第二通信方包括第二秘密获取单元、第二密码运算单元和第二通信单元;
所述第一秘密获取单元,获取第一秘密分量A∈{0,1}l,所述第二秘密获取单元,获取第二秘密分量B∈{0,1}l,l为第一秘密分量和第二秘密分量的比特长度,第一秘密分量和第二秘密分量构成共享秘密S的乘法分解;
所述第一密码运算单元,随机选择的l个随机数xi,i∈{1,2,…,l},计算得到第一分解分量x:
Figure FDA0004093067710000096
n为椭圆曲线E上基点G的阶;
所述第一密码运算单元,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一秘密分量A形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l};
所述第二密码运算单元,基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,...,Ul}所述混淆因子集合{Ui}中每一个元素Ui与第二秘密分量B中的1个比特相对应;
所述第一通信单元,与第二通信单元进行数据传输,向第二通信单元发送随机参数Va和加密结果集合{<Xj,X′j>};
所述第二通信单元,与第一通信单元进行数据传输,向第一通信单元发送混淆因子集合{Ui};
所述第二密码运算单元,根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},计算得到第二分解分量y:
Figure FDA0004093067710000101
所述分享参数集合{ti}中每一个元素ti与第二秘密分量B中的1个比特相对应,第一分解分量x和第二分解分量y构成共享秘密S的加法分解;
其中,所述随机参数Va、VaP和第一集合{<sj,s′j>},由第一密码运算单元通过以下方式获得,
根据第一秘密分量A,计算得到第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j>的计算公式为:
Figure FDA0004093067710000102
选取1个比特长度为l的随机数a∈{0,1}l,计算得到随机参数Va和VaP,其中随机参数Va和VaP的计算公式为:
Figure FDA0004093067710000103
所述第一密码运算单元,对集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式为:
Figure FDA0004093067710000104
所述分享参数集合{ti},由第二密码运算单元通过以下方式获得:
从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算:
Figure FDA0004093067710000105
若bi=1,计算:
Figure FDA0004093067710000111
10.根据权利要求7-9任一项所述的基于茫然传输算法的协同秘密分享装置,其特征在于,所述第一通信方和第二通信方在椭圆曲线E上随机选取一个群元素P作为公共参数。
11.根据权利要求10所述的基于茫然传输算法的协同秘密分享装置,其特征在于,所述混淆因子集合{Ui}={U1,U2,...,Ul},由第二密码运算单元通过以下方式获得:
选择l个随机数m1,m2,...,mi,...ml
从第二秘密分量B中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
根据比特bi的值来决定计算Ui的计算公式:
若bi=0,计算Ui=[mi]G;
若bi=1,计算Ui=P-[mi]G;
其中,G是椭圆曲线E的基点,P是协商选取的公共参数,[mi]G代表基点G的mi倍点。
12.一种基于茫然传输算法的协同秘密分享系统,包括:
存储器,用于存储可由处理器执行的指令;
处理器,用于执行所述指令以实现如权利要求1-6任一项所述的方法。
13.一种计算机可读介质,其上存储有计算机指令,其中当计算机指令被处理器执行时,执行如权利要求1-6任一项所述的方法。
CN201911376598.3A 2019-12-27 2019-12-27 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质 Active CN111162906B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911376598.3A CN111162906B (zh) 2019-12-27 2019-12-27 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911376598.3A CN111162906B (zh) 2019-12-27 2019-12-27 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质

Publications (2)

Publication Number Publication Date
CN111162906A CN111162906A (zh) 2020-05-15
CN111162906B true CN111162906B (zh) 2023-04-14

Family

ID=70558456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911376598.3A Active CN111162906B (zh) 2019-12-27 2019-12-27 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质

Country Status (1)

Country Link
CN (1) CN111162906B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016126B (zh) * 2020-09-11 2023-03-07 山东大学 一种基于茫然传输的安全点积计算方法及系统
CN113094468A (zh) * 2021-02-02 2021-07-09 北京融数联智科技有限公司 一种基于ot实现的多数据源关系图构建与数据对齐方法
CN113407992B (zh) * 2021-06-10 2024-05-28 交通银行股份有限公司 一种基于可信第三方的隐私数据两方安全相等测试方法
CN113407991B (zh) * 2021-06-10 2024-05-28 交通银行股份有限公司 一种基于可信第三方的隐私数据两方安全比较方法
CN114153854B (zh) * 2022-02-09 2022-05-10 支付宝(杭州)信息技术有限公司 一种基于秘密分享的多键分组信息获取方法和系统
CN114282255B (zh) * 2022-03-04 2022-05-31 支付宝(杭州)信息技术有限公司 一种基于秘密分享的排序序列合并方法和系统
CN114584285B (zh) * 2022-05-05 2022-07-29 深圳市洞见智慧科技有限公司 安全多方处理方法及相关设备
CN114881577B (zh) * 2022-07-06 2022-09-30 国网浙江省电力有限公司 一种动态感知物资需求变化的采购决策方法及系统
CN116132029B (zh) * 2022-12-22 2023-09-26 泉城省实验室 基于三选一茫然传输协议的通配符模式匹配方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109818744A (zh) * 2019-02-27 2019-05-28 矩阵元技术(深圳)有限公司 共享秘密密钥生成方法、装置、计算机设备和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701588A (zh) * 2013-12-18 2014-04-02 北京民芯科技有限公司 一种秘密共享硬件实现方法及装置
US20190303349A1 (en) * 2015-05-19 2019-10-03 Cryptomove, Inc. Security via data concealment
US20160352710A1 (en) * 2015-05-31 2016-12-01 Cisco Technology, Inc. Server-assisted secure exponentiation
EP3311320A4 (en) * 2015-06-22 2018-12-05 Cyphre, LLC Accelerated encryption and decryption of files with shared secret and method therefor
EP3573039B1 (en) * 2017-01-20 2021-08-18 Nippon Telegraph and Telephone Corporation Secure computing system, secure computing device, secure computing method, and program
CN109672539B (zh) * 2019-03-01 2021-11-05 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109818744A (zh) * 2019-02-27 2019-05-28 矩阵元技术(深圳)有限公司 共享秘密密钥生成方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN111162906A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN111162906B (zh) 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质
CN111049650B (zh) 一种基于sm2算法的协同解密方法及装置、系统、介质
CN111130804B (zh) 一种基于sm2算法的协同签名方法及装置、系统、介质
CN110870250B (zh) 密钥协商设备和方法
CN110383754B (zh) 基于椭圆曲线同源的密钥协商协议
US10673631B2 (en) Elliptic curve isogeny-based cryptographic scheme
CN107395368B (zh) 无介质环境中的数字签名方法及解封装方法与解密方法
US9571274B2 (en) Key agreement protocol
RU2534944C2 (ru) Способ обеспечения безопасности связи в сети, используемые для этого устройство связи, сеть и компьютерная программа
US9705683B2 (en) Verifiable implicit certificates
US20050271203A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
WO2009026771A1 (fr) Procédé pour négocier une clé, chiffrer et déchiffrer des informations, signer et authentifier les informations
CN109474425B (zh) 一种基于多个共享密钥获得任意指定长度派生密钥的方法
CN105027492B (zh) 用于确定共享密钥的设备、方法和系统
CN104158880A (zh) 一种用户端云数据共享解决方法
Peng Danger of using fully homomorphic encryption: A look at Microsoft SEAL
CN110224816B (zh) 基于密钥卡和序列号的抗量子计算应用系统以及近距离节能通信方法和计算机设备
JP2019528028A (ja) 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム
CN112118113A (zh) 一种基于sm2算法的多方协同群签名方法及装置、系统、介质
TW202232913A (zh) 共享金鑰產生技術
KR20100024605A (ko) Rsa기반 패스워드 인증을 통한 세션키 분배방법
US20160352689A1 (en) Key agreement protocol
CN114564730A (zh) 基于对称加密的联邦分组统计量计算方法、设备及介质
CN117155615A (zh) 数据加密传输方法、系统、电子设备及存储介质
WO2023093278A1 (zh) 数字签名门限方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant