
暗号学において、暗号(またはサイファー)とは、暗号化または復号化を実行するためのアルゴリズム、つまり手順として実行できる一連の明確に定義されたステップのことです。あまり一般的ではありませんが、別の用語として暗号化(encipherment)があります。暗号化またはエンコードとは、情報を暗号またはコードに変換することです。一般的には、「暗号」は「コード」と同義語として使われます。どちらもメッセージを暗号化する一連のステップだからです。しかし、暗号学、特に古典暗号学においては、これらの概念は明確に区別されます。
コードは一般的に出力で異なる長さの文字列を置き換えるのに対し、暗号は一般的に入力と同じ数の文字を置き換えます。コードは、ある意味を別の意味にマッピングします。単語やフレーズは、文字または数字としてコード化できます。コードは通常、入力から鍵への直接的な意味を持ちます。コードの主な機能は時間を節約することです。暗号はアルゴリズムです。与えられた入力は、解読するために暗号のプロセスに従う必要があります。暗号は、一般的に書かれた情報を暗号化するために使用されます。
暗号は、ランダムな文字列や数字を単語やフレーズに関連付けた大規模なコードブックに従って置換することで機能します。たとえば、「UQJHSE」は「次の座標へ進んでください」のコードになります。暗号を使用する場合、元の情報は平文と呼ばれ、暗号化された形式は暗号文と呼ばれます。暗号文メッセージには平文メッセージのすべての情報が含まれていますが、それを復号するための適切なメカニズムがなければ、人間やコンピュータが読み取れる形式ではありません。
暗号の動作は通常、鍵(またはNSAの伝統的な用語では暗号変数)と呼ばれる補助情報に依存します。暗号化手順は鍵によって異なり、アルゴリズムの詳細な動作も変わります。ROT13やAtbashなどの例外を除き、メッセージを暗号化するために暗号を使用する前に鍵を選択する必要があります。
現代の暗号のほとんどは、いくつかの方法で分類できます。
サンスクリット語でゼロを意味するशून्य (śuṇya) に由来し、アラビア語の صفر (ṣifr) を経て、「cipher」という言葉は中世にアラビア数字体系の一部としてヨーロッパに広まりました。ローマ数字体系にはゼロの概念がなかったため、数学の進歩が制限されていました。この移行期に、この言葉は中世ラテン語で cifra として、そして中世フランス語で cifre として採用されました。これが最終的に英語のcipher (またはcypher ) という単語につながりました。この用語が符号化を指すようになった理由の一つとして、ゼロの概念がヨーロッパ人にとって混乱を招くものであったため、この用語が容易に理解できないメッセージや通信を指すようになったという説があります。[ 1 ]
後に「暗号」という用語は、アラビア数字全般、あるいはアラビア数字を用いた計算を指す言葉としても使われるようになったため、アラビア数字の形式でテキストをエンコードすることは、文字通りテキストを「暗号」に変換することになる。
日常会話では、「コード」と「暗号」は通常同じ意味で使われますが、専門的な意味では異なる概念を指します。コードには意味があり、単語やフレーズが数字や記号に割り当てられ、より短いメッセージが作成されます。
その一例として、電報の交換によって生じる長い電報メッセージを短縮するために使用された商業電報コードが挙げられる。
別の例としては、単語全体を記号や文字に置き換える暗号があります。これは、日本語の書き言葉で漢字(日本語で中国語の文字を意味する)が音節を表す日本語の文字を補完するのとよく似ています。英語で漢字を使った例としては、「The quick brown fox jumps over the lazy dog」を「The quick brown fox jumps 上 the lazy 犬」に置き換えることが挙げられます。速記者は、単語全体を省略するために特定の記号を使用することもあります。
一方、暗号はより低いレベルで機能します。個々の文字、小さな文字のグループ、あるいは現代の方式では個々のビットやビットのブロックといったレベルです。一部のシステムでは、セキュリティを高めるために二重暗号化を用いて、コードと暗号の両方を一つのシステム内で使用していました。場合によっては、コードと暗号という用語は、それぞれ置換と転置と同義語として使用されることもあります。
歴史的に、暗号学はコードと暗号の二分法に分けられており、符号化には暗号と同様に「符号化」「コードテキスト」「復号化」などの独自の用語があった。
しかし、符号には暗号解読されやすいことや、扱いにくい符号帳の管理が難しいことなど、さまざまな欠点がある。そのため、符号は現代の暗号技術では使われなくなり、暗号方式が主流となっている。
暗号化にはさまざまな種類がある。暗号の歴史の初期に使用されていたアルゴリズムは現代の方法とは大きく異なり、現代の暗号は動作原理や、鍵を1つ使用するか2つ使用するかによって分類できる。

シーザー暗号は、最も初期の暗号システムの一つとして知られています。紀元前50年頃、ユリウス・カエサルは、アルファベットの文字を3文字ずらし、残りの文字を先頭に回す暗号を使ってマルクス・トゥッリウス・キケロに手紙を書きました。 [ 2 ]
過去に使われていた歴史的なペンと紙の暗号は、古典暗号と呼ばれることもあります。これには、単純な換字式暗号( ROT13など)や転置式暗号(レールフェンス暗号など)が含まれます。たとえば、「GOOD DOG」は「PLLX XLP」と暗号化できます。ここで、「L」は「O」、「P」は「G」、「X」は「D」に置き換えられます。「GOOD DOG」の文字を転置すると「DGOGDOO」になります。これらの単純な暗号と例は、平文と暗号文のペアがなくても簡単に解読できます。[ 3 ] [ 4 ]
1640年代、議会派の指揮官である第2代マンチェスター伯爵エドワード・モンタギューは、イングランド内戦中に同盟国に暗号化されたメッセージを送るために暗号を開発した。[ 5 ]イングランドの神学者ジョン・ウィルキンスは1641年に「マーキュリー、または秘密かつ迅速な使者」というタイトルの本を出版し、アルファベットの文字を音符に置き換えた音楽暗号について説明した。[ 6 ] [ 7 ]この種の旋律暗号は、著者アブラハム・リースが著書『サイクロペディア』(1778年)でより詳細に描写した。[ 8 ]
単純な暗号は、文字ごとに置換アルファベットを変更する多表換字暗号(ヴィジュネル暗号など)に置き換えられました。たとえば、「GOOD DOG」は「PLSX TWF」と暗号化できます。ここで「L」、「S」、「W」は「O」に置き換えられます。少量の既知または推定の平文があれば、ペンと紙の暗号化用に設計された単純な多表換字暗号や文字転置暗号は簡単に解読できます。[ 9 ]ワンタイムパッドに基づいて安全なペンと紙の暗号を作成することは可能ですが、これには他の欠点があります。
20世紀初頭、転置暗号、多表式換字暗号、および一種の「加算」換字暗号を用いて暗号化と復号を行う電気機械式暗号機が発明された。ローター式暗号機では、複数のローターディスクが多表式換字暗号を提供し、プラグボードが別の換字暗号を提供した。ローターディスクとプラグボードの配線を交換することで、鍵を容易に変更できた。これらの暗号化方式は以前の方式よりも複雑で、暗号化と復号に機械を必要としたが、イギリスのボンベ暗号機など、これらの暗号化方式を解読するための別の暗号機も発明された。
現代の暗号化方式は、使用する鍵の種類と入力データの種類という2つの基準で分類できる。
使用される鍵の種類によって、暗号は以下のように分類されます。

対称鍵アルゴリズム(DESやAESなど)では、送信者と受信者は事前に共有鍵を設定し、他のすべての関係者から秘密にしておく必要があります。送信者はこの鍵を使用して暗号化を行い、受信者は同じ鍵を使用して復号化を行います。AES(Advanced Encryption System)の設計は、DES(Data encryption standard)の設計上の欠陥を克服することを目的としていたため、有益でした。AESの設計者は、その設計構造により、現代の暗号解読攻撃の一般的な手段はAESに対して効果がないと主張しています。
暗号は、入力データの種類によって2種類に分類できる。
純粋な数学的攻撃(つまり、暗号を解読するのに役立つ他の情報が一切ない場合)では、次の2つの要素が特に重要となる。
目的とする効果は計算上の難易度であるため、理論的にはアルゴリズムと望ましい難易度レベルを選択し、それに応じて鍵の長さを決定することになる。
クロード・シャノンは情報理論の考察を用いて、理論的に解読不可能な暗号は、少なくとも平文と同じ長さで、一度だけ使用される鍵、すなわちワンタイムパッドを持たなければならないことを証明した。[ 10 ]
{{cite book}}ISBN /日付の不一致(ヘルプ){{cite book}}: CS1メンテナンス: 場所の発行元が見つかりません (リンク)