流密码LCG【学习笔记】

流密码 是一种基于流加密算法的密码系统 

流密码基本原理

Xn+1 = (aXn+b) mod  m

Xn为随机数

X0为种子值

 a、b、m为选定的常数

{

      m是生成序列的模数,必须是一个大于0的正整数

      a是乘法因子,必须是一个与m互素的正整数

      b是增加常数,也必须是一个与m互素的正整数

}

基本计算代码:

from Crypto.Util.number import *

inva = inverse(a, m)

for i in range(2**16):

    x = (x-b)*inva % m

    flag = long_to_bytes(x)
    if b'NSSCTF' in flag:
        print(flag)

你可能感兴趣的:(学习,笔记)