包含3个算法,Gen,Enc 和 Dec
输入安全参数(security parameter)$\lambda$
- 生成拥有同样
$\lambda$ bits 的两个不同素数,$p, q$ - 计算
$N=pq$ ,$\phi(N)=(p-1)(q-1)$ - 选择一个随机整数
$e\in (1, \phi{(N)})$ 满足$\text{gcd}(e, \phi{(N)})=1$ - 定义
$\mathbb{Z}^+_N={x \mid x\in(0, N)\quad \text{and}\quad \text{gcd}(x,N)=1}$ - 计算
$d$ 满足$ed\equiv 1 \quad({\text{mod }(\phi(N))})$ - 公钥
$PK=(e, N)$ , 私钥$SK=e, d, N$
- INPUT:
$p = 3$ ,$q = 11$ -
$N=pq=33$ ,$\phi(N)=(p-1)(q-1)=2\times 10=20$ - Let
$e=7$ - Note:
$\text{gcd}(e,\phi(N))=\text{gcd}(7, 20)=1$
- Note:
-
$d=3$ , ➡️$e\times d=7\times 3 = 21=20+1=\phi{(N)}+1$ $PK=(e, N)=(7, 33)$ $SK=(e, d, N)=(7, 3, 33)$
$m=4$ -
$c=m^e (\text{mod }(N))=4^7 \mod{33}=16$ Dec $c=16$ $m= c^d (\text{mod }(N))=16^3\mod{33}=4$