實現數位簽章有很多方法,目前數位簽章採用較多的是公鑰加密技術,1994年美國標準與技術協會公佈了數位簽章標準而使公鑰加密技術廣泛應用。
公鑰加密系統所採用的是不對稱加密演算法。其中DES屬於對稱加密演算法,EDI不屬於加密演算法,RSA與13SA皆屬於非對稱加密演算法,它是第一個既能用於資料加密也能用於數位簽章的演算法。它易於理解和操作,安全性較高,相當常用。
RSA加密演算法是一種非對稱加密演算法。在公開密鑰加密和電子商業中RSA被廣泛使用。 (建議學習:web前端視訊教學)
RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。
當時他們三人都在麻省理工學院工作。 RSA就是他們三人姓氏開頭字母拼在一起組成的。
1973年,在英國政府通訊總部工作的數學家克利福德·柯克斯(Clifford Cocks)在一個內部文件中提出了一個相同的演算法,但他的發現被列入機密,一直到1997年才發表。
對極大整數做因數分解的難度決定了RSA演算法的可靠性。換言之,對一極大整數做因數分解愈困難,RSA演算法愈可靠。假如有人找到一種快速因數分解的演算法的話,那麼用RSA加密的資訊的可靠性就肯定會極度下降。
但找到這樣的演算法的可能性是非常小的。今天只有短的RSA鑰匙才可能被強力方式解開。到目前為止,世界上還沒有任何可靠的攻擊RSA演算法的方式。只要其鑰匙的長度夠長,用RSA加密的資訊其實是不能解破的。
1983年麻省理工學院在美國為RSA演算法申請了專利。這個專利2000年9月21日失效。由於演算法在申請專利前就已經被發表了,在世界上大多數其它地區這個專利權不被承認。
RSA公開金鑰密碼體制。所謂的公開金鑰密碼體制就是使用不同的加密金鑰與解密金鑰,是一種「由已知加密金鑰推導出解密金鑰在運算上是不可行的」密碼體制。
在公開金鑰密碼體制中,加密金鑰(即公開金鑰)PK是公開訊息,而解密金鑰(即秘密金鑰)SK是需要保密的。加密演算法E和解密演算法D也都是公開的。雖然解密金鑰SK是由公開金鑰PK決定的,由於無法計算出大數n的歐拉函數phi(N),所以不能根據PK計算出SK。
正是基於這個理論,1978年出現了著名的RSA演算法,它通常是先生成一對RSA 金鑰,其中之一是保密金鑰,由用戶保存;另一個為公開金鑰,可對外公開,甚至可在網頁伺服器中註冊。
為提升保密強度,RSA金鑰至少為500位元長,一般建議使用1024位元。這就使加密的計算量很大。為減少計算量,在傳送訊息時,常採用傳統加密方法與公開密鑰加密方法結合的方式,即資訊採用改進的DES或IDEA密鑰加密,然後使用RSA密鑰加密對話密鑰和資訊摘要。對方收到訊息後,用不同的金鑰解密並可核對資訊摘要。
RSA演算法是第一個能同時用於加密和數位簽章的演算法,也容易理解和操作。 RSA是被研究得最廣泛的公鑰演算法,從提出到現今的三十多年裡,經歷了各種攻擊的考驗,逐漸為人們接受,截止2017年被普遍認為是最優秀的公鑰方案之一。
以上是目前常用的數位簽章演算法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!