基于身份基加密的层级签名加密系统与构建方法转让专利

申请号 : CN202110430499.X

文献号 : CN113259093B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈宇

申请人 : 山东大学

摘要 :

本发明提供了一种基于身份基加密的层级签名加密系统与构建方法,本发明可部署于需要企业级的内部协同办公平台如Slack或者隐私保护的区块链平台上;在提供可认证机密通信服务的同时支持个体解密私钥托管;从而允许解密服务外包或机密信息的监管。

权利要求 :

1.一种基于身份基的层级签名加密方法,其特征是:包括以下步骤:{n+1}

系统建立方运行IBE的系统参数生成算法得到参数pp_ibe;令id* = 1 ;输出公共参数pp=(pp_ibe;id*);

基于身份基加密生成主公钥mpk和主私钥msk,确定主公钥mpk为公钥pk,主私钥msk作为签名私钥sk,计算身份id*的私钥作为解密私钥;

密文发送方以待加密消息m和接收方公钥pk为输入,将接收方公钥pk作为主公钥,利用身份基加密的加密算法在身份id*下加密待加密消息m得到密文c;

密文接收方以解密私钥dk和密文c为输入,将解密私钥dk解析为身份id*的私钥,利用身份基加密的解密算法对密文c进行解密得到消息m;

签名方将签名私钥sk解析为主私钥msk,利用身份基加密的私钥抽取算法计算签名身份id的私钥sk_id作为消息m的签名sigma;

验证方在签名身份id下加密随机明文得到密文c,以签名作为私钥进行解密,确定签名是否正确。

2.如权利要求1所述的一种基于身份基的层级签名加密方法,其特征是:所述身份id*{n+1} {n+1}

为1 ,身份基加密的身份空间为{0,1} 。

3.如权利要求1所述的一种基于身份基的层级签名加密方法,其特征是:所述签名身份id=0||m。

4.如权利要求1所述的一种基于身份基的层级签名加密方法,其特征是:解密结果与明文相同则反馈签名正确信息;否则反馈签名错误信息。

5.一种计算机可读存储介质,其特征是:其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行权利要求1‑4中任一项所述的一种基于身份基的层级签名加密方法的步骤。

6.一种终端设备,其特征是:包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行权利要求

1‑4中任一项所述的一种基于身份基的层级签名加密方法的步骤。

说明书 :

基于身份基加密的层级签名加密系统与构建方法

技术领域

[0001] 本发明属于加密技术领域,具体涉及一种基于身份基加密的层级签名加密系统与构建方法。

背景技术

[0002] 本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
[0003] 在很多实际应用场景,需要部署签名加密系统,即同时提供数字签名算法和公钥加密算法。一个重要且实用的性质是密钥具有层级结构,即系统具有惟一公钥,签名私钥作
为主密钥,可以向下单向派生出解密私钥,且即使在解密私钥完全暴露的情形下签名的安
全性仍得以保持。支持私钥分层的签名加密系统相比普通的签名加密系统具有以下优势:
(1)即同一公钥既可用来加密消息也可用来验证签名,可显著降低系公钥证书使用和公钥
存储的开销;(2)天然支持个体私钥的安全托管,使得其在机密信息系统的合规性审计和代
理计算中有着重要的应用。
[0004] 据发明人了解,目前尚无支持私钥分层的签名加密系统,该课题是应用密码学领域的空白。已有的相关方案或不支持公钥重用,或不支持私钥分层。

发明内容

[0005] 本发明为了解决上述问题,提出一种基于身份基加密的层级签名加密系统与构建方法,本发明可部署于需要企业级的内部协同办公平台如Slack或者隐私保护的区块链平
台上;在提供可认证机密通信服务的同时支持个体解密私钥托管;从而允许解密服务外包
或机密信息的监管。
[0006] 根据一些实施例,本发明采用如下技术方案:
[0007] 一种基于身份基的层级签名加密方法,包括以下步骤:
[0008] 配置底层身份基的身份空间,系统参数和身份id*,基于系统参数和身份id*确定公共参数;
[0009] 生成主公钥和主私钥,将主公钥作为公钥,主私钥作为签名私钥,计算解密私钥;
[0010] 密文发送方将接收方公钥pk作为主公钥,利用身份基加密的加密算法在身份id*下加密待加密消息m得到密文c;
[0011] 密文接收方以解密私钥dk解析为身份id*的私钥,利用身份基加密的解密算法对密文c进行解密得到消息m;
[0012] 签名方将签名私钥sk解析为主私钥msk,利用身份基加密的私钥抽取算法计算签名身份id的私钥sk_id作为消息m的签名sigma;
[0013] 验证方在签名身份id下加密随机明文得到密文c,以签名作为私钥进行解密,确定签名是否正确。
[0014] 作为可选择的实施方式,所述接收方公钥pk和签名私钥sk的确定过程包括:基于身份基加密生成主公钥mpk和主私钥msk,确定主公钥mpk为公钥pk,主私钥msk作为签名私
钥sk。
[0015] 作为可选择的实施方式,以签名私钥sk为主私钥计算身份id*的私钥sk_id*作为解密私钥dk。
[0016] 作为可选择的实施方式,所述身份id*为1{n+1},身份基加密的身份空间为{0,1}{n+1}。
[0017] 作为可选择的实施方式,所述签名身份id=0||m。
[0018] 作为可选择的实施方式,如果解密结果与明文相同则反馈签名正确信息;否则反馈签名错误信息。
[0019] 在本发明中,签名方、验证方、密文发送方和密文接收方都可以使用自己的签名私钥对消息进行签名;其他用户可以使用该用户的公钥加密明文,该用户利用自己的解密私
钥对密文进行解密。因此,每个用户都可以扮演多种角色,例如某方可以是签名方的同时,
也作为密文发送方。
[0020] 一种基于身份基的层级签名加密系统,包括:
[0021] 参数配置模块,用于配置底层身份基的身份空间,系统参数和身份id*,基于系统参数和身份id*确定公共参数;
[0022] 密钥生成模块,用于生成主公钥和主私钥,将主公钥作为公钥,主私钥作为签名私钥,计算解密私钥;
[0023] 若干移动终端,其中:
[0024] 作为密文发送方的终端,用于将接收方公钥pk作为主公钥,利用身份基加密的加密算法在身份id*下加密待加密消息m得到密文c;
[0025] 作为密文接收方的终端,用于以解密私钥dk解析为身份id*的私钥,利用身份基加密的解密算法对密文c进行解密得到消息m;
[0026] 作为签名方的终端,用于将签名私钥sk解析为主私钥msk,利用身份基加密的私钥抽取算法计算签名身份id的私钥sk_id作为消息m的签名sigma;
[0027] 作为验证方的终端,用于在签名身份id下加密随机明文得到密文c,以签名作为私钥进行解密,确定签名是否正确。
[0028] 所述移动终端可以同时为密文发送方、密文接收方中的一个,以及签名方、验证方中一个。
[0029] 一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行上述一种基于身份基的层级签名加密方法的步骤。
[0030] 一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行上述一种基于身份
基的层级签名加密方法的步骤。
[0031] 与现有技术相比,本发明的有益效果为:
[0032] 本发明支持私钥分层的签名加密,且既可以支持公钥重用,同时也支持私钥分层。可部署于需要企业级的内部协同办公平台如Slack或者隐私保护的区块链平台上;在提供
可认证机密通信服务的同时支持个体解密私钥托管;从而允许解密服务外包或机密信息的
监管和审计。
[0033] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,作详细说明如下。
具体实施方式:
[0034] 下面利用实施例对本发明作进一步说明。
[0035] 应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常
理解的相同含义。
[0036] 需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式
也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包
括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0037] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
[0038] 一种层级签名加密方法,包括以下步骤:
[0039] 令底层IBE的身份空间为{0,1}{n+1};
[0040] 1.系统参数生成Setup
[0041] 系统建立方运行IBE的系统参数生成算法得到pp_ibe;令id*=1{n+1};输出公共参数pp=(pp_ibe;id*)。
[0042] 2.用户密钥生成KeyGen
[0043] 用户运行IBE的密钥生成算法;生成主公钥mpk和主私钥msk;输出mpk作为公钥pk;msk作为签名私钥sk。
[0044] 3.解密私钥导出Derive
[0045] 用户运行IBE的私钥抽取算法;以签名私钥sk为主私钥计算id*的私钥sk_id*作为解密私钥dk。
[0046] 4.加密Encrypt
[0047] 该算法由密文发送方运行;以待加密消息m和接收方公钥pk为输入;将pk作为主公钥;运行底层IBE的加密算法在身份id*下加密消息m得到密文c。
[0048] 5.解密Decrypt
[0049] 该算法由密文接收方运行;以解密私钥dk和密文c为输入;将dk解析为id*的私钥;运行底层IBE的解密算法对c进行解密得到消息m。
[0050] 6.签名算法Sign
[0051] 该算法由签名方运行;以签名私钥sk和待签名消息m∈{0,1}n为输入;令id=0||m;将sk解析为主私钥msk;运行底层IBE的私钥抽取算法计算id的私钥sk_id作为消息m的签
名sigma。
[0052] 7.验证算法Verify
[0053] 该算法由验证方运行;以公钥pk和待签名消息m∈{0,1}n和签名sigma为输入;令id=0||m;在id下加密随机明文得到密文c;并以签名作为私钥进行解密;如果解密结果与
明文相同则输出1表示签名正确;否则输出0表示签名错误。
[0054] 在本实施例中,以Boneh‑FranklinIBE方案为起点;应用上述转换给出了一个具体的层级签名加密方案设计。以下令e是G1×G2→Gt的双线性映射;其中G1、G2和Gt均为阶为素
数p的循环群。
[0055] 1.系统参数生成Setup
[0056] 随机选取G1的生成元记作g1;令id*=1{n+1};选取哈希函数H:{0,1}{n+1}→G2;输出系统公开参数pp=(g1;id*;H)。
[0057] 2.用户密钥生成KeyGen
[0058] 用户随机选取Zp中的随机元素作为签名私钥sk;计算pk=g1sk∈G1;输出密钥对(pk;sk)。
[0059] 3.解密私钥导出Derive
[0060] 用户以签名私钥sk为输入;输出解密私钥dk=H(id*)sk∈G2
[0061] 4.加密Encrypt
[0062] 密文发送方以接收方公钥pk和待加密明文M为输入;随机选取Zp中的随机元素r;r r
计算c1=g1∈G1;c2=e(pk;H(id*)) ×M∈Gt;输出密文c=(c1;c2)。
[0063] 5.解密Decrypt
[0064] 密文接收方以解密私钥dk和密文c为输入;输出明文M=c2/e(c1;dk)。
[0065] 6.签名Sign
[0066] 签名方以签名私钥sk和待签名消息m为输入;输出签名sigma=H(0||m)sk∈G2。
[0067] 7.验证Verify
[0068] 验证方以公钥pk;消息m和签名sigma为输入;验证e(pk;H(0||m))是否与e(g1;sigma)相等;如果相等则输出1;否则输出0。
[0069] 上述方案基于双线性群中的判定性Diffie‑Hellman困难性假设满足不可区分选择明文安全性。
[0070] 利用软件编程实现了上述具体方案;在128比特安全强度下;性能测试数据如表1和表2所示。
[0071] 表1.计算效率(单位:毫秒ms)
[0072]方案 密钥生成 解密私钥导出 加密 解密 签名 验签
本实施例 0.057 0.148 0.569 0.364 0.148 0.733
[0073] 表2.存储效率(单位:比特bit)
[0074] 方案 公钥 签名私钥 解密私钥 密文 签名本实施例 381 256 256 1905 762
[0075] 可以看出,本发明的具体实例方案高效,各项密码操作均在毫秒级以下,密钥尺寸紧致,密文和签名的带宽开销较小,因此发明可部署于需要企业级的内部协同办公平台如
Slack或者隐私保护的区块链平台上;在提供可认证机密通信服务的同时支持个体解密私
钥托管;从而允许解密服务外包或机密信息的监管审计。
[0076] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修
改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0077] 上述虽然结合实施例对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员
不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。