多接收者代理重加密方法、系统、电子装置及存储介质

文档序号:25229341发布日期:2021-05-28 14:35阅读:184来源:国知局
多接收者代理重加密方法、系统、电子装置及存储介质

本发明涉及数据加密技术领域,尤其涉及一种多接收者代理重加密方法、系统、电子装置及存储介质。



背景技术:

代理重加密(proxyre-encryption,pre)是一种让密文进行安全转换的公钥加密体制。在代理重加密系统中,授权方(delegator)能够为被授权方(delegatee)产生重加密密钥,授权方将此重加密密钥交给代理方(proxy)后,代理方就能够将原本属于授权方公钥下的密文转换为被授权方公钥下的密文,然后被授权方就能使用自己的私钥对这个转换后的密文进行解密,并且代理方在密文转换的过程中,无法获取关于密文对应的明文的任何有用信息,从而实现文件的加密传输。

在传统的pre方案中,一次只能指定一个被授权方,若授权方想要将某份密文的解密权限授权给多个被授权方,则需要逐个生成重加密密钥,并分别为每个被授权方执行密文转换。即授权方需要为每一个被授权方单独生成重加密密钥并交给代理方,然后代理方需要为每一个被授权方分别执行密文转换。

假设系统中有n个被授权方,授权方想要将某份密文的解密能力授权给这n个被授权方,则需要生成n个重加密密钥,且代理方需要执行n次密文转换,并产生n个转换后的密文。在这种场景下,授权方与代理方的交互次数、代理方执行密文转换的次数较多,因此,研究支持n个被授权方的代理重加密对降低授权方与代理方的交互次数,降低代理方执行密文转换的次数有重大意义。



技术实现要素:

本发明的主要目的在于提供一种多接收者代理重加密方法、系统、电子装置及存储介质,旨在解决现有技术中授权方与代理方的交互次数、代理方执行密文转换的次数较多的技术问题。

为实现上述目的,本发明第一方面提供一种多接收者代理重加密方法,包括:获取加密方法所在操作系统的系统参数;获取授权方使用预先生成的第一私钥、所述系统参数生成的原始密文;获取被授权方使用预先生成的第二私钥、授权方预先生成的第二私钥生成并发出的请求密文转换的请求信息;获取授权方根据第一私钥及所有被授权方的所述请求信息集合生成的重加密密钥;使用所述重加密密钥及所述原始密文生成共享密文,完成加密,以使授权方根据所述第一私钥解密所述原始密文,并使被授权方根据所述第二私解密所述共享密文。

进一步地,所述系统参数包括:第一素数、第二素数、生成元,抗碰撞的第一哈希函数、第二哈希函数、第三哈希函数,第一安全参数及第二安全参数;第一素数p及第二素数q满足q|p-1,q的位长为lq,lq为预先获取的安全参数,生成元g为的q阶子群的生成元,第一哈希函数第二哈希函数第三哈希函数明文空间为

进一步地,授权方生成第一私钥的方法包括:随机选取使用xi1,xi2生成第一公钥及第一私钥,第一私钥ski=(xi1,xi2),第一公钥被授权方生成第二私钥的方法包括:随机选取使用xjt1,xjt2生成第二公钥及第二私钥,第二私钥skjt=(xjt1,xjt2),第二公钥

进一步地,授权方生成原始密文的方法包括:获取系统参数的明文空间中的明文,明文m满足随机选取并使用所述第一哈希函数、所述明文计算出r,r=h1(m,w);计算出d=vu,e=vr,s=u+r·h3(d,e,f)modq;使用d,e,f,v,s生成原始密文,原始密文cti=(d,e,f,v,s)。

进一步地,被授权方生成所述请求信息的方法包括:随机选取计算使用hjt、所述第一公钥的参数pki1、第二私钥的参数xjt1计算δjt,输出请求信息,请求信息rjt=(δjt,gjt,pkjt),并将所述请求信息作为公开参数。

进一步地,所述重加密密钥的生成方法包括:获取所有被授权方的请求信息集合r={rj1,rj2,…,rjn};计算1≤t≤n;计算计算1≤t≤n,并将作为公开参数;计算重加密密钥,重加密密钥

进一步地,共享密文的生成方法包括:获取原始密文及重加密密钥;判断是否成立,若成立,则计算若不成立,则输出错误符;输出共享密文,共享密文ctj=(e′,f);授权方解密原始密文的方法包括:获取第一私钥及原始密文;判断是否成立,若成立,则计算若不成立,则输出错误符;判断是否成立,若成立,则输出明文m,若不成立,则输出错误符;被授权方解密所述共享密文的方法包括:获取第二私钥skjt、共享密文ctj、公开参数δjt,pki1;计算判断是否成立,若成立,则输出明文m,若不成立,则输出错误符。

本发明第二方面提供一种多接收者代理重加密系统,包括:系统参数获取模块,用于获取加密方法所在操作系统的系统参数;授权方数据获取模块,用于获取授权方使用预先生成的第一私钥、所述系统参数生成的原始密文;被授权方数据获取模块,用于获取被授权方使用预先生成的第二私钥、授权方预先生成的第二私钥生成并发出的请求密文转换的请求信息;重加密模块,用于获取授权方根据第一私钥及所有被授权方的所述请求信息集合生成的重加密密钥;共享密文生成模块,用于使用所述重加密密钥及所述原始密文生成共享密文,完成加密,以使授权方根据所述第一私钥解密所述原始密文,并使被授权方根据所述第二私解密所述共享密文。

本发明第三方面提供一种电子装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述中的任意一项所述多接收者代理重加密方法。

本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述中的任意一项所述多接收者代理重加密方法。

本发明提供的一种多接收者代理重加密方法,有益效果在于:在进行加密的过程中,授权方产生一个重加密密钥,根据重加密密钥进行密文转换,得到共享密文的过程中,代理方只需执行一次密文转换,因此降低了代理方执行密文转换的次数。

另外,授权方在加密的过程中仅产生了一个重加密密钥,因此无需多次向代理方传输加密密钥,从而降低了授权方与代理方的交互次数。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例多接收者代理重加密方法的流程示意框图;

图2为本发明实施例多接收者代理重加密系统的结构示意框图;

图3为本大明实施例电子装置的结构示意框图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,为一种多接收者代理重加密方法,包括:s1、获取加密方法所在操作系统的系统参数;s2、获取授权方使用预先生成的第一私钥、系统参数生成的原始密文;s3、获取被授权方使用预先生成的第二私钥、授权方预先生成的第二私钥生成并发出的请求密文转换的请求信息;s4、获取授权方根据第一私钥及所有被授权方的请求信息集合生成的重加密密钥;s5、使用重加密密钥及原始密文生成共享密文,完成加密,以使授权方根据第一私钥解密原始密文,并使被授权方根据第二私解密共享密文。

在进行加密的过程中,授权方产生一个重加密密钥,根据重加密密钥进行密文转换,得到共享密文的过程中,代理方只需执行一次密文转换,因此降低了代理方执行密文转换的次数。

另外,授权方在加密的过程中仅产生了一个重加密密钥,因此无需多次向代理方传输加密密钥,从而降低了授权方与代理方的交互次数。

在本实施例中,将多接收者代理重加密方法定义为mrpre={setup,keygen,enc,requestgen,rekeygen,reenc,deci,decj}。令ui表示授权方,n个被授权方(n个接收者)表示为集合{uj1,uj2,…,ujn}。mrpre中的各个算法设计如下实施例所述:

在一个实施例中,系统参数包括:第一素数、第二素数、生成元,抗碰撞的第一哈希函数、第二哈希函数、第三哈希函数,第一安全参数及第二安全参数。

setup(lq):输入安全参数lq,选择两个大素数p和q,要求q|p-1,q的位长度为lq。第一素数p及第二素数q满足q|p-1,q的位长为lq,lq为预先获取的安全参数,生成元g为的q阶子群g的生成元,第一哈希函数第二哈希函数第三哈希函数明文空间为系统参数param=(p,q,g,h1,h2,h3,l0,l1)。

在一个实施例中,keygen(param)用于授权方ui及被授权方使用此算法生成私钥和公钥,输出公私钥对(ski,pki);具体地,授权方生成第一私钥的方法包括:随机选取使用xi1,xi2生成第一公钥及第一私钥,第一私钥ski=(xi1,xi2),第一公钥被授权方生成第二私钥的方法包括:随机选取使用xjt1,xjt2生成第二公钥及第二私钥,第二私钥skjt=(xjt1,xjt2),第二公钥

在一个实施例中,enc(param):授权方ui以私钥ski和明文作为输入,输出原始密文cti;具体地,授权方生成原始密文的方法包括:获取系统参数的明文空间中的明文,明文m满足随机选取并使用第一哈希函数、明文计算出r,r=h1(m,w);计算出d=vu,e=vr,s=u+r·h3(d,e,f)modq;使用d,e,f,v,s生成原始密文,原始密文cti=(d,e,f,v,s)。

在一个实施例中,requestgen(skjt,pki):被授权方ujt输入私钥skjt以及授权方的公钥pki,输出ujt向ui请求密文转换的请求信息rjt;具体地,被授权方生成请求信息的方法包括:随机选取计算使用hjt、第一公钥的参数pki1、第二私钥的参数xjt1计算δjt,输出请求信息,请求信息rjt=(δjt,gjt,pkjt),并将请求信息作为公开参数。

在一个实施例中,rekeygen(ski,r):输入授权方ui的私钥ski以及n个被授权方的请求信息集合r={rj1,rj2,…,rjn},输出重加密密钥rkij。具体地,重加密密钥的生成方法包括:获取所有被授权方的请求信息集合r={rj1,rj2,…,rjn};计算1≤t≤n;计算计算1≤t≤n,其中,并将作为公开参数;计算重加密密钥,重加密密钥

在一个实施例中,reenc(cti,rkij):输入原始密文cti以及重加密密钥rkij,代理方将cti转换为n个被授权方{uj1,uj2,…,ujn}都能独立解密的共享密文ctj;具体地,共享密文的生成方法包括:获取原始密文及重加密密钥;判断是否成立,若成立,则计算若不成立,则输出错误符;输出共享密文,共享密文ctj=(e′,f)。

deci(ski,cti):对于原始密文cti=(d,e,f,v,s),授权方ui使用私钥ski对cti进行解密,输出明文m或错误符号⊥。具体地,授权方解密原始密文的方法包括:获取第一私钥及原始密文;判断是否成立,若成立,则计算若不成立,则输出错误符;判断是否成立,若成立,则输出明文m,若不成立,则输出错误符;对于转换后的共享密文ctj=(e′,f),n个接收者(被授权方)中的任意一个接收者ujt(1≤t≤n)均可使用私钥skjt对ctj进行解密。输入私钥skjt,转换后的密文ctj,以及公开参数δjt,pki1,输出明文m或错误符号⊥。具体地,被授权方解密共享密文的方法包括:获取第二私钥skjt、共享密文ctj、公开参数δjt,pki1;计算判断是否成立,若成立,则输出明文m,若不成立,则输出错误符。

在上述实施例中,主要为在rekeygen中提取各个接收者的请求信息中的秘密值,将这些秘密值进行连乘得出一个数值λ,使gλ作为重加密密钥的关键部分。在reenc密文转换算法中将gλ注入到新的密文中。这种新颖的方式使得各个被授权方都能独立的使用自身私钥以及一些公开参数就能在dec解密算法中恢复出gλ,进而完成后续的明文恢复。所以本发明提出的多接收者的代理重加密方案一次能够让多个接收者同时具备解密转换密文的能力。

请参阅图2,本申请实施例还提供一种多接收者代理重加密系统,包括:系统参数获取模块1、授权方数据获取模块2、被授权方数据获取模块3、重加密模块4及共享密文生成模块5;系统参数获取模块1用于获取加密方法所在操作系统的系统参数;授权方数据获取模块2用于获取授权方使用预先生成的第一私钥、系统参数生成的原始密文;被授权方数据获取模块3用于获取被授权方使用预先生成的第二私钥、授权方预先生成的第二私钥生成并发出的请求密文转换的请求信息;重加密模块4获取授权方根据第一私钥及所有被授权方的请求信息集合生成的重加密密钥;共享密文生成模块5用于使用重加密密钥及原始密文生成共享密文,完成加密,以使授权方根据第一私钥解密原始密文,并使被授权方根据第二私解密共享密文。

在一个实施例中,系统参数包括:第一素数、第二素数、生成元,抗碰撞的第一哈希函数、第二哈希函数、第三哈希函数,第一安全参数及第二安全参数;第一素数p及第二素数q满足q|p-1,q的位长为lq,lq为预先获取的安全参数,生成元g为的q阶子群的生成元,第一哈希函数第二哈希函数第三哈希函数明文空间为

在一个实施例中,授权方数据获取模块2包括:第一参数随机选取单元及第一公私钥生成单元;第一参数随机选取单元用于随机选取第一公私钥生成单元用于使用xi1,xi2生成第一公钥及第一私钥,第一私钥ski=(xi1,xi2),第一公钥

在一个实施例中,被授权防数据获取模块包括:第二参数随机选取单元、第二公私钥生成单元、第三参数随机选取单元、请求信息计算单元及请求信息输出单元;第二参数随机选取单元用于随机选取第二公私钥生成单元用于使用xjt1,xjt2生成第二公钥及第二私钥,第二私钥skjt=(xjt1,xjt2),第二公钥第三参数随机选取单元用于随机选取计算请求信息计算单元用于使用hjt、第一公钥的参数pki1、第二私钥的参数xjt1计算δjt,请求信息输出单元用于输出请求信息,请求信息rjt=(δjt,gjt,pkjt),并将请求信息作为公开参数。

在一个实施例中,重加密模块4包括:请求信息集合获取单元、参数计算单元及重加密密钥计算单元;请求信息集合获取单元用于获取所有被授权方的请求信息集合r={rj1,rj2,…,rjn};参数计算单元用于计算1≤t≤n;计算还用于计算1≤t≤n,其中,并将作为公开参数;重加密密钥计算单元用于计算重加密密钥,重加密密钥

在一个实施例中,共享密文生成模块5包括:第一获取单元、第一判断单元、第一计算单元及第一输出单元第一获取单元用于获取原始密文及重加密密钥;第一判断单元用于判断是否成立,若成立,则第一计算单元计算且第一输出单元输出共享密文,若不成立,则第一输出单元输出错误符。

在一个实施例中,系统还包括:授权方解密模块及被授权方解密模块,授权方解密模块用于授权方解密原始密文,被授权方解密模块用于被授权方解密共享密文。

在一个实施例中,授权方解密模块包括:第二获取单元、第二判断单元、第二计算单元及第二输出单元;第二获取单元用于获取第一私钥及原始密文;第二判断单元用于判断是否成立,若成立,则第二计算单元计算若不成立,则第二输出单元输出错误符;第二判断单元还用于判断第二计算单元计算的是否成立,若成立,则第二输出单元输出明文m,若不成立,则第二输出单元输出错误符。

在一个实施例中,被授权方解密模块包括:第三获取单元、第三判断单元、第三计算单元及第三输出单元;第三获取单元用于获取第二私钥skjt、共享密文ctj、公开参数δjt,pki1;第三计算单元用于计算第三判断单元用于判断第三计算单元计算的是否成立,若成立,则第三输出单元输出明文m,若不成立,则第三输出单元输出错误符。

本申请实施例提供一种电子装置,请参阅图3,该电子装置包括:存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序,处理器602执行该计算机程序时,实现前述中描述的多接收者代理重加密方法。

进一步的,该电子装置还包括:至少一个输入设备603以及至少一个输出设备604。

上述存储器601、处理器602、输入设备603以及输出设备604,通过总线605连接。

其中,输入设备603具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备604具体可为显示屏。

存储器601可以是高速随机存取记忆体(ram,randomaccessmemory)存储器,也可为非不稳定的存储器(non-volatilememory),例如磁盘存储器。存储器601用于存储一组可执行程序代码,处理器602与存储器601耦合。

进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述中的存储器601。该计算机可读存储介质上存储有计算机程序,该程序被处理器602执行时实现前述实施例中描述的多接收者代理重加密方法。

进一步的,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器601(rom,read-onlymemory)、ram、磁碟或者光盘等各种可以存储程序代码的介质。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上为对本发明所提供的一种多接收者代理重加密方法、系统、电子装置及存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1