關於 TLS 對稱加密部分的問題
在 TLS 中,我們使用 DHKE 建立會話密鑰,然後使用對稱加密使用會話密鑰加密實際通信。在閱讀 DHKE 時,我了解到您可以將密鑰用作 AES 密鑰並使用 AES 加密會話。或者你可以使用像 Elgamal 加密這樣的東西。
那麼在實踐中,更常用的是什麼?它是像 AES 還是像 Elgamal 一樣?
與 Elgamal 相比,AES 似乎相當複雜 - Elgamal 只是與密鑰模數相乘。那麼,它如何提供與 AES 相當的安全性以及它的所有 s-box、p-box 等呢?是因為對於每條消息,Elgamal 都使用了一個新的會話密鑰嗎?
我了解到您可以將密鑰用作 AES 密鑰並使用 AES 加密會話。或者你可以使用像 Elgamal 加密這樣的東西。
Elgamal 加密可以直接與靜態私鑰一起使用。密鑰類型與用於(靜態或臨時)Diffie-Hellman 的密鑰類型相同。但是,無論是在空間方面還是在 CPU 方面,它都不會高效。
那麼在實踐中,更常用的是什麼?它是像 AES 還是像 Elgamal 一樣?
AES 使用得更多。Elgamal 使用不多,因為即使與使用 PKCS#1 或 ECIES 的 RSA 加密相比,它也有缺點。一個主要問題是將消息映射到循環組 G,另一個是所需的密文擴展。
與 Elgamal 相比,AES 似乎相當複雜 - Elgamal 只是與密鑰模數相乘。
不,那過於簡單化了,請查看有關 Elgamal 加密的 Wikipedia 頁面。請注意,這些計算使用了巨大的數字。對這些巨大值的取冪和乘法並不是很快。而且,不幸的是,與 DH 不同,將 Elgamal 與橢圓曲線一起使用並不容易 - ECIES 對於使用橢圓曲線進行加密更有用。
那麼,它如何提供與 AES 相當的安全性以及它的所有 s-box、p-box 等呢?是因為對於每條消息,Elgamal 都使用了一個新的會話密鑰嗎?
不,Elgamal 根本不與會話密鑰一起使用。會話密鑰是從共享密鑰派生的對稱密鑰。Elgamal 用於非對稱加密。如前所述,AES 現在通常用於經過身份驗證的加密,它提供語義安全,這在傳輸協議中非常重要。