买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】多播通信中的加密和解密方法及装置_创新先进技术有限公司_201910234792.1 

申请/专利权人:创新先进技术有限公司

申请日:2019-03-26

公开(公告)日:2021-04-09

公开(公告)号:CN110011995B

主分类号:H04L29/06(20060101)

分类号:H04L29/06(20060101);H04L9/30(20060101);H04L9/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.04.09#授权;2019.08.06#实质审查的生效;2019.07.12#公开

摘要:本说明书实施例提供一种多播通信中的加密和解密方法及装置。加密方法由消息发送方执行,包括,在有限域中生成随机数k,并在该有限域上椭圆曲线中,对曲线基点进行k倍乘法操作,得到加密点R,基于其横坐标确定对称秘钥sk。然后,利用该对称秘钥sk,采用对称加密算法加密消息明文m,生成消息密文C。另一方面,获取w个选定接收方的各自的公钥Qi,利用随机数k,对各个公钥Qi对应的椭圆曲线上的点进行乘法操作,生成对应的秘钥密文Ki。至少根据消息密文C和w个秘钥密文,生成加密消息,并将其进行广播。指定接收方可以用其私钥di在有限域的乘法逆元,对秘钥密文进行乘法操作,以还原加密点,进而还原对称秘钥sk,实现对密文C的解密。

主权项:1.一种多播通信中的加密方法,由消息发送方执行,包括:在约定的有限域中生成随机数k,并在该有限域上的约定椭圆曲线中,利用该随机数k对该椭圆曲线的基点进行乘法操作,得到椭圆曲线上的加密点R;基于所述加密点R的横坐标确定对称秘钥sk;利用所述对称秘钥sk,采用对称加密算法加密消息明文m,生成消息密文C;获取w个选定接收方的公钥集合,其中各个选定接收方的公钥Qi由该选定接收方利用其保存的私钥di对所述椭圆曲线的基点进行乘法操作而生成;利用所述随机数k,对各个公钥Qi对应的椭圆曲线上的点进行乘法操作,生成对应的秘钥密文Ki,从而得到w个秘钥密文;至少根据所述消息密文C和所述w个秘钥密文,生成加密消息;在多播通信网络中广播所述加密消息。

全文数据:多播通信中的加密和解密方法及装置技术领域本说明书一个或多个实施例涉及数据安全领域,尤其涉及多播通信中的加密和解密方法和装置。背景技术随着计算机技术的发展,数据安全成为重要的问题。在许多场景下,需要在非安全信道中进行数据传输,这时,数据的加密成为数据安全的一种保障。例如,区块链网络作为一种去中心化、去信任的网络,由互相无需达成信任的多个节点共同维护分布式账本。在记录交易、形成区块的过程中,会有大量数据以点对点传输的方式,在节点之间传播。为了保证数据的真实性,常常采用数字签名方式,防止数据传输中被篡改。对于某些内容的数据,只希望发送给指定接收者,而使得其他接收者即使截取到传输的消息也无法获取到消息明文。以上这些过程中都需要进行数据的加密和解密。特别是在例如区块链网络中,数据在网络中大量的进行广播,大量节点需要对数据进行加解密或核验操作。尽管已经存在一些加解密算法,但是这些算法往往较为复杂,在广播或多播的情况下会产生很大的计算开销,影响传输效率。因此,希望能够改进的方案,能够在多播传输的情况下,高效地进行数据加解密,保证数据安全。发明内容本说明书一个或多个实施例描述了多播通信中的数据加密和解密方法和装置,其中利用有限域上椭圆曲线的特点,进行非对称加密和解密,显著提升计算性能和传输效率,且保证数据传输安全。根据第一方面,提供了一种多播通信中的加密方法,由消息发送方执行,包括:在约定的有限域中生成随机数k,并在该有限域上的约定椭圆曲线中,利用该随机数k对该椭圆曲线的基点进行乘法操作,得到椭圆曲线上的加密点R;基于所述加密点R的横坐标确定对称秘钥sk;利用所述对称秘钥sk,采用对称加密算法加密消息明文m,生成消息密文C;获取w个选定接收方的公钥集合,其中各个选定接收方的公钥Qi由该选定接收方利用其保存的私钥di对所述椭圆曲线的基点进行乘法操作而生成;利用所述随机数k,对各个公钥Qi对应的椭圆曲线上的点进行乘法操作,生成对应的秘钥密文Ki,从而得到w个秘钥密文;至少根据所述消息密文C和所述w个秘钥密文,生成加密消息;在多播通信网络中广播所述加密消息。在不同实施例中,可以将所述加密点R的横坐标作为所述对称秘钥sk;或者,将所述加密点R的横坐标对所述有限域的阶取模,将取模结果作为所述对称秘钥sk,或者,在另一实施例中,以所述加密点R的横坐标为种子,通过约定的秘钥派生函数生成所述对称密钥sk。根据一种实施方式,利用所述对称秘钥sk,采用对称加密算法加密消息明文m,包括:利用初始向量IV与所述消息明文m进行第一运算,得到中间运算结果;利用所述对称秘钥sk加密所述中间运算结果。在这样的情况下,基于所述消息密文C,所述初始向量IV和所述w个秘钥密文,共同生成加密消息。根据一种实施方式,利用所述对称秘钥sk,采用对称加密算法加密消息明文m,还包括,基于所述消息密文C生成消息验证码。在这样的情况下,基于所述消息密文C,所述消息验证码和所述w个秘钥密文,共同生成加密消息。根据第二方面,提供一种多播通信中的解密方法,由消息接收方执行,该消息接收方保存有私钥d,所述方法包括:接收加密消息,所述加密消息包括消息密文C和w个秘钥密文,所述w个秘钥密文分别基于w个选定接收方的公钥而生成;对所述w个秘钥密文中的第一秘钥密文,利用所述私钥d在约定的有限域中的乘法逆元,对该第一秘钥密文在该有限域上的约定椭圆曲线中的对应点进行乘法操作,得到第一解密点R’;基于所述第一解密点R’的横坐标确定第一对称密钥;利用所述第一对称秘钥,对所述消息密文C进行第一解密操作。在不同实施例中,可以将所述第一解密点R’的横坐标作为所述第一对称秘钥;或者,将所述第一解密点R’的横坐标对所述有限域的阶取模,将取模结果作为所述第一对称秘钥;或者,在另一实施例中,以所述第一解密点R’的横坐标为种子,通过约定的秘钥派生函数生成所述第一对称密钥。根据一种实施方式,接收的加密信息中还包括初始向量IV。在这样的情况下,利用所述第一对称秘钥,解密所述消息密文C包括:利用所述第一对称秘钥解密所述消息密文C,得到中间运算结果;利用所述初始向量IV与所述中间运算结果进行第二运算,用以得到明文。根据一种实施方式,接收的加密消息还包括消息验证码。在这样的情况下,方法还包括,基于所述消息验证码对所述消息密文C进行校验。在一个实施例中,在所述第一解密操作解密成功的情况下,将所述第一解密操作得到的解密结果,作为所述消息密文C对应的明文消息m。在一个实施例中,上述方法还包括,在所述第一解密操作解密失败的情况下:对所述w个秘钥密文中的第二秘钥密文,利用所述乘法逆元,对该第二秘钥密文在该有限域上的约定椭圆曲线中的对应点进行乘法操作,得到第二解密点;基于所述第二解密点的横坐标确定第二对称密钥;利用所述第二对称秘钥,对所述消息密文C进行第二解密操作。根据一种实施方式,在利用与所述w个秘钥密文分别对应的w个对称秘钥进行的w次解密操作均失败的情况下,确定所述消息接收方不是所述w个选定接收方之一。根据第三方面,提供一种多播通信中的加密装置,部署在消息发送方,所述加密装置包括:加密点生成单元,配置为在约定的有限域中生成随机数k,并在该有限域上的约定椭圆曲线中,利用该随机数k对该椭圆曲线的基点进行乘法操作,得到椭圆曲线上的加密点R;对称密钥确定单元,配置为基于所述加密点R的横坐标确定对称秘钥sk;对称加密单元,配置为利用所述对称秘钥sk,采用对称加密算法加密消息明文m,生成消息密文C;公钥集合获取单元,配置为获取w个选定接收方的公钥集合,其中各个选定接收方的公钥Qi由该选定接收方利用其保存的私钥di对所述椭圆曲线的基点进行乘法操作而生成;秘钥密文生成单元,配置为利用所述随机数k,对各个公钥Qi对应的椭圆曲线上的点进行乘法操作,生成对应的秘钥密文Ki,从而得到w个秘钥密文;加密消息生成单元,配置为至少根据所述消息密文C和所述w个秘钥密文,生成加密消息;消息广播单元,配置为在多播通信网络中广播所述加密消息。根据第四方面,提供一种多播通信中的解密装置,部署在消息接收方,该消息接收方保存有私钥d,所述解密装置包括:消息接收单元,配置为接收加密消息,所述加密消息包括消息密文C和w个秘钥密文,所述w个秘钥密文分别基于w个选定接收方的公钥而生成;解密点生成单元,配置为对所述w个秘钥密文中的第一秘钥密文,利用所述私钥d在约定的有限域中的乘法逆元,对该第一秘钥密文在该有限域上的约定椭圆曲线中的对应点进行乘法操作,得到第一解密点R’;对称秘钥确定单元,配置为基于所述第一解密点R’的横坐标确定第一对称密钥;对称解密单元,配置为利用所述第一对称秘钥,对所述消息密文C进行第一解密操作。根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面和第二方面的方法。根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面和第二方面的方法。根据本说明书实施例提供的方法和装置,利用有限域上椭圆曲线的特点,在多播通信涉及的非对称加密过程中,仅需要对各个接收方公钥所在的点进行k倍乘法操作;而在非对称解密过程中,接收方仅需要利用其私钥的乘法逆元,对各个秘钥密文进行乘法操作。非对称加密和解密的过程非常简洁,计算量小,可以极大提高运算性能和传输效率。同时,利用这样的方式,可以保证数据传输的安全,只有发送方指定的接收方可以从加密消息中解密出原始消息的明文。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本说明书披露的一个实施例的多播通信实施场景示意图;图2示出根据一个实施例的多播通信中的加密方法的流程图;图3示出根据一个实施例的加密过程示意图;图4示出根据一个实施例的多播通信中的解密方法的流程图;图5示出根据一个实施例的解密过程示意图;图6示出根据一个实施例的加密装置的示意性框图;图7示出根据一个实施例的解密装置的示意性框图。具体实施方式下面结合附图,对本说明书提供的方案进行描述。图1为本说明书披露的一个实施例的多播通信实施场景示意图。如图1所示,存在一个通信系统或网络,其中具有W个参与方或节点。在某些业务场景下,某个参与方Alice需要将同一消息m发送给指定的w个接收方,例如图1中所示的灰色节点,并且要求其他节点不能读到该消息。那么,Alice可以对该消息m进行加密,将加密的消息在网络中进行广播。通过对加密方式进行设计,可以使得,只有指定的w个接收方能够解密还原出消息m,其他接收方即使接收到了加密的消息,仍然无法对其进行解密,不能得到原始消息m。为了实现以上效果,根据一种实施方式,可以采用以下的加密方式。首先,要求通信网络中的各个参与方生成自己的公钥私钥对。例如,其中第j个参与方的私钥记为dj,公钥记为Qj。各个参与方保存自己的私钥,并将公钥对外公开,使得网络中每个参与方都可以获得其他参与方的公钥。对于参与方Alice来说,当她想要发送消息m时,她首先产生一个对称秘钥sk,用该对称秘钥sk,采用一定的对称加密算法E加密消息m的明文,得到消息密文即然后,Alice选择w个接收者,这w个接收者的公钥为Q1,Q2,...,Qw。对每一个公钥Qi,利用该公钥使用非对称加密算法Z加密对称秘钥sk,得到密文于是,得到利用w个公钥对sk加密的w个秘钥密文最后,将秘钥密文和消息密文组合编码成最终消息将该消息M在网络中进行广播。假设Bob是以上网络中的另一参与方,他接收到了Alice广播的消息M。如前所述,网络中的每一参与方都具有自己的公钥私钥对,假定Bob的私钥为dB。Bob可以利用自己的私钥dB,使用与非对称加密算法Z对应的解密方式,尝试解密每一个秘钥密文如果Bob是w个选定接收者之一,那么秘钥密文中必然有一个是利用Bob的公钥QB加密的,于是Bob利用对应的私钥dB可以对其进行解密,得到对称秘钥sk。接着,就可以利用对称秘钥sk,采用与对称加密算法E对应的解密方式,解密消息密文从而恢复出消息明文m。如果Bob不是w个选定接收者之一,那么Bob无法用其私钥dB解密任意一个秘钥密文,也就无法得到正确的对称秘钥sk。进而,无法解密出原始消息m。因此,通过以上加密方式,可以保证只有Alice选定的接收者能够得到消息m,而其他接收者虽然可以通过广播方式获得加密的消息M,却无法从中解密出原始消息m。在以上过程中,加密阶段的计算包括,对称秘钥sk的生成,使用对称加密算法E的对称加密过程,以及利用各个公钥Qi采用非对称加密算法Z进行的非对称加密过程。解密阶段与之相对应。在这个过程中,非对称加密和解密过程的计算量对于传输效率至关重要。根据本说明书的实施例,利用椭圆曲线来进行以上多播通信中的加解密,从而简化计算过程,提高计算性能和传输效率。下面首先对椭圆曲线的特点进行描述。椭圆曲线是一种数学上的曲线,一般可以表示为以下的二元三阶方程:y2=x3+ax+b1其中a、b为系数。可以在椭圆曲线上定义点的加法操作和乘法操作。在椭圆曲线上取两个点,点P和点Q,连接P、Q两点作一条直线L,这条直线将在椭圆曲线上交于第三点个S,过S点作垂直于X轴的直线,将过椭圆曲线另一点R一般是S点关于X轴对称的点,R点则被定义为对点P和点Q求和的结果,即P+Q=R。这就是加法操作的过程。在以上点P和点Q为同一个点的情况下,直线L即为椭圆曲线在P点上的切线,由此得到的点R可记为:R=P+P=2*P。继续进行多次加法操作,就可以得到对点P进行乘法操作的结果m*P=P+P…+P。为了更方便的将椭圆曲线用于数据加解密,可以将椭圆曲线限定在有限域Fp中。有限域Fp是包含有限个元素的域,元素的个数为素数p。该素数p又称为有限域的阶。有限域内的运算基于对p取模而定义。有限域Fp上公式1表示的椭圆曲线常记为Epa,b。通过选择系数a,b和有限域p,可以唯一地定义一条椭圆曲线,不同的椭圆曲线具有不同的安全特性。常见的椭圆曲线包括P-256,secp256k1等。在将椭圆曲线限定到有限域后,椭圆曲线包含的点从曲线上连续的无限数目的点,演变为包含有限数目个离散点的点集T。基于椭圆曲线上点的运算规则,该点集T构成一个循环群,即阿贝尔群。该点集中点的数目即为该循环群的阶。具体而言,有限域中的椭圆曲线所构成的循环群,具有以下特点:1.对循环群中任意的点P与点Q进行求和操作或称为加法操作,得到的点R=P+Q仍然在循环群中,其中加法操作的定义与前述常规椭圆曲线一致;2.对循环群中任意的点P进行乘法操作,得到的点Q=m*P=P+P+…+P仍然在循环群中,其中m属于上述有限域,乘法操作的定义与常规椭圆曲线一致;3.循环群中存在生成元G,或称为椭圆曲线的基点G,还存在一椭圆曲线的无穷远点O,满足n*G=O。该无穷远点O在运算时的作用,类似于常规数学运算中的零。4.循环群中的加法操作和乘法操作满足分配律和交换率,即:x*P+y*P=x+y*Px*y*P=y*x*P椭圆曲线还有一项很重要的特点是,根据2中的乘法规则,已知m和P,求得点Q很容易,但是已知点Q和P,反推m的数值几乎不可能实现。该特点,结合有限域中椭圆曲线的其他特点,使得椭圆曲线在多种加密算法中得到应用。在本说明书的实施例中,通过在多播通信过程中巧妙利用椭圆曲线的特点进行加解密,保证数据的安全性,并且算法巧妙,节省计算资源,提高传输效率。根据本说明书的实施例,为了在多播通信系统中执行基于椭圆曲线的加解密,需要在通信系统的各个参与方之间约定特定的有限域p以及该有限域中的椭圆曲线。也就是,在通信系统中约定参数p有限域的阶,公式1中椭圆曲线的参数a和b,得到约定的椭圆曲线Epa,b。该约定的椭圆曲线具有特定的基点G。此外,还需要各个参与方生成自己的公钥私钥对。一般地,各个参与方可以通过以下方式生成公钥私钥对。首先,参与方i在有限域p中生成一个随机数作为私钥di;然后,利用私钥di对椭圆曲线的基点G进行乘法操作,将乘法操作的结果作为公钥Qi,即Qi=di*G。其中乘法操作的规则过程如前所述。于是,参与方i具有了自己的公钥Qi和私钥di构成的密钥对。各个参与方以安全的方式保存自己的私钥di不为其他方所知,但是公开提供自己的公钥Qi,使得每个参与方都可以得到其他各个参与方的公钥。以上是在本说明书实施例中进行多播通信加解密的预备条件。在具备以上条件的情况下,通信系统中的任意一个参与方均可以采用实施例中的加密方法对消息进行加密,使得只有选定接收方可以解密出原始消息的消息明文。图2示出根据一个实施例的多播通信中的加密方法的流程图,该方法由多播通信系统中的消息发送方执行,可以理解,该消息发送方可以体现为任何具有计算、处理能力的装置、设备、平台、设备集群。下面结合图2以及具体实施例,详细描述消息发送方的加密过程。首先,在步骤21,消息发送方在约定的有限域中生成随机数k,并在该有限域上的约定椭圆曲线中,利用该随机数k对该椭圆曲线的基点进行乘法操作,得到椭圆曲线上的加密点R。如前所述,通信系统的各个参与方已经约定了有限域p,以及该有限域上的椭圆曲线Epa,b。假定消息发送方为Alice。那么在步骤21,Alice从有限域p中随机选择一个整数k,或者说生成一个随机数k,因此,k∈[1,2,...,p-1]。然后,Alice在有限域上的椭圆曲线Epa,b中,利用该随机数k对椭圆曲线的基点G进行乘法操作,得到椭圆曲线上的加密点R,也就是:R=xR,yR=k*G2此处需要理解,Alice选择的随机数k需要另外生成,不能与其私钥相同,否则加密点R将会与其公钥相同,从而暴露该加密点。接着,在步骤22,基于加密点R的横坐标确定对称秘钥sk。如上,加密点R的横坐标记为xR。那么,在该步骤中,基于xR的值确定对称密钥sk。一般地,通过设置椭圆曲线的参数,可以使得循环群中各个点的坐标均为整数。在本说明书的实施例中,通信系统所约定的椭圆曲线Epa,b可以是上述的椭圆曲线,因此,此处加密点R的横坐标xR为整数。在一个实施例中,将加密点R的横坐标xR直接作为对称秘钥sk,即:sk=xR在另一实施例中,将加密点R的横坐标xR对有限域的阶p取模,将取模结果作为对称秘钥sk,即:sk=xRmodp。在又一实施例中,可以以上述横坐标xR为种子,通过约定的秘钥派生函数KDF生成对称密钥sk,即:sk=FxR其中F为密钥派生函数。密钥派生函数F可以将一个输入比特串转换成特定长度的输出比特串,转换过程中一般使用密码杂凑函数。存在各种算法的密钥派生函数,例如DEs-basedUNIXCrypt-function,FreeBSDMD5crpty,,GNUSHA-256512crypt,WindowsNTLANManagerNTLMhash等等。这些密钥派生函数均可以在步骤22中被用于从加密点R的横坐标xR生成对称密钥sk。在生成对称密钥sk之后,在步骤23,利用对称秘钥sk,采用对称加密算法E加密消息明文m,生成消息密文C。该步骤中,可以采用各种已知的对称加密算法E进行对称加密。例如,在一个实施例中,可以采用AES-GCM算法。在一个实施例中,采用的对称加密算法E使用初始向量IV参与对称加密,例如AES-GCM算法,或采用AES-CBC密码分组链接模式模式的算法。在这样的算法E中,利用初始向量IV与消息明文m进行第一运算一般是抑或运算,得到中间运算结果;再利用对称秘钥sk加密该中间运算结果,基于此生成消息密文C。例如,在AES-CBC中,将明文分块或分组。用初始向量IV与第一块消息进行抑或运算,得到中间结果;再利用对称密钥sk加密该中间结果,得到的结果作为用于下一消息块的运算向量。最终链接生成消息密文C。在一个实施例中,为了进一步确保消息的完整性,以及传输过程中不被篡改,对称加密算法在生成消息密文C的基础上,还基于该消息密文C生成消息验证码AuthTag。根据一种算法实例,采用与秘钥相关的单向散列hash函数对密文进行运算,得到消息验证码,又称为MACMessageAuthenticationCode。根据另一种算法实例,例如AES-GCM算法,采用有限域中的乘法运算来计算消息验证码的值。消息验证码可以提供对消息的加密和完整性校验,防止消息传输过程中被篡改。如此,实现了对原始消息m的对称加密,生成了消息密文C。可选的,在一个例子中,对称加密过程还生成有初始向量IV;在一个例子中,对称加密过程还生成有消息验证码。接下来,需要针对选定接收方,进行非对称加密。为此,消息发送方,例如Alice,可以选定w个接收方。在步骤24,获取这w个选定接收方的公钥集合Q1,Q2,...,Qw。如前所述,各个选定接收方的公钥Qi由该选定接收方利用其保存的私钥di对椭圆曲线Epa,b的基点G进行乘法操作而生成。因此,每个公钥Qi也对应椭圆曲线Epa,b中的一个点。于是,在步骤25,利用步骤21中生成的随机数k,对各个公钥Qi对应的椭圆曲线上的点进行乘法操作,生成对应的秘钥密文Ki,即:Ki=k*Qi3可以理解,对点Qi进行乘法操作后得到的秘钥密文Ki,也对应椭圆曲线中的一个点。通过对w个选定接收方各自的公钥Q1,Q2,...,Qw对应的点进行k倍乘法操作,得到w个秘钥密文K1,K2,...,Kw。接着,在步骤26,至少根据消息密文C和w个秘钥密文,生成加密消息M。在一个实施例中,将消息密文C和w个秘钥密文拼接编码在一起,形成加密消息M。在一个具体例子中,加密消息M中还可以包含一个明文字段,说明指定接收方的数目w。因此,在一个例子中,加密消息M的形式为:M=w|K1|K2|...|Kw|C如前所述,在一个例子中,对称加密过程还生成有初始向量IV。在这样的情况下,需要基于消息密文C,初始向量IV和w个秘钥密文,生成加密消息M。换而言之,加密消息M中还需包含有初始向量IV。在另一个例子中,对称加密过程还生成有消息验证码AuthTag。在这样的情况下,需要基于消息密文C,w个秘钥密文,以及消息验证码AuthTag,生成加密消息M。也就是说,加密消息M中还需包含有消息验证码AuthTag。在一个例子中,加密消息M的形式为:M=w|K1|K2|...|Kw|IV|AuthTag|C如此,发送方完成了消息的加密。接着在步骤27,发送方可以在网络中广播上述加密消息M。图3示出根据一个实施例的加密过程示意图。如图3所示,发送方例如Alice首先生成随机数k,然后通过对椭圆曲线基点G的k倍乘法操作,得到加密点R=k*G。接着,基于加密点R的横坐标,通过密钥派生,生成对称秘钥sk。利用对称密钥sk,使用对称加密算法AES,对消息明文m进行加密,得到消息密文C。可选的,还生成消息验证码AuthTag。另一方面,还利用该随机数k,对w个选定接收方的公钥Q1,Q2,...,Qw分别进行k倍乘法操作,得到w个秘钥密文K1,K2,...,Kw。最终,将消息密文C,消息验证码AuthTag,以及w个秘钥密文K1,K2,...,Kw一起编码,形成加密消息M。该加密消息M通过广播的形式在通信网络中传输,网络中的任何一个参与者都可以获取到该加密消息M。下面描述在接收到该加密消息M后,接收方对该加密消息M的解密过程。图4示出根据一个实施例的多播通信中的解密方法的流程图,该方法由多播通信系统中的消息接收方执行,该消息接收方可以体现为任何具有计算、处理能力的装置、设备、平台、设备集群。下面结合图4以及具体实施例,详细描述消息接收方的解密执行过程。假定消息接收方为Bob。如前所述,网络中的每个参与者都具有公钥私钥对。假定Bob具有私钥dB,以安全的方式保存在其本地,对应的公钥为QB。,并且公钥和私钥之间满足:QB=dB*G,其中G为约定的椭圆曲线的基点。在步骤41,接收方Bob接收到一条加密消息M,该加密消息M包括消息密文C和w个秘钥密文K1,K2,...,Kw,该w个秘钥密文分别基于w个选定接收方的公钥Q1,Q2,...,Qw而生成。需要理解的是,当Bob接收到加密消息M时,他并不知晓自己是否为选定接收方之一。于是,在步骤42,对于w个秘钥密文中任意的一个秘钥密文,下文称为第一秘钥密文,记为Ki,Bob利用其私钥dB在约定的有限域p中的乘法逆元对该第一秘钥密文Ki在该有限域上的约定椭圆曲线Epa,b中的对应点进行乘法操作,得到第一解密点R’,即:这里,需要说明的是,私钥dB和其在约定的有限域p中的乘法逆元之间满足:根据式3中定义的秘钥密文Ki的生成方式,式4可以写为:如果Bob恰好是第一秘钥密文所对应的选定接收者,那么第一秘钥密文是基于Bob的公钥加密的,即Qi=QB,于是式6可以进一步写为:其中,从式7到式8的变换利用了有限域上椭圆曲线构成的循环群中的交换律,式8到式9的变换利用了式5中乘法逆元的定义和椭圆曲线在有限域上的运算特点,即如果x≡ymodp,那么x*G=y*G。如此,如果Bob恰好是第一秘钥密文所对应的选定接收者,那么通过对第一秘钥密文Ki对应的点,进行乘法逆元倍数的乘法操作,就可以简单的立即还原出加密点R。相反,如果Bob不是第一秘钥密文所对应的选定接收者,那么对第一秘钥密文Ki对应的点进行上述乘法操作后得到的第一解密点R’是椭圆曲线上不同于加密点R的另一个点。接下来,在步骤43,接收方基于第一解密点R’的横坐标确定第一对称密钥。可以理解,接收方在得到第一解密点R’后,基于与图2中步骤22同样的方式,从第一解密点R’的横坐标xR′确定出第一对称秘钥sk’。例如,在一个实施例中,将第一解密点R’的横坐标xR′直接作为第一对称秘钥sk’,即:sk’=xR′在另一实施例中,将第一解密点R’的横坐标xR′对有限域的阶p取模,将取模结果作为第一对称秘钥sk’,即:Sk’=xR′modp。在又一实施例中,以上述横坐标xR′为种子,通过约定的秘钥派生函数KDF生成第一对称密钥sk’,即:sk’=FxR′当步骤22采用其他方式确定对称秘钥的情况下,在步骤43中,对应采用相同的方式确定出第一对称秘钥sk’。然后,在步骤44,利用第一对称秘钥sk’,对消息密文C进行第一解密操作。需要理解,第一解密操作是使用与图2步骤23中对称加密算法E相对应的对称解密算法进行解密的过程。在一个实施例中,如前所述,对称加密算法E在加密过程中还使用初始向量IV。在这样的情况下,步骤41中接收到的加密消息M中还包括该初始向量IV。相应的,在步骤44进行第一解密操作时,可以利用第一对称秘钥解密消息密文C,得到中间运算结果;然后,利用初始向量IV与该中间运算结果进行第二运算通常为异或运算,用以得到明文。在一个实施例中,对称加密过程中还生成有消息验证码AuthTag。在这样的情况下,步骤41中接收到的加密消息M中还包括该消息验证码AuthTag。相应的,在步骤44进行的第一解密操作还包括,基于消息验证码对消息密文C进行校验。然而,需要理解的是,取决于接收方Bob是否为选定接收者,步骤44中的第一解密操作会具有解密成功和解密失败两种不同的结果。如前所述,如果Bob恰好是第一秘钥密文所对应的选定接收者,那么通过步骤42的操作得到的第一解密点R’就等于原来的加密点R,接着,在步骤43中采用与步骤22相同的方式基于R’生成的第一对称秘钥sk’,必然等于步骤22生成的对称秘钥sk,也就是说,在这样的情况下,Bob已经获得了正确的对称秘钥。于是,在步骤44,利用该正确的对称密钥对消息密文C进行与对称加密算法E相对应的解密操作,就可以成功解密,此时得到的解密结果即为消息密文C对应的明文消息m。在这样的情况下,在步骤45,返回明文消息m,退出解密过程。然而,如果Bob不是第一秘钥密文所对应的选定接收者,那么通过步骤42的操作得到的第一解密点R’就不是原来的加密点R,接着,在步骤43中生成的第一对称秘钥sk’也就不等于原本的对称秘钥sk,也就是说,在这样的情况下,Bob没有获得正确的对称秘钥。于是,在步骤44,利用第一对称秘钥sk’错误的秘钥对消息密文C进行第一解密操作时,就会出现解密失败,无法解密的情况。在这样的情况下,在步骤46判断当前的第一秘钥密文是否为w个秘钥密文中的最后一个;如果不是,则回到步骤42,分析下一秘钥密文。也就是说,对w个秘钥密文中的下一秘钥密文,或称为第二秘钥密文,利用所述乘法逆元对该第二秘钥密文在椭圆曲线中的对应点进行乘法操作,得到第二解密点;然后在步骤43,基于第二解密点的横坐标确定第二对称密钥;在步骤44,利用第二对称秘钥,对消息密文C进行第二解密操作。在图4中的步骤中,没有示出对第二秘钥密文的操作,可以理解为,在下一循环中,令i=i+1,从而将下一秘钥密文作为新的第一秘钥密文再次进行分析操作。可以逐个分析各个秘钥密文,直到针对某个秘钥密文解密成功。在利用w个秘钥密文分别对应的w个对称秘钥进行的w次解密操作均失败的情况下,即步骤46的判断为是,那么在步骤47,确定当前消息接收方Bob不是w个选定接收方之一。图5示出根据一个实施例的解密过程示意图。如图5所示,接收方例如Bob在接收到加密消息M后,首先获取其私钥dB在有限域中的乘法逆元用该乘法逆元对各个秘钥密文K1,K2,...,Kw进行乘法操作。如果其中存在利用Bob的公钥QB加密的秘钥密文,那么Bob就可以从中恢复出对称秘钥sk。进而,可以利用该对称秘钥sk解密消息密文C,得到消息明文m。回顾整个多播通信的加密和解密过程,可以看到,发送方需要针对w个指定接收方利用非对称加密方式生成w个秘钥密文,因此,该非对称加密过程需要执行w次。接收方通常也需要针对w个秘钥密文进行非对称解密。因此,非对称加密和解密过程都需要根据w的数目多次执行,是计算量和传输效率的关键。通过图3和图5的加密解密过程示意图可以看到,根据本说明书实施例的方法,利用有限域上椭圆曲线的特点,在非对称加密过程中,仅需要对各个接收方公钥所在的点进行k倍乘法操作;而在非对称解密过程中,接收方仅需要利用其私钥的乘法逆元,对各个秘钥密文进行乘法操作。非对称加密和解密的过程非常简洁,计算量小,可以极大提高运算性能和传输效率。同时,利用这样的方式,可以保证数据传输的安全,只有发送方指定的接收方可以从加密消息中解密出原始消息的明文。根据另一方面的实施例,还提供了一种多播通信中的加密装置,该装置部署在消息发送方,消息发送方可以体现为任何具有计算、处理能力的设备、平台或设备集群。图6示出根据一个实施例的加密装置的示意性框图。如图6所示,该加密装置600包括:加密点生成单元61,配置为在约定的有限域中生成随机数k,并在该有限域上的约定椭圆曲线中,利用该随机数k对该椭圆曲线的基点进行乘法操作,得到椭圆曲线上的加密点R;对称密钥确定单元62,配置为基于所述加密点R的横坐标确定对称秘钥sk;对称加密单元63,配置为利用所述对称秘钥sk,采用对称加密算法加密消息明文m,生成消息密文C;公钥获取单元64,配置为获取w个选定接收方的公钥集合,其中各个选定接收方的公钥Qi由该选定接收方利用其保存的私钥di对所述椭圆曲线的基点进行乘法操作而生成;秘钥密文生成单元65,配置为利用所述随机数k,对各个公钥Qi对应的椭圆曲线上的点进行乘法操作,生成对应的秘钥密文Ki,从而得到w个秘钥密文;加密消息生成单元66,配置为至少根据所述消息密文C和所述w个秘钥密文,生成加密消息;消息广播单元67,配置为在多播通信网络中广播所述加密消息。在一个实施例中,对称秘钥确定单元62配置为:将所述加密点R的横坐标作为所述对称秘钥sk;或者,将所述加密点R的横坐标对所述有限域的阶取模,将取模结果作为所述对称秘钥sk。在另一实施例中,对称秘钥确定单元62配置为:以所述加密点R的横坐标为种子,通过约定的秘钥派生函数生成所述对称密钥sk。根据一种实施方式,所述对称加密单元63配置为:利用初始向量IV与所述消息明文m进行第一运算,得到中间运算结果;利用所述对称秘钥sk加密所述中间运算结果;相应的,所述加密消息生成单元66配置为:基于所述消息密文C,所述初始向量IV和所述w个秘钥密文,生成加密消息。根据一种实施方式,所述对称加密单元63配置为:基于所述消息密文C生成消息验证码;相应的,所述加密消息生成单元66配置为:基于所述消息密文C,所述消息验证码和所述w个秘钥密文,生成加密消息。根据又一方面的实施例,还提供了一种多播通信中的解密装置,该解密装置部署在消息接收方,该消息接收方保存有私钥d。可以理解,消息接收方可以体现为任何具有计算、处理能力的设备、平台或设备集群。图7示出根据一个实施例的解密装置的示意性框图。如图7所示,该解密装置700包括:消息接收单元71,配置为接收加密消息,所述加密消息包括消息密文C和w个秘钥密文,所述w个秘钥密文分别基于w个选定接收方的公钥而生成;解密点生成单元72,配置为对所述w个秘钥密文中的第一秘钥密文,利用所述私钥d在约定的有限域中的乘法逆元,对该第一秘钥密文在该有限域上的约定椭圆曲线中的对应点进行乘法操作,得到第一解密点R’;对称秘钥确定单元73,配置为基于所述第一解密点R’的横坐标确定第一对称密钥;对称解密单元74,配置为利用所述第一对称秘钥,对所述消息密文C进行第一解密操作。在一个实施例中,所述对称秘钥确定单元73配置为:将所述第一解密点R’的横坐标作为所述第一对称秘钥;或者,将所述第一解密点R’的横坐标对所述有限域的阶取模,将取模结果作为所述第一对称秘钥。在另一实施例中,所述对称秘钥确定单元73配置为:以所述第一解密点R’的横坐标为种子,通过约定的秘钥派生函数生成所述第一对称密钥。根据一种实施方式,接收单元71接收的加密信息还包括初始向量IV;在这样的情况下,所述对称解密单元74配置为:利用所述第一对称秘钥解密所述消息密文C,得到中间运算结果;利用所述初始向量IV与所述中间运算结果进行第二运算,用以得到明文。根据一种实施方式,接收单元71接收的加密信息还包括消息验证码;在这样的情况下,所述对称解密单元74配置为,基于所述消息验证码对所述消息密文C进行校验。根据一个实施例,装置700还包括明文获取单元75,配置为在所述第一解密操作解密成功的情况下,将所述第一解密操作得到的解密结果,作为所述消息密文C对应的明文消息m。根据一种实施方式,在所述第一解密操作解密失败的情况下:所述解密点生成单元72还配置为,对所述w个秘钥密文中的第二秘钥密文,利用所述乘法逆元,对该第二秘钥密文在该有限域上的约定椭圆曲线中的对应点进行乘法操作,得到第二解密点;所述对称密钥确定单元73还配置为,基于所述第二解密点的横坐标确定第二对称密钥;所述对称解密单元74还配置为,利用所述第二对称秘钥,对所述消息密文C进行第二解密操作。在一种实施方式中,装置700还包括接收方判断单元未示出,配置为,在所述对称解密单元利用与所述w个秘钥密文分别对应的w个对称秘钥进行的w次解密操作均失败的情况下,确定所述消息接收方不是所述w个选定接收方之一。通过以上的方法和装置,利用有限域上椭圆曲线的特点,实现多播通信中的加密和解密,算法简洁,计算效率高,同时保证了数据安全。根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2和图4所描述的方法。根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2和图4所述的方法。本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

权利要求:1.一种多播通信中的加密方法,由消息发送方执行,包括:在约定的有限域中生成随机数k,并在该有限域上的约定椭圆曲线中,利用该随机数k对该椭圆曲线的基点进行乘法操作,得到椭圆曲线上的加密点R;基于所述加密点R的横坐标确定对称秘钥sk;利用所述对称秘钥sk,采用对称加密算法加密消息明文m,生成消息密文C;获取w个选定接收方的公钥集合,其中各个选定接收方的公钥Qi由该选定接收方利用其保存的私钥di对所述椭圆曲线的基点进行乘法操作而生成;利用所述随机数k,对各个公钥Qi对应的椭圆曲线上的点进行乘法操作,生成对应的秘钥密文Ki,从而得到w个秘钥密文;至少根据所述消息密文C和所述w个秘钥密文,生成加密消息;在多播通信网络中广播所述加密消息。2.根据权利要求1所述的方法,其中,基于所述加密点R的横坐标确定对称秘钥sk,包括:将所述加密点R的横坐标作为所述对称秘钥sk;或者,将所述加密点R的横坐标对所述有限域的阶取模,将取模结果作为所述对称秘钥sk。3.根据权利要求1所述的方法,其中,基于所述加密点R的横坐标确定对称秘钥sk,包括:以所述加密点R的横坐标为种子,通过约定的秘钥派生函数生成所述对称密钥sk。4.根据权利要求1所述的方法,其中,利用所述对称秘钥sk,采用对称加密算法加密消息明文m,包括:利用初始向量IV与所述消息明文m进行第一运算,得到中间运算结果;利用所述对称秘钥sk加密所述中间运算结果;所述至少根据所述消息密文C和w个秘钥密文,生成加密消息包括:基于所述消息密文C,所述初始向量IV和所述w个秘钥密文,生成加密消息。5.根据权利要求1所述的方法,其中,利用所述对称秘钥sk,采用对称加密算法加密消息明文m,包括,基于所述消息密文C生成消息验证码;所述至少根据所述消息密文C和w个秘钥密文,生成加密消息包括:基于所述消息密文C,所述消息验证码和所述w个秘钥密文,生成加密消息。6.一种多播通信中的解密方法,由消息接收方执行,该消息接收方保存有私钥d,所述方法包括:接收加密消息,所述加密消息包括消息密文C和w个秘钥密文,所述w个秘钥密文分别基于w个选定接收方的公钥而生成;对所述w个秘钥密文中的第一秘钥密文,利用所述私钥d在约定的有限域中的乘法逆元,对该第一秘钥密文在该有限域上的约定椭圆曲线中的对应点进行乘法操作,得到第一解密点R’;基于所述第一解密点R’的横坐标确定第一对称密钥;利用所述第一对称秘钥,对所述消息密文C进行第一解密操作。7.根据权利要求6所述的方法,其中,基于所述第一解密点R’的横坐标确定第一对称密钥包括:将所述第一解密点R’的横坐标作为所述第一对称秘钥;或者,将所述第一解密点R’的横坐标对所述有限域的阶取模,将取模结果作为所述第一对称秘钥。8.根据权利要求6所述的方法,其中,基于所述第一解密点R’的横坐标确定第一对称秘钥包括:以所述第一解密点R’的横坐标为种子,通过约定的秘钥派生函数生成所述第一对称密钥。9.根据权利要求6所述的方法,其中,所述加密信息还包括初始向量IV;所述利用所述第一对称秘钥,解密所述消息密文C包括:利用所述第一对称秘钥解密所述消息密文C,得到中间运算结果;利用所述初始向量IV与所述中间运算结果进行第二运算,用以得到明文。10.根据权利要求6所述的方法,其中,所述加密消息还包括消息验证码;所述方法还包括,基于所述消息验证码对所述消息密文C进行校验。11.根据权利要求6所述的方法,还包括,在所述第一解密操作解密成功的情况下,将所述第一解密操作得到的解密结果,作为所述消息密文C对应的明文消息m。12.根据权利要求6所述的方法,还包括,在所述第一解密操作解密失败的情况下,对所述w个秘钥密文中的第二秘钥密文,利用所述乘法逆元,对该第二秘钥密文在该有限域上的约定椭圆曲线中的对应点进行乘法操作,得到第二解密点;基于所述第二解密点的横坐标确定第二对称密钥;利用所述第二对称秘钥,对所述消息密文C进行第二解密操作。13.根据权利要求12所述的方法,其中,在利用与所述w个秘钥密文分别对应的w个对称秘钥进行的w次解密操作均失败的情况下,确定所述消息接收方不是所述w个选定接收方之一。14.一种多播通信中的加密装置,部署在消息发送方,所述加密装置包括:加密点生成单元,配置为在约定的有限域中生成随机数k,并在该有限域上的约定椭圆曲线中,利用该随机数k对该椭圆曲线的基点进行乘法操作,得到椭圆曲线上的加密点R;对称密钥确定单元,配置为基于所述加密点R的横坐标确定对称秘钥sk;对称加密单元,配置为利用所述对称秘钥sk,采用对称加密算法加密消息明文m,生成消息密文C;公钥集合获取单元,配置为获取w个选定接收方的公钥集合,其中各个选定接收方的公钥Qi由该选定接收方利用其保存的私钥di对所述椭圆曲线的基点进行乘法操作而生成;秘钥密文生成单元,配置为利用所述随机数k,对各个公钥Qi对应的椭圆曲线上的点进行乘法操作,生成对应的秘钥密文Ki,从而得到w个秘钥密文;加密消息生成单元,配置为至少根据所述消息密文C和所述w个秘钥密文,生成加密消息;消息广播单元,配置为在多播通信网络中广播所述加密消息。15.根据权利要求14所述的装置,其中,所述对称秘钥确定单元配置为:将所述加密点R的横坐标作为所述对称秘钥sk;或者,将所述加密点R的横坐标对所述有限域的阶取模,将取模结果作为所述对称秘钥sk。16.根据权利要求14所述的装置,其中,所述对称秘钥确定单元配置为:以所述加密点R的横坐标为种子,通过约定的秘钥派生函数生成所述对称密钥sk。17.根据权利要求14所述的装置,其中,所述对称加密单元配置为:利用初始向量IV与所述消息明文m进行第一运算,得到中间运算结果;利用所述对称秘钥sk加密所述中间运算结果;所述加密消息生成单元配置为:基于所述消息密文C,所述初始向量IV和所述w个秘钥密文,生成加密消息。18.根据权利要求14所述的装置,其中,所述对称加密单元配置为:基于所述消息密文C生成消息验证码;所述加密消息生成单元配置为:基于所述消息密文C,所述消息验证码和所述w个秘钥密文,生成加密消息。19.一种多播通信中的解密装置,部署在消息接收方,该消息接收方保存有私钥d,所述解密装置包括:消息接收单元,配置为接收加密消息,所述加密消息包括消息密文C和w个秘钥密文,所述w个秘钥密文分别基于w个选定接收方的公钥而生成;解密点生成单元,配置为对所述w个秘钥密文中的第一秘钥密文,利用所述私钥d在约定的有限域中的乘法逆元,对该第一秘钥密文在该有限域上的约定椭圆曲线中的对应点进行乘法操作,得到第一解密点R’;对称秘钥确定单元,配置为基于所述第一解密点R’的横坐标确定第一对称密钥;对称解密单元,配置为利用所述第一对称秘钥,对所述消息密文C进行第一解密操作。20.根据权利要求19所述的装置,其中,所述对称秘钥确定单元配置为:将所述第一解密点R’的横坐标作为所述第一对称秘钥;或者,将所述第一解密点R’的横坐标对所述有限域的阶取模,将取模结果作为所述第一对称秘钥。21.根据权利要求19所述的装置,其中,所述对称秘钥确定单元配置为:以所述第一解密点R’的横坐标为种子,通过约定的秘钥派生函数生成所述第一对称密钥。22.根据权利要求19所述的装置,其中,所述加密信息还包括初始向量IV;所述对称解密单元配置为:利用所述第一对称秘钥解密所述消息密文C,得到中间运算结果;利用所述初始向量IV与所述中间运算结果进行第二运算,用以得到明文。23.根据权利要求19所述的装置,其中,所述加密消息还包括消息验证码;所述对称解密单元配置为,基于所述消息验证码对所述消息密文C进行校验。24.根据权利要求19所述的装置,还包括明文获取单元,配置为在所述第一解密操作解密成功的情况下,将所述第一解密操作得到的解密结果,作为所述消息密文C对应的明文消息m。25.根据权利要求19所述的装置,其中在所述第一解密操作解密失败的情况下,所述解密点生成单元还配置为,对所述w个秘钥密文中的第二秘钥密文,利用所述乘法逆元,对该第二秘钥密文在该有限域上的约定椭圆曲线中的对应点进行乘法操作,得到第二解密点;所述对称密钥确定单元还配置为,基于所述第二解密点的横坐标确定第二对称密钥;所述对称解密单元还配置为,利用所述第二对称秘钥,对所述消息密文C进行第二解密操作。26.根据权利要求25所述的装置,还包括接收方判断单元,配置为,在所述对称解密单元利用与所述w个秘钥密文分别对应的w个对称秘钥进行的w次解密操作均失败的情况下,确定所述消息接收方不是所述w个选定接收方之一。27.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-13中任一项所述的方法。

百度查询: 创新先进技术有限公司 多播通信中的加密和解密方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。