首页> 中国专利> 代理签名和验证方法、装置、系统及存储介质

代理签名和验证方法、装置、系统及存储介质

摘要

本申请提供了一种代理签名和验证方法、装置、系统及存储介质,其中该方法包括:获取系统参数、第二私钥、第一公钥、代理秘钥、授权信息和目标消息,系统参数包括第一双线性映射函数;根据所述系统参数、所述授权信息和所述第一公钥对所述代理秘钥进行验证;在所述代理秘钥验证通过的情况下,根据所述系统参数、所述第二私钥和所述代理秘钥对所述目标消息进行签名,得到代理签名。利用上述方法,能够提高代理签名过程中的安全性。

著录项

  • 公开/公告号CN112906059A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 中国银联股份有限公司;

    申请/专利号CN202110072055.3

  • 发明设计人 沈建祥;韦张勇;廖永光;冯硕;

    申请日2021-01-19

  • 分类号G06F21/64(20130101);G06F21/60(20130101);

  • 代理机构11410 北京市中伦律师事务所;

  • 代理人钟锦舜

  • 地址 201203 上海市浦东新区含笑路36号

  • 入库时间 2023-06-19 11:16:08

说明书

技术领域

本申请属于数据安全技术领域,具体涉及一种代理签名和验证方法、装置、系统及计算机可读存储介质。

背景技术

本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认其为现有技术。

现实社会中,有些用户(下文称为“委托用户”)在业务办理期间中可能由于一些原因无法亲自进行签字,因而需要将自己的签名权临时委托给可靠的代理用户以便代理用户代替自己签字。例如,委托用户在出差或者患病时,可以委托可靠的代理用户对一些不怎么重要的合同进行签约。

为保障委托用户和代理用户的权益,提高代理签名过程的安全性,一方面要保证代理用户和委托用户对同一消息的签名是可区分的,另一方面要保证代理用户无法推导出委托用户的私钥。

发明内容

针对上述现有技术的问题,本申请实施例提出了一种代理签名方法、装置、系统及计算机可读存储介质。利用这种方法及装置,能够至少部分解决上述问题。

本申请的实施例中提供了以下方案:一种代理签名方法,包括:

获取系统参数、第二私钥、第一公钥、代理秘钥、授权信息和目标消息,其中,所述系统参数包括第一双线性映射函数,所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥;

根据所述系统参数、所述授权信息和所述第一公钥对所述代理秘钥进行验证;

在所述代理秘钥验证通过的情况下,根据所述系统参数、所述第二私钥和所述代理秘钥对所述目标消息进行签名,得到代理签名。

本申请的实施例中提供了以下方案:一种代理签名方法,包括:

获取系统参数、第二私钥、第一公钥、代理秘钥、授权信息和目标消息、以及第一身份信息、第一证书和第二证书,其中,所述系统参数包括第二双线性映射函数;所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥,所述系统参数还包括第三公钥,所述第三公钥是第三秘钥对中的公钥,所述第三秘钥对中的私钥为第三私钥,所述第一证书是根据所述第三私钥、所述第一公钥和所述第一身份信息生成的,所述第二证书是根据所述第三私钥、所述第二公钥和第二身份信息生成的,所述代理秘钥具体为根据所述系统参数、所述第一私钥和所述第一证书对所述授权信息的签名;

根据所述系统参数、所述授权信息、所述第一公钥、所述第一身份信息、所述第三公钥和所述第一证书对所述代理秘钥进行验证;

根据所述系统参数、所述第二私钥、所述代理秘钥和所述第二证书对所述目标消息进行签名。

本申请的实施例中提供了以下方案:一种代理签名验证方法,所述代理签名是根据系统参数、第二私钥和代理秘钥对目标消息进行的签名,所述系统参数包括第一双线性映射函数;所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥;所述代理签名验证方法包括:根据所述系统参数、所述第一公钥、所述第二公钥对所述代理签名进行验证。

本申请的实施例中提供了以下方案:一种代理签名验证方法,所述代理签名是根据系统参数、第二私钥、代理秘钥和第二证书对目标消息进行的签名,其中,所述系统参数包括第二双线性映射函数;所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥,所述系统参数还包括第三公钥,所述第三公钥是第三秘钥对中的公钥,所述第三秘钥对中的私钥为第三私钥,所述第一证书是根据所述第三私钥、所述第一公钥和所述第一身份信息生成的,所述第二证书是根据所述第三私钥、所述第二公钥和第二身份信息生成的,所述代理秘钥具体为根据所述系统参数、所述第一私钥和所述第一证书对所述授权信息的签名;所述方法包括:根据所述系统参数、所述第一公钥、所述第二公钥、所述第一身份信息、所述第二身份信息、所述第一证书和所述第二证书对所述代理签名进行验证。

本申请的实施例中提供了以下方案:一种代理签名装置,包括:

获取模块,用于获取系统参数、第二私钥、第一公钥、代理秘钥、授权信息和目标消息,其中,所述系统参数包括第一双线性映射函数,所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥;

代理秘钥验证模块,用于根据所述系统参数、所述授权信息和所述第一公钥对所述代理秘钥进行验证;

签名模块,用于在所述代理秘钥验证通过的情况下,根据所述系统参数、所述第二私钥和所述代理秘钥对所述目标消息进行签名,得到代理签名。

本申请的实施例中提供了以下方案:一种代理签名装置,包括:

获取模块,用于获取系统参数、第二私钥、第一公钥、代理秘钥、授权信息和目标消息、以及第一身份信息、第一证书和第二证书,其中,所述系统参数包括第二双线性映射函数;所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥,所述系统参数还包括第三公钥,所述第三公钥是第三秘钥对中的公钥,所述第三秘钥对中的私钥为第三私钥,所述第一证书是根据所述第三私钥、所述第一公钥和所述第一身份信息生成的,所述第二证书是根据所述第三私钥、所述第二公钥和第二身份信息生成的,所述代理秘钥具体为根据所述系统参数、所述第一私钥和所述第一证书对所述授权信息的签名;

所述代理秘钥验证模块用于:根据所述系统参数、所述授权信息、所述第一公钥、所述第一身份信息和所述第一证书对所述代理秘钥进行验证;

所述代理签名模块用于:根据所述系统参数、所述第二私钥、所述代理秘钥和所述第二证书对所述目标消息进行签名。

本申请的实施例中提供了以下方案:一种代理签名装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行前述的代理签名方法。

本申请的实施例中提供了以下方案:一种代理签名验证装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:前述代理签名验证方法。

本申请的实施例中提供了以下方案:一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行:前述代理签名方法或代理签名验证方法。

本申请的实施例中提供了以下方案:一种代理签名系统,包括前述的代理签名装置、前述的代理签名验证装置,以及包括系统参数生成装置、代理秘钥生成装置、秘钥对生成装置;所述系统参数生成装置,用于生成所述系统参数;所述秘钥对生成装置用于根据所述系统参数生成所述第一秘钥对和所述第二秘钥对;所述代理秘钥生成装置用于根据所述系统参数和所述第一私钥对所述授权信息签名。

本申请的实施例中提供了以下方案:一种代理签名系统,包括前述的代理签名装置、前述的代理签名验证装置,以及包括系统参数生成装置、代理秘钥生成装置、秘钥对生成装置和证书生成装置;

所述系统参数生成装置,用于生成所述系统参数;

所述秘钥对生成装置用于根据所述系统参数生成所述第一秘钥对和所述第二秘钥对;

所述代理秘钥生成装置用于根据所述系统参数和所述第一私钥对所述授权信息签名;

所述证书生成模块用于根据所述系统参数、所述第三私钥、所述第一公钥和所述第一身份信息生成所述第一证书,根据所述系统参数、所述第三私钥、所述第二公钥和所述第二身份信息生成所述第二证书。

在一些实施例中,本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:代理签名装置是根据系统参数、第二私钥和代理秘钥对目标消息进行签名的。若是由委托用户进行签名,其是根据第一私钥对目标消息进行签名。二者签名结果并不相同。对前者进行验证时需要根据系统参数、第一公钥和第二公钥进行验证,而后者进行验证时需要根据系统参数和第一公钥进行验证,二者验证方式并不同,从而能够区分该签名是代理用户所持的代理签名设备生成的还是由委托用户所持的设备(例如是本申请中的代理秘钥生成装置)生成的。进一步代理秘钥是根据系统参数和第一秘钥对授权信息的签名,代理秘钥既能保证授权信息的安全可靠,又能避免代理用户反推出第一私钥,保证了第一私钥的安全性。进一步,由于代理秘钥以及代理签名均是根据双线性映射函数生成的,代理秘钥和代理签名简短高效且安全性高。

应当理解,上述说明仅是本申请技术方案的概述,以便能够更清楚地了解本申请的技术手段,从而可依照说明书的内容予以实施。为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本申请的具体实施方式。

附图说明

通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的优点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:

图1为根据本申请实施例的代理签名系统的架构示意图;

图2为根据图1所示架构的代理签名方法的流程示意图;

图3为根据本申请实施例的代理签名系统的结构示意图;

图4为根据图3所示架构的代理签名方法的流程示意图;

图5是根据本申请实施例的代理签名装置的框图;

图6是根据本申请另一实施例的代理签名装置的框图。

图7是根据本申请另一实施例的代理签名验证装置的框图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

在本申请中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。

另外还需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

参考图1,在本申请的一个实施例中,代理签名系统包括:参数生成装置1、秘钥对生成装置2、代理秘钥生成装置3、代理签名生成装置4和代理签名验证装置5。代理秘钥生成装置3可以是委托用户所持有的设备,例如是手机或电脑。代理签名生成装置4是代理用户所持有的设备,例如是手机或电脑。代理签名生成装置4所生成的代理签名可由代理签名验证装置5进行验证。代理签名可以是由代理签名生成装置4直接传送给代理签名验证装置5的,也可以是代理签名生成装置4发送给其他设备,再由其他设备发送给代理签名验证装置5从而进行代理签名的验证。

参考图2并结合图1,本申请的实施例提供一种代理签名方法,包括以下步骤。

步骤101、获取系统参数、第二私钥、第一公钥、代理秘钥、授权信息和目标消息,其中,所述系统参数包括第一双线性映射函数,所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥。

系统参数可以从参数生成装置1获取。第二私钥可以从秘钥对生成装置2获取。代理秘钥可以从代理秘钥生成装置3获取。授权信息是委托用户发送给代理用户的,例如是由代理秘钥生成装置3发送给代理签名装置的。目标消息是需要被签名的内容。

具体地,参数生成装置1用于生成系统参数。秘钥对生成装置2用于根据系统参数生成第一秘钥对和第二秘钥对。秘钥对生成装置2将第一秘钥对中的第一私钥发送至代理秘钥生成装置3,将第二秘钥对中的第二私钥发送至代理签名生成装置4,将第一秘钥对中的第一公钥和第二秘钥对中的第二公钥发送至代理签名验证装置5。代理秘钥生成装置3将代理秘钥通过安全信道发送至代理签名生成装置4。

在该实施方式中,代理秘钥是代理秘钥生成装置3根据系统参数、第一私钥对授权信息进行签名得到的。授权信息例如是代理用户使用代理签名生成装置4代替委托用户进行代理签名的时间段、事项等的信息。

步骤102、根据所述系统参数、所述授权信息和所述第一公钥对所述代理秘钥进行验证。从此代理签名装置能够验证其获取到的授权信息是否正确。

步骤103、在所述代理秘钥验证通过的情况下,根据所述系统参数、所述第二私钥和所述代理秘钥对所述目标消息进行签名,得到代理签名。

代理签名装置是根据系统参数、第二私钥和代理秘钥对目标消息进行签名的。若是由委托用户进行签名,其是根据第一私钥对目标消息进行签名。二者签名结果并不相同。对前者进行验证时需要根据系统参数、第一公钥和第二公钥进行验证,而后者进行验证时需要根据系统参数和第一公钥进行验证,二者验证方式并不同,从而能够区分该签名是代理用户所持的代理签名设备生成的还是由委托用户所持的设备(例如是本申请中的代理秘钥生成装置3)生成的。进一步代理秘钥是根据系统参数和第一秘钥对授权信息的签名,代理秘钥既能保证授权信息的安全可靠,又能避免代理用户反推出第一私钥,保证了第一私钥的安全性。进一步,由于代理秘钥以及代理签名均是根据双线性映射函数生成的,代理秘钥和代理签名简短高效且安全性高。

在一些实施例中,所述系统参数还包括:第一预设大素数、第一加法循环群、第一乘法循环群、第一生成元和第一哈希函数,所述第一加法循环群的阶为所述第一预设大素数,所述第一乘法循环群的阶为所述第一预设大素数,所述第一生成元属于所述第一加法循环群,所述第一双线性映射的第一输入值和第二输入值属于所述第一加法循环群,所述第一双线性映射的输出值属于所述第一乘法循环群,所述第一哈希函数的输入值为二进制比特串,所述第一哈希函数的输出值属于所述第一加法循环群。

如用符号表达,例如可以将系统参数记为params,其中,params={G

在一些实施例中,所述第一公钥为以所述第一私钥为幂指数,对所述第一生成元执行幂运算得到的数值,所述第一私钥为小于或等于所述第一预设大素数的正整数。所述第二公钥为以所述第二私钥为幂指数,对所述第一生成元执行幂运算得到的数值,所述第二私钥为小于或等于所述第一预设大素数的正整数。

本申请中的“幂运算”均指的是重复执行“群”中的运算,如果该群是加法循环群,对一个数重复执行加法运算也就在数学上等效为将这个数乘以该幂指数的运算。在一些实施例中,该“幂运算”也可以是加法运算,或者是椭圆曲线运算。

如用符号表达,秘钥对生成模块所提供的第一秘钥对和第二秘钥对是这样生成的:随机选择

所述代理秘钥包括:第一数值和第二数值,所述第一数值为以第一保密数为幂指数,对所述第一生成元执行幂运算得到的输出值,所述第二数值为以所述第一私钥和所述第一保密数为幂指数,对所述第一哈希函数处理所述授权信息所得的输出值执行幂运算得到的输出值,所述第一保密数为随机选取的小于或等于所述第一预设大素数的非负整数

如用符号表达,代理秘钥生成装置3生成代理秘钥的过程如下:随机选择

代理秘钥既包含了授权信息,又包含了第一私钥的信息(也就是委托用户的身份信息)。

在一些实施例中,根据所述系统参数、所述授权信息和所述第一公钥对所述代理秘钥进行验证,包括:

将所述第二数值和所述第一生成元的输入所述第一双线性映射函数,得到第一输出值;

将所述授权信息输入所述第一哈希函数得到第二输出值;

将所述第二输出值、以及所述第一公钥与所述第一数值的和输入所述第一双线性映射函数,得到第三输出值;

判断所述第一输出值和所述第三输出值是否相等,如是则所述代理秘钥验证通过,否则所述代理秘钥验证不通过。

如用符号进行表达,代理秘钥的验证过程为:e(σ

在该实施方式中,代理秘钥是采用短签名算法得到,代理秘钥的验证是采用双线性映射的方式实现。签名简短高效,且安全性较高。

在一些实施例中,根据所述系统参数、所述第二私钥和所述代理秘钥对所述目标消息进行签名,得到代理签名,包括:

计算以第二保密数为幂指数,对所述生成元执行幂运算,得到第三数值,所述第二保密数为随机选取的小于或等于所述第一预设大素数的非负整数;

计算所述第一哈希函数处理所述目标消息所得输出值、所述第二私钥与所述第二保密数的和二者的乘积与所述第二数值的和,得到第四数值;

所述代理签名包括:所述第三数值、所述第二数值和所述第四数值。

代理签名中既包含了第二私钥的信息,也就是代理用户的信息,也包含了代理秘钥的信息,也就是委托用户对代理用户的授权的信息。

用符号表达上述过程为:随机选择

该实施方式中,代理签名是采用短签名算法得到,签名简短高效,且安全性较高。

在一些实施例中,该方法还包括:根据所述系统参数、所述第一公钥、所述第二公钥对所述代理签名进行验证。

在一些实施例中,根据所述系统参数、所述第一公钥、所述第二公钥对所述代理签名进行验证,包括:

将所述第四数值和所述第一生成元输入所述第一双线性映射函数,得到第八输出值;

将所述第一哈希函数处理所述目标消息得到的结果、所述第二公钥和所述第三数值的和输入所述第一双线性映射函数,得到第九输出值;

将所述第一哈希函数处理所述第一授权信息的结果、所述第一公钥和所述第一数值的和输入所述第一双线性映射函数,得到第十输出值值;

判断所述第九输出值和所述第十输出值的乘积与所述第八输出值是否相等,如相等则所述代理签名验证通过,否则所述代理签名验证不通过;

其中,所述第二公钥为以所述第一私钥为幂指数,对所述第一生成元执行幂运算得到的数值。

如用符号表示,e(U

参考图3,在另外一种代理签名系统的架构中,相较于图1所示架构,增加了证书生成装置6。证书生成装置6从参数生成装置1获取系统参数、第一公钥、第一身份信息(即委托用户的身份信息)、第二公钥、第二身份信息(即代理用户的身份信息)和第三私钥。第三私钥和第三公钥构成第三秘钥对,系统参数中还包含第三公钥。证书生成模块根据第三私钥对第一公钥和第一身份信息进行签名得到第一证书。证书生成模块根据第三私钥对第二公钥和第二身份信息进行签名得到第二证书。第一证书被发送至代理秘钥生成装置3,第二证书被发送至代理签名生成装置4。

基于以上架构,参考图4,代理签名装置生成代理签名的过程包括以下步骤。

步骤201、获取系统参数、第二私钥、第一公钥、代理秘钥、授权信息和目标消息、以及第一身份信息、第一证书和第二证书,其中,所述系统参数包括第二双线性映射函数;所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥,所述系统参数还包括第三公钥,所述第三公钥是第三秘钥对中的公钥,所述第三秘钥对中的私钥为第三私钥,所述第一证书是根据所述第三私钥、所述第一公钥和所述第一身份信息生成的,所述第二证书是根据所述第三私钥、所述第二公钥和第二身份信息生成的,所述代理秘钥具体为根据所述系统参数、所述第一私钥和所述第一证书对所述授权信息的签名。

步骤202、根据所述系统参数、所述授权信息、所述第一公钥、所述第一身份信息和所述第一证书对所述代理秘钥进行验证。

验证代理秘钥的过程也就同时验证了第一公钥、第一身份信息和授权信息的正确性。

步骤203、根据所述系统参数、所述第二私钥、所述代理秘钥和所述第二证书对所述目标消息进行签名。

第三私钥作为整个代理签名系统的主私钥,采用第三私钥对第一身份信息和第一公钥的哈希值签名生成第一证书,采用第三私钥对第二身份信息和第二公钥的哈希值签名生成第二证书。第一证书作为代理秘钥的一部分参与到代理秘钥的生成过程,验证代理秘钥的过程也就同时验证了第一用户的身份信息和第一公钥。第二证书作为代理签名的一部分参与到代理签名的生成过程,验证代理签名的过程也就同时验证了第二用户的身份信息和第二公钥。在这种实施方式中,无需认证机构(CA)提供第一公钥和第二公钥的认证。进一步,第一证书和第二证书均无需采用安全信道传输。

在一些实施例中,所述系统参数还包括:第二预设大素数、第二加法循环群、第二乘法循环群、第二生成元、第二双线性映射、第二哈希函数和第三哈希函数,所述第二加法循环群的阶为所述第二预设大素数,所述第二乘法循环群的阶为所述第二预设大素数,所述第二生成元属于所述第二加法循环群,所述第二双线性映射的第一输入值和第二输入值属于所述第二加法循环群,所述第二双线性映射的输出值属于所述第二乘法循环群,所述第二哈希函数的输入值为二进制比特串和一个属于所述第二加法循环群的数值,所述第二哈希函数的输出值属于所述第二加法循环群,所述第三哈希函数的输入值为二级制比特串,所述第三哈希函数的输出值属于所述第二加法循环群,所述第一证书为以第三私钥为幂指数,对以所述第一身份信息和所述第一公钥输入所述第二哈希函数得到的输出值再执行幂运算得到的输出值,所述第二证书为以所述第三私钥为幂指数,对以所述第二身份信息和所述第二公钥输入所述第二哈希函数得到的输出值再执行幂运算得到的输出值,所述第三私钥为小于或等于所述预设第二大素数的正整数,所述第三公钥为以所述第三私钥为幂指数,对所述第二生成元执行幂运算得到的输出值,所述第三公钥属于所述第二加法循环群。

如用符号表达,所述系统参数记为params,其中,params={G

在一些实施例中,所述第一秘钥对和所述第二秘钥对是按照如下方式生成的:随机选择

第一证书和第二证书是由证书生成模块所生成的。第一证书记为Cert

所述代理秘钥包括:第五数值和第六数值,所述第五数值为以第三保密数为幂指数,对所述第二生成元执行幂运算得到的输出值,所述第六数值为以所述第一私钥和所述第三保密数为幂指数,对所述第三哈希函数处理所述授权信息所得的输出值执行幂运算得到的输出值再与所述第一证书相加的和。

如有符号表示,所述代理秘钥是按照如下方式生成的:随机选择第三保密数

在一些实施例中,根据所述系统参数、所述授权信息、所述第一公钥、所述第一身份信息、所述第三公钥和所述第一证书对所述代理秘钥进行验证,包括:

将所述第六数值和所述第二生成元输入所述第二双线性映射函数,得到第四输出值;

将所述授权信息输入所述第三哈希函数得到第五输出值;

将所述第五输出值、以及所述第一公钥和所述第五数值的和输入所述第二双线性映射函数,得到第六输出值;

将所述第一身份信息和所述第三公钥输入所述第二哈希函数,得到第七输出值;

判断所述第六输出值和所述第七输出值的乘积是否等于所述第四输出值,如是则所述代理秘钥验证通过,否则所述代理秘钥验证不通过。

如用符号表达上述过程,e(σ

在一些实施例中,所述第二私钥为小于或等于所述第二预设大素数的正整数;

根据所述系统参数、所述第二私钥、所述代理秘钥和所述第二证书对所述目标消息进行签名,包括:

以第四保密数为幂指数,对所述第二生成元执行幂运算,得到第七数值;

以所述第二私钥和所述第四保密数的和为幂指数,对所述第三哈希函数处理所述目标消息的输出值再执行幂运算得到第八数值;

计算所述第八数值、所述第六数值和所述第二证书的和,得到第九数值;

所述代理签名包括:所述第五数值、所述第七数值和所述第九数值。

如用符号表示上述计算过程,则有随机选择第四保密数

在一些实施例中,还包括:根据所述系统参数、所述第一公钥、所述第二公钥、所述第一身份信息、所述第二身份信息、所述第一证书和所述第二证书对所述代理签名进行验证。

在一些实施例中,根据所述系统参数、所述第一公钥、所述第二公钥、所述第一身份信息、所述第二身份信息、所述第一证书和所述第二证书对所述代理签名进行验证,包括:

将所述第一身份信息和所述第一公钥输入所述第二哈希函数,得到第十一输出值;

将所述第二身份信息和所述第二公钥输入所述第二哈希函数,得到第十二输出值;

将所述第九数值和所述第二生成元输入所述第二双线性映射函数,得到第十三输出值;

将所述第三哈希函数处理所述目标消息的结果、所述第二公钥和所述第七数值的和输入所述第二双线性映射函数,得到第十四输出值;

将所述第三哈希函数处理所述授权信息的结果、所述第一公钥和所述第五数值的和输入所述第二双线性映射函数,得到第十五输出值;

将所述第十一输出值和所述第十二输出值的和、所述第三公钥输入所述第二双线性映射函数,得到第十六输出值;

判断所述第十四输出值、所述第十五输出值和所述第十六输出值三者的乘积与所第十三输出值是否相等,如相等则所述代理签名验证通过,否则所述代理签名验证不通过;

其中,所述第二公钥为以所述第一私钥为幂指数,对所述第一生成元执行幂运算得到的数值。

如用符号表示上述计算过程,则有:计算Q

图5为根据本申请一实施例的代理签名装置,用于执行前述代理签名方法中生成代理签名的步骤,该装置包括:

获取模块41,用于获取系统参数、第二私钥、第一公钥、代理秘钥、授权信息和目标消息,其中,所述系统参数包括第一双线性映射函数,所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥;

代理秘钥验证模块41,用于根据所述系统参数、所述授权信息和所述第一公钥对所述代理秘钥进行验证;

签名模块43,用于在所述代理秘钥验证通过的情况下,根据所述系统参数、所述第二私钥和所述代理秘钥对所述目标消息进行签名,得到代理签名。

在一些实施例中,获取模块41,用于获取系统参数、第二私钥、第一公钥、代理秘钥、授权信息和目标消息、以及第一身份信息、第一证书和第二证书,其中,所述系统参数包括第二双线性映射函数;所述代理秘钥为根据所述系统参数和第一私钥对所述授权信息的签名,所述第一私钥是根据所述系统参数生成的第一秘钥对中的私钥,所述第一公钥是所述第一秘钥对中的公钥,所述第二私钥是根据所述系统参数生成的第二秘钥对中的私钥,所述第二秘钥对中的公钥为第二公钥,所述系统参数还包括第三公钥,所述第三公钥是第三秘钥对中的公钥,所述第三秘钥对中的私钥为第三私钥,所述第一证书是根据所述第三私钥、所述第一公钥和所述第一身份信息生成的,所述第二证书是根据所述第三私钥、所述第二公钥和第二身份信息生成的,所述代理秘钥具体为根据所述系统参数、所述第一私钥和所述第一证书对所述授权信息的签名;

所述代理秘钥验证模块42用于:根据所述系统参数、所述授权信息、所述第一公钥、所述第一身份信息和所述第一证书对所述代理秘钥进行验证;

所述代理签名模块43用于:根据所述系统参数、所述第二私钥、所述代理秘钥和所述第二证书对所述目标消息进行签名。

以上各模块的工作原理与前述实施例相对应,各模块的详细运行过程不做赘述。

参考图6,基于与前述实施例相同的发明构思,本申请的实施例还提供一种代理签名装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:前述的代理签名方法。

参考图7,基于与前述实施例相同的发明构思,本申请的实施例还提供一种代理签名验证装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:前述代理签名验证方法。

本申请的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行:前述代理签名方法或前述的代理签名验证方法。

结合图1和图3,本申请的实施例还提供一种代理签名系统,包括前述述的代理签名装置、前述的代理签名验证装置,以及包括系统参数生成装置1、代理秘钥生成装置3和秘钥对生成装置2;

所述系统参数生成装置1,用于生成所述系统参数;

所述秘钥对生成装置2用于根据所述系统参数生成所述第一秘钥对和所述第二秘钥对;

所述代理秘钥生成装置3用于根据所述系统参数和所述第一私钥对所述授权信息签名。

由秘钥对生成装置2生成第一私钥和第二私钥,无需第三方机构的私钥生成器(PKG)生成第一私钥和第二私钥,不存在秘钥托管的问题。

在一些实施例中,所述系统参数包括:所述第一预设大素数、所述第一加法循环群、所述第一乘法循环群、所述第一生成元、所述第一双线性映射函数和所述第一哈希函数;

所述系统参数生成装置1具体用于:生成阶为所述第一预设大素数的所述第一加法循环群,生成阶为所述第一预设大素数所述第一乘法循环群,生成所述第一双线性映射,所述第一双线性映射函数的第一输入值和第二输入值属于所述第一加法循环群,所述第一双线性映射的输出值属于所述第一乘法循环群,从所述第一加法循环群中随机选择一个元素作为所述第一生成元,选择一个哈希函数作为所述第一哈希函数,所述第一哈希函数的输入值为二进制比特串,所述第一哈希函数的输出值属于所述第一加法循环群;

所述秘钥对生成装置2具体用于:随机选择一个小于或等于所述第一预设大素数的正整数作为所述第一私钥,所述第一公钥为以所述第一私钥为幂指数,对所述第一生成元执行幂运算得到的数值;随机选择一个小于或等于所述第一预设大素数的正整数作为所述第二私钥,所述第二公钥为以所述第二私钥为幂指数,对所述第一生成元执行幂运算得到的数值;

所述代理秘钥生成装置3具体用于以第一保密数为幂指数,对所述第一生成元执行幂运算得到所述第一数值,以所述第一私钥和所述第一保密数为幂指数,对所述第一哈希函数处理所述授权信息所得的输出值执行幂运算得到所述第二数值,其中,所述第一保密数为随机选取的小于或等于所述第一预设大素数的非负整数。

在一些实施例中,所述系统参数生成装置1还用于生成第三私钥和第三公钥,所述第三私钥和所述点公钥构成第三密钥对,所述系统参数还包括所述第三公钥;

所述秘钥对生成模块2还用于提供所述第一身份信息和所述第二身份信息;

所述系统还包括证书生成模块6,用于根据所述系统参数、所述第三私钥、所述第一公钥和所述第一身份信息生成所述第一证书,根据所述系统参数、所述第三私钥、所述第二公钥和所述第二身份信息生成所述第二证书;

所述代理秘钥生成装置3具体用于:根据所述系统参数、所述第一证书和所述第一私钥对所述授权信息签名,得到所述代理秘钥。

所述证书生成装置6具体用于:以第三私钥为幂指数,对以所述第一身份信息和所述第一公钥输入所述第二哈希函数得到的输出值再执行幂运算得到所述第一证书,以所述第三私钥为幂指数,以所述第二身份信息和所述第二公钥输入所述第二哈希函数得到的输出值再执行幂运算得到所述第二证书;

所述代理秘钥生成装置3具体用于:生成所述第五数值和所述第六数值,所述第五数值为以第三保密数为幂指数,对所述第二生成元执行幂运算得到的输出值,所述第六数值为以所述第一私钥和所述第三保密数为幂指数,对所述第三哈希函数处理所述授权信息所得的输出值执行幂运算得到的输出值再与所述第一证书相加的和。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了简化,相关之处可参见方法实施例的部分说明即可。

本申请实施例提供的装置、系统和计算机可读存储介质与方法是一一对应的,因此,装置、系统和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置和计算机可读存储介质的有益技术效果。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本申请的精神和原理,但是应该理解,本申请并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本申请旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号