Public-Key
依靠私鑰進行身份驗證
我是 Alice,我生成了一個公鑰/私鑰對。我與 Bob 和 Carol 安全、保密地共享我的公鑰,他們與其他各種仁慈的使用者安全、保密地共享它——他們現在都可以向我發送只有我可以解密的加密消息。
我想驗證我收到的加密消息來自已合法發送我的公鑰的使用者。惡意 Mallory 沒有收到我的公鑰,但可以訪問網路並且可以看到我正在發送的加密消息。我需要確保她無法推斷出我的公鑰來向我發送惡意加密消息。
我需要在加密庫中尋找什麼來實現這一點?
我需要在加密庫中尋找什麼來實現這一點?
有多種選擇(從最理想到最不理想):
- 您需要任何公鑰加密方案和任何MAC 算法,並將加密方案的公鑰和 MAC 密鑰作為您的公鑰分發。然後你強制每條消息要麼正確地在密文上應用 MAC(證明擁有密鑰),要麼在整個消息上應用 MAC,然後 MAC 也被加密。
- 您還可以使用靜態身份驗證和 CCA2 安全公鑰加密方案(如 DHIES、ECIES、RSA-KEM 或 RSA-OAEP),並在每條消息前添加一個靜態密鑰來加密它。這在很大程度上依賴於這樣一個事實,即攻擊者無法使用 CCA2 安全性有意義地更改加密消息,並且比使用 MAC 更“不干淨”。
- 您可以使用一種自然隱藏公鑰的方案,例如 DHIES 或 ECIES,其中一個人只能從密文中學習組,但不能從密文中學習公共元素,而不會破壞加密。當然,這是一個不太常見的安全概念,因此必須小心給定方案是否自然滿足它。