【古典暗号】種類と特性のまとめ

この記事では大昔に使われていた暗号(古典暗号)についてまとめています。現代の共通鍵暗号や公開鍵暗号などと比べると実用性はありませんが、暗号の歴史や基礎を学ぶ上ではとても重要なものです。

暗号の種類

暗号の種類は、古典暗号と現代暗号の2種類に分けて説明することができます。前者は主に、コンピュータが発展する前の時代に商業などで使用されていたものです。後者は第二次世界大戦後にコンピュータが発展し、古典暗号に数学的要素を組み合わせ、より複雑化させた暗号です。

古典暗号とは

古典暗号の歴史は紀元前19世紀のエジプトで使用されたヒエログリフ(象形文字)まで遡ります。古典暗号には上記の他に、シーザー暗号、スキュタレー暗号、コードなどがあります。古典暗号は基本的に前後の文字とシフトしたり、換字したりするだけなので簡単に解読ができてしまうという問題点があります。

古典暗号はコンピュータがない時代において商業や軍事目的などで使用されていましたが、コンピュータが発達した現代では解読が容易であり実用性に欠けます。

現代暗号とは

20世紀に入り無線技術が発達したことにより、暗号技術も急速に発展しました。第二次世界大戦でエニグマと呼ばれる数学的要素を使用した暗号がドイツで使われ始めたことを境に、現代暗号の開発が始まりました。これらの暗号は古典暗号と異なり、暗号化アルゴリズムに数学的な要素が多く含まれているので、解読するために必要な計算量を元に安全性を検証することが可能です。

古典暗号と現代暗号の違い

古典暗号と現代暗号には、大きな違いがつあります。それは、暗号のアルゴリズムを公開するか非公開にするかです。古典暗号は、暗号化するアルゴリズムを復号化してもらいたい相手にしか伝えず、暗号化に使用した暗号鍵も公開しません。また、古典暗号は言語の特徴を使用し解読することができるので数学的な安全性評価が存在しません。それに比べて現代暗号では暗号化するアルゴリズムは公開され、鍵のみが非公開です。また、現代暗号は暗号化アルゴリズムが公開されているものなので、安全性を解読するのに必要な計算量で評価することができます。

主な古典暗号の種類

具体的にいくつかの古典暗号をみてみましょう。

シーザー暗号

シーザー暗号とは、古典暗号のなかでも最もシンプルで有名な暗号です。また、暗号のアルゴリズムは” 平文の文字を特定文字数シフトしていく”というだけのとても単純なものです。例として、hello を文字数 3 でシフトし暗号化 したものを以下に示します。

 平文  hello  
 暗号文  khoor  

シーザー暗号は、そのシンプルさが特徴ですが、アルファベットであれば最大 25 字シフトすることで解読できてしまうのでこの特徴が安全性を考慮する上でデメリットといえます。

コード暗号

コードとは、アルゴリズムを使用して文字を置き換えるのではなく、特定の単語を合言葉に置き換える暗号化方式です。決まったアルゴリズムを使用しないので解読が困難ですが、暗号文を平文化するのにも、膨大な平文と暗号文の交換コードブックを作成する必要で、汎用性に欠けています。

スキュタレー暗号

スキュタレー暗号とは、特定の棒の周囲に長い羊皮紙を巻きつけ、筒が伸びる方向に平文を書き、余白を適当な文字で埋めるという暗号です。平文は、棒に巻きつけた羊皮紙を伸ばすことにより、暗号化することができます。復号化するためには使う鍵は棒の円周に相当します。 また、スキュタレー暗号には弱点があり、シーザー暗号と同じように棒の円周 n を求めるだけで、解読ができてしまいます。以下に、スキュタレー暗号の例を示します。

転置式暗号

転置式暗号とは、平文の文字の順番を入れ替える暗号です。これはアナグラムと呼ばれている文字を入れ替える言葉遊びそのものといえます。以下に例を示します。またこの平文を暗号化するための置換 A は式(1)に示します。

単一換字式暗号

単一換字式暗号とは、平文を単純に他の文字に変換する暗号です。この暗号には、重大な弱点があります。例えばアルファベットなら、英語だと’e’ を使う回数が多いという性質があり、平文が長文がと、文字が使われている頻度から、推測し解読することができてしまいます。

まとめ

古典暗号をみてみると、思ったよりも簡単な暗号で実際に使われていたことが信じられませんね。