2013-07-12 152 views
0

是否可以通過私鑰解密由公鑰加密的消息?是使用相同算法生成的公鑰和私鑰?

可以通過公鑰解密私鑰解密的消息嗎?

公鑰和私鑰是否使用相同的算法生成?

+1

你在說什麼密碼系統/加密? – Shark

+0

在RSA加密中 – MKT

+0

使用私鑰加密消息通常不是一項有用的操作。您應該使用私鑰簽名或解密,並使用公鑰進行加密和驗證。每次使用適當的填充是絕對必要的。即,儘管兩者使用相同的密鑰,簽名和解密仍然非常不同。 – CodesInChaos

回答

1

問:是否使用相同的算法生成公鑰和私鑰?

一般來說它們是而不是使用相同的算法生成。對於RSA,它們可能是相同的,但大多數密碼學庫使用已知的公開指數。這意味着如果知道私鑰很容易推斷公鑰。在許多密鑰格式中,公鑰是,包含在私鑰中,或者可以從私鑰格式的信息容易地計算。

請注意,在公共指數與私有指數具有儘可能多的熵的情況下,理論上可以生成密鑰對。一些HSM確實允許這樣的操作。

總而言之,不能爲了加密目的而犧牲安全性而切換密鑰。

問:用私鑰加密的消息可以用公鑰解密嗎?

理論上,如果你的加密庫允許的話,情況就是這樣。然而,大多數圖書館不允許這樣做。首先,如上所述,這不是安全的操作。此外,許多圖書館會認爲用私鑰加密的東西應該使用填充模式來生成數字簽名。在這種情況下,解密可能會失敗;如果它不是你的密文是不安全的 - 所以這可能更糟。

從PKCS#1規範:


主要的數學運算在每個基元是冪, 如在第5.1節的加密和解密原語。RSASP1 和RSAVP1與RSADP和RSAEP相同,除了名稱爲 的輸入和輸出參數;它們的區別在於它們是用於不同目的的 。


被之前進行加密和簽名生成施加原始不同顯著填充機制。

問:用公鑰加密的消息是否可以用私鑰解密?

這是非對稱加密的基本思想。這意味着「是」。

+0

爲什麼投票結束然後回答?你是正確的投票,我懷疑這個問題將被遷移... –

+1

@DuncanJones我沒有打算,但後來我看到了另外兩個答案。 –

-1

按相應順序:是,是和是。

實際上,只有公鑰可以解密私鑰加密的任何內容,反之亦然。

另請注意,名稱「公共」和「私人」只是任意的。只是對不對稱密鑰對的最佳使用是讓其中一個祕密,其他人知道其他人,所以:

  • 帶公鑰的人可以向您發送只有您可以解密的消息私人的;
  • 你可以發送只能用你的公鑰解密的消息,所以人們知道你是真正的作者。
+0

*通常* RSA公鑰和私鑰不是使用相同的方法創建的。他們*可以*以相同的方式計算,但公共指數通常是預先配置的值,如3,7或費馬的第四個數字(65537)。這意味着如果你知道你也知道公鑰的私鑰。當然,如果您的私鑰包含密鑰對生成參數,情況也是如此。 –