Actualizado el 16 de Junio del 2017 (Publicado el 9 de Mayo del 2017)
1.281 visualizaciones desde el 9 de Mayo del 2017
118,0 KB
6 paginas
Creado hace 11a (17/12/2013)
ESTUDIO SOBRE LA COMPLEMENTARIEDAD DEL PAR DE CLAVES RSA Y USO DE
HERRAMIENTAS DE ACCESO PÚBLICO
En el criptosistema asimétrico RSA el cálculo del par de claves (pública/privada) se basa en
funciones aritméticas modulares y en la generación de números primos aleatorios de una
longitud suficiente (hoy en día se recomienda superior a 1024 bits) que permite la obtención
de parámetros robustos que garantizan la fortaleza de las claves generadas.
El algoritmo RSA establece la necesidad de cálculo del módulo “n” y la función phi(n), para
determinar el valor del exponente de clave pública "e" (1<e< phi(n)) y del exponente de clave
privada "d" (d= 1/e mod phi(n)). En este sentido, recordar que el par (e,n) y (d,n) permite el
cifrado y descifrado de datos basados en el criptosistema asimétrico de clave pública RSA.
Con este trabajo se pretende demostrar
la complementariedad del par de claves
(público/privada) generadas con el algoritmo RSA, a través de herramientas de acceso público,
y cuyos resultados han sido contrastados con cálculos de funciones aritméticos modulares.
Para ello, mediante OpenSSL (versión 1.0.1e) [1]1 se ha obtenido un par de claves RSA de
longitud 2048 bits a través de dos números primos aleatorios (de 1024 bits cada uno) y módulo
“n”. A continuación se ha convertido los números primos “p” y “q” de numeración
hexadecimal a decimal, a través de una aplicación descargada en la página web de la Red
temática de criptografía y seguridad de la información (Criptored)[22].
• openssl genrsa ‐out Kv_2048 2048
(longitud del módulo 2048 bit) (“e” es 65537 (0x10001))
• openssl rsa ‐in kv_2048 ‐text ‐out p_q_n.txt
(Módulo “n”; exponente de clave pública “e”; exponente de clave privada "d",
números primos “p” y “q”)
Private‐Key: (2048 bit)
modulus:
00:b6:a9:3c:fa:60:80:1b:1b:9f:4a:a4:d1:7d:34:
c0:24:5b:a9:21:5a:fc:91:99:f0:2c:ee:77:db:fe:
b4:22:6b:a7:94:c3:03:68:3a:73:62:ff:f7:8f:ec:
4c:46:e7:cf:43:13:d0:81:9a:6c:f0:3e:6b:16:5e:
97:29:59:e6:d2:6c:46:da:8e:68:76:d1:36:92:72:
21:3e:37:25:05:8b:14:6f:d7:5a:ea:2e:a4:01:6b:
f3:11:61:c7:3b:25:da:f5:a2:fa:47:9a:01:f2:94:
47:55:89:ee:fc:63:76:46:f9:0c:a4:71:ba:6e:a5:
be:fc:a3:2c:ec:37:bc:10:c3:b6:68:89:14:7a:34:
38:70:fd:cc:32:58:15:e4:85:64:2d:ce:45:2d:e9:
11:f5:70:2d:8c:79:a5:09:0e:16:df:90:b7:68:74:
cb:49:a9:30:24:26:9d:0b:64:34:aa:03:df:91:e5:
f9:b9:62:db:c4:1e:3c:21:6e:d5:53:23:6d:8f:24:
20:5f:24:95:fc:8b:33:00:84:95:5d:f1:1c:62:fd:
40:33:e0:5d:3e:e1:c3:a0:48:49:75:d2:78:65:de:
1 http://slproweb.com/products/Win32OpenSSL.html
2 http://www.criptored.upm.es/software/sw_m051b.htm
CGB, diciembre de 2013 1
e2:11:a0:1b:c2:5d:1c:30:87:55:17:f2:ff:17:14:
a4:0e:d3:73:fc:51:32:8f:6a:36:2e:dc:b8:a2:37:
a8:db
publicExponent: 65537 (0x10001)
privateExponent:
15:e3:e6:48:e3:33:b7:0b:f2:65:11:a7:81:67:c6:
f7:14:7d:0a:60:4b:10:6f:f0:56:92:25:8f:19:d1:
20:a6:e2:28:73:ce:7e:b9:32:86:d4:c2:28:5f:5b:
2c:cc:2f:0c:8c:dd:5a:0a:d5:af:5c:eb:9c:7c:ad:
84:e9:1f:3e:6c:77:79:4d:c3:bb:29:8b:6e:b5:7a:
c2:67:fd:69:d2:a7:1a:58:26:af:15:f3:d5:af:c8:
2b:77:1a:57:3e:4c:25:4f:e8:ca:97:ec:4f:d3:f1:
50:90:fd:31:06:02:70:b2:fc:0e:e1:0a:44:a4:5c:
65:0e:71:1d:c5:f8:25:d1:fa:88:35:d1:cc:d6:91:
f1:40:79:08:b0:bf:e4:6e:77:a2:16:3c:35:5e:1f:
b6:6f:b8:37:9d:c8:37:23:e1:42:70:b2:79:a0:41:
fe:7f:bc:62:11:3d:10:01:c7:df:05:02:e4:13:00:
24:5c:81:24:47:53:1a:36:78:54:d4:ea:85:53:05:
3a:f6:35:ac:3a:c7:23:76:ef:19:99:8e:65:56:28:
74:cc:20:26:53:e9:ed:db:fc:07:96:3d:b0:ad:86:
81:a5:9b:ce:84:85:25:37:6c:5a:f5:e6:09:82:a8:
b9:6f:16:c7:72:94:b2:84:78:e8:58:8e:b2:fe:5e:
b1
prime1:
00:ec:f1:5b:50:d5:ac:ce:e8:2f:9b:d2:5b:2d:c8:
47:61:f1:03:5a:5c:0f:3a:20:e8:57:d3:8a:a4:9a:
30:a7:41:3f:e6:e3:e6:59:c2:a7:35:4d:64:1c:df:
5d:19:5f:3f:4f:a7:75:d6:38:70:02:7d:d7:0f:fb:
14:ed:5b:ba:d1:85:35:a3:12:7c:72:1b:fb:8d:fb:
ec:3b:cd:38:47:0c:99:df:4e:05:88:80:e8:d3:7b:
ae:34:7f:df:9d:6b:15:4c:48:2b:6c:4f:af:86:8a:
c4:3a:02:3b:10:80:36:fc:61:ca:c7:49:31:82:df:
38:ac:a4:36:12:d6:25:97:9d
prime2:
00:c5:5a:39:1b:5d:d9:ea:bf:07:9c:9d:fd:8a:22:
29:aa:dd:7d:54:f6:26:99:f2:67:ef:8f:25:a2:db:
13:a9:2b:a5:fc:d6:15:b9:78:de:d0:57:74:e3:59:
a2:11:07:fc:1b:52:39:3d:ed:24:79:6b:8d:24:25:
84:85:bf:90:c9:99:3b:c9:4f:ac:7c:b7:69:66:1a:
1a:f8:bd:bf:28:2a:1b:38:62:48:73:02:07:45:7b:
d4:1a:b6:1e:7d:a9:c8:3e:22:3d:8d:7a:e1:9d:ef:
68:70:dc:ab:51:5e:f9:be:7d:41:83:5a:18:72:0c:
55:69:0c:ea:de:01:5c:64:d7
...............................................................................................................................
...............
•
java ‐jar dec2hex.jar ‐h (p_hex)
(Número primo “p” en formato decimal)
1663868922766420291601757447382417700905405873603249617500060865957846407219
7845291989619881467140916072733646302943104717141378277818334413779127726648
CGB, diciembre de 2013 2
2641971875683448307454578044520230508636048579933967573345784834054024785323
1329497427457539419156086245154433622782548675924040726192488890099855598858
79197
•
java ‐jar dec2hex.jar ‐h (q_hex)
(Número primo “q” en formato decimal)
1385855920071548060865056649662826175846965651420974580660012875858722177247
6553205575500803077910784394413497676176780061931473960794164894425441640254
5694471933056428024641800379265489326835982895994438670058566869211891167065
1284492370798491788414212387840480150123421353922754937460549808464647971801
91959
Por otro lado, se ha utilizado la herramienta CrypTool (versión 1.4.31)[33] con el objeto de
confirmar el módulo “n” obtenido mediante OpenSSL y se ha calculado el valor de la función
phi(n) necesarias para la obtención de exponente de la clave privada "d".
Como se puede observar el valor obtenido con la herramienta CrypTool (resultado RSA Módulo
N) coincide con el cálculo obtenido del módulo “n” con OpenSSL:
2305882596838912933281989921674167335029805900863459242659792491517342377191
6442454817000430664987631045407177561664734832996820388186584380631798694777
5842218329070097988459760388218349560604325828269875263492552593675906716050
2866034746296894193289856192474897345116992540209397582078172279390928305282
4724695058062900670418358711967613205895374029224889528707274056434631725979
2430014789671528251970213932814424494358658792577565180853881904059757173167
9021745934599976483257418981555785107289886046245654259097277663454310932168
0099605182605014856685515205312055104345339933549915721203941266006252676397
944776923
El valor obtenido con CrypTool de phi(n) es:
2305882596838912933281989921674167335029805900863459242659792491517342377191
6442454817000430664987631045407177561664734832996820388186584380631798694777
5842218329070097988459760388218349560604325828269875263492552593675906716050
2866034746296894193289856192474897345116992540209397582078172279390928305282
4724390085578616873583112030557908681507698792072387106287458049060450069120
7962574939915016183515708762767709779960746804099657895630020654128936716231
2118912290219102495624209343713406535306338843098061418472937228283984340572
7711343783625189253564758175448755612968049336546931041637575962136396226040
878705768
Y el resultado del exponente de clave privada “d”, también en CrypTool es:
2763385860746268852403489455548607694786776255455942275638190675248669763715
6375641261077159839909189348097711608605036449388441236067783652819345857879
2356193105652768604202657748915409226694291019612066515017548571147683193899
4691523398601676456673105350519224826975427531135787205645965650294696264657
9090492352737302123246679263317181864376072495374601878752719153656831231651
5455096140820076766610064028377495553933153089002962160654009524013712707215
3 http://www.cryptool.org/en/
CGB, diciembre de 2013 3
7618129778198701649546445547633412412575489459952725083645337594174651419939
6591985302438658528388179304816291039298573247057325846624276608117438387372
79114929
Para contrastar el valor obtenido del exponente "d" (con CrypTool), se descarga una aplicación
(bd_funcs) [44] que permite realizar cálculos aritméticos modulares, en concreto el cálculo del
inverso modular (a‐1 mod n). En este sentido, recordar que en el algoritmo RSA, d=1/e mod
phi(n).
• Bd_modinv 65537 phi(n), con objeto de calcular el exponente de clave privada “d”:
2763385860746268852403489455548607694786776255455942275638190675248669763715
6375641261077159839909189348097711608605036449388441236067783652819345857879
2356193105652768604202657748915409226694291019612066515017548571147683193899
4691523398601676456673105350519224826975427531135787205645965650294696264657
9090492352737302123246679263317181864376072495374601878752719153656831231651
5455096140820076766610064028377495553933153089002962160654009524013712707215
7618129778198701649546445547633412412575489459952725083645337594174651419939
6591985302438658528388179304816291039298573247057325846624276608117438387372
79114929
Como puede comprobarse, el resultado obtenido de exponente de clave privada "d" (en
CrypTool) es idéntico que el calculado a través de función aritmética modular con bd_funcs,
por lo que se puede concluir que el resultado obtenido con la herramienta CrypTool es fruto
de la aplicación de las funciones matemáticas de aritmética modular del algoritmo RSA.
Por último, para demostrar la complementariedad del par de claves (público/privada), se
procede con CrypTool al cifrado del texto "hola" (con relleno en formato decimal) y descifrado
mediante la función
Comentarios de: ESTUDIO SOBRE LA COMPLEMENTARIEDAD DEL PAR DE CLAVES RSA Y USO DE HERRAMIENTAS DE ACCESO PÚBLICO (0)
No hay comentarios