冗長性への賛歌

冗長性への賛歌は、人間賛歌。

パスワードに名前や生年月日を使っちゃいけない理由 - 情報の効率と冗長性 -

 

最近こんな事件が起きましたね....

公開されている名前や生年月日から、アイドルのSNSのIDやパスワードを類推し、不正にアクセスした岐阜県職員が逮捕されました。

「名前や生年月日をパスワードに使うなど言語道断!!」

とあちこちで言っているので、あえて強調する必要はないと思いますが、先日「とくダネ!」で放送していたダメな理由が本質的だったので、ここで紹介します。 

パスワードが類推される 岐阜県職員が芸能人のメールのぞき見

上の記事で、危険なパスワードの第3位として、個人情報が入っているパスワードと挙げていますが、その理由を

 簡単に推測できる、1文字と変わらない

と表現しています。

1文字と変わらない、という言い方が本質を突いています。

「個人情報」として1人の人間が持つ名前は、2文字の名前でも、100文字の名前でも、1種類しかありません。同様に、生年月日も1人1種類です。

 もしパスワードに個人情報をそのまま使った場合、パスワードのバリエーションは個人情報の種類数(たかだか数十程度)しかありません。

結局、

 Xさんの名前   -> A

 Xさんの誕生日  -> B

 ...

という風に、1文字と対応づけることが出来てしまいます。

 

ここで、情報理論の概念として用いられる 効率」と「冗長性」について、簡単に書いておきます。

ある情報(=文字列 )は前述のように、より短い文字列で表現できることがあります。 情報理論では、ある文字列 S の「効率」を、

[ S を(特定可能な範囲で)最も効率的に(短い文字数で)表現した時の文字数 ] ÷  [ 元々の S の文字数 ]

と考えます。*1

例えば、「iwana_sloth」というパスワード*2は11文字ですが、これが特定の人の個人情報だと分かったとすると、前述のように1文字で表現できるため、効率は 1/11 ≒ 0.091 となります。

一方、パスワード作成ツールでランダムに生成した「czU6a(34HBM」という11文字のパスワードは、これ以上圧縮して表現しようがありませんので、効率は 11/11 = 1 となります。*3

ここで「iwana_sloth」のうち、効率的に表現できてない文字の割合 (1 - 10/11 ≒ 0.91) が「冗長性」となります。

 

情報理論ではこのように、定量的に冗長性という概念を捉えています。以前の記事で、「推測が容易な場面では冗長性が多く含まれている」といったことを書きましたが、

 冗長性を大切に - そのまえに冗長性って何? - - 冗長性への賛歌

今回はパスワードの例から、推測が容易な情報には冗長性が多く含まれていることが定量的に分かりました。

*「冗長性を大切にしよう!」というコンセプトのブログですが、今回は冗長性があると良くない例でした^^;

*1:ちゃんとした定義は他を参照してください^^;

*2:もちろん使っていません

*3:パスワードに使える文字の種類は増やせないものとします。もしパスワード生成ツールの生成確率分布に偏りがあるなら、生成確率が大きい文字列はより短い文字列と対応させて、平均的に文字数を減らすことは可能ですが、そんなに大きな偏りはないと考えて大丈夫でしょう(あったら困ります)