置顶文章
精选分类
文章列表
流密码
# 流密码 LCG # 线性同余生成器 Xn+1=(aXn+b)mod mX_{n+1} = (aX_n + b) \mod m Xn+1=(aXn+b)modm 增量计算 b: b=(Xn+1−aXn)mod (m)b=(X_{n+1}-aX_n)\mod (m) b=(Xn+1−aXn)mod(m) # 代码块 12345678910class LCG: def __init__(self, seed, a, b, m): self.seed = seed # 初始种子 self.a = a # 乘数 self.b = b # 增量 self.m = m #...
more...RSA(1)
# RSA(1) # 生成公私钥 选取两个不同的大素数 p 和 q ,计算 N=p*q 。 求欧拉函数值 φ*(N)=φ(p)φ(q)=(p−1)(*q−1)。 选择一个小于 φ(N) 的整数 e ,并且满足 e 和 φ(N) 互质,求得 e 在模 φ(N) 意义下的乘法逆元 d,有 ed≡1 (modφ(N))。 销毁 p 和 q 。 此时(N,e)为公钥,(N,d)为私钥。 互质:两个正整数只有一个公因数 1 时,则称其为互质。 欧拉函数 φ(N):小于或等于 N 的正整数中与 N 互质的数的数目 若 p 为素数,则 φ(p)=p−1 (因为每一个小于 p 的数都与 p...
more...RSA(3)
# RSA(3) # 裴蜀定理 对于整数域中的不定方程 ax+by=m,其有解的充要条件为 gcd(a,b)∣m。 # 欧几里得算法 extgcd 原理 假设边界; 假设递归量,并不断归约。 边界假设为 gcd (a, 0) = a,当 a>b 时,gcd (b, a% b)。 当 a=g,b=0 时: x=0,y=1。 找这两个式子中的转移关系,x1 与 x2;y1 与 y2 之间的联系。 x1=y2x_1 = y_2 x1=y2 y1=x2−aby2y_1 = x_2 - \frac{a}{b} y_2 y1=x2−bay2 123456def...
more...