@@ -144,7 +144,7 @@ long_to_bytes(deblockize(decrypt_block_cbc(blocks, iv, key)))
144
144
145
145
## bad_e
146
146
147
- 经过计算很容易发现 $e$ 与 $\phi(p* q)$ 不互素,更进一步地 $gcd(q-1, e) = 1$ ,我们可以尝试先计算 $m\bmod q$ 的结果,计算 $e* d = 1 (mod \phi(q))$ 。由于此处 $m < q$ ,我们将模换成 $q$ 后解密便得到了明文
147
+ 经过计算很容易发现 $e$ 与 $\phi(p * q)$ 不互素,更进一步地 $gcd(q-1, e) = 1$ ,我们可以尝试先计算 $m\bmod q$ 的结果,计算 $e * d = 1 (mod \phi(q))$ 。由于此处 $m < q$ ,我们将模换成 $q$ 后解密便得到了明文
148
148
149
149
``` python
150
150
from Crypto.Util.number import *
@@ -398,20 +398,20 @@ b64encode(payload)
398
398
399
399
~~ 偷一部分校内选手Orac1e的分析(这水平直接薄纱我了qwq)~~
400
400
401
- 考察$RSA$中的解密指数$d$泄露问题。
401
+ 考察 $RSA$ 中的解密指数 $d$ 泄露问题。
402
402
403
- 这种问题非常严重,因为我们不仅可以直接解密密文,甚至可以根据$d,e,N$的值来做到有效分解$N$。
403
+ 这种问题非常严重,因为我们不仅可以直接解密密文,甚至可以根据 $d,e,N$ 的值来做到有效分解$N$。
404
404
405
- 在本题中我们知道$\phi(N)$的值,与之等效。
405
+ 在本题中我们知道 $\phi(N)$ 的值,与之等效。
406
406
407
- 当$N = pq$时,已知$d * e = 1 + k* \phi(N)$,而由欧拉定理知
408
- $$ a^{d* e - 1} = 1 \bmod N \quad gcd(a, p* q) = 1 $$
409
- 注意到$d * e-1$为偶数,则我们可以将其表示为$2^{t}* g$ 的形式,其中$g$为奇数。
410
- 我们计算一下$a^{d* e-1}-1$,得到如下分解:
411
- $$ a^{d* e-1} - 1 = a^{2^{t}* g} - 1 = (a^{g} - 1)(a^{g} + 1)(a^{2* g}+1)\cdots (a^{2^{t-1}* g}+1)=0 \bmod N $$
412
- 因为$N=P* Q$, $P,Q$均为素数。故我们可以计算上述分解式中各项与$N$的最大公约数,如果发现$GCD(a^{2^{i}* g} - 1, N) \neq 1,N$,我们便有效分解掉了$N$。
407
+ 当 $N = pq$ 时,已知 $d * e = 1 + k * \phi(N)$ ,而由欧拉定理知
408
+ $$ a^{d * e - 1} = 1 \bmod N \quad gcd(a, p * q) = 1 $$
409
+ 注意到 $d * e-1$ 为偶数,则我们可以将其表示为 $2^{t} * g$ 的形式,其中 $g$ 为奇数。
410
+ 我们计算一下 $a^{d * e-1}-1$ ,得到如下分解:
411
+ $$ a^{d * e-1} - 1 = a^{2^{t} * g} - 1 = (a^{g} - 1)(a^{g} + 1)(a^{2 * g}+1)\cdots (a^{2^{t-1} * g}+1)=0 \bmod N $$
412
+ 因为 $N=P * Q$ , $P,Q$ 均为素数。故我们可以计算上述分解式中各项与 $N$ 的最大公约数,如果发现 $GCD(a^{2^{i} * g} - 1, N) \neq 1,N$ ,我们便有效分解掉了 $N$ 。
413
413
414
- 但是需要注意的是这是一个概率算法,分解的成功与否取决于$a$的选取,根据实际求解的经验,笔者一般是选择用分解出来的因子逐个作为$a$,依次分解,这样的成功率比较高。
414
+ 但是需要注意的是这是一个概率算法,分解的成功与否取决于 $a$ 的选取,根据实际求解的经验,笔者一般是选择用分解出来的因子逐个作为 $a$ ,依次分解,这样的成功率比较高。
415
415
416
416
``` python
417
417
n_ = 363364907814244019888662301376841344262476227242899756862391470731421569394957444030214887114615748277199649349781524749919652160244484352285668794188836866602305788131186220057989320357344904731322223310531945208433910803617954798258382169132907508787682006064930747033681966462568715421005454243255297306718356766130469885581576362173340673516476386201173298433892314145854649884922769732583885904512624543994675379894718657682146178638074984373206937523380103438050549181568015985546172618830480078894445808092527561363650503540062128543705172678754195578429520889784813733491180748361345720247750720179608752244490362713103319685024237941527268458213442611663415417005556439749055222361212059968254748751273361732365487788593341859760309778894350385339764442343374673786357175846291309425081492959910254127778240522152676060766139057453197528944251599979227271074508795482632471242983094008619339488744362509349734218480932255216087706001484182136783834973304870508270118505737767002256270427907341952256516206663258530300791364944105025764611810001781971638030661367630116818647252727909489405550104641122269772492252464714694507693447974171377200402508765841829763548525530878309985480248379655169722567051495205792089930014228403456098065971372039443284193603395249634283366194562380309469628114581468645669390610963076340643757972439104287127375438663839421605531570285615180251
@@ -485,10 +485,10 @@ $$t_{i+1} = x_{i+2} - x_{i+1} = a * (x_{i+1} - x_{i}) \bmod m$$
485
485
$$ t_{i+2} * t_{i} - t_{i+1} ^ 2 = (a^2 * t_{i}) * t_{i} - (a * t_{i}) ^ 2 = 0 \bmod m $$
486
486
487
487
即
488
- $$ t_{i+2} * t_{i} - t_{i+1} ^ 2 = k * m ,\quad k \in \mathbb{Z} $$
488
+ $$ t_{i+2} * t_{i} - t_{i+1} ^ 2 = k * m ,\quad k \in \mathbb{Z} $$
489
489
490
490
令
491
- $$ m_{i} = t_{i+2} * t_{i} - t_{i+1} ^ 2 $$
491
+ $$ m_{i} = t_{i+2} * t_{i} - t_{i+1} ^ 2 $$
492
492
493
493
则对 $m_ {i}$ 序列求gcd,大概率为m
494
494
0 commit comments