AccentRPRでRAR復号に使用できるパスワードの最大文字数は?
Passcoveryの最大パスワード長は、RAR3/4では28文字、RAR5では64文字です。RAR3/4の制限は、内部SHA-1バッファ(中間ハッシュ状態を保存するメモリブロック)の使用方法と、暗号化鍵生成時の入力データ変化に起因しており、長いパスワードのGPU実装を極めて困難にしています。

RAR3/4で28文字となる理由
KDFアルゴリズム(鍵導出関数—パスワードを暗号鍵に変換するアルゴリズム)は、ASCIIパスワード文字をUTF-16LEで2倍にし、数千から数百万回のsha1_block呼び出し(64バイトを処理し80回の圧縮ラウンドを実行するSHA-1ブロック)を実行します。反復回数はパスワード長に依存します。パスワードが28文字を超えると、内部64バイトバッファの動作が変化し、入力データ(UTF-16のパスワードと8バイトのソルト)が変更されます。この時点から、アルゴリズムは元のパスワードデータだけでなく、バッファの変化も追跡する必要があります。これにより、SHA-1ブロック数と総反復回数(compress-rounds—SHA-1アルゴリズムにおける圧縮ステップの繰り返し回数)も増加します。GPU上では、この状況はカーネルの完全な書き直しと大量のリソースを必要とし、実装の複雑さが劇的に増加する一方で、ブルートフォースの効率が低下します。
つまり、パスワード長が増えるにつれて計算負荷も増大し、パスワード復元速度も低下します。 パスワード長Lに基づく計算負荷の公式 (西安電子科技大学、arXiv:1505.07635):
sha1_block_calls = 4096 × (2L + 11)SHA-1ラウンド = 80 × sha1_block_calls
| 長さ | SHA-1ラウンド | 負荷/速度低下 |
|---|---|---|
| 4文字 | 約620万 | ×1(基準) |
| 10文字 | 約1000万 | ×1.6 |
| 28文字 | 約2200万 | ×3.5 |
パスワード長の増加は、GPU負荷を直接増大させます。数百万回のsha1_block呼び出しを処理するには、コアは高いワープ占有率(並列実行されるスレッドの割合)と十分なメモリ帯域幅の両方を必要とします。これらのパラメータがバランスしている時、システムはスムーズに動作します。しかしパスワードが長くなるほど、このバランスを維持することが困難になり、効率は徐々に低下します:4文字で約620万ラウンドから28文字で約2200万ラウンドへと増加します。
WinRARバージョン間でのバッファ動作
RAR 2.9では、長いパスワードに対してKDF実行中に内部SHA-1バッファが変化する可能性がありました。これはGPU上で予測不可能な結果を招きます。
WinRAR 3.6でこれが修正されました:バッファは決定論的になり(内部状態が予期せず変化しなくなり)、新しいアーカイブには後方互換性のためversion need to extract = 3.6がマークされました。しかし、WinRAR 5がリリースされた際、事実上古い動作が復活しました。
その結果、28文字を超えるパスワードに対して、3つの可能なKDF動作が存在します:
- WinRAR 2.9ロジック(オリジナル)
- WinRAR 3.6–5修正版
- ビッグエンディアンプロセッサ向けの別の(レアな)バリアント(バイト順が逆転)
つまり、これは技術的な癖であり、フォーマットのバグではありません。本当にそうでしょうか? 😉
例え:28文字が上限である理由
8人乗りのエレベーターを想像してください。6人が乗り込むと、ドアが閉まり、出発します。速く、シンプル、1回の移動です。
今度は20人を運ぶ必要があります。最低でも3回の往復が必要です。しかし、これは単に「3倍の時間がかかる」だけではありません。下で待っている人がいて、上にいる人がいて、誰かがドアを押さえ、エレベーターが負荷に耐え、列が混乱します。追加の1人1人は単に秒数を加えるだけでなく、混沌を加えます。
RAR3/4の内部SHA-1バッファは、このエレベーターのように機能します。短いパスワード(UTF-16で最大28文字)は完全に収まり、システムは1回の「移動」を行います。長いパスワードはバッファを「破壊」します。今度はアルゴリズムがデータを分割し、中間状態を記憶し、追加の計算を実行する必要があります。並列処理用に設計されたGPUコアは、つまずき始めます:一部のスレッドが待機している間、他のスレッドは待機状態になります。
結果:「わずかに遅い」のではなく、根本的に異なる複雑な問題になります。そのため、Passcoveryでは制限を28文字に設定しています—これがエレベーターが最大効率で1回の移動ですべてを確実に処理できる境界なのです。
RAR5:バッファ制限の解消
RAR5は、SHA-1の代わりにPBKDF2 + HMAC-SHA-256を使用します。PBKDF2(Password-Based Key Derivation Function 2)は、 パスワードを暗号鍵に変換する業界標準関数であり、 古いSHA-1よりも安全に変換します。RAR3/4でGPU上での長いパスワード処理を困難にしていたバッファ問題は解消されます。暗号化は強化され、復元速度は低下しましたが、安定しました。
この安定した速度のボーナスは、ハードウェア性能との線形関係です:GPU性能が10%向上すれば速度は約10%向上し、+50%の性能なら速度は約+50%となります。RAR3/4では、速度は長さに対して非線形に依存していました:パスワードが長いほど、効率が低下しました。
| パラメータ | RAR3/RAR4 | RAR5 |
|---|---|---|
| KDF | SHA-1(218反復) | PBKDF2 + HMAC-SHA-256 |
| 最大長 | 28文字 | 64文字 |
| スケーラビリティ | 非線形 | 線形 |
| 暗号強度 | 中程度 | 高い |
結論:RAR3/4とRAR5の選択は、レガシーアーカイブとの互換性と長いパスワードを扱う際の利便性とのトレードオフです。RAR5は現代の長いパスワードに対して扱いやすい一方、RAR3/4は古いアーカイブに対して引き続き有効です。
復元が現実的な場合
Accent RAR Password RecoveryとPasscovery Suiteは、ブルートフォースで短いパスワードを、マスクとミューテーション付き辞書で長いパスワードを復元し、パスワードについて何か知っていれば、任意の長さで作業できます。RARの場合、単純なブルートフォース攻撃は5–6文字のランダムパスワードまで効果的です;それ以上では、組み合わせが多すぎます。マスク、位置マスク、またはミューテーション付き辞書を使用すると、効率の劇的な低下なしに成功の可能性が向上します。28文字制限は、RAR3/RAR4の内部KDF仕様にのみ関連しており、辞書やマスク長には関連していません。
復元を試みる前に、成功の可能性を判断するために3つの簡単な質問を自問してください:
- パスワードの一部または構造を少しでも覚えていますか? 数文字でも役立ちます。これは 拡張マスク攻撃です
- 一般的な単語や繰り返しパターンを使用しましたか? 例えば「qwerty123」。これは辞書攻撃です
- その時代の典型的なパスワードのリストを持っていますか? これは検索を高速化します。これはすでに ミューテーション付き辞書攻撃です
すべての質問に対する答えが「いいえ」で、パスワードが長くランダムである場合、成功の可能性は非常に低いです。例えば、96文字セットからのランダムな7文字パスワードは、約75,935,745,156,192の組み合わせを生成します。高速GPUでも、全範囲をチェックするには何年もかかります。
Denis Gladysh、Passcovery CEO: ユーザーはしばしば、希望のない復元試行に数週間を費やします。数学的に不利な場合、代替データソースの方が「魔法の」ブレークスルーを待つよりも良い結果をもたらします。
Accent RAR Password RecoveryにおけるRARサポート
AccentRPRとPasscovery Suiteは、すべてのRARフォーマットバージョンをサポートし、NVIDIA/AMD/IntelグラフィックカードでのGPUアクセラレーションを使用し、アーカイブ読み込み時にアーカイブバージョンとパスワード長制限を即座に表示します。これにより、KDFタイプ(RAR3/4またはRAR5)と利用可能な復元シナリオを事前に評価できます。
当社のツールは、高速CPUおよびGPU復元用に最適化されており、3つの基本攻撃(ブルートフォース、マスク、辞書)に加えて、その拡張版を含みます:位置マスク、辞書マージとミューテーション;さらに複雑なケース向けの攻撃シナリオも含まれます。
RAR作業用Passcoveryツール
Accent RAR Password Recovery
RAR3/RAR4/RAR5アーカイブ用(WinRAR 2.9–7.x)
Passcovery Suite
RARおよびMS Office/OpenOffice、Adobe PDF、ZIP、Apple iOSバックアップ、TrueCrypt、WPA/WPA2ハンドシェイク用
RAR3/4におけるKDFのエンジニアリング詳細
KDFはパスワードをUTF-16LEに変換します(各ASCII文字が2倍になります)。SHA-1ブロックは64バイト、80圧縮ラウンドです。sha1_block呼び出し回数:
sha1_block_calls = 4096 × (2L + 11)
- 4文字 → 77,824回の呼び出し
- 28文字 → 274,432回の呼び出し
長さが28文字を超えると、内部ブロックの動作が変化します:KDF構造が変化し、GPUカーネルの書き直しが必要になり、より多くのレジスタ(ワープ占有率が低下)とより大きなバッファ(メモリ帯域幅)がボトルネックになります。複雑さと低効率により、長さは28文字に制限されます。
パスワード復元に関するよくある質問
WinRARパスワードの復元は、候補を順次テストするプロセスです。RARフォーマットは強力な暗号化を使用しており、パスワードを直接抽出する方法はないためです。RAR3/RAR5アーカイブの場合、技術的に実行可能な唯一のアプローチは、範囲または辞書によるパスワードの列挙です。
RARフォーマットは、既知の脆弱性のないAES-256暗号化を使用します。復元ツールは「直接パスワードを取得」するのではなく、可能な候補をテストし、アーカイブの検証データと照合します。パスワードが長く複雑であるほど、検索は遅くなります。
現代的なアプローチによるパスワード復元には、3つの主な方法が含まれます:
- 定義された文字範囲全体でのブルートフォース;
- パスワード構造について何か知っている場合のマスク攻撃—例えば、最初の文字が大文字であるか、パスワードが数字で終わる;
- 辞書と辞書ミューテーション—単語、そのバリエーション、文字置換から構築された最も可能性の高い組み合わせのテスト。
実用的アプローチ:パスワードが単語に基づいているか、記憶に残る要素を含んでいる場合、ミューテーション付き辞書攻撃から始めます—文字を類似文字に置換、数字を追加、大文字小文字を変更します。情報がない場合は、マスクを使用し、検索スペースを削減するために文字範囲を制限します。
検索を高速化するためのヒント:
- 位置マスクを使用—パスワードの異なる部分に特定の文字範囲を定義;
- GPUアクセラレーション(NVIDIA/AMD/Intel Arc)を有効化—これによりCPUと比較して復元速度が大幅に向上;
- 辞書をマージしてミューテーションを適用—可能な組み合わせの拡張リストを作成。
制限を理解することが重要です:最適な方法と強力なハードウェアを使用しても、高エントロピーの長く複雑なパスワードは、合理的な時間枠内で実質的に解読不可能な場合があります。RAR暗号化には「魔法の方法」(ファイルバイトの編集、隠しバックドア、ハッカーエクスプロイト)はありません。
パスワードが見つからなかった場合は、その構造についてのヒントを思い出してみてください—長さ、使用された単語、数字や特殊文字の存在。これらのヒントは、復元の可能性を大幅に向上させるマスクとカスタム辞書の構築に役立ちます。


