$n=24$
la dificultat d'executar el logaritme d'una clau pública $n$ és $O(\sqrt{2^{\text{longitud}_n}})$, per tant el nivell de seguretat en bits és la meitat
el NIST
recomana
$\|n\| \geq 224$ bit fins el 2030
ECDSA i ECDH substitueix DSA i DH respectivament ja que són més eficients,
i aguantaran millor el pas del temps (hi ha implementacions amb $\|n\| = 512$ però
ningú està fent servir DSA, DH o RSA amb longituds de clau equivalents (segons el NIST) de $15360$)
$\begin{aligned}
"+" &\rightarrow P+Q \\
"+ \text{repetida}" &\rightarrow P+P+P+\cdots+P \color{gray}{= i P}
\end{aligned}$
trobar $i$ a partir d' $R=i A$ coneixent $R$ i $A$ és un problema de complexitat exponencial per exemple ECDH $i(\color{red}{jA}) = j(\color{red}{iA}) = ijA \leftarrow$ (secret acordat) és equivalent a DH ${(\color{red}{\alpha^{i}})}^j = {(\color{red}{\alpha^{j}})}^i = \alpha^{ij}\leftarrow$ (secret acordat) farem servir majúscules per a definir punts i distingir-los dels enters
enfoc geomètric; compte: $P\in E(\mathbb{R})$ no $E(\mathbb{F}_p)$ una corba el·líptica $E$ és: $y^2 = x^3+ax+b$ una corba el·líptica $E(\mathbb{F}_p)$ és: $y^2 \equiv x^3+ax+b \pmod p$ i per a que no tingui singularitats cal escollir $a,b \in \mathbb{F}_p$ per a que
$4a^3+27b^2 \not\equiv 0 \pmod p$ les corbes el·líptiques tenen les propietats necessàries per a que l'operació $+$ estigui ben definida
$\forall P = (x,y) \in E(\mathbb{F}_p)$ $\begin{aligned}
x_R &= \left(\frac{y_Q-y_P}{x_Q-x_P}\right)^2 - x_P - x_Q \\
y_R &= \left(\frac{y_Q-y_P}{x_Q-x_P}\right)(x_P-x_R) - y_P \\
\end{aligned}$ $\begin{aligned}
x_R &= \left(\frac{3 x_P^2+a}{2 y_p}\right)^2 - 2x_P \\
y_R &= \left(\frac{3 x_P^2+a}{2 y_p}\right)(x_P-x_R)- y_P \\
\end{aligned}$ llavors: per a fer la suma (i suma repetida) de punts sobre $E(\mathbb{F}_p)$...
no en tenim prou amb el $\mathbb{Z}_p^*$ ja que la resta sobre $\mathbb{F}_p$
pot generar valors $P=(0,-)$
$P-P = \mathcal{O}$: si ens fixem en el gràfic, sumar $P$ a $-P$ tendeix
a $(-,\infty)$ $\Rightarrow$
... ...aquest tipus de conjunts amb aquestes operacions definides
en resum, sobre $\mathbb{F}_p$ tenim que: recordem que per DH o DSA feiem servir un
grup (finit) sobre la multiplicació
($\mathbb{Z}_p^*$)
$N = |E(\mathbb{F}_p)|$: cal que l'ordre1 ($N$) tingui un factor (primer) gran el teorema de Hasse diu que $|E(\mathbb{F}_p)|$ té com a factor
llavors $E(\mathbb{F}_p)$ és o bé cíclic o bé té algun generador amb un ordre2
gran ($n$) escollim un d'aquests punts com a generador $A$: $n = \text{ord}(A) \; \Rightarrow \; nA=\mathcal{O}$
Nota: en DH (no EC) seria equivalent a:
amb paràmetres reduïts (exemple de [Johnson, Menezes, Vanstone]) fem servir $p=23 \Rightarrow \mathbb{F}_{23} = \{0,1,2,\dotsc,21,22\}$ i $a=1$ i $b=4 \Rightarrow y^2 \equiv x^3+x+4 \pmod{23}$ llavors $E(\mathbb{F}_{23})$: $\begin{matrix}
\mathcal{O} & (0, 2) & (0,21) & (1, 11) & (1,12) & (4, 7) \\
(4,16) & (7, 3) & (7,20) & (8,8) & (8,15) & (9,11) \\
(9,12) & (10, 5) & (10,18) & (11,9) & (11,14) & (13,11) \\
(13,12) & (14,5) & (14,18) & (15,6) & (15,17) & (17,9) \\
(17,14) & (18,9) & (18,14) & (22,5) & (22,18)
\end{matrix}$ i la mida és $|E(\mathbb{F}_{23})| = 29$ (la mida de $|E(\mathbb{F}_{p})| \approx p$) $E(\mathbb{F}_{23}); y^2=x^3+x+4$
$E(\mathbb{F}_{23});\; y^2=x^3+x+4$ $\begin{matrix}
\mathcal{O} & (0,2) & (0,21) & (1, 11) & (1,12) & (4,7) \\
(4,16) & (7, 3) & (7,20) & (8,8) & (8,15) & (9,11) \\
(9,12) & (10, 5) & (10,18) & (11,9) & (11,14) & (13,11) \\
(13,12) & (14,5) & (14,18) & (15,6) & (15,17) & (17,9) \\
(17,14) & (18,9) & (18,14) & (22,5) & (22,18)
\end{matrix}$ $E(\mathbb{F}_{23});\; y^2=x^3+x+4;\;$ generador $A = (0,2);\; 29A=\mathcal{O}$ $\begin{matrix}
1A=(0,2) & 2A=(13,12) & 3A=(11,9) & 4A=(1,12) \\
5A=(7,20) & 6A=(9,11) & 7A=(15,6) & 8A=(14,5) \\
9A=(4,7) & \dotsc & & \\
25A=(1,11) & 26A=(11,14) & 27A=(13,11) & 28A=(0,21) \\
29A=\mathcal{O}
\end{matrix}$ $y^3 \equiv x^2 + ax + b \pmod p$ $\begin{aligned}
p =& 2^{256} - 2^{224} + 2^{192} + 2^{96} - 1 = \\
& 115792089210356248762697446949407573530086143415290314195533631308867097853951\\
a =& -3 \\
b =& 41058363725152142129326129780047268409114441015993725554835256314039467401291 \\
A =& (\\
& \mathtt{0x6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296}\\
& , \\
& \mathtt{0x4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5}\\
& ) \\
\text{ord}(A) =& n = 115792089210356248762697446949407573529996955224135760342422259061068512044369
\end{aligned}$
(font: NIST) DSA $\rightarrow $ ECDSA: \[\begin{eqnarray}
&&\color{red}{q | (p-1)} \\
\text{random }k &\rightarrow& 0 < k < \color{red}{q} \\
r &=& (\alpha^k \bmod p) \color{red}{\bmod q} \qquad\\
s &=& \dfrac{h(m)+a_\text{u}r}{k} \color{red}{\bmod{q}}\quad
\end{eqnarray}\] $\downarrow$ \[\begin{eqnarray}
\text{random }k &\rightarrow& 0 < k < \text{ord}(A) \\
r &=& kA \bmod \text{ord}(A) \\
s &=& \dfrac{h(m)-a_\text{u}r}{k} \bmod \text{ord}(A) \\
\end{eqnarray}\]
ECDSA $n$
DSA $p$; $q$
RSA $n$
(bits de seguretat)
$224$
$2048$; $224$
$2048$
$\leftrightarrow$
$112$
$256$
$3072$; $256$
$3072$
$\leftrightarrow$
$128$
$512$
n/d
$15360$
$\leftrightarrow$
$256$
Cripto de Corba El·líptica
ECDLP: EC Discrete Logarithm Problem
$A$ és $\alpha$ majúscula, el punt generador4. Suma de punts (i suma-repetida)
2. Cripto de Corba el·líptica
4. Suma: $R=P+Q$
4. Suma repetida: $R = 2P$
4.$\rightarrow$1. Suma de punts (alguns detalls)
ens calen suma, resta, multiplicació i divisió sobre $\mathbb{F}_p$
$\mathbb{F}_p = \{0,1,2,\dotsc,p-1\}$
$\mathcal{O}$ és la identitat (o des del punt de vista gràfic és el
“punt a l'inifinit”)
1. Cos finit $\mathbb{F}_p$
s'anomenen cossos finits
3. $|E(\mathbb{F}_p)|$
$n=p+1\pm 2\sqrt{p}$, per tant
$\alpha^n \equiv 1 \pmod p$
Exemple
Exemple amb paràmetres reduïts
Corbes estàndard
NIST P-256
Rendiment en Thales nShield Connect 6000+
Algorisme
Generació (TPS)
Signatura (TPS)
RSA-2048
—
3000
NIST P-256
840
2400
NIST P-521
480
1300
(Complexitat) $\rightarrow$