Just a Memo

_φ(・_・

通信における秘密性(Secrecy)と信頼性(Authentication)

通信において秘密性と信頼性について備忘録

 

秘密性とは => 受け取るメッセージが他の誰にも知られないこと

信頼性とは => 受け取るメッセージが予想される人物から送られていること

 

例えばアリスがボブにメッセージを送るとする

ボブは、

①送られたメッセージがアリスから送られたということ (信頼性)

②送られたメッセージが他の誰にも解読されていないこと (秘密性)

を確認したい

 

①を確認する場合

アリスが自身の秘密鍵で暗号化したメッセージ (i.e. E(M,Sa) )を送信すれば良い

✓ Saで暗号化できるのはアリスだけなので、メッセージを送ったのはアリス本人

 

②を確認する場合

アリスはボブの公開鍵を使い暗号化したメッセージ (i.e. E(M,Pb) )を送信すれば良い

✓Pbで暗号化されたメッセージはSbでしか解読できないため、暗号化されたメッセージを知れるのはボブ本人だけ

 

そして①と②の両方を確保したい場合:

アリスは秘密性と信頼性を確保したメッセージの両方を送れば良い

=> ( E(M,Pb) , E(H(m), Sa) )

まずボブは自身の秘密鍵Sbを使いE(M,Pb)を解読しメッセージMを入手

次にアリスの公開鍵を使いハッシュ化されたメッセージH(m)を入手

最後にMを自身でハッシュ化しH(m)と合致すれば、メッセージはアリスから送られて、秘密性も担保されているということになる。

 

なお、アリスはハッシュ化せずE(M, Sa)のまま送りそれぞれのメッセージMを比較しても良い

ではなぜハッシュ値なのか、というとメッセージをそのまま送信するよりバイト数が少ないから( sizeof(M) << sizeof( H(m)) )、ということである。