RSA加密

快樂密碼學

Posted by Hsu on September 1, 2024

RSA algorithom

介紹

一種使用質數的非對稱加密法

數學的部分

歐拉函數 $\phi(n)$

$\phi(n)$是從0~n-1與n互質數量 eg. $\phi(8) = 4$ 因為 $8和1, 3 ,5 ,7互質$ ps. 質數的$\phi(n)$是n-1喔

模數(mod)

aka取餘數 eg. $8mod3 = 2$

反模數(mod)

一整數a對同餘n之模反元素是指滿足以下公式的整數 $ab\mod(n)=1$

取得方法用擴展歐幾里得

共餘 $\equiv$

兩數的餘數相同,即是共餘 $8\equiv13\mod(5)$

RSA 公鑰私鑰的生成

  1. 隨機取兩質數$p,q$
  2. $N = p * q$
  3. $\phi(N)=\phi(p)*\phi(q)$

public key 選擇一數字e,使e<r,且r e互質 則公鑰為{N,e}

private key 取e對$\phi(n)$反模得到d 則私鑰為{N,d}

加密解密

加密

x是明文,y是密文 $x^e\mod(n)=y$

解密

y是密文,x是明文 $y^d\mod(n)=x$