2005-07-19

BouncyCastleのインストール手順と確認  [by miyachi]

オープンソース活動と言う事で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追記]
む?あるお助け掲示板からリンクが。そうか確かにプログラムの一部だけだとわかり難いですね。と言う事で実行ソース例を修正しました。赤字の部分が今回追加した部分です。

2005-07-19 18:17:02 - miyachi - [公開活動] -

コメント一覧

quce のコメント

miyachiさん、初めまして。
bouncycastleを用いてRSAをする場合、
鍵長(512、1024、2048、4096bit)、ぞれぞれを暗号化・復号する時間はそれぞれどれほどかかるのでしょうか?
PCの性能によっても差は出ると思いますが、参考までに教えてください。
できれば、Crypto++で、同条件の場合の時間も教えていただきたいのですが・・・
よろしくお願いします。
2007-02-21 02:50:19

miyachi のコメント

quceさん初めまして。応答が遅くてすみません。3月末まで仕事が立て込んでましてブログもままならない生活が続いておりまして…

さてベンチマークですよね?確かに面白そうなのでやってみたいのですが先のような事情でちと時間が取れません。4月になれば…って遅いですよね(^^;

ちなみにPCで良いなら公開鍵アルゴリズムでもあっても連続して大量に利用しない限り気になるような時間はかからないとは思います。ただ4096bitではやった事がありませんが…

また公開鍵による暗号化は実際にはサイズ的に大きな情報を直接暗号化できないので、大量データを暗号化したいのであれば、共通鍵方式と組み合わせて使う必要があります。その辺りはご承知の質問だとは思うのですが一応念のため(^^;

もし気長にお待ち頂けるなら4月頃にでも実装してみたいと思います。すみませんがよろしくお願いしますm(_ _)m
2007-02-25 12:24:56

yoshi のコメント

Googleで「BouncyCastle」を検索し、このブログを見つけました。

iTextと言う、PDF作成ライブラリとあわせて必要だったのですが、
このブログを見つけるまでBouncyCastleのサイト
から、どのjarファイルをダウンロードして、どこに
配置すれば使用できるのかがまったくわかりませんでした。

分かりやすい解説をありがとうございました。
2009-01-08 16:02:38

miyachi のコメント

yoshiさん、こんにちは。
うわ古い情報で大丈夫でしたでしょうか(^^; 何とかお役に立てたようで良かったです。
最近はBouncyCastleやCrypto++よりもOpenSSLを使う方が多くなってしまいました。またそのうちBoucyCastleもやらなきゃとは思ってます。生暖かく見守って下さい。
2009-01-08 18:00:11

コメントを書く

このアイテムは閲覧専用です。コメントの投稿、投票はできません。