作成手順と使用例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/08 15:20 UTC 版)
暗号化には二つのアルファベット列を使用する。暗号化のためのアルファベットは、通常のアルファベットを左、または右にいくつか循環シフト(ローテーション)させる。下図は、左に3文字の循環シフトをした場合のアルファベット列である。これは、右に23文字の循環シフトをした場合と同じである。シフトの方向およびシフトさせた個数はこの暗号の鍵として使用される。 通常のアルファベット: ABCDEFGHIJKLMNOPQRSTUVWXYZ暗号化アルファベット: XYZABCDEFGHIJKLMNOPQRSTUVW 暗号化する場合は、「通常のアルファベット」列から平文の文字を探し、対応する「暗号化アルファベット」列の文字を書き出す。 平文: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG暗号文: QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD 復号したい場合は逆をおこなえばよい。すなわち、右に3つ循環シフトさせる。 この暗号化の手順は合同算術を使用して表現することもできる。その場合、A = 0, B = 1, ..., Z = 25 のように、文字を数字に変換しておく。文字 x を n 個のシフトで暗号化する場合を数学的に表現すると、下記となる。 E n ( x ) = ( x + n ) mod 26 {\displaystyle E_{n}(x)=(x+n)\mod {26}} 同様に、復号は下記となる。 D n ( x ) = ( x − n ) mod 26 {\displaystyle D_{n}(x)=(x-n)\mod {26}} プログラミングで実装する場合、使用する言語によって剰余演算の定義が異なる場合がある。上記の場合、結果は0以上25以下の範囲となるが、そうでない場合、26を加算する、もしくは減算する必要がある。 シーザー暗号の場合、文字の交換方式はメッセージ全体を通して同一である。このような暗号を単一換字式暗号と呼ぶ。対して、文字ごとに交換方式を変えるものを多表換字式暗号と呼ぶ。
※この「作成手順と使用例」の解説は、「シーザー暗号」の解説の一部です。
「作成手順と使用例」を含む「シーザー暗号」の記事については、「シーザー暗号」の概要を参照ください。
- 作成手順と使用例のページへのリンク