rsa演算法安全瓶頸
rsa演算法的乘法同態特性
rsa第一次在r.l. rivest,a. shamir和l. adleman的2023年的**《a method for obtaining digital signatures and public key cryptosystems》中,作為一種新的數字簽名和公鑰密碼學演算法提出,rsa分別取三位作者姓氏首字母組成。
rsa演算法是非對稱加密演算法中的重要組成成員之一,其主要安全壁壘在於兩個大素數乘積的因式分解難度。
rsa演算法的關鍵流程為:
1)p,q:任意的兩個素數(保密,不對外洩露)
2)n:=pq(對外已知,與e一起組成公鑰)
3)d:1~n-1之間的隨機數(僅對金鑰所有者已知,實際即為私鑰)
4)e:滿足de≡1(mod (p-1)*(q-1)) (對外已知,與n一起組成公鑰)
rsa非對稱加密演算法中的公鑰為(e,n),私鑰為d。其中的素數p和q應對任何人均不可知。
通過公鑰(e,n)對訊息m(m值的範圍為0~n-1)進行加密,
加密後的訊息c(c值的範圍為0~n-1)為:
c=e(m):=(me)%n
通過私鑰對密文c進行解密:
d( c):=(cd)%n
具體解密實現的數學依據為:
∵ cd ≡ (me%n)d ≡ med(mod n)
∵ de ≡ 1(mod (p-1)(q-1))
∴ med(mod n) ≡ m(mod n)
∵ c值的範圍為0~n-1
∵ m值的範圍為0~n-1
∴ d( c) = m
通過私鑰d對密文c進行解密可成功獲取相應的明文m。
rsa演算法的安全性依賴於n的因式分解難度,使得根據公鑰e無法計算破解得到私鑰d,若n易於因式分解,則可知p和q,由e獲取私鑰d則很容易,整個rsa演算法的安全性將無法保證。
rsa加密演算法具有的乘法同態特性,依賴於其e加密演算法數學特徵:
e(x)e(y) ≡ xeye ≡ (xy)e ≡ e(xy)
這種同態特性可在零知識證明中發揮作用,即無需暴露x和y的具體值,prover證明者僅通過傳送加密的資訊a=e(x)、b=e(y)和c=e(xy),verifier驗證者僅需驗證確認(a*b)%n ≡ c%n成立,即可說明prover傳送的是兩個數值及其相應乘積。
參考資料:
[1] 2023年**《a method for obtaining digital signatures and public-key cryptosystems》
(1)密碼學之RSA演算法
開始前先講一下對稱加密演算法和公鑰加密演算法 我不喜歡叫非對稱加密演算法,這使我想起那個被問md5演算法屬於對稱還是非對稱的恐懼 對稱加密演算法 1 甲方選擇某一種加密規則,對資訊進行加密 2 乙方使用同一種規則,對資訊進行解密。公鑰加密演算法 1 乙方生成兩把金鑰 公鑰和私鑰 公鑰是公開的,任何人...
密碼學之RSA加密
最近在學習網易公開課上可汗學院現代密碼學的課程,整理了一下自己的筆記3 rsa加密 非對稱金鑰,公開金鑰演算法 rsa加密利用了單向函式正向求解很簡單,反向求解很複雜的特性。具體是利用了 1.對兩個質數相乘容易,而將其合數分解很難的這個特點進行的加密演算法。n p1 p2,已知p1 p2求n簡單,已...
密碼學之RSA加密
最近在學習網易公開課上可汗學院現代密碼學的課程,整理了一下自己的筆記3 rsa加密 非對稱金鑰,公開金鑰演算法 rsa加密利用了單向函式正向求解很簡單,反向求解很複雜的特性。具體是利用了 1.對兩個質數相乘容易,而將其合數分解很難的這個特點進行的加密演算法。n p1 p2,已知p1 p2求n簡單,已...