1.一种基于无交互零知识证明的IOT身份认证方法,其特征在于,包括签名发布步骤和身份认证环步骤;
所述签名发布步骤,申请身份认证的申请人向第三方提出附有证明材料的身份证明申请;第三方对身份证明申请进行身份审核,并将审核身份属实的身份证明申请生成认证身份信息;第三方对身份信息进行时戳添加处理并用私钥进行签名,然后将签名好的认证身份信息从安全信道返回给申请人;
所述身份认证环步骤,申请人在本地对所述签名发布步骤中得到的签名好的认证身份信息进行运算,得到包含认证身份信息生成时间信息的零知识的身份验证消息,并通过通信模块将身份验证消息定向发送给需要对申请人进行身份认证的验证者,验证者对收到的身份验证消息进行报文解析,并验证报文解析得到的申请人的身份信息id是否合法。
2.如权利要求1所述的一种基于无交互零知识证明的IOT身份认证方法,其特征在于,所述签名发布步骤中,具体包括以下步骤:步骤1,申请身份认证的申请人从工作单位等职能部门开出规定的证明材料,并向权威第三方提出附有所述证明材料的身份证明申请;
步骤2,权威第三方对身份证明申请中的证明材料进行审核,并将审核结果中身份属实的身份证明申请生成认证身份信息,并对认证身份信息进行时戳添加处理并用私钥进行签名。
步骤3,将身份签名从通过硬件上直接连接传输的安全信道返回给申请人。
3.如权利要求2所述的一种基于无交互零知识证明的IOT身份认证方法,其特征在于:所述步骤2中,权威第三方对认证身份信息进行时戳添加处理并用私钥进行签名后生成认证身份证明,具体的,认证身份证明s为d
s=(H(id|TR|TRv)) mod n,式中H()是SM3密码杂凑算法,mod n为求余函数,id为申请人的身份信息,TR为生成认证身份证明时的时间戳,TRv为认证身份证明的有效期,d为RSA私钥,生成认证身份证明s是作为证明者的权威第三方对申请人的身份证明,应当被安全的保存在身份认证硬件当中,然后用零知识证明的方式向验证者V证明自己拥有这个s。
4.如权利要求3所述的一种基于无交互零知识证明的IOT身份认证方法,其特征在于:
64
所述SM3密码杂凑算法对长度为l(l<2 )比特的消息,经过填充和迭代压缩,生成长度固定为256比特的杂凑值。
5.如权利要求3或4所述的一种基于无交互零知识证明的IOT身份认证方法,其特征在于:所述步骤3中,将身份签名从通过硬件上直接连接传输的安全信道返回给申请人,具体的,将所述步骤2中生成的认证身份证明s保存在身份认证硬件当中,然后用零知识证明的方式向需要对申请人进行身份认证的验证者V提供保存在身份认证硬件中的认证身份证明s作为身份认证凭证。
6.如权利要求1所述的一种基于无交互零知识证明的IOT身份认证方法,其特征在于,所述身份认证环步骤中,申请人在本地对所述签名发布步骤中得到的签名好的认证身份信息进行运算,具体的:
申请人在本地生成x个随机数(rnum0,rnum1,…,rnumx‑1),但是证明过程不能暴露身份签名的内容,否则就有被冒用身份的可能,因此秘密计算中间变量ri:e
ri=rnumimod n,
e
式中modn为求余函数,rnumi为第i个随机数的e次幂,e是RSA公钥;
再计算证明者待发送消息c:
c=H(id|TP|TPv|r0|r1|…|rx‑1)式中id为申请人的身份信息(身份证号、职务、级别等任何信息皆可),TP为收到身份验证消息的时间戳,TPv为身份验证消息有效期,ri为第i个上文中计算出来的中间变量;
再计算用以辅助身份验证的中间变量pi:式中,s是从权威第三方处获得的身份证明,在上文中有表述,c[i]是c的第i比特的值。
7.如权利要求1或6所述的一种基于无交互零知识证明的IOT身份认证方法,其特征在于,所述身份认证环步骤中,申请人将身份验证消息定向发送给需要对申请人进行身份认证的验证者,身份验证消息中的每一个元素都是根据协议约定的64字节,验证者收到后可以很容易的根据协议约定提取出每一个元素的内容,身份验证消息中的元素包括{c,id,TR,TRv,TP,TPv,p0,p1,…,px‑1),其中,id 为申请人的身份信息(身份证号、职务、级别等任何信息皆可),TR为生成认证身份证明时的时间戳,TRv为认证身份证明的有效期,TPv为身份验证消息有消息,pi是前面步骤计算出来用以辅助验证的中间变量。
8.如权利要求1或6所述的一种基于无交互零知识证明的IOT身份认证方法,其特征在于,所述身份认证环步骤中,验证报文解析得到的申请人的身份信息id是否合法,具体的,验证者首先计算辅助验证的中间变量c′:c′=H(id|TP|TPv|v0|v1|…|vx‑1)在计算公式中的vi也是中间变量,它的值是:验证者V进行条件检验:
证明者在最初选取的随机数rnum的个数是x,在证明步骤中会根据中间变量c的前x比特进行不同的操作,所以攻击者如果不知道身份证明的内容而想要随机碰撞正确的结果,对于c的每一个比特都有 的概率猜对(0或1),那么当选取x个随机数后,攻击者就有 的概率猜对,如果检验以上条件(1)~(3)都满足的话,那么验证者V就可以有 的概率判定申请人的身份信息id为真实,反之则为不真实。
9.如权利要求8所述的一种基于无交互零知识证明的IOT身份认证方法,其特征在于:验证者判定申请人的身份信息id不真实,则返馈包括身份错误、身份证明过期或验证消息过期的信息。