法律状态公告日
法律状态信息
法律状态
2018-01-30
授权
授权
2015-09-02
实质审查的生效 IPC(主分类):H04L9/32 申请日:20150505
实质审查的生效
2015-08-05
公开
公开
技术领域
本发明属于信息安全技术领域,具体涉及一种无证书广义代理签密方法。
背景技术
在传统的公钥密码体制中,公钥是一堆乱码,所以需要一个可信第三方--认证中心(Certificate Authority,以下简称CA)颁发一个证书来把用户的公钥与其身份信息进行绑定。而证书的管理费用高昂, 这阻碍了传统公钥密码体制的广泛使用。
基于身份的密码体制可以降低高昂的证书管理费用,它是Shamir于1984年在CRYPTO’84中提出的 概念。基于身份的密码体制是先确定用户的公钥,再计算相应的私钥。因而公钥可以取为用户的身份信息, 从而省去了公钥证书,降低了公钥管理的费用。但基于身份的密码体制的私钥必须由可信第三方—私钥生 成中心(Private Key Generator,以下简称PKG)产生,不可避免地引起密钥托管问题,即PKG知道所有 用户的私钥。
无证书密码体制既可降低公钥的管理费用又可解决密钥托管问题,它是Al-Riyami和Paterson于2003 年在ASIACRYPT’2003中提出的概念。无证书密码体制的私钥由两部分组成。一部分是密钥生成中心(Key Generation Center,以下简称KGC)生成的部分私钥;另一部分是用户自己选取的一个秘密值。公钥也由 两部分组成。一部分是用户的身份信息;另一部分是秘密值对应的公钥。由于KGC不知道用户的完整私钥, 因而解决了密钥托管问题。并且用户的公钥不需要证书,因而降低了公钥的管理费用。
保密性和认证性是信息安全领域里两个基本的安全需求。保密性可以通过加密技术来实现;而认证性 可以通过数字签名来实现。当我们同时需要保密性和认证性时,传统做法是“先签名再加密”。签密可以 实现在一个逻辑步骤内同时实现加密和签名两项功能,而且其计算代价和通信成本比传统的“先签名再加 密”的两步实现要小得多,它是Zheng于1997年在CRYPTO’97中提出的概念。
在同时需要机密性和认证性的场合,签密确实十分高效。但当系统只需要机密性或认证性时,签密将 不再适合。于是系统必须使用另外的加密算法或数字签名算法才能满足要求,这势必将会增加系统的开销 和实现复杂性。为克服这种不足,韩益亮等人于2006年提出了广义签密的概念。广义签密可以只用一个 算法和一对密钥同时实现或加密、或签名和或签密三项功能。
代理签名可以让一个原始签名人在自己不方便的时候,委托一个可信任的代理签名人代替自己签名, 它是Mambo等人于1996年提出的概念。自该概念提出后,代理签名得到了广泛的应用。1999年,Gamage 等人将代理签名的概念和签密的概念相结合,提出了代理签密的概念。
在现有的实现中,代理签名和代理签密是分开的。如果某人有时想使用代理签名功能,另外一些时候 又想使用代理签密功能,则他必须保存两对密钥和使用两个算法。代理签名用一个算法和一对密钥;代理 签密使用另外一个算法和另外一对密钥。这样势必要增加系统存储密钥的空间、管理密钥的成本、验证密 钥的时间和实现两个算法给系统带来的实现复杂性。
发明内容
本发明的目的在于克服上述现有技术的缺陷,借鉴广义签密的概念,结合无证书密码体制的优越性, 提供一种只需使用一个算法和一对密钥就可实现代理签名和代理签密两项功能的一种无证书代理签密方 法,我们称其为广义代理签密方法。
本发明通过以下技术方案来实现:
一种无证书广义代理签密方法,代理人只需使用一对密钥和一个算法就可实现代理签名和代理签密两 项功能,原始签名或签密人授权一个他信任的代理签名或签密人代表他进行签名或签密;对于敏感数据, 代理人可以使用代理签密方法;对于其它信息,他可以使用代理签名方法;包括以下具体步骤:
步骤1、系统初始化:设定系统参数,用于生成用户的私钥和公钥、代理授权生成、广义代理签密和 广义代理解签密。
步骤2、部分私钥生成:用户提交自己的身份信息IDi给密钥生成中心KGC,KGC根据系统参数和用户 身份信息IDi生成用户的部分私钥Di并秘密地发送给用户。
步骤3、用户密钥生成:用户基于系统参数随机生成一个秘密值xi,计算相应于该秘密值的公钥并设 置自己的完整私钥;
步骤4、代理授权生成:原始签名或签密人产生一个授权证书mw,然后根据系统参数、自己的完整私 钥、自己的身份与公钥对授权证书进行签名产生代理授权σ并公开发送σ给代理签名或签密人。代理签名 或签密人根据系统参数、原始签名或签密人的身份与公钥和mw对σ进行验证,验证通过后接受代理授权 σ,否则要求原始签名或签密人重新生成代理授权σ。
步骤5、广义代理签密:代理签名或签密人根据系统参数、自己的完整私钥、代理授权σ、授权证书mw、 消息M、自己的身份与公钥和接收人的身份与公钥生成广义代理签密文σP。该步骤包括两种模式:代理 签名模式和代理签密模式。如果接收人身份为空则它工作于代理签名模式;如果接收人身份不空则它工作 于代理签密模式。
步骤6、广义代理解签密:该步骤也包括两种模式:代理签名验证模式和代理解签密模式。如果接收 人的身份为空,则它工作于代理签名验证模式,任何人都可以根据系统参数,原始签名或签密人的身份与 公钥、代理签名或签密人的身份与公钥和授权证书mw验证代理签名σP的正确性,如果验证通过则接受该 代理签名σP,否则拒绝;如果接收人的身份不空,则它工作于代理解签密模式,接收人可以根据系统参数, 原始签名或签密人的身份与公钥、代理签名或签密人的身份与公钥、自己的身份与公钥和授权证书mw验 证代理签密文σP的正确性,如果验证通过则接受该代理签密文σP,然后再使用自己的完整私钥解密出消 息M,否则拒绝。
作为本发明的优选,进一步地,所述步骤1的系统参数设置具体为:所述步骤1的系统参数设置具体 为:
安全参数k为正整数;一个循环加法群G1和一个循环乘法群G2,两个群的阶都为素数q;一个随机的G1的生成元P;一个双线性映射e:G1×G1→G2;四个安全的散列函数和 其中{0,1}*表示任意比特长的二进制序列组成的集合,表示去掉单位元所得的加法群, 是由所有大于等于1且小于q的正整数组成的有限域,{0,1}m表示比特长为m的二进制序列组成的集合,m 为预设参数,表示消息的比特长度;一个特殊函数f(ID),其中ID∈{0,1}*为用户身份;如果身份为空,令 f(ID)=0,否则令f(ID)=1;一个随机数作为主私钥,计算Ppub=sP作为主公钥;公开系统参数为 {e,G1,G2,P,Ppub,m,H1,H2,H3,H4,f(ID)},保密主密钥s;
所述步骤2部分私钥生成具体包括:
密钥生成中心计算用户的部分私钥Di=sQi,其中Qi=H1(IDi);则身份为IDA的原始签名或签密人的 部分私钥为DA,身份为IDP的代理签名或签密人的部分私钥为DP,身份为IDB的接收人的部分私钥为DB;
所述步骤3用户密钥生成具体包括:
用户随机选取秘密值计算公钥PKi=xiP,并设置完整私钥为SKi=(Di,xi);则身份为IDA的原 始签名或签密人的秘密值为xA,公钥为PKA,完整私钥为SKA=(DA,xA);身份为IDP的代理签名或签密人 的秘密值为xP,公钥为PKP,完整私钥为SKP=(DP,xP);身份为IDB的接收人的秘密值为xB,公钥为PKB, 完整私钥为SKB=(DB,xB);
所述步骤4代理授权生成具体包括:
原始签名或签密人A随机选取计算U=rP,h2=H2(mw,U,IDA,PKA),h3=H3(mw,U,IDA,PKA), V=(r+h2xA)QA+h3DA,其中mw为所述原始签名或签密人给代理签名或签密人的授权证书,mw中明确说明 原始签名或签密人和代理签名或签密人的身份、公钥、消息类型和有效期等信息;原始签名或签密人A把 代理授权σ=(mw,U,V)通过公开信道传送给代理签名或签密人P,P可以通过验证 e(V,P)=e(QA,U+h2PKA+h3Ppub)等式来检验代理授权σ是否有效,如果无效,则要求原始签名或签密人重新 生成代理授权;
所述步骤5广义代理签密具体包括:
假设代理签名或签密人P想要给接收人B发送广义代理签密消息;设消息M∈{0,1}m,tag∈{0,1};代理 签名或签密人P首先计算f(IDB),当f(IDB)=0时令tag=0,否则令tag=1;随机选取计算R=tP, T=e(Ppub,QB)t·tag,h4=tag·H4(R,T,tPKB,IDP,PKP,IDB,PKB),h5=H2(mw,S,R,IDP,PKP,IDB,PKB), h6=H3(mw,S,R,IDP,PKP,IDB,PKB),X=V+(t+h5xP)QP+h6DP,输出σP=(mw,U,R,S,X,tag)作为广义代理签密 文,其中表示异或运算;
(1)代理签名模式:如果tag=0,则σP=(mw,U,R,S=M,X,tag=0)为代理签名;
(2)代理签密模式:如果tag=1,则σP=(mw,U,R,S,X,tag)为代理签密;
所述步骤6广义代理解签密具体包括:
接收人B计算h2=H2(mw,U,IDA,PKA),h3=H3(mw,U,IDA,PKA),h5=H2(mw,S,R,IDP,PKP,IDB,PKB), h6=H3(mw,S,R,IDP,PKP,IDB,PKB);
(1)tag=0;接收人B验证e(X,P)=e(QA,U+h2PKA+h3Ppub)e(QP,R+h5PKP+h6Ppub)是否成立,不成立则返回⊥ 表示拒绝;否则接受该代理签名σP=(mw,U,R,S,X,tag);
(2)tag=1;接收人B验证e(X,P)=e(QA,U+h2PKA+h3Ppub)e(QP,R+h5PKP+h6Ppub)是否成立,不成立则返回⊥ 表示拒绝;否则接受该代理签密σP=(mw,U,R,S,X,tag),计算h4=H4(R,e(R,DB),xBR,IDP,PKP,IDB,PKB),恢 复消息
由于采用了上述技术方案,本发明的有益效果是:
1、代理签名或签密人只需使用一个算法和一对密钥就可实现代理签名和代理签密两项功能;
2、基于无证书密码体制实现,既不存在密钥托管问题又降低了公钥管理的高昂费用;
3、实现了可公开验证的认证性,验证等式中的所有参数都是已知的或可计算的,发生纠纷时任何人 都能在不泄露任何秘密信息的情况下对广义签密文进行有效性验证;
4、原始签名或签密人和代理签名或签密人之间不需要安全信道,降低了系统实现的复杂性。
附图说明
图1是本发明无证书广义代理签密方法的流程图;
图2是本发明无证书广义代理签密方法的处理流程示意图。
具体实施方式
下面结合附图对本发明做详细描述。
如图1、2所示,本发明提供了基于无证书的广义代理签密方法,在所述广义代理签密方法的应用场 景中,原始签名或签密人授权一个他信任的代理签名或签密人代表他进行签名或签密。对于敏感数据,代 理签名或签密人可以使用代理签密方法;对于其它信息,他可以使用代理签名方法。代理签名或签密人只 需保存一对密钥和只使用一个算法,降低了密钥的管理费用和系统实现的复杂性。本发明的具体过程如下:
步骤1、系统初始化。
安全参数k为整数,生成元为P的一个加法循环群G1和一个乘法循环群G2,两个群的阶都为素数q。 e:G1×G1→G2为一个双线性映射。定义四个安全的Hash函数其中{0,1}*表示任意比特长的二进制序列组成的集合,表示去掉单位元所得到的加法 群,是由所有大于等于1且小于q的正整数组成的有限域,{0,1}m表示比特长为m的二进制序列组成的 集合,m为预设参数,表示消息的比特长度。一个特殊函数f(ID),其中ID∈{0,1}*为用户身份;如果身份 为空,令f(ID)=0,否则令f(ID)=1。密钥生成中心KGC随机选取作为主私钥,计算Ppub=sP作 为主公钥。公开系统参数为{e,G1,G2,P,Ppub,m,H1,H2,H3,H4,f(ID)},保密主密钥s。
步骤2、部分私钥生成。
KGC为原始签名或签密人计算部分私钥DA=sQA,其中QA=H1(IDA);为代理签名或签密人计算部分私 钥DP=sQP,其中QP=H1(IDP);为接收人计算部分私钥DB=sQB,其中QB=H1(IDB)。
步骤3、用户密钥生成。
用户随机选取秘密值计算公钥PKi=xiP,并设置完整私钥为SKi=(Di,xi)。则原始签名或签密 人的秘密值为xA,公钥为PKA,完整私钥为SKA=(DA,xA);身份为IDP的代理签名或签密人的秘密值为xP, 公钥为PKP,完整私钥为SKP=(DP,xP);身份为IDB的接收人的秘密值为xB,公钥为PKB,完整私钥为 SKB=(DB,xB)。
步骤4、代理授权生成。
原始签名或签密人A随机选取计算U=rP,h2=H2(mw,U,IDA,PKA),h3=H3(mw,U,IDA,PKA), V=(r+h2xA)QA+h3DA,其中mw为所述原始签名或签密人给代理签名或签密人的授权证书,mw中明确说明 原始签名或签密人和代理签名或签密人的身份、公钥、消息类型和有效期等信息;原始签名或签密人A把 代理授权σ=(mw,U,V)通过公开信道传送给代理签名或签密人P。P可以通过验证 e(V,P)=e(QA,U+h2PKA+h3Ppub)等式来检验代理授权σ是否有效,如果无效,则要求原始签名或签密人重新 生成代理授权。
步骤5、广义代理签密。
假设代理签名或签密人P想要给接收人B发送广义代理签密消息;设消息M∈{0,1}m,tag∈{0,1};代理 签名或签密人P首先计算f(IDB),当f(IDB)=0时令tag=0,否则令tag=1;随机选取计算R=tP, T=e(Ppub,QB)t·tag,h4=tag·H4(R,T,tPKB,IDP,PKP,IDB,PKB),h5=H2(mw,S,R,IDP,PKP,IDB,PKB), h6=H3(mw,S,R,IDP,PKP,IDB,PKB),X=V+(t+h5xP)QP+h6DP,输出σP=(mw,U,R,S,X,tag)作为广义代理签密 文,其中表示异或运算。
代理签名模式:如果tag=0,则σP=(mw,U,R,S=M,X,tag=0)为代理签名。
代理签密模式:如果tag=1,则σP=(mw,U,R,S,X,tag)为代理签密。
步骤6、广义代理解签密。
接收人B计算h2=H2(mw,U,IDA,PKA),h3=H3(mw,U,IDA,PKA),h5=H2(mw,S,R,IDP,PKP,IDB,PKB), h6=H3(mw,S,R,IDP,PKP,IDB,PKB);
(1)tag=0;接收人B验证e(X,P)=e(QA,U+h2PKA+h3Ppub)e(QP,R+h5PKP+h6Ppub)是否成立,不成立则返回 ⊥表示拒绝;否则接受该代理签名σP=(mw,U,R,S,X,tag);
(2)tag=1;接收人B验证e(X,P)=e(QA,U+h2PKA+h3Ppub)e(QP,R+h5PKP+h6Ppub)是否成立,不成立则返回 ⊥表示拒绝;否则接受该代理签密σP=(mw,U,R,S,X,tag),计算h4=H4(R,e(R,DB),xBR,IDP,PKP,IDB,PKB), 恢复消息
本发明使得代理签名或签密人只需使用一个算法和一对密钥就可实现代理签名和代理签密两项功能; 基于无证书密码体制来实现,解决了密钥托管问题和降低了证书管理的高昂费用;实现了可公开验证的认 证性,发生纠纷时任何人都能在不泄露任何秘密信息的情况下对广义签密文进行有效性验证;原始签名或 签密人和代理签名或签密人之间不需要安全信道,降低了系统实现的复杂性。
机译: 无证书多代理签名方法及装置
机译: 无证书多代理签名方法和装置
机译: 通过基于网络上存在的移动代理的移动代理方法创建的儿童代理的移动代理对象,以及允许移动代理识别同一位置存在的另一种移动代理的方法