0

ユーザーが一連のノートカードで送信するデータを保護しようとしています。暗号化/復号化は (できれば) ブラウザー内で行われるため、ユーザーは可能な限り保護プロセスを制御します。

すばらしい AES ライブラリ (https://github.com/mdp/gibberish-aes) を見つけました。残念ながら、私は暗号化キーの作成をユーザーに依存しているので、もっと遅いアルゴリズムが必要です。多くのハッシュ ライブラリ (PHP 用の PHPPass など) がありますが、双方向のライブラリが必要です。

私は他のアイデアにもオープンです。私はただ解決策を見つける必要があります。

4

1 に答える 1

2

暗号化アルゴリズムと鍵導出を混同しています。AESは適切なキーを使用したブルートフォースのリスクがないため、暗号化アルゴリズムが遅くなることは望ましくありません。

おそらく「ユーザーが暗号化キーを作成する」と言っているので、それはキーにパスワードを使用するスキームだということですか?PBKDF2が推奨されるアプローチであり、SP800-132でNISTによって承認されています

このタグ付きJavascriptがあるので、crypto-jsはPBKDF2をサポートしているように見えます

ユーザーからパスワード/パスフレーズを取得したら、ソルトを生成し、PBKDF2から実際のAESキーを取得する必要があります。同じ入力(パスワード、ソルト、およびラウンド数)が常に同じキーを生成するため、双方向である必要はありません。

これでさえ適切に設計された暗号システムではないことに注意してください。CBCまたはCTRモードなしでAESを使用するべきではありません。それでもデータをMACする必要があります(または両方を処理するGCMを使用します)。

于 2012-12-03T20:23:12.517 に答える