2016-08-29 12 views
1

私はしばらくの間C++用の暗号ライブラリを探していましたが、最後にCrypto++に出くわしました。私が3DESを使用しようとするまで、図書館はOKのようでした。問題は、このライブラリで実装されているDESアルゴリズムのキーの長さが(通常の56ビットではなく)64ビットであることです。私は説明を探していくつかの時間を過ごし、私は最終的に得たすべては暗号++のドキュメントからの言葉のカップルだった:暗号++におけるDESの実装がキーでパリティビット(各バイトの最下位ビット)を無視Crypto ++ DESの実装とキーの長さ

通常の56ビットキーを持っていて、このライブラリでデータを復号化したいのであれば、キーデータを7ビットごとに無意味な余分なビットを挿入することでキーを "拡張" ?または、この素晴らしいライブラリで56ビットキーを使用する別の方法はありますか?

+0

すべての部分キーが同じである64ビットキーで3DESを使用すると、実際には意味がありません。それはDESと同じセキュリティレベルで3倍遅くなります。 –

+0

[TripleDES](http://cryptopp.com/wiki/Tripledes)は、通常2つの味のうちの1つです:2キーTripleDESと3キーTripleDES。 2キーは112ビット、3キーは168ビットです。 IETFでもRFCでこのように使用されています。 – jww

答えて

1

通常のDESキーは8バイトですが、ほとんどの現在の実装DESではlsb(最下位ビット)のパリティビットが無視されているだけです。

しかし、これは、DESおよび/または3DES(112ビットおよび/または168ビットキー)を使用する必要があります。 DESの答え:いいえ、3DESの場合:従来の互換性のみ。どちらもAESに取って代わりました。

+0

ありがとう!これは、56ビットではなく64ビットのキーを生成するのが一般的な方法であることを意味しますか?または、正確に56ビットのキーを使用する他のライブラリがありますか? アルゴリズムの信頼性については、それは絶対に古くなっていることを認識しており、教育目的で使用する必要があります。 –

+0

通常は、CPRNG(暗号擬似乱数ジェネレータ)または(PBKDF2)などのパスワードからのkeY派生関数のいずれかを使用して、バイト単位の一般的な供給キーです。鍵の強さはビットで指定されますが、バイト数で指定します。 – zaph

+0

それは単なる教育であるならば、なぜAESを使用しないのですか? [XTEA](https://en.wikipedia.org/wiki/XTEA)は簡単で合理的に安全です。教育目的のために: [*ハンドブックの応用暗号*](http://cacr.uwaterloo.ca/hac/index.html)Alfred J. Menezes、Paul C. van OorschotとScott A. Vanstoneによる無料ダウンロードBruce Schneierの古典的な[* Applied Cryptography *](https://www.schneier.com/books/applied_cryptography/)です。 H. X. MelとDoris M. Baker(私が本当に好きな良いスターター)の[*暗号解読*](http://www.informit.com/store/cryptography-decrypted-9780201616477) – zaph

関連する問題