密碼學之公鑰密碼演算法

2022-09-20 14:03:11 字數 1173 閱讀 8617

​ 公鑰密碼演算法在加密和解密中使用一對不同的金鑰,其中乙個金鑰公開,稱為公鑰,寧乙個金鑰保密,稱為私鑰,且由公鑰求解私鑰計算是不可行的的。顧名思義,公鑰是公開的。

​ 是迄今為止理論上最為成熟完善的公鑰密碼體制。也是目前廣泛應用的公鑰密碼體制。rsa的基礎是數論的尤拉定理,他的安全性依賴於大整數因子分解的困難

互質如兩個正整數,除了1之外就沒有其他公因子,就稱這兩個正整數是互質的。而且並沒有要求這兩個正整數都是質數,如15和4就是互質的。

尤拉函式

求小於x並且和x互質的數的個數。其通式為φ(x) = x(1-1/p1)(1-1/p2)...(1-1/pₙ),其中p1,p2..pn為x的所有質因數,x為不為零的整數。

比如x=16時φ(16) = 16 * (1-1/2) = 8

我們也可以列舉與16互質,且小於16的數: 1,3,5,7,9,11,13,15,個數為8個

而在rsa求金鑰對中就需要用到尤拉函式的乙個性質,即如果p是素數的話,φ(p)=p-1

模反元素

如果兩個正整數a和b互質,那麼一定可以找到整數n,使得ab-1被n整除,或者說ab被n整除的餘數是1。一般在已知其中乙個整數假如是a和整數n的情況下,求另乙個整數b的運算就是模反運算。

其解法包括樸素演算法,輾轉相除法,歐幾里得演算法。

選取兩個不同的大素數p和q

計算n=p*q,並計算n的尤拉函式φ(n)=(p-1)(q-1),也就是求小於n且與n互質的數。

隨機選取正式e

採用模反演算法計算私鑰d,使ed=1(modφ(n)),也就是d=e⁻¹(modφ(n)),也就是(ed-1)能被φ(n)整除

得到公鑰(e,n)和私鑰d

rsa的加密函式很簡單,對於明文m,公鑰(e,n),e(m)=mᵉ(modn)

rsa的解密過程也很簡單移動,對於密文c,私鑰d,d(c)=cᵈ(modn)

公鑰密碼學

相比1976年以前的密碼學思想,公鑰密碼學可以在不直接傳遞金鑰的情況下,完成密文的解密。這個演算法機制啟發了其他科學家,人們認識到,加密和解密可以使用不同的規則,只要這兩種規則之間存在某種對應關係即可,這樣就避免了直接傳遞金鑰。基於這種公鑰機制的思想,開始出現了一系列非對稱加密演算法。下圖比較說明了...

密碼學07 公鑰密碼體制

基本概念和原理 存在乙個金鑰管理中心kmc,其中有乙個公鑰資料庫pkdb,這裡存放使用者的公鑰,許可權為共享,即任何人都能查到別人的公鑰。無論是傳送方a還是接收方b,都有乙個個人公鑰pk和乙個個人私鑰sk,公鑰用於加密,私鑰用於解密。對稱密碼體制的加密和解密演算法都是公開的。數字簽名最常見的實現方法...

公鑰與私鑰,公鑰密碼學

數字簽名是什麼?翻譯 阮一峰 原文 1.鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。2.鮑勃把公鑰送給他的朋友們 帕蒂 道格 蘇珊 每人一把。3.蘇珊要給鮑勃寫一封保密的信。她寫完後用鮑勃的公鑰加密,就可以達到保密的效果。4.鮑勃收信後,用私鑰解密,就看到了信件內容。這裡要強調的是,只要鮑勃的私鑰不洩...