--- breaks: false --- # RSA@SEC@VSU ## A gist 'tis quite trivial: 1. Generate such public $(n, \epsilon)$ and private $(n, d)$ keys that $$(x^\epsilon\ \%\ n)^d\ \%\ n = x$$ for all $0\leq x\leq x_{\mathrm{max}}$. 2. Encrypt the message $m$ into $c = m^\epsilon \ \%\ n$. 3. Decrypt the message using $m = c^d = (m^\epsilon)^d \ \%\ n$. Alternatively: 2. Sign the message: $s = m^d\ \%\ n$. 3. Check the signature $s$ by verifying that $s^\epsilon \equiv m \mod n$. ## Key generation 1. Take some huge distinct primes $p, q$. 2. Set $n=pq$. 3. Take some $\lambda\in\mathbb{N}_+$ that satisfies $$\label{eqnlambda}\tag{1} m^\lambda \equiv 1 \mod pq$$ for every $m$ coprime to $n=pq$. E.g.: $$\lambda = (p-1)(q-1)$$ **NB**: After the generation step for the equation $\eqref{eqnlambda}$ to be satisfied for a particular $m$ it will suffice that $m < p,q$ for $p$ and $q$ are both primes, 4. Find some $\epsilon$ coprime to $\lambda$: $\gcd(\epsilon, \lambda) = 1$. 5. Set $d$ to be multiplicative inverse of $\epsilon$: $$\epsilon d \equiv 1 \ \mod n$$ ## Checking the formulas Let's check that $$(m^\epsilon \ \%\ n)^d \ \%\ n = m.$$ Note first that $$(m^\epsilon \ \%\ n) \equiv m^\epsilon \mod n$$ and hence $$ (m^\epsilon \ \%\ n)^d \ \%\ n = m^{\epsilon d} \ \%\ n = m^{1 + \alpha\lambda} \ \%\ n = m\ m^{\alpha \lambda} \ \%\ n = m$$ since $\epsilon d\equiv 1 \mod \lambda$ and $m<p,q$ is coprime to $n=pq$: $$\epsilon d - 1 = \alpha \lambda\ \text{for some}\ \alpha,$$ $$m^{\lambda} \equiv 1 \mod n,$$ $$m^{\alpha\lambda} \equiv 1 \mod n,$$ $$m m^{\lambda} \equiv m \mod n.$$ * * *