シーザー暗号

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

シーザー暗号(シーザーあんごう、英語:Caesar cipher)は、単一換字式暗号の一種で、平文の各文字を辞書順に3文字だけシフトして暗号文をつくる暗号である。カエサル暗号とも呼ばれる。文字のシフト数は固定であるが、3に限る必要はなく、シフト数を3以外にした方式もシーザー暗号(あるいはシフト暗号)と呼ぶことがある。

シーザー暗号はヴィジュネル暗号などの部品として使用されることがある他、現代でもシフト数を13にした方式としてROT13が使用されることがある。

概要[編集]

シーザー暗号では例えば、3文字シフトさせてA→D、B→Eと置換して暗号文を作る。

古代ローマの軍事的指導者ガイウス・ユリウス・カエサル(英語読みでシーザー)が初めて使ったことから、この名称がついた。

スエトニウスによれば、カエサルは秘密を必要とする場合、各文字をシフトして暗号を作成したといわれ、この暗号は原文の“a”を“d”、“b”を“e”と読み替えれば解読できたという。容易に解読できるため、軍事には使用せず、私信に用いていた。

極めて単純な暗号であるが、現代の暗号においても重要な、規則(アルゴリズム)およびといった2つの要素が既に含まれている。

  • 規則:特定の文字を、それよりも辞書順に特定の数だけ後ろ(もしくは前)にある文字と置きかえる手順にあたる。
  • 鍵:辞書順にずらす数値のこと。カエサルが実際に用いたシーザー暗号の場合、3という数字が鍵となる。

ネットニュースなどでは、一見しただけで読めて欲しくない、しかし読もうと思えば誰でも読める文章(パズルの答えなど)を投稿するのにシーザー暗号が使われることがある。この場合、鍵は伝統的に13にし、ROT13とも呼ばれる。シーザー暗号を解読するためのコマンド(caesar(6))が標準装備されているUNIXシステムも多い。

解読法[編集]

何らかの方法で鍵である数値を見つければ、シーザー暗号を解読できる。アルファベット(26文字)では鍵の個数は25個なので全数探索で解読できる。

より一般的には、単一換字式暗号は文字の出現頻度を調べることにより理論的に解読できることが知られている。詳細は頻度分析 (暗号) を参照。

関連項目[編集]