章節連結
從網路課程 程式必修課!離散數學與演算法 來淺嚐一下沒機會在課堂上所學的離散數學與演算法。或許對撰寫程式的效能提昇會有些幫助。
課程相關資訊
[連結]:https://hiskio.com/courses/1196/lectures/133840
本篇範圍:Chapter 9
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
RSA Public-Key 加密演算法
RSA 是非對稱加密演算法。
1. 假設有一個很大的整數乘積 n,是由兩個質數相乘而得 ( n = pq )。根據 Euler Totient Function,Φ(n) = Φ(p)Φ(q) = (p-1)(q-1) = m
2. 找一個正整數 E,使 (E,m) = 1
3. 根據 Euclidean Algorithm 找到一個 D,使得 DE ≡ 1 (mod m) <-> DE mod m = 1
4. 令 (n,E) 為 public key, (n,D) 為 private key
5. 加密後的值是 y = x^E mod n;解密為 x = y^D mod n