2010-06-23 58 views
12

我想知道我是否可以擁有多個公鑰作爲私鑰。PKI多個公鑰

可以這樣做嗎? 如果是這樣,那麼安全問題是什麼!?

如果我基於相同的初始值(沒有初始向量)生成多個密鑰對,那麼密鑰是否應該「兼容」?

+0

這對我而言並不是顯而易見的。你在想什麼方法:RSA,DSA,ECC?我不知道ECC,但我懷疑前兩者是可能的。 – Rup 2010-06-23 08:54:39

+1

恕我直言,從相同的算法和相同的私鑰,你應該每次都得到相同的公鑰。 – Piskvor 2010-06-23 09:05:10

+0

也值得一讀的是亨利克Hellström的答案在http://stackoverflow.com/questions/9375044/can-we-have-multiple-public-keys-with-a-single-private-key-for-rsa – cwd 2014-08-05 03:28:07

回答

6

在我能想到的所有非對稱加密系統中,公鑰和私鑰之間存在1-1對應關係:給定私鑰可以唯一確定公鑰並給出公鑰,可以唯一地確定私鑰(但是從公鑰確定私鑰當然在計算上是不可行的)。

但是,考慮到通常的不對稱方案之一,你可以很容易地創建這樣一個方案:用公鑰創建一個私鑰,只需在普通方案中生成n公鑰 - 私鑰對,並定義「私鑰」私鑰的集合。簽名時用所有私鑰簽名,驗證時嘗試驗證其中一個簽名。加密是通常的操作,解密應該嘗試使用所有密鑰解密(其中一個應該可以工作)。

+0

我會用這句話:給定公鑰,你可以驗證私鑰是唯一可能的私鑰。 – Slartibartfast 2010-06-24 23:26:11

+0

@Slartibartfast:雖然這也是事實,但你總是可以計算出私鑰 - 它只需要很長時間:如果沒有其他的東西,你可以嘗試所有可能的密鑰,但是大多數密碼系統的算法都比它快。 – 2011-01-13 17:47:37

3

這是標準算法無法實現的。

如果您查看RSA中如何生成密鑰對,您首先通過指定公開指數來選擇公鑰,然後生成私鑰。

我想不出多個公鑰的用例。它們是公開的,你可以得到它們中的任何一個,所以它不能真正提高安全性。

+1

它wouldn'提高安全性,但它可以通過使兩個公鑰不可能屬於同一個人是不可能的。 – Ajedi32 2015-05-28 15:48:54

0

不清楚爲什麼你認爲你需要多個公鑰。它可以幫助您瞭解,如果使用公鑰對某些內容進行了加密,則不能使用相同的公鑰對其進行解密。

如果有三個人(A,B,C)和您的公鑰,B和C不能讀取A加密的消息,但您(使用私鑰)可以。

如果您希望能夠發送只有A,B或C中的一個可以讀取的消息,則它們應該各自具有私鑰,並與您共享其公鑰。

這聽起來像你想對待公鑰像私鑰,這可能是一個壞計劃。

-1

私鑰/公鑰具有1-1關係,因此給定私鑰不可能有多個公鑰。

但是,您可以爲同一個公鑰使用3個單獨的證書,如果這是您要查找的類型。

+0

這不是真的..我們可能有多個公鑰。 – 2016-03-17 14:10:18