Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Explicación del Cifrado en Bloques Simétrico DES (página 2)




Enviado por rafael_net



Partes: 1, 2

1.2. Generación de la
subclave Ki

La clave Ki tiene un valor inicial
de 64 bits, su longitud es fija.

Tabla de 56 bits

1

2

3

4

5

6

7

9

10

11

12

13

14

15

17

18

19

20

21

22

23

25

26

27

28

29

30

31

33

34

35

36

37

38

39

41

42

43

44

45

46

47

49

50

51

52

53

54

55

57

58

59

60

61

62

63

Tabla de 64 bits Inicial

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

Permutación PC1

57

49

41

33

25

17

9

1

58

50

42

34

26

18

10

2

59

51

43

35

27

19

11

3

60

52

44

36

63

55

47

39

31

23

15

7

62

54

46

38

30

22

14

6

61

53

45

37

29

21

13

5

28

20

12

4

La tabla de la Permutación PC1, se utiliza para
realizar la permutación inicial en la generación de
la subclave Ki , para cada vuelta. Una vez realizada
la permutación, los 56 bits se dividen en dos
sub-bloques
Ci y Di de 28 bits. En estas
condiciones, la clave esta definida por las ecuaciones:

Ci = LS
(Ci-1) Di = LS(Di
-1)

Ki = PC2 (Ci ,
Di)

Ejemplo Permutación
PC1

Clave K: Santiago

Decimal

Carácter

Binario

97

a

01100001

103

g

01100111

105

i

01101001

110

n

01101110

111

o

01101111

83

S

01010011

116

t

01110100

S

01010011

a

01100001

n

01101110

t

01110100

i

01101001

a

01100001

g

01100111

o

01101111

Utilizando la Permutación PC1
obtenemos:

Tabla de 64 bits de Ki
Inicial

0

1

0

1

0

0

1

1

0

1

1

0

0

0

0

1

0

1

1

0

1

1

1

0

0

1

1

1

0

1

0

0

0

1

1

0

1

0

0

1

0

1

1

0

0

0

0

1

0

1

1

0

0

1

1

1

0

1

1

0

1

1

1

1

Tabla de 56 bits

0

1

0

1

0

0

1

0

1

1

0

0

0

0

0

1

1

0

1

1

1

0

1

1

1

0

1

0

0

1

1

0

1

0

0

0

1

1

0

0

0

0

0

1

1

0

0

1

1

0

1

1

0

1

1

1

Permutación PC1

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

1

1

0

0

0

1

0

1

1

1

0

0

1

1

0

0

1

0

0

1

0

1

0

0

1

0

0

1

Sub-bloque C0 = 0000000
0111111 1111111 1100000

Sub-bloque D0 = 1100010
1110011 0010010 1001001

Sub-bloques iniciales

1.2.1. Desplazamiento
LS(…)

El desplazamiento LS(…) se aplica a los
sub-bloques de longitud fija de 7 bits (Ci y
Di), donde LS(…) es un desplazamiento
circular a la izquierda de 1 o 2 bits del entero binario que toma
el argumento de acuerdo a la siguiente tabla:

Vuelta

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

No. Bits desplazados. Izda.

1

1

2

2

2

2

2

2

1

2

2

2

2

2

2

1

Con el propósito de comprender mejor el
desplazamiento LS(…) se realizara el proceso.

Ejemplo Permutación
LS(..)

Al tener los sub-bloques C0 y
D0, el siguiente paso es el desplazamiento LS,
se marcan los dos primeros bits, con el propósito de
poder
identificar el resultado del desplazamiento.

Sub-bloque C0 =
0000000 0111111 1111111
1100000

Sub-bloque D0 =
1100010 1110011 0010010
1001001

Al ser la primer vuelta, el desplazamiento es de un bit
a la izquierda como se indica en la tabla, dando como resultado
C1 y D1.

Sub-bloque C1 = 0000000
1111111 1111111 100000
0

Sub-bloque D1 = 1000101
1100110 0100101 0010011

Sub-bloques después del
desplazamiento LS(..)

1.2.2. Permutación PC2

La permutación PC2 se
conoce como permutación de compresión, dada por las
operaciones de
concatenar y permutar Ci y Di, se va a
comprimir de 56 bits a 48 bits para obtener la clave
Ki, posteriormente será utilizada en la
función
(f(Ri-1, Ki))

El orden de concatenar Ci y Di, es
utilizando primero los 28 bits de Ci y posteriormente
los 28 bits de Di, la tabla PC2 es una tabla de 8 x 6,
dando como resultado 8 bloques de 6 bits.

Tabla ( Ci,
Di)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

Tabla de 8 x 6 bits

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

Permutación PC2

14

17

11

24

1

5

3

28

15

6

21

10

23

19

12

4

26

8

16

7

27

20

13

2

41

52

31

37

47

55

30

40

51

45

33

48

44

49

39

56

34

53

46

42

50

36

29

32

Ejemplo Permutación
PC2

Continuando con el ejemplo se mostrará el proceso
utilizado en la permutación PC2, para obtener la clave
Ki.

Concatenando Ci,
Di

0000000 1111111 1111111 1000000
1000101 1100110 0100101 0010011

Los 56 bits de entrada en la
permutación PC2

Para ver la tabla seleccione la
opción "Descargar" del menú
superior 

El resultado de haber realizado la permutación
PC2 es la generación de la clave K1
siendo:

K1 = PC2 (C1,
D1)
=

111000 001011 011001 100110 110111
010010 110100 000110

Clave K1

Las operaciones LS(..) y PC2, se repiten 15 veces
para así obtener las 15 subclaves de cifrado restantes.
Los procesos de
cifrado y generación de claves se representan
esquemáticamente en la siguiente imagen.

1.3. Función
f(Ri-1 , Ki)

Al tener la clave Ki y la expansión de
(R0), el siguiente paso es la función
f(Ri-1 , Ki), la cual consta de tres
procesos (Suma OR exclusivo, ocho funciones no
lineales, Permutación P), siendo las ocho funciones
lineales la mayor virtud del algoritmo, se
han propuesto modificaciones en varios procesos, pero cualquier
modificación realizada, en las funciones lineales hace
débil al algoritmo. A continuación se explican los
procesos.

1.3.1. Suma OR
exclusiva

Con la clave Ki y E(Ri-1), se
procede a realizar la suma OR exclusiva, al realizar la
operación se tiene un 50% de certeza que el siguiente bit
sea 1, con lo cual aumenta la dificultad de poder descifrar el
mensaje. La operación OR exclusiva se ejemplifica en la
siguiente tabla:

A

B

A B

0

0

0

0

1

1

1

0

1

1

1

0

Se encuentra definido por la ecuación.

E(Ri-1) Ki

La clave Ki y Ri-1 se encuentra
formado por 8 bloques de 6 bits cada, con lo cual es posible
realizar la suma OR exclusiva como se muestra a
continuación.

Ejemplo Suma OR
exclusiva

Retomando los bits de la expansión del sub-bloque
R0 y la subclave K1, se procede a realizar
la suma OR exclusiva.

E(R0) = 000000 000001
011111 111101 011001 011001 010000 001000

K1 = 111000 001011 011001
100110 110111 010010 110100 000110

111000 001010 000110 011011 101110
001011 100100 001110

Resultado de la suma OR exclusiva
E(R0) K1

1.3.2. Funciones no lineales

La cadena de bits obtenida de la suma OR exclusiva, se
subdivide en 8 bloques de 6 bits, como se puede apreciar en el
ejemplo anterior, siendo cada bloque
(b6b5b4b3b2b1)
la entrada a una de las funciones no lineales, conocidas como
cajas, el resultado de la operación es un numero
con valor entre 0 a 15, representado con cuatro bits,
concatenados forman una cadena de 32 bits, la cual será la
entrada para la permutación P. La posición de los
bits dentro de cada caja se encuentra definida por la fila
b6b1 y la columna
b5b4b3b2 de la caja,
el orden de los valores
numéricos de las cajas se puede ver en la siguiente
imagen.

Ejemplo función no lineal
(cajas)

E(R0) K1 =
111000 001010
000110 011011
101110 001011
100100 001110

En la Caja S1 se utiliza el primer
bloque 111000, en la Caja S2 se utiliza
el segundo bloque y así sucesivamente.

Para ver la tabla seleccione la
opción "Descargar" del menú superior

La salida del bloque 1 es: 3 (0011), el procedimiento se
repite en las siguientes 7 cajas obteniendo como
resultado:

E(R0) K1 = 0011 1011
1110 1010 1000 1100 1011 0001

3 11 14 10 8 12 11 1

Resultado de las funciones no
lineales

1.3.3. Permutación P

El ultimo paso de la función
f(Ri-1 , Ki), es una
permutación P, cuyo resultado se sumara con la salida del
sub-bloque Li, dando origen a la entrada del
sub-bloque Ri

Para ver la tabla seleccione la
opción "Descargar" del menú superior

 Ejemplo Permutación P

Retomando el ejemplo se realiza el ultimo paso de la
f(Ri-1 , Ki), recordando que dicho
proceso se repite 15 veces.

E(R0) K1 = 0011 1011
1110 1010 1000 1100 1011 0001

Resultado de las funciones no
lineales

Para ver la tabla seleccione la
opción "Descargar" del menú superior

1.4. Suma Li Ri

El registro de bits
obtenido por la función f(Ri-1 ,
Ki), es sumado con un OR exclusivo con el registro de
bits de L0, dando como resultado la entrada para el
siguiente sub-bloque de Ri. El registro de bits
realizado en la permutación inicial P1, que origino al
sub-bloque R0, es la entrada para el siguiente
sub-bloque Li, el proceso se repite 15 veces, siendo
el ultimo proceso la permutación
P1-1.

Ejemplo Suma Li f(Ri-1 ,
Ki)

f(Ri-1 , Ki) = 0101
0011 0100 1001 0100 1111 0100 1111

L0 = 1111 1111 0001 1000 1101 0111 1110
1010

1010 1100 0101 0001 1001 1000 1010
0101

Resultado de la suma OR exclusiva L0 f(R0 ,
K1)

Obteniendo los registros de 32
bits para el siguiente sub-bloque Li y Ri
como se muestra a continuación:

L1 = 0000 0000 1111 1110 1100 1100 1000
0100

R1 = 1010 1100 0101 0001 1001 1000 1010
0101

Donde se verifican las ecuaciones:

L1 = R0

00000000111111101100110010000100 =
00000000111111101100110010000100

R1 = L0 f(R0 ,
K1)

10101100010101011001100010100101
=

1111111100011000110101111110101001010011010011010100111101001111

1.5. Permutación
P1-1

La permutación inversa se define por la siguiente
tabla, siendo la salida, el cifrado del mensaje.

Para ver la tabla seleccione la
opción "Descargar" del menú superior

Ejemplo Permutación
P1-1

Si tomamos los valores que
tenemos de L1 y R1, suponiendo los valores
de L16 y R16, podemos realizar el
procedimiento, como muestra del resultado final, cabe mencionar
si el mensaje es mayor de 64 bits, se utilizan los bloques
necesarios para dividir el mensaje original, si un bloque formado
por un mensaje, no tiene la longitud de 64 bits, se rellena
utilizando 0.

L16 = 10101100 01010001 10011000
10100101

R16 = 00000000 11111110 11001100
10000100

Concatenando L16 ,
R16

10101100 01010001 10011000 10100101
00000000 11111110 11001100 10000100

Para ver la tabla seleccione la
opción "Descargar" del menú superior

El cifrado del mensaje es:
◄(spacio){l4a8o

00010001 00100000 01101011 01101100
00110100 01100001 00111000 01101111

Decimal

Carácter

Binario

17

00010001

32

(space)

00100000

123

{

01111011

108

l

01101100

52

4

00110100

97

a

01100001

56

8

00111000

111

o

01101111

1.6. Descifrado

El algoritmo se utiliza para obtener el mensaje
original, con un sentido inverso al inicial, esto es, empezando
con la entrada del mensaje cifrado de 64 bits, aplicando la
permutación P1, dividir el mensaje en dos sub-bloques
L16 y R16, teniendo la subclaves calculadas
previamente, se realiza el procedimiento descrito anteriormente
la f(Ri-1 , Ki), realizando las 16
vueltas hasta obtener el mensaje en claro.

Ejemplo Permutación P1
Descifrado

Mensaje a Descifrar =
◄(spacio){l4a8o

Para ver la tabla seleccione la
opción "Descargar" del menú
superior 

L16 = 10101100 01010001
10011000 10100101

R16 = 00000000 11111110
11001100 10000100

Ejemplo Permutación E
Descifrado

Al tener la secuencia de R16 de 32 bits, es
necesario aplicar la permutación E, la cual se muestra a
continuación.

R16 = 00000000 11111110
11001100 10000100

Para ver la tabla seleccione la
opción "Descargar" del menú superior

E(R16) = 000000 000001
011111 111101 011001 011001 010000 001000

Ejemplo Suma OR exclusiva
Descifrado

La suma OR exclusiva se realiza utilizando la ultima
clave generada (K16), en nuestro ejemplo utilizaremos
la clave K1, como la clave K16.

E(R16) = 000000 000001 011111 111101
011001 011001 010000 001000

K16 = 111000 001011 011001 100110 110111
010010 110100 000110

111000 001010 000110 011011 101110 001011 100100
001110

Resultado de la suma OR exclusiva
E(R16) K16

Ejemplo función no lineal
(cajas) Descifrado

E(R0) K1 = 111000
001010
000110
011011
101110
001011
100100
001110

Como resultados de las operaciones no
lineales (cajas) tenemos los siguientes:

E(R0) K1 = 0011 1011
1110 1010 1000 1100 1011 0001

3 11 14 10 8 12 11 1

Resultado de las funciones no
lineales

Ejemplo Permutación P
Descifrado

Retomando el ejemplo se realiza el ultimo paso de la
f(Ri-1 , Ki), recordando que dicho
proceso se repite 15 veces mas.

E(R0) K1 = 0011 1011
1110 1010 1000 1100 1011 0001

Para ver la tabla seleccione la
opción "Descargar" del menú superior

Ejemplo Suma Li f(Ri-1 ,
Ki) Descifrado

f(Ri-1 , Ki) = 0101
0011 0100 1001 0100 1111 0100 1111

L16 = 1010 1100 0101 0001 1001 1000
1010 0101

1111 1111 0001 1000 1101 0111 1110
1010

Resultado de la suma OR exclusiva L0
f(Ri-1 , Ki)

Obteniendo los registros de 32 bits para el siguiente
sub-bloque Li y Ri como se muestra a
continuación:

L15 = 0000 0000 1111 1110 1100 1100 1000
0100

R15 = 1111 1111 0001 1000 1101 0111 1110
1010

Donde se verifican las ecuaciones:

L15 =
R16

00000000111111101100110010000100 =
00000000111111101100110010000100

R1 = L16 f(R16 ,
K16)

11111111000110001101011111101010
=

1010110001010001100110001010010101010011010010010100111101001111

Ejemplo Permutación
P1-1 Descifrado

Si tomamos los valores que tenemos de L1 y
R1, suponiendo los valores de L16 y
R16, podemos realizar el procedimiento, como muestra
del resultado final, cabe mencionar si el mensaje es mayor de 64
bits, se utilizan los bloques necesarios para dividir el mensaje
original, si un bloque formado por un mensaje y este no tiene la
longitud de 64 bits, se rellena utilizando 0.

L1 = 1111 1111 0001 1000 1101 0111 1110
1010

R1 = 0000 0000 1111 1110 1100 1100 1000
0100

Concatenando L1 y R1, da como
resultado:

11111111 00011000 11010111
11101010
00000000 11111110 11001100
10000100

 Para ver la tabla
seleccione la opción "Descargar" del menú
superior

 En la siguiente sección se
definirán, los ataques activos y
pasivos, se mencionarán los ataques al algoritmo
DES.

2.Ataques a la seguridad
criptográfica

La seguridad criptográfica sufre, dos tipos de
ataques pasivosIII y activosIV, la
finalidad de realizar un ataque pasivo, es obtener información y evitar ser detectado, a
diferencia de los ataques activos, cuya finalidad es captar la
información, modificarla, obtener claves, entre otras
actividades no legales.

Los ataques activos se dividen en Ataques a los
Operadores Criptográficos y Ataques a los protocolos, a
continuación se mencionan algunos ataques a los operadores
criptográficos.

  • Ataque a partir del cifrado: El atacante tiene
    acceso al texto
    cifrado y de ahí trata de encontrar la clave
    secreta.
  • Ataque a partir del texto en claro: El atacante
    tiene acceso al texto en claro y al cifrado con los cuales
    intenta obtener la clave secreta.
  • Ataque a partir del texto en claro elegido: El
    atacante puede elegir un texto en claro y su
    cifrado.
  • Ataque a partir de texto en claro condicionado: El
    atacante puede elegir un texto en claro condicionado a los
    cifrados previamente obtenidos.

Ataques a los protocolos.

  • Ataque con clave conocida: El atacante obtiene
    algunas claves utilizadas en cifrados previos para determinar
    nuevas claves.
  • Reutilización del protocolo:
    El atacante, ataca utilizando una comunicación captada previamente,
    insertándola en la
    comunicación.
  • Suplantación de Identidad:
    El atacante toma la identidad de un usuario registrado en la
    red de
    comunicaciones.

Otros ataques.

  • Ataque de fuerza
    bruta: El ataque por fuerza bruta consiste en un ejercicio de
    combinación, donde se van cifrando todas las posibles
    contraseñas y comparándolas con las existentes
    en el registro, buscando también coincidencias. Este
    método, por definición, siempre
    consigue su meta, si bien el problema que tienen es de
    recursos y
    tiempo.

2.1 Ataques al Algoritmo DES

Criptoanálisis Diferencial

El criptoanálisis diferencial fue introducido por
E. Biham y A. Shamir, es un ataque en texto claro escogido y esta
basado en comparaciones del OR exclusivo de dos textos en claro
escogidos con el OR exclusivo de sus correspondientes cifrados.
Este método de análisis permite romper el DES utilizando
en teoría
alrededor de 247 parejas de textos en claro
seleccionados, siendo aproximadamente 236 las
útiles para el criptoanálisis, con un tiempo de
calculo equivalente a unos 237 cifrados. El problema
básico de este ataque es obtener los cifrados de los
textos en claro, ya que para obtenerlos es necesario
engañar a la entidad que realiza el cifrado o violar la
seguridad física
del lugar donde se realiza el cifrado, lo cual en la practica es
casi imposible.

Criptoanálisis Lineal

El criptoanálisis lineal fue introducido por M.
Matsui, se basa en un ataque en texto en claro escogido y
consiste en la obtención de ecuaciones lineales que
representen la probabilidad
existente entre algunos bits del mensaje en claro y otros del
cifrado DES del mismo mensaje. La ecuación utilizada es la
siguiente:

F(P[i1,…ip] ,
C[j1,…jp]) = k[k1,
k2,…kk]

Donde F(…) es una función lineal y
[i1,…ip]
,[j1,…jp]) ,[k1,
k2,…kk] son bits que ocupan
posiciones fijas respectivamente en P, C y K.

3.
Bibliografía

http://csrc.nist.gov/cryptval/des.htm

http://cereal.rutgers.edu/~xylu/519_hw4.html


http://www.infoworld.com/article/04/07/29/HNdesinadequate_1.html

Criptografía Digital Fundamentos y
Aplicaciones

José Pastor Franco, Miguel Ángel Sarasa
López

2da, Edición

Rafael Martinez

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter