版權歸原作者所有,如有侵權,請聯(lián)系我們

[科普中國]-公鑰

科學百科
原創(chuàng)
科學百科為用戶提供權威科普內容,打造知識科普陣地
收藏

公鑰(Public Key)與私鑰(Private Key)是通過一種算法得到的一個密鑰對(即一個公鑰和一個私鑰),公鑰是密鑰對中公開的部分,私鑰則是非公開的部分。公鑰通常用于加密會話密鑰、驗證數(shù)字簽名,或加密可以用相應的私鑰解密的數(shù)據(jù)。通過這種算法得到的密鑰對能保證在世界范圍內是獨一的。使用這個密鑰對的時候,如果用其中一個密鑰加密一段數(shù)據(jù),必須用另一個密鑰解密。比如用公鑰加密數(shù)據(jù)就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不會成功。1

歷史1976年。當時在美國斯坦福大學的迪菲(Diffie)和赫爾曼(Hellman)兩人提出了公開密鑰密碼的新思想(論文"New Direction in Cryptography"),不僅加密算法本身可以公開,甚至加密用的密鑰也可以公開。但這并不意味著保密程度的降低。因為加密密鑰和解密密鑰不一樣。這就是著名的公鑰密碼體制。也稱作非對稱密碼體制。不同于對稱性的密碼學, 在于其加密鑰匙只適用于單一用戶。1

兩部分一把私有的鑰匙,僅有用戶才擁有。3

一把公開的鑰匙,可公開發(fā)行配送,只要有要求即取得。3

每支鑰匙產生一個被使用來改變屬性的功能。私有的鑰匙產生一個私有改變屬性的功能,而公開的鑰匙 產生一個 公開改變屬性的功能。這些功能是反向相關的,例如,如果一個功能是用來加密消息,另外一個功能則被用來解密消息。不論此改變屬性功能的次序為何皆不重要。公開鑰匙系統(tǒng)的優(yōu)勢是兩個用戶能夠安全溝通而不需交換秘密鑰匙。例如,假設一個送信者需要傳送一個信息給一個收信者,而信息的秘密性是必要的, 送信者以收信者的公開的鑰匙來加密,而僅有收信者的私有的鑰匙能夠對此信息解密。公開的鑰匙密碼學是非常適合于提供認證,完整和不能否認的服務, 所有這些服務即是我們所知的數(shù)字簽名。3

公鑰私鑰的原則一個公鑰對應一個私鑰。3

密鑰對中,讓大家都知道的是公鑰,不告訴大家,只有自己知道的,是私鑰。1

如果用其中一個密鑰加密數(shù)據(jù),則只有對應的那個密鑰才可以解密。1

如果用其中一個密鑰可以進行解密數(shù)據(jù),則該數(shù)據(jù)必然是對應的那個密鑰進行的加密。1

RSARSA公鑰系統(tǒng)發(fā)明于新思想提出后一年在麻省理工學院,里維斯特(Ronald Rivest)、沙米爾(Adi Shamir)和阿德勒曼(Len Adleman)提出第一個較完善的公鑰密碼體制——RSA體制,由三位發(fā)明人的姓氏首字母命名。這是一種建立在大數(shù)因子分解基礎上的算法。它是第一個成熟的、迄今為止理論上最成功的公鑰密碼體制。它的安全性是基于數(shù)論中的大整數(shù)因子分解。該問題是數(shù)論中的一個困難問題,沒有有效的算法,(即大整數(shù)因子分解不能在多項式時間內完成)這使得該體制具有較高的保密性。3并且得到了廣泛應用。不為人知的是,早在1970年的秘密研究中,英國情報機構GCHQ的數(shù)學家James H. Ellis便已發(fā)明非對稱鑰匙密碼學,而且Diffie-Hellman與RSA都曾被Malcolm J. Williamson與Clifford Cocks分別發(fā)明于前。這兩個最早的公鑰系統(tǒng)提供優(yōu)良的加密法基礎,因而被大量使用。其他公鑰系統(tǒng)還有Cramer-Shoup、Elgamal、以及橢圓曲線密碼學等等。這些事件直到1997年歷史文件解密的時候才為大眾所知。1

貢獻除了加密外,公開鑰匙密碼學最顯著的成就是實現(xiàn)了數(shù)字簽名。數(shù)字簽名,顧名思義,就是使普通簽章的數(shù)字化,他們的特性都是某人可以輕易制造簽章,但他人卻難以仿冒。數(shù)字簽名可以永久地與被簽署信息結合,無法自信息上移除。1數(shù)字簽名大致包含兩個算法:一個是簽署,使用私密鑰匙處理信息或信息的哈希值而產生簽章;另一個是驗證,使用公開鑰匙驗證簽章的真實性。RSA和DSA是兩種最流行的數(shù)字簽名機制。數(shù)字簽名是公開鑰匙基礎建設(public key infranstructures, PKI)以及許多網絡安全機制(SSL/TLS, VPNs等)的基礎。2

公開鑰匙算法大多基于計算復雜度上的難題,通常來自于數(shù)論。例如,RSA源于整數(shù)因子分解問題;DSA源于離散對數(shù)問題。發(fā)展快速的橢圓曲線密碼學則基于和橢圓曲線相關的數(shù)學難題,與離散對數(shù)相當。由于這些底層的問題多涉及模數(shù)乘法或指數(shù)運算,相對于分組密碼需要更多計算資源。因此,公開鑰匙系統(tǒng)通常是復合式的,內含一個高效率的對稱鑰匙算法,用以加密信息,再以公開鑰匙加密對稱鑰匙系統(tǒng)所使用的鑰匙,以增進效率。2

本詞條內容貢獻者為:

尚軼倫 - 副教授 - 同濟大學數(shù)學科學學院