Análisis de un criptosistema cuadrático compacto

64 

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Avanzados del Instituto Polit´ecnico Nacional

An´

alisis de un

Criptosistema Cuadr´

atico

Compacto

TESIS

que, para obtener el t´ıtulo de

Maestro en Ciencias,

presenta

Juan Carlos Dom´ınguez

Tranquilino

Asesor:

Dr. Feli´

u D. Sagols Troncoso

(2)
(3)

´Indice general

Introducci´on V

1. Ret´ıculas 1

1.1. Introducci´on a las ret´ıculas . . . 1

1.2. Reducci´on de Bases de Ret´ıculas . . . 6

1.2.1. Reducci´on de Gauss . . . 6

1.2.2. Algoritmo de reducci´on de bases . . . 11

2. Fundamentos de Criptograf´ıa 17 2.1. Esquema de cifrado . . . 18

2.1.1. Cifrado en la historia . . . 21

2.2. Clave Sim´etrica y Asim´etrica . . . 24

2.2.1. Criptograf´ıa de Clave Sim´etrica . . . 24

2.2.2. Criptograf´ıa de Clave Asim´etrica . . . 26

2.2.3. Criptograf´ıa Mixta (Sim´etrico y Asim´etrico) . . . 29

2.3. Criptoan´alisis y nociones de Seguridad . . . 31

3. Criptosistema Cuadr´atico Compacto 33 3.1. Problema de la Mochila . . . 33

3.1.1. Problema Mochila Compacto . . . 35

3.1.2. Problema de la Mochila Cuadr´atico . . . 36

3.1.3. Criptosistema Merkle-Hellman . . . 36

3.2. El Criptosistema Cuadr´atico Compacto . . . 37

(4)

3.2.1. Generaci´on de Claves . . . 42

3.2.2. Cifrado . . . 44

3.2.3. Descifrado . . . 44

4. Criptoan´alisis y Resultados 45 4.1. Criptoan´alisis . . . 45

4.2. Implementaci´on y Resultados . . . 49

4.2.1. Implementaci´on del criptosistema . . . 49

4.2.2. Implementaci´on del criptoan´alisis . . . 50

(5)

Introducci´

on

La criptograf´ıa es la ciencia que se encarga de proteger informaci´on pa-ra almacenarla y tpa-ransmitirla por canales inseguros mientpa-ras que por crip-toan´alisis nos referimos al estudio del nivel de seguridad que presenta un sistema criptogr´afico con respecto a posibles ataques.

En este trabajo presentamos una familia de sistemas criptogr´aficos de-nominado gen´ericamente de tipo mochila que esencialmente se basan en va-riantes del problema de la mochila [34] que es un paradigma fundamental en optimizaci´on combinatoria.

A pesar de su aparente fortaleza, los sistemas criptogr´aficos tipo mochi-la son altamente vulnerables a ataques basados en el uso de ret´ıcumochi-las. Las ret´ıculas son estructuras combinatorias que se aplican en diversas ´areas como Teor´ıa de Grupos [7], Teor´ıa de Gr´aficas [39], M´usica [12], entre otros.

En t´erminos simples una ret´ıcula es el conjunto de vectores en Rn ge-nerado por las combinaciones lineales enteras de un conjunto de vectores linealmente independientes, al que se le denominabase de la ret´ıcula. Las ba-ses de una ret´ıcula particular siempre tienen el mismo n´umero de elementos denominado dimensi´on de la ret´ıcula.

En general, una ret´ıcula tiene muchas bases. Con algunas de estas ba-ses resulta simple e intuitivo representar a los dem´as vectores en la ret´ıcula. Con otras puede resultar dif´ıcil hacer la representaci´on de algunos vectores. Aquellas bases que permiten representaciones m´as sencillas se caracterizan por tener vectores de longitud peque˜na y resultan ser pr´acticamente ortogo-nales. Un problema combinatorio interesante consiste en encontrar la base

(6)

que bajo alg´un criterio minimice las longitudes de sus elementos [22]. Es-te problema ha sido resuelto satisfactoriamenEs-te y exisEs-ten algoritmos que se pueden implementar de manera eficiente [25].

En los sistemas criptogr´aficos de tipo mochila un mensaje m~ = (m1, m2,

. . . , mn) se encripta como una combinaci´on lineal de la formac=

Pn

i=1miFi donde mi es un cero o un uno y Fi es un valor entero apropiado para

i = 1, . . . , n. Los valores F1, . . . , Fn forman la llave p´ublica del sistema. Lo interesante es que el mensaje original se puede expresar como una combina-ci´on lineal entera de un conjunto de vectores con entradas enteras. Es decir, el mensaje visto como un vector pertenece a la ret´ıcula generada por cierto conjunto de vectores. Como las entradas de m~ son n´umeros cero o uno la norma de este vector es peque˜na y as´ı resulta altamente probable que forme parte de una base m´ınima. De lo contrario una b´usqueda exhaustiva es capaz de localizarla en un tiempo razonablemente corto. Esta es la base para los m´etodos de criptoan´alisis de los criptosistemas mochila.

El objetivo de este trabajo ha sido entender las bases de los criptosistemas de tipo mochila as´ı como sus variantes. Escribir programas que implementen estos criptosistemas y finalmente desarrollar las herramientas relacionadas con ret´ıculas para tratar de romper estos c´odigos. Nuestro trabajo se basa en los art´ıculos “Quadratic compact knapsack public-key cryptosystem” de Bao-cang Wang y Yupu Hu [4] (2010) y “Cryptanalysis of a quadratic knapsack cryptosystem” de Amr M. Youssef [41] (2011).

En la programaci´on se tuvieron que resolver problemas como es el manejo de n´umeros muy grandes. Se programaron varias variantes de criptosistemas de tipo mochila como el de Merkler-Hellman. La programaci´on del m´etodo para romper el c´odigo se hizo en el lenguaje de programaci´on Scheme y ´esta fue una decisi´on favorable porque gracias a ello se logr´o superar la tasa de rompimiento reportada en la literatura.

(7)
(8)
(9)

Cap´ıtulo 1

Ret´ıculas

1.1.

Introducci´

on a las ret´ıculas

Una ret´ıcula L es un subconjunto peri´odico de puntos en Rn. Los pri-meros en estudiar ret´ıculas fueron Joseph Louis Lagrange y Carl Friedrich Gauss [32]. Las ret´ıculas son consideradas objetos matem´aticos y sus pro-piedades han sido usadas recientemente para dise˜na algoritmos y en cripto-graf´ıa [32]. Los problemas derivados de las ret´ıculas son computacionalmente dif´ıciles. Un problema derivado de las ret´ıculas es el “problema del vector m´as corto” (SVP) que consiste en encontrar el vector de longitud m´ınima con res-pecto a la norma. Otro es el “problema del vector m´as cercano” (CVP, por sus siglas en ingl´es) en el cual dado un vector en Rn se debe encontrar el vector en la ret´ıcula que minimiza la distancia entre ellos (con respecto a la norma usual).

Definici´on 1.1. Una ret´ıcula L es un subgrupo aditivo discreto de Rn.

Nota.Se sigue de esta definici´on que la ´unica operaci´on entre los elemen-tos de la ret´ıcula es la suma, as´ı para todo~v L

~v+. . .+~v=α~v.

Ejemplo 1.2. En la Figura 1.1 se muestra un ejemplo de una ret´ıcula

2–dimensional generada por los vectores (1,3) y (2,2). En esta figura se

(10)

observa la periodicidad de los puntos que conforman la ret´ıcula, as´ı como su naturaleza discreta.

Figura 1.1: Ret´ıcula 2–dimensional

Una ret´ıcula es pr´acticamente un espacio vectorial pues se cumplen las propiedades de estos espacios para la suma y multiplicaci´on escalar. Sin em-bargo, los “escalares” forman un anillo conmutativo con identidad y no un campo.

Una propiedad topol´ogica de las ret´ıculas es la siguiente:

Lema 1.3. No es posible construir una sucesi´on de vectores (no nulos) en la ret´ıcula L, cuya sucesi´on de normas tenga l´ımite cero.

Demostraci´on. La ret´ıculaLes un subgrupo, de ah´ı,~0H. Por otra parte,

L es discreto, esto implica que existe ǫ > 0 tal que ǫ < k~x~0k =k~xk para toda~xH. Luego, ´ınf{k~xk:~x H}>0 y as´ı la imposibilidad de construir

dicha sucesi´on.

(11)

norma pero en este trabajo utilizaremos exclusivamente la euclidiana). La norma o longitud de este vector minimal es el primer m´ınimode la ret´ıcula y se denota λ1(L).

Definici´on 1.4. Una base para una ret´ıcula L es un conjunto de vecto-res linealmente independientes (l.i.)~b1, . . . ,~bn ∈ L, tal que cualquier vector

en L puede escribirse como una combinaci´on lineal de los vectores~bi, con

coeficientes enteros.

Lema 1.5. Sea~v1 un vector enLcon normaλ1(L), entonces cualquier vector

~

w L tal que la pareja (~v1, ~w) es linealmente dependiente (l.d.), puede ser

escrita como w~ =α~v1 para alg´un entero α.

Demostraci´on. En efecto, pues si supusi´eramos por el contrario queα no es un entero, tomando a α es el entero m´as cercano aα,w~ − ⌈α~v1 ser´ıa un vector no cero en L tal que

kw~ − ⌈α~v1k=kα~v1− ⌈α⌋~v1k=|α− ⌈α⌋ |k~v1k<k~v1k

lo cual contradice la m´ınimalidad de la longitud de~v1.

De lo anterior se pueden inferir dos cosas, por una parte la existencia de una base y por la otra, que los vectores que componen a esa base pue-den dar lugar a los n vectores cuyas longitudes son las m´as peque˜nas (no necesariamente ´unicos) tales que que kvik ≤ kvjk para 1≤i < j ≤n.

Lema 1.6. Toda ret´ıcula L admite una base.

Bosquejo de la demostraci´on. Sean v1, v2, . . . , vn ∈ L

linealmen-te independienlinealmen-tes. Sea L1 = span(v1) ∩ L donde span(v1) es el espacio

generado por v1. Sea b1 el vector con menor longitud de L1. Ahora, sea

L2 = span(v1, v2)∩L y sea b2 el vector con menor longitud de L2 −L1. La

base para la ret´ıcula se obtiene repitiendo el proceso hasta general el vector

bn que ser´a el vector con menor longitud de Ln−Ln−1− · · · −L1

(12)

Definici´on 1.7. Un subconjunto L Rm es una ret´ıcula si existen n

vec-toresb1, . . . , bn∈Rm tales que

L={ n

X

j=1

αjbj :αj ∈Z,1≤j ≤n}.

El conjunto B ={b1, . . . , bn} es una base de la ret´ıcula.

Retomando la notaci´on de espacios vectoriales en ret´ıculas, la cardinali-dad de la base es ladimensi´on deLy coincide con la dimensi´on del subes-pacio vectorial deRm, generado por la ret´ıcula L.

Sea L una ret´ıcula de dimensi´on n en Rm y sean B, B

dos bases de L. Cada base puede ser representada como una matriz de dimensi´on m ×n, donde cada columna contiene las coordenadas de un vector en la base B

(respectivamente para B′

). Por abuso de notaci´on, y siempre que esto no cause confusi´on, a las matrices se˜naladas tambi´en se les denotar´a porB yB′ respectivamente.

Ejemplo 1.8. Sea L una ret´ıcula de R3 y seaB ={v1 =3,1,0, v2 =

−1,√3,0, v1 = (0,0,1)} una base de L. La forma matricial de la base es:

B =

  

3 1 0 1 √3 0 0 0 1

  .

Sea L una ret´ıcula de dimensi´on n en Rm y B, B

dos bases. Dado que todos los vectores de B′

pertenecen a L, entonces es claro que se pueden expresar como combinaciones lineales de los vectores en B (con coeficientes enteros). As´ı, existe una matriz cuadradaU de dimensi´onn tal que:

B′

=U B.

Ejemplo 1.9. Continuando con el Ejemplo 1.8, tenemos que la matriz

B′ B′ =   

1 √3 1

31 √31 1

31 √31 0

(13)

es tambi´en una base de L porque existe la matriz

U =

  

0 1 1 1 1 1 1 1 0

  ,

que satisface:

U B =

  

0 1 1 1 1 1 1 1 0

  ∗    √

3 1 0 1 √3 0 0 0 1

  =   

1 √3 1

31 √31 1

31 √31 0

  =B′

.

Por otra parte, dado que U es invertible B = U−1

B′ = U′

B′

. Ambas matrices tienen coeficientes enteros y el valor absoluto de sus determinantes es uno; as´ı decimos que son matrices unimodulares. En general, se tiene que dada una base B y una base B′

y sea U y U′

las matrices de cambio de base correspondientes, entonces se tiene que, B =U B′

y que, B′ =U′

B

luego B = U U′

B y B′ = U′

U B′

y por lo tanto U y U′

son inversas una de otra, as´ı siempre deben ser unimodulares.

Ejemplo 1.10. Continuando con el Ejemplo 1.9, se observa que U′

es: U′ =   

1 1 0 1 1 1 0 1 1

  .

En este caso en particular se observa que:

Det(U′

) = 1 Det(U) = 1,

y adem´as: U′ U =   

1 1 0 1 1 1 0 1 1

     

0 1 1 1 1 1 1 1 0

  =   

1 0 0 0 1 0 0 0 1

  .

En general se tiene que|det(B)|=|det(B′

)|, pues|det(B)|=|det(U′

B′ )|=

|det(U′

)||det(B′

)| = |det(B′

(14)

1.2.

Reducci´

on de Bases de Ret´ıculas

1.2.1.

Reducci´

on de Gauss

Antes de formalizar la reducci´on de las ret´ıculas enRn resulta ilustrativo dar algunos ejemplos que utilizan dimensiones peque˜nas. Prestemos atenci´on en las ret´ıculas en dos dimensiones, es decir subgrupos aditivos de Z2 (en particular aquellos no isomorfos aZ). En este caso, se considera a una base (~u, ~v) donde ~u y ~v son linealmente independientes. Tomemos como ejemplo la ret´ıcula de la Figura 1.2. En ella se resaltan dos vectores que forman una base de la ret´ıcula y que fueron elegidos aleatoriamente de entre las bases de la ret´ıcula. Se observa que una base aleatoria no siempre proporciona una descripci´on favorable de la ret´ıcula.

Figura 1.2: Ret´ıcula con una base aleatoria

(15)

puede ser f´acilmente construida a partir de la suma gr´afica de los vectores. Otra ventaja que se tiene de usar una base de menor longitud es el uso de n´umeros peque˜nos al momento de dar la combinaci´on lineal para generar alg´un elemento de la ret´ıcula.

Figura 1.3: Ret´ıcula con una base con vectores peque˜nos

Existen algoritmos para reducir secuencialmente la longitud de los vec-tores de una base. As´ı se puede construir una base con vecvec-tores de longitud minimal con respecto de la norma. Entre estos tenemos el algoritmo de re-ducci´on de Gauss (Algoritmo 1).

Este es un algoritmo “greedy” o glot´on. Para resolver un determinado problema este tipo de algoritmos siguen una heur´ıstica que consiste en elegir la opci´on ´optima en cada paso local tratando de alcanzar una soluci´on ge-neral ´optima. En el caso del algoritmo de Gauss se reduce iterativamente la longitud de los vectores tanto como sea posible.

(16)

Algoritmo 1: Algoritmo de Reducci´on de Gauss

Entrada:(~u, ~v): Base inicial de la ret´ıcula

Salida:u~′

, ~v′

: Base reducida de la ret´ıcula

1 begin

2 if k~uk<k~vk then 3 Intercambia ~u y~v

4 while k~uk ≤ k~vk do

5 λ←h~u, ~vi/k~vk2 (Donde ⌊⌉ es el entero m´as cercano);

~u~uλ~v;

6 Intercambiar~u y~v;

algoritmo de Gauss tiene las siguientes propiedades.

Lema 1.11. El algoritmo siempre devuelve una base correcta para la ret´ıcula.

Demostraci´on. Sean (~u, ~v) la base inicial de la ret´ıcula y (w, ~v~ ) = u~λv, ~v

los vectores generados por la primera iteraci´on del algoritmo de Gauss. Es claro que la ret´ıcula generada por (w, ~v~ ) est´a contenido en la generada por (~u, ~v). Ahora, cualquier vector ~x en la ret´ıcula generada por (~u, ~v) se puede escribir como~x =a~u+b~v =a(~uλ~v) + (λa+b)~v=a ~w+ (λa+b)~v. Luego (w, ~v~ ) es base de la ret´ıcula tambi´en. Lo que ocurre en los siguientes pasos del algoritmo es similar, y as´ı los vectores que entrega el algoritmo forman

una base de la ret´ıcula.

Lema 1.12. El algoritmo siempre para.

(17)

(a) Base aleatoria de la ret´ıcula (~u= (5,7), ~v= (4,4)).

(b) Se reduce el vector ~u a ~u = (4,4) el vector~v permanece igual.

(c) Se reduce el vector (~v a~v= (2,2) y el vector~upermanece igual.

Figura 1.4: Ejemplo gr´afico del algoritmo de Gauss

Lema 1.13. El calculo del valor de λ es en efecto, minimal respecto de la longitud del vector resultante ~uλ~v

Demostraci´on. En efecto puesk~uλ~vkes una funci´on cuadr´atica enλ, y en los n´umeros reales se minimiza cuando λ =h~u, ~vi/k~vk2, luego para enteros

(18)

Lema 1.14. El primer vector de la base generada por el algoritmo en efecto tiene la longitud minimal respecto a la longitud de los vectores de la ret´ıcula

Demostraci´on. Primero, si el algoritmo devuelve (~u, ~v) entonces se sabe que

k~uk ≤ k~vk. Ahora se eligen coeficientea ybtales que~x=a~ub~vno sea cero en la ret´ıcula. La condici´on de salida del ciclo en el algoritmo nos asegura que|h~u, ~vi| ≤ k~uk2/2, y entonces:

k~xk2 =a2k~uk2+ 2ab|h~u, ~vi|+b2k~vk2 a2− |ab|+b2k~uk2

Es claro que c= (a2 − |ab|+b2) es entero. Sin perdida de generalidad se puede asumir queb 6= 0. As´ıc=b2 (a/b)2

− |a/b|+ 1. Por otra parte, dado quex2x+ 1 tiene discriminante negativo entonces x2x+ 1>0 para todo

x R. Entonces, c > 0 y es un numero entero. Luego c 1, por lo tanto

k~xk ≥ k~uk.

Ejemplo 1.15. Aplicaci´on del Algoritmo de Gauss

X (Primera iteraci´on) ~u = (5,7) y ~v = (4,4). Como k~uk ≥ k~vk

entonces:~u= (5,7)−⌊h(5,7),(4,4)i/k(4,4)k2⌉·(4,4)= (5,7)(4,4)= (1,3)

Intercambiando~u y~v se tiene~v(1,3) y~u= (4,4).

X (Segunda iteraci´on) Como k~uk ≥ k~vk entonces:

~u= (4,4)− ⌊h(4,4),(1,3)i/k(1,3)k2⌉ ·(1,3)= (4,4)2(1,3)= (2,2).

In-tercambiando ~u y~v se tiene ~v = (2,2)y ~u= (1,3).

X (Tercera iteraci´on) Como k~uk ≥ k~vk entonces:

~u= (1,3)− ⌊h(1,3),(2,2)i/k(2,2)k2⌉ ·(2,2)= (1,3) + 0(2,2)= (3,1)

Intercambiando~u y~v se tiene~v = (1,3) y ~u= (2,2)

(19)

1.2.2.

Algoritmo de reducci´

on de bases

Sea A una matriz no singular de orden n. Sea L la ret´ıcula generada por los vectores columna de A.

Definici´on 1.16. El volumen de una regi´on DRn est´a definido como

V(D) =

Z

D

1·dµ, donde µes la medida de Lebesgue.

Observe que el det(L) es igual al volumen del paralelep´ıpedoD

D={α1b1+. . .+αnbn: 0≤αj ≤1, j = 1, . . . , n},

donde {b1, . . . , bn} es una base para L. Una consecuencia de esto, es la muy conocida desigualdad de Hadam¨ard [14]:

det(L) n

Y

j=1

kbjk.

Es claro que la igualdad ocurrir´a si y s´olo si,b1, . . . , bn son ortogonales. Por otra parte, no toda ret´ıcula tiene una base ortogonal. Un teorema cl´asico de Hermite [15] afirma que para cada enteron, existe un n´umeroc(n) tal que toda ret´ıcula n-dimensional con una base B ={b1, . . . , bn} satisface:

n

Y

j=1

kbjk ≤c(n)·det(L).

Tal base puede ser vista como una aproximaci´on de una base ortogonal. M´as a´un Hermite mostr´o que se puede tomar:

c(n) = (4/3)n(n−1)/4

.

Minkowski [30] mejor´o la cota demostrando que la desigualdad se sigue cumpliendo al tomar

(20)

dondeVn denota el volumen de la bola unitaria n-dimensional. Sin embargo no se conoce un algoritmo que corra en tiempo polinomial para encontrar una base que satisfaga el resultado de Minkowski.

Por otra parte Lenstra [25] dise˜n´o un algoritmo de tiempo polinomial que encuentra una base que satisface el teorema clasico de Hermite tomando

c(n) = 2n(n−1)/4

bas´andose en el algoritmo de ortogonalizaci´on de Gram-Schmidt. Es por su eficiencia en tiempo que cuando se realizan reducciones de bases se usa este algoritmo para lograr el objetivo.

El algoritmo de ortogonalizaci´on de Gram-Schmidt sirve para generar vectores ortogonales{b∗

1, . . . , b ∗

n}a partir de vectores{b1, . . . , bn}linealmente independientes. Sean

B = (b1, . . . , bn) y B ∗

= (b∗ 1, . . . , b

∗ n),

dos conjuntos, donde losbi’s son los vectores base de la ret´ıcula y losb∗ i’s son definidos como sigue:

b∗

i =bi− i−1

X

k=1

rkib ∗

k, i= 1, . . . , n,

donde

rki =< b ∗

k, bi > / < b ∗ k, b

k>, i= 1, . . . , n.

Teorema 1.17 ([13]). Las siguientes sentencias se cumplen.

El algoritmo de Gram-Schmidt construye una base ortogonal{b∗ 1, . . . , b

∗ n}

paraRn.

b∗

k es la componente ortogonal de bk para el subespacio generado por los

vectores b∗ 1, . . . , b

∗ k−1.

|det(B)|=|det(B∗

)|=Qni=1kb∗ ik. Obs´ervese queB∗

(21)

Definici´on 1.18. Sea B una base para L y sea B∗

la base obtenida del proceso de ortogonalizaci´on de Gram-Schmidt. La base B es llamada una

base reducida si

|rki| ≤1/2, 1≤k < i ≤n, y

kb∗

i+1+ri,i+1b∗ik2 ≥3/4kb ∗

ik2, i= 1, . . . , n−1.

En [25] se puede encontrar un algoritmo con tiempo de ejecuci´on polino-mial para reducir la base. Tal algoritmo consiste en una serie de reducciones de tama˜no e intercambios que se describen brevemente a continuaci´on:

1. SeaB una base para la ret´ıcula L.

2. Sea B∗

la ortogonalizaci´on de B, mediante el algoritmo de Gram-Schmidt.

3. Para i= 2, . . . , ny para k=i1, . . . ,1 reemplazar bi porbi− ⌊rki⌉bk.

4. Si kb∗

i+1 +ri,i+1b∗ik2 < 3/4kb ∗

ik2, para i = 1, . . . , n−1. Para alg´un i intercambiar bi con bi+1 y regresar al paso 1 con una nueva base.

En notaci´on matricial se tiene que en el proceso de ortogonalizaci´on de Gram-Schmidt implica queB∗

=V B, para alguna matriz triangular superior

V con unos en su diagonal. Obs´ervese que los elementos de esta matriz son los rki, as´ı se puede usar esa matriz para verificar la condici´on no. 1 para satisfacer la definici´on de “base reducida”.

Tambi´en se puede observar que cuando en el paso no. 4 se intercambia

bj porbj+1,la siguiente iteraci´on dar´a como resultado a {eb1, . . . ,ebn}como la nueva base. Despu´es de la aplicaci´on del paso no. 3 se tendr´a {be∗

1, . . . ,be∗n} como la nueva base ortogonal (usando el algoritmo de Gram-Schmidt), de lo anterior se puede ver que:

ebi =bi, para todai6=j, j+ 1,

(22)

As´ı,be∗

i =b∗i, para toda i6=j, j+ 1 y

ebj = bj+1 = r1,j+1b

1+. . .+rj−1,j+1b ∗

j−1+rj,j+1b ∗ j +b

∗ j+1 = r1,j+1eb

1+. . .+rj−1,j+1be ∗

j−1+rj,j+1b ∗ j +b

∗ j+1,

donde|rk,j+1| ≤1/2. Comork,j+1b∗j+b ∗

j+1es ortogonal a los vectoresb1, . . . , bj−1 entonces:

e

b∗

j =rk,j+1b∗j +b ∗ j+1.

Por lo tanto mediante el intercambio debj ybj+1, el detBiTBi es multiplicado por un factor β con β <3/4 (donde Bi ={b1, . . . , bi}).

Teorema 1.19. [16] El algoritmo antes mencionado encuentra una base reducida de L en tiempo polinomial.

Ejemplo 1.20. Proceso reducci´on de una base de una ret´ıcula Siguiendo el algoritmo se obtiene que

X (Paso 1) Sea B = {b1, b2, b3} una base para una ret´ıcula L en Z3.

Entonces:

B =

  

1 1 3 1 0 5 1 2 6

  .

X (Paso 2) Del proceso de ortogonalizaci´on de Gram-Schmidt se obtiene

que: B∗ =   

1 1,333 0,428 1 0,333 0,642 1 1,666 0,214

  .

X (Paso 3) Al aplicar la reducci´on se obtiene:

B =

  

1 1 1 1 0 0 1 2 1

(23)

X (Paso 4) Como ||b

3 +r2,3b∗2|| = 0,666 < 3,5 = 3/4||b ∗

2||, entonces el

proceso se regresa al paso 1.

X (Paso 1) La nueva base es

B =

  

1 1 1 1 0 0 1 2 1

  .

X (Paso 2) Del proceso de ortogonalizaci´on de Gram-Schmidt se obtiene:

B∗ =

  

1 0,333 1,5 1 0,666 0 1 0,333 1,5

  .

X (Paso 3) Al aplicar la reducci´on se obtiene

B =

  

1 0 1 1 1 0 1 0 2

  .

X (Paso 4) Como||b

2+r1,2b∗1||= 1<2,25 = 3/4||b ∗

1||, entonces se regresa

al paso 1.

X (Paso 1) La nueva base es

B =

  

1 0 1 1 1 0 1 0 2

  .

X (Paso 2) Del proceso de ortogonalizaci´on de Gram-Schmidt se obtiene:

B∗ =

  

1 0,333 1,5 1 0,666 0 1 0,333 1,5

(24)

X (Paso 3) Al aplicar la reducci´on se obtiene:

B =

  

0 1 1 1 0 0 0 1 2

  .

X (Paso 4) Como no ocurre que||b

j+1+rj,j+1b∗j||<3/4||b ∗

j||paraj = 1,2

entonces se termina el proceso.

(25)

Cap´ıtulo 2

Fundamentos de Criptograf´ıa

La criptograf´ıa (del griego kripto, hocultoi, y graphos, hescriturai, li-teralmente hescritura ocultai) originalmente era el arte o ciencia de cifrar y descifrar informaci´on mediante t´ecnicas especiales y es empleada frecuente-mente para permitir un intercambio de mensajes que s´olo pueden ser le´ıdos por personas a las que van dirigidos y que poseen los medios para descifrarlos. Como bien se sabe, el estudio cient´ıfico de cualquier disciplina debe ser riguroso basado en las definiciones derivadas de conceptos fundamentales. Hoy en d´ıa, la criptograf´ıa se divide en el estudio de criptoan´alisis y de

criptosistemas.

El criptoan´alisis (del griego krypto,hescondidoi y anal´yein,hdesatari) es la parte de la criptolog´ıa que se dedica al estudio de sistemas criptogr´aficos con el fin de encontrar debilidades en los sistemas y romper su seguridad sin el conocimiento de informaci´on secreta. En el lenguaje no t´ecnico, se co-noce esta pr´actica como romper o forzar el c´odigo. Los m´etodos y t´ecnicas del criptoan´alisis han cambiado dr´asticamente a trav´es de la historia de la criptograf´ıa, adapt´andose a una creciente complejidad criptogr´afica. Los sis-temas criptogr´aficos han evolucionado desde los m´etodos de l´apiz y papel del pasado, pasando por m´aquinas como Enigma (utilizada por los nazis du-rante la Segunda Guerra Mundial), hasta llegar a los sistemas basados en computadoras del presente. Al aumentar la potencia de c´alculo de los

(26)

mas criptogr´aficos, tambi´en los esquemas criptogr´aficos han ido haci´endose m´as complejos. Los m´etodos utilizados para romper estos sistemas son por lo general radicalmente diferentes de los anteriores, y usualmente implican resol-ver un problema cuidadosamente construido en el dominio de la matem´atica pura. El ejemplo m´as conocido es la factorizaci´on de enteros.

Un criptosistema es una quintupla que consta de un conjunto de todos los mensajes sin cifrar (lo que se denomina texto plano), un conjunto de todos los posibles mensajes cifrados, un conjunto de claves que se pueden emplear en el criptosistema un conjunto de transformaciones de cifrado y un conjunto de transformaciones de descifrado. Ellos forman un esquema llamado Esquema de Cifrado, los cuales ser´an descritos en la siguiente secci´on.

2.1.

Esquema de cifrado

Los conceptos fundamentales de los esquemas de cifrado se presentan a continuaci´on.

Definici´on 2.1. Un esquema de cifrado consta de tres procesos probabil´ısti-cos de tiempo polinomial (Gen, Enc, Dec) tales que:

Gen es el proceso de generaci´on de clave que toma como entrada un par´ametro de seguridad de longitud 2k (de un campo) y arroja un par

de claves (pk, sk). La clave para cifrar es pk y sk es la clave para

des-cifrar. Para denotar al proceso Gen, se escribe Gen(2k) = (p

k, sk). Se

denota por PK y SK a los conjuntos de claves para cifrar y descifrar

respectivamente (es decir, pk ∈Pk y sk ∈Sk).

Enc (de la palabra en ingl´es “Encryption”) es el proceso de cifrado que toma como entrada un mensaje m M y una clave para cifrar

pk, y arroja como salida un mensaje cifrado c ∈ C. Se escribe c =

Enc(m, pk). Como el proceso de cifrado depende de una clave, entonces

(27)

Dec (de la palabra en ingl´es “Decryption”) es el proceso de descifrado que toma como entrada un mensaje cifrado c C y una clave pa-ra descifpa-rar sk, y arroja como salida un mensaje m ∈ M. Se escribe

m = Dec(c, sk). Como el proceso de descifrado depende de una clave, entoncesDeces visto en ocasiones como el conjunto{Decsk :sk∈SK}.

Un esquema de cifrado dese ser consistente, es decir, se debe cumplir que para un proceso de generaci´on dado Gen(2k) = (p

k, sk) y para todo m∈

M:

m=Dec(Enc(m, pk), sk).

Gr´aficamente el esquema sigue el flujo mostrado en la Figura 2.1.

Figura 2.1: Esquema de cifrado

Por comodidad en la notaci´on, se escribir´a Enc o Encpk en lugar de

(28)

Dominios y contradominios de cifrado

Consid´erese un esquema de cifrado (Gen, Enc, Dec).

M es el conjunto llamado el espacio de mensajes. M consiste de cadenas de s´ımbolos de un conjunto finito de s´ımbolos. Un elemento deM es llamado un mensaje de textoo simplemente un texto. Por ejemplo,M puede consistir de cadenas binarias, texto en ingl´es, c´odigo de computadora, etc.

C es el conjunto llamado espacio de texto cifrado. C consiste de cadenas de s´ımbolos pertenecientes a un conjunto finito.C puede o no ser igual a M. Un elemento de C se llamatexto cifrado.

Transformaciones de cifrado y descifrado

Pk, Sk denotan los espacios de claves de cifrado o descifrado res-pectivamente. Cuando Pk = Sk ambos conjuntos se denotan por K y este conjunto se llamaespacio de claves. Un elemento de Pk es una

clave de cifrado, un elemento deSk es una clave de descifradoy un elemento deK es es simplemente unaclave.

Cada elemento singular pk ∈ K determina una biyecci´on de M en

C, identificada por Encpk. Encpk se llama una funci´on de cifrado o

una transformaci´on de cifrado. Tenga en cuenta que Encpk debe ser

una biyecci´on, pues si el proceso se invierte un ´unico mensaje de texto deber´a ser recuperado por cada texto cifrado.

Para cada sk ∈ Sk, Decsk denota una biyecci´on de C en M. Decsk se

llamafunci´on de descifradoo transformaci´on de descifrado.

El proceso de aplicaci´on de la transformaci´onEncpk a un mensajem ∈

M es por lo general llamado el cifrado de m.

El proceso de aplicaci´on de la transformaci´onDecsk de un texto cifrado

(29)

Las claves pk y sk en la definici´on anterior son referidas como un par de claves y algunas veces se denotan por la pareja ordenada (pk, sk). Note, como ya se dijo con anterioridad, que pk y sk pueden coincidir.

2.1.1.

Cifrado en la historia

Se sabe que la criptograf´ıa ha tenido una historia larga y fascinante, a lo largo de ´esta, se han desarrollado diversos m´etodos de cifrado. Con el fin de ejemplificar las definiciones previas, a continuaci´on se muestran dos de los m´etodos m´as conocidos por su relevancia hist´orica en los principios de la criptograf´ıa: el Cifrado del C´esar y elCifrado Vigen`ere.

Cifrado C´esar

El Cifrado del C´esar [9], tambi´en conocido como cifrado de desplazamien-to, ha sido considerado como uno de los primeros m´etodos de cifrado. Recibe su nombre en honor de Julio C´esar, quien utiliz´o este m´etodo para poder co-municarse con sus generales. El Cifrado del C´esar consiste en reemplazar cada letra en el texto original por la que se encuentra varias posiciones adelante (originalmente el Cifrado del C´esar toma un corrimiento de 3 posiciones pero pueden hacerse corrimientos mayores) seg´un el alfabeto que se est´e utilizan-do. Aunque hoy el Cifrado del C´esar es obsoleto por s´ı solo, varios m´etodos lo ocupan como un recurso adicional en el cifrado de mensajes.

Ejemplo 2.2. Uso del Cifrado del C´esar.

(30)

Figura 2.3: Uso del cifrado

Si a cada letra del alfabeto latino actual (27 letras) se le asocia un n´ ume-ro, entonces para encontrar el Cifrado del C´esar de la palabra zuno˜ = 27k22k15k16 se lleva a cabo la siguiente operaci´on en aritm´etica modular (m´odulo 27, en este caso):

Enc(zuno˜ ) = Enc(27k22k15k16)

= [(27 + 3) m´od 27]k[(22 + 3) m´od 27]

k[(15 + 3) m´od 27]k[(16 + 3) m´od 27] = [30 m´od 27]k[25 m´od 27]

k[18 m´od 27]k([19 m´od 27] = 3k25k18k19

= ckxkqkr=cxqr.

Cifrado Vigen`ere

El cifrado de Vigen´ere [37] es un cifrado basado en diferentes series de caracteres o letras en el Cifrado del C´esar. La funci´on de cifrado est´a dada en t´erminos de funcionesEZi(Xi) = (Xi+Zi) m´od T donde T es el n´umero

de letras del alfabeto, Xi la posici´on que ocupa la letra a ocultar y Zi la posici´on que ocupa la letra que ser´a la clave. El Ejemplo 2.3 muestra el uso del cifrado.

(31)

Figura 2.4: Asignaci´on del Alfabeto

Figura 2.5: Mensaje Original

Figura 2.6: Palabra Clave

(32)

2.2.

Clave Sim´

etrica y Asim´

etrica

En las ´ultimas d´ecadas se ha incrementado la necesidad de proteger la informaci´on porque los medios tradicionales para su transmisi´on y almace-namiento son altamente no confiables.

Por eso se necesitan algoritmos de cifrado cada vez m´as seguros que re-quieren claves de cifrado y descifrado. El usar algoritmos de cifrado de do-minio p´ublico es irrelevante porque en general estos hacen pr´acticamente imposible la recuperaci´on del mensaje original sin la clave de descifrado. As´ı, m´as importante a´un son los protocolos para generar las claves porque ´estas deben ser dif´ıciles de descubrir, del mismo modo que los mecanismos utilizados deben garantizar altos niveles de seguridad.

2.2.1.

Criptograf´ıa de Clave Sim´

etrica

A los esquemas criptogr´aficos donde las claves de cifrado y descifrado coinciden se les llama de cifrado sim´etrico o de clave privada. Es decir,

K =Sk =Pk es el conjunto de claves.

Los algoritmos de clave sim´etrica siguen vigentes hoy en d´ıa, pero el in-tercambio de claves representa un serio problema de seguridad sobre todo si se hace v´ıa electr´onica. Por lo anterior se han desarrollado protocolos con intercambio seguro de claves en medios electr´onicos. Uno de ellos es el pro-tocoloDiffie-Hellman [38] que no obstante ser muy simple resulta altamente seguro.

Los cifrados del C´esar y Vigenere son esquemas de cifrado sim´etrico, pues la parte que cifra y la parte que descifra comparten la misma clave. Un algoritmo de clave sim´etrica m´as complejo es el est´andarDES, que se utiliza en todo el mundo. Entre sus variantes tenemos los est´andares: AES, Triple DES, RC6, Serpent, MARS, y Twofish [36].

(33)

DES

DES [31] es un algoritmo prototipo del cifrado por bloques, es decir, un algoritmo que toma un bloque de 64 bits y lo transforma aplicando una serie de permutaciones en otro texto cifrado de la misma longitud. La clave de cifrado codifica de alguna forma las permutaciones aplicadas, de modo que el descifrado s´olo puede ser realizado por quienes conocen tal clave. La clave mide 64 bits, aunque en realidad, s´olo 56 de esos bits son empleados por el algoritmo. Los ocho bits restantes se utilizan para comprobar la paridad, y despu´es se descartan.

La estructura b´asica del algoritmo se ilustra en la Figura 2.8: ´este consta de 16 fases id´enticas denominadas rondas. Hay dos permutaciones, la inicial y la final que se denotan, respectivamente, P I y P F. Ellas son funciones inversas entre s´ı (P I “deshace” la acci´on de P F, y viceversa). P I y P F

no son criptogr´aficamente significativas, pero se incluyeron presuntamente para facilitar la carga y descarga de bloques sobre el hardware en el que se implement´o el m´etodo a mediados de los a˜nos 70s. Antes de iniciar las rondas, el bloque a ser encriptado se divide en dos mitades de 32 bits que se procesan alternadamente. A este entrecruzamiento se le conoce como esquemaFeistel.

Figura 2.8: La estructura general de Feistel en DES

(34)

mitad del bloque con parte de la clave. La salida de la funci´onF se combina entonces con la otra mitad del bloque, y los bloques se intercambian antes de la siguiente ronda. Tras la ´ultima ronda, las mitades no se intercambian.

Figura 2.9: la funci´on Fesitel (funci´onF) del est´andar DES.

2.2.2.

Criptograf´ıa de Clave Asim´

etrica

Los esquemas de cifrado donde la clave de descifrado no depende de la de cifrado se llaman asim´etricos o de clave p´ublica.

(35)

mensaje, podr´a descifrarlo.

Uno de los algoritmos de llave p´ublica m´as importantes es el RSA que se basa en la factorizaci´on de n´umeros grandes. Actualmente se sabe que ´este es un problema que se puede resolver en tiempo polinomial (O(n14) donde

n es el n´umero a factorizar (citar aquıel paper de Agraval). Tambi´en est´a el criptosistema de “El Gamal” cuyo fundamento es el problema del logaritmo discreto (citar alguna referencia). Otro criptosistema de este tipo es el basa-do en “Curvas El´ıpticas” (citar el libro de Koblitz). Adem´as de permitir el cifrado seguro, existen aplicaciones de estos criptosistemas que constituyen herramientas para salvaguardar diversos aspectos de la seguridad de la infor-maci´on: confidencialidad, integridad, autenticaci´on y no repudio [19]. Entre esas herramientas se encuentran protocolos tales como la firma digital, el acceso seguro a redes (protocolo SSH) y los m´etodos de no-repudio, entre otros [2].

En el siguiente apartado se describe el criptosistema RSA.

RSA

El criptosistema fue presentado en 1977 por Ron Rivest, Adi Shamir y Len Adleman en el MIT; las letras RSAson las iniciales de los tres apellidos.

RSA usa dos n´umeros primos grandes y su seguridad radicaba en que en aquella ´epoca no hab´ıa algoritmos con tiempo de ejecuci´on polinomial para factorizar n´umeros grande en sus factores primos haciendo uso de compu-tadoras tradicionales. A pesar de que hoy en d´ıa se conoce el algoritmo de factorizaci´on de enteros llamado “general number field sieve” (criba general de campo num´erico) [24] su complejidad para factorizar un n´umero deb bits esO(exp(649b)13(logb)

2

3) lo cual dista mucho de ser polinomial, lo anterior hace

que el m´etodo siga consider´andose seguro. La implementaci´on del criptosis-tema se lleva a cabo de la siguiente manera: supongase que Betodesea enviar un mensaje privado aAliciausando RSA. Alicia debe entonces establecer su par de llaves (pk, sk) y enviarpk a Beto.

(36)

Alicialleva a cabo lo siguiente:

Escoge en privado dos n´umeros primos p y q grandes, con el mismo n´umero de bits. Calcula: n=pq y ϕ(n) = (p1)(q1) (la funci´on de Euler)

Escoge un n´umeroe tal que 1< e < ϕ(n) y de manera quemcd(e,(p

1)(q1)) = 1. Posteriormente, calcula el inverso multiplicativo de e

m´od ϕ(n), al que llamar´a d.

La clave privada essk = (p, q, d)

La clave p´ublica es pk = (e, n) (que necesitar´a Beto).

Proceso de Cifrado (Enc)

Beto desea enviar el mensaje m M = Zn. Entonces, calcula el texto cifrado c=me m´od nC =Z

n y lo env´ıa a Alicia.

Proceso de descifrado (Dec)

Una vez que Alicia ha recibido el mensaje cifrado lo ´unico que tiene que hacer es calcularm =cd m´od n.

Ejemplo

A continuaci´on se presenta un ejemplo de cifrado/descifrado con RSA. Los n´umeros usados aqu´ı son peque˜nos para no complicar los c´alculos.

1. Generaci´on de Claves. Sean p = 61 y q = 53 n´umeros primos. En-tonces, n =pq = 3233 y ϕ(n) = 3120. El n´umero e = 17 cumple que

mcd(e, ϕ(n)) =mcd(17,3120) = 1 yd = 2753 es el inverso multiplica-tivo deem´odϕ(n) . Por lo tanto:

sk= (61,53,2753) y pk = (17,3233).

2. Cifrado. Beto desea cifrar m = 123 Z3233 para envi´arselo a Alicia. CalculaEnc(123) = 12317 m´od 3233 = 855 y lo env´ıa a Alicia.

(37)

Los c´alculos para los procesos de cifrado y descifrado se pueden hacer eficientemente usando el algoritmo de multiplicaci´on cuadr´atica para expo-nenciaci´on modular [28].

Verificaci´on del Algoritmo

Se puede observar que m = Dec(c) pues se tiene que Dec(c) = ((me) m´od n)d m´od n = ((me∗d

) m´od n) m´od n=m m´od n=m. Esto se debe a la elecci´on de e y d de forma que ed 1 +kϕ(n), lo cual implica que

me∗d

≡ m1+kϕ(n) m(mϕ(n))k m (m´od n). La ´ultima equivalencia sigue del peque˜no teorema de Fermat [40].

2.2.3.

Criptograf´ıa Mixta (Sim´

etrico y Asim´

etrico)

Los criptosistemas de clave p´ublica presentan varios problemas. Uno es el de la suplantaci´on. Si Beto recibe la clave p´ublica de Alicia, ¿c´omo sabe que realmente proviene de Alicia?

Un segundo problema, de ´ındole pr´actico, se refiere a la eficiencia. Los algoritmos de clave p´ublica son lentos. El cifrado de un mensaje con RSA es aproximadamente mil veces m´as lento que utilizando DES. Si bien las compu-tadoras y redes de comunicaci´on son cada vez m´as r´apidas, los vol´umenes promedio de datos a almacenar y transferir crecen a la par. Tambi´en su-cede que los mensajes cifrados ocupan m´as recursos en los dispositivos de almacenamiento y redes de comunicaci´on.

Estos problemas, y algunos otros como los ataques criptoanal´ıticos, se pueden reducir significativamente utilizando sistemas mixtos. Para que el proceso de cifrado sea m´as r´apido y los mensajes cifrados demanden menos recursos lo mejor es utilizar claves sim´etricas. Luego, se puede utilizar un esquema de clave p´ublica para transferir al destinatario la clave sim´etrica garantizando as´ı mayor seguridad.

Supongamos que Beto quiere enviar un mensaje a Alicia. Lo que hace es lo siguiente:

(38)

- Cifra la clave sim´etrica con la clave p´ublica de Alicia. El resultado esc2. - Env´ıa a Alicia dos cosas: el mensaje (cifrado con la clave sim´etrica k) y la clave sim´etricak cifrada con la clave p´ublica de Alicia.

Cuando Alicia recibe el el mensaje y la clave, procede a la inversa: - Toma c2 y lo descifra usando su clave privada. El resultado es k. - Usak para descifrar el mensaje c1. El resultado es m.

Es decir, la clave p´ublica se usa para cifrar la clave sim´etrica. De ese modo hacemos llegar al destinatario la clave k, y podemos hacerlo por me-dios inseguros de transmisi´on. As´ı, se ha combinado un criptosistema de clave sim´etrica (para intercambiar el mensaje) con uno de clave asim´etrica o p´ublica (para intercambiar la clave).

Los sistemas mixtos no se consideran un tipo de cifrado aparte, sino que normalmente se hace la divisi´on entre sistemas de clave sim´etrica y de clave asim´etrica, pero nos hemos detenido aqu´ı por su importancia. PGP es un programa de cifrado mixto [27], es decir, combina cifrado sim´etrico y asim´etrico de la manera en que se ha descrito aqu´ı. De modo similar, los protocolos criptogr´aficos SSL utilizados por los navegadores en conexiones seguras (https) utilizan esta combinaci´on mixta [21].

Ahora se describen algunas mejoras a los esquemas propuestos.

Se puede elegir k de manera que sea distinta para cada comunicaci´on. Es decir, cada mensaje se cifra con una clave diferente. Esto mejora la seguridad de diversas maneras. Por ejemplo, un atacante obtiene informaci´on si detecta que todos los mensajes se cifran con la misma clave, aunque desconozca dicha clave. Del mismo modo, se incrementa el riesgo cuando para todos los mensaje se cifra la misma clave sim´etrica k con la clave p´ublica del destinatario.

(39)

2.3.

Criptoan´

alisis y nociones de Seguridad

Dado que los sistemas de cifrado en general son de conocimiento p´ublico, cuando dos partes desean comunicarse con “seguridad” mediante un esquema criptogr´afico, el ´unico elemento que ellos deben de mantener en secreto es el par de claves (pk, sk), esto en el caso de que el esquema sea sim´etrico, mientras que en el caso de esquemas asim´etricos, s´olo se deber´a de mantener oculta la clave de descifrado.

Se puede a˜nadir seguridad adicional manteniendo las transformaciones de cifrado y descifrado en secreto, pero esto no es suficiente. La historia ha demostrado que mantener las claves y las transformaciones en secreto no suele ser sencillo.

Si la clave de cifrado es igual a la clave de descifrado entonces el esquema de cifrado se dice que es sim´etrico o de clave secreta, en caso contrario, el esquema de cifrado se dice ser asim´etrico o de clave p´ublica.

Como ejemplos simples de criptoan´alisis, se puede hacer referencia a los esquemas de cifrados sim´etricos del C´esar y de Vigenere.

Ejemplo 2.4. El cifrado de C´esar se puede romper f´acilmente haciendo an´alisis de frecuencias (en este caso sobre las letras m´as usadas en el idioma) o un ataque de fuerza bruta realizando los27corrimientos posibles al mensaje cifrado para poder obtener el mensaje original.

Ejemplo 2.5. Se consider´o que el m´etodo de Vigenere era imposible de romper hasta que en 1863 el m´etodo Kasiski demostr´o lo contrario [17].

La definici´on de un esquema de cifrado no conlleva impl´ıcita ni expl´ıci-tamente la seguridad del mismo. A continuaci´on se da una definici´on de seguridad que, b´asicamente, delimita las acciones de un atacante y expresa cu´ando el atacante tiene ´exito al criptoanalizary (romper) el esquema de clave p´ublica basada en bloques.

(40)

de cualquier ataque probabil´ıstico con tiempo de ejecuci´on polinomial t es despreciable con respecto al par´ametro de seguridadk al aplicar los siguientes pasos:

1. Gen(2k) produce (p

k, sk). Un adversario llamado Eva conoce 2k ypk.

2. Eva puede efectuar un n´umero polinomial de solicitudes a un or´aculo de descifrado ODec(·,s

k), donde s′

k es la clave que ella da como clave

privada suponiendo que es la correcta.

3. En alg´un momento Eva produce dos mensajes m0, m1 con |m0|=|m1|.

Se escoge un bitbde forma aleatoria y se da el “reto de un texto cifrado”

c∗

←Enc(mb, sk).

4. Eva puede continuar haciendo peticiones al or´aculo ODec(·,c)

con la restricci´on de no poder solicitar el descifrado de c∗

.

5. Finalmente, el adversario produce un valor b′

.

Se dice que Eva tiene ´exito si b′

=b y se denota la probabilidad de este evento porP rEva[´exito]. La ventaja del atacante se define por|P rEva[´exito]− 1

(41)

Cap´ıtulo 3

Criptosistema Cuadr´

atico

Compacto

En este cap´ıtulo se describe el criptosistema a ser criptoan´alizado [4]. Introducimos primero el criptosistema de la mochila y sus variantes.

Los criptosistemas tipo Mochila [34](1978) son de clave p´ublica y forman una clase importante en el ´ambito criptogr´afico. Ellos no utilizan aritm´etica modular computacionalmente costosa y en general resultan m´as eficientes en comparaci´on con los sistemas basados en el problema del logaritmo discreto y en factorizaciones de n´umeros primos [8, 42].

´estos fueron atractivos y prometedores durante a˜nos. Sin embargo, casi todos los criptosistemas tipo mochila han mostrado ser vulnerables a ataques, a saber: suma/subconjunto de baja densidad [6, 35], ataques GCD [10], el ataque simult´aneo de aproximaci´on diof´antica [23, 3] o el ataque entramado ortogonal [33].

3.1.

Problema de la Mochila

El problema de la mochila es un paradigma b´asico en optimizaci´on com-binatoria [11]. Consiste en guardar objetos en una mochila de manera tal que se maximice el valor global de los objetos elegidos sin exceder el peso

(42)

m´aximo que soporta la mochila. Hay muchas variantes, el problema base es el siguiente.

Dado un entero positivon, un vector de n´umeros positivos~s= (s1, s2, . . . , sn) y un n´umero positivoT, conocido como elvalor objetivose requiere encontrar un vector s~T = (si1, si2, . . . , sim) de S que cumpla

T =XST =si1 +si2 +· · ·+sim

donde {si1, . . . , sim} ⊆ {s1, . . . , sn}.

El problema est´andar 0-1 de la mochila [34], tambi´en conocido como

problema est´andar de suma de subconjuntos, es una generalizaci´on del pro-blema base: dados un entero positivo n, un vector de n´umeros positivos

~s= (s1, . . . , sn), y un entero positivot, conocido como lacapacidad de carga, el problema es determinar si existe un vector caracter´ıstico~v = (v1, . . . , vn), con vi ∈ {0,1} de tal manera que:

t =~s·~v = n

X

i=1

si·vi. (3.1)

Al vector~sse le conoce como la mochila (aunque tambi´en al conjunto cons-tituido con los elementos de~s). Si se cumple la relaci´on de la Ecuaci´on 3.1, la mochila tienen soluci´on. En caso contrario no existir´a tal soluci´on.

Ejemplo 3.1. Para ejemplificar el problema mochila est´andar 0-1, con-sid´erese el siguiente vector:

~s= (2,3,5,7,8)

cont= 13, en este caso el problema tiene soluci´on, considerando el siguiente vector caracter´ıstico:

~v = (1,1,0,0,1).

(43)

El problema de la mochila junto con sus variantes tiene aplicaciones en muchos ´ambitos como recorte de materiales con desperdicio m´ınimo [18], conformaci´on ´optima de portafolios de inversi´on, asignaci´on de tareas en ´ambitos industriales [26] y en una gran variedad de problemas de optimiza-ci´on combinatoria [5]. El problema de la mochila se ha aplicado tambi´en en criptosistemas globalmente denominados mochila, resaltando su uso para la generaci´on de llaves en el criptosistema de Merkle-Hellman [34].

En ocasiones, para la misma mochila ~s y un valor dado t puede existir m´as de una soluci´on. Esto no se puede admitir en un criptosistema, ya que el resultado de una operaci´on de descifrado debe ser unico´ . Para garantizar esta condici´on se utilizan mochilas simplesosupercrecientes, donde a lo m´as existe una soluci´on [34]. En una mochila supercreciente las entradas en ~s

forman una sucesi´on s´uper creciente, es decir que:

si > i−1

X

j=1

sj, ∀i >1.

Si esta condici´on se cumple y la soluci´on al problema est´andar existe entonces ´esta se puede encontrar en tiempo polinomial en n [34].

Formalmente, los criptosistemas mochila se dividen en compactos y

cuadr´aticos.

3.1.1.

Problema Mochila Compacto

En el Problema Mochila Compacto [8], se considera que la mochila es un vector dado de enteros

~s= (s1, s2, . . . , sn),

y que la capacidad de cargates un n´umero entero tambi´en dado. Nos interesa encontrar un vector de enteros

~v = (v1, v2, . . . , vn)

tal que

t= n

X

i=1

(44)

donde b N es el entero que define una cota para los valores permitidos de

vi.

3.1.2.

Problema de la Mochila Cuadr´

atico

En el problemacuadr´aticode la mochila [8] se busca resolver una ecuaci´on Diof´antica cuadr´atica del tipo:

t=~vM ~vT,

donde~v = (v1, v2, . . . , vn) tiene entradas booleanas. Algunas variantes de este m´etodo consideran que tales entradas pertenecen al conjunto {0,1, . . . , k}.

M es una matriz cuadrada n-dimensional y tZ.

Una vez establecidos los problemas de la mochila compacto y cuadr´atico podemos introducir el criptosistema de Merkel-Hellman que ser´a extensiva-mente utilizado en el resto de la tesis.

3.1.3.

Criptosistema Merkle-Hellman

El criptosistema de Merkle-Hellman [34] fue uno de los primeros de llave p´ublica, Lo desarrollaron Ralph Merkle y Martin Hellman en 1987.

El criptosistema se describe a continuaci´on:

Generaci´on de llaves La llave privada est´a dada por

w= (w1, w2, . . . , wn) supercreciente

qN tal que q >Pn i=1wi

r[1;q) tal que mcd(q, r) = 1

La llave p´ublica est´a dada por

(45)

CifradoEl cifrado de los mensajes se hace de la siguiente manera, dado un mensaje

m= (m1, m2, . . . , mn) mi ∈ {0,1}

El texto cifrado es

c= n

X

i=1

mivi

DescifradoDado un texto cifrado cy t=r−1

∈Zq se tiene

d=tc=t

n

X

i=1

mivi = n

X

i=1

tmirwi m´od q= n

X

i=1

miwi

Y dado que {wi}ni=1 es supercreciente se pueden encontrar a los mi’s para la combinaci´on que genera a d.

3.2.

El Criptosistema Cuadr´

atico Compacto

Veremos ahora que el criptosistema de Merkel-Hellman se puede hacer m´as robusto. As´ı, se construir´a el Criptosistema Cuadr´atico Compacto que est´a basado en el de Merkel-Hellman, pero tiene mayor seguridad que ´este en el sentido planteado en la Secci´on 2.3.

Consid´erense dos conjuntos I Z y J ⊂ {j = (j1, j2)|j1, j2 Z+}.

JT representar´a al conjunto {(j

2, j1)|(j1, j2) ∈ J}. Por otro lado, para cada

j = (j1, j2)∈ J se denotar´a I m´odj al conjunto {(i m´od j1, i m´od j2)|i ∈

I}. En general |I| ≥ |I m´od j| porque puede darse el caso que para dos elementos distintos i1, i2 en Ii1 m´od j coincida coni2 m´odj.

Definici´on 3.2. Se dice que I es distinguible (DIST) m´odulo J si |I| =

|I m´odj| para toda j J.

(46)

en todo lo que sigue en esta secci´on las variables I y J quedar´an asociadas de manera fija a los conjuntosI ={i2|i= 0,1, . . . ,15}yJ =WWT donde

W ={(1,31),(1,34),(1,37),(1,38),(1,41),(1,43),(1,46),(1,47),(1,53),

(1,58),(1,59),(1,61),(1,62),(1,67),(1,68),(1,71),(1,73),(1,74),

(1,76),(1,78),(1,79),(1,82),(1,83),(1,86),(1,87),(1,89),(1,92),

(1,93),(1,94),(1,97),(2,17),(2,19),(2,23),(2,29),(2,31),(2,34),

(2,37),(2,38),(2,39),(2,41),(2,43),(2,46),(2,47),(3,26),(3,29),

(3,31),(4,17),(4,19),(4,23),(6,13)}.

Una comprobaci´on directa permite constatar que I es DIST m´odulo J. En el siguiente ejemplo se muestra esta propiedad para un par de elementos enJ.

Ejemplo 3.3. I es distinguible m´odulo (3,31) y m´odulo (17,2)

I m´od (3,31) ={(0,0),(1,1),(1,4),(0,9),(1,16),(1,25),(0,5),(1,18),

(1,2),(0,19),(1,7),(1,28),(0,20),(1,14),(1,10),(0,8)}

I m´od (17,2) ={(0,0),(1,1),(4,0),(9,1),(16,0),(8,1),(2,0),(15,1),

(13,0),(13,1),(15,0),(2,1),(8,0),(16,1),(9,0),(4,1)}

La definici´on 3.2 impl´ıcitamente dice que siIesDIST m´oduloJ, entonces a partir dej J e i2 m´od j se puede determinar i sin riesgo de confusi´on.

Ejemplo 3.4. Determinaci´on de i partiendo de j e i2 m´od j. Sea i2 m´od (3,31) = (0,5), del listado de I m´od (3,31) se observa que (0,5) apa-rece en la sexta posici´on contando a partir de cero. As´ıi= 6. Similarmente paraim´od (17,2) = (13,1) se encuentra que i= 9

Los conjuntosI y J son importantes en el contexto del Criptosistema de Merkel-Hellman porque permiten resolver instancias del problema cuadr´atico de la mochila. Por ejemplo, para encontrar la soluci´on de

(47)

Se tiene que 3 = mcd(48,51) y 31 =mcd(31,62), as´ı se obtiene que

x21 0 m´od 3 y 22x21 17 m´od 31

Luego

x21 (0,5) m´od (3,31)

De lo cual se obtiene que x1 = 6 resuelve las dos equivalencias anteriores. Luego,

48x22 + 51x23 = 1427149x21 31x22+ 62x23 = 1489753x21

16x22+ 17x23 = 4169 x22+ 2x23 = 419

Aplicando m´od 17 y m´od 2 a las ecuaciones anteriores se obtiene

x22 13mod17 x22 1 m´od 2

Con lo cual, se tiene que x2 = 9 e inmediatamente x3 = 13. Como generalizaci´on de estos ejercicios se tiene el siguiente.

Teorema 3.5. Dados ~a = (a1, . . . , an) y~b = (b1, . . . , bn). Se denota ci =

mcd(an, . . . , an−i+1) ydi =mcd(bn, . . . , bn−i+1). Es posible suponer que cn =

dn = 1 ya que de no ser as´ı se puede tomar ~a/mcd(~a) y~b/mcd(~b). Si G =

{gi = (g1,i, g2,i) = (ci−1/ci, di1/di)|i = 2, . . . , n} ⊂ J entonces el problema

de la mochila simult´aneo

n

X

i=1

x2iai =s1 n

X

i=1

x2ibi =s2 x2i ∈I

puede resolverse en tiempo polinomial. M´as a´un tiene a lo m´as una soluci´on

x= (x1, . . . , xn) con xi ∈ {0; 1;. . .; 15}.

Demostraci´on. El conjunto I es DIST m´odulo G porque G est´a contenido en J. As´ı, dado un gi y una pareja (a, b)∈ I m´od gi existe un ´unico xi tal que x2

(48)

De las relaciones ci =mcd(ci−1, an−i+1) y di =mcd(di1, bn−i+1) se sigue que mcd(ci−1/ci, ani+1/ci) = mcd(di1/di, bni+1/di) = 1 y ci1|aj, di1|bj para todoni+ 1j n.

Ahora se probar´a por inducci´on que el problema cuadr´atico simult´aneo de la mochila soluci´on.

Para n = 1 t´omese m´odulo cn−1 y dn1 en las dos ecuaciones respectiva-mente obteniendo que

a1x21 =s1 m´od cn−1 b1x21 =s2 m´od dn1

As´ı se tiene que

x21 =a−1

1 s1 m´od cn−1 x 2 1 =b

−1

1 s2 m´od dn−1

Comogn= (g1n, g2n) = (cn−1/cn, dn1/dn) = (cn1, dn−1) se cumple que

x21 (a−1 1 s1, b

−1

1 s2) m´od gn . Lo cual determina un ´unico x2

1 ∈ I y el valor de xi est´a en el conjunto

{0,1, . . . ,15}.

Supongamos ahora que xi ya ha sido determinado para i= 1, . . . , n−2. Entonces,

n

X

j=i+1

ajx2j =s1− i

X

j=1

ajx2j

n

X

j=i+1

bjx2j =s1− i

X

j=1

bjx2j

Tomando m´odulos cn−i1 y dni−1, respectivamente, en estas ecuaciones se tiene que

ai+1x2i+1 ≡(s1− i

X

j=1

ajx2j) m´odcn−i1

bi+1x2i+1 ≡(s1− i

X

j=1

bjx2j) m´od dn−i1

Luego

ai+1

cn−i

x2 i+1 ≡

s1−Pij=1ajx2j

cn−i

m´od cn−i1

(49)

bi+1

dn−i

x2i+1 s1 −

Pi

j=1bjx2j

dn−i

m´od dn−i−1

dn−i De donde se puede resolver x2

i+1 m´od gn−1 obteniendo una soluci´on ´unica para xi+1 ya que

x2 i+1 ≡

ai+1

cn−i

1

s1−Pij=1ajx2j

cn−i

,

bi+1

dn−i

1

s2−Pij=1bjx2j

dn−i

!

m´od gn−i

Una vez encontrados los valores de x1, . . . , xn−1 se llega a

anx2n=s1− n−1

X

j=1

ajx2j bnx2n =s2− n−1

X

j=1

bjx2j

Luego se tiene que

x2n =

s1−Pn −1 j=1 ajx2j

an

= bnx 2

n =s2−Pn −1 j=1 bjx2j

bn

Por lo que se puede determinar de manera ´unica el valor dexnen{1, . . . ,15} Ahora, el problema no tendr´a soluci´on si y s´olo si ocurre al menos uno de los siguientes casos

Existeital que no ocurre quecn−i|s1−

Pi

j=1ajx2j odn−i|s2−

Pi

j=1bjx2j. Todos los valores dex1, . . . , xn−1 pueden ser ´unicamente determinados, sin embargo

s1−Pn −1 j=1 ajx2j

an 6

= s2−

Pn−1 j=1 bjx2j

bn

.

Los valores de x1, . . . , xn son ´unicamente determinados pero no son soluci´on simult´anea de las ecuaciones.

Si el problema tiene soluci´on ´esta es ´unica pues cada xi es ´unicamente determinada.

Para determinar cada xi en el teorema anterior se necesitan resolver dos congruencias y visitar secuencialmente cada elemento en el conjunto ordenado

I m´od gn−i+1. Luego, el problema se puede resolver en tiempo polinomial en

(50)

3.2.1.

Generaci´

on de Claves

Para generar las claves se eligen al azar dos vectores de carga~a = (a1, . . . , an) y~b = (b1, . . . , bn) que satisfagan las hip´otesis del teorema anterior. Se selec-ciona adem´as una matriz entera cuadrada 2-dimensional C = (cij)2x2 uni-modular con la longitud de sus entradas acotadas superiormente por una constante y se calcula

e

~a

e

~b

!

= ea1 · · · ean

eb1 · · · ebn !

=C ~a ~b

!

Luego se eligen al azar dos primos p y q ligeramente m´as grandes que 225Pni=1ai y 225Pni=1bi respectivamente y calcular N =pq.

Con el Teorema chino del residuo se genera un vector de carga E = (e1, . . . , en) tal que

ei ≡eai m´od p ei ≡ebi m´od q.

Se toma una constante v ZN y se calcula F = (f1, . . . , fn) donde

fi ≡eiv m´od N

As´ıLlave privada: (N, p, q, C−1

, v−1

m´od N)

Llave p´ublica: F

A partir del m´etodo descrito el siguiente algoritmo genera vectores de carga que satisfacen el Teorema 3.5.

Teorema 3.6. Los vectores de salida ~a y~b del algoritmo 2 satisfacen las condiciones del teorema 3.5

Demostraci´on. Sea ci = mcd(an, . . . , an−i+1) y di = mcd(bn, . . . , bn−i+1), obs´ervese que solo se necesita mostrar que para cada i = 2, . . . , n gi = (ci−1/ci, di−1/di)∈J

Es claro que

c1 =an = n

Y

j=2

gj,1 d1 =bn = n

Y

j=2

(51)

Algoritmo 2: Generaci´on de vectores de carga

Entrada: g′ 2, g

3, . . . , g ′

n.: Parejas seleccionadas aleatorias deJ

Salida:~a,~b. : Vectores que satisfacen 3.5

1 begin

2 Elegir aleatoriamente 2(n−1) enteros s1, . . . , sn1, t1, . . . , tn1 tales que las parejas (si, gj,1), (ti, gj,2), (si, si+1) y (ti, ti+1) sean coprimos para todaj ∈ {2, . . . , n} y i∈ {1, . . . , n1};

3 Tomandoa1 =s1 y b1 =t1 calcular ai =siQn

j=n−i+2g ′ j,1,

bi =tiQnj=ni+2g ′

j,2, an=Qnj=2gj,1′ y bn =Qnj=2gj,2′ ;

ci =mcd n

Y

j=2

gj,1, . . . , sn−i+1 n Y j=i+1 gj,1 ! =mcd n Y j=2

gj,1, . . . , n Y j=i+1 gj,1 ! = n Y j=i+1 gj,1

cn=mcd(cn−1, s1) =mcd(gn,i, s1) = 1

Similarmente

di = n

Y

j=i+1

gj,2 y dn= 1

para i= 2, . . . , n1 dn = 1 As´ı para i= 2, . . . , n se tiene

gi =

ci−1

ci

,di−1 di = Qn j=ig ′ j,1 Qn j=i+1g ′ j,1 , Qn j=ig ′ j,2 Qn j=i+1g ′ j,2 !

(52)

y

cn−1

cn

,dn−1 dn

= (cn−1, dn−1) = (g ′ n,1, g

n,2) =g ′ n∈J

Como se deseaba

3.2.2.

Cifrado

Sea m~ = (m1, . . . , mn) el mensaje a cifrar, donde mi ∈ {0, . . . ,15} el cifrado del mensaje est´a dada por:

c= n

X

i=1

fim2i

3.2.3.

Descifrado

Para descifrar un texto cifrado c, se realiza lo siguiente:

t cv−1

n

X

i=1

eim2i m´od N

tp ≡t m´od p tq ≡t m´od q (sa, sb)T =C−1(tp, t)qT

y se resuelve el siguiente problema de la mochila cuadr´atico compacto simul-taneo para recuperar el texto plano

sa= n

X

i=1

aim2i sb = n

X

i=1

Figure

Figura 1.1: Ret´ıcula 2–dimensional
Figura 1 1 Ret cula 2 dimensional. View in document p.10
Figura 1.2: Ret´ıcula con una base aleatoria
Figura 1 2 Ret cula con una base aleatoria. View in document p.14
Figura 1.3: Ret´ıcula con una base con vectores peque˜nos
Figura 1 3 Ret cula con una base con vectores peque nos. View in document p.15
Figura 1.4: Ejemplo gr´afico del algoritmo de Gauss
Figura 1 4 Ejemplo gr a co del algoritmo de Gauss. View in document p.17
Figura 2.1: Esquema de cifrado
Figura 2 1 Esquema de cifrado. View in document p.27
Figura 2.2: Corrimiento del Alfabeto
Figura 2 2 Corrimiento del Alfabeto. View in document p.29
Figura 2.3: Uso del cifrado
Figura 2 3 Uso del cifrado. View in document p.30
Figura 2.4: Asignaci´on del Alfabeto
Figura 2 4 Asignaci on del Alfabeto. View in document p.31
Figura 2.7: Mensaje Cifrado
Figura 2 7 Mensaje Cifrado. View in document p.31
Figura 2.6: Palabra Clave
Figura 2 6 Palabra Clave. View in document p.31
Figura 2.8: La estructura general de Feistel en DES
Figura 2 8 La estructura general de Feistel en DES. View in document p.33
Figura 2.9: la funci´on Fesitel (funci´on F) del est´andar DES.
Figura 2 9 la funci on Fesitel funci on F del est andar DES . View in document p.34

Referencias

Actualización...