日々のコンピュータ情報の集積と整理

Dr.ウーパのコンピュータ備忘録

2014年11月14日金曜日

英数字(0-9, a-z, A-Z)44文字の組み合わせパターン数とそのセキュリティ強度

イントロダクション

一般的には第3者に知られてはならないURLは、そのURLの長さを十分に長くすることによってセキュリティを担保しています。

例えば、Google Drive のスプレッドシートをリンクを知っている全員に公開とした場合、次のようなURLでアクセスが可能です。

https://docs.google.com/spreadsheets/d/********************************************/edit?usp=sharing

※ * は英数字1文字の伏字




英数字(0-9, a-z, A-Z)44文字の組み合わせパターン数

このURLの場合、個々のドキュメントを識別しているのは1からMまでの、44文字です。
出てくる文字を英数字(0-9, a-z, A-Z)と仮定した場合、その文字の組み合わせで実現されるパターン数は、

1-9 のパターン数 = 10(通り)
a-z のパターン数 = 26(通り)
A-Z のパターン数 = 26(通り)

1文字分のパターン数 = 1-9 のパターン数 + a-z のパターン数 + A-Z のパターン数
 = 10 + 26 + 26
 = 62(通り)

44 文字分のパターン数 = 1文字分のパターン数 * 1文字分のパターン数 * ... * 1文字分のパターン数 (44回 1文字分のパターン数 をかける)
 = 1文字分のパターン数 ^ 44 (^はべき乗の意)
 = 62 ^ 44
 ≒ 7.3E+78 (Eは、7.3 * 10^78の意)(通り)

となります。
(なお、Google DriveのURLには、-や_といった記号も使われるため、もう少しパターン数は多くなります。)

従って、7.3E78通りのうちの一つの文字列パターンを入力して、このファイルを開くことができます。


セキュリティ強度

7.3E78通りがどのくらいのパターン数なのかというと、0 を並べると、

7,300,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000

となります。(0 がありすぎて、どれくらいの桁数なのかすらわからないですね。)


7.3E78通りの中から1つのパターンを当てる確率は、

1/7.3E78 ≒ 1.4E-79

です。
これだけだと、この数値がどれだけの大きさなのかわからないため、宝くじで1等をとる時の確率と比較してみます。

ジャンボ宝くじの1等を当てる確率は、1000万分の1と言われています。(*1)
これを数値(指数形式)で表すと、

1/1000000 = 1E-6

となります。


これを先ほどの、英数字(0-9, a-z, A-Z)で構成された44文字のURLに対してランダムにURLを入力した時に特定の一つのファイルを開く確率1.4E-79と比べてみると、もう、本当に途方もない確率だということがわかります。


但し、誰かのファイルを開ければよいという意図であれば、Google Drive上で公開されているファイルの数だけ、その確率は上がるため注意が必要です。
(より具体的に言えば、URLを見ると各ファイルの種類(document, spreadsheet等)ごとに上位のディレクトリが分けられているので、同じ種類のファイルが公開されている数だけ、ランダムにURLを入力した時に誰かのファイルを開くことが出来る確率が上がると言えます。)


参考文献

*1:

夢が壊れる!?宝くじの種類別に1等当選確率を計算してみた結果 | キャッシングのまとめ
http://camatome.com/2013/06/takarakuji-1tou-tousenkakuritsu.php






関連記事

関連記事を読み込み中...

同じラベルの記事を読み込み中...