基于椭圆曲线的盲签名方法和装置制造方法

文档序号:7984709阅读:392来源:国知局
基于椭圆曲线的盲签名方法和装置制造方法
【专利摘要】本发明提供了一种基于椭圆曲线的盲签名方法和装置。该方法主要包括:发送用户随机选择盲化因子k∈Zq*,计算R=H1(m),S=kR,m为待签名信息中的一个任意长度0、1字符串,S为盲化后的消息,q为设定的大素数,Zq*表示1~(q-1)范围内的整数,H1是一个单向hash函数,Fp为从0到p-1的整数组成的域,p为设定的大素数,q是p+1的素因子;签名者用自己的私钥d对S进行签名,计算V’=dS=(dk)R,并将V’发送给接收用户;接收用户接收到V’后,计算V=k-1V’,V的横坐标x即为消息m的签名。本发明实施例的基于椭圆曲线的盲签名方法的盲签名消息长度仅仅为椭圆曲线点的横坐标,增加了系统运行的吞吐量,适合于带宽受限的通讯环境。
【专利说明】基于椭圆曲线的盲签名方法和装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种基于椭圆曲线的盲签名方法和装置。
【背景技术】
[0002]PKI (Public Key Infrastructure,公钥基础设施)技术能保证网络安全的四大需求,即机密性、真实性、完整性和不可抵赖性。PKI技术中所采用的非对称密码算法一般包括基于离散对数问题的 RSA (Rivest Shamir Adleman)算法和 DSA (Digital SignatureAlgorithm,数字签名算法)算法,以及基于椭圆离散对数问题的ECC (Elliptic CurvesCryptography,椭圆曲线密码)算法。
[0003]ECC密码算法是1985年由Koblitz和Miller基于将椭圆曲线算术理论用于密码算法的想法,利用有限域上椭圆曲线的点构成的点群实现的离散对数密码算法。该密码算法分为两种情况:基于大素数域的椭圆曲线和基于特征2的椭圆曲线。
[0004]ECC算法与RSA算法和DSA算法相比,具有安全性能高、计算量小,处理速度快、存储空间占用小等优点。ECC的这些特点使它必将取代RSA (DSA),成为新一代通用的公钥加密算法。比如,国家密码管理局制定的SM2算法就是中国自主知识产权的椭圆曲线密码算法标准。
[0005]盲签名因为具有盲性这一特点,可以有效保护所签署消息的具体内容,所以在电子商务和电子选举等领域有着广泛的应用。盲签名允许消息者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签名信息除去盲因子,得到签名者关于原消息的签名。盲签名就是接收者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术,它除了满足一般的数字签名条件外,还必须满足下面的两条性质:
[0006]1.签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容。
[0007]2.签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次签署的。
[0008]基于椭圆曲线的盲签名方法是近年来国内外密码研究的重要分支,目前,现有技术中还没有有效的基于椭圆曲线的盲签名方法。

【发明内容】

[0009]本发明的实施例提供了一种基于椭圆曲线的盲签名方法和装置,以实现缩短签名消息长度。
[0010]一种基于椭圆曲线的盲签名方法,包括:
[0011]发送用户随机选择盲化因子k e Z/,计算R=H1On), S=kR,所述m为待签名信息中的一个任意长度O、I字符串m,所述S为盲化后的消息,所述q为设定的大素数,所述Zj表示l?(q-l)范围内的整数,所述H1是一个单向hash函数,把m映射到G1上椭圆曲线E的一个点,所述G1是Fp上的椭圆曲线E加法群的一个阶为q的子群,所述Fp为从O到p_l的整数组成的域,所述P为设定的大素数,且所述q是P+1的素因子;
[0012]签名者用自己的私钥d对S进行签名,计算V’ =dS=dkR,并将V’发送给所述接收用户;
[0013]所述接收用户接收到所述V’后,计算V=k_V,V的横坐标χ即为消息m的签名。
[0014]一种基于椭圆曲线的盲签名装置,包括:
[0015]消息盲化处理模块,用于通过发送用户随机选择盲化因子k e Z:,计算R=H1(Hi),S=kR,所述m为待签名信息中的一个任意长度O、I字符串m,所述S为盲化后的消息,所述q为设定的大素数,所述τ:表示f (q-Ι)范围内的整数,所述H1是一个单向hash函数,把m映射到G1上椭圆曲线E的一个点,所述G1是Fp上的椭圆曲线E加法群的一个阶为q的子群,所述Fp为从O到p-1的整数组成的域,所述P为设定的大素数,且所述q是p+1的素因子;
[0016]签名处理模块,用于用签名者的私钥d对S进行签名,计算V’ =dS=dkR,并将V’发送给所述接收用户;
[0017]签名计算模块,用于通过接收用户计算V=IT1V,,V的横坐标χ即为消息m的签名。
[0018]由上述本发明的实施例提供的技术方案可以看出,本发明实施例的基于椭圆曲线的盲签名方法的盲签名消息长度仅仅为椭圆曲线点的横坐标,短于现有椭圆曲线盲签名方法的签名消息长度,增加了系统运行的吞吐量,适合于带宽受限的通讯环境。
【专利附图】

【附图说明】
[0019]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为本发明实施例一提供的一种基于椭圆曲线的盲签名方法的处理流程图;
[0021]图2为本发明实施例一提供的一种盲签名处理的具体过程示意图;
[0022]图3为本发明实施例二提供的一种基于椭圆曲线的盲签名装置的具体结构图。
【具体实施方式】
[0023]为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
[0024]实施例一
[0025]该实施例提供的一种基于椭圆曲线的盲签名方法的处理流程如图1所示,包括如下的处理步骤:
[0026]步骤11:选定GpGyP'q,得到G1的生成元P,双线性配对么
[0027]选定Gp G2为两个阶为q的群,P、q为两个大素数(其中P至少为512比特位,q至少为160比特位),且q是p+1的素因子,q的比特位数用η表示。匕是匕上的椭圆曲线E加法群的一个子群,上述Fp表示从O到p-1的整数组成的域,上述椭圆曲线E可以形如:y2=f(x)的形式,G2是域上的一个乘法群,其中是由Fp 二次扩张得到的,形如Fp[x]/f, Fp[x]是?5上的多项式环,f是一个二次不可化约多项式。P为G1的生成元,即q*P=0,“O”是无穷远点。
[0028]IG1XG1 OG2为一个双线性映射,该双线性配对^是一个从集合G1XG1到集合G2的一个映射,该映射具有如下性质:
[0029]双线性:对于任意gl, g2 e G1和任意的整数a, b e Zp*,有
[0030]
【权利要求】
1.一种基于椭圆曲线的盲签名方法,其特征在于,包括: 发送用户随机选择盲化因子k e Z:,计算R=H1On), S=kR,所述m为待签名信息中的一个任意长度0、1字符串m,所述S为盲化后的消息,所述q为设定的大素数,所述rL:表示l^(q-l)范围内的整数,所述H1是一个单向hash函数,把m映射到G1上椭圆曲线E的一个点,所述G1是Fp上的椭圆曲线E加法群的一个阶为q的子群,所述Fp为从O到p_l的整数组成的域,所述P为设定的大素数,且所述q是P+1的素因子; 签名者用自己的私钥d对S进行签名,计算V’ =dS=dkR,并将V’发送给所述接收用户; 所述接收用户接收到所述V后,计算V=IT1V,,V的横坐标X即为消息m的签名。
2.根据权利要求1所述的基于椭圆曲线的盲签名方法,其特征在于,所述计算R=H1On)包括: 步骤1、给定需要签名信息的一个任意长度字符串M e {O, 1}%设定i为变量,i — O ; 步骤2、设定(X,b) — sha-1 (i Μ),这里χ是计算的横坐标,b是确定纵坐标的二进制比特位; 步骤3、根据方程y2=f (χ),及χ横坐标,计算得到两个平方根y值%和Y1,确定G1上的点 Pm (X,Yb); 步骤4、计算PM=cof*PM’,所述cof为设定的协因子,若Pm Φ O,即输出与M对应的G1上的点Pm作为H1On);否则,将变量i自加1,重新执行所述步骤2、3和4。
3.根据权利要求1所述的基于椭圆曲线的盲签名方法,其特征在于,所述签名者收到所述盲化后的消息S之前还包括: 所述签名者在本地产生不超过q的随机数d作为自己的私钥,计算出自己的公钥Q=dP,并将Q传给CA中心,CA中心将所述公钥Q发送给所述接收用户,所述P为所述G1的生成J Li ο
4.根据权利要求1或者2或3所述的基于椭圆曲线的盲签名方法,其特征在于,所述的方法还包括:
计算 R=H1 (m); 计算gi =狀0,所述與Λ,ρ:为一个双线性映射,是一个从集合(G1XG1)到集合G2的一个映射; 根据横坐标χ计算得到曲线E上的点V1 ; 计算& = M-P); 若g2=gi或g2=g广,验证通过;否则验证失败。
5.一种基于椭圆曲线的盲签名装置,其特征在于,包括: 消息盲化处理模块,用于通过发送用户随机选择盲化因子k e Z/,计算RzHiOnhSzkR,所述m为待签名信息中的一个任意长度O、I字符串m,所述S为盲化后的消息,所述q为设定的大素数,所述K表示广(q-D范围内的整数,所述H1是一个单向hash函数,把m映射到G1上椭圆曲线E的一个点,所述G1是Fp上的椭圆曲线E加法群的一个阶为q的子群,所述Fp为从O到p-1的整数组成的域,所述P为设定的大素数,且所述q是P+1的素因子; 签名处理模块,用于用签名者的私钥d对S进行签名,计算V’ =dS=dkR,并将V’发送给所述接收用户;签名计算模块,用于通过接收用户计算V=k_iv’,V的横坐标X即为消息m的签名。
6.根据权利要求1所述的基于椭圆曲线的盲签名装置,其特征在于: 所述消息盲化处理模块,还用于通过下述处理过程计算R=H1 (m) 步骤1、给定需要签名信息的一个任意长度字符串M e {O, 1}%设定i为变量,i — O ; 步骤2、设定(χ, b) — sha-1 (i Μ),这里χ是计算的横坐标,b是确定纵坐标的二进制比特位,所述i为变量; 步骤3、根据方程y2=f (χ),及χ横坐标,计算得到两个平方根y值%和Y1,确定G1上的点 Pm (X,Yb); 步骤4、计算PM=cof*PM’,所述cof为设定的协因子,若Pm Φ O,即输出与M对应的G1上的点Pm作为H1On);否则,将变量i自加1,重新执行上述步骤2、3和4。
7.根据权利要求6所述的基于椭圆曲线的盲签名装置,其特征在于: 所述签名处理模块,还用于通过所述签名者在本地产生不超过q的随机数d作为自己的私钥,计算出自己的公钥Q=dP,并将Q传给CA中心,CA中心将所述公钥Q发送给所述接收用户,所述P为所述Gl的生成元。
8.根据权利要求5或者6或7所述的基于椭圆曲线的盲签名装置,其特征在于: 所述的签名计算模块33,还用于计算R=H1 (m); 计算gl = ^Q) 5所述:为一个双线性映射,是一个从集合(G1XG1)到集合G2的一个映射,所述G2为阶为q的群,所述q为设定的大素数; 根据横坐标χ计 算得到曲线E上的点V1 ; 计算 若g2=gi或g2=g广,验证通过;否则验证失败。
【文档编号】H04L9/32GK103780385SQ201210407574
【公开日】2014年5月7日 申请日期:2012年10月23日 优先权日:2012年10月23日
【发明者】张庆胜, 苏斌, 王永宝 申请人:航天信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1