SpinachMedia

情報ポータル SpinachMedia です。

鴻鵠の志をまるで知らない。SpinachMedia
Develop
Network
Design

ZIPファイルのパスワードは何桁つければ安全?


個人的な解釈が含まれております。
SpinachMediaは本ページの情報をあなたが利用することによって生ずるいかなる損害に対しても一切の責任を負いません。

何かとよく使用するパスワード付きZIPファイル。
メールでデータを送る際にとりあえず使用しますが、
はたしてどのようにパスワードをつければ安全なのでしょうか?
気になったので調査してみることにしました。

【目的】

パスワードはどのようにつければ安全なのか確認する。

【結果】

以下のことに気をつけること。

  • パスワードには英文字(大文字含む)を使用すること。
  • 記号は圧縮、解析ツールに依存するようなので、使用しないこと。
  • 英数字(大文字含む)であれば最低8桁のパスワードをつけること。
  • 英文字(大文字含む)であれば最低9桁のパスワードをつけること。
  • ファイルの重要度に応じてパスワードを長くすること。

【内容】

以下の流れで調査を行います。

 


  1. パスワードに使用するのは数字?英文字?記号?
  2. 1パターンあたりの検索時間は?
  3. 何桁が安全なの?

 

1.パスワードに使用するのは数字?英文字?記号?

ZIPファイルでは、一般的に数字・英文字・記号が使用可能です。
1桁あたりのパターンは以下の通りです。

 

種類パターン数
数字 0~9 10
英文字(大文字含む) a~z 52
記号 193

 

当然ですが、
1桁あたりのパターン数が多いほうが
"解析に時間を要する=安全"となります。
よって、数字、英文字、記号を組み合わせたパスワードが最も安全といえます。

 

ただし、記号は圧縮・解凍ソフトによって使用できない場合があるそうなので、
社外に出す場合は、数字と英文字を組み合わせたパスワードが最適です。

 

2. 1パターンあたりの検索時間は?

下記環境にて数字8桁にて測定を行いました。

この測定結果から、1パターンあたりの検索時間を求めます。

 

試験環境
Windows7 64bit
Core i5 2.90GHz
メモリ 8GB
Lhaplus Ver1.59 ("ZIP パスワード探索"機能を使用)

測定結果

パスワード解析時間※
00000000 00m32s
50000000 02m55s
99999999 05m27s
平均 02m58s

※0から探索開始した場合

数字8桁の場合は、組み合わせが
10^8 = 100,000,000 = 1億通り
1パターンあたり 1.78μs

 

3.何桁が安全なの?

数字・英文字・英数字の6~10桁時の組み合わせ数、

0から探索した場合に要する時間を計算した結果を以下に示します。

(y:年、d:日、h:時、m:分、s:秒 を意味しています)

 

桁数数字英文字(大文字含む)英数字(大文字含む)
1 10 - 52 - 62 -
6 1000000 1s 19770609664 9h46m31s 56800235584 1d4h5m4s
7 10000000 17s 1028071702528 21d4h19m27s 3521614606208 72d13h14m33s
8 100000000 2m57s 53459728531456 3y6d8h51m56s 218340105584896 12y118d5h3m7s
9 1000000000 29m40s 2779905883635712 156y331d5h1m12s 13537086546263552 764y29d1h14m12s
10 10000000000 4h56m40s 144555105949057024 8159y67d21h3m9s 839299365868340224 47372y341d4h40m45s

 

表に記載されている時間は、総組み合わせ数から算出しているので、

パスワードの値によってはより早い時間で解析ができます。

(999と1000では1桁違うが、探索時間はほぼ同じ)

 

私の感覚から、1ヶ月以上解析に時間がかかるのであれば、

安全といえるのではないでしょうか?

(ファイルの重要度にもよりますが・・・)

 

以上より、

  • パスワードは英文字(大文字含む)を使用する
  • 英文字(大文字含む)のみであれば9桁以上とする
  • 英数字(大文字含む)であれば8桁以上とする

 ことが重要だと思います。