問題タブ [cryptanalysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 復号化および暗号化されたデータから RC4 キーを見つける方法は?
一連の暗号化されたデータと、その結果の復号化されたデータを示すドキュメントで、いくつかのダンプ分析があります。使用されるアルゴリズムが説明されています (単純な RC4)。欠落している唯一の情報は、暗号化されたデータから復号化されたデータを取得するために使用されるキーです。
このドキュメンテーション資料から自動化されたテストを書いています。独自のキーを選択して、クリアテキストから暗号化されたデータを再作成することもできますが、元のデータの束を暗号化するために使用された元のキーを見つける簡単な暗号解析方法があるかどうか疑問に思います.
キーが非常に小さいため、ブルート フォース アプローチがおそらく可能ですが、よりスマートなアプローチが存在するかどうかを知りたいと思っています。
以下は、私の現在の C 暗号化コードです (OpenSSL を使用):
encryption - 7-zip アーカイブの暗号化メカニズムの key_derivation および key_verification 関数はどのように実装されていますか?
パスワードで保護されたファイルのパスワード回復がどのように機能するかについて興味があります。And I want to know the exact flow of the 7-zip encryption mechanism.
7-zip
ファイルまたはフォルダーを暗号化するために、CBC モードで AES-256 暗号化アルゴリズムを使用します。キーは、SHA-256 ハッシュ関数に基づいて、ユーザーが指定したパスフレーズから生成されます。SHA-256 は 2 19 (524,288) 回実行され、網羅的な検索のコストが増加します。また、辞書攻撃のリスクを軽減するために、ハッシュを生成する前に元のパスフレーズにソルトが追加されます。
私の最初の質問はhow does key_derivation function work to generate a 256-bit key
?AES CBC モードの IV の重要性とその生成方法は?
2 つ目most important question
は、7-zip アーカイブを復号化するためにキーを検証する方法です。つまり、key_verification 関数はどのように機能するのでしょうか?
security - 暗号アルゴリズムを公開することが推奨されるのはなぜですか?
暗号学の本では、暗号化/復号化アルゴリズムを公開して、攻撃や暗号解読に対してテストする必要があると書かれています。公開されていないアルゴリズムは、攻撃に対してテストされていないため、強力とは見なされませんが、暗号化アルゴリズムのセキュリティは、主にキーの長さとキーのランダムな分布に基づいて、ブルート フォース攻撃とキーの数学的分析から保護します。
私の質問は、私のキーが十分に長く、本当にランダム化されている場合、主にキーの長さに依存するのに、なぜアルゴリズムを公開する必要があるのでしょうか?アルゴリズムを知ることの利点は何ですか?
c - sat ソルバーを使用するための方程式の cnf への変換
そこで、同僚が考案したいくつかの方程式を cnf ファイル形式に変換して、オープン ソースの sat ソルバーで使用できるようにしました。
方程式は次のとおりです。
S ボックス:
混合カラム:
攻撃には、
これらを cnf ファイル形式に変換する方法について、参照リンクを含め、情報をいただければ幸いです。cnf ファイル形式で上記のような制約を指定することに関するヘルプもいただければ幸いです。
c - DES が安全でない理由 反復を停止するタイミングと、鍵を見つけたことをどうやって知るのでしょうか?
DES は安全ではないと言われています。キーの長さが55ビットであるためだと思います。そのため、ブルートフォースを使用すると、最近では多くないキーを見つけるために最大2 ^ 55の反復が必要になります。しかし、2^55 を反復する場合、停止するタイミングはいつわかるのでしょうか。
cryptography - nonce / IV はキーとして非公開にする必要がありますか?
ブロック暗号モードでは、ノンス / iv およびカウンターが導入されています ( http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation )。それらもキーとしてプライベートにする必要がありますか?その理由は?