taller de criptografía aplicada cybercamp 2017. … · con la clave rsa5 de 2.048 bits, cifra con...

10
© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 1 Taller de Criptografía Aplicada CyberCamp 2017. Domingo 3 de diciembre de 2017, 10:00 a 12:00 horas Dr. Jorge Ramió Aguirre 1. Ejercicios prácticos con AES (AESphere - OpenSSL) 1.1. Cifrado AES 128 en modo ECB Cifra con la clave k = 0x aef1d709baada5813409f8fd7b12399a, resultado del hash MD5 al texto LaChicaDeIpanema, el siguiente texto de 80 caracteres (640 bits): La chica de Ipanema una bossa nova de Vinicius de Moraes y Antonio Carlos Jobim. Observa el relleno (10101010101010101010101010101010) de un bloque completo (el sexto) en el texto en claro. SOLUCIÓN AESphere: qCpLCLHrADxI8lyiPt9f77u8GI50FksD4Abx8CSmy+uj/yo9V9Q1Oq/RwAs5Z7SeEjvybYYim 6VLOn6defN9f9eqRdv34fWwtyS1LdVHvuRkeRmOoEDC/ks4LnatUZRp

Upload: vodung

Post on 02-Oct-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 1

Taller de Criptografía Aplicada

CyberCamp 2017. Domingo 3 de diciembre de 2017, 10:00 a 12:00 horas

Dr. Jorge Ramió Aguirre

1. Ejercicios prácticos con AES (AESphere - OpenSSL)

1.1. Cifrado AES 128 en modo ECB

Cifra con la clave k = 0x aef1d709baada5813409f8fd7b12399a, resultado del hash MD5

al texto LaChicaDeIpanema, el siguiente texto de 80 caracteres (640 bits):

La chica de Ipanema una bossa nova de Vinicius de Moraes y Antonio Carlos Jobim.

Observa el relleno (10101010101010101010101010101010) de un bloque completo (el

sexto) en el texto en claro.

SOLUCIÓN AESphere:

qCpLCLHrADxI8lyiPt9f77u8GI50FksD4Abx8CSmy+uj/yo9V9Q1Oq/RwAs5Z7SeEjvybYYim

6VLOn6defN9f9eqRdv34fWwtyS1LdVHvuRkeRmOoEDC/ks4LnatUZRp

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 2

SOLUCIÓN OpenSSL:

C:\OpenSSL-Win32\bin>openssl aes-128-ecb -nosalt -in Texto1CyberCamp17.txt -out

Texto1CyberCamp17.aes -a -k LaChicaDeIpanema -md MD5

1.2. Descifrado AES 256 en modo CBC

Descifrar el criptograma: 3Icr2lruoTMKe5haJ9WPDnq1yffl9l9gXpE+mUzOiXw=

k = 0x d88ec39aa79e133205f34974ec797351d1f8de576d40db101a5834fde734482f

el SHA-256 del password ClaveTaller_CyberCamp2017_para_HashSHA256_CifraAES

iv = 0x 013549cb207aa1512db3e934c146a2b2 (el MD5 del password)

SOLUCIÓN AESphere:

Que la Fuerza te acompañe

SOLUCIÓN OpenSSL:

C:\OpenSSL-Win64\bin>openssl aes-256-cbc -nosalt -in Texto2CyberCamp17.aes -out

Texto2CyberCamp17.txt -d -a -k

ClaveTaller_CyberCamp2017_para_HashSHA256_CifraAES -md sha256 -iv

013549cb207aa1512db3e934c146a2b2

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 3

1.3. Ataque monousuario en un espacio de clave delimitado con texto en claro conocido

M = ¿Por qué funciona un ataque divide y vencerás en la cifra simétrica?

C =

Tdaiebt/UTJf33D0lSWhGnzISfW9aSex6y2DAaxqU7BvgyE5OsVPxgO3e6ZhZ6PYVkK+Ux

UksN1FaWUXxlNsAdkiPOR2KEo+EFlPlzcX0eE=

Ki = 11111111111111112222222222200000

Kf = 11111111111111112222222222288888

Espacio de claves: 559. 241

Tiempo empleado 41 segundos (recorrer todo el espacio de claves: 123 segundos)

K = 11111111111111112222222222222222

La tasa en este software es muy baja: 3.400 cifras/segundo

En el software LegionRSA para ataques a RSA mediante la paradoja del cumpleaños, la

tasa alcanzada es de 1.000 millones cifras/segundo con 8 procesadores trabajando.

1.4. Ataque en red en un espacio de clave delimitado

Un ataque en red con n máquinas, divide el tiempo del mismo entre n. El servidor

prepara el ataque y los clientes se conectan vía dirección IP del servidor.

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 4

2. Ejercicios prácticos con RSA (genRSA v2.1 - OpenSSL)

2.1. Generación manual y automática de claves decimales y hexadecimales. Observación

de las Claves Privadas Parejas CPP y los Números No Cifrables

Genera de forma manual las claves decimales RSA1 y RSA2. Observa CPP y NNC.

RSA1: p = 42.767, q = 53.987, e = 3.

RSA2: p = 11.285.808.592.187.282.353, q = 16.142.195.109.203.468.257, e = 65.537.

Genera de forma manual las claves hexadecimales RSA3 y RSA4. Observa CPP y NNC.

RSA3:

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 5

p = 8493C932370C5FA11799779640A12E8F, q =

FEA61A877B010278C956B926FC8B22F7, e = F1

RSA4:

p =

CE97E54C9201E1E94C5F63CF95D4525B24CCB587DA3519BF48ED33F17176C7E4D1F1

C9CA9E4AC1184DB074955848C0B13F22C819CD6C51889CE56CE0DB955785, q =

CCD58465642E6FFFC4C6BE0BF86862C51958DDB75B88A68A920ECF1DF5D6E5D42294

183363FD9BAB30374EB3F58E9B1B15689D9D2E7B88B69F3D45B4479C5C7F, e =

10001.

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 6

Genera varias veces una clave decimal de 2.048 bits, con p y q de igual tamaño y clave

pública estándar F4 (65.537) hasta que obtengas una clave óptima que tenga sólo 1

CPP y 9 NNC, por ejemplo:

RSA5

p =

139.421.838.712.022.199.696.259.743.766.325.774.982.562.454.116.800.112.238.192

.644.449.720.864.792.721.235.985.153.346.353.538.787.412.537.724.733.378.262.60

8.763.103.654.720.748.979.570.770.466.910.497.310.306.553.044.406.715.383.707.5

98.268.811.113.337.944.689.164.676.936.213.679.491.993.801.011.242.473.767.075.

645.513.741.710.049.294.362.756.423.878.166.225.621.704.450.156.407.223.517.875

.083.998.603.179

q =

131.270.676.221.843.953.014.520.372.138.809.320.543.384.717.656.450.902.297.444

.595.992.328.485.374.899.876.267.184.843.943.291.309.026.036.588.869.420.318.06

9.919.591.430.767.509.731.033.892.021.811.471.932.896.231.620.126.549.275.449.2

17.438.588.990.262.845.250.186.169.595.461.390.479.273.515.065.965.975.068.158.

780.091.107.592.600.404.677.545.478.928.258.505.653.108.374.309.921.136.234.650

.816.709.228.443

e = 65.537

2.2. Cifrado y Descifrado

Con la clave RSA5 de 2.048 bits, cifra con la clave pública e el número secreto de 256

bits, que representa una clave aleatoria K de sesión para la cifra con AES256, y después

realiza el descifrado con la clave privada d:

89.185.230.354.237.517.339.432.528.318.483.938.770.331.158.532.373.695.684.744.

156.841.907.158.299.659

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 7

El criptograma será un número de 2.047 bits:

10.258.423.558.859.874.645.471.841.497.009.419.648.322.969.763.966.728.788.098.

698.322.202.025.479.745.649.627.697.182.147.843.503.773.464.437.253.560.038.877

.851.459.023.781.402.617.195.477.322.969.935.389.273.309.774.922.972.441.470.10

2.057.564.711.277.367.046.658.521.738.334.839.470.636.236.336.604.119.439.000.8

96.821.598.076.084.057.428.704.781.263.052.526.247.031.627.919.442.590.778.515.

175.058.039.651.445.467.440.942.348.913.405.048.915.229.355.132.478.122.265.779

.124.578.695.990.240.818.762.047.655.445.376.659.794.350.798.728.109.883.150.63

9.187.993.244.112.805.228.396.455.098.918.221.509.825.527.741.182.983.150.978.6

17.210.250.104.870.210.555.922.679.325.818.929.254.982.178.082.491.222.286.595.

579.872.710.549.909.832.559.282.888.691.062.272.039.551.544.408.380.041.050.288

.297.045.374.331.280.227.643.058

2.3. Firma y comprobación

Con la clave RSA6 hexadecimal de 1.024 bits firma con la clave privada d del hash

SHA256 del texto CyberCamp 2017. Comprueba la firma con la clave pública e.

94cf8a71a65fc0ffa1ea44e4db2f1a904057e55c87f6221b7c3a8983115d1180

RSA6:

p =

ACE95853A21C812E0D2C6D0D00BB9B095CDCAC4E93C6370D348CFA0A38E65412702

D9778E8C2A094659F9D888C45826F86E6CC49692C93B822201E22594A402D

q =

C754C03A83364F2219B70D8C1B516DAFA2C8683CD4E74E77FB98703B182DF6E143AE

6AD43A8BBD7AFA682D261EDCDB53011EF710159EC425C6E7EB2FBB2CC701

e = 10001

La firma tendrá 1.018 bits:

3A617A7DC01297A4A8EAC423620DFF3614795F8B4A3E54C136B064FF82FC2C1FFAA9

6E65F069BAE186C7FF7A4C567E4A42C32BAE6D8C714E8E173656D7C1A505357F1092

6A33815DD2F7AE737B2F81A789E93BCD6D825B6FA8F27765988FBB187786E48839F1

7F94B441886E7410429FD6C8D5627B7F949BDCCE0460515CEEA

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 8

2.4. Ataques por factorización, cíclico y paradoja del cumpleaños

2.4.1. Se pide factorizar el número de 90 bits: 869.395.748.849.116.639.941.353.659.

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 9

El propósito de genRSA v2.1 no es factorizar números compuestos. Con el software

msieve153 se puede factorizar un número de 300 bits en menos de media hora.

2.4.2. Se atacará por cifrado cíclico el criptograma C = 170.894.032.521, conociendo

que la clave pública de la víctima es n = 602.835.317.291 y e = 11.

Factorizando el módulo n en sus primos p = 625.451 y q = 963.841, generamos esa

clave de 40 bits.

RSA7:

2.4.3. Atacaremos por paradoja del cumpleaños a una clave RSA de 50 bits cuyos

datos públicos son n = 807.856.127.401.327 y e = 7, usando como valor de ataque el

número 2.

© jra Taller de Criptografía Aplicada, CyberCamp 2017, Santander, 3/12/17 Página 10

La clave en cuestión es la que se indica.

RSA8:

2.5. Generación de claves con OpenSSL y observación en genRSA v2.1

Genera con OpenSSL una clave de 2.048 con el comando:

C:\OpenSSL-Win64\bin>openssl genrsa -out MiClave 2048

Observa los datos de la pantalla de OpenSSL.

Convierte esa clave binaria a un archivo de texto:

C:\OpenSSL-Win64\bin>openssl rsa -in MiClave -text -out MiClave

Abre con WordPad el archivo MiClave y observa los valores: modulus, publicExponent,

privateExponent, prime1, prime2, exponent1, exponent2, coefficient. Estos 3 últimos

se usan para el descifrado con el Teorema Chino de los Restos TCR.

Copia los valores de prime1, prime2 y publicExponent en genRSA v 2.1 en formato

hexadecimal, quitando los caracteres “:” y el “Enter” del cambio de línea. Genera esa

clave manualmente. Comprueba que es la misma clave que había generado OpenSSL.