专利名称:一种基于ecc的数字签名方案的利记博彩app
技术领域:
本发明是一种数字签名方案,具体地说是基于椭圆曲线密码体系的一种数字签名与验证 方案,其运算过程基本在蒙哥马利域实现。
背景技术:
数字签名是密码学中的重要问题之一,它是传统文件手写签名的模拟,能够实现用户对 电子形式存放消息的认证。数字签名可以提供数据源认证、数据完整性和不可否认性,通常 由可信的认证中心使用数字签名来签署将通信实体和其公钥相绑定的证书。数字签名也可以
用于网络环境中的商业交易,其目的是使接收方能够确证发送方的签名,但不能伪造;发送 方发出了签了名的消息给接收方后,就不能否认它所签发的消息。
椭圆曲线版的数字签名具有更高的安全性,因为椭圆曲线的求解难度是指数级的,高于 以往任何一种密码算法;在相同安全强度下椭圆曲线具有最短的密钥长度,这样就使其对存 储空间的要求少;在数字签名与验证、加解密等算法中,椭圆曲线的计算量小,处理速度快; 当应用于短消息加密时,椭圆曲线密码系统的带宽要求要低得多。在椭圆曲线的运算过程中, 有多种算法可以选择,其中的蒙哥马利域运算具有许多比较成熟的快速算法,可以避免耗时 的模归约运算等。
目前,基于椭圆曲线的数字签名算法一般在有限域中运算,通常要经过频繁的求逆、求 模等十分耗时的数学运算。本方案提出了一种新的数字签名算法,能够应用现有的一些成熟 算法达到快速数字签名的目的。
发明内容
本方案是一种基于椭圆曲线的数字签名算法,它具有以下特点
>对于随机数K的选取,只要求数据源送来的K的位宽符合要求且不等于零。如果K
大于等于N,则采取右移的方式使K小于N。这种方式避免了签名算法模块同随机
数生成模块的频繁通信,节约了时间。 >基本数学运算都在蒙哥马利域进行,避免了耗时的模归约运算。 >杂凑函数输出值的大小和宽度可能不符合实际需要,可以采用移位、截取、添加"0"
等方式使其满足特定要求(如图1所示)。同时默认处理后的杂凑值为蒙哥马利域的
元素,避免了大素数域和蒙哥马利域之间的频繁转换。
数字签名方案
输入参数组D (p, a, b, G, n, h),私钥d,消息m 输出签名值(r', s')
1、 选择随机数k邦,若k^n,则k二k〉M,直到k〈n。
2、 转化参数G、 d到蒙哥马利域G->G'=(Xl', yr), d->d'。3、 在蒙哥马利域计算kG'-(x', y')。4、 在蒙哥马利域计算r^x'modn,若r,=0,则k二k〉M,返回第3步。5、 转化参数k到蒙哥马利域k->k'。6、 计算杂凑值e'=H(m),在高位扩展或截取使e'位宽符合要求,若e》n,则e'= e' l,直到e乂n。默认e'为蒙哥马利域元素。7、 在蒙哥马利域计算s,-k'"(e'+d,r,)modn,若s,=0,则k:k》1,返回第3步。8、 返回签名值(r,, s')。在以上签名过程中,标量乘kG'的输入参数k为大素数域元素,基点坐标(xr, yr)为蒙哥 马利域元素,在蒙哥马利域进行标量乘的运算,输出参数(x', y')仍旧为蒙哥马利域元素。签 名与验证采用相同的杂凑值处理方式,这样简化了运算过程,又能保持同样的安全强度。签 名结果为蒙哥马利域元素,直接作为签名值(如图2所示)。省去了蒙哥马利域到素数域的转 化过程,在签名验证算法中直接对蒙域元素值进行验证。签名验证方案输入参数组D (p, a, b, G, n, h),公钥R,消息m,签名值(r,, s,) 输出签名值是否合法1、 检验签名值r', s'E[l, n-l],否则,拒绝该签名值。2、 计算杂凑值e'-H(m),在高位扩展或截取使e'位宽符合要求,若e》n,则e'二e' l,直到e乂n。默认e'为蒙哥马利域元素。3、 在蒙哥马利域计算w'-s"'modn。4、 转化参数到蒙哥马利域G->G'=(Xl', yi'), R->R,=(x2,, y2')。5、 在蒙哥马禾ll域i十算ui'=e'w, mod n, U2,=r,w'mod n。6、 转化参数ur、 U2,到大素数域ur》m, u2,->u2。7、 在蒙哥马利域计算X^uG'+U2R'气x,, y,)。8、 若X'为无穷远点,则拒绝该签名值。9、 在蒙哥马利域计算v'^'modn。10、 若v,呵',则接受该签名值;否则,拒绝该签名值。以上验证过程中,输入的签名值(r', s')为蒙哥马利域中的元素,直接进行运算,避免 了由大素数域到蒙哥马利域的转换。对杂凑值的处理方式同数字签名部分。在标量乘中,虽 然是在蒙哥马利域中进行运算,但标量还是以大素数域中的元素表示,而曲线点的坐标应转 化到蒙哥马利域。因此要将ur、 U2'转化到大素数域,然后再进行标量乘和点加运算。这里的 标量乘和点加运算都是在蒙哥马利域进行的,其输入输出都是蒙哥马利域中的元素。最后签 名值的校验,同样在蒙哥马利域中进行,避免了域的转换(如图3所示)。签名方案证明在签名过程中,有s^k'"(e'+d'r')modn,可知k,二s'"(e'+d'r')二s"V+s"V'cT二ur+U2-d,由此 k=ui+u2d
在验证过程中,又有公钥R-dG, R'=dG',则
X,= vuG,+ U2R,(u,+U2d)G,-kG'
由此可以证明v'=r'
图1是本发明的位向量操作示意图
图2是本发明的数字签名过程示意图 图3是本发明的数字签名验证过程示意图
具体实施例方式
具体操作实现时,该算法的所有参数均由可信任的第三方权威机构确定。把一部分参数 公开,而另一部分参数严格保密,并把相应的参数设置到设备A中去。为简便起见,本实施 例选用了 NIST所推荐的素数域上的P-192椭圆曲线和一些简单参数。具体过程如下
1、 由权威信任机构选定椭圆曲线参数(p, a, b, G, n, h)等 椭圆曲线方程y2二x3-ax-b
P=2192_264_i
a=-3 (modp) =p-3=2192-264-22
b=0x 64210519 E59C80E7 0FA7E9AB 72243049 FEB8DEEC C146B9B1 Gx=0x 188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012 Gy=0x 07192B95 FFC8DA78 631011 ED 6B24CDD5 73F977A1 1E794811 n=0x FFFFFFFF FFFFFFFF FFFFFFFF 99DEF836 146BC9B1 B4D22831 h=l
2、 由权威信任机构为设备A选取一个保密的随机数de[l, n-l]。为了计算简单此处取 值为d二l。计算标量乘R^dG如下
Rx=0x 188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012 Ry=0x 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811
将d作为设备A的私钥,标量乘R作为设备A的公钥。
3、 设备A用私钥d对消息m进行数字签名,得到签名值(r', s')。
4、 设备B用设备A的公钥R对签名值(r', s')进行验证。
权利要求
1、一种基于ECC的数字签名方案,利用椭圆曲线密码和蒙哥马利域模运算实现快速的数字签名和验证。其特征是对待签名的消息m进行哈希运算,得出杂凑值e;使用截取、添加、移位等技术手段产生值e’,e’小于基点G的阶n且位宽与n一致;e’被默认为蒙哥马利域元素,直接参与数字签名或验证运算。
2、 根据权利要求1所述的一种基于ECC的数字签名方案,其特征是数字签名和签名 验证算法中,对待签名消息m的哈希值e采用相同的处理方法。
3、 根据权利要求2所述的一种基于ECC的数字签名方案,其特征是在数字签名算法 中,要求随机数k^0;可以采取添加、截取、移位的方法使其位宽与n—致,且使k小于n。
4、 根据权利要求3所述的一种基于ECC的数字签名方案,其特征是数字签名算法中 输出的签名值为蒙哥马利域的元素(r', s')。
5、 根据权利要求4所述的一种基于ECC的数字签名方案,其特征是签名验证算法中, 对签名值(r', s')的检查与验证都是在蒙哥马利域中进行的。
全文摘要
本发明公开了一种基于ECC的数字签名方案。利用椭圆曲线标量乘、点加等运算,以及蒙哥马利域的模运算法则,实现快速地数字签名和签名验证。本方案采用移位的方法对不符合要求的随机数进行处理,避免了重新生成随机数的过程;采用移位、截取、补零等方法对杂凑值进行处理,避免了频繁地在大素数域和蒙哥马利域的转换;签名与验证的运算基本都在蒙哥马利域进行运算,避免了耗时的模归约运算。该数字签名方案可用于电子商务、内容保护接口、银行系统、军事通信、知识产权保护等环境中。
文档编号H04L9/32GK101296076SQ20071004900
公开日2008年10月29日 申请日期2007年4月29日 优先权日2007年4月29日
发明者王志辉, 勇 陈 申请人:四川虹微技术有限公司