2010-06-22 114 views
6

到目前爲止,我只看到它用於數字簽名和密鑰協議協議。它可以像RSA一樣用於實際加密數據嗎?有沒有這方面的圖書館?是否可以使用橢圓曲線加密來加密數據?

編輯:

我需要類似RSA的東西。用接收者公鑰對數據進行加密,以便隨後用他的私鑰對其進行解密。

我知道ECDH可以用來發送一個祕密值給某人,但是你不會決定發送什麼數據。與使用ECDH的「常規」DH不同,由此產生的祕密值總是相同,因爲它僅取決於密鑰對。我想我可以使用這個值作爲對稱密碼的一個密鑰,並加密另一個由我選擇的密鑰,並用該密鑰加密數據(如果我想支持多個接收者)。這是一個好方法嗎?

+0

這是一個有趣的查詢。您使用ECC進行密鑰傳輸的最後方法是什麼? – Raj 2011-07-20 12:28:31

回答

4

它可以與ElGamal風格的構造一起使用來加密位。一個更現代的例子是IES方案,在你的情況ECIES。 Bouncycastle支持這個與IESEngine類。特別是first constructor做你似乎試圖做。

+0

這看起來不錯。謝謝。 – stribika 2010-06-23 01:27:32

0

與RSA一樣,ECC也用於加密數據。實際上,這種模式用於密鑰協議。

與RSA相似,ECC相對較慢,因此使用ECC協商會話密鑰並在選擇一個之後切換到對稱密碼更爲常見。

+1

如何像RSA一樣使用?我知道使用ECC的所有密鑰協議都是密鑰協議,而RSA通常用於密鑰傳輸。 – 2010-06-23 00:47:26

+1

你的意思是ECDH?我不這實際上加密數據。你實際上並不決定你發送的祕密數據是什麼。它依賴於兩個關鍵對。我需要像RSA加密電子郵件那樣的選擇隨機對稱密鑰的方法,並使用一個或多個公鑰將其加密。我將編輯這個問題以使其更清楚。 – stribika 2010-06-23 00:55:53

2

橢圓曲線Elgamal加密方案將用於此目的。它使用公鑰加密和相應的私鑰來解密密文。