这里有用仿射加密的一段诗歌密文(空格标点等没有加密),请尝试还原为明文并翻译为中文
Ptfxgj Jnno-afv wn Htzaixojv Tjtxg Af Yd Mqxzn Kvif bdxvwsf X wtlv zf svtkv Tp bdxvwsf tp X htzv qviv; Bdxvwsf X rtkv jnno-afv Wn wqv inpf hsndop xg wqv rvpwvig plf. Wqv jnsovg rxssnrp af wqv ixkvipxov Tiv fndgj aixovp xg wqv pvwwxgj pdg; Wqvxi ivcsvhwxngp ng wqv pqxzzvixgj rtkvp Tsrtfp sxgjvi xg wqv ovuwq nc zf qvtiw. Wqv csntwxgj qvtiw jinrxgj xg wqv psdojv Prtfp svxpdivsf dgovi wqv rtwvi; Xg wqv jvgwsv rtkvp nc Htzaixojv X rndso av t rtwvi ustgw! Wqtw unns dgovi wqv pqtov nc vsz wivvp Qnsop gnw rtwvi adw wqv itxganr cinz wqv plf; Pqtwwvivo wn uxvhvp tzngj wqv odhlrvvop Xp wqv pvoxzvgw nc t itxganr-sxlv oivtz. Wn pvvl t oivtz? Edpw wn unsv t antw dupwivtz Wn rqviv wqv jivvg jitpp xp zniv kviotgw; Ni wn qtkv wqv antw cdssf sntovo rxwq pwtisxjqw Tgo pxgj tsndo xg wqv pusvgoni nc pwtisxjqw. Adw X htggnw pxgj tsndo Bdxvwgvpp xp zf ctivrvss zdpxh; Vkvg pdzzvi xgpvhwp qvtu pxsvghv cni zv Pxsvgw xp Htzaixojv wngxjqw! Kvif bdxvwsf X wtlv zf svtkv Tp bdxvwsf tp X htzv qviv; Jvgwsf X csxhl zf psvvkvp Gnw vkvg t rxpu nc hsndo rxss X aixgj trtf
仿射密码的定义:
将加法密码和乘法密码结合就构成了仿射密码,仿射密码的加密和解密算法是:
加密算法:C=Ek(m)=(k1m+k2)modn
解密算法:M=Dk(c)=k1-1(c-k2)modn
仿射密码具有可逆性的条件是gcd(k,n)=1。当k1=0时,仿射密码变成加法密码,当k2=0时,仿射密码变成乘法密码。
解密过程:
统计密文中各字母出现的频率,然后与英文字母出现频率比较,在尝试过程中同时考虑仿射密码的条件。
各个字母出现的频率统计如下:
最大频率的密文字母是小写英文字母v(119次)、小写字母w(67次)、小写字母t(54次)、小写字母p和小写字母x(各52次)……
首先,我们可以猜想v是e的加密,而w是t的加密,因为e和t是两个出现频率最好的字母。e和t对应的数值是4,19,v和w对象的数值是21,22.对于仿射密码有c=(k1m+k2)mod n
所以我们有两个关于未知数的线性方程组:
21=(4k1+k2)mod 26 即 4k1+k2=26m+21
22=(19k1+k2)mod 26 即 19k1+k2=26m+22
K是满足0<k<n的正整数。并且k1,k2要和n(26)互素,否则不存在模逆元,不能正确解密。当n为26字母,其中k1,k2的取值可能为1,3,5,7,9,11,15,17,19,21,23,25。
当m=1时,4k1+k2=47,19k1+k2=48,这个方程组有唯一解:k1=7,k2=19
其中gcd(7,26)=1,gcd(19,26)=1,即k-1=15
将明文利用翻译软件进行翻译,得到下列结果:
所以,这一段密文解密出来,是徐志摩的再别康桥这一首诗!