#65

XOR暗号:同じ鍵で暗号化も復号も

ビット演算XORで、同じ鍵で暗号化と復号ができる仕組みを体験します。

解説

XOR(排他的論理和)には「同じ値で2回XORすると元に戻る」という性質があります。つまり A XOR 鍵 = 暗号文、暗号文 XOR 鍵 = A となり、暗号化と復号にまったく同じ操作が使えます。 Pythonでは ^ がXOR演算子です。各文字を数値コードに直して鍵とXORするだけで暗号化できます。 実用の暗号でもXORは基本部品ですが、鍵が短く使い回されると破られるため、鍵の管理が決定的に重要です。

書き方

^ — XOR(排他的論理和)演算子。同じ値で2回XORすると元に戻る。
・ord(文字)/chr(コード): 文字⇄文字コードの変換。
・[ord(ch) ^ k for ch in text]: 各文字を鍵とXORするリスト内包表記。
・"".join(...): 文字のリストを文字列に連結。

書いて動かす

この回の課題

同じ鍵で文字列をXOR暗号化し、もう一度同じ鍵をかけて復号できることを確かめてみよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。