常见汇总
培根密码(Bacon’s cipher)
栅栏密码(Rail-fence Cipher)(传统|变种W型)
RSA加密算法
算法:
(1)选择两个不同的大素数p和q;
(2)计算乘积n=pq和Φ(n)=(p-1)(q-1);
(3)选择大于1小于Φ(n)的随机整数e,使得gcd(e,Φ(n))=1;注:gcd即最大公约数。
(4)计算d使得de=1mod Φ(n);注:即de mod Φ(n) =1。
(5)对每一个密钥k=(n,p,q,d,e),定义加密变换为Ek(x)=xe mod n,解密变换为Dk(x)=yd mod n,这里x,y∈Zn;
(6)p,q销毁,以 {e,n}为公开密钥,{d,n}为私有密钥。
实例:
假设p = 3、q = 11(p,q都是素数即可。),则N = pq = 33;
r =Φ(n)= (p-1)(q-1) = (3-1)(11-1) = 20;
根据gcd(e,Φ(n))=1,即gcd(e,20)=1,令e=3,则,d = 7。(两个数交换一下也可以。)
到这里,公钥和密钥已经确定。公钥为(N, e) = (33, 3),密钥为(N, d) = (33, 7)。