终端及其不可抵赖的加密签名方法和装置与流程

文档序号:11436222阅读:227来源:国知局
终端及其不可抵赖的加密签名方法和装置与流程

本发明涉及到数字签名领域,特别是涉及到一种终端及其不可抵赖的加密签名方法和装置。



背景技术:

在一些安全应用中需要对数据进行加密保护,同时要保证数据发送方身份的真实性。一般的方法是对数据签名后,再对数据加密,或者先对数据加密后,再对数据进行签名。但是这种分别执行完整的加密方法和签名方法的保护方法会导致输出结果为加密方法输出和签名方法输出的总长度。

一种输出长度短、验证方法简单的加密签名方法是有需求的。



技术实现要素:

本发明的主要目的为提供一种输出长度短、验证方法简单的终端及其不可抵赖的加密签名方法和装置。

为了实现上述发明目的,本发明提出一种不可抵赖的加密签名方法,包括:

加密签名端获取密钥生成中心的标识密码系统参数,生成签名公钥和签名私钥的密钥对;

对消息m使用解密验签端的标识id_b加密,以及对加密结果数据和消息m使用所述签名私钥进行短签名,生成加密签名结果数据;

通过所述解密验签端利用标识密码系统参数、标识id_b对应的标识解密私钥d_b以及所述签名公钥,对所述加密签名结果数据进行解密验签,如果验证不成功,则解密输出空值。

进一步地,所述标识密码系统参数为<e,e,p1,p2,[s]p1,[s]p2,h,kdf>;其中,

e为密钥生成中心选择的一条椭圆曲线;

e为双线性对;

p1和p2为点群g1和g2中的两个点;g1和g2为椭圆曲线e上的两个阶为素数q的点群;

s为主私钥,其为随机选择的0到q之间的整数;

[s]p1为s个p1相加;

[s]p2为s个p2相加;

h为映射函数,其将一个比特串o映射到[1,q-1]上;

kdf为标准的密钥派生函数。

进一步地,所述解密验签端的标识解密私钥d_b为:

d_b=[s/(h(1||id_b)+s)]p2。

进一步地,所述加密签名端获取密钥生成中心的标识密码系统参数,生成签名公钥和签名私钥的密钥对的步骤,包括:

所述加密签名端获取密钥生成中心的所述标识密码系统参数<e,e,p1,p2,[s]p1,[s]p2,h,kdf>;

随机选择0到q之间的整数x,将所述x作为所述签名私钥;

选择g1和g2中的两个点f1和f2,将<f1,f2,[x]f2>、<f1,f2,[x]f1>、<f1,f2,f=e(f1,f2)x>中的一种作为所述签名公钥。

进一步地,所述f1=p1,所述f2=p2。

进一步地,所述对消息m使用解密验签端的标识id_b加密,以及对加密结果数据和消息m使用所述签名私钥进行短签名,生成加密签名结果数据的步骤,包括:

计算整数h1=h(1||id_b);

计算解密验签端的公钥q_b=[h1]p1+[s]p1;

产生随机数r∈[1,q-1];

计算x=[r]q_b,将x数据类型转换为比特串c1;

计算w=gr,将w的数据类型转换为比特串u,其中,g=e(p1,[s]p2);

准备密钥派生输入xi,其中,所述xi包含c1和u的拼接;

计算和m一样长度的k=kdf(xi);

计算c2=m⊕k;

准备哈希输入hi,其中,所述hi包含一个哈希操作索引、m和u的拼接;

计算整数h=h(hi);

计算s=[x/(h+x)]f1,将s数据类型转换为比特串c3;

将<c1,c2,c3>作为输出,给所述消息m进行加密签名。

进一步地,所述通过所述解密验签端利用标识密码系统参数、标识id_b对应的标识解密私钥d_b以及所述签名公钥,对所述加密签名结果数据进行解密验签,如果验证不成功,则解密输出空值的步骤,包括:

通过所述解密验签端将c1的数据类型转换为椭圆曲线e上的点x,检验x∈g1是否成立;

若否,则通过所述解密验签端直接判定则验证失败;

通过所述解密验签端将所述c3的数据类型转换为椭圆曲线e上的点s,检验s∈g1是否成立;

若否,则通过所述解密验签端直接判定则验证失败;

若所述x∈g1以及s∈g1均成立,则通过所述解密验签端计算w=e(x,d_b);将w的数据类型转换为比特串u;

通过所述解密验签端准备密钥派生输入xi,其中,所述xi包含c1和u的拼接;

通过所述解密验签端计算和c2一样长度的k=kdf(xi);

通过所述解密验签端计算m=c2⊕k;

通过所述解密验签端准备密钥派生输入hi,其中,所述hi包含一个哈希操作索引、m和u的拼接;

通过所述解密验签端计算整数h=h(hi);

通过所述解密验签端计算加密签名端的公钥q_a=[h1]f2+[s]f2;

通过所述解密验签端计算u=e(s,q_a);

通过所述解密验签端计算f=e(f1,[x]f2);

通过所述解密验签端检验f=u是否成立,若是,则验证通过,否则验证失败,解密输出空值。

本发明还提供一种不可抵赖的加密签名装置,包括:

签名密钥对生成单元,用于加密签名端获取密钥生成中心的标识密码系统参数,生成签名公钥和签名私钥的密钥对;

加密签名单元,用于对消息m使用解密验签端的标识id_b加密,以及对加密结果数据和消息m使用所述签名私钥进行短签名,生成加密签名结果数据;

解密验签单元,用于通过所述解密验签端利用标识密码系统参数、标识id_b对应的标识解密私钥d_b以及所述签名公钥,对所述加密签名结果数据进行解密验签,如果验证不成功,则解密输出空值。

进一步地,所述标识密码系统参数为<e,e,p1,p2,[s]p1,[s]p2,h,kdf>;其中,

e为密钥生成中心选择的一条椭圆曲线;

e为双线性对;

p1和p2为点群g1和g2中的两个点;g1和g2为椭圆曲线e上的两个阶为素数q的点群;

s为主私钥,其为随机选择的0到q之间的整数;

[s]p1为s个p1相加;

[s]p2为s个p2相加;

h为映射函数,其将一个比特串o映射到[1,q-1]上;

kdf为标准的密钥派生函数。

进一步地,所述解密验签端的标识解密私钥d_b为:

d_b=[s/(h(1||id_b)+s)]p2。

进一步地,所述签名密钥对生成单元,包括:

获取模块,用于所述加密签名端获取所述标识密码系统参数<e,e,p1,p2,[s]p1,[s]p2,h,kdf>;

第一选择模块,用于随机选择0到q之间的整数x,将所述x作为所述签名私钥;

第二选择模块,用于选择g1和g2中的两个点f1和f2,将<f1,f2,[x]f2>、<f1,f2,[x]f1>、<f1,f2,f=e(f1,f2)x>中的一种作为所述签名公钥。

进一步地,所述f1=p1,所述f2=p2。

进一步地,,所述加密签名单元,包括:

加密第一计算模块,用于计算整数h1=h(1||id_b);

加密第二计算模块,用于计算解密验签端的公钥q_b=[h1]p1+[s]p1;

选择模块,用于产生随机数r∈[1,q-1];

加密第三计算模块,用于计算x=[r]q_b,将x数据类型转换为比特串c1;

加密第四计算模块,用于计算w=gr,将w的数据类型转换为比特串u,其中,g=e(p1,[s]p2);

加密第五计算模块,准备密钥派生输入xi,xi包含c1和u的拼接,可选地,还可拼接id_b;

加密第六计算模块,用于计算和m一样长度的k=kdf(xi);

加密第七计算模块,用于计算c2=m⊕k;

加密第八计算模块,用于准备哈希输入hi,其中,所述hi包含哈希操作索引、m和u的拼接;

加密第九计算模块,用于计算整数h=h(hi);

加密第十计算模块,用于计算s=[x/(h+x)]f1,将s数据类型转换为比特串c3;

输出模块,用于通过所述加密签名端将<c1,c2,c3>作为输出,给所述消息m进行加密签名。

进一步地,所述解密验签单元,包括:

第一选择判断模块,用于通过所述解密验签端将c1的数据类型转换为椭圆曲线e上的点x,检验x∈g1是否成立;

第一验证模块,用于若x∈g1不成立,则通过所述解密验签端直接判定则验证失败;

第二选择判断模块,用于通过所述解密验签端将c3的数据类型转换为椭圆曲线e上的点s,检验s∈g1是否成立;

第二验证模块,用于若s∈g1不成立,则通过所述解密验签端直接判定则验证失败;

解密第一计算模块,用于若x∈g1以及s∈g1均成立,则通过所述解密验签端计算w=e(x,d_b);将w的数据类型转换为比特串u;

解密第二计算模块,用于通过所述解密验签端准备密钥派生输入xi,其中,所述xi包含c1和u的拼接;

解密第三计算模块,用于通过所述解密验签端计算和c2一样长度的k=kdf(xi);

解密第四计算模块,用于通过所述解密验签端计算m=c2⊕k;

解密第五计算模块,用于通过所述解密验签端准备哈希输入hi,其中,所述hi包含一个哈希操作索引、m和u的拼接;

解密第六计算模块,用于通过所述解密验签端计算整数h=h(hi);

解密第七计算模块,用于通过所述解密验签端计算加密签名端的公钥q_a=[h1]f2+[s]f2;

解密第八计算模块,用于通过所述解密验签端计算u=e(s,q_a);

解密第九计算模块,用于通过所述解密验签端计算f=e(f1,[x]f2);

第三验证模块,用于通过所述解密验签端检验f=u是否成立,若是,则验证通过,否则验证失败。

本发明还提供一种终端,包括存储器和处理器;

所述存储器用于存储支持不可抵赖的加密签名装置执行上述任一项所述的不可抵赖的加密签名方法的程序;

所述处理器被配置为用于执行所述存储器中存储的程序。

本发明的终端及其不可抵赖的签名方法和装置,加密签名结果数据是通过短签形成的,所以加密签名端输出结果长度短,验证简单,既保证了数据的私密性,又保证了数据的真实性。

附图说明

图1为本发明一实施例的不可抵赖的签名方法的流程示意图;

图2为本发明一实施例的生成签名公钥和签名私钥的密钥对的方法流程示意图;

图3为本发明一实施例的生成加密签名结果数据的方法流程示意图;

图4为本发明一实施例的对加密签名结果数据进行解密验签的方法流程示意图;

图5为本发明一时实施例的不可抵赖的签名装置的结构示意框图;

图6为本发明一实施例的获取单元的结构示意框图;

图7为本发明一实施例的获取单元的结构示意框图;

图8为本发明一实施例的解密验签单元的结构示意框图;

图9为本发明一实施例的终端的结构示意框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,本发明实施例提供一种不可抵赖的加密签名方法,包括:

s1、加密签名端获取密钥生成中心的标识密码系统参数,生成签名公钥和签名私钥的密钥对;

s2、对消息m使用解密验签端的标识id_b加密,以及对加密结果数据和消息m使用所述签名私钥进行短签名,生成加密签名结果数据;

s3、通过所述解密验签端利用标识密码系统参数、标识id_b对应的标识解密私钥d_b以及所述签名公钥,对所述加密签名结果数据进行解密验签,如果验证不成功,则解密输出空值。

如上述步骤s1所述,上述解密验签端和加密签名端为智能电子设备,如电脑、笔记本电脑、智能手机、平板电脑等;智能电子设备在加密签名时,即为加密签名端,在解密验签时,即为解密验签端。上述密钥生成中心即为密钥管理中心,是公钥基础设施中的一个重要组成部分,提供密钥的生成、保存、备份、更新、恢复、查询等密钥服务,可以解决分布式企业应用环境中大规模密码技术应用所带来的密钥管理问题。上述密钥生成中心生成的标识密码系统参数为<e,e,p1,p2,[s]p1,[s]p2,h,kdf>;其中,

e为密钥生成中心选择的一条椭圆曲线;

e为双线性对;

p1和p2为点群g1和g2中的两个点;g1和g2为椭圆曲线e上的两个阶为素数q的点群;

s为主私钥,其为随机选择的0到q之间的整数;

[s]p1为s个p1相加;

[s]p2为s个p2相加;

h为映射函数,其将一个比特串o映射到[1,q-1]上;

kdf为标准的密钥派生函数。

在上述标识密码系统参数中还可以加入g=e(p1,[s]p2),即标识密码系统参数为<e,e,p1,p2,[s]p1,[s]p2,g=e(p1,[s]p2,h,kdf>,因为g=e(p1,[s]p2)可以通过已知的参数计算得出,所以,可以根据需要加入或不加入上述标识密码系统参数中。

上述加密签名端的签名公钥和签名私钥,均使用标识密码系统参数中的参数计算而成,但是无需在密钥生成中心生成,而是在加密签名端完成,无需将消息m发送至密钥生成中心进行加密处理等。

如上述步骤s2所述,上述加密签名结果数据是通过短签形成的,所以加密签名端输出结果长度短。

如上述步骤s3所述,通过解密验签端利用预设的规则,获取指定的参数对加密签名结果数据进行解密验签。在验签过程中,上述标识解密私钥d_b即为利用解密验签端的标识id_b和预设的计算规则而获得,本实施例中,d_b=[s/(h(1||id_b)+s)]p2。

参照图2,本实施例中,上述加密签名端获取密钥生成中心的标识密码系统参数,生成签名公钥和签名私钥的密钥对的步骤s1,包括:

s101、所述加密签名端获取密钥生成中心的上述标识密码系统参数<e,e,p1,p2,[s]p1,[s]p2,h,kdf>;

s102、随机选择0到q之间的整数x,将所述x作为所述签名私钥;

s103、选择g1和g2中的两个点f1和f2,将<f1,f2,[x]f2>、<f1,f2,[x]f1>、<f1,f2,f=e(f1,f2)x>中的一种作为所述签名公钥。

如上述步骤s101、s102和s103所述,即为加密签名端生成签名私钥和签名公钥的过程。本实施例中,可以选择将f1=p1,f2=p2,方便后期计算和验证等。

参照图3,本实施例中,上述对消息m使用解密验签端的标识id_b加密,以及对加密结果数据和消息m使用所述签名私钥进行短签名,生成加密签名结果数据的步骤s2,包括:

s201、计算整数h1=h(1||id_b);

s202、计算解密验签端的公钥q_b=[h1]p1+[s]p1;

s203、产生随机数r∈[1,q-1];

s204、计算x=[r]q_b,将x数据类型转换为比特串c1;

s205、计算w=gr,将w的数据类型转换为比特串u,其中,g=e(p1,[s]p2);

s206、准备密钥派生输入xi,其中,所述xi包含c1和u的拼接,可选地,还可以拼接id_b;

s207、计算和m一样长度的k=kdf(xi);

s208、计算c2=m⊕k;

s209、准备哈希输入hi,其中,所述hi包含一个哈希操作索引、m和u的拼接,可选地,还可以拼接c1、id_a、id_b;

s210、计算整数h=h(hi);

s211、计算s=[x/(h+x)]f1,将s数据类型转换为比特串c3;

s212、将<c1,c2,c3>作为输出,给所述消息m进行加密签名。

如上述步骤s201至s212所述,即为利用上述签名公钥和签名私钥等参数给消息m进行加密签名的具体过程,其签名过程为短签名的过程,消息m加密签名后的长度较小。上述操作索引用于区分计算过程中的各次哈希操作。其取值无特定要求,只需保证不同的哈希操作使用的哈希操作索引不同,比如h=h(2||m||u||c1||id_a||id_b)中,操作索引即为2。

参照图4,本实施例中,上述通过所述解密验签端利用标识密码系统参数、标识id_b对应的标识解密私钥d_b以及所述签名公钥,对所述加密签名结果数据进行解密验签,如果验证不成功,则解密输出空值的步骤s3,包括:

s301、通过解密验签端将c1的数据类型转换为椭圆曲线e上的点x,检验x∈g1是否成立;

s302、若否,则通过解密验签端直接判定则验证失败,解密输出空值;

s303、通过所述解密验签端将所述c3的数据类型转换为椭圆曲线e上的点s,检验s∈g1是否成立;

s304、若否,则通过所述解密验签端直接判定则验证失败;

s305、若所述x∈g1以及s∈g1均成立,则通过解密验签端计算w=e(x,d_b);将w的数据类型转换为比特串u;

s306、通过所述解密验签端准备密钥派生输入xi,其中,所述xi包含c1和u的拼接,可选地,还可以拼接id_b;

s307、通过解密验签端计算和c2一样长度的k=kdf(xi);s308、通过解密验签端计算m=c2⊕k;

s309、通过所述解密验签端准备密钥派生输入hi,其中,所述hi包含一个哈希操作索引、m和u的拼接,可选地,还可以拼接c1、id_a、id_b;

s310、通过解密验签端计算整数h=h(hi);

s311、通过解密验签端计算加密签名端的公钥q_a=[h1]f2+[s]f2;

s312、通过解密验签端计算u=e(s,q_a);

s313、通过解密验签端计算f=e(f1,[x]f2);

s314、通过解密验签端检验f=u是否成立,若是,则验证通过,否则验证失败,解密输出空值。

如上述步骤s301至s314所述,即为解密验签的过程,解密验签过程简单而安全。

在一具体实施例中,整个解密验签过程中,需要三方协作,即密钥生成中心、加密签名端和解密验签端,其过程具体为:

双线性对是一种具有以下三个特性的二元映射e:g1xg2→gt

1.二元线性:e([s]p,[t]q)=e(p,q)st.s,t∈z/zq.p∈g1,q∈g2,g1是一个阶为q的循环群,g2是一个幂为q群,其子群阶为q.[s]p表示s个p相加。

2.非退化性:存在非0元p和q,e(p,q)≠1.

3.可计算性:有多项式时间方法计算e(p,q).

现在已知的双线性对有椭圆曲线上的weil、tate、ate、r-ate、优化ate对等。

步骤a:密钥生成中心选择一条椭圆曲线e,其特征是有可高效计算的双线性对e。确定曲线e上的两个阶为素数q的点群g1和g2。分别选择g1和g2中的两个点p1和p2。随机选择0<s<q的整数s作为主私钥,计算[s]p1,[s]p2以及g=e(p1,[s]p2)。其中[s]p表示标准的s个p相加。密钥生成中心公开标识密码系统参数<e,e,p1,p2,[s]p1,[s]p2,g=e(p1,[s]p2),h,kdf>。其中g=e(p1,[s]p2)可以预计算,所以可以不作为系统参数的一部分;消息映射函数h将一个比特串o映射到[1,q-1]上;kdf是标准的密钥派生函数。

步骤b、密钥生成中心生成标识id_b对应的标识解密私钥:

d_b=[s/(h(1||id_ba)+s)]p2,其中,标识id_b为解密验签端的标识id_b。

步骤c、加密签名端拥有标识id_a,其获得密钥生成中心公开的标识密码系统参数<e,e,p1,p2,[s]p1,[s]p2,g=e(p1,[s]p2),h,kdf>后,随机选择0<x<q的整数x,选择g1和g2中的两个点f1和f2,计算[x]f2,将<f1,f2,f=e(f1,[x]f2)>作为其公钥数据,其中f=e(f1,[x]f2)可以由双线对计算得出,所以可以不用作为公钥的部分,x作为其签名私钥。可选的方法是设置f1=p1,f2=p2。

步骤d、加密签名人获得系统公开参数<e,e,p1,p2,[s]p2,g=e(p1,[s]p2),h,kdf>以及签名公钥<f1,f2>,签名私钥x后,对消息m进行加密签名给解密验签端。加密签名方法为:

d1:计算整数h1=h(1||id_b);

d2:计算q_b=[h1]p1+[s]p1;

d3:产生随机数r[1,q-1];

d4:计算x=[r]q_b,将x数据类型转换为比特串c1;

d5:计算w=gr,将w的数据类型转换为比特串u;

d6:计算和m一样长度的k=kdf(c1||u||id_b);

d7:计算c2=m⊕k;

d8:计算整数h=h(2||m||u||c1||id_a||id_b);

d9:计算s=[x/(h+x)]f1,将s数据类型转换为比特串c3;

d11:将<c1,c2,c3>作为输出。

步骤e、解密验签端使用系统公开参数<e,e,p1,p2,[s]p2,g=e(p1,[s]p2),h,kdf>以及标识解密私钥d_b=[s/(h(1||id_b)+s)]p2,签名公钥<f1,f2>,对密文<c1,c2,c3>解密验签,其过程如下:

e1:将c1的数据类型转换为椭圆曲线e上的点x,检验x∈g1是否成立,若不成立则验证不通过;

e2:将所述c3的数据类型转换为椭圆曲线e上的点s,检验s∈g1是否成立;若否,则直接判定则验证失败;

e3:计算w=e(x,d_b);将w的数据类型转换为比特串u;

e4:计算和c2一样长度的k=kdf(c1||u||id_b);

e5:计算m=c2⊕k;

e6:计算整数h=h(2||m||u||c1||id_a||id_b);

e7:计算q_a=[h1]f2+[s]f2;

e8:计算u=e(s,q_a);

e9:计算f=e(f1,[x]f2),该步骤可以针对id_a进行预计算f后存储。

e10:检验f=u是否成立,若成立则验证通过,输出m;否则验证不通过,解密输出空值。

本发明实施例的不可抵赖的签名方法,加密签名结果数据是通过短签形成的,所以加密签名端输出结果长度短,验证简单,既保证了数据的私密性,又保证了数据的真实性。

参照图5,本发明实施例还提供一种不可抵赖的加密签名装置,包括:

签名密钥对生成单元10,用于加密签名端获取密钥生成中心的标识密码系统参数,生成签名公钥和签名私钥的密钥对;

加密签名单元20,用于对消息m使用解密验签端的标识id_b加密,以及对加密结果数据和消息m使用所述签名私钥进行短签名,生成加密签名结果数据;

解密验签单元30,用于通过所述解密验签端利用标识密码系统参数、标识id_b对应的标识解密私钥d_b以及所述签名公钥,对所述加密签名结果数据进行解密验签,如果验证不成功,则解密输出空值。

如上述签名密钥对生成单元10,上述解密验签端和加密签名端为智能电子设备,如电脑、笔记本电脑、智能手机、平板电脑等;智能电子设备在加密签名时,即为加密签名端,在解密验签时,即为解密验签端。上述密钥生成中心即为密钥管理中心,是公钥基础设施中的一个重要组成部分,提供密钥的生成、保存、备份、更新、恢复、查询等密钥服务,可以解决分布式企业应用环境中大规模密码技术应用所带来的密钥管理问题。上述密钥生成中心生成的标识密码系统参数为<e,e,p1,p2,[s]p1,[s]p2,h,kdf>;其中,

e为密钥生成中心选择的一条椭圆曲线;

e为双线性对;

p1和p2为点群g1和g2中的两个点;g1和g2为曲线e上的两个阶为素数q的点群;

s为主私钥,其为随机选择的0到q之间的整数;

[s]p1为s个p1相加;

[s]p2为s个p2相加;

h为映射函数,其将一个比特串o映射到[1,q-1]上;

kdf为标准的密钥派生函数。

在上述标识密码系统参数中还可以加入g=e(p1,[s]p2),即标识密码系统参数为<e,e,p1,p2,[s]p1,[s]p2,g=e(p1,[s]p2,h,kdf>,因为g=e(p1,[s]p2)可以通过已知的参数计算得出,所以,可以根据需要加入或不加入上述标识密码系统参数中。

上述加密签名端的签名公钥和签名私钥,均使用标识密码系统参数中的参数计算而成,但是无需在密钥生成中心生成,而是在加密签名端完成,无需将消息m发送至密钥生成中心进行加密处理等。

如上述加密签名单元20,上述加密签名结果数据是通过短签形成的,所以加密签名端输出结果长度短。

如上述解密验签单元30,解密验签端利用预设的规则,获取指定的参数对加密签名结果数据进行解密验签。在验签过程中,上述标识解密私钥d_b即为利用解密验签端的标识id_b和预设的计算规则而获得,本实施例中,d_b=[s/(h(1||id_b)+s)]p2。

参照图6,本实施例中,上述签名密钥对生成单元10,包括:

获取模块101,用于所述加密签名端获取密钥生成中心的上述标识密码系统参数<e,e,p1,p2,[s]p1,[s]p2,h,kdf>;

第一选择模块102,用于随机选择0到q之间的整数x,将所述x作为所述签名私钥;

第二选择模块103,用于选择g1和g2中的两个点f1和f2,将<f1,f2,[x]f2>、<f1,f2,[x]f1>、<f1,f2,f=e(f1,f2)x>中的一种作为所述签名公钥。

如上述获取模块101、第一选择模块102和第二选择模块103,即为加密签名端生成签名私钥和签名公钥的模块。本实施例中,上述f1=p1,f2=p2,方便后期计算和验证等。

参照图7,本实施例中,上述加密签名单元20,包括:

加密第一计算模块201,用于计算整数h1=h(1||id_b);

加密第二计算模块202,用于计算解密验签端的公钥q_b=[h1]p1+[s]p1;

选择模块203,用于产生随机数r∈[1,q-1];

加密第三计算模块204,用于计算x=[r]q_b,将x数据类型转换为比特串c1;

加密第四计算模块205,用于计算w=gr,将w的数据类型转换为比特串u,其中,g=e(p1,[s]p2);

加密第五计算模块206,准备密钥派生输入xi,xi包含c1和u的拼接,可选地,还可拼接id_b;

加密第六计算模块207,用于计算和m一样长度的k=kdf(xi);

加密第七计算模块208,用于计算c2=m⊕k;

加密第八计算模块209,用于准备哈希输入hi,其中,所述hi包含哈希操作索引、m和u的拼接,可选地,还可以拼接c1、id_a、id_b;

加密第九计算模块210,用于计算整数h=h(hi);

加密第十计算模块211,用于计算s=[x/(h+x)]f1,将s数据类型转换为比特串c3;

输出模块212,用于将<c1,c2,c3>作为输出,给所述消息m进行加密签名。

上述即为利用上述签名公钥和签名私钥等参数给消息m进行加密和短签名的模块,消息m加密签名后的长度较小。上述操作索引用于区分计算过程中的各次哈希操作。其取值无特定要求,只需保证不同的哈希操作使用的哈希操作索引不同,比如h=h(2||m||u||c1||id_a||id_b)中,操作索引即为2。

参照图8,本实施例中,上述解密验签单元30,包括:

第一选择判断模块301,用于通过解密验签端将c1的数据类型转换为椭圆曲线e上的点x,检验x∈g1是否成立;

第一验证模块302,用于若x∈g1不成立,则通过解密验签端直接判定则验证失败,解密输出空值;

第二选择判断模块303,用于通过所述解密验签端将c3的数据类型转换为椭圆曲线e上的点s,检验s∈g1是否成立;

第二验证模块304,用于若s∈g1不成立,则通过所述解密验签端直接判定则验证失败;

解密第一计算模块305,用于若x∈g1以及s∈g1均成立,则通过解密验签端计算w=e(x,d_b);将w的数据类型转换为比特串u;

解密第二计算模块306,用于通过所述解密验签端准备密钥派生输入xi,其中,所述xi包含c1和u的拼接,可选地,还可拼接id_b;

解密第三计算模块307,用于通过解密验签端计算和c2一样长度的k=kdf(xi);

解密第四计算模块308,用于通过解密验签端计算m=c2⊕k;

解密第五计算模块309,用于通过所述解密验签端准备哈希输入hi,其中,所述hi包含一个哈希操作索引、m和u的拼接,可选地,还可以拼接c1、id_a、id_b

解密第六计算模块310,用于通过解密验签端计算整数h=h(hi);

解密第七计算模块311,用于通过解密验签端计算加密签名端的公钥q_a=[h1]f2+[s]f2;

解密第八计算模块312,用于通过解密验签端计算u=e(s,q_a);

解密第九计算模块313,用于通过解密验签端计算f=e(f1,[x]f2);

第二验证模块314,用于通过解密验签端检验f=u是否成立,若是,则验证通过,否则验证失败,解密输出空值。

上述各模块即为解密验签的过程中使用的装置,解密验签过程简单而安全。

本发明实施例的不可抵赖的签名装置,加密签名结果数据是通过短签形成的,所以加密签名端输出结果长度短,验证简单,既保证了数据的私密性,又保证了数据的真实性。

本发明实施例还提供一种终端300,包括存储器301和处理器302;上述存储器301用于存储支持不可抵赖的加密签名装置执行上述任一项中的不可抵赖的加密签名方法的程序;处理器302被配置为用于执行所述存储器中存储的程序。

上述终端300可以为智能电子设备,如电脑、笔记本电脑、智能手机、平板电脑等。

上述终端300,在加密签名时,即为加密签名端,在解密验签时,即为解密验签端。

本发明实施例的终端300,加密签名结果数据是通过短签形成的,所以加密签名端输出结果长度短,验证简单,既保证了数据的私密性,又保证了数据的真实性。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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