オープンソース活動と言う事でJava用暗号ライブラリである
BouncyCastleのインストール手順に関してまとめておきます。まずはインストール手順ですが、
手順1:
BouncyCastleのjarファイルを
http://www.bouncycastle.org/ から
ダウンロードする。利用するJDKのバージョンと一致した物か全てをダウンロードするが、jarファイル別々もダウンロードは可能。私は色々便利(ソースも含んでいるのでお勧め)なので全て含んでいる物をダウンロードしている。現在のVer1.29だと crypto-129.tar.gz か crypto-129.zip となります。情報が少ないから結局ソースを追う事が多いです(^^;
手順2:
BouncyCastleのjarファイル(例:bcprov-jdk14-129.jar/bcmail-jdk14-129.jar/bctsp-jdk14-129.jar/bcpg-jdk14-129.jar/bctest-jdk14-129.jar)をJREかJDKの jre/lib/ext/ の下にコピーする。
手順3:
JREかJDKの jre/lib/security/java.security を編集してBouncyCastleの行を挿入する。
---------------------------------------------------------------
:
#
# List of providers and their preference orders (see above):
#
security.provider.1=sun.security.provider.Sun
security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
:
---------------------------------------------------------------
※ この時に出来れば2番目に挿入して以下のリストを繰り上げて行く事が間違いが無くて望ましい。同じAPIが複数ある場合に別のプロバイダの物を使ってしまう事があるから。
以上でインストールは完了です。なお注意としてはWindows環境でJ2SDK(JDK)をインストールすると、JREと2重にインストールされる事があるので、最悪は両方の jre/lib 以下に設定をする必要がある事です。ちなみにJDKは指定場所にインストールされますが、JREは C:\Program Files\Java\j2re1.4.2_08 と言うようにインストールされてしまうようです。環境によって多少は異なるかもしれませんが参考まで。
また場合によっては
JUnit(junit.jar)や
JavaMail(mail.jar/src.jar)のモジュールも要求されるかもしれません。その場合にはダウンロードしてインストールしましょう。
次に以下のコードを実行してみて「
BouncyCastle Security Provider v1.29」と表示されればOKです。なおここでは全てBouncyCastleのバージョンはVer1.29を前提としてファイル名やメッセージを示していますが、BouncyCastleはバージョンアップも早いので最新の物を使いましょう。
---------------------------------------------------------------
import java.security.Provider;
import java.security.Security;
public class BcTest {
public static void main( String[] args ) throws Exception {
Provider provider = Security.getProvider ( "BC" );
System.out.println ( provider.getInfo() );
}
}
---------------------------------------------------------------
"BC"がBouncyCastleを示すプロバイダ文字列となります。さぁこれであなたもオープンソース&フリーソフトの暗号ライブラリBouncyCastleを使う準備が出来ました。暗号の世界を楽しみましょう!
[2006-12-01追記]
む?ある
お助け掲示板からリンクが。そうか確かにプログラムの一部だけだとわかり難いですね。と言う事で実行ソース例を修正しました。赤字の部分が今回追加した部分です。
bouncycastleを用いてRSAをする場合、
鍵長(512、1024、2048、4096bit)、ぞれぞれを暗号化・復号する時間はそれぞれどれほどかかるのでしょうか?
PCの性能によっても差は出ると思いますが、参考までに教えてください。
できれば、Crypto++で、同条件の場合の時間も教えていただきたいのですが・・・
よろしくお願いします。