SM2签名方案的安全性


前言

论文学习记录:Security of the SM2 Signature Scheme Against Generalized Key Substitution Attacks(张振峰 SSR 2015)1


一、Contribution

  1. 证明了ISO /IEC 14888-3中定义的基于证书的签名方易受到广义密钥替换攻击 (generalized key substitution attacks).(省略)
  2. 证明了SM2签名方案在底层哈希函数 h h h 是一致的(uniform)、抗冲突的 (collision-resistant),并且底层转换函数 f f f 几乎是可逆的(almost-invertible)的情况下,满足自适应选择消息攻击下存在性不可伪造(existential unforgeability under adaptively chosen-message attacks (EUF-CMA)).
  3. 证明了SM2签名方案在底层哈希函数 H H H h h h 被建模为非可编程随机预言器(non-programmable ranom oracles (NPROs))的情况下,可以抵抗广义密钥替换攻击.

二、Preliminaries

1. Uniform (Smooth) Hash Functions2

在这里插入图片描述
字面意思是没办法区分 e e e 是从哈希函数 h h h 值域 H \mathscr{H} H 里随机选取的,还是某个 M M M 的哈希值 h ( M ) h(M) h(M) ,其中 M M M D \mathscr{D} D 中随机选取。
我的理解就是哈希函数 h h h 值域均匀分布。

2. Almost-Invertibility of Conversion Functions

SM2 uses a conversion function f : A n → F n f : \mathbb{A}_{n} → \mathbb{F}_{n} f:AnFn F n \mathbb{F}_{n} Fn是集合 { 0 , 1 , . . . , n − 1 } \{0, 1, ...,n-1\} {0,1,...,n1} A n \mathbb{A}_{n} An 是一个 n n n 阶群. An almost-inverse of f f f is a probabilistic polynomial time (PPT) algorithm f − 1 : F n → A n f ^{−1} : \mathbb{F}_{n} → \mathbb{A}_{n} f1:FnAn which on input x ∈ F n x ∈\mathbb{F}_{n} xFn produces a Q ∈ A n ∪ { I n v a l i d } Q ∈ \mathbb{A}_{n} ∪ \{Invalid\} QAn{Invalid} such that:
在这里插入图片描述
就是通常的函数求逆,只不过注意第三点,求逆之后的值和原来定义域里的元素计算上不可区分。

3. Non-programmable ranom oracles

可编程随机谕言机和不可编程随机谕言机主要区别(从加密的角度来看)是模拟器是否能够选择谕言机查询的答案。
可编程随机谕言机是指:模拟器能够为敌手对随机谕言机进行的查询选择答案。谕言机的响应不是事先固定的,可以在证明中自适应地选择它们。例如可以分配特定值作为对特定请求的随机预言机响应,但是无法将该值与随机值区分开来。
不可编程随机预言机模型限制了模拟器,使其无法再为敌手的查询选择答案。对模拟器的这种限制(或者更一般地说,安全降低)使基础证明更可取,因为更少依赖于随机预言机的属性。

4. EUF-CMA

在这里插入图片描述

5. (generalized) key substitution attacks

给定 KS 敌手一个公钥 p k pk pk 和在 p k pk pk下有效的消息签名对 ( m , σ ) (m, σ) (m,σ) ,敌手试图生成另一个公钥 p k ′ ( ≠ p k ) pk^{'}( \ne pk) pk(=pk) ,使 ( m , σ ) (m, σ) (m,σ) p k ′ pk^{'} pk 下仍然有效。
强密钥替换(SKS)攻击:只输出公钥 p k ′ pk^{'} pk
弱密钥替换(WKS)攻击:进一步要求 KS 敌手输出公钥 p k ′ pk^{'} pk 对应的私钥 p k ′ pk^{'} pk
显然,一个能抵抗SKS攻击的签名方案也能抵抗WKS攻击。
在这里插入图片描述

三、EUF-CMA Security of SM2

  1. SM2签名方案
    在这里插入图片描述
    在这里插入图片描述
  2. SM2的EFU-CMA安全性
    在这里插入图片描述
    证明:
    假设敌手 A A A 不能直接访问群,而只能通过与oracle交互获得表示群元素的“句柄”( h a n d l e handle handle ),从而获取群内新元素。
    敌手可以从群操作谕言机查询公钥或者签名谕言机查询中获取群元素句柄。实际上,敌手可以使用公钥或签名中的句柄作为“基础”,来执行进一步的群操作。
    ( G , Y ) (G,Y) (GY) 为公钥中的群元素句柄,设 ( V 1 , … , V q s ) (V_{1},…,V_{qs}) (V1Vqs) 为签名查询中创建的群元素句柄,其中 q s qs qs 是对手进行签名查询的次数。然后,假设敌手想要计算的所有群元素的形式为 z 1 G + z 2 Y + z 3 V 1 + … + z q s + 2 V q s z_{1}G+z_{2}Y+z_{3}V_{1}+…+z_{q_{s}+2}V_{qs} z1G+z2Y+z3V1++zqs+2Vqs其中 z 1 , . . . , z q s + 2 z_{1} ,..., z_{q_{s}+2} z1,...,zqs+2 是对手选择的已知整数。因此,可以通过系数向量 ( z 1 , . . . , z q s + 2 ) (z_{1} ,..., z_{q_{s}+2}) (z1,...,zqs+2) 统一所有群操作查询。例如, z G zG zG 可以表示为群操作查询 ( z , 0 , . . . , 0 ) (z, 0,..., 0) (z,0,...,0)
    用表 L L L 来回答敌手对群操作的查询。
    模拟器 C C C 首先从群 A n \mathbb{A}_{n} An 中随机选择 G G G 生成基元素的句柄,并添加 ( 1 , G , − , − ) (1, G, −, −) (1,G,,) 到表 L L L 中,然后从群 F n \ { 0 , n − 1 } \mathbb{F}_{n} \backslash\{0, n-1\} Fn\{0,n1} 中随机选择 d d d ,从群 A n \mathbb{A}_{n} An 中随机选择 Y Y Y ,表示 d G dG dG ,并添加 ( d , Y , − , − ) (d, Y, −, −) (d,Y,,) 到表 L L L 中。

在这里插入图片描述
在这里插入图片描述

-case2解释:

SM2签名中 s = k − r d 1 + d s=\frac{k-rd}{1+d} s=1+dkrd ,从而 k = s + ( s + r ) d k= s+(s+r)d k=s+(s+r)d V V V ( z 1 , . . . , z q s + 2 ) (z_{1} ,..., z_{q_{s}+2}) (z1,...,zqs+2) 作为输入的群操作查询产生。所以:
k = s + ( s + r ) d = z 1 + z 2 d + z 3 k 1 + … + z q s + 2 k q s k= s+(s+r)d=z_{1}+z_{2}d+z_{3}k_{1}+…+z_{q_{s}+2}k_{qs} k=s+(s+r)d=z1+z2d+z3k1++zqs+2kqs
因为私钥 d d d 对于敌手完全被隐藏,所以要想上面等式相等,那么 s = z 1 + z 3 k 1 + … + z q s + 2 k q s , 且 s + r = z 2 s= z_{1}+z_{3}k_{1}+…+z_{q_{s}+2}k_{qs}, 且s+r=z_{2} s=z1+z3k1++zqs+2kqs,s+r=z2
从而 r = z 2 − z 1 − z 3 k 1 − … − z q s + 2 k q s r=z_{2}-z_{1}-z_{3}k_{1}-…-z_{q_{s}+2}k_{qs} r=z2z1z3k1zqs+2kqs
V = f − 1 ( r − e ) = f − 1 ( z 2 − z 1 − z 3 k 1 − … − z q s + 2 k q s − h ( Z ′ ∣ ∣ m ′ ) ) V=f^{-1}(r-e)=f^{-1}(z_{2}-z_{1}-z_{3}k_{1}-…-z_{q_{s}+2}k_{qs}-h(Z^{'}||m^{'})) V=f1(re)=f1(z2z1z3k1zqs+2kqsh(Zm))
在这里插入图片描述
在这里插入图片描述

分析:
C C C 诚实地生成公钥和签名,如果 C C C 也完美地回答了群操作查询,那么我们知道 C C C 几乎模拟了 F F F 的完美攻击环境。实际上,很容易检查所有群元素句柄是否都是随机选择的,除了群操作查询的case 2。

现在分析case 2中生成的句柄 V ′ V^{'} V也是均匀分布的
已知 V = f − 1 ( r − e ) = z 2 − z 1 − z 3 k 1 − … − z q s + 2 k q s − h ( Z ′ ∣ ∣ m ′ ) V=f^{-1}(r-e)=z_{2}-z_{1}-z_{3}k_{1}-…-z_{q_{s}+2}k_{qs}-h(Z^{'}||m^{'}) V=f1(re)=z2z1z3k1zqs+2kqsh(Zm) ,其中 Z ′ , m ′ Z^{'}, m^{'} Z,m 是随机选择的, h h h 是 uniform 哈希函数,所以 f − 1 f^{-1} f1 的输入也是随机的,同时因为 f − 1 f^{-1} f1 是 almost-invertible的,所以 V ′ V^{'} V是均匀分布的。
表明 C C C 几乎完美地模拟了 F F F 的攻击环境。

现在只需证明 ( r ∗ , s ∗ ) (r^{∗}, s^{∗}) (r,s) m ∗ m^{*} m 上的有效签名概率可以忽略不计。

k ∗ = s ∗ + ( s ∗ + r ∗ ) d k^{*}= s^{*}+(s^{*}+r^{*})d k=s+(s+r)d ( r ∗ , s ∗ ) (r^{∗}, s^{∗}) (r,s) m ∗ m^{*} m 上的有效签名当且仅当 ( k ∗ , V ∗ , − , − ) (k^{*}, V^{*}, -, -) (k,V,,) 出现在表 L L L,其中 V ∗ = f − 1 ( r ∗ − h ( Z ∣ ∣ m ∗ ) ) V^{*}=f^{-1}(r^{*}-h(Z||m^{*})) V=f1(rh(Zm))因此想要证明 ( r ∗ , s ∗ ) (r^{∗}, s^{∗}) (r,s) m ∗ m^{*} m 上的有效签名概率可以忽略不计,就要证明 ( k ∗ , V ∗ , − , − ) (k^{*}, V^{*}, -, -) (k,V,,) 出现在表 L L L 中的概率可以忽略不计。

首先 V ∗ V^{*} V 不能等于 G G G Y Y Y ,不然 F F F 可以通过 k ∗ = s ∗ + ( s ∗ + r ∗ ) d k^{*}= s^{*}+(s^{*}+r^{*})d k=s+(s+r)d 确定性的计算 d d d ,这与 d d d 从敌手的角度被完全隐藏相矛盾。
那么 V ∗ V^{*} V 只能在群操作查询和签名查询中被创造。

  • V ∗ V^{*} V 在签名查询中被创造:
    在这里插入图片描述
    在这里插入图片描述
    因此, V ∗ V^{*} V 在签名查询中被创造的概率可以忽略不计。

  • V ∗ V^{*} V 在群操作查询中被创造:
    根据上面提到的case 2, r ∗ = z 2 ∗ − z 1 ∗ − z 3 ∗ k 1 − … − z q s + 2 ∗ k q s r^{*}=z_{2}^{*}-z_{1}^{*}-z_{3}^{*}k_{1}-…-z_{q_{s}+2}^{*}k_{qs} r=z2z1z3k1zqs+2kqs
    且存在 ( Z ′ ∣ ∣ m ′ ) (Z^{'}||m^{'}) (Zm) ,使得 f ( V ∗ ) = z 2 ∗ − z 1 ∗ − z 3 ∗ k 1 − … − z q s + 2 ∗ k q s − h ( Z ′ ∣ ∣ m ′ ) f(V^{*})=z_{2}^{∗}-z_{1}^{∗}-z_{3}^{∗}k_{1}-…-z_{q_{s}+2}^{∗}k_{qs}-h(Z^{'}||m^{'}) f(V)=z2z1z3k1zqs+2kqsh(Zm)
    ( r ∗ , s ∗ ) (r^{∗}, s^{∗}) (r,s) m ∗ m^{*} m 上的有效签名当且仅当 h ( Z ∣ ∣ m ∗ ) = r ∗ − f ( V ∗ ) = h ( Z ′ ∣ ∣ m ′ ) h(Z||m^{∗}) = r^{∗} − f(V^{∗}) = h(Z^{'}||m^{'}) h(Zm)=rf(V)=h(Zm)
    由于 h h h 是抗冲突的,所以 V ∗ V^{*} V 在群操作查询中被创造的概率可以忽略不计。

综上, ( k ∗ , V ∗ , − , − ) (k^{*}, V^{*}, -, -) (k,V,,) 出现在表 L L L 中的概率可以忽略不计,所以 ( r ∗ , s ∗ ) (r^{∗}, s^{∗}) (r,s) m ∗ m^{*} m 上的有效签名概率可以忽略不计,也就是说 SM2 签名算法是 EFU-CMA 安全的。 定理1得证!

四、Security of SM2 Against Generalized SKS Attacks

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
易知 e ∗ ≠ e j e^{*} \ne e_{j} e=ej ,两个 f f f 也不相等,所以 ( 1 ) (1) (1) 成立的概率可忽略不计,所以 SM2 可以抵抗强密钥替换攻击 。定理 2 得证!

参考文献


  1. https://link.springer.com/chapter/10.1007/978-3-319-27152-1_7 ↩︎

  2. https://link.springer.com/article/10.1007/s10623-003-6154-z ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值