タグ別アーカイブ: AES-256

ZIPに設定したパスワードの強度と暗号化(AES256)について

windowsのパソコンでZIPファイルにパスワードを設定する場合の「暗号強度」についてが今回のテーマです。


ZIPを暗号化(AES256)してパスワードをかけると暗号強度が増す


結局のところ、ZIPやRARなどのパスワード解析に必要となる解析の時間は、まずはパスワードの桁数の多さと文字のバリエーションの豊富さ(数字や英文字、記号をより多く組み合わせているパスワードほど安全)できまります。


また、「パスワードの解析され難さ」はZIPファイルを暗号化しているか否かによって更に変わってくることが分っています。以下のサイトを参考にして下さい。


※ 画像引用、出典 : パスワードの最大解読時間測定(暗号強度別)

zippassword.net.150529.2



赤枠を見て下さい。「ZIP」と「ZIP(256bit AES)」が比較されているのが分ると思います。総当り解析(ブルートフォースアタック)の場合、普通のZIPと「AES256」で暗号化したZIPとでは、解析に掛かる時間が違うことが分ります。


特に、「6桁」あたりから「8桁」で急激に解析時間が変わっているのが分ると思います。「8桁」で「英文字大小+数字(62文字)」のパスワードを総当り解析した場合では、「ZIP:約13時間」「ZIP(AES256):7年」と、パスワード解析に必要な時間が両者で明らかに違うことが分ります。「13時間」と「7年」では時間の桁数が天文学的に違いますよね。


ちなみに、「ZIP(256bit AES)」は、以前以下の記事でご案内した「ZIPファイルを暗号化するアルゴリズム」のことです。


http://www.zippassword.net/278.html


一秒あたりにパスワード解析できる回数についても、やはりZIPとZIP(AES256)ではこのように違ってきます。




zippassword.net.150529.3


暗号化されているAES256のZIPのほうが、暗号化が掛かっている分だけ1個のパスワード解析により多くの時間が必要になるということでしょう。「45億回/秒」と「105万/秒」では全然違います。



パスワードアナライザーの特徴


本サイトのパスワードアナライザーは、ローカルPC上でパスワード解析を実行する通常のフリーソフトとは違い、グラフィックボード搭載の高性能サーバー上にファイルを直接アップロードしてパスワードの解析を実行する点に特徴があります。



パスワードアナライザーの特徴については以下の記事をご参照下さい。


パスワードアナライザーの詳細

ZIPファイルを暗号化する「AES-256」とは何か?

「AES-256」とは何か?

ZIPファイルに暗証番号を掛ける際に選択することができる「AES-256」とはなんでしょうか。「AES-256」は、「7-zip」でZIPファイルにパスワードを掛ける際に選択できる暗号化方式の一つといえます。「AES-256」は、「AESアルゴリズム」(後述)の一種と考えていいでしょう。



zippassword.net.150422.1

ZIPファイルにパスワードを設定する際、確かに、このような形でAES-256を選択することができますよね。



AES256について更に調べると、IT用語辞典が「AES-256」をこのように定義をしていることがわかります。



zippassword.net.150422.2



このなかに、「DES(data encryption standard)」という単語を見つけることができます。実は、「AES」はDESアルゴリズムの発展系なのです。つまり、AESアルゴリズムの先祖が「DES」なのです。


DESアルゴリズムとは?


「DESアルゴリズム」による暗号化の仕組みをなるべく判りやすく簡単に説明したいところですが、残念ながら最終的には下図ような概念図をお見せするハメになります(笑)。



zippassword.net.150422.04

DESアルゴリズムは、暗号化するまえの元データ(これを「平文」と呼びます)をビットレベル(二進数の数列「0」「1」)として解釈し、その数列に対し一定の規則で論理演算(論理和『OR』、排他的論理和『XOR』)を加えて最終的に暗号化された「0」と「1」の数列を出力する暗号化方式です。


「規則」と書きましたが、具体的にはどのような規則かご説明しましょう。


例えば、上の図でいえば、DESでは入力の32ビットのデータ(平文)と鍵用の48ビットのデータ(暗号化用の鍵)を論理演算し、さらに「S1」から「S8」のデータの配列に6ビットごとに分割し、再び32ビットのデータを出力させます。このとき、既に平文の元の「32ビット」のデータとは違うビット列が出力されているはずです。



DESアルゴリズムは、このような処理を更に複雑なルールで何度も繰り返して最終的に暗号文を出力します。


zippassword.net.150422.3



アルゴリズムを何度もループさせて原型(元データの「0」「1」のビット列)が判らなくなるくらいランダムに「0」「1」を分散させたビット列を作る。これがDESアルゴリズムの目的です。

ちなみに、この暗号化されたデータを復号するためには、DESの逆のビット操作をします。

DESアルゴリズムは、C言語やC++を少しかじっている人であれば誰でも簡単にプログラミングすることができますよ。プログラミングのソースを公開しているサイトもあります。

zippassword.net.150422.5



DESアルゴリズムについて詳しく知りたい方は以下のサイトがとても参考になります。上記についてもっと詳しいことがわかります。


参考サイト
DES暗号のアルゴリズムについて


DESアルゴリズムは、米国が軍事技術として利用するために1970年頃に採用されたもので、当時では画期的な暗号化プロセスのアイデアでした。ですが、ハードウェアと暗号解析技術の進歩により、DESの暗号の強度(暗号が破られるリスク等)が危ぶまれるようになりました。


そして、DESの強化バージョンとして最終的に考え出されたのがAESです。AESの他にも3DESやトリプルDESなどの派生系の暗号方式も存在します。



今、あなたの圧縮ファイルに掛けた暗号化のパスワード。その暗号化技術のルーツが、実は米国の軍事技術だったとは意外でしょう?


ZIPパス解析部に戻る