導航:首頁 > 文檔加密 > 如何非對稱加密

如何非對稱加密

發布時間:2025-06-06 17:37:03

① 密碼學基礎(三):非對稱加密(RSA演算法原理)

加密和解密使用的是兩個不同的秘鑰,這種演算法叫做非對稱加密。非對稱加密又稱為公鑰加密,RSA只是公鑰加密的一種。

現實生活中有簽名,互聯網中也存在簽名。簽名的作用有兩個,一個是身份驗證,一個是數據完整性驗證。數字簽名通過摘要演算法來確保接收到的數據沒有被篡改,再通過簽名者的私鑰加密,只能使用對應的公鑰解密,以此來保證身份的一致性。

數字證書是將個人信息和數字簽名放到一起,經由CA機構的私鑰加密之後生成。當然,不經過CA機構,由自己完成簽名的證書稱為自簽名證書。CA機構作為互聯網密碼體系中的基礎機構,擁有相當高級的安全防範能力,所有的證書體系中的基本假設或者前提就是CA機構的私鑰不被竊取,一旦 CA J機構出事,整個信息鏈將不再安全。

CA證書的生成過程如下:

證書參與信息傳遞完成加密和解密的過程如下:

互質關系:互質是公約數只有1的兩個整數,1和1互質,13和13就不互質了。
歐拉函數:表示任意給定正整數 n,在小於等於n的正整數之中,有多少個與 n 構成互質關系,其表達式為:

其中,若P為質數,則其表達式可以簡寫為:

情況一:φ(1)=1
1和任何數都互質,所以φ(1)=1;

情況二:n 是質數, φ(n)=n-1
因為 n 是質數,所以和小於自己的所有數都是互質關系,所以φ(n)=n-1;

情況三:如果 n 是質數的某一個次方,即 n = p^k ( p 為質數,k 為大於等於1的整數),則φ(n)=(p-1)p^(k-1)
因為 p 為質數,所以除了 p 的倍數之外,小於 n 的所有數都是 n 的質數;

情況四:如果 n 可以分解成兩個互質的整數之積,n = p1 × p2,則φ(n) = φ(p1p2) = φ(p1)φ(p2)

情況五:基於情況四,如果 p1 和 p2 都是質數,且 n=p1 × p2,則φ(n) = φ(p1p2) = φ(p1)φ(p2)=(p1-1)(p2-1)

而 RSA 演算法的基本原理就是歐拉函數中的第五種情況,即: φ(n)=(p1-1)(p2-1);

如果兩個正整數 a 和 n 互質,那麼一定可以找到整數 b,使得 ab-1 被 n 整除,或者說ab被n除的余數是1。這時,b就叫做a的「模反元素」。歐拉定理可以用來證明模反元素必然存在。

可以看到,a的 φ(n)-1 次方,就是a對模數n的模反元素。

n=p x q = 3233,3233寫成二進制是110010100001,一共有12位,所以這個密鑰就是12位。

在實際使用中,一般場景下選擇1024位長度的數字,更高安全要求的場景下,選擇2048位的數字,這里作為演示,選取p=61和q=53;

因為n、p、q都為質數,所以φ(n) = (p-1)(q-1)=60×52= 3120

注意,這里是和φ(n) 互互質而不是n!假設選擇的值是17,即 e=17;

模反元素就是指有一個整數 d,可以使得 ed 被 φ(n) 除的余數為1。表示為:(ed-1)=φ(n) y --> 17d=3120y+1,算出一組解為(2753,15),即 d=2753,y=-15,也就是(17 2753-1)/3120=15。

注意,這里不能選擇3119,否則公私鑰相同??

公鑰:(n,e)=(3233,2753)
私鑰:(n,d)=(3233,17)

公鑰是公開的,也就是說m=p*q=3233是公開的,那麼怎麼求e被?e是通過模反函數求得,17d=3120y+1,e是公開的等於17,這時候想要求d就要知道3120,也就是φ(n),也就是φ(3233),說白了,3233是公開的,你能對3233進行因數分解,你就能知道d,也就能破解私鑰。

正常情況下,3233我們可以因數分解為61*53,但是對於很大的數字,人類只能通過枚舉的方法來因數分解,所以RSA安全性的本質就是:對極大整數做因數分解的難度決定了RSA演算法的可靠性。換言之,對一極大整數做因數分解愈困難,RSA演算法愈可靠。

人類已經分解的最大整數是:

這個人類已經分解的最大整數為232個十進制位,768個二進制位,比它更大的因數分解,還沒有被報道過,因此目前被破解的最長RSA密鑰就是768位。所以實際使用中的1024位秘鑰基本安全,2048位秘鑰絕對安全。

網上有個段子:

已經得出公私鑰的組成:
公鑰:(n,e)=(3233,2753)
私鑰:(n,d)=(3233,17)
加密的過程就是

解密過程如下:

其中 m 是要被加密的數字,c 是加密之後輸出的結果,且 m < n ,其中解密過程一定成立可以證明的,這里省略證明過程。

總而言之,RSA的加密就是使用模反函數對數字進行加密和求解過程,在實際使用中因為 m < n必須成立,所以就有兩種加密方法:

對稱加密存在雖然快速,但是存在致命的缺點就是秘鑰需要傳遞。非對稱加密雖然不需要傳遞秘鑰就可以完成加密和解密,但是其致命缺點是速度不夠快,不能用於高頻率,高容量的加密場景。所以才有了兩者的互補關系,在傳遞對稱加密的秘鑰時採用非對稱加密,完成秘鑰傳送之後採用對稱加密,如此就可以完美互補。

② 非對稱加密演算法有哪些

非對稱加密演算法,也稱公鑰加密,通過公鑰加密數據和私鑰解密數據,實現數據的安全傳輸。其中,RSA加密是廣泛應用的演算法,它的安全基於大數分解的難度。

ElGamal加密也是非對稱加密的一種,它通過公鑰加密和私鑰解密,其安全性基於離散對數問題的難度。與RSA相比,ElGamal在某些特定場景下可能具有優勢。

ECC加密,即橢圓曲線密碼,具有更高的安全性,同時密鑰長度較短。它的安全性基於橢圓曲線上的離散對數問題,使得在相同安全性水平下,ECC相比RSA和ElGamal可以使用更短的密鑰長度,節省計算資源。

Diffie-Hellman密鑰交換則是用於在兩個通信方之間協商一個共享密鑰的非對稱加密方式。它同樣基於離散對數問題的難度,為安全地在雙方間建立通信提供了可能。

以上這些非對稱加密演算法各有特點和適用場景,實際應用時需根據具體需求選擇合適的加密方式。正確選擇和使用非對稱加密演算法,對於保護數據安全至關重要。

③ 如何用通俗易懂的話來解釋非對稱加密

在採用對稱密鑰體系時,加密與解密採用相同的演算法和密鑰,這就說明收發雙方需要保存有相同密鑰。這就需要一個安全的通道來傳遞這個密鑰,但實際上這樣安全的通道是不方便的或者沒有的。所以就有了非對稱形式的(不同的密鑰)。公鑰是公開的,私鑰則只有接受者才有,這樣就不必傳遞私鑰了,更安全了。基本的數學原理?

加解密過程由單向陷門函數實現。單向陷門函數是指由已知的y=f(x)和x求出y是簡單的,但是已知y=f(x)和y求出x是困難的。當前工程應用大都基於大數分解,離散對數和橢圓曲線此類數學難題。

④ 使用非對稱加密及解密的過程詳解

前面我們知道對稱加密是對一份文件進行加密,且對應的只有一個密碼?例如:A有一份文件,她使用對稱加密演算法加密後希望發給B,那麼密碼肯定也要一起交給B!這中間就會出現安全隱患,如果密碼被第三方L嗅探到並截取,那麼加密的文件就赤裸裸的出現在L的面前。

如果A有很多文件需要加密並發送給很多人!那麼就會生成很多的密鑰,這么多的密鑰保管就成了一個很棘手的問題,況且還要把密鑰發給不同的人!這無疑增添了很多的風險!

如何能改善這種安全性不高的加密演算法,數學家們發現了另一種加密方式。稱之為《非對稱加密》asymmetric encryption。非對稱加密演算法需要兩個密鑰【公開密鑰】(publickey)和【私有密鑰】(privatekey)。下面簡稱【公匙】、【私匙】

【公鑰】與【私鑰】是一對,如果使用公開密匙對數據進行加密,那麼只有對應的私有密匙才能解密;相反,如果使用私有密匙對數據進行加密,那麼只有對應的公開密匙進行解密。因加密解密使用的是兩種不同的密匙,所以這種演算法稱之為【非對稱加密演算法】。

在使用非對稱加密前,A和B先各自生成一對公匙和私匙,然後把各自的公匙交給對方,並把自己的私匙妥善保管!如圖所示:

在A給B發送信息之前,首先使用B發給A的公匙對信息進行加密處理,然後發送給B,B在收到密文之後,使用自己的私匙解密;B在給A回復信息時,先使用A發來的公匙對回復信息加密,然後發出,A收到密文後使用自己的私匙解密即可!如圖所示:

⑤ 非對稱加密演算法有哪些

非對稱加密演算法主要包括RSA、Elgamal、背包演算法、Rabin、D-H、ECC(即橢圓曲線加密演算法)等。

首先,我們來理解什麼是非對稱加密演算法。非對稱加密演算法是一種使用兩個不同密鑰進行加密和解密的演算法,這兩個密鑰分別是公鑰和私鑰。公鑰是公開的,任何人都可以用其進行加密操作,但解密則必須使用與之配對的私鑰,而私鑰是保密的,只有密鑰對的所有者才知曉。這種演算法的安全性主要依賴於從公鑰推導出私鑰的困難性。

RSA是非對稱加密演算法中最著名且應用最廣泛的一種。RSA演算法基於大數分解問題的困難性,其安全性隨著密鑰長度的增加而增強。在RSA加密過程中,發送方使用接收方的公鑰對信息進行加密,接收方則使用自己的私鑰進行解密,從而確保了信息的保密性。此外,RSA還可以用於數字簽名,驗證信息的完整性和發送者的身份。

除了RSA,ECC(橢圓曲線加密演算法)也是近年來備受關注的非對稱加密演算法。ECC基於橢圓曲線離散對數問題的困難性,與RSA相比,其在達到相同安全級別時所需的密鑰長度更短,因此更適合在資源有限的環境中使用,如移動設備或物聯網設備。ECC的高效性和靈活性使其在現代密碼學中佔有重要地位。

總的來說,非對稱加密演算法以其獨特的公私鑰機制和強大的安全性,在數據安全領域發揮著不可替代的作用。無論是廣泛應用於網路通信的RSA,還是高效靈活的ECC,都在保護我們的數據安全方面做出了巨大貢獻。隨著技術的不斷發展,非對稱加密演算法將繼續演化,為我們的生活帶來更多便利和安全保障。

另外,值得注意的是,雖然非對稱加密演算法具有很高的安全性,但在實際應用中仍需結合其他安全措施,如定期更換密鑰、使用強密碼等,以構建一個多層次、全方位的安全防護體系。同時,隨著量子計算的快速發展,傳統的非對稱加密演算法可能面臨新的挑戰,因此密碼學領域的研究者也在不斷探索和研發新的抗量子密碼演算法,以應對未來可能出現的安全威脅。

⑥ 非對稱加密演算法包括哪些

以下是幾種常見的非對稱加密演算法:

1、RSA演算法:RSA演算法是最早被廣泛使用的非對稱加密演算法之一,它利用質數分解的困難性,通過生成公鑰和私鑰來實現加密和解密。

4、ElGamal演算法:ElGamal演算法是一種基於離散對兆豎數問題的加密演算法,它被廣泛應用於數字簽名和加密通信等領域。

閱讀全文

與如何非對稱加密相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:55
Windows常用c編譯器 瀏覽:774
關於改善國家網路安全的行政命令 瀏覽:828
安卓如何下載網易荒野pc服 瀏覽:648
javainetaddress 瀏覽:97
蘋果4s固件下載完了怎麼解壓 瀏覽:996
命令zpa 瀏覽:279
python編譯器小程序 瀏覽:938
在app上看視頻怎麼光線調暗 瀏覽:534
可以中文解壓的解壓軟體 瀏覽:586
安卓卸載組件應用怎麼安裝 瀏覽:906
使用面向對象編程的方式 瀏覽:333
程序員項目經理的年終總結範文 瀏覽:922
內衣的加密設計用來幹嘛的 瀏覽:426
淮安數據加密 瀏覽:289
魔高一丈指標源碼 瀏覽:977
松下php研究所 瀏覽:164
c回調java 瀏覽:394
夢幻端游長安地圖互通源碼 瀏覽:740
電腦本地文件如何上傳伺服器 瀏覽:307