転置式暗号

転置式暗号は、平文のアルファベットの順序を並べ替えて暗号文を形成する暗号化アルゴリズムです。このプロセスでは、実際のプレーンテキストのアルファベットは含まれていません。

転置式暗号の簡単な例は次のとおりです。 columnar transposition cipherプレーンテキストの各文字は、指定されたアルファベット幅で水平方向に書き込まれます。暗号は垂直方向に書き込まれるため、まったく異なる暗号文が作成されます。

プレーンテキストを検討する 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 メソッドは、列数を指定するキーを使用して暗号文を作成するのに役立ち、各列から文字を読み取ることによって暗号文を印刷します。

出力

柱状転置技術の基本的な実装のためのプログラムコードは、次の出力を提供します-

Note−暗号解読者は、転置技術を実行すると、暗号セキュリティが大幅に向上することを確認しました。また、同じ転置暗号を使用して暗号文を再暗号化すると、セキュリティが向上することにも言及しました。