1.格上基于身份的强前向安全数字签名方法,其特征在于:该方法一共包含两个实体,分别是基于身份的密码系统IBC用户、密钥生成中心PKG,具体实施步骤包含以下四个算法:(1)系统初始化
输入安全参数n,运行陷门生成算法和哈希函数生成公共参数PP=(A0,B0,H1,H2),以(A0,B0)为主公钥,以格基委派算法生成的为主私钥并令(2)密钥提取及更新算法
一个身份为ID的IBC用户向PKG发送密钥请求,PKG收到用户请求后,会选择一个适合的周期T为该用户一次性生成T个周期的密钥;PKG运行格基委派算法生成T个周期的一系列密钥(SKID||0,SKID||1……SKID||T)∈Zm×m;(SKID||0,SKID||1……SKID||T)作为该用户的全部周期的密钥,PKG把密钥(SKID||0,SKID||1……SKID||T)通过安全信道发送给用户;当T周期内的密钥使用完或失效后,身份为ID的用户再次向PKG发送密钥请求,PKG会再运行算法为用户生成一系列密钥为用户所用;
(3)签名算法
在此算法中,身份为ID的用户需要对某个消息m∈{0,1}*使用用户私钥签名;用户首先确定当前所在的周期,假设当前周期为i,用户使用自己在第i周期的私钥SKID||i,随机向量和ID的身份哈希值H(ID)进行签名,签名结果为ei=(ci,zi);用户随机选择消息m∈{0,1}*,计算ci=H2(A°ID||i·yi,m),其中A°ID||i=AID||i+A′ID||i,AID||i和A′ID||i均为主公钥和身份的hash运算,具体的有AID||i=A0·(H1(ID||0)H1(ID||1)……H1(ID||i))-1,A′ID||i=B0·(H1(ID||T)H1(ID||T-1)……H1(ID||i))-1;然后计算zi=SKID||i·ci+yi,以概率输出当前周期i的签名ei=(ci,zi);TID||i=A°ID||i·SKID||i,那么第i周期用户的公钥为PKID||i=(A°ID||i,TID||i);
(4)验证算法
任何得到签名和公钥的人都可以作为验证者,验证者在获得身份为ID的用户的签名ei后,使用用户在第i周期的公钥PKID||i对消息签名对进行验证,如果ci=H2(A°ID||i·zi-TID||i·ci,m)成立,那么验证通过,否则验证失败。