1.一种安全的PKI与IBC之间的双向异构强指定验证者签名方法,其特征在于,包括以下步骤:步骤1:私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对,定义两个无碰撞的哈希函数,设置主密钥以及主公钥,公开系统参数;
步骤2:公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书,从阶数为素数的整数群中随机选择一个数字作为公钥基础设施环境中用户的私钥,计算公钥基础设施环境中用户的公钥,基于身份加密环境中用户向私钥生成中心提交用户身份,计算基于身份加密环境中用户的私钥,再回传至基于身份加密环境中用户从而得到公钥;
步骤3:若公钥基础设施环境中的用户作为签名者用于生成签名,且基于身份加密环境中的用户作为指定验证者用于验证签名,签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名,签名者计算签名者双线性对的值,签名者利用其私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名,签名者通过签名者生成签名、给定的消息构建组合消息发送给指定验证者,签名者通过签名者生成签名、给定的消息构建组合消息发送给指定验证者,指定验证者通过组合消息中签名者生成签名的第二部分签名计算指定验证者双线性对的值,指定验证者将双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息,若验证通过,指定验证者生成签名副本的第一部分签名、第二部分签名,指定验证者生成签名副本时的双线性对的值,指定验证者生成签名副本时的双线性对的值,指定验证者生成指定验证者哈希函数副本、签名副本的第三部分签名,指定验证者模拟的签名副本满足验证等式:步骤4:若基于身份加密环境中的用户作为签名者拥有生成签名,公钥基础设施环境中的用户作为指定验证者用于验证签名,签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名,签名者计算签名者双线性对的值,签名者利用其公钥、私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名,签名者通过签名者生成签名、给定的消息构建组合消息发送给指定验证者,指定验证者通过组合消息中签名者生成签名的第一部分签名和签名者的私钥计算指定验证者双线性对的值,指定验证者将双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息,若验证通过,指定验证者生成指定验证者生成签名副本的第一部分签名、第二部分签名,指定验证者生成指定验证者生成哈希函数副本、指定验证者生成签名副本的第三部分签名,指定验证者模拟的签名副本满足验证等式。
2.根据权利要求1所述的安全的PKI与IBC之间的双向异构强指定验证者签名方法,其特征在于:步骤1所述私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对为:输入安全参数为k,私钥生成中心选择阶为素数q的循环加法群G1、阶为素数q的循环乘法群G2,P是G1的一个生成元;
所述双线性对为e:
e:G1×G1→G2
其中,e为双线性对,G1表示阶为素数q的循环加法群,G2表示阶为素数q的循环乘法群;
步骤1所述定义两个无碰撞的哈希函数为:
所述第一无碰撞的哈希函数为:
H1:{0,1}*→G1
其中,H1作用是把用户的身份信息映射到循环加法群G1上,{0,1}*表示长度为任意比特的二进制序列组合的集合;
所述第二无碰撞的哈希函数为:
其中,H2表示阶为素数q的循环乘法群映射到整数群 的无碰撞哈希函数即第二无碰撞哈希函数,{0,1}n表示长度为n比特的二进制序列组合的集合, 表示阶为q的整数群除去0元素,步骤1所述设置主密钥以及主公钥为:
私钥生成中心随机选取一个 s作为主密钥,主密钥s保密,设置主公钥为:Ppub=sP,P是G1的一个生成元,G1是阶为素数q的循环加法群;
步骤1所述公开系统参数为:
param={k,q,G1,G2,P,e,H1,H2,Ppub}其中,param为系统参数,k为输入安全参数,保留s,s为私钥生成中心的主密钥,P是G1的一个生成元,G1是阶为素数q的循环加法群,H1是把用户的身份信息映射到循环加法群G1上的无碰撞哈希函数即第一无碰撞哈希函数,H2表示阶为素数q的循环乘法群映射到整数群的无碰撞哈希函数即第二无碰撞哈希函数,Ppub为私钥生成中心的主公钥;
私钥生成中心保留主密钥s。
3.根据权利要求1所述的安全的PKI与IBC之间的双向异构强指定验证者签名方法,其特征在于:步骤2所述公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书为:公钥基础设施环境中的用户A向证书权威机构提交身份IDA,证书权威机构给用户A颁发证书;
步骤2所述从阶数为素数的整数群中随机选择一个数字作为公钥基础设施环境中用户的私钥为:用户A随机选取一个随机数 表示阶为q的整数群除去0元素,设置x作为用户A的私钥,SKA=x;
步骤2所述计算公钥基础设施环境中用户的公钥为:
用户A的公钥PKA=xP,用户A的密钥对为(PKA,SKA),其中,公钥基础设施环境中用户A的私钥为SKA, 表示x是整数群 中的一个元素,IDA为公钥基础设施环境中用户A的身份,P是G1的一个生成元,G1是阶为素数q的循环加法群;
步骤2所述基于身份加密环境中用户向私钥生成中心提交用户身份为:基于身份加密环境中的用户B向私钥生成中提交自己的身份IDB;
步骤2所述计算基于身份加密环境中用户的私钥为:
PKB=(s+xB)P=(s+H1(IDB))P
其中,PKB为基于身份加密环境中的用户B的公钥,SKB为基于身份加密环境中用户B的私钥,s为私钥生成中心的主密钥,IDB为基于身份加密环境中用户B的身份,H1是把用户的身份信息映射到循环加法群G1上的无碰撞哈希函数,P是G1的一个生成元,G1是阶为素数q的循环加法群;
用户B的密钥对为(PKB,SKB)。
4.根据权利要求1所述的安全的PKI与IBC之间的双向异构强指定验证者签名方法,其特征在于:步骤3所述签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名为:签名者随机选择r1, 计算R1=r1SKAPKB,R2=r2PKB;
其中,r1, 表示是从 中任意选取的元素,SKA表示签名者的私钥,PKB表示指定验证者的公钥, 表示阶为q的整数群除去0元素,步骤3所述签名者计算签名者双线性对的值为:
W1=e(r2P,P)
其中,W1表示签名者双线性对的值,r2表示是从 中任意选取的一个元素,P是G1的一个生成元,G1是阶为素数q的循环加法群,r2P是双线性对的第一个输入值,P是双线性对的第二个输入值;
步骤3所述签名者利用其私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名:h1=H2(W1,m)
S=(r1h1SKA+r2)P
其中,h1表示签名者哈希函数,H2表示阶为素数q的循环乘法群映射到整数群 的无碰撞哈希函数,W1表示签名者双线性对的值,m表示给定消息,r1, 表示是从 中任意选取的一个元素,SKA表示签名者的私钥,P是G1的一个生成元,G1是阶为素数q的循环加法群,S表示签名者生成签名的第三部分签名;
步骤3所述签名者通过签名者生成签名、给定的消息构建组合消息发送给指定验证者:所述签名者生成签名为:
σ=(R1,R2,S)
所述组合消息为:
δ=(σ,m)
其中,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,S表示签名者生成签名的第三部分签名,m表示给定的消息;
步骤3所述签名者通过签名者生成签名、给定的消息构建组合消息发送给指定验证者,指定验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值:W2=e(R2,SKB)
h2=H2(W2,m)
W2表示指定验证者双线性对的值,R2表示签名者生成签名的第二部分签名,SKB表示指定验证者的私钥,h2表示指定验证者哈希函数,H2表示阶为素数q的循环乘法群映射到整数群 的无碰撞哈希函数,m表示给定的消息;
步骤3所述指定验证者将双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息:双线性对的第一个验证值:
e(S,P)
其中,S表示签名者生成签名的第三部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群;
双线性对的第二个验证值:
其中,W2表示指定验证者双线性对的值,h2表示指定验证者哈希函数,H2表示阶为素数q的循环乘法群映射到整数群 的无碰撞哈希函数,R1表示签名者生成签名的第一部分签名,SKB表示指定验证者的私钥;
验证等式 成立情况:
等式成立,接受消息,输出1;否则,拒绝消息,输出错误符号⊥;
步骤3所述若验证通过,指定验证者生成签名副本的第一部分签名、第二部分签名:指定验证者随机选择r1', 计算R1'=r2'P,R2'=r1'P;
其中,r1', 表示是从 中任意选取的一个元素,R1'表示指定验证者生成签名副本的第一部分签名,R2'表示指定验证者生成签名副本的第二部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群;
步骤3所述指定验证者生成签名副本时的双线性对的值:
W2'=e(R2',SKB)
其中,R2'表示指定验证者生成签名副本的第二部分签名,SKB表示指定验证者的私钥,W2'表示指定验证者生成签名副本时的双线性对的值;
步骤3所述指定验证者生成指定验证者哈希函数副本、指定验证者生成签名副本的第三部分签名:h2'=H2(W2',m)
S'=(r1'h2'+r2')SKB
其中,h2'表示指定验证者哈希函数副本,H2表示阶为素数q的循环乘法群映射到整数群的无碰撞哈希函数,W2'表示指定验证者生成签名副本时的双线性对的值,m表示给定消息,r1', 表示是从 中任意选取的一个元素,SKB表示指定验证者的私钥;
步骤3所述指定验证者模拟的签名副本σ'=(R1',R2',S')满足验证等式即满足等式
其中,σ'表示指定验证者生成签名副本,R1'表示指定验证者生成签名副本的第一部分签名,R2'表示指定验证者生成签名副本的第二部分签名,S'表示指定验证者生成签名副本的第三部分签名,W2表示指定验证者双线性对的值,h2表示指定验证者哈希函数,SKB表示指定验证者的私钥,P是G1的一个生成元,G1是阶为素数q的循环加法群,W2'表示指定验证者生成签名副本时的双线性对的值,h2'表示指定验证者哈希函数副本。
5.根据权利要求1所述的安全的PKI与IBC之间的双向异构强指定验证者签名方法,其特征在于:步骤4所述签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名:签名者随机选择r1, 计算R1=r2PKA,R2=r1SKB;
其中,r1, 表示是从 中任意选取的一个元素,PKA表示指定验证者的公钥,SKB表示签名者的私钥, 表示阶为q的整数群除去0元素,步骤4所述签名者计算签名者双线性对的值:
W1=e(r2PKB,SKB)=e(r2P,P)
其中,W1表示签名者双线性对的值,r2表示是从 中任意选取的一个元素,PKB表示签名者的公钥,SKB表示签名者的私钥,P是G1的一个生成元,G1是阶为素数q的循环加法群;
步骤4所述签名者利用其公钥、私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名:h1=H2(W1,m)
S=r1h1SKB+r1PKA
其中,h1表示签名者哈希函数,H2表示阶为素数q的循环乘法群映射到整数群 的无碰撞哈希函数,W1表示签名者双线性对的值,m表示给定消息,r1表示是从 中任意选取的一个元素,SKB表示签名者的私钥,PKA表示指定验证者的公钥,S表示签名者生成签名的第三部分签名;
步骤4所述签名者通过签名者生成签名、给定的消息构建组合消息发送给指定验证者:所述签名者生成签名为:
σ=(R1,R2,S)
所述组合消息为:
δ=(σ,m)
其中,σ表示签名者生成签名,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,S表示签名者生成签名的第三部分签名,m表示给定的消息;
步骤4所述指定验证者通过组合消息中签名者生成签名的第一部分签名和签名者的私钥计算指定验证者双线性对的值:h2=H2(W2,m)
其中,W2表示指定验证者双线性对的值,R1表示签名者生成签名的第一部分签名,SKA表示指定验证者的私钥,P是G1的一个生成元,G1是阶为素数q的循环加法群,h2表示指定验证者哈希函数,H2表示阶为素数q的循环乘法群映射到整数群 的无碰撞哈希函数,m表示给定的消息;
步骤4所述指定验证者将双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息:双线性对的第一个验证值:
e(S,P)
其中,S表示签名者生成签名的第三部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群;
双线性对的第二个验证值:
其中,R2表示签名者生成签名的第二部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群,W2表示指定验证者双线性对的值,SKA表示指定验证者的私钥,h2表示指定验证者哈希函数;
步骤4所述验证 等式的成立情况:
若等式成立,接受m,输出正确提示符;否则拒绝接受m,输出错误提示符;
步骤4所述若验证通过,指定验证者生成验证者生成签名副本的第一部分签名、第二部分签名:指定验证者随机选择r1', 计算R1'=r2'PKA,R2'=r1'SKAPKB;
其中,r1', 表示是从 中任意选取的一个元素,SKA表示指定验证者的私钥,PKA表示指定验证者的公钥,PKB表示签名者的公钥,R1'表示指定验证者生成签名副本的第一部分签名,R2'表示指定验证者生成签名副本的第二部分签名;
步骤4所述指定验证者生成签名副本时的双线性对的值:
其中,r1'表示是从 中任意选取的一个元素,W2'表示指定验证者生成签名副本时的双线性对的值,PKA表示指定验证者的公钥,SKA表示指定验证者的私钥,P是G1的一个生成元,G1是阶为素数q的循环加法群;
步骤4所述指定验证者生成指定验证者生成哈希函数副本、验证者生成签名副本的第三部分签名:h2'=H2(W2',m)
S=r1'h2'SKAPKB+r2'PKA
其中,h2'表示指定验证者哈希函数副本,H2表示阶为素数q的循环乘法群映射到整数群的无碰撞哈希函数,W2'表示指定验证者生成签名副本时的双线性对的值,m表示给定消息,SKA表示指定验证者的私钥,PKA表示指定验证者的公钥,PKB表示签名者的公钥,S'表示指定验证者生成签名副本的第三部分签名;
步骤4所述指定验证者模拟的签名副本σ'=(R1',R2',S')满足验证等式即满足等式
其中,σ'表示指定验证者生成签名副本,R1'表示指定验证者生成签名副本的第一部分签名,R2'表示指定验证者生成签名副本的第二部分签名,S'表示指定验证者生成签名副本的第三部分签名,W2表示指定验证者双线性对的值,SKA表示指定验证者的私钥,h2表示指定验证者哈希函数,P是G1的一个生成元,G1是阶为素数q的循环加法群,W2'表示指定验证者生成签名副本时的双线性对的值,h2'表示指定验证者哈希函数副本。