CN112769542B - 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质 - Google Patents

基于椭圆曲线的乘法三元组生成方法、装置、设备及介质 Download PDF

Info

Publication number
CN112769542B
CN112769542B CN202110386261.1A CN202110386261A CN112769542B CN 112769542 B CN112769542 B CN 112769542B CN 202110386261 A CN202110386261 A CN 202110386261A CN 112769542 B CN112769542 B CN 112769542B
Authority
CN
China
Prior art keywords
ith
random
ciphertext
elliptic curve
participating node
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
CN202110386261.1A
Other languages
English (en)
Other versions
CN112769542A (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.)
Fucun Technology Shanghai Co ltd
Bank of Communications Co Ltd
Original Assignee
Fucun Technology Shanghai Co ltd
Bank of Communications 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 Fucun Technology Shanghai Co ltd, Bank of Communications Co Ltd filed Critical Fucun Technology Shanghai Co ltd
Priority to CN202110386261.1A priority Critical patent/CN112769542B/zh
Publication of CN112769542A publication Critical patent/CN112769542A/zh
Application granted granted Critical
Publication of CN112769542B publication Critical patent/CN112769542B/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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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

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)
  • Complex Calculations (AREA)

Abstract

本发明提供一种基于椭圆曲线的乘法三元组生成方法、装置、设备及介质,该方法适用于第一参与节点,包括:选取随机非负整数x(1)和y(1),对x(1)进行基于椭圆曲线的同态加密处理得到第一密文,将第一密文发送至预先选取有随机非负整数x(2)和y(2)的另一参与节点,以使另一参与节点将y(2)与所述第一密文进行同态数乘运算后再与预先选取的第二随机数r(2)相加,得到第一随机化结果后返回至所述第一参与节点;对所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第一解密结果,而后根据第一解密结果计算第一乘积z(1),并根据第一乘积生成第一三元组(x(1),y(1),z(1))。本发明能够在椭圆曲线密码体系上生成乘法三元组,并且不会浪费乘法三元组的取值空间。

Description

基于椭圆曲线的乘法三元组生成方法、装置、设备及介质
技术领域
本发明涉及加密技术领域,尤其涉及一种基于椭圆曲线的乘法三元组生成方法、装置、设备及介质。
背景技术
在一些业务场景中,每个业务平台均收集有各自的业务数据。例如,浏览器平台收集用户的网页浏览数据,网购平台收集用户的网购数据。这些业务 数据很有价值,通常作为业务平台的隐私信息保存。各业务平台不期望与其 他业务平台共享原始形式的业务数据。但在一些需求中,多个业务平台期望 在不公开各方的业务数据的情况下进行协同计算,以提高业务处理能力。例如,浏览器平台与网购平台期望利用网页搜索数据和网购数据构建更准确的推荐模型,从而基于该推荐模型,浏览器平台为用户更精准的推荐网页或广告,网购平台为用户更精准的推荐商品。
安全多方计算(Secure Multi-Party Computation,SMC)用于解决一组互不信任的参与方之间保护隐私的协同计算问题。多个业务平台可以作为参与 方,在不公开各自业务数据的情况下,利用安全多方计算来实现对业务数据 的协同计算。
当前较为成熟可实施的安全多方计算的实现方法主要包括基于秘密分享的安全多方计算方法和基于混淆电路的安全多方计算方法。其中基于秘密分享的安全多方计算方法具有算法简洁、计算方易于扩充等特点,成为落地安全多方计算的首选。秘密分享分为分享和恢复两个阶段。在分享阶段,将秘密以一定的方式分拆成多份碎片,并分发给不同的参与者;在恢复阶段,多个参与者根据自己所掌握碎片,共同协作恢复出原始秘密。秘密分享要求只有足够多的参与方才能恢复出原始秘密,如果参与方不够,将无法恢复原始秘密。
在实现基于秘密分享的安全多方计算中,需要使用Beaver乘法三元组(简称乘法三元组)来辅助和加速乘法的实现。乘法三元组是安全乘法计算甚至是所有安全多方计算的重要资源,是计算各方对于两个乘数x、y和乘积z=xy这三个数的秘密分享的总称。以两方为例,x=x1+x2,y=y1+y2,z=z1+z2,两方分别掌握(x1,y1,z1)和(x2,y2,z2)。乘法三元组的生成可以通过多种密码学方法来实现。
当前较为成熟的乘法三元组生成方法有基于TEE(Trusted ExecutionEnvironmen,可信执行环境)的方法、基于OLE(Oblivious Linear function Evaluation,不经意线性函数取值)的方法以及基于HE(Homomorphic Encryption,同态加密)的方法等。
在基于同态加密的方法中,多采用较为成熟的Paillier(帕耶)同态加密。基于Paillier同态加密的三元组生成方法是基于复合剩余假设并且计算方法主要是模指数运算,如果需要保持Paillier同态加密方案的安全性,要求明文空间需要与密钥空间长度相仿,这样使得产生出来的三元组的取值空间也较大,当安全多方计算的客体数据范围较小时,这种大范围的取值空间将会是一种浪费。此外,安全多方计算系统作为用户的信息系统的一部分,需基于已有的系统和密码体系,在某些特殊领域和行业,需求方已经有较为成熟的椭圆曲线密码体系,并且替换这一体系的成本较高。在为此类用户提供安全多方计算建设方案时,需要提供基于椭圆曲线的乘法三元组生成方法。
发明内容
针对上述现有技术中的问题,本发明提供一种基于椭圆曲线的乘法三元组生成方法、装置、设备及介质,以在椭圆曲线密码体系上生成乘法三元组,并且生成的乘法三元组不会浪费取值空间。
为了实现上述目的,本发明提供一种基于椭圆曲线的乘法三元组生成方法,适用于第一参与节点,该方法包括:
选取比特长度小于等于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1)
对所述第一随机非负整数x(1)进行基于椭圆曲线的同态加密处理,得到第一密文,并将所述第一密文发送至第二参与节点,所述第二参与节点预先选取有比特长度小于等于所述预设长度阈值的第三随机非负整数x(2)和第四随机非负整数y(2),以使所述第二参与节点在接收到所述第一密文后,将所述第四随机非负整数y(2)与所述第一密文进行同态数乘运算后再与预先选取的第二随机数r(2) 相加,得到第一随机化结果,并将所述第一随机化结果返回至所述第一参与节点;
当接收到所述第一随机化结果后,对所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第一解密结果w(1) = x(1) y(2) + r(2),并根据如下公式计算第一乘积 z(1):z(1) =( x(1) y(1) + x(1) y(2) + r(2) -r(1)) mod p,并生成第一三元组(x(1), y(1), z(1)),其中,r(1)表示预先选取的第一随机数,p表示预先选取的公共模数,且x(1)、y(1)、x(2)、y(2)均小于p;
当接收到所述第二参与节点发送的第二密文,且所述第二密文是通过对所述第三随机非负整数x(2)进行基于椭圆曲线的同态加密处理得到时,将所述第二随机非负整数y(1)与所述第二密文进行同态数乘运算后再与所述第一随机数r(1)相加,得到第二随机化结果,并将所述第二随机化结果返回至所述第二参与节点,以使所述第二参与节点对所述第二随机化结果进行基于椭圆曲线的同态解密处理,得到第二解密结果w(2) = x(2) y(1) + r(1),并根据如下公式计算第二乘积z(2):z(2) =( x(2) y(2) + x(2) y(2) + r(1) -r(2)) mod p,并生成第二三元组(x(2), y(2), z(2))。
在本发明一个优选实施例中,所述对所述第一随机非负整数x(1)进行基于椭圆曲线的同态加密处理,得到第一密文,包括:
对所述第一随机非负整数x(1)进行编码,以将所述第一随机非负整数编码为椭圆曲线上的点;
利用基于椭圆曲线的厄格玛尔算法,对编码至所述椭圆曲线上的点进行加密,得到所述第一密文。
在本发明一个优选实施例中,所述对所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第一解密结果,包括:
利用基于椭圆曲线的厄格玛尔算法,将所述第一随机化结果解密为所述椭圆曲线上的点;
对解密得到的所述椭圆曲线上的点进行译码,得到所述第一解密结果。
为了实现上述目的,本发明还提供一种基于椭圆曲线的乘法三元组生成方法,适用于第一参与节点,该方法包括:
选取比特长度大于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1)
将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数yi (1),其中,i=1,…,N,N为大于2的正整数;
针对每个所述第一随机非负整数xi (1)和第二随机非负整数yi (1),分别执行以下步骤:
对第i个所述第一随机非负整数xi (1)进行基于椭圆曲线的同态加密处理,得到第i个第一密文,并将第i个所第一述密文发送至第二参与节点,所述第二参与节点预先选取有比特长度大于所述预设长度阈值的第三随机非负整数x(2)和第四随机非负整数y(2),并将x(2)分解成N个比特长度不超过所述预设长度阈值的第三随机非负整数xi (2),将y(2)分解成N个比特长度不超过所述预设长度阈值的第四随机非负整数yi (2),以使所述第二参与节点在接收到第i个所述第一密文后,将第i个所述第四随机非负整数yi (2)与第i个所述第一密文进行同态数乘运算后再与预先选取的第i个第二随机数ri (2)相加,得到第i个第一随机化结果,并将第i个所述第一随机化结果返回至所述第一参与节点;
当接收到第i个所述第一随机化结果后,对第i个所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第一解密结果 wi (1) = xi (1) yi (2) + ri (2),并根据如下公式计算第i个第一乘积分量zi (1):zi (1) =( xi (1) yi (1) + xi (1) yi (2) + ri (2) -ri (1)) mod pi,其中,ri (1)表示预先选取的第i个第一随机数,pi表示预先选取的第i个公共模数,且x(1)、y(1)、x(2)和y(2)均小于N个pi的乘积;
对N个所述第一乘积分量进行聚合处理,得到第一乘积z(1),并生成第一三元组(x(1), y(1), z(1));
当接收到所述第二参与节点发送的第i个第二密文,且第i个所述第二密文是通过对第i个所述第三随机非负整数xi (2)进行基于椭圆曲线的同态加密处理得到时,将第i个所述第二随机非负整数yi (2)与第i个所述第二密文进行同态数乘运算后再与第i个所述第一随机数ri (1)相加,得到第i个第二随机化结果,并将第i个所述第二随机化结果返回至所述第二参与节点,以使所述第二参与节点对第i个所述第二随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第二解密结果wi (2) = xi (2) yi (1) + ri (1),并根据如下公式计算第i个第二乘积分量zi (2):zi (2) =( xi (2) yi (2) + xi (2) yi (1) + ri (1) -ri (2)) mod pi,而后对N个所述第二乘积分量进行聚合处理,得到第二乘积z(2),并生成第二三元组(x(2), y(2), z (2))。
在本发明一个优选实施例中,所述将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数yi (1),包括:
根据中国剩余定理,将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数 yi (1)
所述对N个所述第一乘积分量进行聚合处理,得到第一乘积 z(1),包括:
根据中国剩余定理,对N个所述第一乘积分量进行聚合处理,得到第一乘积z(1)
为了实现上述目的,本发明还提供一种基于椭圆曲线的乘法三元组生成装置,适用于第一参与节点,该装置包括:
选取模块,用于选取比特长度小于等于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1)
同态加密模块,用于对所述第一随机非负整数x(1)进行基于椭圆曲线的同态加密处理,得到第一密文,并将所述第一密文发送至第二参与节点,所述第二参与节点预先选取有比特长度小于等于所述预设长度阈值的第三随机非负整数x(2)和第四随机非负整数y(2),以使所述第二参与节点在接收到所述第一密文后,将所述第四随机非负整数y(2)与所述第一密文进行同态数乘运算后再与预先选取的第二随机数r(2)相加,得到第一随机化结果,并将所述第一随机化结果返回至所述第一参与节点;
同态解密模块,用于在接收到所述第一随机化结果后,对所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第一解密结果w(1) = x(1) y(2) + r(2)
计算模块,用于根据如下公式计算第一乘积z(1):z(1) =( x(1) y(1) + x(1) y(2) + r(2) -r(1)) mod p,其中,r(1)表示预先选取的第一随机数,p表示预先选取的公共模数,且x(1)、y(1)、x(2)、y(2)均小于p ;
三元组生成模块,用于生成第一三元组(x(1), y(1), z(1)),
同态数乘模块,用于在接收到所述第二参与节点发送的第二密文,且所述第二密文是通过对所述第三随机非负整数x(2)进行基于椭圆曲线的同态加密处理得到时,将所述第二随机非负整数y(1)与所述第二密文进行同态数乘运算;
随机化模块,用于将所述同态数乘模块输出的结果与所述第一随机数r(1)相加,得到第二随机化结果,并将所述第二随机化结果返回至所述第二参与节点,以使所述第二参与节点对所述第二随机化结果进行基于椭圆曲线的同态解密处理,得到第二解密结果w(2)= x(2) y(1) + r(1),并根据如下公式计算第二乘积z(2):z(2) =( x(2) y(2) + x(2) y(1) + r(1) -r(2)) mod p,并生成第二三元组(x(2), y(2), z(2))。
在本发明一个优选实施例中,所述同态加密模块具体用于:
对所述第一随机非负整数x(1)进行编码,以将所述第一随机非负整数编码为椭圆曲线上的点;
利用基于椭圆曲线的厄格玛尔算法,对编码至所述椭圆曲线上的点进行加密,得到所述第一密文。
为了实现上述目的,本发明还提供一种基于椭圆曲线的乘法三元组生成装置,适用于第一参与节点,该装置包括:
选取模块,用于选取比特长度大于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1)
分解模块,用于将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数yi (1),其中,i=1,…,N,N为大于2的正整数;
N个同态加密模块,第i个所述同态加密模块用于对第i个所述第一随机非负整数xi (1)进行基于椭圆曲线的同态加密处理,得到第i个第一密文,并将第i个所第一述密文发送至第二参与节点,所述第二参与节点预先选取有比特长度大于所述预设长度阈值的第三随机非负整数x(2)和第四随机非负整数y(2),并将x(2)分解成N个比特长度不超过所述预设长度阈值的第三随机非负整数xi (2),将y(2)分解成N个比特长度不超过所述预设长度阈值的第四随机非负整数yi (2),以使所述第二参与节点在接收到第i个所述第一密文后,将第i个所述第四随机非负整数yi(2)与第i个所述第一密文进行同态数乘运算后再与预先选取的第i个第二随机数ri(2)相加,得到第i个第一随机化结果,并将第i个所述第一随机化结果返回至所述第一参与节点;
N个同态解密模块,第i个所述同态解密模块用于在接收到第i个所述第一随机化结果后,对第i个所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第一解密结果wi (1) = xi (1) yi (2) + ri (2)
N个计算模块,第i个所述计算模块用于根据以下公式计算第i个第一乘积分量zi (1):zi (1) =( xi (1) yi (1) + xi (1) yi (2) + ri (2) -ri (1)) mod pi,其中,ri (1)表示预先选取的第i个第一随机数,pi表示预先选取的第i个公共模数,且x(1)、y(1)、x(2)和y(2)均小于N个pi的乘积;
聚合模块,用于对N个所述第一乘积分量zi (1)进行聚合处理,得到第一乘积z(1)
三元组生成模块,用于生成第一三元组(x(1), y(1), z(1));
N个同态数乘模块,第i个所述同态数乘模块用于在接收到所述第二参与节点发送的第i个第二密文,且第i个所述第二密文是通过对第i个所述第三随机非负整数xi (2)进行基于椭圆曲线的同态加密处理得到时,将第i个所述第二随机非负整数yi (2)与第i个所述第二密文进行同态数乘运算;
N个随机化模块,第i个所述随机化模块用于将第i个所述同态数乘模块输出的结果与第i个所述第一随机数ri (1)相加,得到第i个第二随机化结果,并将第i个所述第二随机化结果返回至所述第二参与节点,以使所述第二参与节点对第i个所述第二随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第二解密结果wi (2) = xi (2) yi (1) + ri (1),并根据如下公式计算第i个第二乘积分量zi (2):zi (2) =( xi (2) yi (2) + xi (2) yi (1) + ri (1) -ri (2))mod pi,而后对N个所述第二乘积分量进行聚合处理,得到第二乘积z(2),并生成第二三元组(x(2), y(2), z(2))。
为了实现上述目的,本发明还提供一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方法的步骤。
通过采用上述技术方案,本发明具有如下有益效果:
本发明可以复用现有的椭圆曲线加密基础设施,减少改造和信任成本,支持任意比特长度的乘法三元组;可以接口式的方式接入到用户的安全多方计算体系内,与更底层和更上层的结构耦合度低,不影响用户系统底层模块和上层应用的技术方案实现;可以根据安全多方计算的客体数据规模来灵活选择乘法三元组的取值空间大小,避免产生过长比特的乘法三元组导致的资源浪费。
附图说明
图1为本发明实施例1的基于椭圆曲线的乘法三元组生成方法的流程图;
图2为本发明实施例2的基于椭圆曲线的乘法三元组生成方法的流程图;
图3为本发明实施例2中短比特三元组生成步骤的流程图;
图4为本发明实施例3的基于椭圆曲线的乘法三元组生成装置的结构框图;
图5为本发明实施例4的基于椭圆曲线的乘法三元组生成装置的结构框图;
图6为本发明实施例5的电子设备的硬件架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前 提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
实施例1
本实施例提供一种基于椭圆曲线的乘法三元组生成方法,如图1所示,该方法具体包括以下步骤:
S1011,参与节点P1选取第一随机数r(1)、以及比特长度小于等于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1)
S1012,参与节点P2选取第二随机数r(2)、以及比特长度小于等于所述预设长度阈值的第三随机非负整数x(2)和第四随机非负整数y(2)
例如,预设长度阈值可以设置为8,且选取x(1)、y(1)、x(2)、y(2)均小于公共模数p。在本实施例中,公共模数p为两个参与节点P1、P2共同选取的一个长度合适的素数。
S102,参与节点P1对所述第一随机非负整数x(1)进行基于椭圆曲线的同态加密处理,得到第一密文,并将所述第一密文发送至第二参与节点P2。
在本实施列中,对所述第一随机非负整数x(1)进行基于椭圆曲线的同态加密处理,得到第一密文的过程如下:
S1021,对所述第一随机非负整数x(1)进行编码,以将所述第一随机非负整数编码为椭圆曲线上的点。
S1022,利用基于椭圆曲线的厄格玛尔算法,对编码至所述椭圆曲线上的点进行加密,得到所述第一密文。
S103,参与节点P2在接收到所述第一密文后,将所述第四随机非负整数y(2)与所述第一密文进行同态数乘运算。
S104,参与节点P2将步骤S103得到的同态数乘运算结果与预先选取的第二随机数r(2)相加,得到第一随机化结果,并将所述第一随机化结果返回至参与节点P1。
S105,参与节点P1接收到所述第一随机化结果后,对所述第一随机化结果进行基于椭圆曲线的同态解密处理,基于同态加密同性,可以得到第一解密结果w(1) = x(1) y(2) +r(2)
S106,参与节点P1根据如下公式计算第一乘积z(1):z(1) =( x(1) y(1) + x(1) y(2) +r(2) -r(1)) mod p,并生成与参与节点P1对应的第一三元组(x(1), y(1), z(1)),其中,mod表示取模运算,两个参与节点通过对相同公共模数进行取模,使得两个参与节点的计算空间可以保持一致。
S107,参与节点P2对所述第三随机非负整数x(2)进行基于椭圆曲线的同态加密处理得到第二密文,并将所述第二密文发送至参与节点P1。
在本实施列中,对第三随机非负整数x(2)进行基于椭圆曲线的同态加密处理的过程参考步骤S1021-S1022。
S108,参与节点P1接收到参与节点P2发送的第二密文后,将所述第二随机非负整数y(1)与所述第二密文进行同态数乘运算。
S109,参与节点P1将步骤S108得到的同态数乘运算结果与第一随机数r(1)相加,得到第二随机化结果,并将所述第二随机化结果返回至参与节点P2。
S110,参与节点P2对所述第二随机化结果进行基于椭圆曲线的同态解密处理,得到第二解密结果w(2) = x(2) y(1) + r(1)
S111,参与节点P2根据如下公式计算第二乘积z(2):z(2) =( x(2) y(2) + x(2) y(1) +r(1) -r(2)) mod p,并生成与参与节点P2对应第二三元组(x(2), y(2), z(2))。
本实施例中的步骤S102-S111可以概括为短比特三元组生成步骤。
本实施例适用于三元组取值空间要求较小的应用场景,基于短比特的随机非负整数生成的三元组不会造成取值空间的浪费;同时,本实施例可以复用现有的椭圆曲线加密基础设施,减少改造和信任成本,可以接口式的方式接入到用户的安全多方计算体系内,与更底层和更上层的结构耦合度低,不影响用户系统底层模块和上层应用的技术方案实现。
实施例2
本实施例提供一种基于椭圆曲线的乘法三元组生成方法,如图2和3所示,该方法包括以下步骤:
S2011,参与节点P1选取比特长度大于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1),图2中选取的x(1)、y(1)的比特长度示出为256比特。
S2012,参与节点P2选取比特长度大于所述预设长度阈值的第三随机非负整数x(2)和第四随机非负整数y(2),图2中选取的x(2)、y(2)的比特长度示出为256比特。
例如,预设长度阈值可以设置为8,且选取的x(1)、y(1)、x(2)、y(2)均小于N个公共模数pi 乘积(i=1,…,N)。在本实施例中,公共模数pi为两个参与节点P1、P2共同选取一组的长度合适的素数。在本实施例中,N为大于2的正整数,N的具体取值根据x(1)、y(1)、x(2)、y(2)的比特长度而定。
S2021,参与节点P1将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数yi (1),并选取N个第二随机数ri (1)
S2022,参与节点P2将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数yi (1),并选取N个第一随机数ri (2)
在本实施例中,参与节点P1可以采用N维中国剩余定理(CRT)分解器,根据中国剩余定理,以公共模数pi为基底,将所述第一随机非负整数 分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数yi (1)
参与节点P2同样可以采用N维中国剩余定理(CRT)分解器,根据中国剩余定理,以公共模数pi为基底,将x(2)分解成N个比特长度不超过所述预设长度阈值的第三随机非负整数xi (2),将y(2)分解成N个比特长度不超过所述预设长度阈值的第四随机非负整数yi (2),并选取N个第二随机数ri (2)
例如,如图2所示,预设长度阈值可以设置为8,当x(1)、y(1)、x(2)、y(2)为256比特的随机非负整数时,将它们分别分解成32个8比特的随机非负整数。
而后,可以参考实施例1的短比特三元组生成步骤依次对第i(i=1,…,N)个短比特(图2中示出为8比特)随机非负整数xi (1)、yi (1)、xi (2)、yi (2) 进行处理,具体处理过程如图3所示,包括:
S203,参与节点P1对第i个所述第一随机非负整数xi (1)进行基于椭圆曲线的同态加密处理,得到第i个第一密文,并将第i个所第一述密文发送至参与节点p2。
S204,参与节点P2在接收到第i个所述第一密文后,将第i个所述第四随机非负整数yi (2) 与第i个所述第一密文进行同态数乘运算。
S205,参与节点P2将步骤S204得到的结果与预先选取的第i个第二随机数ri (2)相加,得到第i个第一随机化结果,并将第i个所述第一随机化结果返回至参与节点P1。
S206,参与节点P1在接收到第i个所述第一随机化结果后,对第i个所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第一解密结果wi (1) = xi (1) yi (2) + ri (2)
S207,参与节点P1根据如下公式计算第i个第一乘积分量zi (1):zi (1) =( xi (1) yi (1) + xi (1) yi (2) + ri (2) -ri (1)) mod pi ,其中,ri (1)表示预先选取的第i个第一随机数,pi表示预先选取的第i个公共模数。
S208,参与节点P2对第i个所述第三随机非负整数xi (2)进行基于椭圆曲线的同态加密处理,得到第i个第二密文。
S209,参与节点P1接收到参与节点P2发送的第i个第二密文后,将第i个所述第二随机非负整数yi (1)与第i个所述第二密文进行同态数乘运算。
S210,参与节点P1将步骤S210得到的结果与预先选取的第i个所述第一随机数ri (1)相加,得到第i个第二随机化结果,并将第i个所述第二随机化结果返回至参与节点P2。
S211,参与节点P2对第i个所述第二随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第二解密结果wi (2) = xi (2) yi (1) + ri (1)
S212,参与节点P2根据如下公式计算第i个第二乘积分量zi (2):zi (2) =(xi (2) yi (2) +xi (2) yi (1) + ri (1) -ri (2)) mod pi
S213,参与节点P1对N个所述第一乘积分量zi (1)进行聚合处理,得到第一乘积z(1),并生成与参与节点P1对应的第一三元组(x(1), y(1), z(1))。
在本实施例中,参与节点P1可以采用N维中国剩余定理(CRT)聚合器,以公共模数pi为基底,根据中国剩余定理将N个所述第一乘积分量zi (1) (i=1,…,N)聚合成第一乘积 。
S214,参与节点P2对N个第二乘积分量zi (2)进行聚合处理,得到第二乘积z(2),并生成第二三元组(x(2), y(2), z(2))。
在本实施例中,参与节点P2同样可以采用N维中国剩余定理(CRT)聚合器,以公共模数pi为基底,根据中国剩余定理将N个所述二乘积分量zi(2)(i=1,…,N)聚合成第二乘积z(2)
本实施例通过运用对随机非负整数的同态加密方案来构建随机非负整数的乘法三元组,并运用中国剩余定理来分解随机非负整数,将随机非负整数空间分解成多个较小的随机非负整数子空间,从而可以支持任意比特长度的乘法三元组,同时可以根据具体需要,灵活调节乘法三元组的数值范围,避免生成的乘法三元组浪费取值空间。此外,本实施例可以复用现有的椭圆曲线加密基础设施,减少改造和信任成本,可以接口式的方式接入到用户的安全多方计算体系内,与更底层和更上层的结构耦合度低,不影响用户系统底层模块和上层应用的技术方案实现。
在本实施例中,对于基于椭圆曲线同态加密方案的数乘运算的应用,仅使用了随机非负整数数乘作用于短随机非负整数空间,并且在每次使用时,密文的同态数乘运算仅使用一次,不会出现计算出来的新密文不可解密的情况,确保解密成功。
实施例3
本实施例提供一种基于椭圆曲线的乘法三元组生成装置,适用于第一参与节点,如图4所示,该装置包括:
选取模块11,用于选取比特长度小于等于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1)
同态加密模块12,用于对所述第一随机非负整数x(1)进行基于椭圆曲线的同态加密处理,得到第一密文,并将所述第一密文发送至第二参与节点,所述第二参与节点预先选取有比特长度小于等于所述预设长度阈值的第三随机非负整数x(2)和第四随机非负整数y(2),以使所述第二参与节点在接收到所述第一密文后,将所述第四随机非负整数y(2)与所述第一密文进行同态数乘运算后再与预先选取的第二随机数r(2)相加,得到第一随机化结果,并将所述第一随机化结果返回至所述第一参与节点;
同态解密模块13,用于在接收到所述第一随机化结果后,对所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第一解密结果w(1) = x(1) y(2) + r(2)
计算模块14,用于根据如下公式计算第一乘积z(1):z(1) =( x(1) y(1) + x(1) y(2) +r(2) -r(1)) mod p,其中,r(1)表示预先选取的第一随机数,p表示预先选取的公共模数,且x(1)、y(1)、x(2)、y(2)均小于p;
三元组生成模块15,用于生成第一三元组(x(1), y(1), z(1))
同态数乘模块16,用于在接收到所述第二参与节点发送的第二密文,且所述第二密文是通过对所述第三随机非负整数x(2)进行基于椭圆曲线的同态加密处理得到时,将所述第二随机非负整数y(1)与所述第二密文进行同态数乘运算;
随机化模块17,用于将所述第一同态数乘模块输出的结果与所述第一随机数r(1)相加,得到第二随机化结果,并将所述第二随机化结果返回至所述第二参与节点,以使所述第二参与节点对所述第二随机化结果进行基于椭圆曲线的同态解密处理,得到第二解密结果w(2) = x(2) y(1) + r(2),并根据如下公式计算第二乘积z(2):z(2) =( x(2) y(2) + x(2) y(2)+ r(1) -r(2)) mod p,并生成第二三元组(x(2), y(2), z(2))。
在本实施例中,所述同态加密模块12具体用于:
对所述第一随机非负整数x(1)进行编码,以将所述第一随机非负整数编码为椭圆曲线上的点;
利用基于椭圆曲线的厄格玛尔算法,对编码至所述椭圆曲线上的点进行加密,得到所述第一密文。
在本实施例中,所述同态解密模块13具体用于:
利用基于椭圆曲线的厄格玛尔算法,将所述第一随机化结果解密为所述椭圆曲线上的点;
对解密得到的所述椭圆曲线上的点进行译码,得到所述第一解密结果。
实施例4
本实施例提供一种基于椭圆曲线的乘法三元组生成装置,适用于第一参与节点,如图5所示,该装置包括:
选取模块21,用于选取比特长度大于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1)
分解模块22,用于将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数yi (1),其中,i=1,…,N,N为大于2的正整数;
N个同态加密模块23,第i个所述同态加密模块用于对第i个所述第一随机非负整数xi (1)进行基于椭圆曲线的同态加密处理,得到第i个第一密文,并将第i个所第一述密文发送至第二参与节点,所述第二参与节点预先选取有比特长度大于所述预设长度阈值的第三随机非负整数x(2)和第四随机非负整数y(2),并将x(2)分解成N个比特长度不超过所述预设长度阈值的第三随机非负整数xi(2),将y(2)分解成N个比特长度不超过所述预设长度阈值的第四随机非负整数yi (2),以使所述第二参与节点在接收到第i个所述第一密文后,将第i个所述第四随机非负整数yi (2)与第i个所述第一密文进行同态数乘运算后再与预先选取的第i个第二随机数ri (2)相加,得到第i个第一随机化结果,并将第i个所述第一随机化结果返回至所述第一参与节点;
N个同态解密模块24,第i个所述同态解密模块用于在接收到第i个所述第一随机化结果后,对第i个所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第一解密结果wi (1) = xi (1) yi (2) + ri (2)
N个计算模块25,第i个计算模块用于计算第i个第一乘积分量zi (1):zi (1) =( xi (1)yi (1) + xi (1) yi (2) + ri (2) -ri (1)) mod pi,其中,ri (1)表示预先选取的第i个第一随机数,pi表示预先选取的第i个公共模数,且x(1)、y(1)、x(2)和y(2)均小于N个pi的乘积;
聚合模块26,用于对N个所述第一乘积分量zi (1)进行聚合处理,得到第一乘积z(1)
三元组生成模块27,用于生成第一三元组(x(1), y(1), z(1));
N个同态数乘模块28,第i个所述同态数乘模块用于在接收到所述第二参与节点发送的第i个第二密文,且第i个所述第二密文是通过对第i个所述第三随机非负整数xi (2)进行基于椭圆曲线的同态加密处理得到时,将第i个所述第二随机非负整数yi (1)与第i个所述第二密文进行同态数乘运算;
N个随机化模块29,第i个所述随机化模块用于将第i个所述同态数乘模块输出的结果与第i个所述第一随机数ri (1)相加,得到第i个第二随机化结果,并将第i个所述第二随机化结果返回至所述第二参与节点,以使所述第二参与节点对第i个所述第二随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第二解密结果wi (2) = xi (2) yi (1) + ri (1),并根据如下公式计算第i个第二乘积分量zi (2):zi (2) =( xi (2) yi (2) + xi (2) yi (1) + ri (1) -ri (2))mod pi,而后对N个所述第二乘积分量zi (2)进行聚合处理,得到第二乘积z(2),并生成第二三元组(x(2), y(2), z(2))。
在本实施例中,所述分解模块根据中国剩余定理,将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数yi (1);所述聚合模块根据中国剩余定理,对N个所述第一乘积分量zi (1)进行聚合处理,得到第一乘积z(1)
实施例5
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例1或2提供的基于椭圆曲线的数乘三元组生成方法。
图6示出了本实施例的硬件结构示意图,如图6所示,电子设备9具体包括:
至少一个处理器91、至少一个存储器92以及用于连接不同系统组件(包括处理器91和存储器92)的总线93,其中:
总线93包括数据总线、地址总线和控制总线。
存储器92包括易失性存储器,例如随机存取存储器(RAM)921和/或高速缓存存储器922,还可以进一步包括只读存储器(ROM)923。
存储器92还包括具有一组(至少一个)程序器924的程序/实用工具925,这样的程序器924包括但不限于:操作系统、一个或者多个应用程序、其它程序器以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1或2所提供的基于椭圆曲线的数乘三元组生成方法。
电子设备9进一步可以与一个或多个外部设备94(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口95进行。并且,电子设备9还可以通过网络适配器96与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器96通过总线93与电子设备9的其它器通信。应当明白,尽管图中未示出,可以结合电子设备9使用其它硬件和/或软件器,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/器或子单元/器,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元/器的特征和功能可以在一个单元/器中具体化。反之,上文描述的一个单元/器的特征和功能可以进一步划分为由多个单元/器来具体化。
实施例6
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1或2所提供的基于椭圆曲线的数乘三元组生成方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1或2所述的基于椭圆曲线的数乘三元组生成方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (10)

1.一种基于椭圆曲线的乘法三元组生成方法,适用于第一参与节点,其特征在于,该方法包括:
选取比特长度小于等于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1)
对所述第一随机非负整数x(1)进行基于椭圆曲线的同态加密处理,得到第一密文,并将 所述第一密文发送至第二参与节点,所述第二参与节点预先选取有比特长度小于等于所述 预设长度阈值的第三随机非负整数x(2)和第四随机非负整数y(2),以使所述第二参与节点在 接收到所述第一密文后,将所述第四随机非负整数
Figure 654492DEST_PATH_IMAGE001
与所述第一密文进行同态数乘运算 后再与预先选取的第二随机数r(2)相加,得到第一随机化结果,并将所述第一随机化结果返 回至所述第一参与节点;
当接收到所述第一随机化结果后,对所述第一随机化结果进行基于椭圆曲线的同态解 密处理,得到第一解密结果w(1) = x(1) y(2) + r(2),并根据如下公式计算第一乘积z(1):z(1) =(x(1) y(1) + x(1) y(2) + r(2) -r(1)) mod p,并生成第一三元组(x(1), y(1), z(1)),其中,
Figure 40474DEST_PATH_IMAGE002
表示预先选取的第一随机数,p表示预先选取的公共模数,且x(1)、y(1)、x(2)、y(2)均小于p;
当接收到所述第二参与节点发送的第二密文,且所述第二密文是通过对所述第三随机 非负整数
Figure 662954DEST_PATH_IMAGE003
进行基于椭圆曲线的同态加密处理得到时,将所述第二随机非负整数
Figure 527004DEST_PATH_IMAGE004
与所 述第二密文进行同态数乘运算后再与所述第一随机数
Figure 934852DEST_PATH_IMAGE002
相加,得到第二随机化结果,并将 所述第二随机化结果返回至所述第二参与节点,以使所述第二参与节点对所述第二随机化 结果进行基于椭圆曲线的同态解密处理,得到第二解密结果w(2) = x(2) y(1) + r(1),并根据 如下公式计算第二乘积z(2):z(2) =(x(2) y(2) + x(2) y(1) + r(1) -r(2)) mod p,并生成第二 三元组(x(2), y(2), z(2))。
2.根据权利要求1所述的基于椭圆曲线的乘法三元组生成方法,其特征在于,所述对所 述第一随机非负整数
Figure 226156DEST_PATH_IMAGE005
进行基于椭圆曲线的同态加密处理,得到第一密文,包括:
对所述第一随机非负整数
Figure 837397DEST_PATH_IMAGE005
进行编码,以将所述第一随机非负整数编码为椭圆曲线上 的点;
利用基于椭圆曲线的厄格玛尔算法,对编码至所述椭圆曲线上的点进行加密,得到所述第一密文。
3.根据权利要求2所述的基于椭圆曲线的乘法三元组生成方法,其特征在于,所述对所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第一解密结果,包括:
利用基于椭圆曲线的厄格玛尔算法,将所述第一随机化结果解密为所述椭圆曲线上的点;
对解密得到的所述椭圆曲线上的点进行译码,得到所述第一解密结果。
4.一种基于椭圆曲线的乘法三元组生成方法,适用于第一参与节点,其特征在于,该方法包括:
选取比特长度大于预设长度阈值的第一随机非负整数
Figure 505139DEST_PATH_IMAGE005
和第二随机非负整数
Figure 767493DEST_PATH_IMAGE004
将所述第一随机非负整数
Figure 26436DEST_PATH_IMAGE005
分解成N个比特长度不超过所述预设长度阈值的第一随机 非负整数xi (1),将所述第二随机非负整数
Figure 249607DEST_PATH_IMAGE004
分解成N个比特长度不超过所述预设长度阈值 的第二随机非负整数yi (1),其中,i=1,…,N,N为大于2的正整数;
针对每个所述第一随机非负整数xi (1)和第二随机非负整数yi (1),分别执行以下步骤:
对第i个所述第一随机非负整数xi (1)进行基于椭圆曲线的同态加密处理,得到第i个第 一密文,并将第i个所第一述密文发送至第二参与节点,所述第二参与节点预先选取有比特 长度大于所述预设长度阈值的第三随机非负整数
Figure 826432DEST_PATH_IMAGE003
和第四随机非负整数
Figure 818659DEST_PATH_IMAGE001
,并将
Figure 576399DEST_PATH_IMAGE003
分解 成N个比特长度不超过所述预设长度阈值的第三随机非负整数
Figure 286866DEST_PATH_IMAGE006
,将
Figure 906198DEST_PATH_IMAGE001
分解成N个比特长 度不超过所述预设长度阈值的第四随机非负整数
Figure 815248DEST_PATH_IMAGE007
,以使所述第二参与节点在接收到第i 个所述第一密文后,将第i个所述第四随机非负整数
Figure 947152DEST_PATH_IMAGE007
与第i个所述第一密文进行同态数 乘运算后再与预先选取的第i个第二随机数
Figure 941653DEST_PATH_IMAGE008
相加,得到第i个第一随机化结果,并将第i 个所述第一随机化结果返回至所述第一参与节点;
当接收到第i个所述第一随机化结果后,对第i个所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第一解密结果 wi (1) = xi (1)yi (2) + ri (2),并根据如下公式计算第i个第一乘积分量zi (1):zi (1) =( xi (1) yi (1) + xi (1) yi (2) + ri (2) -ri (1)) mod pi,其中,ri (1)表示预先选取的第i个第一随机数,pi表示预先选取的第i个公共模数,且x(1)、y(1)、x(2)和y(2)均小于N个pi的乘积;
对N个所述第一乘积分量进行聚合处理,得到第一乘积z(1),并生成第一三元组(x(1), y(1), z(1));
当接收到所述第二参与节点发送的第i个第二密文,且第i个所述第二密文是通过对第 i个所述第三随机非负整数
Figure 66472DEST_PATH_IMAGE006
进行基于椭圆曲线的同态加密处理得到时,将第i个所述第 二随机非负整数
Figure 830029DEST_PATH_IMAGE009
与第i个所述第二密文进行同态数乘运算后再与第i个所述第一随机数
Figure 70517DEST_PATH_IMAGE010
)相加,得到第i个第二随机化结果,并将第i个所述第二随机化结果返回至所述第二参与 节点,以使所述第二参与节点对第i个所述第二随机化结果进行基于椭圆曲线的同态解密 处理,得到第i个第二解密结果wi (2) = xi (2) yi (1) + ri (1),并根据如下公式计算第i个第二 乘积分量zi (2):zi (2) =(xi (2) yi (2) + xi (2) yi (1) + ri (1) -ri (2)) mod pi,而后对N个所述第二 乘积分量进行聚合处理,得到第二乘积z(2),并生成第二三元组(x(2), y(2), z(2))。
5.根据权利要求4所述的基于椭圆曲线的乘法三元组生成方法,其特征在于,所述将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数yi (1),包括:
根据中国剩余定理,将所述第一随机非负整数x(1)分解成N个比特长度不超过所述预设长度阈值的第一随机非负整数xi (1),将所述第二随机非负整数y(1)分解成N个比特长度不超过所述预设长度阈值的第二随机非负整数 yi (1)
所述对N个所述第一乘积分量进行聚合处理,得到第一乘积 z(1),包括:
根据中国剩余定理,对N个所述第一乘积分量进行聚合处理,得到第一乘积
Figure 614631DEST_PATH_IMAGE011
6.一种基于椭圆曲线的乘法三元组生成装置,适用于第一参与节点,其特征在于,该装置包括:
选取模块,用于选取比特长度小于等于预设长度阈值的第一随机非负整数x(1)和第二随机非负整数y(1)
同态加密模块,用于对所述第一随机非负整数
Figure 965978DEST_PATH_IMAGE005
进行基于椭圆曲线的同态加密处理, 得到第一密文,并将所述第一密文发送至第二参与节点,所述第二参与节点预先选取有比 特长度小于等于所述预设长度阈值的第三随机非负整数
Figure 397091DEST_PATH_IMAGE003
和第四随机非负整数
Figure 808480DEST_PATH_IMAGE001
,以使 所述第二参与节点在接收到所述第一密文后,将所述第四随机非负整数
Figure 511994DEST_PATH_IMAGE001
与所述第一密 文进行同态数乘运算后再与预先选取的第二随机数r(2)相加,得到第一随机化结果,并将所 述第一随机化结果返回至所述第一参与节点;
同态解密模块,用于在接收到所述第一随机化结果后,对所述第一随机化结果进行基 于椭圆曲线的同态解密处理,得到第一解密结果
Figure 526087DEST_PATH_IMAGE012
计算模块,用于根据如下公式计算第一乘积
Figure 201919DEST_PATH_IMAGE011
Figure 161041DEST_PATH_IMAGE013
,其 中,
Figure 555113DEST_PATH_IMAGE002
表示预先选取的第一随机数,p表示预先选取的公共模数,且x(1)、y(1)、x(2)、y(2)均小于 p ;
三元组生成模块,用于生成第一三元组(x(1), y(1), z(1)),
同态数乘模块,用于在接收到所述第二参与节点发送的第二密文,且所述第二密文是 通过对所述第三随机非负整数
Figure 372896DEST_PATH_IMAGE003
进行基于椭圆曲线的同态加密处理得到时,将所述第二 随机非负整数
Figure 699972DEST_PATH_IMAGE004
与所述第二密文进行同态数乘运算;
随机化模块,用于将所述同态数乘模块输出的结果与所述第一随机数
Figure 453165DEST_PATH_IMAGE002
相加,得到第 二随机化结果,并将所述第二随机化结果返回至所述第二参与节点,以使所述第二参与节 点对所述第二随机化结果进行基于椭圆曲线的同态解密处理,得到第二解密结果w(2) = x(2) y(1) + r(1),并根据如下公式计算第二乘积z(2):z(2) =( x(2) y(2) + x(2) y(1) + r(1) -r(2)) mod p,并生成第二三元组(x(2), y(2), z(2))。
7.根据权利要求6所述的基于椭圆曲线的乘法三元组生成装置,其特征在于,所述同态加密模块具体用于:
对所述第一随机非负整数
Figure 209899DEST_PATH_IMAGE005
进行编码,以将所述第一随机非负整数编码为椭圆曲线上 的点;
利用基于椭圆曲线的厄格玛尔算法,对编码至所述椭圆曲线上的点进行加密,得到所述第一密文。
8.一种基于椭圆曲线的乘法三元组生成装置,适用于第一参与节点,其特征在于,该装置包括:
选取模块,用于选取比特长度大于预设长度阈值的第一随机非负整数
Figure 706740DEST_PATH_IMAGE005
和第二随机非 负整数
Figure 481798DEST_PATH_IMAGE004
分解模块,用于将所述第一随机非负整数
Figure 874733DEST_PATH_IMAGE005
分解成N个比特长度不超过所述预设长度 阈值的第一随机非负整数
Figure 617299DEST_PATH_IMAGE014
,将所述第二随机非负整数
Figure 652251DEST_PATH_IMAGE004
分解成N个比特长度不超过所 述预设长度阈值的第二随机非负整数
Figure 547394DEST_PATH_IMAGE015
,其中,i=1,…,N,N为大于2的正整数;
N个同态加密模块,第i个所述同态加密模块用于对第i个所述第一随机非负整数
Figure 376810DEST_PATH_IMAGE014
进 行基于椭圆曲线的同态加密处理,得到第i个第一密文,并将第i个所第一述密文发送至第 二参与节点,所述第二参与节点预先选取有比特长度大于所述预设长度阈值的第三随机非 负整数
Figure 108137DEST_PATH_IMAGE003
和第四随机非负整数
Figure 743518DEST_PATH_IMAGE001
,并将
Figure 102955DEST_PATH_IMAGE003
分解成N个比特长度不超过所述预设长度阈值 的第三随机非负整数
Figure 493485DEST_PATH_IMAGE006
,将
Figure 305583DEST_PATH_IMAGE001
分解成N个比特长度不超过所述预设长度阈值的第四随机 非负整数
Figure 584468DEST_PATH_IMAGE007
,以使所述第二参与节点在接收到第i个所述第一密文后,将第i个所述第四随 机非负整数
Figure 63991DEST_PATH_IMAGE007
与第i个所述第一密文进行同态数乘运算后再与预先选取的第i个第二随机 数
Figure 625422DEST_PATH_IMAGE008
相加,得到第i个第一随机化结果,并将第i个所述第一随机化结果返回至所述第一参 与节点;
N个同态解密模块,第i个所述同态解密模块用于在接收到第i个所述第一随机化结果后,对第i个所述第一随机化结果进行基于椭圆曲线的同态解密处理,得到第i个第一解密结果wi (1) = xi (1) yi (2) + ri (2)
N个计算模块,第i个所述计算模块用于根据以下公式计算第i个第一乘积分量zi (1):zi (1) =( xi (1) yi (1) + xi (1) yi (2) + ri (2) -ri (1)) mod pi,其中,ri (1)表示预先选取的第i个第一随机数,pi表示预先选取的第i个公共模数,且x(1)、y(1)、x(2)和y(2)均小于N个pi的乘积;
聚合模块,用于对N个所述第一乘积分量zi (1)进行聚合处理,得到第一乘积z(1)
三元组生成模块,用于生成第一三元组(x(1), y(1), z(1));
N个同态数乘模块,第i个所述同态数乘模块用于在接收到所述第二参与节点发送的第 i个第二密文,且第i个所述第二密文是通过对第i个所述第三随机非负整数
Figure 190396DEST_PATH_IMAGE006
进行基于椭 圆曲线的同态加密处理得到时,将第i个所述第二随机非负整数yi (1)与第i个所述第二密文 进行同态数乘运算;
N个随机化模块,第i个所述随机化模块用于将第i个所述同态数乘模块输出的结果与 第i个所述第一随机数
Figure 980628DEST_PATH_IMAGE010
)相加,得到第i个第二随机化结果,并将第i个所述第二随机化结 果返回至所述第二参与节点,以使所述第二参与节点对第i个所述第二随机化结果进行基 于椭圆曲线的同态解密处理,得到第i个第二解密结果wi (2) = xi (2) yi (1) + ri (1),并根据如 下公式计算第i个第二乘积分量zi (2)
Figure 314658DEST_PATH_IMAGE016
,而后对N个所述 第二乘积分量进行聚合处理,得到第二乘积
Figure 46990DEST_PATH_IMAGE017
,并生成第二三元组(x(2), y(2), z(2))。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述方法的步骤。
CN202110386261.1A 2021-04-12 2021-04-12 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质 Active CN112769542B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110386261.1A CN112769542B (zh) 2021-04-12 2021-04-12 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110386261.1A CN112769542B (zh) 2021-04-12 2021-04-12 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN112769542A CN112769542A (zh) 2021-05-07
CN112769542B true CN112769542B (zh) 2021-06-11

Family

ID=75691436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110386261.1A Active CN112769542B (zh) 2021-04-12 2021-04-12 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112769542B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157778B (zh) * 2021-06-09 2021-09-24 富算科技(上海)有限公司 分布式数据仓库的可代理查询方法、系统、设备及介质
CN113821824B (zh) * 2021-08-27 2024-05-24 交通银行股份有限公司 一种基于不经意线性评估ole的三元组生成方法及系统
CN114615282B (zh) * 2022-05-10 2022-08-23 富算科技(上海)有限公司 多方安全计算方法、电子设备及可读存储介质
CN116743349B (zh) * 2023-08-14 2023-10-13 数据空间研究院 一种Paillier密文求和方法、系统、装置和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107819581A (zh) * 2017-10-20 2018-03-20 武汉理工大学 包含秘密的数和椭圆曲线点的生成方法及系统
CN109768864A (zh) * 2019-01-14 2019-05-17 大连大学 基于ecc与同态加密的加密方法
CN110546667A (zh) * 2018-11-07 2019-12-06 阿里巴巴集团控股有限公司 使用同态加密的区块链数据保护
CN111133719A (zh) * 2017-09-29 2020-05-08 罗伯特·博世有限公司 用于利用spdz的更快速的安全多方内积计算的方法
US10878950B1 (en) * 2019-08-09 2020-12-29 HealthBlock, Inc. Verifying data accuracy in privacy-preserving computations
CN112202544A (zh) * 2020-10-12 2021-01-08 南京邮电大学 一种基于Paillier同态加密算法的智能电网数据安全聚合方法
CN112560075A (zh) * 2021-02-22 2021-03-26 西南石油大学 一种基于椭圆曲线的轻量级可搜索加密方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3389031B1 (en) * 2015-12-10 2021-08-04 Nec Corporation Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111133719A (zh) * 2017-09-29 2020-05-08 罗伯特·博世有限公司 用于利用spdz的更快速的安全多方内积计算的方法
CN107819581A (zh) * 2017-10-20 2018-03-20 武汉理工大学 包含秘密的数和椭圆曲线点的生成方法及系统
CN110546667A (zh) * 2018-11-07 2019-12-06 阿里巴巴集团控股有限公司 使用同态加密的区块链数据保护
CN109768864A (zh) * 2019-01-14 2019-05-17 大连大学 基于ecc与同态加密的加密方法
US10878950B1 (en) * 2019-08-09 2020-12-29 HealthBlock, Inc. Verifying data accuracy in privacy-preserving computations
CN112202544A (zh) * 2020-10-12 2021-01-08 南京邮电大学 一种基于Paillier同态加密算法的智能电网数据安全聚合方法
CN112560075A (zh) * 2021-02-22 2021-03-26 西南石油大学 一种基于椭圆曲线的轻量级可搜索加密方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Privacy-Preserving Weighted Federated Learning Within the Secret Sharing Framework;HUAFEI ZHU等;《IEEE Access》;20201111;全文 *
一种基于ECC的动态秘密共享方案;范畅等;《计算机仿真》;20121231;131-134页 *

Also Published As

Publication number Publication date
CN112769542A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
CN112769542B (zh) 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质
Li et al. Privacy-preserving machine learning with multiple data providers
Wang et al. Cryptanalysis of a symmetric fully homomorphic encryption scheme
CN111510281B (zh) 一种同态加密方法及装置
Almaiah et al. A new hybrid text encryption approach over mobile ad hoc network
Das et al. An efficient multi-use multi-secret sharing scheme based on hash function
US20210243005A1 (en) Fully homomorphic encryption method and device and computer readable storage medium
CN111404952B (zh) 变电站数据加密传输方法、装置、计算机设备和存储介质
CN108718231A (zh) 一种全同态加密方法、装置和计算机可读存储介质
JP4869824B2 (ja) 受信者装置及び送信者装置及び暗号通信システム及びプログラム
CN113407991B (zh) 一种基于可信第三方的隐私数据两方安全比较方法
US11599681B2 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
CN116170142B (zh) 分布式协同解密方法、设备和存储介质
CN117155551A (zh) 一种秘密信息的共享方法、系统、设备及存储介质
CN114221753B (zh) 密钥数据处理方法和电子设备
Yousefipoor et al. An efficient, secure and verifiable conjunctive keyword search scheme based on rank metric codes over encrypted outsourced cloud data
CN114465708B (zh) 隐私数据处理方法及装置、系统、电子设备、存储介质
Yao et al. Batch public auditing for distributed mobile cloud computing
Molla et al. A new approach to construct secret sharing schemes based on field extensions
CN115150055A (zh) 一种基于同态加密的隐私保护岭回归方法
Nikov et al. On unconditionally secure distributed oblivious transfer
Yassin et al. A novel image encryption scheme based on DCT transform and DNA sequence
Palamakumbura et al. Database query privacy using homomorphic encryptions
Trung et al. Design a cryptosystem using elliptic curves cryptography and Vigenère symmetry key
Huang et al. Secure word-level sorting based on fully homomorphic encryption

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