ちょうどこれについて疑問に思います。機能するためにPKIが必要ですか?
HMACキーは対称キー、つまりバイトの束です。 「対称性」は、次の重要な事実に関連しています。very same keyは、メッセージのHMAC値を生成するためと、メッセージのHMAC値を検証するための両方に使用されます。その意味で、HMACはnot a デジタル署名アルゴリズム です(それにもかかわらず、一部の人々はHMACについての「署名」について話していますが、これは間違っていて混乱しています)。
対称鍵の配布は、次の2つの理由から複雑な作業です。
物事をより簡単にするために、 公開鍵暗号 が発明されました。 非対称暗号とも呼ばれます。デジタル署名とともに使用される場合、署名の生成に使用される鍵は、署名の検証に使用される鍵とは異なります。それらは数学的に相互にリンクされていますが、署名検証鍵から署名生成鍵を再計算することは現実的ではありません(またはそう希望しています)。したがって、後者を公開することができるので、その名前が付けられます。
公開鍵暗号化により、鍵配布の問題が大幅に容易になります。
現在、公開鍵暗号化は、鍵配布を簡単ではなく簡単にします。それでも、ユーザーが適切な公開鍵を使用していることを確認できるような方法を考え出す必要があります。これが [〜#〜] pki [〜#〜] の出番です:PKIは公開鍵を配布するシステムです。
では、実際にはどうなるでしょうか。 SSL/TLS を検討してください。HTTPと組み合わせてよく使用され、HTTPSを生成します。 WebブラウザーがHTTPSを利用したWebサイトに接続する場合:
全体像は、PKIを使用して公開鍵を配布し、次にこれらの公開鍵を非対称暗号化で使用して動的に共有秘密を作成し、その共有秘密をHMACなどの対称アルゴリズムで使用します。 。
したがって、PMACでHMACキーを直接配布することはありません。中間層が1つあります。