Articulo de referencia

XTR

En criptografía , XTR es un algoritmo para el cifrado de clave pública . XTR significa 'ECSTR', que es una abreviatura de Efficient and Compact Subgroup Trace Representation (Re...

En criptografía , XTR es un algoritmo para el cifrado de clave pública . XTR significa 'ECSTR', que es una abreviatura de Efficient and Compact Subgroup Trace Representation (Representación de traza de subgrupo eficiente y compacta). Es un método para representar elementos de un subgrupo de un grupo multiplicativo de un cuerpo finito . Para ello, utiliza la traza sobreGRAMOF(pag2){\displaystyle GF(p^{2})}para representar elementos de un subgrupo deGRAMOF(pag6){\displaystyle GF(p^{6})^{*}}.

Desde el punto de vista de la seguridad, XTR se basa en la dificultad de resolver problemas relacionados con el logaritmo discreto en el grupo multiplicativo completo de un cuerpo finito. A diferencia de muchos protocolos criptográficos que se basan en el generador del grupo multiplicativo completo de un cuerpo finito, XTR utiliza el generador.gramo{\displaystyle g}de un subgrupo relativamente pequeño de algún orden primo q{\displaystyle q}de un subgrupo deGRAMOF(pag6){\displaystyle GF(p^{6})^{*}}Con la elección correcta deq{\displaystyle q}, calculando logaritmos discretos en el grupo, generado por gramo{\displaystyle g}, es, en general, tan difícil como lo es en GRAMOF(pag6){\displaystyle GF(p^{6})^{*}}y por lo tanto, aplicaciones criptográficas del uso de XTRGRAMOF(pag2){\displaystyle GF(p^{2})}aritmética mientras se logra el plenoGRAMOF(pag6){\displaystyle GF(p^{6})}La seguridad permite un ahorro sustancial tanto en la comunicación como en la carga computacional sin comprometer la seguridad. Otras ventajas de XTR son su rápida generación de claves, su pequeño tamaño y su velocidad.

Fundamentos de XTR

XTR utiliza un subgrupo , comúnmente denominado subgrupo XTR o simplemente grupo XTR , de un subgrupo llamado supergrupo XTR , del grupo multiplicativo de un cuerpo finito.GRAMOF(pag6){\displaystyle GF(p^{6})}conpag6{\displaystyle p^{6}}elementos. El supergrupo XTR es de ordenpag2pag+1{\displaystyle p^{2}-p+1}donde p es un primo tal que un primo q suficientemente grande divide apag2pag+1{\displaystyle p^{2}-p+1}. El subgrupo XTR ahora tiene orden q y es, como subgrupo deGRAMOF(pag6){\displaystyle GF(p^{6})^{*}}, un grupo cíclicogramo{\displaystyle \langle g\rangle }con el generador g . Los siguientes tres párrafos describirán cómo se pueden representar los elementos del supergrupo XTR utilizando un elemento deGRAMOF(pag2){\displaystyle GF(p^{2})}en lugar de un elemento deGRAMOF(pag6){\displaystyle GF(p^{6})}y cómo se realizan las operaciones aritméticas enGRAMOF(pag2){\displaystyle GF(p^{2})}en lugar de enGRAMOF(pag6){\displaystyle GF(p^{6})}.

Operaciones aritméticas enGRAMOF(pag2){\displaystyle GF(p^{2})}

Sea p un número primo tal que p 2 mod 3 y p 2 - p + 1 tiene un factor primo q suficientemente grande . Como p 21 mod 3, vemos que p genera   (Z/3Z){\displaystyle (\mathbb {Z} /3\mathbb {Z} )^{*}}y por lo tanto el tercer polinomio ciclotómicoΦ3(incógnita)=incógnita2+incógnita+1{\displaystyle \Phi _{3}(x)=x^{2}+x+1} es irreductible sobreGRAMOF(pag){\displaystyle GF(p)}De ello se deduce que las raícesα{\displaystyle \alpha }yαpag{\displaystyle \alpha ^{p}}formar una base normal óptima paraGRAMOF(pag2){\displaystyle GF(p^{2})}encimaGRAMOF(pag){\displaystyle GF(p)}y

GRAMOF(pag2){incógnita1α+incógnita2αpag:incógnita1,incógnita2GRAMOF(pag)}.{\displaystyle GF(p^{2})\cong \{x_{1}\alpha +x_{2}\alpha ^{p}:x_{1},x_{2}\in GF(p)\}.}

Considerando que p2 mod 3 podemos reducir los exponentes módulo 3 para obtener

GRAMOF(pag2){y1α+y2α2:α2+α+1=0,y1,y2GRAMOF(pag)}.{\displaystyle GF(p^{2})\cong \{y_{1}\alpha +y_{2}\alpha ^{2}:\alpha ^{2}+\alpha +1=0,y_{1},y_{2}\in GF(p)\}.}

El costo de las operaciones aritméticas se da ahora en el siguiente lema, etiquetado como Lema 2.21 en "Una descripción general del sistema de clave pública XTR" : [ 1 ]

Lema

  • El cálculo de x p se realiza sin utilizar la multiplicación.
  • Calcular x 2 requiere dos multiplicaciones enGRAMOF(pag){\displaystyle GF(p)}
  • Calcular xy requiere tres multiplicaciones enGRAMOF(pag){\displaystyle GF(p)}
  • Calcular xz-yz p requiere cuatro multiplicaciones enGRAMOF(pag){\displaystyle GF(p)}.

Rastros sobreGRAMOF(pag2){\displaystyle GF(p^{2})}

El rastro en XTR siempre se considera terminadoGRAMOF(pag2){\displaystyle GF(p^{2})}. En otras palabras, los conjugados dehGRAMOF(pag6){\displaystyle h\in GF(p^{6})}encimaGRAMOF(pag2){\displaystyle GF(p^{2})}sonh,hpag2{\displaystyle h,h^{p^{2}}}yhpag4{\displaystyle h^{p^{4}}}y el rastro deh{\displaystyle h}es su suma:

Tr(h)=h+hpag2+hpag4.{\displaystyle Tr(h)=h+h^{p^{2}}+h^{p^{4}}.}

Tenga en cuenta queTr(h)GRAMOF(pag2){\displaystyle Tr(h)\in GF(p^{2})}desde

Tr(h)pag2=hpag2+hpag4+hpag6=h+hpag2+hpag4=Tr(h){\displaystyle {\begin{aligned}Tr(h)^{p^{2}}&=h^{p^{2}}+h^{p^{4}}+h^{p^{6}}\\&=h+h^{p^{2}}+h^{p^{4}}\\&=Tr(h)\end{aligned}}}

Consideremos ahora el generador.gramo{\displaystyle g}del subgrupo XTR de un orden primoq{\displaystyle q}Recuerda quegramo{\displaystyle \langle g\rangle }es un subgrupo del supergrupo XTR de ordenpag2pag+1{\displaystyle p^{2}-p+1}, entoncesqpag2pag+1{\displaystyle q\mid p^{2}-p+1}En la siguiente sección veremos cómo elegirpag{\displaystyle p}yq{\displaystyle q}, pero por ahora basta con suponer queq>3{\displaystyle q>3}Para calcular la traza degramo{\displaystyle g}tenga en cuenta que módulopag2pag+1{\displaystyle p^{2}-p+1}tenemos

pag2=pag1{\displaystyle p^{2}=p-1}y
pag4=(pag1)2=pag22pag+1=pag{\displaystyle p^{4}=(p-1)^{2}=p^{2}-2p+1=-p}

y por lo tanto

Tr(gramo)=gramo+gramopag2+gramopag4=gramo+gramopag1+gramopag.{\displaystyle {\begin{aligned}Tr(g)&=g+g^{p^{2}}+g^{p^{4}}\\&=g+g^{p-1}+g^{-p}.\end{aligned}}}

El producto de los conjugados degramo{\displaystyle g}igual1{\displaystyle 1}, es decir, quegramo{\displaystyle g}tiene norma 1.

La observación crucial en XTR es que el polinomio mínimo degramo{\displaystyle g}encimaGRAMOF(pag2){\displaystyle GF(p^{2})}

(incógnitagramo) (incógnitagramopag1)(incógnitagramopag){\displaystyle (x-g)\!\ (x-g^{p-1})(x-g^{-p})}

simplifica a

incógnita3Tr(gramo) incógnita2+Tr(gramo)pagincógnita1{\displaystyle x^{3}-Tr(g)\!\ x^{2}+Tr(g)^{p}x-1}

que está totalmente determinado porTr(gramo){\displaystyle Tr(g)}. En consecuencia, los conjugados degramo{\displaystyle g}, como raíces del polinomio mínimo degramo{\displaystyle g}encimaGRAMOF(pag2){\displaystyle GF(p^{2})}, están completamente determinados por el rastro degramo{\displaystyle g}. Lo mismo es cierto para cualquier potencia degramo{\displaystyle g}: conjugados degramonorte{\displaystyle g^{n}}son raíces de polinomios

incógnita3Tr(gramonorte) incógnita2+Tr(gramonorte)pagincógnita1{\displaystyle x^{3}-Tr(g^{n})\!\ x^{2}+Tr(g^{n})^{p}x-1}

y este polinomio está completamente determinado porTr(gramonorte){\displaystyle Tr(g^{n})}.

La idea detrás del uso de trazas es reemplazargramonorteGRAMOF(pag6){\displaystyle g^{n}\in GF(p^{6})}en protocolos criptográficos, por ejemplo el intercambio de claves Diffie-Hellman porTr(gramonorte)GRAMOF(pag2){\displaystyle Tr(g^{n})\in GF(p^{2})}y así obtener una reducción de un factor de 3 en el tamaño de la representación. Sin embargo, esto solo es útil si hay una forma rápida de obtenerlo.Tr(gramonorte){\displaystyle Tr(g^{n})}dadoTr(gramo){\displaystyle Tr(g)}. El siguiente párrafo presenta un algoritmo para el cálculo eficiente deTr(gramonorte){\displaystyle Tr(g^{n})}Además, la computaciónTr(gramonorte){\displaystyle Tr(g^{n})}dadoTr(gramo){\displaystyle Tr(g)}resulta ser más rápido que la computacióngramonorte{\displaystyle g^{n}}dadogramo{\displaystyle g}. [ 1 ]

Algoritmo para el cálculo rápido deTr(gramonorte){\displaystyle Tr(g^{n})}dadoTr(gramo){\displaystyle Tr(g)}

A. Lenstra y E. Verheul presentan este algoritmo en su artículo titulado El sistema de clave pública XTR en [ 2 ] . Todas las definiciones y lemas necesarios para el algoritmo, así como el algoritmo mismo que se presenta aquí, se han tomado de dicho artículo.

Definición Para c enGRAMOF(pag2){\displaystyle GF(p^{2})}definir

F(do,incógnita)=incógnita3doincógnita2+dopagincógnita1GRAMOF(pag2)[incógnita].{\displaystyle F(c,X)=X^{3}-cX^{2}+c^{p}X-1\in GF(p^{2})[X].}

Definición Dejemosh0, h1,h2{\displaystyle h_{0},\!\ h_{1},h_{2}}denotan las raíces, no necesariamente distintas, deF(do,incógnita){\displaystyle F(c,X)}enGRAMOF(pag6){\displaystyle GF(p^{6})}y dejarnorte{\displaystyle n}estar enZ{\displaystyle \mathbb {Z} }. Definir

donorte=h0norte+h1norte+h2norte.{\displaystyle c_{n}=h_{0}^{n}+h_{1}^{n}+h_{2}^{n}.}

Propiedades dedonorte{\displaystyle c_{n}}yF(do,incógnita){\displaystyle F(c,X)}

  1. do=do1{\displaystyle c=c_{1}}
  2. donorte=donortepag=donortepag{\displaystyle c_{-n}=c_{np}=c_{n}^{p}}
  3. donorteGRAMOF(pag2) para norteZ{\displaystyle c_{n}\in GF(p^{2}){\text{ for }}n\in \mathbb {Z} }
  4. do+v=dodovdovpagdov+do2v para ,vZ{\displaystyle c_{u+v}=c_{u}c_{v}-c_{v}^{p}c_{u-v}+c_{u-2v}{\text{ for }}u,v\in \mathbb {Z} }
  5. O todohj{\displaystyle h_{j}}tener orden dividiendopag2pag+1{\displaystyle p^{2}-p+1}y>3{\displaystyle >3}o todoshj{\displaystyle h_{j}}están enGRAMOF(pag2){\displaystyle GF(p^{2})}. En particular,F(do,incógnita){\displaystyle F(c,X)}es irreducible si y solo si sus raíces tienen orden divergentepag2pag+1{\displaystyle p^{2}-p+1}y>3{\displaystyle >3}.
  6. F(do,incógnita){\displaystyle F(c,X)}es reducible sobreGRAMOF(pag2){\displaystyle GF(p^{2})}si y solo sidopag+1GRAMOF(pag){\displaystyle c_{p+1}\in GF(p)}

Lemma Dejemosdo, donorte1,donorte,donorte+1{\displaystyle c,\!\ c_{n-1},c_{n},c_{n+1}} be given.

  1. Computing c2n=cn22cnp{\displaystyle c_{2n}=c_{n}^{2}-2c_{n}^{p}} takes two multiplication in GF(p){\displaystyle GF(p)}.
  2. Computing cn+2=cn+1ccpcn+cn1{\displaystyle c_{n+2}=c_{n+1}\cdot c-c^{p}\cdot c_{n}+c_{n-1}} takes four multiplication in GF(p){\displaystyle GF(p)}.
  3. Computing c2n1=cn1cncpcnp+cn+1p{\displaystyle c_{2n-1}=c_{n-1}\cdot c_{n}-c^{p}\cdot c_{n}^{p}+c_{n+1}^{p}} takes four multiplication in GF(p){\displaystyle GF(p)}.
  4. Computing c2n+1=cn+1cnccnp+cn1p{\displaystyle c_{2n+1}=c_{n+1}\cdot c_{n}-c\cdot c_{n}^{p}+c_{n-1}^{p}} takes four multiplication in GF(p){\displaystyle GF(p)}.

Definition Let Sn(c)=(cn1,cn,cn+1)GF(p2)3{\displaystyle S_{n}(c)=(c_{n-1},c_{n},c_{n+1})\in GF(p^{2})^{3}}.

Algorithm 1 for computation of Sn(c){\displaystyle S_{n}(c)} given n{\displaystyle n} and c{\displaystyle c}

  • If n<0{\displaystyle n<0} apply this algorithm to n{\displaystyle -n} and c{\displaystyle c}, and apply Property 2 to the resulting value.
  • If n=0{\displaystyle n=0}, then S0(c) =(cp,3,c){\displaystyle S_{0}(c)\!\ =(c^{p},3,c)}.
  • If n=1{\displaystyle n=1}, then S1(c) =(3,c,c22cp){\displaystyle S_{1}(c)\!\ =(3,c,c^{2}-2c^{p})}.
  • If n=2{\displaystyle n=2}, use the computation of cn+2=cn+1ccpcn+cn1{\displaystyle c_{n+2}=c_{n+1}\cdot c-c^{p}\cdot c_{n}+c_{n-1}} and S1(c){\displaystyle S_{1}(c)} to find c3{\displaystyle c_{3}} and thereby S2(c){\displaystyle S_{2}(c)}.
  • If n>2{\displaystyle n>2}, to compute Sn(c){\displaystyle S_{n}(c)} define
S¯i(c)=S2i+1(c){\displaystyle {\bar {S}}_{i}(c)=S_{2i+1}(c)}
and m¯=n{\displaystyle {\bar {m}}=n} if n is odd and m¯=n1{\displaystyle {\bar {m}}=n-1} otherwise. Let m¯=2m+1,k=1{\displaystyle {\bar {m}}=2m+1,k=1} and compute S¯k(c)=S3(c){\displaystyle {\bar {S}}_{k}(c)=S_{3}(c)} using the Lemma above and S2(c){\displaystyle S_{2}(c)}. Let further
m=j=0rmj2j{\displaystyle m=\sum _{j=0}^{r}m_{j}2^{j}}
with mj0,1{\displaystyle m_{j}\in {0,1}} and mr=1{\displaystyle m_{r}=1}. For j=r1,r2,...,0{\displaystyle j=r-1,r-2,...,0} in succession, do the following:
  • If mj=0{\displaystyle m_{j}=0}, use S¯k(c){\displaystyle {\bar {S}}_{k}(c)} to compute S¯2k(c){\displaystyle {\bar {S}}_{2k}(c)}.
  • If mj=1{\displaystyle m_{j}=1}, use S¯k(c){\displaystyle {\bar {S}}_{k}(c)} to compute S¯2k+1(c){\displaystyle {\bar {S}}_{2k+1}(c)}.
  • Replace k{\displaystyle k} by 2k+mj{\displaystyle 2k+m_{j}}.

When these iterations finish, k=m{\displaystyle k=m} and Sm¯(c)=S¯m(c){\displaystyle S_{\bar {m}}(c)={\bar {S}}_{m}(c)}. If n is even use Sm¯(c){\displaystyle S_{\bar {m}}(c)} to compute S¯m+1(c){\displaystyle {\bar {S}}_{m+1}(c)}.

Parameter selection

Finite field and subgroup size selection

In order to take advantage of the above described representations of elements with their traces and furthermore ensure sufficient security, that will be discussed below, we need to find primes p{\displaystyle p} and q{\displaystyle q}, where p{\displaystyle p} denotes the characteristic of the field GF(p6){\displaystyle GF(p^{6})} with p2 mod 3{\displaystyle p\equiv 2\ {\text{mod}}\ 3} and q{\displaystyle q} is the size of the subgroup, such that q{\displaystyle q} divides p2p+1{\displaystyle p^{2}-p+1}.

We denote with P{\displaystyle P} and Q{\displaystyle Q} the sizes of p{\displaystyle p} and q{\displaystyle q} in bits. To achieve security comparable to 1024-bit RSA, we should choose 6P{\displaystyle 6P} about 1024, i.e. P170{\displaystyle P\approx 170} and Q{\displaystyle Q} can be around 160.

A first easy algorithm to compute such primes p{\displaystyle p} and q{\displaystyle q} is the next Algorithm A:

Algorithm A

  1. Find rZ{\displaystyle r\in \mathbb {Z} } such that q=r2r+1{\displaystyle q=r^{2}-r+1} is a Q{\displaystyle Q}-bit prime.
  2. Find kZ{\displaystyle k\in \mathbb {Z} } such that p=r+kq{\displaystyle p=r+k\cdot q} is a P{\displaystyle P}-bit prime with p2 mod 3{\displaystyle p\equiv 2\ {\text{mod}}\ 3}.
Correctness of Algorithm A:
It remains to check that qp2p+1{\displaystyle q\mid p^{2}-p+1} because all the other necessary properties are obviously satisfied per definition of p{\displaystyle p} and q{\displaystyle q}. We easily see that p2p+1=r2+2rkq+k2q2rkq+1=r2r+1+q(2rk+k2qk)=q(1+2rk+k2qk){\displaystyle p^{2}-p+1=r^{2}+2rkq+k^{2}q^{2}-r-kq+1=r^{2}-r+1+q(2rk+k^{2}q-k)=q(1+2rk+k^{2}q-k)} which implies that qp2p+1{\displaystyle q\mid p^{2}-p+1}.

Algorithm A is very fast and can be used to find primes p{\displaystyle p} that satisfy a degree-two polynomial with small coefficients. Such p{\displaystyle p} lead to fast arithmetic operations in GF(p){\displaystyle GF(p)}. In particular if the search for k{\displaystyle k} is restricted to k=1{\displaystyle k=1}, which means looking for an r{\displaystyle r} such that both r2r+1 and r2+1{\displaystyle r^{2}-r+1{\text{ and }}r^{2}+1} are prime and such that r2+12 mod 3{\displaystyle r^{2}+1\equiv 2{\text{ mod }}3}, the primes p{\displaystyle p} have this nice form. Note that in this case r{\displaystyle r} must be even and r1 mod 4{\displaystyle r\equiv 1{\text{ mod }}4}.

On the other hand, such p{\displaystyle p} may be undesirable from a security point of view because they may make an attack with the Discrete Logarithm variant of the Number Field Sieve easier.

The following Algorithm B doesn't have this disadvantage, but it also doesn't have the fast arithmetic modulo p{\displaystyle p} Algorithm A has in that case.

Algorithm B

  1. Select a Q{\displaystyle Q}-bit prime q{\displaystyle q} so that q7 mod 12{\displaystyle q\equiv 7\ {\text{mod}}\ 12}.
  2. Find the roots r1{\displaystyle r_{1}} and r2{\displaystyle r_{2}} of X2X+1 mod q{\displaystyle X^{2}-X+1\ {\text{mod}}\ q}.
  3. Find a kZ{\displaystyle k\in \mathbb {Z} } such that p=ri+kq{\displaystyle p=r_{i}+k\cdot q} is a P{\displaystyle P}-bit prime with p2 mod 3{\displaystyle p\equiv 2\ {\text{mod}}\ 3} for i{1,2}{\displaystyle i\in \{1,2\}}
Correctness of Algorithm B:
Since we chose q7 mod 12{\displaystyle q\equiv 7\ {\text{mod}}\ 12} it follows immediately that q1 mod 3{\displaystyle q\equiv 1\ {\text{mod}}\ 3} (because 71 mod 3{\displaystyle 7\equiv 1\ {\text{mod}}\ 3} and 312{\displaystyle 3\mid 12}). From that and quadratic reciprocity we can deduce that r1{\displaystyle r_{1}} and r2{\displaystyle r_{2}} exist.
To check that qp2p+1{\displaystyle q\mid p^{2}-p+1} we consider again p2p+1{\displaystyle p^{2}-p+1} for ri{1,2}{\displaystyle r_{i}\in \{1,2\}} and get that p2p+1=ri2+2rikq+k2q2rikq+1=ri2ri+1+q(2rk+k2qk)=q(2rk+k2qk){\displaystyle p^{2}-p+1=r_{i}^{2}+2r_{i}kq+k^{2}q^{2}-r_{i}-kq+1=r_{i}^{2}-r_{i}+1+q(2rk+k^{2}q-k)=q(2rk+k^{2}q-k)}, since r1{\displaystyle r_{1}} and r2{\displaystyle r_{2}} are roots of X2X+1{\displaystyle X^{2}-X+1} and hence qp2p+1{\displaystyle q\mid p^{2}-p+1}.

Subgroup selection

In the last paragraph we have chosen the sizes p{\displaystyle p} and q{\displaystyle q} of the finite field GF(p6){\displaystyle GF(p^{6})} and the multiplicative subgroup of GF(p6){\displaystyle GF(p^{6})^{*}}, now we have to find a subgroup g{\displaystyle \langle g\rangle } of GF (p6){\displaystyle GF\!\ (p^{6})^{*}} for some gGF(p6){\displaystyle g\in GF(p^{6})} such that g∣=q{\displaystyle \mid \!\!\langle g\rangle \!\!\mid =q}.

However, we do not need to find an explicit gGF(p6){\displaystyle g\in GF(p^{6})}, it suffices to find an element cGF(p2){\displaystyle c\in GF(p^{2})} such that c=Tr(g){\displaystyle c=Tr(g)} for an element gGF(p6){\displaystyle g\in GF(p^{6})} of order q{\displaystyle q}. But, given Tr(g){\displaystyle Tr(g)}, a generator g{\displaystyle g} of the XTR (sub)group can be found by determining any root of F(Tr(g), X){\displaystyle F(Tr(g),\ X)}que se ha definido anteriormente . Para encontrar taldo{\displaystyle c}podemos echar un vistazo a la propiedad 5 deF(do, incógnita){\displaystyle F(c,\ X)}aquí afirmando que las raíces deF(do, incógnita){\displaystyle F(c,\ X)}tener un orden de divisiónpag2pag+1{\displaystyle p^{2}-p+1}si y solo siF(do, incógnita){\displaystyle F(c,\ X)}es irreductible . Después de encontrar taldo{\displaystyle c}Necesitamos comprobar si realmente está en orden.q{\displaystyle q}, pero primero nos centraremos en cómo seleccionardoGRAMOF(pag2){\displaystyle c\in GF(p^{2})}de tal manera queF(do, incógnita){\displaystyle F(c,\ X)}es irreductible.

Un enfoque inicial es seleccionardoGRAMOF(pag2)GRAMOF(pag){\displaystyle c\in GF(p^{2})\backslash GF(p)}aleatoriamente, lo cual se justifica por el siguiente lema.

Lema: Para un elemento seleccionado aleatoriamentedoGRAMOF(pag2){\displaystyle c\in GF(p^{2})}la probabilidad de queF(do, incógnita)=incógnita3doincógnita2+dopagincógnita1GRAMOF(pag2)[incógnita]{\displaystyle F(c,\ X)=X^{3}-cX^{2}+c^{p}X-1\in GF(p^{2})[X]}es irreducible es aproximadamente un tercio.

Ahora bien, el algoritmo básico para encontrar uno adecuadoTr(gramo){\displaystyle Tr(g)}es el siguiente:

Esquema del algoritmo

  1. Elige uno al azardoGRAMOF(pag2)GRAMOF(pag){\displaystyle c\in GF(p^{2})\backslash GF(p)}.
  2. SiF(do, incógnita){\displaystyle F(c,\ X)}Si es reducible, entonces vuelva al Paso 1.
  3. Utilice el algoritmo 1 para calculard=do(pag2pag+1)/q{\displaystyle d=c_{(p^{2}-p+1)/q}}.
  4. Sid{\displaystyle d}no está de ordenq{\displaystyle q}, vuelva al paso 1.
  5. DejarTr(gramo)=d{\displaystyle Tr(g)=d}.

Resulta que este algoritmo efectivamente calcula un elemento deGRAMOF(pag2){\displaystyle GF(p^{2})}eso es igual aTr(gramo){\displaystyle Tr(g)}para algunosgramoGRAMOF(pag6){\displaystyle g\in GF(p^{6})}del ordenq{\displaystyle q}.

Se pueden encontrar más detalles sobre el algoritmo, su corrección, tiempo de ejecución y la demostración del lema en "Una descripción general del sistema de clave pública XTR" en [ 1 ] .

Esquemas criptográficos

En esta sección se explica cómo se pueden aplicar a la criptografía los conceptos anteriores que utilizan trazas de elementos. En general, XTR se puede usar en cualquier criptosistema que se base en el problema del logaritmo discreto (de subgrupos). Dos aplicaciones importantes de XTR son el intercambio de claves Diffie-Hellman y el cifrado ElGamal . Comenzaremos con Diffie-Hellman.

Acuerdo clave XTR-DH

Suponemos que tanto Alice como Bob tienen acceso a los datos de la clave pública XTR.(pag,q,Tr(gramo)){\displaystyle \left(p,q,Tr(g)\right)}y tienen la intención de acordar una clave secreta compartida.K{\displaystyle K}Pueden hacerlo utilizando la siguiente versión XTR del intercambio de claves Diffie-Hellman:

  1. Alice eligeaZ{\displaystyle a\in \mathbb {Z} }aleatoriamente con1<a<q2{\displaystyle 1<a<q-2}, se calcula con el Algoritmo 1Sa(Tr(gramo))=(Tr(gramoa1),Tr(gramoa),Tr(gramoa+1))GRAMOF(pag2)3{\displaystyle S_{a}(Tr(g))=\left(Tr(g^{a-1}),Tr(g^{a}),Tr(g^{a+1})\right)\in GF(p^{2})^{3}}y envíaTr(gramoa)GRAMOF(pag2){\displaystyle Tr(g^{a})\in GF(p^{2})}a Bob.
  2. Bob recibeTr(gramoa){\displaystyle Tr(g^{a})}De Alicia, selecciona al azarbZ{\displaystyle b\in \mathbb {Z} }con1<b<q2{\displaystyle 1<b<q-2}, aplica el Algoritmo 1 para calcularSb(Tr(gramo))=(Tr(gramob1),Tr(gramob),Tr(gramob+1))GRAMOF(pag2)3{\displaystyle S_{b}(Tr(g))=\left(Tr(g^{b-1}),Tr(g^{b}),Tr(g^{b+1})\right)\in GF(p^{2})^{3}}y envía Tr(gramob)GRAMOF(pag2){\displaystyle Tr(g^{b})\in GF(p^{2})}a Alicia.
  3. Alicia recibeTr(gramob){\displaystyle Tr(g^{b})}De Bob, calcula con el Algoritmo 1Sa(Tr(gramob))=(Tr(gramo(a1)b),Tr(gramoab),Tr(gramo(a+1)b))GRAMOF(pag2)3{\displaystyle S_{a}(Tr(g^{b}))=\left(Tr(g^{(a-1)b}),Tr(g^{ab}),Tr(g^{(a+1)b})\right)\in GF(p^{2})^{3}}y determinaK{\displaystyle K}Residencia enTr(gramoab)GRAMOF(pag2){\displaystyle Tr(g^{ab})\in GF(p^{2})}.
  4. Bob aplica de forma análoga el Algoritmo 1 para calcularSb(Tr(gramoa))=(Tr(gramoa(b1)),Tr(gramoab),Tr(gramoa(b+1)))GRAMOF(pag2)3{\displaystyle S_{b}(Tr(g^{a}))=\left(Tr(g^{a(b-1)}),Tr(g^{ab}),Tr(g^{a(b+1)})\right)\in GF(p^{2})^{3}}y también determinaK{\displaystyle K}Residencia enTr(gramoab)GRAMOF(pag2){\displaystyle Tr(g^{ab})\in GF(p^{2})}.

Cifrado XTR ElGamal

Para el cifrado ElGamal, suponemos ahora que Alice es la propietaria de los datos de la clave pública XTR.(pag,q,Tr(gramo)){\displaystyle (p,q,Tr(g))}y que ha seleccionado un número entero secretok{\displaystyle k}, calculadoTr(gramok){\displaystyle Tr(g^{k})}y publicó el resultado. Dados los datos de clave pública XTR de Alice(pag,q,Tr(gramo),Tr(gramok)){\displaystyle \left(p,q,Tr(g),Tr(g^{k})\right)}Bob puede cifrar un mensajeMETRO{\displaystyle M}, destinado a Alice, utilizando la siguiente versión XTR del cifrado ElGamal:

  1. Bob selecciona al azar unbZ{\displaystyle b\in \mathbb {Z} }con1<b<q2{\displaystyle 1<b<q-2}y calcula con el Algoritmo 1Sb(Tr(gramo))=(Tr(gramob1),Tr(gramob),Tr(gramob+1))GRAMOF(pag2)3{\displaystyle S_{b}(Tr(g))=\left(Tr(g^{b-1}),Tr(g^{b}),Tr(g^{b+1})\right)\in GF(p^{2})^{3}}.
  2. A continuación, Bob aplica el Algoritmo 1 para calcularSb(Tr(gramok))=(Tr(gramo(b1)k),Tr(gramobk),Tr(gramo(b+1)k))GRAMOF(pag2)3{\displaystyle S_{b}(Tr(g^{k}))=\left(Tr(g^{(b-1)k}),Tr(g^{bk}),Tr(g^{(b+1)k})\right)\in GF(p^{2})^{3}}.
  3. Bob determina una clave de cifrado simétrico.K{\displaystyle K}Residencia enTr(gramobk)GRAMOF(pag2){\displaystyle Tr(g^{bk})\in GF(p^{2})}.
  4. Bob utiliza un método de cifrado simétrico acordado con claveK{\displaystyle K}para encriptar su mensajeMETRO{\displaystyle M}lo que da como resultado el cifradomi{\displaystyle E}.
  5. Bob envía(Tr(gramob), mi){\displaystyle (Tr(g^{b}),\ E)}a Alicia.

Al recibir(Tr(gramob), mi){\displaystyle (Tr(g^{b}),\ E)}Alice descifra el mensaje de la siguiente manera:

  1. Alice calculaSk(Tr(gramob))=(Tr(gramob(k1)),Tr(gramobk),Tr(gramob(k+1)))GRAMOF(pag2)3{\displaystyle S_{k}(Tr(g^{b}))=\left(Tr(g^{b(k-1)}),Tr(g^{bk}),Tr(g^{b(k+1)})\right)\in GF(p^{2})^{3}}.
  2. Alice determina la clave simétrica.K{\displaystyle K}Residencia enTr(gramobk)GRAMOF(pag2){\displaystyle Tr(g^{bk})\in GF(p^{2})}.
  3. Alice utiliza el método de cifrado simétrico acordado con claveK{\displaystyle K}para descifrarmi{\displaystyle E}lo que da como resultado el mensaje originalMETRO{\displaystyle M}.

El esquema de cifrado aquí descrito se basa en una versión híbrida común del cifrado ElGamal, donde la clave secretaK{\displaystyle K}se obtiene mediante un sistema de clave pública asimétrica y luego el mensaje se cifra con un método de cifrado de clave simétrica acordado por Alice y Bob.

En el cifrado ElGamal más tradicional, el mensaje está restringido al espacio de claves, que en este caso seríaGRAMOF(pag2){\displaystyle GF(p^{2})}, porqueTr(gramo)GRAMOF(pag2) pagGRAMOF(pag6){\displaystyle Tr(g)\in GF(p^{2})\ \forall p\in GF(p^{6})^{*}}El cifrado en este caso es la multiplicación del mensaje por la clave, que es una operación invertible en el espacio de claves.GRAMOF(pag2){\displaystyle GF(p^{2})}.

Concretamente, esto significa que si Bob quiere cifrar un mensajeMETRO {\displaystyle M\!\ '}, primero tiene que convertirlo en un elementoMETRO{\displaystyle M}deGRAMOF(pag2){\displaystyle GF(p^{2})}y luego calcular el mensaje cifradomi{\displaystyle E}comomi=KMETROGRAMOF(pag2){\displaystyle E=K\cdot M\in GF(p^{2})}Tras la recepción del mensaje cifradomi{\displaystyle E}Alice puede recuperar el mensaje original.METRO{\displaystyle M}mediante computaciónMETRO=miK1{\displaystyle M=E\cdot K^{-1}}, dóndeK1{\displaystyle K^{-1}}es lo inverso deK{\displaystyle K}enGRAMOF(pag2){\displaystyle GF(p^{2})}.

Seguridad

Para analizar las propiedades de seguridad del esquema de cifrado XTR descrito anteriormente , primero es importante verificar la seguridad del grupo XTR, es decir, la dificultad de resolver el problema del logaritmo discreto en dicho grupo. A continuación, se establecerá la equivalencia entre el problema del logaritmo discreto en el grupo XTR y la versión XTR del mismo problema, utilizando únicamente las trazas de los elementos.

Logaritmos discretos en generalGRAMOF(pagt){\displaystyle GF\left(p^{t}\right)}

Dejemos que ahoraγ{\displaystyle \langle \gamma \rangle }ser un grupo multiplicativo de ordenω{\displaystyle \omega }. La seguridad del protocolo Diffie-Hellman enγ{\displaystyle \langle \gamma \rangle }Se basa en el problema de Diffie-Hellman (DH) de computación.γincógnitay dado γ,γincógnita y γy{\displaystyle \gamma ^{xy}{\text{ given }}\gamma ,\gamma ^{x}{\text{ and }}\gamma ^{y}}. Nosotros escribimosDH(γincógnita, γy)=γincógnitay{\displaystyle DH(\gamma ^{x},\ \gamma ^{y})=\gamma ^{xy}}. Hay otros dos problemas relacionados con el problema DH. El primero es el problema de decisión de Diffie-Hellman (DHD) para determinar sido=DH(a,b){\displaystyle c=DH(a,b)}para dadoa,b,doγ{\displaystyle a,b,c\in \langle \gamma \rangle }y el segundo es el problema del logaritmo discreto (DL) para encontrarincógnita=DL(a){\displaystyle x=DL(a)}para un dadoa=γincógnitaγ con 0incógnita<ω{\displaystyle a=\gamma ^{x}\in \langle \gamma \rangle {\text{ with }}0\leq x<\omega }.

El problema DL es al menos tan difícil como el problema DH y generalmente se supone que si el problema DL enγ{\displaystyle \langle \gamma \rangle }Si es intratable, entonces también lo son los otros dos.

Dada la factorización prima deω{\displaystyle \omega }el problema DL enγ{\displaystyle \langle \gamma \rangle }puede reducirse al problema DL en todos los subgrupos deγ{\displaystyle \langle \gamma \rangle }con orden primo debido al algoritmo de Pohlig-Hellman . Por lo tantoω{\displaystyle \omega }Se puede asumir con seguridad que es primo.

Para un subgrupoγ{\displaystyle \langle \gamma \rangle }de orden primoω{\displaystyle \omega }del grupo multiplicativoGRAMOF(pagt){\displaystyle GF\left(p^{t}\right)^{*}}de un campo de extensiónGRAMOF(pagt){\displaystyle GF(p^{t})}deGRAMOF(pag){\displaystyle GF(p)}para algunost{\displaystyle t}Ahora existen dos formas posibles de atacar el sistema. Se puede enfocar en todo el grupo multiplicativo o en el subgrupo. Para atacar el grupo multiplicativo, el método más conocido es la variante del logaritmo discreto de la criba de cuerpos numéricos o, alternativamente, en el subgrupo se puede utilizar uno de varios métodos que tomanO(ω){\displaystyle {\mathcal {O}}({\sqrt {\omega }})}operaciones enγ{\displaystyle \langle \gamma \rangle }, como el método rho de Pollard .

Para ambos enfoques la dificultad del problema DL enγ{\displaystyle \langle \gamma \rangle }depende del tamaño del subcampo circundante mínimo deγ{\displaystyle \langle \gamma \rangle }y en el tamaño de su orden primoω{\displaystyle \omega }. SiGRAMOF(pagt){\displaystyle GF\left(p^{t}\right)}en sí mismo es el subcampo circundante mínimo deγ{\displaystyle \langle \gamma \rangle }yω{\displaystyle \omega }es suficientemente grande, entonces el problema DL enγ{\displaystyle \langle \gamma \rangle }es tan difícil como el problema general de DL enGRAMOF(pagt){\displaystyle GF\left(p^{t}\right)}.

Los parámetros XTR ahora se eligen de tal manera quepag{\displaystyle p}no es pequeño,q{\displaystyle q}es suficientemente grande ygramo{\displaystyle \langle g\rangle }no puede estar integrado en un verdadero subcampo deGRAMOF(pag6){\displaystyle GF(p^{6})}, desdeqpag2pag+1{\displaystyle q\mid p^{2}-p+1}ypag2pag+1{\displaystyle p^{2}-p+1}es un divisor deGRAMOF(pag6)∣ =pag61{\displaystyle \mid \!GF(p^{6})^{*}\!\mid =p^{6}-1}pero no dividepags1 para s{1,2,3}{\displaystyle p^{s}-1{\text{ for }}s\in \{1,2,3\}}y por lo tantogramo{\displaystyle \langle g\rangle }no puede ser un subgrupo deGRAMOF (pags){\displaystyle GF\!\ (p^{s})^{*}}paras{1,2,3}{\displaystyle s\in \{1,2,3\}}. De ello se deduce que el problema DL en el grupo XTR puede considerarse tan difícil como el problema DL enGRAMOF(pag6){\displaystyle GF(p^{6})}.

Seguridad de XTR

Los protocolos criptográficos basados ​​en logaritmos discretos pueden utilizar diversos subgrupos, como grupos de puntos de curvas elípticas o subgrupos del grupo multiplicativo de un cuerpo finito, como el grupo XTR. Como vimos anteriormente, las versiones XTR de los protocolos de cifrado Diffie-Hellman y ElGamal sustituyen el uso de elementos del grupo XTR por el uso de sus trazas. Esto significa que la seguridad de las versiones XTR de estos esquemas de cifrado ya no se basa en los problemas DH, DHD o DL originales. Por lo tanto, es necesario definir las versiones XTR de dichos problemas, y veremos que son equivalentes (en el sentido de la siguiente definición) a los problemas originales.

Definiciones:

  • Definimos el problema XTR-DH como el problema de computación.Tr(gramoincógnitay){\displaystyle Tr(g^{xy})}dadoTr(gramoincógnita){\displaystyle Tr(g^{x})}yTr(gramoy){\displaystyle Tr(g^{y})}y escribimosincógnitaDH(gramoincógnita, gramoy)=gramoincógnitay{\displaystyle XDH(g^{x},\ g^{y})=g^{xy}}.
  • El problema XTR-DHD es el problema de determinar siincógnitaDH(a,b)=do{\displaystyle XDH(a,b)=c}paraa,b,doTr(gramo){\displaystyle a,b,c\in Tr(\langle g\rangle )}.
  • DadoaTr(gramo){\displaystyle a\in Tr(\langle g\rangle )}, el problema XTR-DL es encontrarincógnita=incógnitaDL(a){\displaystyle x=XDL(a)}, es decir0incógnita<q{\displaystyle 0\leq x<q}de tal manera quea=Tr(gramoincógnita){\displaystyle a=Tr(g^{x})}.
  • Decimos que ese problemaA{\displaystyle {\mathcal {A}}}es (a,b)-equivalente al problemaB{\displaystyle {\mathcal {B}}}, si se presenta algún problemaA{\displaystyle {\mathcal {A}}}(oB{\displaystyle {\mathcal {B}}}) se puede resolver con como máximo a (o b) llamadas a un algoritmo de resolución de problemasB{\displaystyle {\mathcal {B}}}(oA{\displaystyle {\mathcal {A}}}).

Tras presentar las versiones XTR de estos problemas, el siguiente teorema revela un resultado importante que establece la conexión entre los problemas XTR y los que no lo son, los cuales, de hecho, son equivalentes. Esto implica que la representación XTR de los elementos con sus trazas es, como se ha visto anteriormente, tres veces más rápida que la representación habitual sin comprometer la seguridad.

Teorema: Se cumplen las siguientes equivalencias:

i. El problema XTR-DL es (1,1)-equivalente al problema DL engramo{\displaystyle \langle g\rangle }.
ii. El problema XTR-DH es (1,2)-equivalente al problema DH engramo{\displaystyle \langle g\rangle }.
iii. El problema XTR-DHD es (3,2)-equivalente al problema DHD engramo{\displaystyle \langle g\rangle }.

Esto significa que un algoritmo que resuelve XTR-DL, XTR-DH o XTR-DHD con una probabilidad no despreciable puede transformarse en un algoritmo que resuelve el problema no XTR correspondiente DL, DH o DHD con una probabilidad no despreciable y viceversa. En particular, la parte ii. implica que determinar la clave pequeña XTR-DH (siendo un elemento deGRAMOF(pag2){\displaystyle GF(p^{2})}) es tan difícil como determinar toda la clave DH (siendo un elemento deGRAMOF(pag6){\displaystyle GF(p^{6})}) en el grupo de representacióngramo{\displaystyle \langle g\rangle }.

Referencias

  1. 1 2 3 Lenstra, Arjen K.; Verheul, Eric R. "Una descripción general del sistema de clave pública XTR" (PDF) . CiteSeerX 10.1.1.104.2847 . Archivado del original (PDF) el 15 de abril de 2006. Recuperado el 22 de marzo de 2008 . 
  2. Lenstra, Arjen K.; Verheul, Eric R., El sistema de clave pública XTR , CiteSeerX 10.1.1.95.4291