Elliptic-Curves
橢圓曲線密碼學可以用公鑰加密並用像RSA這樣的私鑰解密嗎?
我知道 RSA 可以同時用於加密和簽名。歐共體呢?我知道 ECDSA/EdDSA,但據我所知,它只能用於簽名。我也知道 ECDH,但它是一個關鍵協議協議。是否有一些基於橢圓曲線的公鑰加密算法?
是的,有一個基於橢圓曲線的公鑰加密
Let $ a $ 是 Alice 的私鑰和 $ P=[a]G $ 成為她的公鑰。想要向 Alice 發送加密消息的 Bob 執行以下操作:
- Bob 選擇一個隨機數 $ r $ , $ 1\leq r\leq n-1 $ 併計算 $ [r]G $
- 然後 Bob 計算 $ M+[r]P $ . 這裡的消息 $ M $ (二進製字元串)已被表示為一個點 $ \langle G\rangle $
- Bob 發送加密的文本對 $ \langle [r]G,M+[r]P\rangle $ 給愛麗絲
收到此加密文本後,Alice 以下列方式解密
- 愛麗絲提取物 $ [r]G $ 併計算 $ a\cdot([r]G)=r\cdot([a]G)=[r]P $
- Alice 提取該對的第二部分 $ M+[r]P $ 並減去 $ [r]P $ 獲得 $ M+[r]P-[r]P=M $
這樣做有一個缺點,因為在加密之前必須將純文字塊轉換為一個點,表示為 $ M $ 以上。解密後,必須將其重新轉換為純文字。
筆記: $ [r]P $ 是標量乘法,即加法 $ P $ 本身 $ r $ 次。
您可以查找ECIES,它是與橢圓曲線密碼術一起使用的集成加密方案。
它基於DH計算。這意味著它需要一個對稱密碼。基本上你必須使用混合密碼系統。因此它不能在 RSA-PKCS#1 v1.5 或 OAEP 中盡可能直接加密明文。這也意味著它有一些成本(當然,這在很大程度上被小密鑰大小所抵消)。
基本上,IES 將任何 DH 問題轉化為加密方案。您仍然需要選擇密鑰派生函式、密碼和加密模式。據我所知,沒有完全標準化的 IES 這樣的東西。