轉置密碼



轉置密碼是一種密碼演算法,它透過重新排列明文中字母的順序來形成密文。在這個過程中,實際的明文字母不會被更改。

示例

轉置密碼的一個簡單示例是列置換密碼,其中明文中的每個字元都以指定的字母寬度水平寫入。密文則垂直寫入,從而建立一個完全不同的密文。

考慮明文hello world,讓我們應用如下所示的簡單列置換技術

Columnar Transposition

明文字元水平放置,密文以垂直格式建立為: 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 方法幫助建立密文,金鑰指定列數,並透過讀取每一列的字元來列印密文。

輸出

列置換技術的程式碼實現將給出以下輸出:

Columnar Transposition Technique

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

廣告