簡體   English   中英

公鑰和私鑰有何不同?

[英]How are public and private keys different?

我有一個跟進問題給定一個私鑰,是否可以派生它的公鑰?

公鑰和私鑰是否“相同”(在您選擇公開的意義上)或者您可以使用私鑰而不是使用公鑰執行更多操作?

編輯 - 更好地陳述我的問題:

當生成兩個密鑰時,我可以隨機選擇其中一個作為公鑰嗎?

一些論文描述將公鑰和私鑰的角色視為非常對稱,但你絕對不能在現實世界中交換私鑰和公鑰的角色

常用用法

  • 必須使用公鑰進行加密和驗證簽名
  • 私鑰必須用於解密和簽名

有幾個原因:

  • 你不想讓用戶選擇應該發布哪個密鑰,哪個不發布 公鑰在全球發布,您可以將其視為您的公共身份。 當您必須向其他人證明您比其他人更了解此身份時,需要私有部分:您可以閱讀發送給它的消息,您可以簽署可以由知道您的公共ID的任何人驗證的消息。 如果要發布的公鑰/私鑰的哪一部分留給用戶,那么最終用戶將發布這兩部分。 但這不是主要原因。

  • 當你有私鑰時,你真的有兩個密鑰,每個常見的實現,我知道提供工具從私人文件中提取公鑰。 這對pgp,gpg,openssl來說都是如此。 這意味着所謂的私鑰文件存儲私鑰和公​​鑰,如算法中所述。 這是設計的。

例如,使用openssl生成RSA密鑰對的命令序列可以是:

openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key

應該清楚的是,第一個命令在私鑰文件中生成兩個密鑰,並且僅從中提取公鑰。

結果是,如果您的私鑰被破壞,您的密鑰都會受到損害。 另一種方法是安全的,如果您既不知道文件中的公鑰也不知道數學攻擊,則無法推斷出私鑰。

  • 使用私鑰進行加密在數學上是微弱的 :嗯,前一點已經足夠了,但是一些狡猾的用戶可能正在考慮使用非對稱加密技術來保持兩個密鑰的隱藏以便交換數據。 如果你想做那種交流,不要使用對稱加密。 是的,可以使用私鑰來加密消息並使用公共密鑰對其進行解密(這基本上是用於簽名的,但用例不同,因為您還有初始消息)。 這兩個密鑰的內部參數並不相同,密碼學的所有強大性只能用於通常的方向和常用用法。

這實際上取決於你所謂的“私鑰”。 在幾乎所有實際的引用中,知道私鑰的發送者也知道公鑰。 它為其他人提供了公鑰,因此需要了解它。 因此,實質上,“私鑰”將包含“公鑰”信息,或者至少它可以從中派生出來。

通常,您不能交換私鑰和公鑰。 實際上,它們並不總是相同類型(取決於所使用的密碼系統)。 例如,在ECDSA中,您的公鑰是橢圓曲線上的二維“點”,而您的私鑰是數字。

來自http://www.webopedia.com/TERM/P/public_key_cryptography.html

使用兩個密鑰的加密系統 - 每個人都知道的公鑰和只有消息接收者知道的私鑰或秘密密鑰。 當John想要向Jane發送安全消息時,他使用Jane的公鑰來加密消息。 Jane然后使用她的私鑰解密它。

公鑰系統的一個重要元素是公鑰和私鑰的關聯方式是只有公鑰可用於加密消息,只有相應的私鑰可用於解密它們。 此外,如果您知道公鑰,則幾乎不可能推導出私鑰。

不。這就是在PPK世界中生成一密鑰的想法。 您通常使用公鑰加密並使用私鑰解密。 因此,您要與朋友分享公鑰,並要求他們在向您發送銀行帳號時使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM