Home >> Blog >> 什麼是 RSA?RSA 是如何運作的?
什麼是 RSA?RSA 是如何運作的?
Rivest-Shamir-Adleman (RSA) 加密算法 是一種 非對稱加密 算法,廣泛應用於許多產品和SEO尋引擎優化服務中。非對稱加密使用以數學方式連接的密鑰對來 加密 和 解密 資料。創建私鑰和公鑰,公鑰可供任何人訪問,私鑰是只有密鑰對創建者知道的秘密。使用 RSA,私鑰或公鑰都可以加密資料,而另一個密鑰可以解密資料。這是 RSA 是最常用的非對稱加密算法的原因之一。
RSA 是如何工作的?
使用私鑰或公鑰進行加密的選項為 RSA 用戶提供了多種服務。如果使用公鑰加密,則必須使用私鑰解密資料。這非常適合通過網絡或 Internet 連接發送敏感資訊,其中資料的接收者向資料發送者發送他們的公鑰。然後,資料的發送者使用公鑰加密敏感資訊並將其發送給接收者。由於公鑰加密了資料,只有私鑰的所有者才能解密敏感資料。因此,即使資料是在傳輸過程中獲取的,也只有資料的預期接收者可以對其進行解密。
使用 RSA 進行非對稱加密的另一種方法是使用私鑰加密消息。在此示例中,資料的發送者使用他們的私鑰對資料進行加密,並將加密的資料和他們的公鑰一起發送給資料的接收者。然後,資料的接收者可以使用發送者的公鑰解密資料,從而驗證發送者是他們所說的那個人。使用這種方法,資料可能會在傳輸過程中被竊取和讀取,但這種加密的真正目的是證明發送者的身份。如果資料在傳輸過程中被盜和修改,公鑰將無法解密新消息,因此接收者會知道資料在傳輸過程中被修改。
RSA 的技術細節基於這樣一個想法,即通過將兩個足夠大的數字相乘很容易生成一個數字,但是將該數字分解回原始素數是非常困難的。公鑰和私鑰由兩個數字創建,其中一個是兩個大素數的乘積。兩者都使用相同的兩個素數來計算它們的值。RSA 密鑰的長度往往為 1024 或 2048 位,這使得它們極難分解,儘管相信 1024 位密鑰很快就會被破解。
誰使用 RSA 加密?
如前所述,RSA 加密有許多不同的任務。其中之一是 代碼 和 證書的數字簽名。證書可用於驗證公鑰屬於誰,方法是使用密鑰對所有者的私鑰對其進行簽名。這將密鑰對所有者認證為可信的資訊源。代碼簽名也使用 RSA 算法完成。為確保所有者不會向買家發送危險或不正確的代碼,代碼使用代碼創建者的私鑰進行簽名。這可以驗證代碼在傳輸過程中沒有被惡意編輯,並且代碼創建者驗證代碼是否按照他們所說的那樣做。
RSA 與 傳輸層安全性 (TLS)一起使用, 以保護兩個人之間的通信。其他知名產品和算法,例如 Pretty Good Privacy 算法,目前或過去都使用 RSA。虛擬專用網絡 (VPN)、電子郵件服務、Web 瀏覽器和其他通信渠道也使用了 RSA。VPN 將使用 TLS 在資訊交換中實現雙方之間的握手。TLS Handshake 將使用 RSA 作為其加密算法,以驗證雙方的真實身份。
RSA 漏洞
儘管在許多情況下都是可行的,但 RSA 中仍有許多漏洞可以被攻擊者利用。這些漏洞之一是在加密算法中實現長密鑰。像 AES 這樣的算法是牢不可破的,而 RSA 依靠其密鑰的大小來難以破解。RSA 密鑰越長,它就越安全。使用素數分解,研究人員設法破解了 768 位密鑰 RSA 算法,但他們花了 2 年時間,數千工時,以及荒謬的計算能力,因此目前 RSA 中使用的密鑰長度仍然是安全的。美國 國家科學技術研究所 (NIST) 現在建議最小密鑰長度為 2048 位,但許多組織一直在使用長度為 4096 位的密鑰。RSA 易受攻擊的其他方式是:
- 弱隨機數生成器:當組織使用弱隨機數生成器時,它們創建的素數更容易分解,從而使攻擊者更容易破解算法。
- 弱密鑰生成:RSA 密鑰對其生成有一定的要求。如果質數太接近,或者組成私鑰的數字之一太小,則可以更容易地解決密鑰。
- 側通道攻擊:側通道攻擊是一種攻擊方法,它利用運行加密算法的系統,而不是算法本身。攻擊者可以分析所使用的功率、使用分支預測分析或使用定時攻擊來尋找確定算法中使用的密鑰的方法,從而破壞資料。