2016-11-04 18 views
0

ecryptfsなどのソフトウェアでAESが使用されている場合、ユーザーパスワード(「password123」など)を尋ねます。ユーザーパスワードを使用してaes暗号化を実行するにはどうすればよいですか?

AESアルゴリズム自体はユーザーパスワードを要求しません。だから、 "password123"は数学に投げ込まれるのですか?

パスワードを使用してデータを暗号化するC関数を作成しようとしています。私はOpenSSLとaesキーでそれを行う典型的な方法を知っていますが、私はどのようにユーザのパスワードを統合するのか分かりません。

+0

私はSNMPv3での作業経験がありますが、RFCではキーの導出方法が示唆されています。パスワード、engineID、それらを一緒にマッシュアップし、それらをミックスし、最後にあなたの鍵を持っています。セクションA.2.1とA.2.2を見てください。示されている例はMD5ですが、AESにも同じ概念が適用されます。https://tools.ietf.org/html/rfc3414#section-2.6 – yano

+3

AESは対称暗号アルゴリズムであり、鍵ペアは使用しません。それは鍵か128,192、または256ビットを使用し、@ bartonjsの答えはパスワードから派生することができます。 _Asymmetric_ RSAやECIESのような暗号はキーペアを使用します(そして、それを見ても 'ロックとキー'は通常誤解を招きます)。 –

+0

@ dave_thompson_085私はこのコメントについてとても無知でした。私はAESとRSAの違いは何も分かりませんでした。私は問題のこのプロジェクトを終了し、私は自分の方法のエラーを理解した笑 –

答えて

6

キー導出関数(KDF)を使用する必要があります。パスワードベースのキー導出関数2(PBKDF2)は、現在の最も一般的なアプローチです。

OpenSSLはPBKDF2を公開している可能性があります(通常、現代システムでは100000以上のものを使用する必要があります)。また、SHA-2ファミリ(SHA256、SHA384、SHA512)の何かがハッシュ関数をとることもあります。

関連する問題