Franklin-Reiter_相关信息攻击

runwu2204 Lv6

Franklin-Reiter相关消息攻击

已知pow(x,e,n)pow(ax+b,e,n)

可以通过形如下列式子求解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from sage.all import *

def franklinReiter(n,e,c1,c2,a,b):
PR=PolynomialRing(Zmod(n),'X')
X=PR.gen()
f1 = X**e - c1 #
f2 = (X*a+ b)**e - c2 #
# coefficient 0 = -m, which is what we wanted!
return Integer(n-(compositeModulusGCD(f1,f2)).coefficients()[0]) # 系数
def compositeModulusGCD(a, b):
if(b == 0):
return a.monic()
else:
return compositeModulusGCD(b, a % b)

最好将x的已知位给到最大,比如pow(x<<30,e,n)pow(a*(x<<30),e,n)这里会有三十的已知位

如果直接把x<<30求解,可能会有较大误差可以试着更改

f1 = (X*2**30)**e - c1 f2 = ((X*2**30)*a)**e - c2

注意sage中<<并不是左移而是增大多少次方

  • 标题: Franklin-Reiter_相关信息攻击
  • 作者: runwu2204
  • 创建于 : 2024-02-24 18:48:42
  • 更新于 : 2024-03-19 01:49:20
  • 链接: https://runwu2204.github.io/2024/02/24/Crypto/RSA/Franklin-Reiter_相关信息攻击/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
Franklin-Reiter_相关信息攻击