1883年科克霍夫第一次提出密码编码原则。科克霍夫假设:密码分析者知道双方使用的密码系统,包括明文的统计特性、加密解密体质等,唯一不知道的是密钥。
1949年香农发表The communication theory of serect systems
1971-1973年,IBM Waston实验室的Horst Feistel等人发表了几篇对称加密的技术报告
1974年,IBM提交了LUCIFER,后来成为DES
1976年diffie和hellman的文章new directions in cryptography提出了公钥密码的概念
1977年Rivest,Shmir&Adleman提出了RSA公钥算法
y = x + k (mod 26)
x = y - k (mod 26)
𝑦 = 𝛼𝑥 + 𝛽 (mod 26)
x=1/α(y?β) (mod 26)
a * x ≡ 1 (mod) b
, a, b 互质,则称 x 为 a (模b)的逆元。#令b=13
alpha = [1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25]
alpha_inverse = [1, 9, 21, 15, 3, 19, 7, 23, 11, 5, 17, 25]
3DES:由三个连续的DES加密组成,也称之为三重DES。
gcd(a,b) = gcd(b,a mod b)
ax + by = d = gcd (a, b)
。1/b= y
- 给定正整数m,所有整数按照模m是否同余分为两两不相干的集合,每一个集合称为模m的剩余类,在剩余类的所有整数中,通常用最小非负整数表示这个剩余类。
- 剩余类互素/互质定义:在模m的一个剩余类当中,如果有一个数与m互素,则该剩余类中所有的数均与m互素,这时称该剩余类与m互素。
- 欧拉函数定义:与m互素的剩余类的个数称为欧拉函数,记为φ(m)。𝜑(𝑚) 等于 Z_m当中与m互素 的数的个数。对于任意一个素数m,φ(m)=m-1。
c(x)=gcd?(a(x), b(x))
服从下列条件:多项式c(x)能同时整除a(x)和b(x),a(x)和b(x)的任何公因式都是c(x)的因式。gcd?(a(x), b(x))=gcd?(a(x) mod b(x), b(x))
G F ( P ) GF(P) GF(P) | G F ( 2 n ) GF(2^n) GF(2n) |
---|---|
系数需要mod P | 系数mod 2 ;指数上,如果乘法运算的结果是次数大于n?1的多项式,那么必须将其除以某个次数为n的既约多项式m(x)并取余 |