Cryptography-with-python-transposition-cipher

提供:Dev Guides
移動先:案内検索

転置暗号

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

転置暗号の簡単な例は、 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'))

説明

  • 関数* split_len()、*を使用して、列形式または行形式で配置できるプレーンテキスト文字を分割できます。
  • encode メソッドは、列数を指定するキーを使用して暗号化テキストを作成し、各列から文字を読み取って暗号化テキストを印刷するのに役立ちます。

出力

円柱転位法の基本的な実装のためのプログラムコードは、次の出力を与えます-

円柱転置テクニック

-暗号解​​読者は、転置技術を実行すると暗号セキュリティが大幅に向上することを観察しました。 彼らはまた、同じ転置暗号を使用して暗号テキストを再暗号化すると、セキュリティが向上することを指摘しました。