2016-09-18 16 views
-4

私が知っているすべての公開鍵暗号化では、サーバーの公開鍵はメッセージを暗号化することであり、秘密鍵を持つクライアントはそのメッセージを復号することができます。公開鍵暗号化では、サーバーがクライアントからのメッセージをどのように復号化しますか?

私が理解していない部分は、サーバーがクライアントからの応答をどのように復号化するかをメッセージを暗号化するための公開鍵だけを持っているからです。私は、一般の人がクライアントからの応答を解読するのに使用できないと信じています。

また、クライアントがプライベートキーとしてサーバーに送信するメッセージは、メッセージの暗号化にのみ使用され、暗号化には使用されません。

ご迷惑をおかけして申し訳ありません。私はインターネットを検索し、何とかこれらの答えが私から逃れている。

ご協力いただければ幸いです。

おかげで、 モハメド

+0

* "サーバーには公開キーのみがあります" * - あなたが間違っている場所です。サーバーには秘密キーと公開キーの両方があります。 –

+0

ありがとうございます。ここに私のさらなる質問があります。実際には、たとえば、ローカルからgitHubリポジトリにアクセスするために、ssh-keygenを使用してキーを生成した後、クライアントは* .pubキーをgit hubサーバにコピーします(つまり、公開鍵がサーバにコピーされます)。つまり、サーバーには* .pubキー(たとえばid_rsa.pub)しかありません。この場合、githubサーバーに私の秘密鍵があるとはどういうことが言えますか? URLを参照してくださいhttps://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/ sshのgithubへ – mohamed

+0

@モハメドあなたは署名について話していますこれは秘密鍵で行われ、署名を公開鍵で検証します。 RSAでは、これは基本的に暗号化と同じ操作ですが、他のRSAは特殊なケースです。他の非対称暗号アルゴリズムが暗号化または署名のために存在する。 –

答えて

1

サーバは、クライアントからのメッセージを復号化することができないだけで、公開鍵を持っている場合。大胆で重要な単語言葉で

つのより多くの時間、:サーバーはのみ公開鍵を持っている場合、それはクライアントからのメッセージを解読ないすることができます。

ベリファイメッセージがクライアントによって実行されている可能性があります。

SSH公開鍵認証(RFC 4252, section 7)の場合、これはちょうど交渉されたセッションIDといくつかのコンテキストデータ(クライアントに秘密鍵を持たせる必要があります)に対する署名です。サーバーは、署名検証アルゴリズム(公開鍵のみを必要とする)を実行できます。事前登録された鍵がチェックアウトされると、クライアントは認証される。

RSA鍵の場合は、署名と復号化の処理が数学的に似ているため、一部の用語をゆるやかに使用する可能性がありますが、正確でなければなりません。

  • 暗号化(公開鍵):意図された受信者(秘密鍵の所有者)を除いて皆からそれを閉塞するような方法でコンテンツを変換します。
    • 共通のアルゴリズム:RSA
    • 暗号で暗号化された出力は、伝送中にオリジナルのコンテンツを置き換えます。
    • 公開鍵暗号化は、実際にデータを暗号化する新しく生成された対称鍵を暗号化するために頻繁に使用されます。 RSAの場合、暗号化された出力は鍵のサイズによって制限され、対称アルゴリズムははるかに大きな最大値を持ちます。
  • 復号化(秘密鍵):元の形に暗号操作からコンテンツを変換。
    • 誰でもあなたの公開鍵を持つことができるので、誰でもあなたのためにデータを暗号化できます。
    • 信頼を確立するために暗号化/復号化ペアに固有のものはありません...メッセージは毒薬である可能性があり、誰がそれを書いたのか分からない。
  • ログイン(秘密鍵):誰もができる値を生成する(通常は真のコンテンツのダイジェスト/ハッシュである)入力を超える変換を適用します。
    • 共通のアルゴリズム:RSA、ECDSA、DSA
    • 署名は、コンテンツを提示され、それに代わるものではありません。
  • (公開鍵)を確認:入力とtrue又はfalseもたらす署名上に変換を適用します。
    • ダイジェストがコンテンツ受信者によって個別に計算される場合、署名はコンテンツが改ざんされていないことを示します。
    • 署名が正しいと見なされると、署名が鍵所有者によって生成されたことが証明されます。これは信頼の決定に使用できます。 (キーが侵害されている可能性があります。「キーホルダー」と「元のキーホルダー」は異なる可能性があります)
    • RSAの場合、これは「解読と同様のアルゴリズムを使用してダイジェストを展開してからダイジェストを比較する」 RSAの実装で正しいハッシュが何であるかを示すことができます。
    • DSAとECDSAの場合、ダイジェストは前半から署名の後半を生成する式のBigIntegerとして使用されるため、DSAは正しいダイジェスト値が何であるかを伝えることができません。
関連する問題