第15回 共通鍵暗号

初めに必ず連絡事項を確認してください。

暗号の種類

前回見たように、暗号には大きく分けて共通鍵暗号と公開鍵暗号の2つがある。今回は共通鍵暗号の例をいくつか紹介する。
なお、今回の課題ではいずれもこの資料のページのフォームの暗号化・復号の機能を使う。

共通鍵暗号の例1 : シーザー暗号

概要

解説動画

シーザー暗号とは、平文の文字を決められた数だけずらして暗号文を作る方法のことである。「文字を何個分ずらすか」の数値がシーザー暗号の鍵にあたる。
例えば鍵が1の場合は、a→b, b→c,..., y→z, z→a のように後ろに文字をずらして置き換える。受信者側でこれを復号するときはこれと逆の置き換えを行う。

使われる文字が英語のアルファベット (26文字) なら、鍵は0~25の26パターンしかなく、そのうち0では平文と暗号文が全く同じになってしまうので、実質的に鍵は25パターンだけ。
第三者はたとえ鍵を知らなくても総当たりで試せば簡単に暗号文を解読できてしまう。





(下の表の平文の文字がそれぞれ暗号文のものに置き換えられる)
平文
暗号文

平文

暗号文
フォームの機能
なお、このフォームでは大文字は大文字に、小文字は小文字に変換し、それ以外のものは変えないようになっている。

課題1

シーザー暗号で暗号化されたこの暗号文を解読し、鍵 (数字) を答えよ。
課題1ヒント

手順
  1. 概要のフォームの「復号」にチェックを入れる。
  2. 暗号文を全文コピーし、フォームの暗号文の欄にペーストする。
  3. 鍵の数字を変え、「平文」が正しい英文になるものを見つける。
この暗号文の元になったのは、著作権が期限切れとなった小説などを無料で公開している Project Gutenberg にある「The Hound of the Baskervilles, by Arthur Conan Doyle」の第1章。

共通鍵暗号の例2 : 単一 ( たんいつ ) ( かえ ) ( ) 暗号

概要

解説動画

単一換字暗号とは、文字を対応表に応じて置き換える方法のことである。この場合は対応表が暗号化・復号の鍵にあたる。
単一換字暗号のパターン数は一般に非常に多いため、シーザー暗号のように総当たりで鍵を知ることは難しい。
使われるのが英語のアルファベット (26文字) なら、鍵の数はそれらの並べ替えの数、つまり \(26!=26\times25\times\cdots\times2\times1\fallingdotseq4\times10^{26}\) になる。

しかし、英文のアルファベットは文字によって出現頻度が異なるので、暗号文が十分に長ければ文字の出現頻度を調べることで置き換え元の文字を推測できてしまう。
それ以外にも、一般的な英文なら1文字だけの単語は「a」か「I」しかないことや、「th」「he」「in」「er」などの連続する並びを手がかりにして推測することもできる。



平文
暗号文

平文

暗号文
フォームの機能

課題2

単一換字暗号で暗号化されたこの暗号文を解読し、鍵 (平文と暗号文のアルファベットの対応表) を答えよ。
課題2ヒント

手順
  1. 概要のフォームの「復号」にチェックを入れる。
  2. 暗号文を全文コピーし、フォームの暗号文の欄にペーストする。
  3. 「頻度による推測」ボタンを押す (「平文」がそれなりにところどころ正しい単語を含んだ英文になる)。
  4. 平文を一番上までスクロールさせる。
  5. 鍵の表でまだ誤っている部分を並べ替える。
    平文の最初の「Tse」はおそらく「The」だと仮定し、平文の「s」に対応している文字を「h」に対応させる (それぞれの下にある「m」と「a」を入れ替える。


    平文の最初が「The」になる。さらに「og」は「of」だと思われるので平文の「g」と「f」に対応する文字を入れ替えれば


    このようになる (「gor」も「for」になり、推測は正しかったことがわかる)。 さらに Adventcres → Adventures, Proxewt → Project, angone → anyone, anymhere → anywhere のように修正していけば、正しい英文が解読される。
この暗号文の元の文章も Project Gutenberg にある。こちらは「The Adventures of Sherlock Holmes by Arthur Conan Doyle」の全文。

提出

ノート・紙に解いた課題を撮影したものを以下のフォームから送信してください。
課題提出用フォーム
※ 締切は1/21(火) 正午です。提出によって出席・点数がつきます。