暗号化ファイルのパスワード復元手法を徹底比較|辞書攻撃・ブルートフォース・マスク攻撃の仕組みと選び方
暗号化されたZIPファイルやRARアーカイブ、パスワード保護されたExcelやPDFファイルを開けなくなったとき、多くのユーザーは「どうやってパスワードを取り戻せばいいのか」という疑問に直面します。
パスワード復元ツールやサービスは多数存在しますが、その背後で動いている技術は大きく分けて3種類あります。それぞれの仕組みと得意・不得意を理解することで、復元にかかる時間と成功率を大きく改善できます。
この記事では、暗号化ファイルのパスワード復元に使われる主要な手法の技術的な仕組みと、実際の場面でどのアプローチを選ぶべきかを体系的に解説します。
暗号化ファイルのパスワード復元とは何をしているのか
まず根本的な部分から整理しましょう。暗号化ファイルのパスワード復元とは、ファイル自体の暗号を解読するのではなく、正しいパスワードを「探し当てる」作業です。
ZIP、RAR、7Z、PDF、Office文書などのファイル形式は、それぞれ独自の暗号化アルゴリズム(AES-256、ZipCrypto、RC4など)を使用しています。これらの暗号化方式には、数学的な脆弱性を突いて直接解読する現実的な手段が存在しません。
そのため、復元作業の本質は以下のプロセスになります:
- パスワード候補を生成する
- その候補でファイルの復号を試みる(正確には、ファイル内のハッシュ値と照合する)
- 一致すれば復元成功、不一致なら次の候補を試す
この「候補をどうやって効率的に生成し、どれだけ速く試行できるか」が、復元手法の核心です。
主要な復元手法の仕組みと特性
1. 辞書攻撃(Dictionary Attack)
仕組み: あらかじめ用意されたパスワードのリスト(辞書ファイル)を順番に試していく手法です。過去に流出したパスワードデータベース、よく使われる単語リスト、一般的なパスワードパターンなどを収録した辞書を使用します。
技術的特徴: - 試行回数が圧倒的に少ない(数万〜数千万件程度) - 処理時間が短い(数秒〜数分で完了することが多い) - 辞書に含まれていないパスワードには無力
効果が期待できる場面: - 「password123」「company2024」など一般的な単語やパターン - 過去にデータ流出で公開されたパスワードと同一のもの - 業界・職種特有の用語を使ったパスワード - キーボード配列に基づくパターン(qwerty、asdfghなど)
限界: 完全にランダムな文字列や、辞書に含まれていない独自の組み合わせには対応できません。
2. ブルートフォース攻撃(Brute Force Attack / 総当たり攻撃)
仕組み: 指定された文字種と桁数の範囲で、考えられるすべての組み合わせを一つずつ試していく手法です。
技術的特徴: - 理論上は必ず正解に辿り着く(時間が許せば) - 試行回数が膨大になる(8桁の小文字+数字で約2.8兆通り) - 処理時間にGPU算力が大きく影響する
組み合わせ数の計算例:
| 文字種 | 桁数 | 組み合わせ数 |
|---|---|---|
| 小文字のみ(26種) | 6桁 | 約3億通り |
| 小文字+数字(36種) | 8桁 | 約2.8兆通り |
| 大小文字+数字(62種) | 8桁 | 約218兆通り |
| 大小文字+数字+記号(95種) | 10桁 | 約5,987京通り |
効果が期待できる場面: - パスワードが6桁以下と短い場合 - 使用されている文字種が限定的だと分かっている場合 - 他の手法で復元できなかった場合の最終手段
限界: 8桁以上の複雑なパスワードでは、現実的な時間内での完了が困難です。例えば、大小文字+数字+記号の10桁パスワードを総当たりすると、高性能GPUを使っても数年以上かかります。
3. マスク攻撃(Mask Attack)
仕組み: ブルートフォースと辞書攻撃の中間的なアプローチで、パスワードの構造にある程度の規則性を仮定して試行範囲を絞り込む手法です。
例えば、「最初の4文字は大文字英字、後半4文字は数字」というマスクを設定すると、すべての組み合わせを試すよりも大幅に試行回数を削減できます。
技術的特徴: - パスワードの一部構造に関する記憶や推測が必要 - ブルートフォースより試行回数を劇的に削減可能 - 柔軟なパターン指定が可能
効果が期待できる場面: - 「前半は会社名、後半は数字」といった構造を部分的に覚えている場合 - 「最初の文字は大文字だった」「末尾は!で終わる」といった断片的な記憶がある場合 - 組織内でパスワードポリシーが統一されており、構造が推測できる場合
限界: マスクの設計が間違っていると、正しいパスワードが探索範囲から外れてしまいます。
4. ハイブリッド攻撃・スマート辞書攻撃
仕組み: 辞書攻撃をベースに、単語の前後に数字や記号を自動付加したり、一般的な置換ルール(l→1、a→@、e→3など)を適用したりする拡張手法です。
技術的特徴: - 辞書攻撃の速度とブルートフォースのカバー範囲を両立 - 人間が作りやすいパスワードパターンを効率的に探索 - 実際のパスワード傾向データに基づく辞書ほど効果が高い
実際のパスワードパターン例: - 単語 + 年号:「sakura2024」「project2023」 - 単語 + 記号 + 数字:「Company!123」「Tokyo@99」 - LeetSpeak置換:「P@ssw0rd」「S3cur1ty」 - 重複パターン:「abcabc」「123123123」
各手法の比較まとめ
| 項目 | 辞書攻撃 | ブルートフォース | マスク攻撃 | ハイブリッド攻撃 |
|---|---|---|---|---|
| 速度 | ◎ 非常に速い | △ 非常に遅い | ○ 条件次第で速い | ○ 速い |
| 成功率 | △ 辞書依存 | ◎ 理論上100% | ○ 設定依存 | ○ 比較的高い |
| 技術的難易度 | ◎ 簡単 | ◎ 簡単 | △ 設定に知識が必要 | ◎ 簡単 |
| 必要な算力 | 低 | 高 | 中〜高 | 低〜中 |
| 適する場面 | 一般的なパスワード | 短く単純なパスワード | 構造を部分的に記憶 | 複雑だが規則性あり |
ファイル形式別の暗号化特性と復元の難易度
ファイル形式によって使用される暗号化アルゴリズムが異なり、これが復元速度に直接影響します。
ZIPファイル
- ZipCrypto(従来方式): 暗号化的に脆弱性が知られており、既知平文攻撃が可能な場合がある。通常のパスワード復元も比較的速い
- AES-256(WinZip AES): 強固な暗号化。パスワード試行ごとに重い計算が必要で、復元速度は遅くなる
RARファイル
- RAR5形式はAES-256を使用し、意図的に計算コストを高く設計されている(PBKDF2によるキー導出)。1秒間に試行できるパスワード数が限られるため、復元に時間がかかる傾向がある
Office文書(Word/Excel/PPT)
- Office 2007以降はAES-256を使用。バージョンによってキー導出の反復回数が異なり、新しいバージョンほど試行速度が遅い
- Office 97-2003は独自暗号で脆弱性があるが、実用上の需要は減少傾向
PDFファイル
- PDFのバージョンとセキュリティ設定により暗号強度が大きく異なる
- ユーザーパスワード(オープンパスワード)とオーナーパスワード(権限パスワード)の2種類があり、復元アプローチが異なる
7Zファイル
- AES-256を使用し、RARと同様にキー導出のコストが高い。復元速度は比較的遅い部類に入る
実際の場面でどの手法を選ぶべきか
シナリオ1:数年前に作成したZIPアーカイブ
数年前に個人プロジェクトの資料をZIP圧縮し、パスワードを設定したものの忘れてしまった場合。
推奨アプローチ: 1. まず記憶を辿り、使った可能性のあるパスワードを直接入力 2. ハイブリッド攻撃で、思いつく単語をベースにバリエーションを展開 3. マスク攻撃で、覚えている構造(桁数、文字種)に絞り込んで試行
シナリオ2:前任者から引き継いだ暗号化Excelファイル
人事異動で前任者から引き継いだファイルの中に、パスワード付きのExcel予算書がある場合。
推奨アプローチ: 1. 前任者に直接確認(最も確実な方法) 2. 組織内のパスワードポリシーを確認し、マスク攻撃で構造を指定 3. 業界用語やプロジェクト名を含む辞書で辞書攻撃
シナリオ3:ダウンロードしたRARアーカイブ
インターネットからダウンロードしたRARファイルにパスワードがかかっている場合。
推奨アプローチ: 1. ダウンロード元のページにパスワードが記載されていないか確認 2. よくあるダウンロードサイト共通パスワードを辞書攻撃で試行 3. サイト名や日付をベースにしたハイブリッド攻撃
復元成功率を高めるための実践的ヒント
1. パスワードに関する記憶をすべて書き出す
- 使った可能性のある単語やフレーズ
- おおよその桁数
- 大文字・小文字の使用パターン
- 数字や記号の位置
- 作成時期(その頃よく使っていたパターン)
これらの情報が、マスク攻撃や辞書のカスタマイズに直接活用できます。
2. ハッシュ値をローカルで抽出する
多くの復元ツールやサービスでは、ファイル全体をアップロードする必要はありません。ファイルから暗号化ハッシュ(特徴码)のみを抽出し、それを元にパスワード探索を行います。
この方法の利点: - プライバシー保護: ファイル内容が外部に送信されない - 転送時間の短縮: ハッシュ値は数KB程度 - セキュリティ: 元のファイルは手元に残る
Catpasswd(猫密網)では、このローカルハッシュ抽出方式を採用しており、ZIP、RAR、7Z、PDF、Office文書など幅広い形式に対応しています。
3. GPU算力を適切に活用する
パスワード試行の並列処理はGPUが圧倒的に得意です。特にAES暗号化されたファイルでは、CPUと比較して数十倍〜数百倍の試行速度が期待できます。
- ローカルGPU: 高性能グラフィックボードがあれば有効だが、電気代と排熱が課題
- クラウドGPU: 大規模なGPUクラスターを使用できるサービスが効率的。必要な時だけ算力を使える
4. 段階的なアプローチを取る
いきなり総当たりをするのではなく、以下の順序で試行するのが効率的です:
- 記憶ベース: 思いつくパスワードを手動で試す
- 辞書攻撃: 一般的なパスワードリストで高速スキャン
- ハイブリッド攻撃: 記憶にある単語をベースに拡張試行
- マスク攻撃: 部分的な記憶を元に範囲を絞った総当たり
- フルブルートフォース: 最終手段(短いパスワードに限定)
失敗から学ぶ:パスワード紛失を防ぐための対策
復元技術が進歩しているとはいえ、最も確実なのはパスワードを紛失しないことです。実務的な対策をいくつか挙げます。
パスワードマネージャーの活用
Bitwarden、1Password、KeePassなどのパスワードマネージャーを使用し、暗号化ファイルのパスワードも一元管理します。マスターパスワード一つで全てのパスワードにアクセスできる仕組みは、ファイル単体のパスワード管理よりも遥かに安全で確実です。
復元キーの別保管
重要な暗号化ファイルには、パスワードとは別に復元キーやヒントを安全な場所(物理的な金庫、別のパスワードマネージャーなど)に保管しておきます。
チーム共有時のルール策定
組織内で暗号化ファイルを共有する場合は、パスワードの伝達方法と保管方法を事前にルール化しておきます。人事異動やプロジェクト終了時のパスワード引き継ぎ手順も明確にすることが重要です。
まとめ
暗号化ファイルのパスワード復元は、辞書攻撃・ブルートフォース・マスク攻撃・ハイブリッド攻撃という主要な手法の組み合わせでアプローチします。どの手法が最適かは、ファイル形式、パスワードの複雑さ、ユーザーが持っている断片的な記憶によって異なります。
重要なポイントは以下の通りです:
- まず記憶を整理する: 断片的な情報ほど、復元の糸口になる
- 段階的に試行する: 辞書攻撃→ハイブリッド→マスク→ブルートフォースの順
- GPU算力を活用する: 特に複雑な暗号では計算リソースが成否を分ける
- プライバシーを守る: ハッシュ抽出方式でファイル内容を保護する
- 予防に努める: パスワードマネージャーによる一元管理が最も確実
Catpasswd(猫密網)では、独自のパスワード辞書データベースとクラウドGPU算力を組み合わせた復元サービスを提供しています。ローカルでのハッシュ抽出に対応し、ファイル内容をアップロードせずに復元作業を行えるため、機密性の高いファイルでも安心して利用できます。復元に失敗した場合は料金が発生しない仕組みも、ユーザーにとってのリスクを低減しています。
暗号化ファイルのパスワードでお困りの際は、まずハッシュを抽出して試してみることをおすすめします。