SIGMA-SE Tech Blog

SIGMA-SE Tech Blog


当サイトは、過去に運営していた別ドメイン(unisia-se.com)から sigma-se.com へ移行した技術ブログです。
旧サイトの記事をもとに、内容の精査・加筆・最新化を行い再構成しています。
正確で実用的な情報提供を目的としています。

情報セキュリティ - 暗号技術:3/10 多表式暗号の仕組み

概要

ヴィジュネル暗号は、頻度分析に対抗するために発展した多表式暗号の代表例となる。

15世紀のアルベルティの暗号円盤は、文章の途中で換字表を切り替えるという考え方を示した。
この発想は、16世紀のヴィジュネル暗号へ受け継がれ、長い間「解読が難しい暗号」と考えられるようになる。

単換字暗号では、同じ平文文字は常に同じ暗号文字に置き換わるため、文字の出現頻度から解読されやすい。
一方、多表式暗号では、同じ A でも位置や鍵によって別の文字に変換される。

そのため、単純な頻度分析を通用しにくくできるが、鍵を繰り返して使う場合には周期が生まれる。
19世紀には、この周期を手がかりにした解読法が整理され、多表式暗号にも弱点があることが明らかになった。

この記事で扱うこと

  • 多表式暗号が頻度分析に強くなる理由。
  • アルベルティの暗号円盤の基本的な考え方。
  • ヴィジュネル暗号で鍵を使ってずらす数を変える仕組み。
  • カシスキー検査が鍵長推定につながる理由。

換字表を切り替えるアルベルティの暗号円盤

  • 概要

    アルベルティの暗号円盤は、15世紀のレオン・バッティスタ・アルベルティが考案した暗号具となる。
    1467年頃に書かれた暗号論の中で示され、多表式暗号の重要な出発点とされる。

    円盤を回すことで、文字の対応関係を変えることができる。
    これは、同じ文章の中で換字表を切り替える多表式暗号の考え方につながる。

  • 仕組み

    アルベルティの暗号円盤は、外側のリングと内側のリングを重ねて使う。
    外側のリングには平文の文字、内側のリングには暗号文として使う文字を並べる。

    暗号化するときは、上の基準位置で外側と内側の文字を対応させて読む。
    例えば、外側の A の真下に内側の d が来ている場合、平文の A は暗号文の d に置き換える。

    その後、内側のリングを回すと、同じ A でも対応する暗号文字が変わる。
    つまり、円盤の位置を変えることで、同じ文字に対して別の換字表を使えるようになる。

    送信者と受信者が、最初の合わせ方と、どのタイミングで内側のリングを回すかを共有していれば、文章の途中で換字表を切り替えられる。
    これにより、同じ文字が常に同じ暗号文字になる単換字暗号よりも強くなる。

    位置1 : A → d
    位置2 : A → q
    位置3 : A → m
    
    pid73_1

複数の換字表を使う多表式暗号

  • 概要

    多表式暗号とは、複数の換字表を切り替えながら暗号化する方式を指す。

    単換字暗号では、暗号化の対応表は基本的に一つとなる。
    一方、多表式暗号では、文字ごとに使う対応表を変える。

    例えば、1文字目は表1、2文字目は表2、3文字目は表3のように使い分ける。

    1文字目 : 表1で変換
    2文字目 : 表2で変換
    3文字目 : 表3で変換
    
  • 頻度分析への対抗

    多表式暗号では、同じ文字でも毎回同じ文字に変換されるとは限らない。

    例えば、平文の A が次のように変換される場合がある。

    1回目の A -> X
    2回目の A -> M
    3回目の A -> Q
    

    これにより、暗号文に出てくる文字の頻度が平文の頻度と対応しにくくなる。
    そのため、単純な単換字暗号よりも解読が難しくなる。

鍵でずらす数を変えるヴィジュネル暗号

  • 概要

    ヴィジュネル暗号は、多表式暗号の代表例となる。

    鍵を使って文字ごとに変換ルールを変える考え方は、1553年にジョヴァン・バッティスタ・ベラソが示した方式に近い。
    その後、1586年にブレーズ・ド・ヴィジュネルの著作によって広く知られるようになり、ヴィジュネル暗号という名前で説明されることが多くなった。

    平文と鍵を使い、文字ごとにずらす数を変えて暗号化する。
    シーザー暗号ではずらす数が固定だったが、ヴィジュネル暗号では鍵の文字によってずらす数が変わる。

  • 仕組み

    アルファベットを A = 0B = 1C = 2、...、Z = 25 と対応させる。
    平文の文字を \(P_i\)、鍵の文字を \(K_i\)、暗号文の文字を \(C_i\) とすると、暗号化は次のように表せる。

    \[ {\small C_i = (P_i + K_i) \bmod 26 } \]

    復号は、鍵の分だけ戻すので、次のように表せる。

    \[ {\small P_i = (C_i - K_i) \bmod 26 } \]
  • 暗号化の例

    平文を ATTACK、鍵を KEY とする。
    鍵は平文の長さに合わせて繰り返す。

    平文 : A T T A C K
    鍵   : K E Y K E Y
    

    ここでも、アルファベットは A = 0B = 1、...、Z = 25 として扱う。
    そのため、鍵の K は \(10\)、E は \(4\)、Y は \(24\) という「ずらす数」になる。

    例えば1文字目は、平文 A が \(0\)、鍵 K が \(10\) なので、\(0 + 10 = 10\) となる。
    \(10\) に対応する文字は K なので、暗号文の1文字目は K になる。

    pid73_2

    よって、暗号文は KXRKGI になる。

頻度分析が効きにくい理由

  • 頻度分析が効きにくい

    ヴィジュネル暗号では、同じ文字でも鍵の位置によって別の文字に変換される。

    例えば、平文に A が何度も出てきても、鍵が違えば暗号文は変わる。

    A + K -> K
    A + E -> E
    A + Y -> Y
    

    そのため、暗号文の中で一番多い文字を調べても、単純に平文の EA に対応するとは限らない。

  • 弱点

    ただし、鍵を繰り返して使う場合、暗号文には周期が生まれる。

    例えば、鍵 KEY を繰り返すと、1文字目、4文字目、7文字目は同じ鍵 K で暗号化される。
    この周期を見つけられると、暗号文を同じ鍵位置ごとに分けて分析できる。

鍵の周期を見つける解読法

  • カシスキー検査

    カシスキー検査は、ヴィジュネル暗号の鍵の長さを推測する方法となる。
    19世紀にはチャールズ・バベッジが解読法に近い考え方へ到達し、1863年にはフリードリヒ・カシスキーが鍵の長さを推測する方法を公表した。

    暗号文の中に同じ文字列が繰り返し出てくる場合、その間隔が鍵の長さと関係していることがある。
    その間隔を調べることで、鍵の長さを推測できる。

    pid73_3

  • 意味

    ヴィジュネル暗号は長く強力な暗号と考えられていたが、鍵の繰り返しという弱点があった。

    つまり、多表式暗号は単換字暗号より強いが、鍵の使い方が不適切であれば解読される可能性がある。
    この考え方は、現代暗号における鍵管理の重要性にもつながる。

違いを整理する

比較する項目整理するポイント
ヴィジュネル暗号の名称ベラソの方式に近い考え方が、後にヴィジュネル暗号として説明されることが多い。
同じ文字が違う暗号文字になる理由鍵の文字ごとにずらす数が変わるため。
強い暗号と鍵の使い方方式が強くても、短い鍵を繰り返すと周期が手がかりになる。

実務とのつながり

  • 鍵管理
    暗号方式だけでなく、鍵の長さや再利用の有無が安全性に影響する。
  • 現代暗号の理解
    鍵の扱いを誤ると強い方式でも弱くなるという考え方は、現代暗号にも通じる。

まとめ

  • 多表式暗号は、15世紀から16世紀にかけて発展し、複数の換字表を切り替えることで頻度分析に対抗する。
  • アルベルティの暗号円盤は、1467年頃に示された多表式暗号の重要な出発点となる。
  • ヴィジュネル暗号は、16世紀に広まった多表式暗号の代表例で、鍵によって文字ごとにずらす数を変える。
  • 鍵を繰り返す場合、周期が生まれるため、19世紀のカシスキー検査などで解読の手がかりになる。
  • 多表式暗号の歴史は、暗号の強さだけでなく鍵の扱いが重要であることを示している。


Copyright SIGMA-SE All Rights Reserved.
s-hama@sigma-se.jp