質問

私たちは、Javaでいくつかのラインダール開発を行うための要件を持っています。

私たちを助ける記事、図書館などのための任意の勧告?

メンテナンスとどのように安全に鍵を格納するキーストアに

任意のポインタ?

編集ます:

これはオープンソースであることが必要です。基本的に、それはラインダールを使用してデータのちょうど標準の暗号化/復号化です。

役に立ちましたか?

解決

Javaは、箱から出してAESを含んでいます。ラインダールはAESです。あなたは、任意の外部ライブラリを必要としません。

:あなたはこのようなものが必要
byte[] sessionKey = null; //Where you get this from is beyond the scope of this post
byte[] iv = null ; //Ditto
byte[] plaintext = null; //Whatever you want to encrypt/decrypt
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
//You can use ENCRYPT_MODE or DECRYPT_MODE
cipher.calling init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sessionKey, "AES"), new IvParameterSpec(iv));
byte[] ciphertext = cipher.doFinal(plaintext);

そして、それは、暗号化/復号化のために、それです。あなたが大量のデータを処理しているなら、あなたは(あなただけの最後のブロックの上のdoFinalを呼び出す)16バイトの倍数であるチャンクを読み、代わりのdoFinalの更新を呼び出す方がいいでしょう。

他のヒント

偉大な無料のライブラリーのために、私は非常にはBouncyCastleをお勧めします。にそれは積極的に、高品質を維持し、持っていますコード例の素敵な配列。参照ドキュメントについて、あなたは一般的な<のhref =「http://java.sun.com/j2se/1.5.0/docs/guide/security/jce/JCERefGuide.html」のrel =」の詳細を依存する必要がありますnoreferrer "> JCEのドキュメント。に

私たちはFIPS認定要件を満たすために使用するもののライブラリと言うことはできません。しかし、はるかに安いくらいですCryptoJに選択肢は、あります。

一般的に、私はあなたがラインダールのような対称暗号で暗号化するメッセージごとに新しいキーを生成し、その後、RSAなどの非対称アルゴリズムとその鍵を暗号化することをお勧めしたいです。これらの秘密鍵は、「スマートカード」のハードウェアトークンまたは他の暗号ハードウェアモジュール上で、より良いセキュリティのために、PKCS#12またはJavaの「JKS」のように、パスワードで保護された、ソフトウェアベースのキーストアに格納され、またはすることができます。

私の会社が最近判明したよう

、AESはかなりRijndaelのではありません。 AESは、キー128、192、または256ビットでなければならないという制限をしている - しかし、ラインダールは同様に160と224であるキーを可能にする

。 128/160/192/224/256ビット:上記エリクソンによって示されるように、

はBouncyCastleは、追加の鍵長をサポートしてラインダール・オブジェクトを提供します。具体的には、軽量なAPIを見てみます。

ヌー-暗号は別のオープンソースライブラリです - しかし、それはまた、160と224ビットの鍵のサポートを提供していません。

。 あなたは、特にフルラインダールのサポートを探している場合は、

ですから、その後はBouncyCastleは、私がこれまでに見つけた唯一のものです。

ます。http:// javaの

javax.cryptoでは、AESをサポートしています。 sun.com/developer/technicalArticles/Security/AES/AES_v1.htmlする

セキュアキーストレージとしては、通常の方法は、暗号ハッシュ関数を使用して、ユーザ入力(パスフレーズ)から暗号鍵を導出し、キーチェーンを暗号化するために派生鍵を使用することです。それとも、あなたは1つのキーだけが必要な場合、あなたは派生キー自体を使用することができます。

は、必ずシステムのセキュリティを直接使用するハッシュ関数の強度に関係していることに注意してください。塩可能な場合、およびハッシュ複数回(例えば数百倍、)と一緒に、暗号的に安全なハッシュ関数を使用します。

言われていること、疑問が非常にあいまいです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top