2012-04-10 13 views
0

SignatureMethod.RSA_SHA1をしかし、通常の署名を使用しているときにだけ
署名の方法

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

を行うには、したがって、これら2つの違いは何ですか?

答えて

2

差は単純である:

RSA公開鍵が重要なメッセージを暗号化するために使用されている(public-keycryptographyアルゴリズムです。暗号化されたデータは、秘密鍵で復号化する必要があります。一方、RSA cryptography + SHA1 Message Digestの組み合わせである。

RSA-SHA1である。 message digestは4つの主要なまたは重要な特性を有する一方向ハッシュ関数である:

  • 与えたメッセージを生成するために実行不可能である任意のメッセージ
  • のハッシュ値を計算することは容易です
  • をハッシュで同じハッシュ

を有する2つの異なるメッセージを見つけることが不可能であるハッシュ

  • を変更することなく、メッセージを修正するために実行不可能です0の場合、保証が署名が送信者から受信者まで有効であることが望まれます。暗号アルゴリズム(例えば、RSA)を介して署名が作成され、次に、真正性のハッシング関数(例えば、SHA-1)を介して公開鍵、メッセージ、および署名に対する検証プロセスが行われる。

  • +0

    しかし、xmlの署名では、すでに "DigestMethod.SHA256"があります。ここでは、referece要素のダイジェストを見つけることができます。次に秘密鍵で要素に署名します。 – Ashwin

    +0

    私はまだあなたに従っていない。 Digestメソッドは、(あなたのケースでは 'DigestMethod.SHA256')Message Digestにどのアルゴリズムを使用したかを伝えるためだけに使われます。 「署名」は、暗号を使用して署名を生成する。これは** DigestMethodの前に**発生する必要があります。 –

    +0

    最初に、レフェレンス要素のディジットが計算されます。そのdigenstは、署名されたinfo要素に含まれています。この署名されたino要素は、送信者秘密鍵を使用して署名されます。メッセージを受信する受信機は、最初に署名を検証する。次に、参照要素のダイジェストを作成し、それを着信ダイジェスト値と比較することによって、参照要素を検証する。 – Ashwin

    関連する問題