- PR -

Javaでの暗号化について

1
投稿者投稿内容
バキーニ
会議室デビュー日: 2003/01/26
投稿数: 2
投稿日時: 2003-01-26 02:20
はじめまして。初投稿させていただきます、よろしくお願いします。
私は現在大学の研究で、Javaを用いての暗号化の勉強をしています。
その中で、RSAを用いた暗号化を行いたいのですが、

Cipher cipher = Cipher.getInstance("RSA");

の一行でどうしてもエラーが出てしまいます。エラーメッセージは

Cannot find any provider supporting RSA

というものです。
DES等では上手くいくのですが、RSAがどうしても上手くいきません。
環境はJ2SDK1.4.1_01を使用しています。プロバイダーのせいなのかとも思い、1.3.1に変更してCryptix等をインストールしてみたのですが、なにやらそこでもエラーが出てしまいます。
RSAアルゴリズムを用いての鍵生成等は出来るのですが、このアルゴリズムを暗号化に使用する事はできないのでしょうか?
解決法をお教え頂ければと思いますので、よろしくお願いいたします。

parolibre
常連さん
会議室デビュー日: 2002/12/30
投稿数: 33
投稿日時: 2003-01-26 16:29
引用:

その中で、RSAを用いた暗号化を行いたいのですが、

Cipher cipher = Cipher.getInstance("RSA");

の一行でどうしてもエラーが出てしまいます。エラーメッセージは

Cannot find any provider supporting RSA

というものです。


SunのJDK/SDKにはRSAプロバイダが含まれていなかったはずです。
(「RSA サービスを実装するプログラマが利用しやすいように」するインタフェースは含まれているようですが(^^;)

代わりに↓のものが使われることが多いようです。
http://security.dstc.edu.au/projects/java/jcsi.html
_________________
--
parolibre
ToGo
常連さん
会議室デビュー日: 2002/03/16
投稿数: 46
投稿日時: 2003-01-26 17:00
SunのJ2SE SDK v1.4のJCEの実装には、RSAが含まれていない
のではないかと思います。
Target exception: java.security.NoSuchAlgorithmException: No such algorithm: RSA
と例外が発生している通りでしょう。

sunJceProvider = java.security.Security.getProvider("SunJCE");
sunJceProvider.getInfo();
で以下の文字列が得られました。
SunJCE Provider (implements DES, Triple DES, Blowfish, PBE, Diffie-Hellman, HMAC-MD5, HMAC-SHA1)

解決方法は、アルゴリズムにRSAを提供するProviderを入手して組み込むこと
になるかと思います。
バキーニ
会議室デビュー日: 2003/01/26
投稿数: 2
投稿日時: 2003-01-26 20:02
ご回答頂き、大変ありがとうございます!
ToGoさん、parolibreさんのご指摘の通りRSAは含まれていないようですね、勉強不足でした、すみません。。。J2SE SDK v1.4には含まれていると勝手に勘違いしていました。

そこで、parolibreさんのおっしゃるようにJCSIをインストールする事にしました。
すると、見事にうまくいきました!!実は、以前もJCSIをインストールしようとしていたのですが、その時はうまくいきませんでした。恐らく、JCSIでも別のものをダウンロードしてきたのかもしれません。

おかげさまで、問題を解決する事が出来ました。ToGoさん、parolibreさん、本当にありがとうございます。
また、何か行き詰まった際はご質問をさせていただく事もあると思いますので、よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)