一种密文处理方法、装置及系统的制作方法

文档序号:7994356阅读:367来源:国知局
专利名称:一种密文处理方法、装置及系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种密文处理方法、装置及系统。
背景技术
密文重加密技术是一种在不泄露密文信息的情况下,对密文进行变换,将接收密文转换成由密文接收端的公钥加密的密文的技术。具体来说,假设有两个用户A和B,其中用户A的公钥为pkA,私钥为skA ;用户B的公钥为pkB,私钥为skB。使用用户A和B的公/私钥信息,可以计算出一个代理密钥rkAB。 如果用户C持有代理密钥rkAB,那么用户C可以将使用pkA加密的消息转换为使用pkB加密的消息,在转换过程中,用户C无法看到消息的明文。完成转换后,用户B可以使用自己的私钥skB对转换后的密文进行解密,得到消息的明文。现有的密文重加密技术在合谋方面存在缺陷,也就是说,如果用户B和用户C合谋,那么他们可以计算出用户A的私钥的部分信息,使得用户A加密的消息不再安全。同时现有的密文重加密技术依赖于公钥基础设施(H(I),而公钥基础设施的扩展性较差,无法支持超大规模的用户群。

发明内容
本发明实施例提供一种密文处理方法、装置及系统,可以使用户加密的消息更安全,而且也可以根据需要由接收端执行重加密操作,使得消息的密文的处理更为灵活。本发明实施例提供了一种密文处理方法,包括密文发送端根据其选取的随机秘密值和获取的部分私钥,计算得到本端的私钥, 并根据所述随机秘密值和系统公共参数计算得到本端的公钥;根据本端的私钥和密文接收端公布的公钥,计算得到代理密钥,其中,密文接收端公布的公钥是所述密文接收端根据其选取的随机秘密值和系统公共参数计算得到的;发送所述代理密钥,以便于所述密文接收端获取到根据所述代理密钥对所述密文发送端发送的密文进行重加密操作后的密文。相应地,本发明实施例还提供了一种密文处理装置,包括加密模块,用于对消息进行加密,得到密文;密钥获取模块,用于根据本端选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,并根据所述随机秘密值和系统公共参数计算得到本端的公钥;计算模块,用于根据所述密钥获取模块计算得到的私钥和密文接收端公布的公钥,计算得到代理密钥,其中,密文接收端公布的公钥是所述密文接收端根据其选取的随机秘密值和系统公共参数计算得到的;发送模块,用于发送所述计算模块计算得到的代理密钥,以及所述加密模块加密得到的密文,以便于所述密文接收端获取到根据所述代理密钥对所述密文发送端发送的密文进行重加密操作后的密文。
相应地,本发明实施例还提供了一种密文处理系统,包括密文发送端,密文接收端,以及密钥生成机构,其中,所述密钥生成机构,用于发布系统公共参数,以及所述密文发送端和所述密文接收端对应的部分私钥;所述密文接收端,用于根据其选取的随机秘密值和系统公共参数计算得到其自身的公钥,并公布所述公钥;所述密文发送端,用于根据本端选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,根据所述随机秘密值和系统公共参数计算得到本端的公钥,并根据本端的私钥和所述密文接收端公布的公钥,计算得到代理密钥,并向所述密文接收端发送所述代理密钥;所述密文接收端还用于接收所述密文发送端发送的代理密钥,并根据所述代理密钥,对所述密文发送端发送的密文执行重加密操作,将密文转换为由自身公钥加密的密文, 并对转换后的由自身公钥加密的密文进行解密。相应地,本发明实施例还提供了另一种密文处理系统,包括密文发送端,密文接收端,代理,以及密钥生成机构,其中,所述密钥生成机构,用于发布系统公共参数,以及所述密文发送端和所述密文接收端对应的部分私钥;所述密文接收端,用于根据其选取的随机秘密值和系统公共参数计算得到其自身的公钥,并公布所述公钥;所述代理与所述密文接收端和密文发送端相连接;所述密文发送端,用于根据本端选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,根据所述随机秘密值和系统公共参数计算得到本端的公钥,并根据本端的私钥和所述密文接收端公布的公钥,计算得到代理密钥,并向所述代理发送所述代理密钥;所述代理还用于接收所述密文发送端发送的代理密钥,并根据所述代理密钥,对所述密文发送端发送的密文执行重加密操作,将所述密文转换为由所述密文接收端的公钥加密的密文,并将转换后的密文发送给所述密文接收端;所述密文接收端还用于对所述转换后的密文进行解密。实施本发明实施例,通过选取随机秘密值来计算公钥以及私钥,避免使用公钥基础设施(PKI),从而实现了更好的扩展性。通过生成并使用特殊结构的代理密钥,可避免由于接收端和代理合谋可任意解密本端加密的消息的缺陷,不仅可以使用户加密的消息更安全,而且也可以根据需要由接收端执行重加密操作,使得消息的密文的处理更为灵活。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例的一种密文处理系统的结构组成示意图2是本发明实施例的另一种密文处理系统的结构组成示意图;图3是本发明的密文处理装置的第一实施例结构组成示意图;图4是本发明的密文处理装置的第二实施例结构组成示意图;图5是本发明的密文处理方法的第一实施例的流程示意图;图6是本发明的密文处理方法的第二实施例的流程示意图;图7是本发明的密文处理方法的第三实施例的流程示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参见图1,是本发明实施例的一种密文处理系统的结构组成示意图,本实施例中的所述系统包括密文发送端10,密文接收端20,以及密钥生成机构30。其中,所述密钥生成机构30为一密钥生成以及发布的服务器。本实施例中,密文发送端10记为用户A端,密文接收端20记为用户B端。所述密钥生成机构30,用于发布系统公共参数,以及所述密文发送端10和所述密文接收端20对应的部分私钥;所述密文接收端20,用于根据其选取的随机秘密值和系统公共参数计算得到其自身的公钥,并公布所述公钥;所述密文发送端10,用于根据本端选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,根据所述随机秘密值和系统公共参数计算得到本端的公钥,并根据本端的私钥和所述密文接收端20公布的公钥,计算得到代理密钥,并向所述密文接收端20发送所述代理密钥;所述密文接收端20还用于接收所述密文发送端10发送的代理密钥,并根据所述代理密钥,对所述密文发送端10发送的密文执行重加密操作,将密文转换为由自身公钥加密的密文,并对转换后的由自身公钥加密的密文进行解密。具体的,所述密文发送端10获取本端的部分私钥从所述密钥生成机构30处获取。 所述密文发送端10根据该部分私钥和其随机选取得到的随机秘密值计算获得本端的私钥。同样,所述密文接收端20可根据该方式获得所述密文接收端20自身的私钥。其中,本实施例的所述密钥生成机构30生成系统公共参数和所述密文发送端10 和密文接收端20的部分私钥的方式可以为所述密钥生成机构30生成系统公共参数预设素阶循环群G1和(;2,并得到从双线性映射e =G1XG1 — G2,其中,G1是椭圆曲线上的点群, 是有限域上乘法群^和( 上的运算都表示为“乘法”运算,具体的运算规则按椭圆曲线和有限域上的运算规则执行;随机选取G1中的生成元g,选择哈希函数H1 {0. 1}* — G1, H2 =G2 — G1,其中,两个哈希函数的计算过程为=H1将输入的任意长度的0、1串作为一个整数i,计算f作为输出,H2将输入的( 上的任意元素作为一个整数i,计算f作为输出;密钥生成机构30随机选取一个整数s作为其自身的主秘密,计算得到gs作为基础参数。所述密钥生成机构30将所述预设的素阶循环群&和(;2、g、两个哈希函数H1和H2、以及基础参数€作为公共参数发布。可以理解的是, 此处的哈希函数H1和H2仅为选取的其中一种哈希函数组合,具体实施时,还可以使用其他具体的哈希函数。对于所述密文发送端10,所述密钥生成机构30采用公式 = H1(icIa)计算得到 A,其中idA是所述密文发送端10的身份标识,例如电子邮件地址。然后将《作为所述密文发送端10的部分私钥发送给所述密文发送端10。同理,可得到密文接收端20的部分私钥,并发送给密文接收端20。所述密文发送端10在接收到部分私钥后,可以首先随机选取整数xA和t作为随机秘密值。然后根据获取的本端部分私钥、所述随机秘密值和所述系统公共参数,计算自身的私钥和公钥。所述密文发送端10获取公钥pkA的公式可以为:pkA = fe、#)。所述g的t次方表示t个g “相乘”,相乘的具体运算规则按椭圆曲线点群上的运算规则执行。所述密文发送端10根据上述选取的整数以及循环群G1上的元素《,计算本密文发送端 ο的私钥SkA的公式可以为-sm。同理,所述密文接收端20也可根据与所述密文发送端10相同的方式获取其自身的私钥和公钥。所述密文发送端10采用其自身的公钥对待加密的消息m进行加密具体可包括以下两种方式如果希望加密m得到的密文可以被代理给他人解密,所述密文发送端10随机选择一个整数 r,计算密文 C1 = ,g\m-e{gA, ))。而如果希望加密m得到的密文不可以被代理给他人解密,所述密文发送端10随机选择一个整数r,计算密文C12 =/)。将密文发送端10使用自己的公钥加密且希望不可以被代理给他人解密的加密结果C2简记为CBEaOii)。其中上述的e (参1,参幻是椭圆曲线上的双线性映射函数,具体计算可以使用米勒算法完成。所述密文发送端10计算代理密钥的过程为随机选择素阶循环群&中的一个元素X,计算代理密钥:rkA_B ={g-A ■//丨⑷,⑶&⑷)。其中CB& (χ)是使用密文接收端20的公钥对所述元素χ加密得到的结果。对于密文C1,密文接收端20使用代理密钥rkA_B进行密文重加密,计算 C =m-e(gA,gsx^■)=m ■ 丨,可得到重加密后的密文,即由密文接收端的公钥加密的密文C3,C3= (gtr,c',CBK(x))。本实施例中,避免了由于接收端和代理合谋可任意解密本端加密的消息的缺陷, 不仅可以使用户加密的消息更安全,而且也可以根据需要由接收端执行重加密操作,使得对消息的密文处理更为灵活。再请参见图2,是本发明实施例的另一种密文处理系统的结构组成示意图;本实施例中的所述系统包括密文发送端10,密文接收端20,代理40,以及密钥生成机构30。其中,所述密钥生成机构30为一密钥生成以及发布的服务器,所述代理40与所述密文接收端10和密文发送端20相连接,为一可执行重加密和密文转发的服务器。所述密钥生成机构30,用于发布系统公共参数,以及所述密文发送端和所述密文接收端对应的部分私钥;所述密文接收端20,用于根据其选取的随机秘密值和系统公共参数计算得到其自身的公钥,并公布所述公钥;所述密文发送端10,用于根据本端选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,根据所述随机秘密值和系统公共参数计算得到本端的公钥,并根据本端的私钥和所述密文接收端公布的公钥,计算得到代理密钥,并向所述代理发送所述代理密钥;所述代理40,用于接收所述密文发送端10发送的代理密钥,并根据所述代理密钥,对所述密文发送端10发送的密文执行重加密操作,将所述密文转换为由所述密文接收端20的公钥加密的密文,并将转换后的密文发送给所述密文接收端20 ;所述密文接收端20还用于对所述转换后的密文进行解密。在存在代理40的情况下,所述密钥生成机构30生成和发布系统公共参数,以及部分私钥的方式,所述密文接收端10和所述密文发送端20生成各自的私钥和公钥的方式,以及所述密文发送端生成代理密钥的方式、加密方式、重加密操作,与上述第一个系统实施例中的生成方式均相同。在本实施例中,重加密操作是由所述代理40执行,将所述密文发送端10发送的密文转换成由所述密文接收端20的公钥加密的密文,并将转换后的密文发送给所述密文接收端20。密文接收端20则直接根据其自身的私钥对转换后的密文进行解密, 得到消息的明文。本实施例中,可避免由于接收端和代理合谋可任意解密本端加密的消息的缺陷, 可以使用户加密的消息更为安全。再请参见图3,是本发明的密文处理装置的第一实施例结构组成示意图,所述密文处理装置可以作为上述系统实施例中的密文发送端10和密文接收端20,具体的,所述密文处理装置包括加密模块110,密钥获取模块120、计算模块130、发送模块140。加密模块110,用于对消息进行加密,得到密文。密钥获取模块120,用于根据本端选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,并根据所述随机秘密值和系统公共参数计算得到本端的公钥;计算模块130,用于根据所述密钥获取模块120计算得到的私钥和密文接收端公布的公钥,计算得到代理密钥,其中,密文接收端公布的公钥是所述密文接收端根据其选取的随机秘密值和系统公共参数计算得到的;发送模块140,用于发送所述计算模块130计算得到的代理密钥,以及所述加密模块110加密得到的密文,以便于所述密文接收端获取到根据所述代理密钥对所述密文发送端发送的密文进行重加密操作后的密文。所述密钥获取模块120在接收到系统公共参数和关于本端的部分私钥,可随机选取随机秘密值来计算得到本端的私钥和公钥。所述系统公共参数和关于本端的部分私钥可由密钥生成机构发布,所述密钥生成机构发布的系统公共参数包括预设的两个素阶循环群G1和(;2,预设的两个哈希函数H1和 H2,以及根据所述Gp G2, H1, H2、所述密钥生成机构随机选取的一个整数计算得到基础参数
对于本端记为用户A端,所述密钥生成机构采用公式gA = H1GcIa),计算得到gA, 然后将《作为本端的部分私钥发送给本端。所述密钥获取模块120可以首先随机选取整数Xk和t作为随机秘密值,然后根据公式pkA = fe ,Z)计算得到本端的公钥pkA ;根据公式& =《H十算得到本端的私钥SkA。在得到本端的公钥pkA和私钥skA后,如果本端作为发送端需要向其他密文设备即密文接收端(记为用户B)发送密文时,所述计算模块130会根据私钥对方公布的公钥,进行代理密钥的计算。其具体的计算方式可以为所述计算模块130随机选择素阶循环群( 中的一个元素X,计算代理密钥 rkA_B = (g-;^ _/^(X)5CSEs(χ))。其中CB&(x)是使用密文接收端的公钥对所述元素x加密得到的结果。所述发送模块140将所述代理密钥rkA_B发送给密文接收端,并将所述加密模块 110得到的密文发送给密文接收端。所述密文接收端对密文执行重加密,然后对重加密后的密文进行解密得到消息的明文。或者在存在代理转发的情况下,所述发送模块140将所述代理密钥发送给代理,并将所述加密模块110得到的密文发送给代理,所述代理对密文执行重加密后将重加密后的密文发送给所述密文接收端,由密文接收端进行解密得到消息的明文。进一步的,如图3所示,所述密文处理装置还可包括获取模块150。所述获取模块150,用于获取密钥生成机构发布的系统公共参数以及部分私钥,并随机选取随机秘密值。所述获取模块150与所述密钥获取模块120相连。即获取密钥生成机构发布的基础参数gs,素阶循环群G1和(;2,以及两个哈希函数H1和H2。进一步的,如图3所示,所述密文处理装置的加密模块110还可具体包括第一选取单元111,用于随机选择一个整数作为加密参数;第一密文生成单元112,用于根据所述加密参数和自身的公钥,对待加密消息进行加密计算,得到所述密文。具体的,所述加密模块110通过所述第一选取单元111和第一密文生成单元112 对消息进行加密包括以下两种方式如果希望加密m得到的密文可以被代理给他人解密,所述第一选取单元111随机选择一个整数r,第一密文生成单元112计算密文 =如果希望加密m得到的密文不可以被代理给他人解密,所述第一选取单元111随机选择一个整数r,第一密文生成单元112计算密文Q = &,OT. ‘&^^),其中,将本端使
用自己的公钥加密消息m且希望不可以被代理给他人解密的加密结果C2简记为CBEaOii)。对于密文C1,密文接收端或者代理使用代理密钥rkA_B进行密文重加密,计算 C = m-e(gA,g^) -e(g-A^ ■)=m■),可得到重加密后的密文,即由密文接收端的公钥加密的密文C3,C3= (gtr,C',CBK(X))。进一步的,如图3所示,所述密文处理装置还包括重加密模块160以及解密模块 170。所述密文处理装置通过所述该两个模块对密文发送端发送密文进行处理。
10
所述获取模块150还用于接收密文和代理密钥。所述重加密模块160,用于根据所述获取模块150接收到的代理密钥,对所述获取模块150接收到的密文执行重加密操作,将其转换为由本端的公钥加密的密文。所述解密模块170,用于根据本端的私钥,对所述重加密模块160转换得到的由本端的公钥加密的密文进行解密。通过选取特殊结构的代理密钥,可避免由于接收端和代理合谋可任意解密本端加密的消息的缺陷,不仅可以使用户加密的消息更安全,而且也可以根据需要由接收端执行重加密操作,使得消息的密文的处理更为灵活。再请参见图4,是本发明的密文处理装置的第二实施例结构组成示意图,本实施例的所述密文处理装置包括加密模块110,密钥获取模块120、计算模块130、发送模块140, 以及获取模块150、重加密模块160、解密模块170。其中,所述获取模块150除获取密钥生成机构发布的基础参数gs,素阶循环群&和 G2,以及两个哈希函数H1和H2,还需要获取一个密钥生成机构发布的哈希函数H3。所述密钥获取模块120则仍然根据所述密钥生成机构发送的gs和部分私钥gA =
H1GcIa),计算得到公钥;^ =fe、f),私钥先=^。所述计算模块130则仍然随机选择素阶循环群( 中的一个元素X,计算代理密钥 rkA_B = (g-^ _/^(χ),(^£β(χ))。其中CB&(x)是使用密文接收端的公钥对所述元素χ加密得到的结果。而所述加密模块110则通过第二选取单元113和第二密文生成单元114对待加密消息进行加密。具体为如果希望加密m得到的密文可以被代理给他人解密,通过所述第二选取单元113 从素阶循环群&中,选取一元素σ作为加密参数,通过所述第二密文生成单元114计算r
=H3(m,。),然后计算密文C4 ^^^",iT.efc^g /,σι);而如果希望加密m得到的密文不可以被代理给他人解密,通过所述第二选取单元 113从素阶循环群(;2中,选取一元素σ作为加密参数,通过所述第二密文生成单元114计
算 r = H3 (m,σ),然后计算密文 Q = {gr ,σ ■ e{gA,gsx- /,σ.,且 C5 记为 CBEa (m)。那么,所述重加密模块160根据rkA_B对所述C4执行的重加密操作为计算<^=0".而^ 广而- //办),《)=0^(//办)义),重加密后的密文则为
C6 = (gtr,C',σ . m, CBE' B(x))。通过选取随机秘密值来计算公钥以及私钥,可避免由于接收端和代理合谋可任意解密本端加密的消息的缺陷,不仅可以使用户加密的消息更安全,而且也可以根据需要由接收端执行重加密操作,使得消息的密文的处理更为灵活。下面对本发明的密文处理方法进行详细描述。请参见图5,是本发明的密文处理方法的第一实施例的流程示意图,其中,密文发送端记为用户A,密文接收端记为用户B。该密文处理方法包括SlOl 密文发送端根据其选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,并根据所述随机秘密值和系统公共参数计算得到本端的公钥。
所述密文发送端获取本端的部分私钥以及系统公共参数可以通过现有的方式从所述密钥生成机构处获取。其中,所述密钥生成机构生成系统公共参数和所述密文发送端的部分私钥的过程可以为所述密钥生成机构生成系统公共参数预设素阶循环群G1和(;2,并得到从双线性映射e =G1XG1 — G2,其中,G1是椭圆曲线上的点群, 是有限域上乘法群^和( 上的运算都表示为“乘法”运算,具体的运算规则按椭圆曲线和有限域上的运算规则执行;随机选取 G1中的生成元g,选择哈希函数H1 {0. 1}* — G1,H2 =G2 — G1,其中,两个哈希函数的计算过程为=H1将输入的任意长度的0、1串作为一个整数i,计算f作为输出,H2将输入的( 上的任意元素作为一个整数i,计算f作为输出;密钥生成机构随机选取一个整数s作为其自身的主秘密,计算得到gs作为基础参数。所述密钥生成机构将所述预设的素阶循环群G1和(;2、 g、两个哈希函数H1和H2、以及基础参数gs作为公共参数发布。可以理解的是,此处的哈希函数H1和吐仅为选取的其中一种哈希函数组合,具体实施时,还可以使用其他具体的哈希函数。对于所述密文发送端,所述密钥生成机构采用公式:gA = H1GcIa),计算得到&,其中idA是所述密文发送端10的身份标识,例如电子邮件地址。然后将《作为所述密文发送端的部分私钥发送给所述密文发送端。接收到部分私钥以及系统公共参数后,所述密文发送端可以首先随机选取整数Xa 和t作为随机秘密值,然后根据公式= feA,^)计算得到本端的公钥pkA,所述g的t次方表示t个g “相乘”,相乘的具体运算规则按椭圆曲线点群上的运算规则执行。根据公式先=《、十算得到本端的私钥skA。在需要向某一密文接收端发送密文时,执行S102。S102:密文发送端根据本端的私钥和密文接收端公布的公钥,计算得到代理密钥, 其中,密文接收端公布的公钥是所述密文接收端根据其选取的随机秘密值和系统公共参数计算得到的。密文接收端的公钥以及私钥的生成与上述SlOl中的密文发送端的相同。在得到本端的公钥pkA和私钥skA后,所述密文发送模块会根据私钥sk*和对方公布的公钥,进行代理密钥的计算。其具体的计算方式可以为所述S102随机选择密钥生成机构发布的素阶循环群( 中的一个元素X,计算代理密钥:rkA—B=(^ ■化Oc),Cms(χ))。其中CBh(X)是使用密文接收端的公钥对所述元素X 加密得到的结果。S103 发送所述代理密钥,以便于所述密文接收端获取到根据所述代理密钥对所述密文发送端发送的密文进行重加密操作后的密文。所述S103可以将所述代理密钥发送给密文接收端,由所述密文接收端对密文发送端发送的密文执行重加密操作,使密文接收端获取到由密文接收端的公钥加密的密文, 以便于完成解密得到消息的明文。如果密文发送端和密文接收端是通过代理进行密文转发的,那么所述S103可以将所述代理密钥发送给所述代理,由所述代理对密文发送端发送的密文执行重加密操作, 并将根据所述代理密钥对所述密文发送端发送的密文进行重加密操作后的密文发送给所述密文接收端,使密文接收端获取到由密文接收端的公钥加密的密文,完成解密得到消息的明文。其中,密文发送端对待加密消息进行加密,生成并发送密文具体可以包括密文发送端随机选择一个整数作为加密参数;密文发送端根据所述加密参数和自身的公钥,对待加密消息进行加密计算,得到密文。或者,包括密文发送端随机选取( 中的一元素作为加密参数;密文发送端根据所述加密参数和自身的公钥,对待加密消息进行加密计算,得到密文。 通过选取特殊结构的代理密钥,可避免由于接收端和代理合谋可任意解密本端加密的消息的缺陷,不仅可以使用户加密的消息更安全,而且也可以根据需要由接收端执行重加密操作,使得消息的密文的处理更为灵活。再请参见图6,是本发明的密文处理方法的第二实施例的流程示意图。本实施例中密文发送端记为用户A和密文接收端记为用户B,所述密文处理方法包括S201 密文发送端获取密钥生成机构发布的系统公共参数以及本端的部分私钥。具体的,所述密钥生成机构发布的系统公共参数包括预设的两个素阶循环群G1 和G2,预设的两个哈希函数H1和H2,以及根据所述G1WyHpH2、所述密钥生成机构随机选取的一个整数计算得到基础参数。对于所述密文发送端,所述密钥生成机构可采用公式:gA = H1(IcIa)计算得到gA, 其中idA是所述密文发送端的身份标识,例如电子邮件地址。然后将《作为所述密文发送端的部分私钥发送给所述密文发送端。S202 密文发送端随机选取随机秘密值。S203:密文发送端根据其选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,并根据所述随机秘密值和系统公共参数计算得到本端的公钥。具体的,所述密文发送端在接收到部分私钥后,在所述S202可以首先随机选取整数^和t作为随机秘密值,然后在所述S203中,根据选取的获取公钥pkA的公式可以为…~ =fe ,f),所述g的t次方表示t个g “相乘”,相乘的具体运算规则按椭圆曲线点群上的运算规则执行。根据选取的^,以及《,本密文发送端的私钥skA的公式可以为 sK = Saa °用户A希望通过密文发送端向用户B的密文接收端发送密文时,执行S204。S204 密文发送端随机选择一个整数作为加密参数。S205 密文发送端根据所述加密参数和自身的公钥,对待加密消息进行加密计算, 得到密文。具体的,如果希望加密得到的密文可以被代理给他人解密,所述密文发送端通过 S204随机选择一个整数r,通过S205计算密文C1 = ,m . C^4/而如果希望加密得到的密文不可以被代理给他人解密,所述密文发送端通过所述 S204随机选择一个整数r,通过所述S205计算密文C2 = (f,ra . e^^gA /且将密文发送端
使用自己的公钥加密且希望不可以被代理给他人解密的加密结果C2简记为CBEaOii)。其中e (参1,参幻是椭圆曲线上的双线性映射函数,具体计算可以使用米勒算法完成。
S206:密文发送端根据本端的私钥和密文接收端公布的公钥,计算得到代理密钥。所述S206随机选择所述素阶循环群( 中的一个元素X,计算代理密钥 rkA_B=(g-;^ _/^(X)5CIs(X))。其中CB&00是使用密文接收端的公钥对元素Χ加密得到的结果。S207 密文发送端发送所述密文和所述代理密钥。本实施例中,所述S207直接将所述S205得到的密文和所述S206得到的代理密钥发送给所述密文接收端。S208:密文接收端根据接收到的所述代理密钥对接收到的密文执行重加密操作, 得到由密文接收端的公钥加密的密文,并采用本端的私钥对所述由密文接收端的公钥加密的密文进行解密。具体的,例如对于上述的密文C1,密文接收端使用代理密钥rkA_B进行密文重加密, 计算Cv =Z^efc4,^^ .efc^ ■坎可得到重加密后的密文,即由密文接收端的公钥加密的密文C3,C3= (gtr,C' CBK(x))。密文接收端采用自身的私钥即可完成对密文C3的解密。需要说明的是,在其他实施例中,密文发送端可将所述密文和所述代理密钥发给代理,代理执行重加密操作后,把重加密操作的结果发送给密文接收端,密文接收端再根据其自身的私钥进行解密。通过选取随机秘密值来计算公钥以及私钥,可避免由于接收端和代理合谋可任意解密本端加密的消息的缺陷,不仅可以使用户加密的消息更安全,而且也可以根据需要由接收端执行重加密操作,使得消息的密文的处理更为灵活。再请参见图7,是本发明的密文处理方法的第三实施例的流程示意图。本实施例中包括用户A和用户B,所述密文处理方法包括S301 密文发送端获取密钥生成机构发布的系统公共参数以及本端的部分私钥。具体的,所述密钥生成机构发布的系统公共参数包括预设的两个素阶循环群G1 和G2,预设的两个哈希函数H1和H2,以及根据所述G1WyHpH2、所述密钥生成机构随机选取的一个整数计算得到基础参数。对于所述密文发送端,所述密钥生成机构可采用公式:gA = H1(IcIa)计算得到gA, 然后将《作为所述密文发送端的部分私钥发送给所述密文发送端。S302 密文发送端随机选取随机秘密值。S303 密文发送端根据其选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,并根据所述随机秘密值和系统公共参数计算得到本端的公钥。具体的,所述密文发送端在接收到部分私钥后,在所述S302可以首先随机选取^和t作为随机秘密值,然后在所述S303中,根据选取的获取公钥pkA的公式可以为…t =fe ,#),根据选取的以及《,计算本密文发送端的私钥skA的公式可以为
s^iA = SAa °用户A希望通过密文发送端向用户B的密文接收端发送密文时,执行S304。S304 密文发送端随机选取( 中的一元素作为加密参数。S305 密文发送端根据所述加密参数和自身的公钥,对待加密消息进行加密计算, 得到密文。
具体的,如果希望加密得到的密文可以被代理给他人解密,对消息m进行加密时, 通过所述S304从素阶循环群( 中选取一元素σ作为加密参数,通过所述S305计算r =
H3(m, ),然后计算密文Ο^Υ,σ.+^^/,σ. );而如果希望加密得到的密文不可以被代理给他人解密,对消息m进行加密时,通过所述S304从素阶循环群&中选取一元素σ作为加密参数,通过所述S305计算r =
H3(m,σ),然后计算密文C5 = (f, 7. ^,gsx4,σ. ),且 记为CBE' A(x)。S306:密文发送端根据本端的私钥和密文接收端公布的公钥,计算得到代理密钥。所述S306随机选择所述素阶循环群( 中的一个元素X,计算代理密钥 rkA_B = (g-;^ . Η'2(χχαΒΕΒ(χ))。其中CB& (χ)是使用密文接收端20的公钥对所述元素χ加密得到的结果。S307 密文发送端发送所述密文和所述代理密钥。本实施例中,所述S307直接将所述S305得到的密文和所述S306得到的代理密钥发送给所述密文接收端。S308:密文接收端根据接收到的所述代理密钥对接收到的密文执行重加密操作, 得到由密文接收端的公钥加密的密文,并采用本端的私钥对所述由密文接收端的公钥加密的密文进行解密。具体的,例如对于上述的密文C3,密文接收端使用代理密钥rkA_B进行密文重加密, 计算C’ =c.e(gA,g 广efe-重加密后的密文则为c6 = (gtr, c ‘,σ · m, CBEb (χ))。密文接收端采用自身的私钥即可完成对密文C6的解密。需要说明的是,在其他实施例中,密文发送端可将所述密文和所述代理密钥发给代理,代理执行重加密操作后,把重加密操作的结果发送给密文接收端,密文接收端再根据其自身的私钥进行解密。通过选取随机秘密值来计算公钥以及私钥,可避免由于接收端和代理合谋可任意解密本端加密的消息的缺陷,不仅可以使用户加密的消息更安全,而且也可以根据需要由接收端执行重加密操作,使得消息的密文的处理更为灵活。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1.一种密文处理方法,其特征在于,包括密文发送端根据其选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,并根据所述随机秘密值和系统公共参数计算得到本端的公钥;根据本端的私钥和密文接收端公布的公钥,计算得到代理密钥,其中,密文接收端公布的公钥是所述密文接收端根据其选取的随机秘密值和系统公共参数计算得到的;发送所述代理密钥,以便于所述密文接收端获取到根据所述代理密钥对所述密文发送端发送的密文进行重加密操作后的密文。
2.如权利要求1所述的方法,其特征在于,所述密文发送端根据其选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,并根据所述随机秘密值和系统公共参数计算得到本端的公钥之前,还包括密文发送端获取密钥生成机构发布的系统公共参数以及本端的部分私钥;其中,所述密钥生成机构发布的系统公共参数包括预设的两个素阶循环群(^1和(^G1的生成元g,预设的两个哈希函数H1和H2,以及根据所述Gp (;2、g、H1, H2、所述密钥生成机构随机选取的一个整数计算得到基础参数;密文发送端随机选取随机秘密值。
3.如权利要求1或2所述的方法,其特征在于,还包括密文发送端对待加密消息进行加密,生成并发送密文,本步骤包括密文发送端随机选择一个整数作为加密参数;密文发送端根据所述加密参数和自身的公钥,对待加密消息进行加密计算,得到密文。
4.如权利要求2所述的方法,其特征在于,还包括密文发送端对待加密消息进行加密,生成并发送密文,本步骤包括密文发送端随机选取&中的一元素作为加密参数;密文发送端根据所述加密参数和自身的公钥,对待加密消息进行加密计算,得到密文。
5.如权利要求1至4任一项所述的方法,其特征在于,所述发送所述代理密钥,以便于所述密文接收端获取到根据所述代理密钥对所述密文发送端发送的密文进行重加密操作后的密文,包括密文发送端向所述密文接收端发送所述代理密钥,以使所述密文接收端根据所述代理密钥,将由所述密文发送端生成并发送的密文执行重加密操作,获取由密文接收端的公钥加密的密文,并对获取的由密文接收端的公钥加密的密文进行解密。
6.如权利要求1至4任一项所述的方法,其特征在于,所述发送所述代理密钥,以便于所述密文接收端获取到根据所述代理密钥对所述密文发送端发送的密文进行重加密操作后的密文,包括密文发送端向代理发送所述代理密钥,以使所述代理根据所述代理密钥,将由所述密文发送端生成并发送的密文执行密文重加密操作,获取由密文接收端的公钥加密的密文, 并将获取的由密文接收端的公钥加密的密文发送给所述密文接收端,由所述密文接收端对转换后的密文进行解密;其中,所述代理分别与所述密文发送端和密文接收端相连接,用于执行对密文的重加密操作以及转发重加密结果。
7.一种密文处理装置,其特征在于,包括加密模块,用于对消息进行加密,得到密文;密钥获取模块,用于根据本端选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,并根据所述随机秘密值和系统公共参数计算得到本端的公钥;计算模块,用于根据所述密钥获取模块计算得到的私钥和密文接收端公布的公钥,计算得到代理密钥,其中,密文接收端公布的公钥是所述密文接收端根据其选取的随机秘密值和系统公共参数计算得到的;发送模块,用于发送所述计算模块计算得到的代理密钥,以及所述加密模块加密得到的密文,以便于所述密文接收端获取到根据所述代理密钥对所述密文发送端发送的密文进行重加密操作后的密文。
8.如权利要求7所述的装置,其特征在于,还包括获取模块,用于获取密钥生成机构发布的所述系统公共参数以及本端的部分私钥,并随机选取随机秘密值;其中,所述密钥生成机构发布的系统公共参数包括预设的两个素阶循环群G1和(^G1 的一个生成元g,预设的两个哈希函数H1和H2,以及根据所述‘^^、!^、知所述密钥生成机构随机选取的一个整数计算得到基础参数。
9.如权利要求7或8所述的装置,其特征在于,所述加密模块包括 第一选取单元,用于随机选择一个整数作为加密参数;第一密文生成单元,用于根据所述加密参数和自身的公钥,对待加密消息进行加密计算,得到所述密文。
10.如权利要求8所述的装置,其特征在于,所述加密模块包括 第二选取单元,用于随机选取( 中的一元素作为加密参数;第二密文生成单元,用于根据所述加密参数和自身的公钥,对待加密消息进行加密计算,得到密文。
11.如权利要求7至10任一项所述的装置,其特征在于, 所述获取模块还用于接收密文和代理密钥;所述装置还包括重加密模块,用于根据所述接收模块接收到的代理密钥,对所述接收模块接收到的密文执行重加密操作,将其转换为由本端的公钥加密的密文;解密模块,用于根据本端的私钥,对所述重加密模块转换得到的由本端的公钥加密的密文进行解密。
12.一种密文处理系统,其特征在于,包括密文发送端,密文接收端,以及密钥生成机构,其中,所述密钥生成机构,用于发布系统公共参数,以及所述密文发送端和所述密文接收端对应的部分私钥;所述密文接收端,用于根据其选取的随机秘密值和系统公共参数计算得到其自身的公钥,并公布所述公钥;所述密文发送端,用于根据本端选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,根据所述随机秘密值和系统公共参数计算得到本端的公钥,并根据本端的私钥和所述密文接收端公布的公钥,计算得到代理密钥,并向所述密文接收端发送所述代理密钥;所述密文接收端还用于接收所述密文发送端发送的代理密钥,并根据所述代理密钥, 对所述密文发送端发送的密文执行重加密操作,将密文转换为由自身公钥加密的密文,并对转换后的由自身公钥加密的密文进行解密。
13. —种密文处理系统,其特征在于,包括密文发送端,密文接收端,代理,以及密钥生成机构,其中,所述密钥生成机构,用于发布系统公共参数,以及所述密文发送端和所述密文接收端对应的部分私钥;所述密文接收端,用于根据其选取的随机秘密值和系统公共参数计算得到其自身的公钥,并公布所述公钥;所述代理与所述密文接收端和密文发送端相连接;所述密文发送端,用于根据本端选取的随机秘密值和获取的部分私钥,计算得到本端的私钥,根据所述随机秘密值和系统公共参数计算得到本端的公钥,并根据本端的私钥和所述密文接收端公布的公钥,计算得到代理密钥,并向所述代理发送所述代理密钥;所述代理,用于接收所述密文发送端发送的代理密钥,并根据所述代理密钥,对所述密文发送端发送的密文执行重加密操作,将所述密文转换为由所述密文接收端的公钥加密的密文,并将转换后的密文发送给所述密文接收端;所述密文接收端还用于对所述转换后的密文进行解密。
全文摘要
本发明实施例公开了一种密文处理方法、装置及系统,所述方法包括密文发送端选取随机秘密值;根据本端获取的部分私钥和所述随机秘密值,计算得到本端的私钥;根据本端的私钥和密文接收端公布的公钥,计算得到代理密钥,其中,密文接收端公布的公钥是所述密文接收端根据其选取的随机秘密值和系统公共参数计算得到的;发送所述代理密钥,以便于所述密文接收端获取到根据所述代理密钥对所述密文发送端发送的密文进行密文转换后的密文并进行解密。采用本发明实施例,可有效避免密文重加密技术在合谋方面存在的缺陷,较好地保证信息安全,同时本发明的实现避免了使用公钥基础设施(PKI),具有更好的扩展性。
文档编号H04L9/30GK102404121SQ20111039025
公开日2012年4月4日 申请日期2011年11月30日 优先权日2011年11月30日
发明者吴晓昕, 张新文, 徐磊 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1