
轉置密碼
轉置密碼是一種密碼演算法,它透過重新排列明文中字母的順序來形成密文。在這個過程中,實際的明文字母不會被更改。
示例
轉置密碼的一個簡單示例是列置換密碼,其中明文中的每個字元都以指定的字母寬度水平寫入。密文則垂直寫入,從而建立一個完全不同的密文。
考慮明文hello world,讓我們應用如下所示的簡單列置換技術

明文字元水平放置,密文以垂直格式建立為: holewdlo lr. 現在,接收者必須使用相同的表格來解密密文以獲得明文。
程式碼
以下程式程式碼演示了列置換技術的實現:
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'))
說明
使用函式split_len(),我們可以分割明文字元,並將它們以列或行格式排列。
encode 方法幫助建立密文,金鑰指定列數,並透過讀取每一列的字元來列印密文。
輸出
列置換技術的程式碼實現將給出以下輸出:

注意 - 密碼分析員觀察到,當執行轉置技術時,密碼安全性得到了顯著提高。他們還注意到,使用相同的轉置密碼對密文進行重新加密可以獲得更好的安全性。
廣告