- PR -

Javaによる暗号化

1
投稿者投稿内容
ペニー
会議室デビュー日: 2002/07/11
投稿数: 1
投稿日時: 2002-07-11 16:44
初めて投稿させて頂きます。ペニーと申します。

現在、Javaによる開発を行っているのですが、暗号化で行き詰まっています。
コーディング自体は上手くいったのですが、実際に使用してみたところ、
暗号化に時間がかかっています。具体的な時間は約20秒です。
インターネットでの認証において、認証成功後に暗号化処理を走らせ、
暗号化処理が終了してから次のページを表示するので、
20秒という時間はかなり痛手となっています。
しかも、誰も認証してない時に認証を行うと、暗号化処理がすぐに終了するのに、
認証を行う約1分程前の間に、他の人が認証していると暗号化処理に時間を要します。
時間を要する部分を調査したところ、Signature.sign()が問題だと判明しました。
しかし、原因は判明しておりません。
どなたか、原因、対処方法等をご存知でしたらご教授下さい。

環境、コードは以下の通りです。

AIX4.3.3.0
WebSphere3.0.2.4
IHS1.3.6.4
JDK1.1.8

コード:

IdentityScope scope = IdentityScope.getSystemScope();

if ( scope.size() == 0 ) {
    return null;
}

Identity identity = scope.getIdentity(String name);

Signer signer = (Signer) identity;

PrivateKey priv = signer.getPrivateKey();

Signature dsa = Signature.getInstance("SHA1withDSA"); 
dsa.initSign(priv);
dsa.update(data);
byte[] sig = dsa.sign();


未記入
ぬし
会議室デビュー日: 2002/03/28
投稿数: 255
投稿日時: 2002-07-11 21:59
>どなたか、原因、対処方法等をご存知でしたらご教授下さい。
>環境、コードは以下の通りです。
使用ハードウエアについて書かれてませんが,
単純にCPUパワーが足りないという可能性は
ないでしょうか?

一般論として,公開鍵暗号はかなり遅い処理ですので.
#それこそWEBサーバーで大量に実行する場合は,
#専用の暗号化アクセラレータを用意したりする.
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-07-12 14:48
うーん…

Signature は「特定の公開鍵・秘密鍵を使って、データに署名を付与する」ようなうものですよね…。
key がかわると再初期化されてしまいますので、時間がかかります。
まぁ、そんだけコストのかかる作業だってことです。

それはそうと、認証とか暗号化とか言われてますが、使われているのは署名ですよね。
もしかして署名じゃなくて Crypto とかではだめなんですか?
また、Web ページだったら、SSL を使うとか…

あと、なぜに 1.1.8 ? せめて 1.2.2 なら VM もまだましではないかと…。
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2002-07-12 15:15
> あと、なぜに 1.1.8 ? せめて 1.2.2 なら VM もまだましではないかと…。
WebSphere 3.0 という環境ですから、古い JRE を使うのは多少仕方のないところですね。
ただし、WebSphere 3.0 / 3.5 に対する IBM の商用サポートは、
もうすぐ打ち切られる予定だと聞いています。(2002年7月現在)
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2002-07-12 15:15
>あと、なぜに 1.1.8 ? せめて 1.2.2 なら VM もまだましではないかと…。

それはWebSphere 3.0.x が 1.1.8 にしか対応していないからです。
1

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