著者:レオ マルティネス 3 世 - LinkedIn
連絡先: [email protected]
作成日: 2024年春
この Python プログラムは、メッセージの暗号化と復号化のために、置換暗号の一種であるアフィン暗号を実装しています。アフィン暗号は、アルファ (a) とベータ (b) のキーのペアを使用して、平文を暗号文に、またはその逆に変換します。
暗号化の公式は次の式で与えられます: E(x) = (ax + b) mod m。ここで、x は平文の文字インデックス、a と b はキー、m はアルファベットのサイズです。
プログラムは大文字と小文字を区別せずに処理し、入力内のスペースを無視します。
暗号文は、平文の各文字をアフィン変換により変換して生成されます。
復号化の式は次のとおりです。 D(y) = (a_inv * (y - b)) mod m、ここで、y は暗号文の文字インデックス、a_inv は a の乗算逆剰余、b はキー、m は暗号文の文字インデックスです。アルファベットのサイズ。
暗号化と同様に、プログラムは大文字と小文字を区別せずに処理し、入力内のスペースを無視します。
プログラムは、暗号化 (「e」) または復号化 (「d」) のどちらかを選択するようユーザーに求めます。
ユーザーはアルファ (a) 値とベータ (b) 値を入力し、それらが有効範囲内にあることを確認します。
GCD (最大公約数) チェックが実行され、有効な入力が保証されます。
暗号文と平文の値の例は、テスト目的で提供されています。
プログラムは Python 3.9 を使用して Google Colab で作成されました
プログラムを実行するために必要なすべてのものと追加のインストール情報がこのフォルダーに含まれています。
項目の簡単な説明は次のとおりです。
src:ソースコードを含むフォルダー Python スクリプト: main.py (このファイルを使用してプログラムを実行します)
README.md:プロジェクトに関する最も基本的な情報が含まれています
LICENSE: Github リポジトリに関するライセンス情報が含まれます。
さらに、復号化の整合性を支援するためのエラー チェックを確実に行うために .gcd() メソッドが必要であるため、「math」Python が仮想環境に適切にインストールされていることを確認してください。