CN117254907A - 基于椭圆曲线公钥密码算法的通信方法、装置及电子设备 - Google Patents

基于椭圆曲线公钥密码算法的通信方法、装置及电子设备 Download PDF

Info

Publication number
CN117254907A
CN117254907A CN202311415579.3A CN202311415579A CN117254907A CN 117254907 A CN117254907 A CN 117254907A CN 202311415579 A CN202311415579 A CN 202311415579A CN 117254907 A CN117254907 A CN 117254907A
Authority
CN
China
Prior art keywords
service party
party
service
public key
target
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.)
Pending
Application number
CN202311415579.3A
Other languages
English (en)
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.)
Tianyi Electronic Commerce Co Ltd
Original Assignee
Tianyi Electronic Commerce 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 Tianyi Electronic Commerce Co Ltd filed Critical Tianyi Electronic Commerce Co Ltd
Priority to CN202311415579.3A priority Critical patent/CN117254907A/zh
Publication of CN117254907A publication Critical patent/CN117254907A/zh
Pending legal-status Critical Current

Links

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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

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

Abstract

本申请公开了一种基于椭圆曲线公钥密码算法的通信方法、装置及电子设备,该方法应用于信息安全领域,该方法包括:确定需要进行通信的N个业务方;生成N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;采用目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;在N个业务方中的业务方之间依据加密后的通信内容进行通信。通过本申请,解决了相关技术中多业务方进行通信时,由于基于椭圆曲线的密钥交换方法需要通信业务方双方进行密钥交换,导致通信安全性较低的问题。

Description

基于椭圆曲线公钥密码算法的通信方法、装置及电子设备
技术领域
本申请涉及信息安全领域,具体而言,涉及一种基于椭圆曲线公钥密码算法的通信方法、装置及电子设备。
背景技术
随着互联网的发展,出现了多种高效率的通信方法,但存在一些不法分子利用一些网络技术等手段窃取通信信息,以获取利益。为了在通信过程中保护通信双方乃至多方的通信安全,密钥协商机制应运而生。通信双方乃至多方可以利用数学上的难解问题和可以公开的参数进行协商生成共享密钥,对通信内容进行加密保护,从而确保通信信息的安全性。现有技术中可以采用GM标准的SM2密钥交换方法进行通信,但这种方法只适用于通信双方进行密钥交换,若需要进行多方通信,则需要多次发送密钥,使得密钥在传输过程中容易被泄露,导致通信安全性较低。
针对相关技术中多业务方进行通信时,由于基于椭圆曲线的密钥交换方法需要通信业务方双方进行密钥交换,导致通信安全性较低的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种基于椭圆曲线公钥密码算法的通信方法、装置及电子设备,以解决相关技术中多业务方进行通信时,由于基于椭圆曲线的密钥交换方法需要通信业务方双方进行密钥交换,导致通信安全性较低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种基于椭圆曲线公钥密码算法的通信方法,该方法包括:确定需要进行通信的N个业务方,其中,N是大于1的正整数;生成所述N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;采用所述目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;在所述N个业务方中的业务方之间依据所述加密后的通信内容进行通信。
进一步地,依据每个业务方对应的随机数生成每个业务方的临时公钥包括:确定用于加密的椭圆曲线,得到目标椭圆曲线;在所述目标椭圆曲线上确定基点以及所述基点的坐标值,得到第一坐标值;生成每个业务方对应的随机数,得到每个业务方对应的临时私钥;采用所述第一坐标值分别与每个业务方对应的临时私钥相乘,得到每个业务方的临时公钥。
进一步地,在依据每个业务方对应的随机数生成每个业务方的临时公钥之后,所述方法还包括:将每个业务方的临时公钥的横坐标代入所述目标椭圆曲线中,得到每个业务方对应的第一纵坐标;在每个业务方对应的第一纵坐标和每个业务方的临时公钥的纵坐标相等的情况下,对每个业务方的临时公钥进行有效性验证,得到验证结果;在所述验证结果指示每个业务方的临时公钥通过有效性验证的情况下,执行对每个业务方的临时公钥进行计算,得到所述目标密钥的步骤。
进一步地,对每个业务方的临时公钥进行计算,得到目标密钥包括:对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值;对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到所述目标业务方对应的第二数值,其中,所述目标业务方是指所述N个业务方中的业务方;对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与所述目标业务方对应的第二数值相乘,得到所述目标业务方对应的第二坐标值,其中,所述其它业务方是指所述N个业务方中除所述目标业务方之外的业务方;将所述第二坐标值的横坐标、所述第二坐标值的纵坐标、每个业务方的用户标识和预设密钥长度输入密钥派生函数中进行计算,得到所述目标密钥。
进一步地,对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值包括:采用每个业务方的临时公钥的横坐标对预设数值进行取模计算,得到每个业务方对应的第三数值;计算每个业务方对应的第三数值分别与所述预设数值的和,得到每个业务方对应的第一数值。
进一步地,对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到所述目标业务方对应的第二数值包括:采用所述目标业务方对应的第一数值与所述目标业务方对应的随机数相乘,得到第四数值;采用所述第四数值对所述基点的阶进行取模运算,得到第五数值;采用所述第五数值与所述目标业务方对应的第一私钥相加,得到所述目标业务方对应的第二数值,其中,所述第一私钥是生成的随机数,每个业务方对应的第一私钥是固定不变的。
进一步地,对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与所述目标业务方对应的第二数值相乘,得到所述目标业务方对应的第二坐标值包括:对每个其它业务方的临时公钥和每个其它业务方对应的第一数值进行乘法运算,得到每个其它业务方对应的第六数值;将每个其它业务方对应的第六数值与每个其它业务方对应的第一公钥相加,得到每个其它业务方对应的第七数值,其中,每个其它业务方对应的第一公钥是根据每个其它业务方对应的第一公钥生成的,每个业务方对应的第一公钥是固定不变的;对所述目标椭圆曲线的余因子、所述目标业务方对应的第二数值和每个其它业务方对应的第七数值进行乘法运算,得到所述目标业务方对应的第二坐标值。
进一步地,所述N个业务方中的业务方包括:第一业务方和第二业务方,在所述N个业务方中的业务方之间依据所述加密后的通信内容进行通信包括:通过所述第一业务方将所述加密后的通信内容发送至所述第二业务方;在所述第二业务方接收到所述加密后的通信内容的情况下,采用所述目标密钥对所述加密后的通信内容进行解密,得到解密后的通信内容;通过所述解密后的通信内容在所述第一业务方与所述第二业务方之间进行通信。
为了实现上述目的,根据本申请的另一方面,提供了一种基于椭圆曲线公钥密码算法的通信装置,该装置包括:确定单元,用于确定需要进行通信的N个业务方,其中,N是大于1的正整数;生成单元,用于生成所述N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;第一计算单元,用于采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;加密单元,用于采用所述目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;通信单元,用于在所述N个业务方中的业务方之间依据所述加密后的通信内容进行通信。
进一步地,所述生成单元包括:第一确定子单元,用于确定用于加密的椭圆曲线,得到目标椭圆曲线;第二确定子单元,用于在所述目标椭圆曲线上确定基点以及所述基点的坐标值,得到第一坐标值;生成子单元,用于生成每个业务方对应的随机数,得到每个业务方对应的临时私钥;计算子单元,用于采用所述第一坐标值分别与每个业务方对应的临时私钥相乘,得到每个业务方的临时公钥。
进一步地,所述装置还包括:第二计算单元,用于在依据每个业务方对应的随机数生成每个业务方的临时公钥之后,将每个业务方的临时公钥的横坐标代入所述目标椭圆曲线中,得到每个业务方对应的第一纵坐标;验证单元,用于在每个业务方对应的第一纵坐标和每个业务方的临时公钥的纵坐标相等的情况下,对每个业务方的临时公钥进行有效性验证,得到验证结果;执行单元,用于在所述验证结果指示每个业务方的临时公钥通过有效性验证的情况下,执行对每个业务方的临时公钥进行计算,得到所述目标密钥的步骤。
进一步地,所述第一计算单元包括:第三计算子单元,用于对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值;第四计算子单元,用于对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到所述目标业务方对应的第二数值,其中,所述目标业务方是指所述N个业务方中的业务方;第五计算子单元,用于对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与所述目标业务方对应的第二数值相乘,得到所述目标业务方对应的第二坐标值,其中,所述其它业务方是指所述N个业务方中除所述目标业务方之外的业务方;第六计算子单元,用于将所述第二坐标值的横坐标、所述第二坐标值的纵坐标、每个业务方的用户标识和预设密钥长度输入密钥派生函数中进行计算,得到所述目标密钥。
进一步地,所述第三计算子单元包括:第一计算模块,用于采用每个业务方的临时公钥的横坐标对预设数值进行取模计算,得到每个业务方对应的第三数值;第二计算模块,用于计算每个业务方对应的第三数值分别与所述预设数值的和,得到每个业务方对应的第一数值。
进一步地,所述第四计算子单元包括:第三计算模块,用于采用所述目标业务方对应的第一数值与所述目标业务方对应的随机数相乘,得到第四数值;第四计算模块,用于采用所述第四数值对所述基点的阶进行取模运算,得到第五数值;第五计算模块,用于采用所述第五数值与所述目标业务方对应的第一私钥相加,得到所述目标业务方对应的第二数值,其中,所述第一私钥是生成的随机数,每个业务方对应的第一私钥是固定不变的。
进一步地,所述第五计算子单元包括:第六计算模块,用于对每个其它业务方的临时公钥和每个其它业务方对应的第一数值进行乘法运算,得到每个其它业务方对应的第六数值;第七计算模块,用于将每个其它业务方对应的第六数值与每个其它业务方对应的第一公钥相加,得到每个其它业务方对应的第七数值,其中,每个其它业务方对应的第一公钥是根据每个其它业务方对应的第一公钥生成的,每个业务方对应的第一公钥是固定不变的;第八计算模块,用于对所述目标椭圆曲线的余因子、所述目标业务方对应的第二数值和每个其它业务方对应的第七数值进行乘法运算,得到所述目标业务方对应的第二坐标值。
进一步地,所述N个业务方中的业务方包括:第一业务方和第二业务方,所述通信单元包括:发送子单元,用于通过所述第一业务方将所述加密后的通信内容发送至所述第二业务方;解密子单元,用于在所述第二业务方接收到所述加密后的通信内容的情况下,采用所述目标密钥对所述加密后的通信内容进行解密,得到解密后的通信内容;通信子单元,用于通过所述解密后的通信内容在所述第一业务方与所述第二业务方之间进行通信。
为了实现上述目的,根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述基于椭圆曲线公钥密码算法的通信方法。
为了实现上述目的,根据本申请的一个方面,提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项所述基于椭圆曲线公钥密码算法的通信方法。
通过本申请,采用以下步骤:确定需要进行通信的N个业务方,其中,N是大于1的正整数;生成所述N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;采用所述目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;在所述N个业务方中的业务方之间依据所述加密后的通信内容进行通信,解决了相关技术中多业务方进行通信时,由于基于椭圆曲线的密钥交换方法需要通信业务方双方进行密钥交换,导致通信安全性较低的问题。通过对每个业务方的临时公钥进行计算,能够得到多个业务方之间共享的目标密钥,在多个业务方之间实现了端到端的共享密钥协商的效果,同时由于共享的目标密钥由多个业务方共同参与生成,且同时进行密钥协商,每个业务方都能拥有不同协商结果的相同协商密钥,从而能够满足在多种复杂场景下的通信加密,达到了提高多方通信的安全性的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法的流程图;
图2是根据本申请实施例一提供的可选的基于椭圆曲线公钥密码算法的通信方法的示意图;
图3是根据本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置的示意图;
图4是根据本申请实施例五提供的基于椭圆曲线公钥密码算法的通信电子设备的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息、接收或发送的用户信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据、接收或发送的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关区域的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
下面结合优选的实施步骤对本发明进行说明,图1是根据本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,确定需要进行通信的N个业务方,其中,N是大于1的正整数。
在本实施例一中,需要首先确定进行通信的N个业务方,通信的业务方的数量至少为两个。
步骤S102,生成N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥。
在本实施例一中,为了生成多个业务方之间共享的目标密钥,需要生成每个业务方的临时公钥。需要注意的是,每个业务方的临时公钥是需要在每次多个业务方进行通信之前进行生成和计算的。
步骤S103,采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥。
在本实施例一中,椭圆曲线公钥密码算法(Elliptic Curve Cryptography,ECC)也称为SM2加密算法,是一种基于椭圆曲线数学问题的公钥密码算法,它利用椭圆曲线上的点运算和离散对数难题来确保安全性。通过对每个业务方的临时公钥进行计算,即可得到多个业务方之间共享的目标密钥。
步骤S104,采用目标密钥对待发送的通信内容进行加密,得到加密后的通信内容。
在本实施例一中计算出目标密钥后,即可采用目标密钥对待发送的通信内容进行加密,得到加密后的密文,以保证通信内容不被他人窃取,提高多方通信的安全性。
步骤S105,在N个业务方中的业务方之间依据加密后的通信内容进行通信。
在本实施例一中,可以通过在多个业务方之间传输目标密钥加密后的通信内容完成多个业务方之间的通信。任意一个业务方在接收到目标密钥之后,即可根据目标密钥对加密后的通信内容进行解密,从而获取其他业务方发送的通信内容。
综上所述,本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法,通过确定需要进行通信的N个业务方,其中,N是大于1的正整数;生成N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;采用目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;在N个业务方中的业务方之间依据加密后的通信内容进行通信,解决了相关技术中多业务方进行通信时,由于基于椭圆曲线的密钥交换方法需要通信业务方双方进行密钥交换,导致通信安全性较低的问题。通过对每个业务方的临时公钥进行计算,能够得到多个业务方之间共享的目标密钥,在多个业务方之间实现了端到端的共享密钥协商的效果,同时由于共享的目标密钥由多个业务方共同参与生成,且同时进行密钥协商,每个业务方都能拥有不同协商结果的相同协商密钥,从而能够满足在多种复杂场景下的通信加密,达到了提高多方通信的安全性的效果。
可选地,在本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法中,依据每个业务方对应的随机数生成每个业务方的临时公钥包括:确定用于加密的椭圆曲线,得到目标椭圆曲线;在目标椭圆曲线上确定基点以及基点的坐标值,得到第一坐标值;生成每个业务方对应的随机数,得到每个业务方对应的临时私钥;采用第一坐标值分别与每个业务方对应的临时私钥相乘,得到每个业务方的临时公钥。
在本实施例一中,为了生成多个业务方共享的目标密钥,需要先获取每个业务方的临时公钥。
具体地,使用随机数发生器生成每个业务方对应的随机数k(即上述的每个业务方对应的临时私钥),然后使用目标椭圆曲线中基点G的坐标值分别与每个业务方对应的随机数k相乘,得到每个业务方的临时公钥,临时公钥的计算公式如公式一所示,
R(n)=r(n)*G=(x(n),y(n)),(一)
其中,n表示不同的业务方,n是大于等于1且小于等于N的整数,G表示基点,r(n)表示每个业务方对应的临时私钥,R(n)=(x(n),y(n))表示每个业务方的临时公钥。此外,可以将临时公钥中的横坐标和纵坐标转化为整数,以便后续进行运算。每个业务方对应的随机数k是每个业务方对应的临时私钥。
通过采用每个业务方对应的随机数与基点的坐标值相乘,能够生成每个业务方对应的不同的临时公钥,从而能够根据每个业务方的临时公钥生成N个业务方共享的目标密钥。
可选地,在本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法中,在依据每个业务方对应的随机数生成每个业务方的临时公钥之后,上述的方法还包括:将每个业务方的临时公钥的横坐标代入目标椭圆曲线中,得到每个业务方对应的第一纵坐标;在每个业务方对应的第一纵坐标和每个业务方的临时公钥的纵坐标相等的情况下,对每个业务方的临时公钥进行有效性验证,得到验证结果;在验证结果指示每个业务方的临时公钥通过有效性验证的情况下,执行对每个业务方的临时公钥进行计算,得到目标密钥的步骤。
在本实施例一中生成目标密钥之前,需要对每个业务方接收到的其他业务方的临时公钥进行验证,以保证生成的目标密钥的准确性。
具体地,可以将临时公钥中的横坐标代入目标椭圆曲线的表达式中,若代入计算得到的点是目标椭圆曲线的无穷点,则确定该临时公钥无效;若代入计算得到的点不是目标椭圆曲线的无穷点,则确定该临时公钥通过有效性验证。在每个业务方的临时公钥通过有效性验证的情况下,即可对每个业务方的临时公钥进行计算。验证过程中每个业务方仅需要验证N个业务方中除自身之外的业务方的临时公钥即可。
在一可选的实施例中,获取每个业务方的临时公钥的横坐标,将每个横坐标代入目标椭圆曲线的表达式中,得到每个横坐标对应的第一纵坐标;然后,判断每个第一纵坐标和对应业务方的临时公钥中的纵坐标是否相等,若计算出的第一纵坐标与临时公钥中的纵坐标相等的情况下,确定该业务方的临时公钥通过有效性验证。
通过在生成目标密钥之前对每个业务方接收到的N-1个临时公钥进行验证,保证了临时公钥的正确性,从而保证了计算得到目标密钥的正确性,达到了提高通信安全性的效果。
可选地,在本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法中,对每个业务方的临时公钥进行计算,得到目标密钥包括:对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值;对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到目标业务方对应的第二数值,其中,目标业务方是指N个业务方中的业务方;对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与目标业务方对应的第二数值相乘,得到目标业务方对应的第二坐标值,其中,其它业务方是指N个业务方中除目标业务方之外的业务方;将第二坐标值的横坐标、第二坐标值的纵坐标、每个业务方的用户标识和预设密钥长度输入密钥派生函数中进行计算,得到目标密钥。
在本实施例一中,为了计算目标密钥,需要对每个业务方的临时公钥进行计算,计算目标密钥的公式如公式二所示,
K(n)=KDF(x(U)||y(U)||Z(n)||Z(n-1)||...||Z(1),klen), (二)
其中,KDF为密钥派生函数,x()表示目标业务方对应的第二坐标值的横坐标,y()表示目标业务方对应的第二坐标值的纵坐标,Z(n)表示业务方n的用户标识,Z(n-1)表示业务方n-1的用户标识,klen为目标密钥的预设长度。
具体地,对每个业务方的临时公钥的横坐标x(n)进行取模运算,得到每个业务方对应的第一数值然后,对目标业务方对应的第一数值/>进行乘法运算、取模运算和加法运算,得到目标业务方对应的第二数值t(n);其次,对每个其它业务方的临时公钥(例如,业务方n-1对应的临时公钥R(n-1))和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将其他业务方的临时公钥的计算结果与目标业务方对应的第二数值t(n)相乘,得到目标业务方对应的第二坐标值(x(U),y(U));最后,将第二坐标值的横坐标、第二坐标值的纵坐标、每个业务方的用户标识和预设密钥长度输入密钥派生函数中进行计算,得到多个业务方之间共享的目标密钥。
通过在接收每个业务方的临时公钥之后,根据业务方自身的临时公钥和其他业务方的临时公钥计算出多个业务方之间共享的目标密钥,从而能够根据目标密钥在多个业务方之间进行通信,达到了提高多个业务方通信安全性的效果。
可选地,在本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法中,对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值包括:采用每个业务方的临时公钥的横坐标对预设数值进行取模计算,得到每个业务方对应的第三数值;计算每个业务方对应的第三数值分别与预设数值的和,得到每个业务方对应的第一数值。
在本实施例一中,计算每个业务方对应的第一数值的公式可以如公式三所示,
其中,表示业务方n对应的第一数值,x(n)表示业务方n的临时公钥的横坐标,mod表示取模运算,2w是指上述的预设数值,w的计算公式如公式四所示,
w=[[log2(m)]/2], (四)
其中,m是指椭圆曲线上的基点G的阶。
具体地,采用每个业务方的临时公钥的横坐标对预设数值进行取模计算,得到每个业务方对应的第三数值(即上述的x(n)mod2w);然后将每个业务方对应的第三数值加上预设数值,得到每个业务方对应的第一数值。
通过计算每个业务方对应的第一数值,能够根据每个业务方对应的第一数值计算每个业务方共享的目标密钥。
可选地,在本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法中,对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到目标业务方对应的第二数值包括:采用目标业务方对应的第一数值与目标业务方对应的随机数相乘,得到第四数值;采用第四数值对基点的阶进行取模运算,得到第五数值;采用第五数值与目标业务方对应的第一私钥相加,得到目标业务方对应的第二数值,其中,第一私钥是生成的随机数,每个业务方对应的第一私钥是固定不变的。
在本实施例一中,计算每个业务方对应的第一数值的公式可以如公式五所示,
其中,t(n)表示业务方n(即上述的目标业务方)对应的第二数值,d(n)表示业务方n的私钥,表示业务方n对应的第一数值,r(n)表示业务方n对应的随机数,m是指椭圆曲线上的基点G的阶,mod表示取模运算。
具体地,采用目标业务方的临时公钥进行计算,对目标业务方对应的第一数值和目标业务方对应的随机数r(n)进行乘法运算,得到第四数值;采用第四数值对基点G的阶m进行取模运算,得到第五数值;采用第五数值与目标业务方对应的第一私钥相加,得到目标业务方对应的第二数值。其中,每个业务方对应的第一私钥是通过随机数生成器生成的随机数。每个业务方对应的第一私钥不同于每个业务方对应的临时私钥,每个业务方对应的第一私钥是该业务方固定不变的私钥,每个业务方对应的临时私钥是在每次通信时需要重新计算的私钥。
通过计算目标业务方对应的第二数值,能够根据目标业务方对应的第二数值计算每个业务方共享的目标密钥。
可选地,在本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法中,对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与目标业务方对应的第二数值相乘,得到目标业务方对应的第二坐标值包括:对每个其它业务方的临时公钥和每个其它业务方对应的第一数值进行乘法运算,得到每个其它业务方对应的第六数值;将每个其它业务方对应的第六数值与每个其它业务方对应的第一公钥相加,得到每个其它业务方对应的第七数值,其中,每个其它业务方对应的第一公钥是根据每个其它业务方对应的第一公钥生成的,每个业务方对应的第一公钥是固定不变的;对目标椭圆曲线的余因子、目标业务方对应的第二数值和每个其它业务方对应的第七数值进行乘法运算,得到目标业务方对应的第二坐标值。
在本实施例一中,计算目标业务方对应的第二坐标值的公式可以如公式六所示,
其中,U(x(U),y(U))表示目标业务方对应的第二坐标值,h表示目标椭圆曲线的余因子,t(n)表示目标业务方对应的第二数值,P(n-1)表示业务方n-1对应的第一公钥,表示业务方n-1对应的第一数值,R(n-1)表示业务方n-1对应的临时公钥,P(n-2)表示业务方n-2对应的第一公钥,/>表示业务方n-1对应的第一数值,R(n-2)表示业务方n-2对应的第一公钥,以此类推。
具体地,对每个其它业务方对应的临时公钥(例如,业务方n-1对应的临时公钥R(n-1))和每个其它业务方对应的第一数值(例如,业务方n-1对应的第一数值进行乘法运算,得到每个其它业务方对应的第六数值;将每个其它业务方对应的第六数值与每个其它业务方对应的第一公钥(例如,业务方n-1对应的第一公钥(n-1)相加,得到每个其它业务方对应的第七数值;最后,将目标椭圆曲线的余因子h、目标业务方对应的第二数值t(n)和每个其它业务方对应的第七数值进行乘法运算,得到目标业务方对应的第二坐标值(x(U),y(U))。其中,h为目标椭圆曲线的余因子,余因子h的值是目标椭圆曲线上点的个数与基点G的阶m的比值。另外,每个业务方对应的第一公钥是根据每个业务方对应的第一公钥生成的,每个业务方对应的第一公钥是固定不变的。
通过计算目标业务方对应的第二坐标值,能够根据目标业务方对应的第二坐标值计算每个业务方共享的目标密钥。
可选地,在本申请实施例一提供的基于椭圆曲线公钥密码算法的通信方法中,N个业务方中的业务方包括:第一业务方和第二业务方,在N个业务方中的业务方之间依据加密后的通信内容进行通信包括:通过第一业务方将加密后的通信内容发送至第二业务方;在第二业务方接收到加密后的通信内容的情况下,采用目标密钥对加密后的通信内容进行解密,得到解密后的通信内容;通过解密后的通信内容在第一业务方与第二业务方之间进行通信。
在本实施例一中,为了通过目标密钥在多个业务方之间进行加密通信,可以由通信内容发送方(即上述的第一业务方)将加密后的密文发送至通信内容接收方(即上述的第二业务方),第二业务方接收到加密后的密文后,即可采用第二业务方计算出的目标密钥对加密后的密文进行解密,得到第一业务方发送的通信内容。
通过每个业务方计算多个业务方之间共享的目标密钥,能够实现多个业务方之间的加密通信,同时避免了需要在多个业务方之间发送接收目标密钥,导致通信安全性降低的问题,提高了多方通信的安全性。
可选地,在本实施例一中,本方案通过基于椭圆曲线公钥密码算法进行多方通信的流程可以如图2所示,首先,每个业务方生成自身对应的临时公钥,并将自身对应的临时公钥发送至每个其他业务方,如图2中目标业务方生成目标业务方对应的临时公钥后,将目标业务方对应的临时公钥发送至每个其他业务方;然后,根据所有业务方对应的临时公钥计算N个业务方之间共享的目标密钥。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例二
本申请实施例二还提供了一种基于椭圆曲线公钥密码算法的通信装置,需要说明的是,本申请实施例二的基于椭圆曲线公钥密码算法的通信装置可以用于执行本申请实施例一所提供的用于基于椭圆曲线公钥密码算法的通信方法。以下对本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置进行介绍。
图3是根据本申请实施例二的基于椭圆曲线公钥密码算法的通信装置的示意图。如图3所示,该装置包括:确定单元301、生成单元302、第一计算单元303、加密单元304和通信单元305。
具体地,确定单元301,用于确定需要进行通信的N个业务方,其中,N是大于1的正整数。
生成单元302,用于生成N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥。
第一计算单元303,用于采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥。
加密单元304,用于采用目标密钥对待发送的通信内容进行加密,得到加密后的通信内容。
通信单元305,用于在N个业务方中的业务方之间依据加密后的通信内容进行通信.
本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置,通过确定单元301确定需要进行通信的N个业务方,其中,N是大于1的正整数;生成单元302生成N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;第一计算单元303采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;加密单元304采用目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;通信单元305在N个业务方中的业务方之间依据加密后的通信内容进行通信,解决了相关技术中多业务方进行通信时,由于基于椭圆曲线的密钥交换方法需要通信业务方双方进行密钥交换,导致通信安全性较低的问题。通过对每个业务方的临时公钥进行计算,能够得到多个业务方之间共享的目标密钥,在多个业务方之间实现了端到端的共享密钥协商的效果,同时由于共享的目标密钥由多个业务方共同参与生成,且同时进行密钥协商,每个业务方都能拥有不同协商结果的相同协商密钥,从而能够满足在多种复杂场景下的通信加密,达到了提高多方通信的安全性的效果。
可选地,在本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置中,上述的生成单元302包括:第一确定子单元,用于确定用于加密的椭圆曲线,得到目标椭圆曲线;第二确定子单元,用于在目标椭圆曲线上确定基点以及基点的坐标值,得到第一坐标值;生成子单元,用于生成每个业务方对应的随机数,得到每个业务方对应的临时私钥;计算子单元,用于采用第一坐标值分别与每个业务方对应的临时私钥相乘,得到每个业务方的临时公钥。
可选地,在本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置中,上述的装置还包括:第二计算单元,用于在依据每个业务方对应的随机数生成每个业务方的临时公钥之后,将每个业务方的临时公钥的横坐标代入目标椭圆曲线中,得到每个业务方对应的第一纵坐标;验证单元,用于在每个业务方对应的第一纵坐标和每个业务方的临时公钥的纵坐标相等的情况下,对每个业务方的临时公钥进行有效性验证,得到验证结果;执行单元,用于在验证结果指示每个业务方的临时公钥通过有效性验证的情况下,执行对每个业务方的临时公钥进行计算,得到目标密钥的步骤。
可选地,在本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置中,上述的第一计算单元303包括:第三计算子单元,用于对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值;第四计算子单元,用于对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到目标业务方对应的第二数值,其中,目标业务方是指N个业务方中的业务方;第五计算子单元,用于对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与目标业务方对应的第二数值相乘,得到目标业务方对应的第二坐标值,其中,其它业务方是指N个业务方中除目标业务方之外的业务方;第六计算子单元,用于将第二坐标值的横坐标、第二坐标值的纵坐标、每个业务方的用户标识和预设密钥长度输入密钥派生函数中进行计算,得到目标密钥。
可选地,在本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置中,上述的第三计算子单元包括:第一计算模块,用于采用每个业务方的临时公钥的横坐标对预设数值进行取模计算,得到每个业务方对应的第三数值;第二计算模块,用于计算每个业务方对应的第三数值分别与预设数值的和,得到每个业务方对应的第一数值。
可选地,在本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置中,上述的第四计算子单元包括:第三计算模块,用于采用目标业务方对应的第一数值与目标业务方对应的随机数相乘,得到第四数值;第四计算模块,用于采用第四数值对基点的阶进行取模运算,得到第五数值;第五计算模块,用于采用第五数值与目标业务方对应的第一私钥相加,得到目标业务方对应的第二数值,其中,第一私钥是生成的随机数,每个业务方对应的第一私钥是固定不变的。
可选地,在本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置中,上述的第五计算子单元包括:第六计算模块,用于对每个其它业务方的临时公钥和每个其它业务方对应的第一数值进行乘法运算,得到每个其它业务方对应的第六数值;第七计算模块,用于将每个其它业务方对应的第六数值与每个其它业务方对应的第一公钥相加,得到每个其它业务方对应的第七数值,其中,每个其它业务方对应的第一公钥是根据每个其它业务方对应的第一公钥生成的,每个业务方对应的第一公钥是固定不变的;第八计算模块,用于对目标椭圆曲线的余因子、目标业务方对应的第二数值和每个其它业务方对应的第七数值进行乘法运算,得到目标业务方对应的第二坐标值。
可选地,在本申请实施例二提供的基于椭圆曲线公钥密码算法的通信装置中,上述的N个业务方中的业务方包括:第一业务方和第二业务方,上述的通信单元305包括:发送子单元,用于通过第一业务方将加密后的通信内容发送至第二业务方;解密子单元,用于在第二业务方接收到加密后的通信内容的情况下,采用目标密钥对加密后的通信内容进行解密,得到解密后的通信内容;通信子单元,用于通过解密后的通信内容在第一业务方与第二业务方之间进行通信。
所述基于椭圆曲线公钥密码算法的通信装置包括处理器和存储器,上述的确定单元301、生成单元302、第一计算单元303、加密单元304和通信单元305等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高多方通信的安全性。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例三提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现基于椭圆曲线公钥密码算法的通信方法。
本发明实施例四提供了一种处理器,处理器用于运行程序,其中,程序运行时执行基于椭圆曲线公钥密码算法的通信方法。
如图4所示,本发明实施例五提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:确定需要进行通信的N个业务方,其中,N是大于1的正整数;生成N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;采用目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;在N个业务方中的业务方之间依据加密后的通信内容进行通信。
处理器执行程序时还实现以下步骤:依据每个业务方对应的随机数生成每个业务方的临时公钥包括:确定用于加密的椭圆曲线,得到目标椭圆曲线;在目标椭圆曲线上确定基点以及基点的坐标值,得到第一坐标值;生成每个业务方对应的随机数,得到每个业务方对应的临时私钥;采用第一坐标值分别与每个业务方对应的临时私钥相乘,得到每个业务方的临时公钥。
处理器执行程序时还实现以下步骤:在依据每个业务方对应的随机数生成每个业务方的临时公钥之后,上述的方法还包括:将每个业务方的临时公钥的横坐标代入目标椭圆曲线中,得到每个业务方对应的第一纵坐标;在每个业务方对应的第一纵坐标和每个业务方的临时公钥的纵坐标相等的情况下,对每个业务方的临时公钥进行有效性验证,得到验证结果;在验证结果指示每个业务方的临时公钥通过有效性验证的情况下,执行对每个业务方的临时公钥进行计算,得到目标密钥的步骤。
处理器执行程序时还实现以下步骤:对每个业务方的临时公钥进行计算,得到目标密钥包括:对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值;对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到目标业务方对应的第二数值,其中,目标业务方是指N个业务方中的业务方;对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与目标业务方对应的第二数值相乘,得到目标业务方对应的第二坐标值,其中,其它业务方是指N个业务方中除目标业务方之外的业务方;将第二坐标值的横坐标、第二坐标值的纵坐标、每个业务方的用户标识和预设密钥长度输入密钥派生函数中进行计算,得到目标密钥。
处理器执行程序时还实现以下步骤:对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值包括:采用每个业务方的临时公钥的横坐标对预设数值进行取模计算,得到每个业务方对应的第三数值;计算每个业务方对应的第三数值分别与预设数值的和,得到每个业务方对应的第一数值。
处理器执行程序时还实现以下步骤:对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到目标业务方对应的第二数值包括:采用目标业务方对应的第一数值与目标业务方对应的随机数相乘,得到第四数值;采用第四数值对基点的阶进行取模运算,得到第五数值;采用第五数值与目标业务方对应的第一私钥相加,得到目标业务方对应的第二数值,其中,第一私钥是生成的随机数,每个业务方对应的第一私钥是固定不变的。
处理器执行程序时还实现以下步骤:对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与目标业务方对应的第二数值相乘,得到目标业务方对应的第二坐标值包括:对每个其它业务方的临时公钥和每个其它业务方对应的第一数值进行乘法运算,得到每个其它业务方对应的第六数值;将每个其它业务方对应的第六数值与每个其它业务方对应的第一公钥相加,得到每个其它业务方对应的第七数值,其中,每个其它业务方对应的第一公钥是根据每个其它业务方对应的第一公钥生成的,每个业务方对应的第一公钥是固定不变的;对目标椭圆曲线的余因子、目标业务方对应的第二数值和每个其它业务方对应的第七数值进行乘法运算,得到目标业务方对应的第二坐标值。
处理器执行程序时还实现以下步骤:N个业务方中的业务方包括:第一业务方和第二业务方,在N个业务方中的业务方之间依据加密后的通信内容进行通信包括:通过第一业务方将加密后的通信内容发送至第二业务方;在第二业务方接收到加密后的通信内容的情况下,采用目标密钥对加密后的通信内容进行解密,得到解密后的通信内容;通过解密后的通信内容在第一业务方与第二业务方之间进行通信。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:确定需要进行通信的N个业务方,其中,N是大于1的正整数;生成N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;采用目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;在N个业务方中的业务方之间依据加密后的通信内容进行通信。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据每个业务方对应的随机数生成每个业务方的临时公钥包括:确定用于加密的椭圆曲线,得到目标椭圆曲线;在目标椭圆曲线上确定基点以及基点的坐标值,得到第一坐标值;生成每个业务方对应的随机数,得到每个业务方对应的临时私钥;采用第一坐标值分别与每个业务方对应的临时私钥相乘,得到每个业务方的临时公钥。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在依据每个业务方对应的随机数生成每个业务方的临时公钥之后,上述的方法还包括:将每个业务方的临时公钥的横坐标代入目标椭圆曲线中,得到每个业务方对应的第一纵坐标;在每个业务方对应的第一纵坐标和每个业务方的临时公钥的纵坐标相等的情况下,对每个业务方的临时公钥进行有效性验证,得到验证结果;在验证结果指示每个业务方的临时公钥通过有效性验证的情况下,执行对每个业务方的临时公钥进行计算,得到目标密钥的步骤。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:对每个业务方的临时公钥进行计算,得到目标密钥包括:对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值;对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到目标业务方对应的第二数值,其中,目标业务方是指N个业务方中的业务方;对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与目标业务方对应的第二数值相乘,得到目标业务方对应的第二坐标值,其中,其它业务方是指N个业务方中除目标业务方之外的业务方;将第二坐标值的横坐标、第二坐标值的纵坐标、每个业务方的用户标识和预设密钥长度输入密钥派生函数中进行计算,得到目标密钥。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值包括:采用每个业务方的临时公钥的横坐标对预设数值进行取模计算,得到每个业务方对应的第三数值;计算每个业务方对应的第三数值分别与预设数值的和,得到每个业务方对应的第一数值。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到目标业务方对应的第二数值包括:采用目标业务方对应的第一数值与目标业务方对应的随机数相乘,得到第四数值;采用第四数值对基点的阶进行取模运算,得到第五数值;采用第五数值与目标业务方对应的第一私钥相加,得到目标业务方对应的第二数值,其中,第一私钥是生成的随机数,每个业务方对应的第一私钥是固定不变的。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与目标业务方对应的第二数值相乘,得到目标业务方对应的第二坐标值包括:对每个其它业务方的临时公钥和每个其它业务方对应的第一数值进行乘法运算,得到每个其它业务方对应的第六数值;将每个其它业务方对应的第六数值与每个其它业务方对应的第一公钥相加,得到每个其它业务方对应的第七数值,其中,每个其它业务方对应的第一公钥是根据每个其它业务方对应的第一公钥生成的,每个业务方对应的第一公钥是固定不变的;对目标椭圆曲线的余因子、目标业务方对应的第二数值和每个其它业务方对应的第七数值进行乘法运算,得到目标业务方对应的第二坐标值。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:N个业务方中的业务方包括:第一业务方和第二业务方,在N个业务方中的业务方之间依据加密后的通信内容进行通信包括:通过第一业务方将加密后的通信内容发送至第二业务方;在第二业务方接收到加密后的通信内容的情况下,采用目标密钥对加密后的通信内容进行解密,得到解密后的通信内容;通过解密后的通信内容在第一业务方与第二业务方之间进行通信。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种基于椭圆曲线公钥密码算法的通信方法,其特征在于,包括:
确定需要进行通信的N个业务方,其中,N是大于1的正整数;
生成所述N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;
采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;
采用所述目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;在所述N个业务方中的业务方之间依据所述加密后的通信内容进行通信。
2.根据权利要求1所述的方法,其特征在于,依据每个业务方对应的随机数生成每个业务方的临时公钥包括:
确定用于加密的椭圆曲线,得到目标椭圆曲线;
在所述目标椭圆曲线上确定基点以及所述基点的坐标值,得到第一坐标值;
生成每个业务方对应的随机数,得到每个业务方对应的临时私钥;
采用所述第一坐标值分别与每个业务方对应的临时私钥相乘,得到每个业务方的临时公钥。
3.根据权利要求2所述的方法,其特征在于,在依据每个业务方对应的随机数生成每个业务方的临时公钥之后,所述方法还包括:
将每个业务方的临时公钥的横坐标代入所述目标椭圆曲线中,得到每个业务方对应的第一纵坐标;
在每个业务方对应的第一纵坐标和每个业务方的临时公钥的纵坐标相等的情况下,对每个业务方的临时公钥进行有效性验证,得到验证结果;
在所述验证结果指示每个业务方的临时公钥通过有效性验证的情况下,执行对每个业务方的临时公钥进行计算,得到所述目标密钥的步骤。
4.根据权利要求2所述的方法,其特征在于,对每个业务方的临时公钥进行计算,得到目标密钥包括:
对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值;
对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到所述目标业务方对应的第二数值,其中,所述目标业务方是指所述N个业务方中的业务方;
对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与所述目标业务方对应的第二数值相乘,得到所述目标业务方对应的第二坐标值,其中,所述其它业务方是指所述N个业务方中除所述目标业务方之外的业务方;
将所述第二坐标值的横坐标、所述第二坐标值的纵坐标、每个业务方的用户标识和预设密钥长度输入密钥派生函数中进行计算,得到所述目标密钥。
5.根据权利要求4所述的方法,其特征在于,对每个业务方的临时公钥的横坐标进行取模运算,得到每个业务方对应的第一数值包括:
采用每个业务方的临时公钥的横坐标对预设数值进行取模计算,得到每个业务方对应的第三数值;
计算每个业务方对应的第三数值分别与所述预设数值的和,得到每个业务方对应的第一数值。
6.根据权利要求4所述的方法,其特征在于,对目标业务方对应的第一数值进行乘法运算、取模运算和加法运算,得到所述目标业务方对应的第二数值包括:
采用所述目标业务方对应的第一数值与所述目标业务方对应的随机数相乘,得到第四数值;
采用所述第四数值对所述基点的阶进行取模运算,得到第五数值;
采用所述第五数值与所述目标业务方对应的第一私钥相加,得到所述目标业务方对应的第二数值,其中,所述第一私钥是生成的随机数,每个业务方对应的第一私钥是固定不变的。
7.根据权利要求4所述的方法,其特征在于,对每个其它业务方对应的临时公钥和每个其它业务方对应的第一数值进行乘法运算和加法运算,并将计算结果与所述目标业务方对应的第二数值相乘,得到所述目标业务方对应的第二坐标值包括:
对每个其它业务方的临时公钥和每个其它业务方对应的第一数值进行乘法运算,得到每个其它业务方对应的第六数值;
将每个其它业务方对应的第六数值与每个其它业务方对应的第一公钥相加,得到每个其它业务方对应的第七数值,其中,每个其它业务方对应的第一公钥是根据每个其它业务方对应的第一公钥生成的,每个业务方对应的第一公钥是固定不变的;
对所述目标椭圆曲线的余因子、所述目标业务方对应的第二数值和每个其它业务方对应的第七数值进行乘法运算,得到所述目标业务方对应的第二坐标值。
8.根据权利要求1所述的方法,其特征在于,所述N个业务方中的业务方包括:第一业务方和第二业务方,在所述N个业务方中的业务方之间依据所述加密后的通信内容进行通信包括:
通过所述第一业务方将所述加密后的通信内容发送至所述第二业务方;
在所述第二业务方接收到所述加密后的通信内容的情况下,采用所述目标密钥对所述加密后的通信内容进行解密,得到解密后的通信内容;
通过所述解密后的通信内容在所述第一业务方与所述第二业务方之间进行通信。
9.一种基于椭圆曲线公钥密码算法的通信装置,其特征在于,包括:
确定单元,用于确定需要进行通信的N个业务方,其中,N是大于1的正整数;
生成单元,用于生成所述N个业务方中每个业务方对应的随机数,并依据每个业务方对应的随机数生成每个业务方的临时公钥;
第一计算单元,用于采用基于椭圆曲线公钥密码算法对每个业务方的临时公钥进行计算,得到目标密钥;
加密单元,用于采用所述目标密钥对待发送的通信内容进行加密,得到加密后的通信内容;
通信单元,用于在所述N个业务方中的业务方之间依据所述加密后的通信内容进行通信。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任意一项所述的基于椭圆曲线公钥密码算法的通信方法。
CN202311415579.3A 2023-10-27 2023-10-27 基于椭圆曲线公钥密码算法的通信方法、装置及电子设备 Pending CN117254907A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311415579.3A CN117254907A (zh) 2023-10-27 2023-10-27 基于椭圆曲线公钥密码算法的通信方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311415579.3A CN117254907A (zh) 2023-10-27 2023-10-27 基于椭圆曲线公钥密码算法的通信方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN117254907A true CN117254907A (zh) 2023-12-19

Family

ID=89135195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311415579.3A Pending CN117254907A (zh) 2023-10-27 2023-10-27 基于椭圆曲线公钥密码算法的通信方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN117254907A (zh)

Similar Documents

Publication Publication Date Title
CN108768607B (zh) 一种基于区块链的投票方法、装置、设备及介质
CN113424185B (zh) 快速不经意传输
US11895231B2 (en) Adaptive attack resistant distributed symmetric encryption
CN110391900B (zh) 基于sm2算法的私钥处理方法、终端及密钥中心
US20200259651A1 (en) Multi-party threshold authenticated encryption
KR101492644B1 (ko) 타원 곡선 공개키 암호화 검증을 위한 방법
CN109728914B (zh) 数字签名验证方法、***、装置及计算机可读存储介质
Hassan et al. An efficient outsourced privacy preserving machine learning scheme with public verifiability
US11438152B2 (en) Distributed symmetric encryption
CN109361519B (zh) 一种改进的包含秘密的数的生成方法及***
Kaaniche et al. A novel zero-knowledge scheme for proof of data possession in cloud storage applications
JP2014515125A (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
CN117155615A (zh) 数据加密传输方法、***、电子设备及存储介质
CN112737783B (zh) 一种基于sm2椭圆曲线的解密方法及设备
CN115865531B (zh) 一种代理重加密数字资产授权方法
CN110798313A (zh) 基于秘密动态共享的包含秘密的数的协同生成方法及***
JP2002082609A (ja) 依頼計算を用いた演算装置、及び記録媒体
CN114697001B (zh) 一种基于区块链的信息加密传输方法、设备及介质
CN117254907A (zh) 基于椭圆曲线公钥密码算法的通信方法、装置及电子设备
Rao et al. Secure and practical outsourcing of linear programming in cloud computing: A survey
Fugkeaw et al. Proxy-assisted digital signing scheme for mobile cloud computing
CN117811730B (zh) 国密密钥协商方法、装置、计算设备及可读存储介质
CN115378588B (zh) 不经意传输方法、设备和存储介质
WO2023058186A1 (ja) 情報処理プログラム、情報処理方法、及び情報処理装置
CN113742680B (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