【技术实现步骤摘要】
一种基于SM2的身份基的数字签名方法与系统
本专利技术涉及信息安全
,尤其涉及一种基于SM2的身份基的数字签名方法与系统。
技术介绍
数字签名是伴随着信息网络技术的发展而出现的一种安全保障技术,目的就是通过技术手段实现传统的纸面签字或者盖章的功能,用于鉴定签名人的身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。数字签名是公钥密码体系中重要的一部分,在很多场合有着重要的作用。SM2椭圆曲线公钥密码算法是由国家密码管理局颁布的一种椭圆曲线公钥密码算法(参见《SM2椭圆曲线公钥密码算法》规范,国家密码管理局,2010年12月),算法确定了包括数据加密、数字签名和密钥交换等算法或协议。其中,SM2签名算法因其高安全、高效率而广泛用于消息传输,可有效保证消息传输过程中消息的可靠性。SM2签名算法包括系统初始化算法(SM2_Setup)、用户密钥对生成算法(SM2_KeyGen)、数字签名算法(SM2_Sign)、签名验证算法(SM2_Verify)。由于SM2签名算法是基于PKI框架设计的密码系统,需要证书授权中心(CA)维护管理用户公钥证书,主要包括证书的颁发、撤销等。证书的管理开销随着用户数量增加而成线性增长,因此,在云计算、大数据等多用户环境下,高昂的证书管理开销将限制SM2公钥密码算法的使用。为解决基于PKI框架下证书管理开销大、维护困难等问题,国家于2015年确立SM9标识密码算法为国家密码行业标准(GM/T0044-2016)。SM9标识密码算法是一种基于双线性对的身份基密 ...
【技术保护点】
1.一种基于SM2的身份基的数字签名方法,其特征在于,包括以下步骤:步骤1)产生整个签名过程所需参数,参数包括:椭圆曲线相关参数:q、Fq、a、b、n、G,和安全哈希函数:HV(·)、H(·)、H256(·);其中,q为大素数,Fq为包含q个元素的有限域,a、b为Fq中的元素,用于定义Fq上的一条椭圆曲线E;G为椭圆曲线的一个基点,其阶为素数;n为基点G的阶;步骤2)由密钥生成中心KGC生成系统主公私钥(Ppub,Ppri),其中,Ppub为系统主公钥,Ppri为系统主私钥;步骤3)用户密钥提取:产生用户User的签名私钥,具体过程如下:步骤3.1)用户User将身份标识ID发送给KGC,请求签名私钥;步骤3.2)KGC收到私钥请求后,首先利用已有的身份认证方法确认ID与User身份一致,随后,KGC在集合{1,2,…,n‑1}中随机选取整数l并通过以下公式计算签名私钥的第一部分L;L=[l]G=(x1,y1)其中,(x1,y1)表示L的横纵坐标;步骤3.3)KGC根据L,通过以下公式计算私钥的第二部分α;h=H(ID||L)α=l+xhmodn其中,H(·)表示安全哈希函数,符号|| ...
【技术特征摘要】
1.一种基于SM2的身份基的数字签名方法,其特征在于,包括以下步骤:步骤1)产生整个签名过程所需参数,参数包括:椭圆曲线相关参数:q、Fq、a、b、n、G,和安全哈希函数:HV(·)、H(·)、H256(·);其中,q为大素数,Fq为包含q个元素的有限域,a、b为Fq中的元素,用于定义Fq上的一条椭圆曲线E;G为椭圆曲线的一个基点,其阶为素数;n为基点G的阶;步骤2)由密钥生成中心KGC生成系统主公私钥(Ppub,Ppri),其中,Ppub为系统主公钥,Ppri为系统主私钥;步骤3)用户密钥提取:产生用户User的签名私钥,具体过程如下:步骤3.1)用户User将身份标识ID发送给KGC,请求签名私钥;步骤3.2)KGC收到私钥请求后,首先利用已有的身份认证方法确认ID与User身份一致,随后,KGC在集合{1,2,…,n-1}中随机选取整数l并通过以下公式计算签名私钥的第一部分L;L=[l]G=(x1,y1)其中,(x1,y1)表示L的横纵坐标;步骤3.3)KGC根据L,通过以下公式计算私钥的第二部分α;h=H(ID||L)α=l+xhmodn其中,H(·)表示安全哈希函数,符号||表示连接,modn表示模n运算;步骤3.4)KGC将私钥(L,α)通过安全信道发送给用户User;步骤3.5)用户User接收并秘密保存KGC发送的私钥(L,α);步骤4)用户签名:该步骤主要用于用户User产生消息M的数字签名(L,r,s);步骤5)签名验证:验证通过接收的消息M'的签名(L',r',s')合法性,具体验证过程如下:步骤5.1)检查r'是否属于集合{1,2,…,n-1}中,如果不是则验证不通过;否则,检查s'是否属于{1,2,…,n-1},如果不是则验证不通过,否则进入步骤5.2);步骤5.2)根据以下公式计算Z'A并置Z'A=H256(ENTLA'||ID||a||b||xG||yG||x1||y1)步骤5.3)根据以下公式计算e',并将e'转换为整数;步骤5.4)根据以下公式计算并判断t,如果t=0成立,则消息签名为非法,结束验证过程,否则进入步骤5.5);t=r'+s'modn步骤5.5)根据以下公式先后计算h'和椭圆曲线点K',h'=H(ID||L')K'=(x'k,y'k)=s'G+t(L'+h'Ppub)步骤5.6)根据以下公式计算并判断R',如果R'=r'成立,则消息签名合法,否则消息签名非法;R'=(e'+x'k)modn。2.根据权利要求1所述的基于SM2的身份基的数字签名方法,其特征在于,所述步骤2)中,由密钥生成中心KGC生成系统主公私钥的具体过程如下:步骤2.1)KGC从集合{1,2,…,n-1}中随机选取整数x作为主私钥Ppri=x,其中n表示SM2密码运算所使用的椭圆曲线点群的阶。步骤2.2)KGC根据所选主私钥x,通过以下公式计算并公布系统主公钥Ppub,Ppub=[x]G=(xG,yG)其中,G为SM2数字签名系统参数中椭圆曲线点群的基点,[x]G表示点乘运算,(xG,yG)表示公钥的横纵坐标。3.根据权利要求1所述的基于SM2的身份基的数字签名方法,其特征在于,所述步骤4)的签名过程具体如下:步骤4.1)用户User根据以下公式计算ZA并置ZA=H256(ENTLA||ID||a||b||xG||yG||x1||y1)其中,H256表示安全哈希函数,a,b为椭圆曲线参数,ENTLA表示当前用户ID长度;步骤4.2)用户User根据以下公式计算e并将e转换为整数,其中,HV(·)表示安全哈希函数;步骤4.3)用户User在集合{1,2,…,n-1}中随机选择整数k,根据以下公式计算椭圆曲线点K,K=[k]G=(xk,yk)并将xk转换为整数类型;步骤4.4)用户User根据以下公式计算部分签名r并判断r,如果r=0或r+k=n成立,则返回步骤4.3,否则执行步骤4.5;r=(e+xk)modn步骤4.5)用户User根据以下公式计算部分签名s并判断s,如果s=0成立,则返回步骤4.3,否则执行步骤4.6;s=(1+α)-1(k-rα)modn其中,(1+α)-1为(1+α)的模n乘法逆;步骤4.6)用户User输出消息M签名为(L,r,s)。4.一种基于SM...
【专利技术属性】
技术研发人员:何德彪,张佳妮,陈泌文,张宇波,
申请(专利权)人:武汉大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。