英特爾銳炫 Arc 顯示卡 GPU 外觀曝光,128EU 與 512EU 兩型號
一.基礎知識
1.互質的關係
2.取餘操作
\(a\ mod\ b =3\)
\(a\ \equiv\ 3(mod\ b)\)
java/python程式碼
a%b = 3
3.尤拉函式
定義-給定正整數n,小於n的正整數中有多少個與n互質?
4.尤拉函式的性質
\(\phi(1)=1\)
\(如果n是質數,\phi(n)=n-1\)
\(如果n分為 n=p^k,p是質數,phi(p^k) = (p)^k - (p-1)^k =(p^k)(1-\frac{1}{p})\)
\(比如\phi(8)=\phi(2^3) = 2^3-2^2 =4\)
\(如果n分為兩個"互質的"質數相乘 n=p_1 * p_2 ,則\phi(p_1 p_2)=\phi(p_1)\phi(p_2)\)
\(比如\phi(56)=\phi(7)\phi(8)\)
\(任意n可以寫成幾個質數的乘數 n=p1^{k_1}p2^{k_2}....\)
\(\phi(n)=\phi(p_1^{k_1})\phi(p_2^{k_2})...... = [(p_1)^{k_1} - (p_1-1)^{k_1}] [(p_2)^{{k_2}} - (p2-1)^{k_2}] ... = p_1^{k_1} p_2^{k_2} ... (1-\frac{1}{p_1})(1-\frac{1}{p_2})\)
\(=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})....\)
5.尤拉定理
\(若a,n互質,a^{\phi(n)} = 1 (mod\ n)\)
6.費馬小定理
\(在尤拉定理的基礎上,若n為質數,a^{n-1} = 1 (mod\ n)\)
7.模逆,模反的概念
\(若a,n互質則必然有 b,a,b互為模反元素\)
\(ab \equiv 1(mod\ n) ,a,n互質\)
模逆的存在性
\(a^{\phi(n)} = 1 (mod\ n) -> a * a^{\phi(n)-1} = 1 (mod\ n)\)
\(b= a^{\phi(n)-1} 必然存在b\)
二.RSA演算法流程
1.選兩個質數 p q
2.n=p * q
3.計算尤拉函式 phiN = phi n = (p-1)(q-1)
4.選一個與phiN 互質的數 e 一般選 65537
5.計算e 對於 phiN的模反 d
\(ed=1(mod\ phiN)\)
\(d=a^{\phi(phiN)-1}\)
至此我們得到有以下引數
引數 | 含義 |
---|---|
\(p\) | 質數 |
\(q\) | 質數 |
\(dp\) | \(=p-1\) |
\(dq\) | \(=q-1\) |
\(n\) | \(= p * q\) |
\(phiN\) | \(= \phi(n) = (p-1)(q-1)\) |
\(e\) | \(與phiN 互質,一般取 65537\) |
\(d\) | 與\(e\)互為模逆 |
結果
公鑰(n,e)
私鑰(n,d) 或者 (n,p,q)
加密,解密過程
\(m-明文\)
\(c-密文\)
加密
\(c = m^e mod\ n\)
解密
\(m = c^d mod\ n\)
證明過程
待補充
加解密思考
攻擊方只有公鑰 (n,e),攻破私鑰,需要引數d或者phiN,此時就需要因式分解得到 p 和 q才能得到phiN,d
因此是否能攻破私鑰取決於質數因數分解的效率
待遺留的事項
1.尤拉函式性質證明
\(如果n分為 n=p^k,p是質數,phi(p^k) = (p)^k - (p-1)^k =(p^k)(1-1/p)\)
\(如果n分為兩個"互質的"質數相乘 n=p1 * p2 ,則phi(p1 p2)=phi(p1)phi(p2)\)
2.尤拉定理證明
3.模反計算
輾轉相除法/擴充套件歐幾里德演算法
4.最後加密演算法怎麼優化-蒙哥馬利冪模運算
\(c = m^e\ mod\ n , e是一個質數\)