affine仿射加密

仿射加密法

单码加密法的另一种形式称为仿射加密法(affine cipher)。在仿射加密法中,字母表的字母被赋予一个数字,例如a=0,b=1,c=2…z=25。仿射加密法的密钥为0-25直接的数字对。

含义

仿射加密法与单码加密法没什么不同,因为明文的每个字母分别只映射到一个密文字母。仿射密码的加密算法就是一个线性变换,即对任意的明文字符x,对应的密文字符为,其中,a,b∈Z26,且要求gcd(a,26)=1,函数e(x)称为仿射加密函数。

乘法逆元

举例

设仿射加密函数是 ,由上表知:11-1mod(26)=19,所以相应的仿射解密函数是

若加密明文是"sorcery",首先把明文每个字母转换为数字18,14,17,2,4,17,24。然后对明文进行加密,得密文为"welcylk"。

例题

y = 17*x-8 flag{szzyfimhyzd}

答案格式:flag{********}

脚本

import string  #affine

s = 'szzyfimhyzd'
s1 = ''
len =len(s)
for i in range(0,len):
    a=(23*(ord(s[i])-97+8))%26
    s1+=chr(a+97)
print s1

猜你喜欢

转载自blog.csdn.net/qq_40657585/article/details/83858373