web-dev-qa-db-ja.com

非対称公開キー暗号化:キーを使用して暗号化または復号化できますか?

鍵交換は、平文を暗号化する公開鍵と復号化する秘密鍵を記述しますが、デジタル署名では、秘密鍵を使用して、関連する公開鍵が復号化するハッシュを暗号化する場合とは逆になります。

1つのキーの暗号化と他の復号化の境界に沿った非対称キーについて考える必要がありますか、それともペアで暗号化または復号化に使用できますか?

私が得ているのは、公開鍵と秘密鍵の名前が鍵交換において安全な媒体上で共有され、「公開」されているにもかかわらず、秘密鍵を秘密にしておく必要があるということです。共有キーを保護しますか?

この質問が理にかなっているといいのですが、必要に応じて明確にしていきたいと思いますが、これが現時点で私が言える最善の方法です。

2
David

あなたは言葉を混ぜていると思います。それらのもつれを解くことは、あなたの理解を助けるかもしれません。 (使用した順に)

鍵交換は、所有している対称鍵(たとえばAES鍵)を取得し、それを別の当事者と交換して、盗聴者はその過程でそれを学ぶことができます。

鍵の交換と暗号化は(ほとんど)関連のない概念です。鍵交換は非対称暗号化を使用して行われることが多いですが、暗号化とは何の関係もない鍵交換方法があります。

公開鍵/秘密鍵の暗号化とデジタル署名:暗号化を使用すると、受信者の公開鍵を暗号化できますそして、秘密鍵で復号化できます。署名を使用すると、秘密鍵で署名すると、誰でも公開鍵で確認できます


公開鍵と秘密鍵は交換可能ですか?

多くの非対称(または「公開鍵」)暗号化アルゴリズムがあるため、これを一般化しようとすると非常に面倒になります(言い換えると wikipediaから )。

さまざまな目的のためのよく知られている非対称鍵暗号化および鍵交換技術の例には、次のものがあります。

  • Diffie–Hellman鍵交換プロトコル
  • ElGamal暗号化アルゴリズム
  • 楕円曲線Diffie-Hellman鍵交換
  • パスワードで認証されたさまざまな鍵合意技術
  • Paillier暗号システム
  • RSA暗号化アルゴリズム(PKCS#1)
  • Cramer–Shoup暗号システム
  • YAK認証キー合意プロトコル

広く採用されていない非対称キーアルゴリズムの例は次のとおりです。

  • NTRUEncrypt暗号システム
  • McEliece暗号システム

注目に値する(ただし安全ではない)非対称鍵アルゴリズムの例は次のとおりです。

  • マークル–ヘルマンナップザック暗号システム

デジタル署名アルゴリズムの同様の、しかし異なるリストがあります(また wikipediaから ):

一部のデジタル署名アルゴリズム

  • RSA-PSSなどのRSAベースの署名スキーム
  • DSAとその楕円曲線バリアントECDSA
  • エドワーズ曲線デジタル署名アルゴリズムとそのEd25519バリアント。
  • DSAの前身としてのElGamal署名方式、および変形Schnorr署名とPointcheval–Stern署名アルゴリズム
  • ラビン署名アルゴリズム
  • BLSなどのペアリングベースのスキーム
  • 否定できない署名

RSAとElGamalが両方のリストに表示される唯一のアルゴリズムであることがわかります。つまり、同じアルゴリズムを暗号化と署名の両方に使用できます。私は個人的にはElGamalの背後にある数学に精通していませんが、RSA署名はあなたが説明する方法で機能します-それは公開鍵によって解読できるメッセージのハッシュです。ただし、その説明は、すべての暗号アルゴリズム、たとえば署名用で暗号化バリアントのないDSAなどでは機能しません。


概要

あなたの質問に答えるために "1つのキーの行に沿った非対称キーを暗号化し、他のキーを復号化するか、ペアで使用して暗号化または復号化できますか? ? "、答えは"それはあなたが話しているアルゴリズムに依存します。 "

質問であなたが述べたことは(ほとんど、少し単純化されています)RSAには当てはまりますが、他の非対称暗号化やデジタル署名アルゴリズムには当てはまりません。それらを4つの別々のケースとして考えるのが良いです:

  • 暗号化公開鍵で暗号化します
  • 暗号化秘密鍵が復号化します
  • 署名の秘密鍵の署名
  • 署名の公開鍵を検証します

数学がどのように機能するかの詳細はアルゴリズムごとに大きく異なるため、これは、取得できる最も具体的なものであり、すべての暗号化および署名スキームに適用できます。

4
Mike Ounsworth