换位密码(Transposition Cipher)
优质
小牛编辑
141浏览
2023-12-01
Transposition Cipher是一种加密算法,其中明文中的字母顺序被重新排列以形成密文。 在此过程中,不包括实际的纯文本字母表。
例子 (Example)
转置密码的一个简单示例是columnar transposition cipher ,其中纯文本中的每个字符都是水平写入的,具有指定的字母宽度。 密码垂直写入,创建完全不同的密文。
考虑纯文本hello world ,让我们应用简单的柱状转置技术,如下所示

纯文本字符水平放置,密文以垂直格式创建: holewdlo lr. 现在,接收方必须使用相同的表将密文解密为纯文本。
Code
以下程序代码演示了柱状转置技术的基本实现 -
def split_len(seq, length):
return [seq[i:i + length] for i in range(0, len(seq), length)]
def encode(key, plaintext):
order = {
int(val): num for num, val in enumerate(key)
}
ciphertext = ''
for index in sorted(order.keys()):
for part in split_len(plaintext, len(key)):
try:ciphertext += part[order[index]]
except IndexError:
continue
return ciphertext
print(encode('3214', 'HELLO'))
说明 (Explanation)
使用split_len(),函数split_len(),我们可以拆分纯文本字符,这些字符可以以列式或行格式放置。
encode方法有助于使用指定列数的键创建密文,并通过读取每列中的字符来打印密文。
输出 (Output)
用于柱状换位技术基本实现的程序代码给出以下输出 -

Note - Cryptanalysts观察到转换技术执行时加密安全性的显着改善。 他们还指出,使用相同的转置密码重新加密密文可以提高安全性。