公鑰加密初學者指南
電子通訊中對保密性的關鍵需求使得使用編碼語言成為必要。明文很容易理解。密碼學意味著一種秘密語言。演算法結合數學和計算機系統,透過金鑰提供保護。金鑰可以是公開的和私有的。對稱加密使用傳送方和接收方都使用的相同型別的金鑰。非對稱加密使用兩種型別的金鑰,公鑰和私鑰,公鑰用於加密,私鑰用於解密。
什麼是公鑰加密?
大眾傳播是指數千使用者透過數字網路傳送和接收訊息。公鑰加密使用兩套金鑰。目的是很好地保護訊息免受非法訪問。這就是欺詐和駭客攻擊(正在上升)中發生的情況。認證機構提供公鑰和私鑰以提供更好的保護。在傳送時,訊息使用公鑰加密。公鑰可能是許多使用者已知的。訊息被接收並使用除了接收者之外的任何人都不知道的金鑰解密。
加密金鑰,對稱和非對稱
金鑰是指用於對訊息進行加密以防止其被理解的資料片段。它可以是數字和/或字母。當明文使用加密演算法加密時,它看起來很荒謬。正確的金鑰將以明文形式恢復原始訊息,稱為解密。如果訊息是 GOOD NEWS,金鑰是 abc123yz789,則加密的訊息可能顯示為 Xydfger28765。一旦使用正確的金鑰將其解密回 GOOD NEWS,它就有意義了。
因此,明文加金鑰等於密文。
GOOD NEWS 加 abc123yz789 等於 Xydfger28765
Xydfger28765 加 abc123yz789 等於 GOOD NEWS
該示例表示使用單個金鑰的對稱加密。公鑰加密使用兩個金鑰來增強安全性。公鑰加密,私鑰解密訊息。
RSA 加密演算法
在幾種加密方法中,RSA 演算法經常使用公鑰來保護訊息。網際網路和電子郵件沒有得到如此強化,但 RSA 演算法提供了像堡壘一樣的強大安全性。其優勢在於雙重金鑰確保了保密性。
RSA 優勢
透過 RSA 系統確保對敏感資料的超高安全性。此過程的安全性由私鑰的保密性提供。在沒有隻有接收者擁有的私鑰的情況下,沒有人能夠破解資料。例如,重要的銀行資訊,使用者應該將私鑰對每個人保密。如果保密性丟失,資料將面臨網路犯罪分子的危險,並且可能會被濫用。
公鑰還提供無法拒絕的文件數字簽名。在公鑰加密系統中,使用者必須保護私鑰。如果私鑰洩露,則可能存在一個或多個使用者濫用的風險。
尤其是在涉及大量使用者的場景中,例如社交媒體,公鑰加密發揮著重要作用。透過數字簽名和兩種型別的金鑰(其中一個金鑰是秘密的)來維護保密性,並且使用者身份保持安全。
有效性和大規模實用性導致了公鑰的廣泛接受。它避免了與對稱金鑰相關的風險。公鑰的大小和規模可以隨更高的安全性和減少洩露和非法手段干擾的風險而變化。大型組織已經批准了公鑰。如今,許多行業中的應用程式廣泛使用公鑰。
公鑰加密如何幫助通訊?
掩蓋或隱藏原始訊息是加密和解密的功能。在訊息傳輸過程中,人們需要幫助理解含義。此外,訊息的傳送者不能否認訊息已傳送。訊息不能被新增或刪除更改。免費分發公鑰不會帶來任何危險,因為只有私鑰才能開啟訊息。公鑰比對稱金鑰加密更復雜,需要更多的數學計算。對於訊息中大量資料的需求,公鑰加密可能不適用。公鑰加密也可用於傳送用於解密附加資料的對稱金鑰。
私鑰-公鑰過程
遵循 RSA 過程的反面也成功地工作。使用私鑰加密的訊息可以傳送以由公鑰解密。關於可能落入壞人之手的重要資料,存在更好的策略。透過公開,這意味著任何普遍知道的資訊,例如新聞媒體公告。然而,支援私鑰加密的一點是接收者確信誰傳送了訊息。電子商務廣泛使用此類方法。
TLS 和 SSL 公鑰用途
TLS 或傳輸層安全性在透過網際網路傳輸期間的資料安全性方面改進了 SSL 或安全套接字層。網站擁有 TSL/SSL 證書,告知眾多使用者公鑰。該網站擁有伺服器上找到的私鑰。TLS 握手意味著交換相互驗證並確認會話金鑰的訊息。有了協議,第三方就無法窺探筆記。敏感資料(如密碼和信用卡號)需要使用公鑰和私鑰的 RSA 安全性。
PKC 多樣化的應用
數字世界執行在廣泛的軟體系統和各種應用程式上,這些應用程式正在變得普遍。一個方面將它們統一起來,那就是對保密性的需求。確認 Red Hat Linux 軟體包等作業系統的數字簽名需要公鑰。PGP 和 MIME 是需要公鑰的電子郵件加密方法。當文件需要數字簽名時,就需要 PKI。SSL 和 SSH 協議需要 PKI。RFC 3161 型別原始時間戳也需要它。
公鑰基礎設施
真正的證書頒發機構頒發金鑰對。註冊機構確認使用者身份。PKI 準備數字證書以驗證公司或個人。現在,網際網路上的交易可以順利進行。強大的儲存位置使用證書管理系統儲存公鑰和證書。
結論
安全程式適用於生活的各個領域,尤其是在包含寶貴資訊(如數字宇宙)的敏感領域。RSA 公鑰加密使用一對公鑰和私鑰,透過在傳送和接收時進行加密和解密來提供出色的電子訊息安全性。毫不奇怪,該系統在 1970 年代開始獲得全球認可後,現在在全球範圍內得到實踐。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP