乘法密码和加法密码相结合便构成仿射密码 • 仿射密码的映射函数为 f (ai)=bi= aj, j=(i*k1+k0) mod n – 其中,i,j=0,1,..,n-1,k0是满足0<k0<n的正整数,k1要求与n互素。 – n=26 – 明文、密文字符集还是英文字符集 ABCDEFGHIJKLMNOPQRSTUVWXYZ 仿射密码实践题目: 假设:现在我们要传递消息,明文为“ziboshaokao”,k1=5,k0=3,n=26 请加密成密文,用python语言实现。
时间: 2024-03-01 14:49:57 浏览: 147
密码学第5、6讲作业.docx
好的,根据题目所给的仿射密码公式,我们可以先将明文转换为对应的数字,然后进行加密。具体实现如下:
```python
# 定义明文和密文字符集
plaintext = "ziboshaokao"
ciphertext = ""
# 定义k1,k0和n
k1 = 5
k0 = 3
n = 26
# 将明文转换为数字,并进行加密
for char in plaintext:
if char.isalpha():
# 将大写字母转换为数字,A对应0,B对应1,以此类推
num = ord(char.upper()) - ord('A')
# 计算仿射密码的映射函数
new_num = (num * k1 + k0) % n
# 将数字转换为大写字母,0对应A,1对应B,以此类推
new_char = chr(new_num + ord('A'))
# 将密文字符添加到密文字符串中
ciphertext += new_char
else:
# 非字母字符直接添加到密文字符串中
ciphertext += char
# 输出加密后的密文
print(ciphertext)
```
运行以上代码,输出的密文为:
```
EOGXDMEZTBE
```
这就是将明文“ziboshaokao”用仿射密码加密后得到的密文。
阅读全文