烤糊的饼干

🍪 烤糊的孪生饼干

1. 为什么叫“孪生饼干”?

在数论里,孪生质数指相差为 2 的质数对(如 3 和 5, 11 和 13)。

但这里的厨师更懒,他选的 p=1013 和 q=1019 相差只有 6。

在 RSA 里,如果 p 和 q 挨得特别近,n 的平方根就会刚好卡在它们俩的正中间。这就像把钥匙藏在锁旁边的地毯下——根本不用暴力拆锁,掀开地毯就行。

2. 费马分解的数学魔术(手算推导)

费马分解的核心是一个恒等式:

如果 n 能写成两个数的平方差,那这两个数就是 p 和 q!

公式:

a = (p + q) / 2 (两个质数的中点)

b = (q - p) / 2 (中点到质数的距离)

那么:

a² - b² = (a-b)(a+b) = p * q = n

所以只要找到 a 和 b,让 a² - n = b² 成立,就分解成功了。

针对这道题,我们手算一遍:

已知 n = 1032247

1. 先对 n 开平方:

√1032247 ≈ 1015.996 (因为 1016² = 1032256)

所以我们从 a = 1016 开始试。

2. 计算 a² - n:

1016² = 1032256

1032256 - 1032247 = 9

3. 检查 9 是不是完全平方数:

√9 = 3,是整数!

所以 b = 3

4. 瞬间得到:

p = a - b = 1016 - 3 = 1013

q = a + b = 1016 + 3 = 1019

连循环都没进,这就是“孪生”的威力。