日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RSA加密

發布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RSA加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

rsa加密

基礎知識:

rsa是一種非對稱加密,(有公鑰私鑰兩把不同密鑰)。

單向函數:單方向計算容易,反向難。例:x→f(x)容易,而f(x)→x難。

同余:a ≡ b (mod m)意思是a-b = mk。
推論:ab mod k = (a mod k) * (b mod k) mod k

模逆元:也稱模倒數。a-1 ≡ 1 (mod n)相當于:ab = 1 (mod n)。python中有包可以直接用來求模逆元。

模運算:
加法:3+4≡0 (mod 7) , 5+5 ≡ 3 (mod 7), 1+5 ≡ 6 (mod 7)
減法:5-2 ≡ 3 (mod 7) , 3-5 ≡ 3-5+7 ≡ 3+2 (mod 7)
乘法:3 ×4 ≡ 5 (mod 7) , 2×2 ≡ 4(mod 7)
除法:5/4 ≡ 5×4-1 ≡ 5×invert(4,7) ≡5×2 ≡ 3 (mod 7)(除法說法不嚴謹)

歐拉函數:對正整數N,歐拉函數是小于等于N的正整數中與N互質的數的數目。易知,當N數很大時,計算就很困難了,而當N的因式分解已知時,就會有簡單的方法:
例:N=240,已知240=24×3×5
則Ψ(N)=23 ×(2-1)×(3-1)×(5-1)=8×1×2×4=64
費馬小定理:假如a為一個整數,p為一個素數,則 a(p-1)≡1 (mod p)
歐拉定理:假如a和m都是整數,且gcd(a,m) = 1則有aΨ(m) ≡ 1(mod m)
(gcd:最大公約數)
費馬小定理是歐拉定理的特殊情況

RSA加密
密鑰對的產生:
①、選擇兩個大素數p、q,使得n=pq
②、計算Ψ(n) =(p-1)(q-1)
③、隨機數e,要求e與Ψ(n)互素
④、計算d滿足ed=1(mod Ψ(n))
加密:
c = me(mod n)
解密:
m = cd(mod n)
實現RSA加密
下載python中crypto包
from Crypot.Util.number import*導入包中所有函數。

getPrime()函數,括號里為參數長度,此函數用于產生一個指定長度的隨機素數。

getStrongPrime()函數,括號里為參數長度,此函數用于生成一個更安全的素數。

inverse()函數,括號有兩個參數,當兩個參數不互素的時候返回除以最大公約數后的逆元,兩個參數互素時,和gmpy2的invert返回值相同。而invert函數當兩個參數不互素時會報錯。

isPrime()函數可以用來判斷是否為素數

GCD()函數用來求最大公因數

gmpy2的iroot函數用于開n次方,兩個參數m,n,返回結果為一個數字(對m開n次方),結果為整數,和一個布爾數(結果的n次方是否剛好等于原來的數)

pow(m,e,n)函數計算m 的e次方 模n的值
pow(m,e)函數計算m的e次方

RSA相關攻擊算法

1、分解素因數攻擊
已知e,n,c,求m

m=pow(c,d,n)
d=invert(e,Ψ(n))

由于單向性,一直n并不能容易得出p q,也就不能容易得出Ψ(n)

當n的值很大時,往往不能通過枚舉法來分解因數,(而如果生成的素數是不安全的,就可能使n很容易被分解)(通常生成的素數約2048位)

有分解n的網址:

https://www.alpertron.com.ar/ECM.HTM

http://www.factordb.com/index.php

共模攻擊

如果在RSA的使用中使用了相同的模n對相同的明文m進行了加密,那么就可以在不分解n是情況下還原出明文m:

通過擴展歐幾里得算法 可以計算出:

若已知p+q或p-q或者其他pq之間的關系,則可通過方程組求得p, q進而得出Ψ(n),也可直接使用SageMath中Solve函數來解方程組:
Solve([p*q = = n,p+q = = a], [p,q])

小公鑰指數攻擊

當e很小時,則c可能不比n大多少,則可以用枚舉法來求:m^e=c+k*n
嘗試枚舉k并開根,能得到m

總結

以上是生活随笔為你收集整理的RSA加密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。