SM4加密算法的侧信道攻击实现

SM4 算法有多个位置存在泄漏点,如下图所示:
SM4的潜在攻击点
在位置1和2,可以逐个字节攻击密钥,因为密钥和中间结果之间没有扩散,这时通常取Sbox的输出作为攻击点,因为在位置2处的功耗是大于位置1的,但是在FPGA硬件电路中,Sbox产生的功耗相对于状态寄存器来说小得多,有文章中的数据显示,如果攻击点在Sbox处,至少需要采集270000条功率曲线才可以破解出密钥。在实际密码电路中,产生功耗的寄存器出现在位置3,因为SM4算法的移位操作,密钥和明文高度混淆,直接攻击需要 2 32 2^{32} 232次穷举尝试,如果选择随机明文,则在位置3中不可能进行攻击。因为选择位置3作为攻击点时,应该使用选择特定的明文方法来获得密钥。这与破解AES密钥是不同的,因为在AES的每轮的状态寄存器中,最后一步是轮密钥加操作,状态寄存器的每个字节的数据只与其对应的密钥字节有相关性,可以使用正常的随机明文作为输入来攻击。
对于SM4算法而言,使用选择特定的明文方法如下:
(1)以第一轮攻击为例,第一轮密钥为 r k 0 rk_0 rk0,记 r k 0 = ( r k 0 , 0 , r k 0 , 1 , r k 0 , 2 , r k 0 , 3 ) rk_0 = (rk_{0,0}, rk_{0,1},rk_{0,2},rk_{0,3}) rk0=(rk0,0,rk0,1,rk0,2,rk0,3)
(2)选择明文 ( X 0 , X 1 , X 2 , X 3 ) = ( 00000000 h , 00000000 h , 00000000 h , X X 000000 h ) (X_0,X_1,X_2,X_3)=(00000000h, 00000000h, 00000000h,XX000000h) (X

  • 14
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_74043383

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值