BackdoorCTF 2018 BIT_LEAKER

该博客介绍了Least Significant Bit Oracle Attack(LSB Oracle Attack / Parity Oracle)的原理和应用,特别是在BackdoorCTF 2018 BIT_LEAKER挑战中的实例。通过解释如何利用oracle获取明文最低位的奇偶信息,展示了一个使用二分查找算法在对数时间内解密RSA密文的方法。文章还讨论了解题过程中处理随机数影响和修正误差的策略。
摘要由CSDN通过智能技术生成

Least Significant Bit Oracle Attack (LSB Oracle Attack / Parity Oracle)

适用情况:可以选择密文并泄露明文的最低位(奇偶性)。

原理介绍

在这里插入图片描述

假设存在一个oracle(可以理解为一个方法),它能对给定密文进行解密并给出对应明文的奇偶信息。利用这个oracle,进行二分查找,则只需要 log(N)次就能解密任意密文。

在一次RSA加密中,明文为 m 模数为 n,加密指数为 e,密文为 c我们可以构造出

c ′ = ( ( 2 e ) ∗ c ) % n = ( ( 2 e ) ∗ ( m e ) ) % n = ( ( 2 ∗ m ) e ) % n c′=((2^e)*c)\% n=((2^e)*(m^e))\% n=((2*m)^e)\% n c=((2e)c)%n=((2e)(me))%n=((2m)e)%n

因为 m的两倍可能大于 n,所以经过解密得到的明文是 m ′ = ( 2 ∗ m ) % n m′=(2*m)\%n m=(2m)%n

我们还能够知道 m′的最低位lsb是1还是0:因为 n 是奇数,而 2*m 是偶数,那么如果lsb是0,可以说明(2*m)%n 是偶数,没有超过 n(超过n的话,取余后就会变为奇数),即 m < n 2 m<\frac{n}{2} m<2n;反之则 m > n 2 m>\frac{n}{2} m

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值