一种数字签名方法和装置的制造方法_3

文档序号:9931104阅读:来源:国知局
-1
[0101 ]这里 mh=bh= 1,h = k或k+1。其中bj 关 0时,取bj = 1或-1,
[0102] 使得mj+i三0(mod2),即
[0103] mj 三 1 (mod4)时,取bj = 1
[0104] mj 三 _l(mod4)是,取bj = _l
[0105] 其中0 < j<h_l,则有 h
[0106] = 2<V-…+ 她,i+2))) 糾 "
[0107] 例如:将7用标准二进制表示。
[0108] 因为:
[0109] 7 = 2X4-1
[0110] 4 = 2X2+0
[0111] 2 = 2Xl+0
[0112] 戶斤以b〇 = -l,bi = 0,b2 = 0,b3 = 1,即
[0113] 7 = (100-l)〇 [0m] 还例如:
[0115] 57 = (111001) (普通二进制)
[0116] 57 = (100-1001) (标准二进制)
[0117] 7589 = (1110110100101) (普通二进制)
[0118] 7589 = (1000-10-10100101)(标准二进制)
[0119] 标准二进制用来计算群元的整数倍,特别当群元素求逆运算的计算量很小时,用 这种标准二进制计算比通常的算法节省计算量,例如比著名的"平方-和-乘法"算法减少1/ 4的计算量。
[0120] 接下来将通过标准二进制的方式来说明如何实施本发明实施例中数字签名阶段 和验证阶段的方案。
[0121] 取圆锥曲线 Cn(a,b)的基点 G = P( 15),其阶为 Nn = 2rs = 2X 19X79 = 3002。
[0122] 选取签名私钥d = 35,签名公钥Q = dG = 35P(15)。
[0123] 用标准二进制计算圆锥曲线中元素 P(2)的整数倍如下: 3 5 尸(15) = - P (15)十 22 (P( 15)十 2 > (15)) =~P(\ 5) ? 2:(/5(15) ? 2: P(1363)) =P(-15) ? 2 ?(P(15)十 2P(3407))
[0124] =户(-15)十 2:(户(15)十 P(1007)) = /)M5)十 2_>(2169) = 15)十 2尸(2982) =尸(一15) ? 尸(4002)二尸(5013),
[0125] Q = P(5013)即为公钥。
[0126] 公开圆锥曲线C和模数n和基点G以及签名公钥Q。
[0127] 设要签名的消息m= 17,
[0128] 根据明文嵌入算法得P( 17) = (2105,931)。
[0129] 确定出m的数字签名过程:
[0130] (1)随机选取 k = 4,0<k<Nn;
[0131] (2)签名者计算 P{m) ?kG = F(17) ? 4P(15) = /)(17)十 2(2/>(15))
[0132] =/)(17) ? 2尸(1363) = /5(17)十 /)(3407) = P(911) = (3260,1461) b
[0133] 取 y 三3260(mod3002)三258(mod3002)〇
[0134] 签名者计算
[0135] yG=(x*,y*) = 258P(15)。
[0136] 258的标准二进制为:
[0137] 258 = (100000010),则 258/)( 15) = 2(尸(15)十 27 /)(15)) =2(尸(15)?24尸(6816)) =2(尸(15)?25/)(7048))
[0138] = 2(/)(15)?22P(4743)) = 2(/)(15)?/5(7(S05)) =2尸(3771) =/?>(5209)
[0139] 设(x'y,为G'如果y =0,则返回到签名过程的第1步;(3)签名者计算S = k+yd (modNn),
[0140] S 三4+258 X 35(mod3002)三28(mod3002)〇
[0141] 于是消息m=17的签名为(258,28,P(3570)),将其发送给验证者。对于签名验证的 过程:
[0142] 验证者计算 X = 5(7 ? (---.;/0 十 /)(m) = (.v,,_v,i)
[0143] =28P(15) ? (―258}尸(5013)十 /)(17),
[0144]其中根据标准二进制运算得:
[0145] 28 = (100-100),258 = (100000010), 2:8F(1'5) = 22 (-尸(1'5) ? 23P(15)) = 23(-P(15)十 2V)(i363))
[0146] =2:(-P(i5)?2P(3407)) = 22(-P(15)十尸(6816)) =2:(/5(5794)十/5(68i6))
[0147] =22/5(6〇69) -2^(8419) -/X5536)^ 258 P(5() 13) = 2(尸(5013)十 2 >(5013)) 二 2(尸(5013)十 2 V,(5810)) =2(/)(5013)十 24 P(2906)) = 2(/)(5013)?27)(3390))
[0148] = 2(P(5013)?22P(7163)) 二 2(/)(5013)十/)(3105)) = 2/)(3292) = "(3310),
[0149] 于是 A,=尸(5536)十 /)(-3310)十厂(17) =/5(5536)十尸(2499)十 /\ 17)
[0150] =尸(3407)十 P(l7) = P(911) = (3260,1461) ^
[0151] 验证者计算
[0152] x/iG = 3260G = 3260P(15)
[0153] =3260P(15)
[0154] 标准二进制
[0155] 3260 = (10-1010-1000-100) 3260^(15) =2?(/)(-15)十 2J(/)(-15)十 22(/)(15) ? 2?(/)( -15) @ 22 P(15))))) =22 (/)(--丨 5)十 2J (/)(--丨 5)十 2: (/5(丨 5)十 2:,)(5 丨 62)))) =:22 (P(-15) ? 24 (户(-15) ? 22 (P(l 5) ? 尸(2700)))) =22 (P(-15) ? 2 4(P(-丨 5)十 2:尸(2116)))
[0156] =23(P(-15)十 24(P(-15)十产(3461))) =f(P{5194) ? 24_?(7333)): = 2-(P(5794)C-D/5(8347)) =22 P(6259) = f\5209) y 氺 氺人 ,J J,.
[0157] 即签名为真。
[0158] 图3为本发明实施例提供的一种数字签名装置的装置结构图,所述装置包括:
[0159] 选定单元301,用于选定圆锥曲线Cn(a,b),其中a和b为Cn(a,b)的函数中的参数,a, b e Zn,Zn是Cn (a,b)的模n的剩余类环;
[0160] 第一确定单元302,用于从Cn(a,b)上确定一个基点G,其中G= (XG,yc),G的阶Nn为: Nn=lcm{ | Cp(a,b) |,| Cq(a,b) | } = 2rs,其中p和q为大素数,满足且p+l = 2r,q+1 = 2s,r和s为素数,lcm为计算最小公倍数函数;
[0161] 第二确定单元303,用于根据匕。,)和G确定出用于数字签名的私钥d和公钥Q,且 不公开(1和~,其中,Q = dG,Z^为不包括原点的ZiV ; 7 x v n n
[0162] 嵌入单元304,用于将消息m通过算法嵌入Cn(a,b)中,得到Cn(a,b)中的一个点P (m),其中 P(m) = (xm,ym),
[0163] 签名单元305,用于使用d对P(m)进行数字签名操作,得到m的数字签名(y,S,G〇), 其中Y为根据G和P(m)得到,Go和S为通过 Y得到。
[0164] 可选的,所述签名单元,具体包括:
[0165] 选择子单元,用
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1