View
229
Download
0
Category
Preview:
Citation preview
© 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.
Recommended