在名为“ SM2数字签名算法”的IETF RFC草案中,指定了签名算法。但是,RFC没有提及为什么定义了此签名算法。它也没有指定该方案相对于ECDSA的优势。看来SM2是中国首选的EC签名格式。

那么两个相关的问题是:


为什么要定义SM2?
是什么?与ECDSA相比,(操作)差异是什么?

请注意,似乎还定义了一组SM2椭圆曲线域参数。


草稿中链接的[SM2 Algorithms Parameters](在Wayback机器上找到)是域参数:

y^2 = x^3 + ax + b

p =FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF
a =FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC
b = 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93
n = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123
Gx = 32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7
Gy = BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0


评论

看来,IETF草案是中文标准文件的译文。它还定义了密钥交换协议和加密算法。 (不过,我不知道为什么要定义它。)

为什么?我猜是因为中国人只是想拥有自己的标准(而且我认为优于现有计划不是问题;)

此处定义了SM2算法的2010年中国标准第1部分(共4部分)在此处发布,其中一些可以自动翻译理解。 $ \; $在SM2签名上找不到第2部分。 $ \; $ Jing Xu和Dengguo Feng对SM2密钥交换协议的评论是对第3部分的声称攻击。

在IETF中发布了2010年定义SM2算法的中国标准的第2部分(共4部分)

#1 楼

SM2数字签名算法。在字段$ \ mathbb F_p $上固定曲线$ E / k $。将原始订单$ n $的标准基点$ G $固定在$ E / \ mathbb F_p $上。将哈希函数$ H \ colon \ {0,1 \} ^ * \修复为\ mathbb Z / n \ mathbb Z $。


公钥是点的编码$ P \ in E / \ mathbb F_p $和一个标识主体的字符串$ Z $在一起。
消息$ m $的公钥$ P $下的标识符为$ Z $的签名是一对$ [1,n-1] $中的整数$(r,s)$,使得$ r + s \ ne 0 $和$$ r \ equiv(H(Z \ mathbin \ | m)+ x([s] G + [r + s] P))\ pmod n。$$

签名者知道秘密标量$ d $,即私钥,因此$ P = [d] G $。要进行签名,签名者会随机地均匀地选择一个标量$ k $,然后计算

\ begin {align}
r&\ equiv(H(Z \ mathbin \ | m) + x([k] G))\ pmod n,\\
s&\ equiv(k-rd)/(1 + d)\ pmod n,
\ end {align}

如果$ r \ equiv 0 $,$ r + k \ equiv 0 $或$ s \ equiv 0 \ pmod n $,则拒绝并重新开始。

这是有效的签名因为

\开始{align}
[s] G + [r + s] P
&= [s] G + [(r + s)d] G \ \
&= [s + sd + rd] G \\
&= [(1 + d)s + rd] G \\
&= [(1 + d)(k -rd)/(1 + d)+ rd] G \\
&= [k-rd + rd] G \\
&= [k] G。
\ end {align }


为什么?除了一些旁道攻击之外,在英语密码学文献中我对SM2签名方案的分析还很少。在我看来,它最显着的方面是,它与其他各种民族自豪的数字签名方案不同。

对于验证者而言,SM2签名方案相对于ECDSA(美国)和ECGDSA(德国)具有较小的优势:验证者无需计算任何取反的模$ n $。否则,签名人的费用与其他费用相似。与Schnorr相比,ECDSA的安全性分析极其复杂且不令人满意。我希望其他人也是如此。

出于民族主义的原因,我对为什么选择SM2的猜测恰恰与所有其他人都不一样-他们的表现和信心都比更简单的无反向基于Schnorr的EdDSA。

评论


$ \ begingroup $
在第23届年会的议事录中,在Manuel Fersch,Eike Kiltz和Bertram Poettering的随机预言模型中分析了类似SM2方案的安全性,“论(EC)DSA签名的可证明安全性”。 《计算机和通信安全性》,CCS 2016,ACM,维也纳,第1651–1662页(无付费墙)。它提到了一份完整的论文,其中包含有关SM2的详细信息,但是我找不到完整的论文。
$ \ endgroup $
–吱吱作响的s骨
19年3月29日在3:41