Você está na página 1de 155

Aplicaciones

Criptogrficas Java
Proyecto Fin de Carrera
Jess Mara Ramos Saky
o
b
j
e
t
o
objeto seguro
Miguel ngel Prez Aguiar
PFC ULPGC Aplicaciones Criptogrficas Java
2
PFC ULPGC Aplicaciones Criptogrficas Java
3
PFC ULPGC Aplicaciones Criptogrficas Java
4
PFC ULPGC Aplicaciones Criptogrficas Java
Aplicaciones
Cripogr!"icas Ja#a
Mayo 2$$%
Jess Mara Ramos Saky
&uor'
Miguel ngel Prez Aguiar
(acula) )e *n"orm!ica
+ni#ersi)a) )e las Palmas )e ,ran Canaria
-
PFC ULPGC Aplicaciones Criptogrficas Java
%
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
Agradecimientos
/se Proyeco (in )e Carrera 0a si)o realiza)o por 12 Jess Mara Ramos Saky3 alumno )e
ese Proyeco (in )e Carrera3 y por el uor )el mismo 12 Miguel ngel Prez Aguiar3 pro"esor )e
*ngeniera *n"orm!ica )e la +ni#ersi)a) )e 4as Palmas )e ,ran Canaria2 Agra)ezco el apoyo )e mi
"amilia3 en especial3 el )e mis pa)res2 Por oro la)o3 en menor me)i)a3 0an paricipa)o los
siguienes cola5ora)ores' 12 4uis l#arez 4e6n3 12 7eray 8uria 46pez3 12 (rancisco Mario
9ern!n)ez &e:era3 12 Miguel Ramrez Alem!n3 12 Carmelo ;uinana 9ern!n)ez y 1< 7essica
9ernan)ez Men)oza2
Colaboradores Inormaci!n adicional
12 4uis l#arez 4e6n Cae)r!ico )e +4P,C en *ngeniera
*n"orm!ica
12 7eray 8uria 46pez 4icencia)o en &urismo
12 (rancisco Mario 9ern!n)ez &e:era Cae)r!ico )e +4P,C en *ngeniera
*n"orm!ica
12 Miguel Ramrez Alem!n ,ra)ua)o en *ngeniera *n"orm!ica
12 Carmelo ;uinana 9ern!n)ez ,ra)ua)o en *ngeniera *n"orm!ica
1<2 7essica 9ern!n)ez Men)oza ,ra)ua)a en *ngeniera *n"orm!ica
,racias a o)os2
Para o5ener m!s in"ormaci6n so5re ese ema pue)e consular la =e5
0p'>>:ce"2source"orge2ne y 0p'>>:ce"2source"orge2ne>)oc>graiu)es2p)"2
?
PFC ULPGC Aplicaciones Criptogrficas Java
@
PFC ULPGC Aplicaciones Criptogrficas Java
Contenido
A2Sumario22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A3
22*nro)ucci6n a la seguri)a)2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 2A
A +na arBuiecura )e seguri)a)22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 22
2 AaBues a la seguri)a)22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 22
A AaBues pasi#os22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 23
2 AaBues aci#os2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222-
3 Ser#icios )e seguri)a)22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 2?
4 Mecanismos )e seguri)a)222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 2@
32Cripogra"a Criena)a a C5:eos222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223A
A Cperaciones cripogr!"icas2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222232
A Proecci6n22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 32
2 Aueni"icaci6n222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 34
3 Aclaraciones so5re las cla#es22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 3%
4 Sus pro5lemas y sus soluciones222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223%
- Sus caracersicas222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223?
% Sus aplicaciones222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223@
? Ser#icios )e seguri)a)2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 3@
2 4a Seguri)a) )e la Cripogra"a222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 3D
A Algorimos seguros2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223D
2 AaBues222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 4$
3 Aplicaciones )e la cripogra"a2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 4$
A Seguri)a) )e las comunicaciones22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 4A
2 *)eni"icaci6n y Aueni"icaci6n2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 4A
3 Proecci6n )e so"=are222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 4A
4 Comercio /lecr6nico22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 42
4 Concepos cnicos2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222242
42/l proyeco2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222224-
A 1e"iciencias me:ora)as2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 4D
2 Me:oras realiza)as22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 -A
3 Me:oras pen)ienes2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 -?
4 1ealles2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 -D
A Eisi6n general )el )iseFo22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 %A
2 Componenes222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 %A
3 1epen)encias222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222%-
4 1isri5uciones22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222%?
- P!gina =e52222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222%@
% Prue5as realiza)as2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 %@
? Coneni)o )el C1GRCM2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222%D
@ ,ua )e insalaci6n y uso222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222?$
- /l uso 0a5iual222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222?A
A Asegurar un o5:eo con nue#os par!meros cripogr!"icos22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?A
2 Almacenar par!meros cripogr!"icos para un uso poserior222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?2
3 C5ener el o5:eo asegura)o uilizan)o los nue#os par!meros cripogr!"icos22222222222222222222222222222222222222222222222222222222222222222222222 ?2
4 Asegurar oro o5:eo reuilizan)o par!meros cripogr!"icos ya eHisenes2222222222222222222222222222222222222222222222222222222222222222222222222222 ?3
- C5ener el o5:eo asegura)o reuilizan)o par!meros cripogr!"icos ya eHisenes2222222222222222222222222222222222222222222222222222222222222222 ?3
% Comparai#a con JCA y JC/2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?4
A Asegurar un o5:eo con nue#os par!meros cripogr!"icos22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?4
2 Almacenar par!meros cripogr!"icos para un uso poserior222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?D
3 C5ener el o5:eo asegura)o uilizan)o los nue#os par!meros cripogr!"icos22222222222222222222222222222222222222222222222222222222222222222222222 @A
4 Asegurar oro o5:eo reuilizan)o par!meros cripogr!"icos ya eHisenes2222222222222222222222222222222222222222222222222222222222222222222222222222 @3
- C5ener el o5:eo asegura)o reuilizan)o par!meros cripogr!"icos ya eHisenes2222222222222222222222222222222222222222222222222222222222222222 @%
? Conclusiones22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 @D
-2(uuros Proyecos2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 DA
A Ampliaciones )e JC/(22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222D2
2 Prue5as so5re algorimos JC/(222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 D3
D
PFC ULPGC Aplicaciones Criptogrficas Java
3 Ceri"ica)os 1igiales con JC/(22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 D4
4 Arc0i#os Seguros con JC/(22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 D-
- Pro#ee)or Cripogr!"ico JC/(22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222D%
% Almacn )e o5:eos seguros con JC/(2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 D?
? Meaimplemenaci6n )e IAplicaciones Cripogr!"icas Ja#aJ22222222222222222222222222222222222222222222222222222222222222222222222222222222222 D@
%2Recursos +iliza)os2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 DD
A Ki5liogra"a22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$A
A Ki5liogra"a so5re Seguri)a)2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$A
2 Ki5liogra"a so5re +M422222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$2
3 Ki5liogra"a so5re Ja#a2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$2
2 Le5s222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$3
A Le5s secun)arias so5re Ja#a2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A$3
2 Le5s principales so5re Ja#a22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A$4
3 Curso )e cnicas )e #ena2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$-
4 Le5s so5re J+ni2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A$%
- Le5s so5re /clipse2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A$%
% Le5s so5re 9&M42222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$%
? Le5s so5re Ja#a)oc22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$?
@ Le5s principales so5re Cripogra"a2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$?
D Le5s secun)arias so5re Cripogra"a222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$@
A$ Le5s so5re Algorimos Cripogr!"icos2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A$D
3 /clipse2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA$
4 AP* )e J2S/2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA$
- Plugins )e /clipse2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AAA
% Pro#ee)ores Cripogr!"icos JC/222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA2
A KouncyCasle2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AA2
2 *A*M222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AA2
3 CrypiH22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA2
4 CrypiHCrypo222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AA3
- (leHiCore2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA3
% (leHi/C2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AA3
? (leHiN(2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AA3
@ ,N+ Crypo22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA3
D J9KC*222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA4
A$ S+N2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA4
AA SunJC/22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA4
A2 SunJSS/222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA4
A3 SunRsaSign22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AA4
? Pro#ee)ores Cripogr!"icos no JC/2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA-
A Jacksum222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA-
2 4ogi Crypo222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA-
3 Min)5rig022222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA-
@ 4i5reras )e 1esarrollo OAP*sP222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA%
A Csermiller +ils22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA%
2 JC1/2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA%
3 Apac0e Jakara Commons 4ang22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA%
4 J+ni22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA%
D +ili)a)es )e compresi6n22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AA?
A ?Gzip222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA?
2 Al8ip22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AA?
A$ 9erramienas )e )ocumenaci6n2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA@
A CpenC""ice2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA@
2 Ja#a)oc2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AA@
3 Ja#a29&M4222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AA@
4 Merics Analisys &ool22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AAD
- Argo+M4222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 AAD
% P1(Creaor2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222AAD
AA +ili)a)es )e *nerne222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2$
A Mozilla (ire"oH2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2$
2 N#u2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2$
3 LinSCP222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2A
4 (ile8illa222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2A
A$
PFC ULPGC Aplicaciones Criptogrficas Java
A2 4engua:es )e )esarrollo22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A22
A Ja#a2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A22
2 9&M4222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A22
3 QM422222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A22
4 +M422222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A23
- CSS2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A23
A3 +ili)a)es )e presenaci6n2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A24
A Macrome)ia (las0 Player222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A24
2 CamSu)io22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A24
3 Planilla para p!gina =e52222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A24
A4 +ili)a)es )e /)ici6n )e Arc0i#os )e &eHo222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2-
A J/)i222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2-
2 Noepa)RR22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2-
A- +ili)a)es )e /)ici6n )e *m!genes222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2%
A ,*MP2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2%
2 *r"an#ie=22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A2%
3 Pain2N/&222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2%
A% Source(orge2ne22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2?
A? Cros recursos22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2?
A Cr)ena)or Personal222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2?
2 C1KurnerQP Pro2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A2?
3 Real Aca)emia /spaFola2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2@
4 Likipe)ia222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2@
- Lor)re"erence22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2@
% ===2mailHmail2com2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2@
? Noes9ol)er 4ie2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2D
@ JSmoo0222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2D
D Co5ian Kackup2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A2D
A$ A)o5e Rea)er2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3$
A@ 1irecrices )e 1esarrollo222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3$
A So5re el pro)uco2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A3$
2 4a imporancia )el cliene22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3A
3 So5re el )esarrollo )e un pro)uco2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A32
4 So5re la presenaci6n )e un pro)uco222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A32
- So5re la )ocumenaci6n )e un pro)uco2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A33
?2Pregunas "recuenes2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3-
A So5re el proyeco en cuesi6n2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3%
A SPor Bu no se 0a )esarrolla)o un con:uno )e aplicacionesT22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A3%
2 SPor Bu se 0a inena)o e#iar en la me)i)a )e lo posi5le usar rminos cnicosT222222222222222222222222222222222222222222222222222222222222 A3%
3 SPor Bu no se 0a enra)o en )ealle en el ema )e la cripogra"aT22222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3%
4 S1e )6n)e surge la i)ea )el proyecoT2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3?
- S;uin es el auor )e la propuesa )e Proyeco (in )e CarreraT2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3?
2 So5re la )ocumenaci6n y su esrucura2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A3?
A SPor Bu no se 0a segui)o la esrucura general )e un proyeco "in )e carreraT2222222222222222222222222222222222222222222222222222222222222222222 A3?
2 S&o)as las "uenes )e in"ormaci6n eHpuesas 0an si)o uiliza)asT222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3?
3 SPor Bu las re"erencias a 5i5liogra"a no 0an si)o coloca)as en los capulosT2222222222222222222222222222222222222222222222222222222222222222222A3@
4 SPor Bu la )ocumenaci6n es escasa en cuesi6n )e #olumenT2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3@
- SPor Bu se 0a genera)o la )ocumenaci6n )e "orma muy esBuem!icaT22222222222222222222222222222222222222222222222222222222222222222222222222222 A3@
% S/l en"oBue )e la cripogra"a oriena)a a o5:eos es enen)i5leT22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A3@
3 So5re los recursos uiliza)os222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A3D
A S9a #ali)o la pena uilizar recursos A$$U Cpen Source o (ree=areT2222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3D
2 SPor Bu se )eci)i6 uilizar 0erramienas eHclusi#amene Cpen Source o (ree=areT2222222222222222222222222222222222222222222222222222222222A3D
3 SPor Bu se 0a uiliza)o Lin)o=s en lugar )e un sisema operai#o Cpen SourceT222222222222222222222222222222222222222222222222222222222222 A3D
4 So5re el proyeco en s222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3D
A /l )iseFo es sumamene simple3 Seso es 5ueno o maloT222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A3D
2 S;u amaFo y cose iene el proyecoT22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A4$
3 SPor Bu no 0ay regisro )e los aneriores )iseFosT22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A4A
4 SSe implemenan algorimos cripogr!"icosT222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A4A
- So5re las )i"icula)es y errores22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A4A
A S;u es lo Bue m!s 0a cosa)oT22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A4A
% So5re la meo)ologa y la emporizaci6n22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A42
A SCu!l 0a si)o la meo)ologa emplea)a en el )esarrollo )el proyecoT22222222222222222222222222222222222222222222222222222222222222222222222222222222 A42
AA
PFC ULPGC Aplicaciones Criptogrficas Java
2 SSe 0an cumpli)o los iempos pre#isosT222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A42
3 SCu!l 0a si)o la emporizaci6n )e ca)a una )e las eapas )el proyecoT222222222222222222222222222222222222222222222222222222222222222222222222222222 A42
4 SPor Bu no se 0an esima)o los iempos con mayor )ealleT22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A42
- S/l iempo emplea)o es razona5le para lo consegui)oT2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A43
% SEale la pena realizar el conrol )e iemposT222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A43
? S;u opina el mun)o )e ese proyecoT222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A43
@2Vn)ice )e a5las222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A4-
D2Vn)ice )e ilusraciones2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A4?
A2
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
"#Sumario
/n esos iempos en los Bue las comunicaciones y las ecnologas )e la in"ormaci6n es!n
sien)o ca)a #ez m!s imporanes3 com5air a los #irus3 0ackers3 escuc0as y "rau)es elecr6nicos3
pro#oca Bue la seguri)a) enga Bue omarse muy en cuena2 Con el o5:ei#o )e proporcionar
seguri)a)3 eHise la cripogra"a como 0erramiena principal y m!s imporane con )i"erencia2 A
gran)es rasgos3 el uso )e la cripogra"a ayu)a a e#iar el uso "rau)uleno )e sisemas3 a proeger
in"ormaci6n con"i)encial o imporane3 permiir comunicaciones seguras y posi5iliar el comercio
elecr6nico2 Pue)e o5enerse m!s in"ormaci6n so5re ese ema consulan)o la )irecci6n
0p'>>:ce"2source"orge2ne>)oc>inrosecuriy2p)"2
/l o5:ei#o primor)ial )e ese proyeco es apren)er a uilizar los principales mecanismos
cripogr!"icos2 /sos mecanismos son los )e proecci6n y aueni"icaci6n2 Como o5:ei#o
secun)ario3 inicialmene se 0a5a planea)o )esarrollar un con:uno )e programas represenai#os )e
las aplicaciones )e la cripogra"a3 pero ras el esu)io preliminar3 )ic0o o5:ei#o "ue elimina)o y
suplana)o por oro muc0o m!s ineresane y m!s no#e)oso' )esarrollar una li5rera cripogr!"ica
poene y so5re o)o )e "!cil uso2
Sien)o m!s precisos3 la cripogra"a permie asegurar un o5:eo con#irin)olo en oro o5:eo
incomprensi5le y>o aueni"ica5le Oun o5:eo aueni"ica5le es aBuel en el Bue se pue)e compro5ar si
su origen es aunico y>o sus propie)a)es son aunicasP2 A)em!s3 am5in permie o5ener el
o5:eo asegura)o a parir )e su #ersi6n segura2 Para realizar esas rans"ormaciones se uilizan
algorimos y par!meros cripogr!"icos concreosW y es en la seguri)a) )e esos elemenos )on)e se
5asa la seguri)a) )e la cripogra"a2 Por oro la)o3 ca5e )esacar Bue un o5:eo pue)e ser cualBuier
cosa' in"ormaci6n3 recursos3 )aos3 mensa:es3 "ic0eros3 un o5:eo ya seguro incluso3 ec222 M!s
in"ormaci6n so5re ese ema en 0p'>>:ce"2source"orge2ne>)oc>oocrypograp0y2p)"2
/l resula)o )e ese proyeco 0a si)o un con:uno )e li5reras Ja#a2 /nre ellas )esaca la
li5rera llama)a JC/( OJa#a Crypograp0ic /Hension (rame=orkP cuya p!gina =e5 o"icial y la )e
ese proyeco se encuenra 0ospe)a)a en el mayor reposiorio )e proyecos so"=are )e c6)igo
a5iero eHisene llama)o Source(orge2neW la )irecci6n )e esa =e5 es 0p'>>:ce"2source"orge2ne2
Anes )e la eHisencia )e ese proyeco "in )e carrera ya eHisan unas li5reras Ja#a llama)as
JCA y JC/ encarga)as )e permiir a sus usuarios uilizar algorimos cripogr!"icos y algo m!sW pero
su uso resula y resula5a )emasia)o complica)o2 /s por ello por lo Bue se )eci)i6 realizar una
li5rera Ja#a para programar "!cilmene sisemas Bue 0agan uso )e algorimos cripogr!"icosW en
lugar )e )esarrollar un con:uno )e programas represenai#o )e las aplicaciones )e la cripogra"a2
A3
PFC ULPGC Aplicaciones Criptogrficas Java
JC/( se sopora acualmene so5re JCA y JC/ aunBue no )epen)e )e )ic0as li5reras2 /so s3
uilizar JC/( es muc0o m!s sencillo Bue emplear JCA y JC/2
/l cliene )e esa nue#a li5rera JC/( sera el )esarrolla)or )e so"=are Bue necesia usar
sisemas cripogr!"icos )e seguri)a) con suma "acili)a) sin las comple:i)a)es in0erenes a JCA y
JC/2 JC/( es il para programa)ores eHperos en JCA y JC/ y en especial para los nue#os
programa)ores )e sisemas cripogr!"icos en Ja#a2
/nran)o en )ealles3 JC/( es un marco )e ra5a:o para programa)ores Bue )eseen )esarrollar
sisemas )e seguri)a) 5asa)os en la cripogra"a a ra#s )el empleo )e algorimos cripogr!"icos2
K!sicamene3 JC/( )e"ine una especi"icaci6n Bue permie )e"inir y uilizar algorimos
cripogr!"icos )e proecci6n y aueni"icaci6n2
Para )e"inir nue#os algorimos cripogr!"icos Bue cumplan la especi"icaci6n JC/( se 0an
implemena)o cinco especi"icaciones JC/('
+na para )e"inir nue#os algorimos cripogr!"icos )e una "orma muc0o m!s "!cil )e lo
Bue permie JCA y JC/2
Cra implemenaci6n permie a)apar "!cilmene los algorimos eHisenes con
especi"icaci6n JCA y JC/ a la especi"icaci6n JC/(2
+na ercera implemenaci6n permie Bue los algorimos implemena)os me)iane la
especi"icaci6n JC/( sean compai5les con la especi"icaci6n JCA y JC/2
Para generar3 con#erir y compro5ar auom!icamene par!meros se 0a realiza)o una
cuara implemenaci6n JC/(2
Se 0a realiza)o una lima y Buina implemenaci6n JC/( para po)er )e"inir
algorimos cripogr!"icos cuya implemenaci6n sopore las cuaro implemenaciones
aneriores como si "uera una nica implemenaci6n3 es )ecir3 para )e"inir algorimos
cripogr!"icos )e nue#a implemenaci6n JC/( o a)apa)os )e JCA y JC/ y Bue a)em!s
cumplan la especi"icaci6n JCA y JC/ y generen3 con#ieran y comprue5en auom!icamene
par!meros Bue iner#engan en )ic0os algorimos2
A coninuaci6n pue)e #erse una imagen Bue represena la posici6n )el proyeco en el mun)o
Ja#a )e la cripogra"a'
A4
Ilustracin 1: JCEF acerca la criptografa al usuario
PFC ULPGC Aplicaciones Criptogrficas Java
JC/( me:ora enormemene a JCA y JC/2 Algunas )e las )e"iciencias )e JCA y JC/ Bue 0an
si)o me:ora)as son' JC/ es muy )i"cil )e uilizar3 )i"iculan)o su uso y apren)iza:e al proporcionar
mecanismos 0eerogneos y )i"ciles )e emplear3 reBuerir al usuario m!s conocimieno cnico )el
necesario y m!s lneas )e c6)igo )e las realmene necesarias para usuarios ineHperos con JCA y
JC/2 /n )e"inii#a3 uilizar JC/ reBuiere un gran es"uerzo en iempo y )e)icaci6n al usuario )el
mismo2
Sin em5argo3 JC/( posee #alores aFa)i)os Bue 0acen Bue #alga la pena su uso2 Algunos )e
esos #alores aFa)i)os m!s imporanes son'
/s amiga5le y "!cil )e uilizar al simpli"icar3 eliminar y auomaizar muc0as
operaciones )e 5a:o ni#el2
Se apren)e )e "orma muy sencilla y no reBuiere )emasia)o iempo )e apren)iza:e ni
gran)es conocimienos cnicos2
7 por si "uera poco #iene con gran)es posi5ili)a)es )e eHensi6n o me:ora para el
"uuro y prue5as para compro5ar el correco "uncionamieno )e los algorimos cripogr!"icos
y sus implemenaciones2
Permie a)em!s )e"inir algorimos cripogr!"icos muy "!cilmene2
A)em!s rae consigo un paBuee inicial )e %4 algorimos cripogr!"icos )e o)o ipo
Oalgorimos )e proecci6n asimrica3 proecci6n simrica )e 5loBues y )e "lu:o3 proecci6n
5asa)a en conraseFa3 algorimos )e aueni"icaci6n me)iane 0uellas )igiales3 sellos
)igiales3 sellos )igiales 5asa)os en conraseFa3 "irmas )igiales y genera)ores )e "uenes )e
)aosP y unas gran)es colecciones )e oros algorimos )e las mismas caracersicas3 aunBue
esas colecciones no 0an si)o pro5a)as por razones )e iempo3 como resula)o )e la
ra)ucci6n )e o)os los pro#ee)ores )e algorimos cripogr!"icos Ja#a enconra)os2
7 por limo y m!s imporane3 JC/( permie asegurar o5:eos me)iane la
consrucci6n )e o5:eos seguros )e una "orma muy sencilla uilizan)o para ello cualBuier
ipo )e algorimo cripogr!"ico y posi5ilian)o o5#iamene recuperar esos o5:eos
asegura)os a parir )e sus #ersiones seguras2
Por )esgracia3 JC/( no es per"eco y o)a#a pue)e y )e5e seguir crecien)o2 Algunas )e las
posi5les me:oras Bue se le pue)en 0acer son'
*mplemenar "lu:os )e enra)a>sali)a seguros para cualBuier algorimo cripogr!"ico2
AFa)ir sopore )e almacenes seguros para cualBuier ipo )e o5:eos incluyen)o cla#es
y ceri"ica)os )igiales2
*ncluir proocolos )e inercam5io )e cla#es2
,esionar ceri"ica)os )igiales2
Con"igurar compleamene los mo)os )e operaci6n y esBuemas )e relleno )e los
algorimos cripogr!"icos Bue los engan2
Realizar prue5as )e implemenaci6n a los algorimos me)iane #ecores )e es con el
o5:ei#o )e garanizar la correca implemenaci6n )e los algorimos y aumenar el ni#el )e
con"ianza )e los usuarios )e ese proyeco2
A-
PFC ULPGC Aplicaciones Criptogrficas Java
Corregir aBuellos algorimos Bue no pasen las prue5as )e "uncionali)a)2
*mplemenar algorimos nue#os no implemena)os 0asa a0ora en Ja#a2
Como un e:emplo )el #alor aFa)i)o )e ese proyeco3 o5ser#e el c6)igo siguiene )on)e se
muesra c6mo se asegura un o5:eo e inme)iaamene )espus se recupera el mismoW y o)o ello )e
una "orma super sencilla'
Object object = new String("my object");
CryptoAlgorithm secureAlgorithm = new AES_BlocSymmetric!rotection""E#$%();
SecureObject secureObject = new SecureObject(object& secureAlgorithm);
object = (String)secureObject'getObject(secureAlgorithm);
!a"la 1: Pe#ue$o e%e&plo 'e uno 'e los valores a$a'i'os 'e JCEF
Si lo )esea3 am5in pue)e consular la p!gina =e5 o"icial )el proyeco
0p'>>:ce"2source"orge2ne y el recurso 0p'>>:ce"2source"orge2ne>)oc>pro:ec2p)"2
So5re el )iseFo )e ese proyeco se pue)e )ecir Bue 0a si)o )escompueso en numerosas
li5reras2 A)em!s3 ca)a li5rera iene asocia)a ora Bue coniene las prue5as para compro5ar el
correco "uncionamieno )e )ic0a li5rera2 Por si "uera poco3 o)as las li5reras 0an si)o
)ocumena)as2 Son un oal )e 3@ li5reras2
4as li5reras )e ese proyeco son IJC/(J como li5rera principal3 IJC/( A))onsJ como
li5rera para eHensiones "uuras y el reso )e li5reras son pro#ee)ores cripogr!"icos Bue cumplen
al menos la especi"icaci6n JC/( y li5reras )e prue5as para compro5ar el correco "uncionamieno
)e o)as las li5reras2 Concreamene se prue5a el correco "uncionamieno )e o)os los mo)os )e
o)as las clases Bue componen el proyeco y se realizan prue5as )e "uncionali)a) a ca)a algorimo2
/l )iseFo )e ese proyeco sigue los principios 5!sicos )e los Ja#a Keans y ora consi)eraci6n
a ener en cuena es Bue se 0a inena)o al m!Himo Bue el nmero )e lneas )e c6)igo por mo)o
"uera el menor posi5le2
Pue)e o5enerse m!s in"ormaci6n so5re ese ema en la =e5 0p'>>:ce"2source"orge2ne y en la
)irecci6n 0p'>>:ce"2source"orge2ne>)oc>pro:ec2p)" Bue coniene in"ormaci6n )ealla)a )el
proyeco2
A)em!s3 se proporcionan una serie )e )isri5uciones para Bue o)o el mun)o enga acceso a
ese proyeco2 /sas )isri5uciones se po)r!n enconrar en 0p'>>:ce"2source"orge2ne y
0p'>>source"orge2ne>pro:ecs>:ce"2 /Hisen % )isri5uciones' una con lo 5!sico para usuarios3 ora
para )esarrolla)ores con o)o lo necesario3 ora con o)o pero s6lo para usuarios3 ora Bue coniene
o)o el c6)igo "uene3 ora )isri5uci6n con o)a la )ocumenaci6n )el proyeco y por limo una
)isri5uci6n Bue coniene la p!gina =e52
4a p!gina =e5 )el proyeco 0p'>>:ce"2source"orge2ne permie el acceso )el mun)o al
proyeco )e "orma li5re y grauia2 /n esa =e5 se po)r! enconrar o)o lo relaciona)o con el
proyeco' )ocumenaci6n3 c6)igo "uene3 presenaci6n3 las limas noicias y muc0os oros enlaces2
A%
PFC ULPGC Aplicaciones Criptogrficas Java
/l manual )e usuario )e ese proyeco3 sin consi)erar ese )ocumeno3 se encuenra en
0p'>>:ce"2source"orge2ne>api>org>rreHky>securiy>crypo>:ce">+ser,ui)e20ml Para o5ener m!s
in"ormaci6n es imporane consular la p!gina =e5 )e ese proyeco 0p'>>:ce"2source"orge2ne y la
p!gina principal online )e la )ocumenaci6n )e JC/( Bue se encuenra en
0p'>>:ce"2source"orge2ne>api>in)eH20ml2
4a )imensi6n )el proyeco es consi)era5le3 ya Bue )e a0 el gran nmero )e li5reras3 )e5i)o
principalmene a Bue se 0a Bueri)o proporcionar el mayor nmero )e pro#ee)ores y algorimos
cripogr!"icos posi5le realizan)o a)apaciones )e pro#ee)ores y algorimos cripogr!"icos ya
eHisenes Bue cumplan con la especi"icaci6n JCA y JC/ u oras2
Para Bue el lecor pue)a 0acerse una i)ea )e la )imensi6n )e ese proyeco3 5asa con )ecir
Bue ese proyeco coniene 3A42 clases3 3A- campos3 2DA4 mo)os3 ?3D-D lneas )e c6)igo y
22D4A lneas )e comenarios2
Cra mrica para imaginarse el cose )e ese proyeco es el iempo )e )esarrollo y realizaci6n
)el mismoW el cual se esima enre un mnimo )e 2$$$ 0oras )e ra5a:o y un m!Himo )e 3$$$ 0oras2
/se proyeco 0a eni)o pocas pausas )urane su )esarrollo3 el cual comenz6 a "inales )e "e5rero )e
2$$- y ermin6 a "inales )e mayo )e 2$$%3 es )ecir3 m!s )e un aFo )e )esarrollo2
So5re el cose econ6mico )el proyeco 0ay Bue )ecir Bue su cose econ6mico es cero )e5i)o a
Bue para el )esarrollo )el mismo se 0an uiliza)o nicamene recursos y programas oalmene
grauios )e licencia Cpen Source o (ree=are2
&am5in se 0a )ocumena)o un con:uno )e posi5les "uuros proyecos "in )e carrera Bue
po)r!n realizarse como coninuaci6n )e se para me:orarlo y ampliarlo2 4a )escripci6n )e esos
"uuros proyecos se 0a realiza)o me)iane el "ormao eHigi)o a una propuesa )e proyeco )e "in )e
carrera por la +ni#ersi)a) )e 4as Palmas )e ,ran Canaria3 con el o5:ei#o )e "aciliar la elecci6n )e
esos proyecos por alumnos y uores )e )ic0a uni#ersi)a) y )ar as coninui)a) a ese proyeco2
4os ? "uuros proyecos propuesos se iulan' XAmpliaciones )e JC/(Y3 XPrue5as so5re algorimos
JC/(Y3 XCeri"ica)os 1igiales con JC/(Y3 XArc0i#os seguros con JC/(Y3 XPro#ee)or
Cripogr!"ico JC/(Y3 XAlmacn )e o5:eos seguros con JC/(Y3 XMeaimplemenaci6n )e
IAplicaciones Cripogr!"icas Ja#aJY2
Se pue)e o5ener m!s in"ormaci6n so5re el proyeco en 0p'>>:ce"2source"orge2ne y so5re los
"uuros proyecos solamene en la )irecci6n =e5 0p'>>:ce"2source"orge2ne>)oc>"uurepro:ecs2p)"2
Para la realizaci6n )el proyeco se 0an uiliza)o numerosos recursos oalmene grauios )e
licencia Cpen Source o (ree=are3 ales como 5i5liogra"a3 recursos =e53 programas3 ec222 A
coninuaci6n se muesra un sumario )e los recursos emplea)os para el )esarrollo )el proyeco'
Para o5ener in"ormaci6n' Ki5liogra"a y numerosas p!ginas y recursos =e52
Para )ar #alor al proyeco' Se 0an uiliza)o o)os los pro#ee)ores cripogr!"icos
eHisenes )e algorimos cripogr!"icos para Ja#a Bue se 0an enconra)o2 +n oal )e A%
pro#ee)ores2
Como apoyo al proyeco' se 0an reuiliza)o algunas 0erramienas y li5reras Ja#a2
Para el )esarrollo )el proyeco' Se 0a uiliza)o principalmene el enorno )e )esarrollo
para Ja#a (Eclipse) y am5in algunos )e sus plugins2
A?
PFC ULPGC Aplicaciones Criptogrficas Java
Como 0erramienas )e )ocumenaci6n' se uiliz6 la suie )e o"im!ica (*pen*ffice)+
la utili'a' 'e generacin 'e 'ocu&entacin para c'igo Java (Java'oc)3 programa )e
)iseFo +M4 llama)o (ArgoU,L)3 y oras llama)as (P-FCreator) . (Java/0!,L)2
Para )iseFar la p!gina =e5 )el proyeco' (1vu) y una planilla para )ic0a p!gina =e52
Como na#ega)or =e5 para *nerne' (,o2illa Firefo3)2
Para pu5licar el proyeco en *nerne' (4in5CP)+ (File6illa) y (5ourceForge7net)2
Como lengua:es )e )esarrollo' (Java)3 (0!,L)3 (8,L)3 (U,L) y (C55)2
7 oros recursos como (9:2ip)+ (Al6ip)+ IC1KurnerQP ProJ3 (JE'it)+
(1otepa';;)+ (GI,P)3 (Irfanvie<)+ (Paint71E!)+ (-irectrices 'e 'esarrollo)+
(1otes0ol'er Lite)3 (J5&oot=) y (Co"ian >ac?up)2
Para mayor in"ormaci6n so5re ese proyeco se pue)e consular la =e5
0p'>>:ce"2source"orge2ne y am5in pue)e enconrar in"ormaci6n complea so5re los recursos
uiliza)os en 0p'>>:ce"2source"orge2ne>)oc>resources2p)"2
&am5in se po)r! enconrar en ese )ocumeno una secci6n llama)a XPregunas "recuenesY
Bue incluye las pregunas m!s "recuenes Bue el lecor )e ese proyeco pue)e 0acerse2
;uiz!s3 la preguna m!s imporane po)ra ser' ISPor Bu no se 0a )esarrolla)o un con:uno
)e aplicacionesTJ /s )ecir3 ISporBue no se 0a cumpli)o uno )e los )os o5:ei#os )e ese proyecoTJ2
Respon)ien)o )e "orma cora3 se po)ra po)ra )ecir Bue' IPorBue ras realizar el an!lisis surgi6 una
i)ea me:orJ2 4a respuesa m!s larga sera' I4a raz6n )e eHisencia )el segun)o o5:ei#o pre#iso
XMosrar aplicaciones )e las cnicas cripogr!"icas me)iane so"=are )esarrolla)o en el proyecoY
simplemene era el )e pro5ar Bue realmene se 0a5a alcanza)o el primer o5:ei#o' XApren)er a
uilizar cnicas cripogr!"icasY2 &ras "inalizar el esu)io preliminar3 se consi)er6 Bue era muc0o
me:or )esarrollar algo nue#o3 anes Bue realizar un con:uno )e aplicaciones represenai#as )e la
cripogra"a3 lo cual no es na)a no#e)oso2 A)em!s3 ya eHisen 0erramienas muy 5uenas como
ICryp&oolJ O0p'>>===2crypool2com>P3 &rueCryp O0p'>>===2ruecryp2org>P y AHCryp
O0p'>>aHcryp2source"orge2neP )e c6)igo a5iero y oras "ree=are ales como I/ncrypCnClickJ y
I(ingerPrinJ O0p'>>===225rig0sparks2com>P2J2
&am5in son ineresanes las siguienes cuesiones Bue se respon)er!n aBu )e "orma 5re#e'
SCu!l es el amaFo )el proyecoT Su amaFo es 5asane gran)e ya Bue es! compueso
por 3A42 clases3 3A- campos3 2DA4 mo)os3 ?3D-D lneas )e c6)igo y 22D4A lneas )e
comenarios2
SCu!l 0a si)o el cose )el proyecoT /con6mico ninguno al uilizar 0erramienas
grauias pero el cose )e iempo se esima enre 2$$$ y 3$$$ 0orasW m!s )e un aFo )e
ra5a:o sin pausa2
S;u meo)ologa se 0a uiliza)oT Se 0a uiliza)o la cl!sica Oan!lisis3 )iseFo3
implemenaci6n y prue5asP con reroalimenaciones2
Para mayor in"ormaci6n so5re el proyeco pue)e consular la =e5 0p'>>:ce"2source"orge2ne y
si )esea consular m!s pregunas "recuenes pue)e acce)er )irecamene a ellas )irigin)ose a la
)irecci6n 0p'>>:ce"2source"orge2ne>)oc>"aBs2p)"2
A@
PFC ULPGC Aplicaciones Criptogrficas Java
/n resumi)as cuenas3 las conclusiones m!s imporanes so5re el proyeco en s son los
principales aspecos #alora5les posii#amene'
A2 9a5er )esarrolla)o un ra5a:o no#e)oso en lugar )e lo Bue se ena pre#iso2
22 /l uso A$$U )e 0erramienas Cpen Source o (ree=are2
32 9a5er aplica)o el conocimieno )e #arias !reas' *ngeniera )el so"=are3 ,r!"icos3
Programaci6n3 C"im!ica3 Programaci6n =e53 ec222
42 /l en"oBue oriena)o a o5:eos )e la cripogra"a2
-2 Pu5licaci6n )el proyeco en una p!gina =e5 O0p'>>:ce"2source"orge2neP2
%2 /l )iseFo )e im!genes propias originales2
?2 9a5er si)o capaz )e ra5a:ar en el proyeco sin prisas y sin pausas )urane algo m!s )e
un aFo2
@2 4as propuesas realiza)as so5re posi5les "uuros proyecos "in )e carrera2
D2 4a secci6n )e pregunas "recuenes como ayu)a a)icional2
&am5in es imporane conocer algunos punos Bue po)ran consi)erarse como negai#os2
Zsos son los siguienes'
A2 /l iempo emplea)o en el proyeco po)ra consi)erarse eHcesi#o2
22 No 0a5er )esarrolla)o eHacamene lo Bue esa5a pre#iso )es)e un principio2
/n las siguienes secciones se po)r! #er in"ormaci6n m!s )ealla)a so5re el proyeco3
comenzan)o por un par )e capulos )e inro)ucci6n ano a la seguri)a) como a la cripogra"a3
luego oro capulo en el Bue se 0a5la )el proyeco en sW segui)amene se conina con una secci6n
iula)a I(uuros proyecosJ3 para poseriormene coninuar con el capulo )on)e se )eallan los
recursos uiliza)os en ese proyecoW y "inalmene un capulo )on)e se colocan las pregunas
"recuenes Bue pue)e 0acerse el lecor )el proyeco2
Recuer)e el lecor Bue o)a la in"ormaci6n so5re ese proyeco y m!s se pue)e enconrar en la
)irecci6n =e5 0p'>>:ce"2source"orge2ne2
AD
PFC ULPGC Aplicaciones Criptogrficas Java
2$
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
$#Introducci!n a la seguridad
4as necesi)a)es )e seguri)a) )e la in"ormaci6n 0an i)o e#olucionan)o al igual Bue las
ciencias )e la compuaci6n y las ecnologas )e la in"ormaci6n2 1e ese mo)o3 las 0erramienas )e
seguri)a) emplea)as am5in lo 0an 0ec0o2
/n sus comienzos3 la seguri)a) consisa en el uso )e me)ios "sicos3 ales como ca:as "ueres
o armarios con cierre )e seguri)a)2 Poco )espus3 aparecieron los me)ios a)minisrai#os3 como lo
son los conraos )e emplea)os para sal#aguar)ar in"ormaci6n con"i)encial )e la empresa2
Con la llega)a )e la compuaci6n3 0icieron "ala nue#as 0erramienas )e seguri)a) )iseFa)as
para proeger los )aos y e#iar la inrusi6n )e los 0ackers2 /sas 0erramienas se conocen con el
nom5re )e Iseguri)a) in"orm!icaJ2
(inalmene3 con la aparici6n )e *nerne3 las re)es locales y los sisemas )isri5ui)os3 surgi6 la
necesi)a) )e )isponer )e seguri)a) )urane la ransmisi6n2 4as 0erramienas Bue sais"acen esas
nue#as necesi)a)es se englo5an 5a:o la )enominaci6n Iseguri)a) en re)esJ2 A coninuaci6n se
pue)e o5ser#ar la e#oluci6n en el iempo ano )e la seguri)a) como )e la in"orm!ica2
Para mayor in"ormaci6n pue)e consular los recursos 5i5liogr!"icos uiliza)osW a los cuales
am5in se pue)e acce)er )es)e 0p'>>:ce"2source"orge2ne>)oc>resources2p)"2
2A
Ilustracin /: Evolucin en el tie&po 'e la seguri'a' . la infor&tica
PFC ULPGC Aplicaciones Criptogrficas Java
1 Una arquitectura de seguridad
Para analizar )e "orma e"eci#a las necesi)a)es )e seguri)a) )e una organizaci6n3 e#aluar y
elegir )isinos pro)ucos y policas )e seguri)a)3 el responsa5le )e la seguri)a) necesia una "orma
sisem!ica )e )e"inir los reBuisios )e seguri)a) y caracerizar los en"oBues para sais"acer )ic0os
reBuisios2
+no )e esos posi5les en"oBues ineresanes se cenra en los aaBues a la seguri)a)3 los
mecanismos y los ser#icios2
+n aaBue a la seguri)a) es cualBuier acci6n Bue compromea la seguri)a) )e la in"ormaci6n
)e una organizaci6n2 4os aaBues a la seguri)a) se )eecan3 eliminan3 pre#ienen y>o se reesa5lece
el sisema )e su )aFo3 sien)o los encarga)os )e esas "unciones los mecanismos )e seguri)a)2
Por el conrario3 un ser#icio )e seguri)a) es un ser#icio Bue me:ora la seguri)a) )e los
sisemas3 conrarresan)o los aaBues a la seguri)a)3 0acien)o uso )e uno o m!s mecanismos y
policas )e seguri)a) con el o5:ei#o )e proporcionar el ser#icio2
/n resumen3 los componenes )e una arBuiecura )e seguri)a) :uno con sus o5:ei#os son'
Com%onentes &b'eti(o
AaBue a la seguri)a) Compromeer la seguri)a) )e la in"ormaci6n )e un sisema
Ser#icio )e seguri)a) Conrarresar los aaBues a la seguri)a)
Mecanismo )e seguri)a) Ayu)ar a conrarresar los aaBues a la seguri)a)
!a"la /: Co&ponentes 'e una ar#uitectura 'e seguri'a' . sus o"%etivos
2 Ataques a la seguridad
4os aaBues a la seguri)a) se pue)en clasi"icar en aaBues pasi#os y aci#os2 /n la siguiene
a5la se muesran ca)a una )e ellos :uno con sus o5:ei#os primarios y sus soluciones'
Caractersticas
Ata)ues
Pasi(os Acti(os
&b'eti(o
*Acceden a recursos+ S S
*&btienen inormaci!n+ S S
*Alteran el sistema+ No S
*Alteran recursos+ No S
!a"la @: Co&parativa entre Ata#ues Pasivos . Activos A1B/C
22
PFC ULPGC Aplicaciones Criptogrficas Java
Caractersticas
Ata)ues
Pasi(os Acti(os
Soluci!n
*Se %ueden %re(enir+ S No
*Se %ueden detectar+ No S
*Se %ueden recu%erar+ No S
!a"la D: Co&parativa entre Ata#ues Pasivos . Activos A/B/C
1 Ataques pasivos
1e la misma "orma3 eHisen #arios ipos )e aaBues pasi#os2 /n la siguiene a5la se muesran
ca)a uno )e ellos :uno con sus o5:ei#os 5!sicos'
Ata)ues Pasi(os &b'eti(os
C5enci6n )e coneni)os )e mensa:es Copiar in"ormaci6n
An!lisis )el &r!"ico
A#eriguar la nauraleza )e la comunicaci6n
1es#elar la i)eni)a) )e los comunicanes
!a"la E: Ata#ues Pasivos . sus *"%etivos
&am5in es ineresane )escaar los oros nom5res )e esos ipos )e aaBues'
Ata)ues Pasi(os Alias
AaBues pasi#os AaBues )e inercepci6n
C5enci6n )e coneni)os )e mensa:es *nercepci6n )e )aos
An!lisis )el &r!"ico *nercepci6n )e eni)a)
!a"la F: *tros no&"res 'e los ata#ues pasivos
23
PFC ULPGC Aplicaciones Criptogrficas Java
/n las siguienes ilusraciones se pue)en #er ca)a uno )e los )iagramas )e los aaBues pasi#os
eHisenes'
+n e:emplo )e aaBue pasi#o me)iane o5enci6n )e coneni)os )e mensa:es po)ra ser' I+n
usuario A en#a un arc0i#o a oro usuario K2 /l arc0i#o coniene in"ormaci6n con"i)encial Bue )e5e
proegerse3 por e:emplo los regisros )e n6minas2 Cro usuario C3 Bue no es! auoriza)o a leer el
arc0i#o3 o5ser#a la ransmisi6n y capura una copia )el arc0i#o )urane )ic0a ransmisi6nJ2
Para el caso )e aaBues 5asa)o en el an!lisis )el r!"ico3 el e:emplo sera eBui#alene al
anerior3 eHcepo Bue en lugar )e analizar el coneni)o )e los paBuees Bue se ransmien a ra#s )e
la re)3 se o5ser#an las ca5eceras )e ca)a uno )e ellos2
24
Ilustracin D: Anlisis 'el trfico
Ilustracin @: *"tencin 'el conteni'o 'e &ensa%es
PFC ULPGC Aplicaciones Criptogrficas Java
2 Ataques activos
/Hisen #arios ipos )e aaBues aci#os3 Bue :uno con sus o5:ei#os3 se mencionan a
coninuaci6n'
Ata)ues Acti(os &b'eti(os
Suplanaci6n )e i)eni)a) (ingir ser ora eni)a)
Repeici6n Reransmiir mensa:es
Mo)i"icaci6n )e mensa:es Alerar3 rerasar y>o reor)enar mensa:es
*nerrupci6n )el ser#icio 1e:ar "uera )e ser#icio algn recurso )el sisema
!a"la 9: Ata#ues Activos . sus o"%etivos
*gualmene es ineresane )esacar los oros nom5res )e esos ipos )e aaBues'
Ata)ues acti(os Alias
Suplanaci6n )e i)eni)a) (alsi"icaci6n )e i)eni)a)
Repeici6n Reacuaci6n
Mo)i"icaci6n )e mensa:es Aleraci6n )e mensa:es
*nerrupci6n )el ser#icio 1egra)aci6n "rau)ulena )el ser#icio
!a"la G: *tros no&"res 'e los ata#ues activos
A coninuaci6n3 se pue)en o5ser#ar ca)a uno )e los )iagramas para ca)a uno )e los aaBues
aci#os eHisenes'
2-
Ilustracin E: 5uplantacin 'e i'enti'a'
PFC ULPGC Aplicaciones Criptogrficas Java
+n e:emplo )e aaBue por suplanaci6n )e i)eni)a) po)ra ser' IM!s all! )e inercepar un
mensa:e3 un usuario po)ra consruir un mensa:e con las enra)as )esea)as3 ransmiin)olo
poseriormene a oro usuario como si proce)iera )e la eni)a) suplana)a3 como por e:emplo la
eni)a) )e un a)minisra)or2 Por consiguiene3 el usuario recepor acepa el mensa:e y reacciona
ane el mensa:e como si )el a)minisra)or proce)iera2 /l mensa:e po)ra ser cualBuier ipo )e
in"ormaci6n3 como un "ic0ero )e los usuarios Bue es!n auoriza)os o noJ2
Por oro la)o3 un e:emplo )e una posi5le consecuencia )e un aaBue me)iane repeici6n )e
mensa:es sera' I9a5er ingresa)o )inero repei)as #eces en una cuena )a)aJ2
Para el caso )e aaBues me)iane mo)i"icaci6n )e mensa:es3 algunos )e sus o5:ei#os po)ran
ser' Ialerar un programa para Bue "uncione )e "orma )i"ereneJ o Imo)i"icar una or)enJ3 por
e:emplo3 en lugar )el mensa:e I*ngresa un mill6n )e peseas en la cuena AJ3 po)ra ser mo)i"ica)o
para )ecir I*ngresa un mill6n )e peseas en la cuena KJ2
2%
Ilustracin F: Hepeticin 'e &ensa%es
Ilustracin 9: ,o'ificacin 'e &ensa%es
PFC ULPGC Aplicaciones Criptogrficas Java
(inalmene3 e:emplos )e aaBues me)iane inerrupci6n )e ser#icio son' ISuprimir o)os los
mensa:es )irigi)os a una )eermina)a eni)a)J3 I*nerrumpir el ser#icio )e una re) inun)!n)ola con
mensa:es espuriosJ o I1es0a5iliar el sisema )e gesi6n )e "ic0erosJ2
3 Servicios de seguridad
+n ser#icio )e seguri)a) es un ser#icio Bue me:ora la seguri)a) )e los sisemas3
conrarresan)o los aaBues a la seguri)a)3 0acien)o uso )e uno o m!s mecanismos y policas )e
seguri)a) con el o5:ei#o )e proporcionar el ser#icio2 &am5in pue)en )e"inirse como ari5uos
)esea5les para Bue un sisema pue)a consi)erarse seguro2 4os principales ser#icios )e seguri)a)3
:uno con sus o5:ei#os son'
Ser(icios de Seguridad &b'eti(os
Aueni"icaci6n ,aranizar la proce)encia )e los o5:eos
Conrol )e Acceso Pre#enir el uso no auoriza)o )e los o5:eos
Con"i)enciali)a) Proeger los o5:eos ane eni)a)es no auoriza)as
*negri)a)
,aranizar Bue no se pue)an mo)i"icar los o5:eos sin
ser )eeca)o )ic0o 0ec0o
No repu)io
Asegurar Bue el recepor reci5i6 los o5:eos
Asegurar Bue el emisor en#i6 los o5:eos
1isponi5ili)a)
Asegurar Bue los o5:eos esn )isponi5les3 e#ian)o Bue
eni)a)es no auoriza)as a"ecen a )ic0a )isponi5ili)a)
!a"la I: 5ervicios 'e 5eguri'a' . sus *"%etivos
2?
Ilustracin G: Interrupcin 'e servicio
PFC ULPGC Aplicaciones Criptogrficas Java
+n smil enre los ser#icios )e seguri)a) y la #i)a coi)iana se esa5lece en la siguiene a5la'
Ser(icios de Seguridad ,'em%los de la (ida cotidiana
Aueni"icaci6n 1N*
Conrol )e acceso 4la#es y cerro:os
Con"i)enciali)a) &ina in#isi5le
*negri)a) &ina in)ele5le
No repu)io (irma noariza)a
!a"la 1J: Los 5ervicios 'e 5eguri'a' . la vi'a coti'iana
Ca)a uno )e los ser#icios )e seguri)a) es! pensa)o para 0acer "rene a uno o #arios aaBues2
4a siguiene a5la muesra )ic0as relaciones'
Ser(icios de Seguridad Ata)ues deendidos
Aueni"icaci6n Suplanaci6n )e i)eni)a)
Conrol )e Acceso Suplanaci6n )e i)eni)a)
Con"i)enciali)a)
C5enci6n )el coneni)o )e mensa:es
An!lisis )el r!"ico
*negri)a)
Repeici6n
Mo)i"icaci6n )e mensa:es
No repu)io [[[
1isponi5ili)a) *nerrupci6n )e ser#icio
!a"la 11: Ata#ues 'efen'i'os por los 5ervicios 'e 5eguri'a'
4 Mecanismos de seguridad
4os mecanismos )e seguri)a) son uiliza)os por los ser#icios )e seguri)a) con el o5:ei#o )e
conrarresar los aaBues a la seguri)a)2 /s )ecir3 para Bue los ser#icios )e seguri)a) 0agan "rene a
los aaBues3 es necesario Bue uilicen una serie )e mecanismos )e seguri)a)'
2@
PFC ULPGC Aplicaciones Criptogrficas Java
Ser(icios de Seguridad Mecanismos utilizados
Aueni"icaci6n
Conrol )e Acceso
Con"i)enciali)a)
*negri)a)
No repu)io
1isponi5ili)a)
Cripogra"a
!a"la 1/: ,ecanis&os utili2a'os por los servicios
4a cripogra"a es el mecanismo )e seguri)a) primor)ial )e o)o sisema )e seguri)a)3 pero
no es el nico2 Se pue)en uilizar oros mecanismos ales como' el conrol )e acceso3 el inercam5io
)e aueni"icaci6n3 la noarizaci6n3 el conrol )e enruamieno3 las au)ioras )e seguri)a)3 la
"uncionali)a) "ia5le me)iane policas )e seguri)a)3 las eiBueas )e seguri)a)3 la )eecci6n )e
acciones3 los mecanismos )e recuperaci6n3 ec2
/l nico mecanismo )e seguri)a) Bue se raar! ser! la cripogra"a3 cuyo nico o5:ei#o es
consruir o5:eos seguros2
2D
PFC ULPGC Aplicaciones Criptogrficas Java
3$
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
-#Cri%tograa &rientada a &b'etos
4a cripogra"a3 #isa en rminos sociales3 es la ciencia Bue raa )e Bue el cose )e a)Buirir o
alerar o5:eos )e mo)o impropio sea mayor Bue el posi5le #alor o5eni)o al 0acerlo2 1es)e un
puno )e #isa m!s "ormal3 la cripogra"a es la pr!cica y el esu)io )e cnicas para asegurar
o5:eos 0acin)olos incomprensi5les y>o aueni"ica5les y recuperarlos a parir )e )ic0a #ersi6n
incomprensi5le y>o aueni"ica5le2
+n o5:eo pue)e ser cualBuier cosa' in"ormaci6n3 recursos3 )aos3 mensa:es3 "ic0eros3 un
o5:eo seguro3 ec222 1es)e el puno )e #isa )e la cripogra"a3 se )isinguen los siguienes ipos )e
o5:eos'
+n o5:eo es 222
Normal
Seguro
Proegi)o
Aunico
Vnegro
Aueni"ica5le
222 s6lo si 222
Pue)e ser inseguro
/s! proegi)o y>o es aueni"ica5le
Sus propie)a)es son incomprensi5les
Su origen es aunico y>o si es negro
Sus propie)a)es son aunicas
Pue)e compro5arse su auenici)a)
!a"la 1@: !ipos 'e o"%etos criptogrficos
Para alcanzar un gra)o mayor )e comprensi6n3 #ase la siguiene a5la )on)e aparecen ca)a
una )e las caracersicas )e )ic0os o5:eos'
.i%os de &b'eto
Caractersticas
Pro%iedades &rigen
Accesibles ,ntendibles Autnticas Autentiicables Autntico Autentiicable
/ormal Siempre Siempre A #eces Nunca A #eces Nunca
Seguro Siempre A #eces A #eces A #eces A #eces A #eces
Protegido Siempre Nunca A #eces Nunca A #eces Nunca
Autntico Siempre Siempre A #eces Nunca A #eces Nunca
Autentiicable Siempre Siempre A #eces A #eces A #eces A #eces
!a"la 1D: Caractersticas 'e los o"%etos
Para mayor in"ormaci6n pue)e consular las re"erencias 5i5liogr!"icas so5re ese emaW a las
cuales am5in se pue)e acce)er )es)e 0p'>>:ce"2source"orge2ne>)oc>resources2p)"2
3A
PFC ULPGC Aplicaciones Criptogrficas Java
1 Operaciones criptogrficas
/n general3 la cripogra"a proporciona una serie )e operaciones con el nico o5:ei#o )e
consruir o5:eos seguros y o5ener con poseriori)a) el o5:eo asegura)o a parir )e su #ersi6n
segura2 /sas operaciones :uno con sus "unciones son'
&%eraciones Cri%togr0icas 1unci!n
Proecci6n Consruir la #ersi6n proegi)a )e un o5:eo )a)o
1esproecci6n C5ener el o5:eo original a parir )e su #ersi6n proegi)a
Aueni"icaci6n Consruir la #ersi6n aueni"ica5le )e un o5:eo )a)o
Eeri"icaci6n )e auenici)a)
C5ener el o5:eo original a parir )e su #ersi6n
aueni"ica5le s6lo si es aunico
!a"la 1E: *peraciones Criptogrficas . sus funciones
1 Proteccin
4a proecci6n genera o5:eos proegi)os3 los cuales se pue)en generar por )os procesos
ligeramene )isinos' la proecci6n simrica o 5asa)a en el uso )e cla#es secreas y la proecci6n
asimrica o 5asa)a en el uso )e cla#es p5licas y pri#a)as2
/n resumen3 esas operaciones uilizan una serie )e cla#es ano para la proecci6n como la
)esproecci6n3 al y como se o5ser#a en la siguiene a5la2
Cla(es de ###
Protecci!n
Simtrica Asimtrica
Protecci!n Secrea P5lica )el recepor
2es%rotecci!n Secrea Pri#a)a )el recepor
!a"la 1F: Categoras 'e proteccin . sus claves
Para )ar mayor luz al asuno3 #anse las siguienes ilusraciones2
32
PFC ULPGC Aplicaciones Criptogrficas Java
33
Ilustracin I: Proteccin . -esproteccin 5i&Ktricas
Ilustracin 1J: Proteccin . -esproteccin Asi&Ktricas
PFC ULPGC Aplicaciones Criptogrficas Java
/n el caso )e la proecci6n simrica3 eHisen a su #ez )os caegoras )ignas )e menci6n3 la
simrica )e 5loBues y la )e "lu:o2
4a proecci6n simrica )e 5loBues3 )i#i)e el o5:eo en pares iguales3 proegien)o ca)a una
)e ellas2 A)em!s3 ese ipo )e proecci6n uiliza en eHclusi#i)a) mo)os )e operaci6n y esBuemas )e
relleno2 /l mo)o )e operaci6n )e"ine el amaFo Bue )e5en ener ca)a una )e las pares y la "orma en
la Bue se proege>)esproege ca)a una )e ellas2 /Hisen numerosos mo)os )e operaci6n2 Algunos
son r!pi)os3 e"icienes pero poco seguros y oros son menos e"icienes pero m!s seguros2 /l
esBuema )e relleno es uiliza)o para rellenar la lima pare con el o5:ei#o )e Bue o)as las pares
)el o5:eo posean el mismo amaFo2 /so suele ser necesario ya Bue generalmene el amaFo )el
o5:eo no suele ser mliplo )el amaFo pre)e"ini)o por el mo)o )e operaci6n2 /Hisen numerosos
esBuemas )e relleno ca)a uno )e ellos con )isinas caracersicas2
Por oro la)o3 la proecci6n simrica )e "lu:o no )i#i)e al o5:eo en pares3 sino Bue lo raa
como si "uera una nica eni)a)2
2 Autentificacin
4a aueni"icaci6n genera o5:eos aueni"ica5les3 los cuales es!n "orma)os por el o5:eo a
aueni"icar y oro o5:eo llama)o aueni"ica)or3 cuyas propie)a)es son las siguienes'
S/s un c6)igo represenai#o )el o5:eoT S
S/Hclusi#o )el o5:eo correspon)ieneT S
S1e5e asociarse al o5:eo al Bue pereneceT S
SPor s solo sir#e para algoT No
SSir#e para oros o5:eosT No
SS6lo se uiliza para la #eri"icaci6n )e la auenici)a)T S
!a"la 19: Propie'a'es 'e to'o autentifica'or
A)em!s3 eHisen #arios ipos )e aueni"ica)ores3 los cuales se )escri5en a coninuaci6n'
.i%os de Autentiicadores 2escri%ci!n
9uella )igial )e un o5:eo C6)igo )e amaFo "i:o y represenai#o )el o5:eo
Sello )igial )e un o5:eo 9uella )igial proegi)a simricamene
(irma )igial )e un o5:eo 9uella )igial proegi)a asimricamene
!a"la 1G: !ipos 'e autentifica'ores . sus 'escripciones
&ano para la aueni"icaci6n como la #eri"icaci6n )e la auenici)a)3 esas operaciones
uilizan una serie )e cla#es al y como "igura a coninuaci6n2
34
PFC ULPGC Aplicaciones Criptogrficas Java
Cla(es de ###
Autentiicaci!n mediante ###
3uella Sello 1irma
Autentiicaci!n Ninguna Secrea Pri#a)a )el emisor
4eriicaci!n Ninguna Secrea P5lica )el emisor
!a"la 1I: Categoras 'e Autentificacin . sus claves
/n las siguienes ilusraciones pue)en #erse ca)a uno )e los o5:eos aueni"ica5les en 5ase al
ipo )e aueni"ica)or uiliza)o para su generaci6n y poserior #eri"icaci6n )e la auenici)a)2
3-
Ilustracin 11: *"%eto Autentifica"le &e'iante 0uella -igital
Ilustracin 1/: *"%eto Autentifica"le &e'iante 5ello -igital
Ilustracin 1@: *"%eto Autentifica"le &e'iante Fir&a -igital
PFC ULPGC Aplicaciones Criptogrficas Java
3 Aclaraciones sobre las claves
4os ipos )e cla#es reBuieren una serie )e aclaraciones a)icionales3 sien)o sas las
siguienes'
Caractersticas
Cla(es
Secreta Pblica Pri(ada
SCompari)aT Siempre Siempre Nunca
SPu5lica)aT Nunca Siempre Nunca
SPereneciene a un nico propiearioT No S S
S/Hclusi#a )e su propiearioT Nunca No Siempre
S+iliza)a por el propiearioT S No S
!a"la /J: Aclaraciones a'icionales so"re los 'istintos tipos 'e claves A1B/C
Cras aclaraciones a)icionales son'
Cla(es
Caractersticas
*5u cla(e in(ierte su eecto+ *C!mo se genera+
Secreta S6lo la misma cla#e secrea *n)i#i)ualmene
Pblica S6lo su cla#e pri#a)a asocia)a /n pare:a3 :uno con su cla#e pri#a)a
Pri(ada S6lo su cla#e p5lica asocia)a /n pare:a3 :uno con su cla#e p5lica
!a"la /1: Aclaraciones a'icionales so"re los 'istintos tipos 'e claves A/B/C
4 Sus problemas y sus soluciones
/n la siguiene a5la se muesran los pro5lemas )e los Bue a)olecen las operaciones
cripogr!"icas'
&%eraciones Cri%togr0icas Problema
Protecci!n
Simtrica Pri#aci)a)>1isri5uci6n )e la cla#e secrea
Asimtrica (alsi"icaci6n )e la cla#e p5lica
Autentiicaci!n
3uella No asegura su propia inegri)a)
Sello Pri#aci)a)>1isri5uci6n )e la cla#e secrea
1irma (alsi"icaci6n )e la cla#e p5lica
!a"la //: Pro"le&as 'e las operaciones criptogrficas
3%
PFC ULPGC Aplicaciones Criptogrficas Java
A coninuaci6n se mencionan las soluciones a ca)a uno )e los pro5lemas )e las operaciones
cripogr!"icas'
&%eraciones Soluciones
Protecci!n
Simtrica Proecci6n asimrica )e las cla#es secreas
Asimtrica Noarizaci6n 5asa)a en ceri"ica)os
Autentiicaci!n
3uella
Asegurar la 0uella me)iane proecci6n simrica
Asegurar la 0uella me)iane proecci6n asimrica
Sin proecci6n2 ,enerar la 0uella )igial no )el o5:eo3
sino )e la uni6n )e se con un secreo compari)o2
Sello Proecci6n asimrica )e las cla#es secreas
1irma Noarizaci6n 5asa)a en ceri"ica)os
!a"la /@: 5oluciones a los pro"le&as 'e las operaciones criptogrficas
5 Sus caractersticas
4as principales caracersicas )e ca)a una )e las operaciones cripogr!"icas son'
Caractersticas
Protecci!n Autentiicadores
Simtrica Asimtrica 3uella Sello 1irma
/i(el de Seguridad Alo Muy alo Ka:o Me)io Muy alo
4elocidad de Procesamiento Ala Muy 5a:a Ala Me)ia Muy 5a:a
6ongitud de las cla(es PeBueFa ,ran)e Ninguna PeBueFa ,ran)e
4ida aconse'able de las cla(es Cora 4arga Ninguna Cora 4arga
/mero de cla(es /le#a)o Re)uci)o Ninguna /le#a)o Re)uci)o
*Adecuada %ara ob'etos grandes+ S No S S S
*Adecuada %ara ob'etos %e)ue7os+ S S S S S
!a"la /D: Caractersticas principales 'e las operaciones criptogrficas
3?
PFC ULPGC Aplicaciones Criptogrficas Java
6 Sus aplicaciones
4as principales aplicaciones )e ca)a una )e las operaciones cripogr!"icas son'
&%eraciones A%licaciones
Protecci!n
Simtrica Proecci6n )e o5:eos gran)es
Asimtrica 1isri5uci6n )e cla#es secreas
Autentiicaci!n
3uella Asegurar la auenici)a) )e los o5:eos
Sello Asegurar la auenici)a) )e los o5:eos
1irma Asegurar la auenici)a) )e los o5:eos
!a"la /E: Aplicaciones principales 'e las operaciones criptogrficas
7 Servicios e se!uria
4as operaciones cripogr!"icas son mecanismos uiliza)os por algunos ser#icios )e seguri)a)
al y como se muesra en la siguiene a5la'
Ser(icios de Seguridad Protecci!n Autentiicaci!n
Simtrica Asimtrica 3uella Sello 1irma
Conidencialidad Siempre Siempre Nunca Nunca Nunca
Autentiicaci!n A #eces Siempre Nunca A #eces Siempre
Integridad Nunca Nunca Siempre Siempre Siempre
/o re%udio Nunca Siempre Nunca Nunca Siempre
2is%onibilidad A #eces A #eces A #eces A #eces A #eces
Control de Acceso A #eces A #eces A #eces A #eces A #eces
!a"la /F: 5ervicios 'e seguri'a' . las operaciones criptogrficas
3@
PFC ULPGC Aplicaciones Criptogrficas Java
2 a Seguridad de la Criptograf!a
&am5in es muy imporane conocer el gra)o )e seguri)a) )e los algorimos cripogr!"icos
uiliza)os por las operaciones cripogr!"icas y para ello se emplea el cripoan!lisis como con:uno
)e proce)imienos3 procesos y mo)os emplea)os para romper un algorimo cripogr!"ico2
1 Al!oritmos se!uros
/n general3 para Bue la cripogra"a sea un mecanismo )e seguri)a) seguro3 el algorimo
emplea)o )e5e cumplir las siguienes propie)a)es'
A 4a cla#e emplea)a )e5e manener su pri#aci)a)
2 1e5e ser ro5uso
/n el caso )e un algorimo )e auen"icaci6n3 a)em!s )e5e cumplirse'
No es posi5le a#eriguar el o5:eo 5as!n)ose s6lo en su aueni"ica)or
1a)o un aueni"ica)or )e5e ser imposi5le enconrar un o5:eo Bue lo
genere
1e5e ser compuacionalmene imposi5le enconrar )os o5:eos con el
mismo aueni"ica)or
3 1e5e poseer un ni#el )e con"ianza alo
4 1e5e pasar por una re#isi6n complea
- 1e5e ser seguro compuacionalmene3 es )ecir3 cumplir al menos uno )e los
siguienes crierios'
/l cose )e romper el algorimo eHce)e el #alor )e la in"ormaci6n o5eni)a
/l iempo necesario para romper el algorimo eHce)e el iempo )e #i)a il
)e la in"ormaci6n
% 1e5e )isponer )e un nmero muy ele#a)o )e cla#es posi5les
? 1e5e pro)ucir o5:eos seguros Bue parezcan aleaorios a un es esa)sico
es!n)ar
@ 1e5e ser resisene al cripoan!lisis
!a"la /9: Propie'a'es generales 'e un algorit&o criptogrfica&ente seguro
Acualmene3 no eHise ningn algorimo seguro incon)icionalmene3 es )ecir3 no eHise
ningn algorimo Bue resisa aaBues )isponin)ose )e o)os los recursos y gran cani)a) )e o5:eos
seguros2
3D
PFC ULPGC Aplicaciones Criptogrficas Java
A)em!s3 es necesario sa5er Bue eHisen una serie )e crierios para seleccionar el algorimo
cripogr!"ico m!s a)ecua)o'
A A mayor amaFo )e 5loBue3 mayor ni#el )e seguri)a)
2 A mayor longiu) )e cla#e3 mayor seguri)a)
3 ,eneralmene3 a mayor seguri)a)3 menor #eloci)a) )e procesamieno
4 4a longiu) )el aueni"ica)or es )irecamene proporcional a la seguri)a)
- Si se )esea asegurar el coneni)o )e los o5:eos3 elegir algorimos )e proecci6n
%
Si se )esea asegurar la auenici)a) )e los o5:eos3 elegir algorimos )e
aueni"icaci6n' 0uellas3 sellos o "irmas )igiales
!a"la /G: Criterios 'e seleccin 'e algorit&os criptogrficos
2 Ataques
4os algorimos cripogr!"icos se someen a una serie )e aaBues con el o5:ei#o )e romperlos2
Algunos )e los m!s imporanes so5re algorimos cripogr!"icos son' XCripoan!lisis )i"erencialY3
XCripoan!lisis linealY3 X/Hploaci6n )e cla#es )5ilesY3 XAaBues alge5raicosY3 XComple:i)a)
linealY3 XAaBues )e correlaci6nY3 XAaBue )el cumpleaFosY3 X/Hploaci6n )e las
pseu)ocolisionesY3 X(uerza KruaY3 X(uerza Krua 5asa)a en )iccionarioY3 XAaBue cclicoY3
X(acorizaci6n )e la cla#e p5licaY3 XAaBue )e MerkleG9ellmanY3 XAaBue 5asa)o en or!culosY3
XAaBue por conrol )e iemposY3 XAaBue por inro)ucci6n )e "alasY3 XAaBue por inro)ucci6n )e
canales su5liminales en las cla#esY3 ec222
3 Aplicaciones de la criptograf!a
4a cripogra"a es una )isciplina con muliu) )e aplicacionesW muc0as )e las cuales es!n en
uso 0oy en )a2 &o)as ellas simplemene lo Bue 0acen es mane:ar o5:eos seguros3 en lugar )e
simplemene o5:eos2 /nre las m!s imporanes se )esacan las siguienes' Seguri)a) )e las
comunicaciones3 *)eni"icacion y Aueni"icaci6n3 Proecci6n )e so"=are y Correo /lecr6nico2
4$
PFC ULPGC Aplicaciones Criptogrficas Java
1 Se!uria e las comunicaciones
Seguridad de las comunicaciones A%licaciones
/nre or)ena)ores Proocolos SS43 &4S y S/&
&ele"6nicas Comunicaciones m6#iles seguras A&\&3 c0ip
cripogr!"ico Clipper
Correo elecr6nico Proocolos P,P y P/M
!a"la /I: Aplicaciones so"re (5eguri'a' 'e las co&unicaciones)
2 "entificacin y Autentificacin
Identiicaci!n y Autentiicaci!n A%licaciones
Aueni"icaci6n )e +suarios Mer5eros
Ceri"icaci6n Ceri"icaci6n Q2-$D
!a"la @J: Aplicaciones so"re (I'entificacin . Autentificacin)
3 Proteccin e soft#are
Protecci!n de sot8are A%licaciones
/#iar la ingeniera in#ersa Carga)or )e clases proegi)as
/#iar usos malinenciona)os PaBuees "irma)os )igialmene
!a"la @1: Aplicaciones so"re (Proteccin 'e soft<are)
4A
PFC ULPGC Aplicaciones Criptogrficas Java
4 $omercio %lectrnico
Comercio ,lectr!nico A%licaciones
Aplicaciones 5ancarias Ca:eros auom!icos3 Le5s )e 5ancos
&ransacciones elecr6nicas *ner5ancarias3 *nerpersonales3 /nre in)i#i)uos y
5ancos3 /nre in)i#i)uos y comercios3 /nre
comercios
Sisemas )e pago elecr6nicos 1inero elecr6nico3 C0eBues elecr6nicos3 Pagos
con ar:ea )e cr)io3 Micropagos
*nercam5io /lecr6nico )e
1ocumenos
Pe)i)os3 A#isos )e pagos3 (acuras3 *n"ormes )e
#enas3 ec2
!a"la @/: Aplicaciones so"re (Co&ercio Electrnico)
4 Conceptos t"cnicos
/n ese capulo y en general en o)o el proyeco se 0a e#ia)o al m!Himo el uso )e concepos
o rminos cnicos ya Bue son oalmene innecesarios2 Sin em5argo3 para aBuel lecor Bue Buiera
pro"un)izar en los )ealles )e la cripogra"a3 5ien le #al)ra sa5er las siguienes correspon)encias
enre los concepos uiliza)os y sus rminos cnicos asocia)os2 /sa correspon)encia se muesra a
coninuaci6n'
Conce%to .rminos tcnicos
Cperaci6n cripogr!"ica Algorimo cripogr!"ico
Proecci6n Ci"ra)o3 /ncripa)o
1esproecci6n 1escri"ra)o3 1esencripa)o
Proecci6n simrica Ci"ra)o simrico3 Ci"ra)o )e cla#e secrea3 Cripogra"a )e
cla#e secrea3 Cripogra"a simrica3 Algorimo )e cla#e
secrea3 Algorimo simrico
Proecci6n asimrica Ci"ra)o asimrico3 Ci"ra)o )e cla#e p5lica3 Cripogra"a )e
cla#e p5lica3 Cripogra"a asimrica3 Algorimo )e cla#e
p5lica3 Algorimo asimrico
!a"la @@: Conceptos . sus tKr&inos tKcnicos A1B/C
42
PFC ULPGC Aplicaciones Criptogrficas Java
Conce%to .rminos tcnicos
Aueni"icaci6n Ci"ra)o irre#ersi5le
(irma )igial 1igial Signaure3 Algorimo )e "irma )igial3 Signaure
9uella )igial Resumen )e mensa:e3 Algorimo )e resumen )e mensa:es3
(unci6n )e )ispersi6n cripogr!"ica3 Message )iges3 1iges3
9as03 (unci6n 0as0 uni)ireccional3 (ingerPrin
Sello )igial C6)igo )e Aueni"icaci6n )e Mensa:es3 Message
Au0enicaion Co)e3 MAC3 1igial Seal
C5:eo &eHo claro3 Plain eH3 Mensa:e
C5:eo seguro &eHo ci"ra)o3 Cip0er eH
!a"la @D: Conceptos . sus tKr&inos tKcnicos A/B/C
43
PFC ULPGC Aplicaciones Criptogrficas Java
44
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
9#,l %royecto
1es)e el puno )e #isa )e la seguri)a)3 el con:uno )e clases )e seguri)a) )isri5ui)as con el
Ja#a 2 S1M pue)en )i#i)irse en )os su5con:unos' clases relaciona)as con el conrol )e acceso3 la
gesi6n )e permisos y las clases relaciona)as con la cripogra"a2
Ja#a proporciona "unciones cripogr!"icas )e prop6sio general3 conoci)as coleci#amene
como la Ar#uitectura Criptogrfica 'e Java AJCAC y la E3tension Criptogrfica 'e Java AJCEC2 /l
JCA es! "orma)o por las clases 5!sicas relaciona)as con la cripogra"a y el sopore para la
proecci6n lo proporciona el paBuee )e eHensi6n JC/2
4a li5rera JCA es un marco )e ra5a:o para acce)er y )esarrollar "unciones cripogr!"icas en
la plaa"orma Ja#a2 Se )iseF6 alre)e)or )e )os principios 5!sicos3 la in)epen)encia e
ineropera5ili)a) )e las implemenaciones y la in)epen)encia y eHensi5ili)a) )e los algorimos2
4as principales "unciones cripogr!"icas implemena)as son' encripar )aos3 )esencripar
)aos3 encripar cla#es3 )esencripar cla#es3 generar cla#es3 generar oros par!meros3 realizar
con#ersiones enre )isinas represenaciones )e los par!meros y )e las cla#es3 generar y #eri"icar
resmenes )e mensa:es3 c6)igos )e aueni"icaci6n )e mensa:es y "irmas )igiales2
Sin em5argo3 uilizar la arBuiecura cripogr!"ica )e Ja#a OJCAP y su eHensi6n OJC/P resula
)emasia)o complica)o2 /s por ello por lo Bue se 0a )eci)i)o )esarrollar una nue#a li5rera
cripogr!"ica llama)a JC/( OJa#a Crypograp0ic /Hension (rame=orkP3 en lugar )e mosrar un
con:uno )e aplicaciones concreas )e la cripogra"a2 JC/( se sopora so5re JCA y JC/ "acilian)o
enormemene su uso2 /sa nue#a li5rera sera mayormene una "ac0a)a )e las li5reras JCA y JC/2
/l cliene )e esa nue#a li5rera sera el )esarrolla)or )e so"=are Bue necesia usar sisemas
cripogr!"icos )e seguri)a) con suma "acili)a) sin las comple:i)a)es in0erenes a JCA y JC/2
4-
Ilustracin 1D: JCEF acerca la criptografa al usuario
PFC ULPGC Aplicaciones Criptogrficas Java
A coninuaci6n se )escri5ir!n las )e"iciencias enconra)as y me:ora)as en JC/ Oy JCAP y las
me:oras realiza)as por JC/( al mun)o )e la cripogra"a me)iane Ja#a2 7 "inalmene se muesran
las me:oras Bue es!n pen)ienes )e realizarse en "uuras #ersiones )e ese proyeco2 1e esa "orma3
un usuario po)r! )eci)ir con#enienemene cu!l )e las )os li5reras )e5era usar2
JC/( me:ora enormemene a JC/2 4as )e"iciencias )e JC/ Bue 0an si)o me:ora)as son'
JC/ )e:a muc0o Bue )esear3 pueso Bue la cali)a) )e su c6)igo y )iseFo es 5a:a2
1i"icula su uso y apren)iza:e al uilizar rminos poco comprensi5les2
No proporciona al usuario un uso sencillo )e sus "unciones2
,enerar aueni"ica)ores es complica)o al igual Bue su #eri"icaci6n3 principalmene )e
0uellas y sellos )igiales al eHigir Bue el usuario conozca c6mo se #eri"ican aueni"ica)ores
como las 0uellas3 sellos o "irmas )igiales2
4a proecci6n y )esproecci6n es muy complica)a )e uilizar2
4os algorimos 0ay Bue inicializarlos )e una "orma anicua)a y engorrosa2
4os par!meros se generan y gesionan )e una "orma na)a sencilla2
JC/ no permie consruir o5:eos seguros para cualBuier algorimo cripogr!"ico2
No reconsruye auom!icamene las operaciones ras un cam5io2
Proporciona un mo)o )e operaci6n muy paricular para ca)a algorimo cripogr!"ico2
(inalmene3 para erminar con la paciencia )e cualBuier usuario3 la gesi6n )e los
pro#ee)ores es complica)a y )esgracia)amene necesaria2
4os algorimos JC/ no se pue)en con"igurar en iempo )e e:ecuci6n ni ampoco se
pue)e pro5ar su "uncionamieno con "acili)a)2
Para )e"inir algorimos se uilizan clases )i"erenes a las Bue se usan en la uilizaci6n
)e los algorimos2
/n )e"inii#a3 uilizar JC/ reBuiere un gran es"uerzo en iempo y )e)icaci6n al usuario )el
mismo2 Sin em5argo3 JC/( proporciona los siguienes #alores aFa)i)os'
Proporciona una serie )e me:oras muy signi"icai#as2
Eale la pena usarlo3 es amiga5le y "!cil )e uilizar2
Se apren)e )e "orma inuii#a y no reBuiere )emasia)o iempo )e apren)iza:e2
No se comeen errores "!cilmene y no reBuiere gran)es conocimienos cnicos2
/#ia el uso )e concepos cnicos3 y a)em!s3 su )iseFo y c6)igo son )e mayor
cali)a)2
Simpli"ica enormemene la aueni"icaci6n3 0acin)ola sencilla y 0omognea3 ano la
generaci6n como #eri"icaci6n )e 0uellas3 sellos y "irmas )igialesW por lo Bue la
aueni"icaci6n se apren)e )e "orma m!s sencilla y r!pi)a2
Proporciona un uso sencillo )e los algorimos3 a)em!s )e 0acer Bue sos sean
reuiliza5les2
4%
PFC ULPGC Aplicaciones Criptogrficas Java
Suminisra una :erarBua )e o5:eos muy complea2
Permie seleccionar los algorimos )e una "orma muy sencilla2
4a inicializaci6n )e los algorimos es in"iniamene m!s sencilla2
Proporciona a)apaciones )e pro#ee)ores cripogr!"icos ya eHisenes Bue cumplen
con la especi"icaci6n JC/ o no2 *ncluso permie )e"inir "!cilmene nue#os algorimos con
especi"icaci6n JC/(2
Permie )e "orma sencilla o5ener in"ormaci6n complea )e inicializaci6n y )e
con"iguraci6n2
Proporciona gesi6n a)eacua)a )e los par!meros )e inicializaci6n y con"iguraci6n2
Permie cam5iar "!cilmene )e algorimo y )e implemenaci6n2
Para re)ucir la )i"icula)3 las operaciones )e 5a:o ni#el son auom!icas3 ransparenes
y sencillas3 )e esa "orma es innecesario realizar un sin"n )e operaciones como por e:emplo
la encapsulaci6n y )esencapsulaci6n )e cla#es2
4os algorimos acepan los par!meros en cualBuiera )e sus "ormas con el o5:ei#o )e
me:orar la usa5ili)a)2
An 0ay m!s3 JC/( poencia la creaci6n )e pro#ee)ores cripogr!"icos
personaliza)os2
Se generan )e "orma auom!ica o)os los par!meros )e los algorimos2
Para coninuar simpli"ican)o3 es posi5le e#iar la realizaci6n )e cieras operaciones2
/s innecesario conocer los algorimos secun)arios )e los algorimos cripogr!"icos2
Con JC/(3 no 0ace "ala ener conocimienos imporanes2
Proporciona mecanismos para la )e"inici6n )e algorimos cripogr!"icos compuesos2
Permie consruir o5:eos seguros )e "orma sencilla2
4a implemenaci6n y el algorimo poseen la misma especi"icaci6n2
Proporciona un marco sencillo para prue5as )e "uncionali)a) e implemenaci6n2
Recopila una gran cani)a) )e algorimos cripogr!"icos y pro#ee)ores2
Por )esgracia3 JC/( no es per"eco y o)a#a pue)e y )e5e seguir crecien)o2 Algunas )e las
posi5les me:oras Bue se le pue)en 0acer son'
Proporcionar o)as aBuellas caracersicas Bue JC/ proporciona y JC/( no3 ales
como los "lu:os )e enra)a>sali)a seguros3 gesi6n )e ceri"ica)os )igiales3 almacenes
seguros3 proocolos )e inercam5io )e cla#es3 ec222
*mplemenar "lu:os )e enra)a>sali)a seguros )e "orma sencilla para cualBuier
algorimo cripogr!"ico2
Proporcionar algunos aspecos a#anza)os3 ales como almacenes seguros para
cualBuier ipo )e o5:eos incluyen)o cla#es y ceri"ica)os2
Permiir gesionar ceri"ica)os )e una manera muy sencilla2
4?
PFC ULPGC Aplicaciones Criptogrficas Java
Proporcionar sencillos mecanismos para los proocolos )e inercam5io )e cla#es2
Me:orar la gesi6n )e los mo)os )e operaci6n y los esBuemas )e relleno en los
algorimos cripogr!"icos )e proecci6n ya eHisenes2
Eeri"icar el correco "uncionamieno )e o)os los algorimos cripogr!"icos a ra#s
)el uso )e #ecores )e ess y corregir aBuellos incorrecos2
Compro5ar el correco "uncionamieno )e las prue5as )e implemenaci6n2
&erminar )e implemenar los algorimos compuesos3 pro5arlos y aFa)ir a o)os los
pro#ee)ores JC/( eHisenes nue#os algorimos compuesos reuilizan)o sus algorimos
cripogr!"icos2
Compro5ar el correco "uncionamieno )e algunos )ealles )e las implemenaciones
JC/(2
Re)ucir la )epen)encia con oros proyecos2
Aumenar el ni#el )e con"ianza )e ese proyeco2
*mplemenar algorimos nue#os no implemena)os 0asa a0ora en Ja#a2
Como un e:emplo )el #alor aFa)i)o )e ese proyeco3 o5ser#e el c6)igo siguiene )on)e se
muesra c6mo se asegura un o5:eo e inme)iaamene )espus se recupera el mismoW y o)o ello )e
una "orma super sencilla'
Object object = new String("my object");
CryptoAlgorithm secureAlgorithm = new AES_BlocSymmetric!rotection""E#$%();
SecureObject secureObject = new SecureObject(object& secureAlgorithm);
object = (String)secureObject'getObject(secureAlgorithm);
!a"la @E: Pe#ue$o e%e&plo 'e uno 'e los valores a$a'i'os 'e JCEF
/n las pr6Himas secciones po)r!n enconrarse m!s )ealles so5re las )e"iciencias3 me:oras
realiza)as y pen)ienes y oros )ealles )el proyeco como pare )e su #alor aFa)i)o3 comparai#a
con lo Bue 0a5a anes OJCAGJC/P3 )ealles )e implemenaci6n3 presenaci6n3 )isri5uciones3 ec222
Si lo )esea3 am5in pue)e consular la p!gina =e5 o"icial )el proyeco
0p'>>:ce"2source"orge2ne y los recursos uiliza)os 0p'>>:ce"2source"orge2ne>)oc>resources2p)"2
4@
PFC ULPGC Aplicaciones Criptogrficas Java
1 #eficiencias me$oradas
JC, de'a muc:o )ue desear pueso Bue'
4a cali)a) )e su c6)igo es 5a:a2
1i"icula su uso y apren)iza:e2
Se uilizan rminos poco comprensi5les2
Su uso es muy comple:o2
4a generaci6n y #eri"icaci6n )e aueni"ica)ores es complica)a2
6a calidad del c!digo es ba'a; ya Bue'
Complica el manenimieno )el c6)igo2
1i"icula su reuilizaci6n2
Complica el c6)igo #ol#in)olo incomprensi5le2
Complica la accesi5ili)a) )el c6)igo #ol#in)olo cerra)o2
Se )esconoce si su "uncionamieno es oalmene correco2
No proporciona ningn con:uno )e prue5as Bue se pue)an uilizar2
Carece )e una )ocumenaci6n il y complea2
2iiculta su uso y a%rendiza'e2 /so se )e5e principalmene a Bue proporciona muc0simos
mo)os no "un)amenales3 lo Bue 0ace Bue el usuario se pier)a y aca5e por no uilizar esa
0erramiena al 0a5er )emasia)as "unciones )on)e elegir2 Por )ar algunos )ealles3 JC/ proporciona
mliples "ormas )e in)icar los )aos3 ya sea para proeger o aueni"icarlos2 /s )ecir3 suminisra
gesi6n )e arrays )e 5yes3 por lo Bue rompe el par6n eHpero3 o sea3 realiza "unciones Bue no le
correspon)e2 A)em!s3 eso )i"icula el apren)iza:e ya Bue 0ay m!s "unciones Bue apren)er2
Se utilizan trminos %oco com%rensibles para el gran p5lico3 ales como resumen )e
mensa:e3 c6)igo )e aueni"icaci6n )e mensa:e3 encripar3 )esencripar3 ec222 /s )ecir3 no e#ia el
uso )e concepos cnicos al uilizar nom5res comple:os e incomprensi5les para la mayora )el
p5lico2
Su uso es muy com%le'o2 /so se )e5e principalmene a Bue ano la aueni"icaci6n como la
proecci6n )e )aos son )i"ciles )e uilizar porBue reBuiere ener muc0simos aspecos en cuena2
JC/ no realiza )e "orma auom!ica muc0as operaciones )e 5a:o ni#el3 es )ecir3 le )e:a muc0a
responsa5ili)a) al usuario2 7 o)as sus operaciones son eHrema)amene )i"ciles )e uilizar3
apren)er y manener2
4D
PFC ULPGC Aplicaciones Criptogrficas Java
6a generaci!n de autentiicadores es com%licada3 ano la generaci6n )e 0uellas3 sellos y
"irmas )igiales3 ya Bue ca)a uno )e ellos se generan )e "orma muy )isina3 proporcionan)o
0eerogenei)a) y comple:i)a)2 JC/ proporciona "ormas inapropia)as para generar cualBuier ipo )e
aueni"ica)ores2 A)em!s3 ampoco proporciona ninguna 5ase comn para los aueni"ica)ores ni los
algorimos Bue los gesionan2 Con JC/ se pue)en uilizar m!s )e A- "ormas )isinas para generar
simplemene un aueni"ica)or2
6a (eriicaci!n de autentiicadores es com%licada3 )e5i)o a Bue complica la #eri"icaci6n
ano )e 0uellas3 sellos y "irmas )igiales2 /so se )e5e principalmene al uso )e muliu) )e
mo)os inapropia)os para la #eri"icaci6n )e los aueni"ica)ores ya Bue eHisen muc0simas "ormas
)e #eri"icar un aueni"ica)or con JC/3 cuan)o en reali)a) s6lo una es la realmene il2 A)em!s3
ampoco proporciona ninguna 5ase comn para la #eri"icaci6n )e aueni"ica)ores3 es )ecir3 las
0uellas3 sellos y "irmas )igiales no son raa)os )e "orma 0omognea2
6a (eriicaci!n de :uellas y sellos digitales es com%licada2 /so suce)e principalmene
porBue no se proporciona ninguna 5ase comn para los algorimos )e aueni"icaci6n y porBue es
necesario conocer Bue para #eri"icar la auenici)a) )e una 0uella )igial 0ay Bue generar una nue#a
0uella )igial y compararla con la originalW si son iguales enonces es aunica3 si no3 no lo es2 Sin
em5argo3 las "irmas )igiales son relai#amene sencillas )e #eri"icar3 lo Bue aFa)e 0eerogenei)a) y
comple:i)a) a la #eri"icaci6n )e aueni"ica)ores2
,l usuario necesita saber c!mo (eriicar autentiicadores2 Se reBuiere conocer Bue para
compro5ar la auenici)a) )e unos )aos me)iane 0uella o sello )igial3 es preciso #ol#er a generar
un nue#o aueni"ica)or )e los mismos )aos y comporarlo con el aueni"ica)or original2 Sin
em5argo3 el usuario no necesia sa5er c6mo #eri"icar "irmas )igiales2 /so es un aspeco posii#o3
pero am5in lo es negai#o al poner )e mani"ieso Bue se rompe la 0omogenei)a) )e5i)o a los )os
punos aneriores2
6a %rotecci!n y des%rotecci!n es com%le'a por muc0os moi#os enre los Bue )esacan los
siguienes' el mo)o )e operaci6n se in)ica )e "orma )i"iculosa3 la inicializaci6n )e esos algorimos
no es na)a sencilla y se proporcionan mliples "ormas para o5ener el mismo resula)o2
6a calidad de su dise7o es ba'a3 ya Bue no es 0omogneo3 ni acual y es complica)o )e
enen)er y reuilizar2
6os algoritmos se inicializan de orma com%le'a )e5i)o a Bue los mo)os )e inicializaci6n
son 0eerogneos e inapropia)osW y so5re o)o al suminisrar mliples "ormas comple:as )e realizar
la inicializaci6n2 A)em!s3 para algorimos muy similares se uilizan mecanismos )e inicializaci6n
)isinos2 1e esa "orma se )i"icula el apren)iza:e y se complica su uilizaci6n2 Por oro la)o3
a)em!s es necesario in)icar los par!meros )e inicializaci6n en un or)en concreo y por si eso no
"uera poco3 es al la comple:i)a)3 Bue en el caso )e los algorimos )e sellos )igiales3 se 0ace creer
Bue esos algorimos acepar cla#es asimricas cuan)o en reali)a) s6lo acepan cla#es simricas2
<enera %ar0metros de orma muy com%le'a y oculta2 Algunos algorimos generan
auom!icamene algunos par!meros si sos no son proporcionan)os3 pero )esgracia)amene esas
circunsancias no es!n )ocumena)as y son muy )i"ciles )e )eecar2 /so pone )e mani"ieso lo
comple:o Bue pue)e resular uilizar JC/2
-$
PFC ULPGC Aplicaciones Criptogrficas Java
/o %ermite construir ob'etos seguros %ara cual)uier algoritmo cri%togr0ico3 s6lo acepa
algorimos )e "irmas )igiales y proecci6n2 /s )ecir3 no permie consruir o5:eos seguros
aueni"ica5les me)iane 0uella o sello )igial2
JC, no reconstruye autom0ticamente las o%eraciones tras un cambio3 es necesario
reconsruir la operaci6n para realizar un cam5io2
JC, %ro%orciona un modo de o%eraci!n %articular %ara cada algoritmo cri%togr0ico2
Por e:emplo3 para los algorimos )e proecci6n es necesario in)icar el mo)o )e operaci6n
Oproecci6n o )esproecci6nP me)iane un enero a mo)o )e ipo enumera)o2
6a gesti!n de los %ro(eedores es com%licada y necesaria y a)em!s no poencia la creaci6n
)e pro#ee)ores cripogr!"icos personaliza)os2 Por oro la)o3 uno )e los principales )e"ecos )e esa
caracersica es Bue no es posi5le mane:ar o)os los algorimos cripogr!"icos )e la misma "orma2 7
a)em!s3 algorimos i)nicos )e pro#ee)ores )isinos poseen nom5res )isinos2
6os algoritmos JC, no se %ueden coniguran en tiem%o de e'ecuci!n2 A)em!s3 tam%oco
se %uede %robar su uncionamiento con acilidad y por si no "uera poco3 %ara deinir
algoritmos se utilizan clases dierentes a las )ue se usan en la utilizaci!n de los algoritmos2
2 Me$oras reali%adas
JC,1 %ro%orciona una serie de me'oras muy signiicati(as ales como'
Muc0os pro#ee)ores oalmene reuiliza5les2
A)em!s #ale la pena su uso para usuarios Bue sepan muy poco o na)a )e cripogra"a
y am5in para aBuellos3 Bue como yo3 se 0ayan seni)o )ecepciona)os por una 0erramiena
an comple:a )e uilizar como JC/2
4ale la %ena usar JC,13 )e5i)o a Bue es amiga5le3 "!cil )e uilizar3 se apren)e )e "orma
inuii#a3 no se comeen errores "!cilmene3 no reBuiere gran)es conocimienos cnicos y no
reBuiere )emasia)o iempo )e apren)iza:e y se a:usa a las necesi)a)es )e la mayora )e los
usuarios2
,s amigable )e5i)o a Bue es "!cil )e uilizar en las siuaciones 0a5iuales2 AunBue am5in es
ciero Bue pue)e ser comple:o en algunas siuaciones eHcepcionales2
10cil de utilizar porBue se apren)e )e "orma inuii#a3 no se comeen errores "!cilmene3 no
reBuiere gran)es conocimienos cnicos3 e#ia el uso )e concepos cnicos y no reBuiere
)emasia)o iempo )e apren)iza:e2
Se a%rende de orma intuiti(a )e5i)o a la cali)a) )el c6)igo3 su )iseFo y )ocumenaci6n2
-A
PFC ULPGC Aplicaciones Criptogrficas Java
/o re)uiere demasiado tiem%o de a%rendiza'e ya Bue un apren)iz necesia como muc0o
una 0ora para su apren)iza:e compleo2 Sin em5argo3 apren)er por compleo a uilizar JC/ reBuiere
enre una y cuaro semanas )e )e)icaci6n2 /sa re)ucci6n )el iempo )e apren)iza:e se )e5e
primor)ialmene a Bue no se comeen errores "!cilmene3 al a0orro )e operaciones3 a la
simpli"icaci6n )e muc0as operaciones3 a Bue no reBuiere gran)es conocimienos cnicos y se a:usa
m!s a las necesi)a)es )el usuario2
/o se cometen errores 0cilmente )e5i)o a la cali)a) )e su c6)igo3 su )iseFo3 su
)ocumenaci6n3 al a0orro )e operaciones3 222
/o re)uiere grandes conocimientos tcnicos2 JC/( no reBuiere Bue el usuario enga
gran)es conocimienos cnicos so5re cripogra"a3 algorimos cripogr!"icos y su uilizaci6n
me)iane Ja#a2 /s )ecir3 eHige menor cani)a) )e conocimieno al usuario2 /so se consigue gracias
a Bue no se usan concepos cnicos3 se uilizan nom5res sencillos y comprensi5les3 se a0orran
operaciones3 se simpli"ica el uso )e muc0as operaciones y se a:usa mayormene a las necesi)a)es
)el usuario2
,(ita el uso de conce%tos tcnicos2 JC/( no uiliza concepos cnicos como 0ace JC/2 +sa
concepos y nom5res muy sencillos y comprensi5les para el gran p5lico ales como'
aueni"ica)ores3 proecci6n3 )esproecci6n3 0uella )igial3 sello )igial3 "irma )igial3 ra)ucores )e
cla#es y par!meros3 genera)ores )e aueni"ica)ores3 #eri"ica)ores )e aueni"ica)ores3 genera)or
)e cla#es asimricas3 genera)or )e cla#es simricas3 ec222
Su c!digo es de calidad ya Bue "!cilmene es maneni5le3 reuiliza5le y comprensi5le2
A)em!s3 am5in es ICpen SourceJ OC6)igo A5ieroP y es! oalmene )ocumena)o y pro5a)o2
Su dise7o es de me'or calidad )e5i)o a Bue es 0omogneo3 acual3 simple3 es! en"oca)o a
las necesi)a)es )el usuario3 es! 5asa)o en los principios )e )iseFo conrasa)os como el )e los
Ja#aKeans y "omena la reuilizaci6n2
Sim%liica la autentiicaci!n3 simpli"ican)o el uso )e los algorimos )e aueni"icaci6n al
proporcionar una 5ase comn para o)os ellos2 /so pro#oca a)em!s Bue usar ese ipo )e
algorimos sea muy sencillo2
6a autentiicaci!n es sencilla y :omognea2 /so es )e5i)o a Bue la generaci6n y
#eri"icaci6n )e aueni"ica)ores es sencilla3 ya Bue ano las 0uellas )igiales3 como los sellos y las
"irmas )igiales se generan y #eri"ican )e "orma sencillaW es )ecir3 no es necesario )isinguir enre
0uellas3 sellos o "irmas )igiales2
6a generaci!n de :uellas; sellos y irmas digitales es sencilla y :omognea porBue o)os
esos aueni"ica)ores se generan igual3 )e manera 0omognea y )e una nica "orma2
6a (eriicaci!n de autentiicadores es sencilla es sencilla y :omognea3 principalmene
)e5i)o a Bue ano las 0uellas3 sellos y "irmas )igiales se #eri"ican )e la misma "orma3 Bue a)em!s
es 0omognea y nica3 al y como suce)e con la generaci6n2
6a autentiicaci!n se a%rende de orma m0s sencilla y r0%ida )e5i)o a su simpli"icaci6n3
sencillez y 0omogenei)a)2 /n resumen3 si se apren)e a generar un aueni"ica)or3 auom!icamene
se apren)e a generar el reso )e ipos )e aueni"ica)ores2 /n general3 s6lo 5asa con apren)er a
generar y #eri"icar aueni"ica)ores2
-2
PFC ULPGC Aplicaciones Criptogrficas Java
Pro%orciona un uso sencillo de los algoritmos adem0s de :acer )ue stos sean
reutilizables3 ya Bue proporciona 5ases comunes para o)os los ipos )e algorimos3 se uilizan
principios )e )iseFo a)ecua)os y se proporciona un mo)o comn 0omogneo )e uso2 JC/( 0ace
Bue sea sencillo realizar las siguienes "unciones'
Seleccionar3 con"igurar3 inicializar y uilizar algorimos para asegurar y )esasegurar
)aos2
Aueni"icar3 generar y #eri"icar aueni"ica)ores como 0uellas3 sellos o "irmas
)igiales2
Proeger y )esproeger )aos2
Crear o5:eos seguros me)iane algorimos cripogr!"icos con in)epen)encia )e Bue se
rae )e algorimos )e proecci6n3 ya sean simricos3 asimricos3 )e 5loBues3 )e "lu:o o
5asa)os en conraseFa3 o algorimos )e aueni"icaci6n3 se raen )e 0uellas3 sellos o "irmas
)igiales2
C5ener los o5:eos asegura)os a parir )e su #ersi6n segura2
JC,1 %ro%orciona una 'erar)ua de ob'etos muy com%leta2 JC/( proporciona las
siguienes caegoras )e o5:eos' o5:eos JC/(3 pro#ee)ores JC/(3 algorimos3 genera)ores3
genera)ores )e cla#es3 genera)ores )e cla#es asimricas3 genera)ores )e cla#es simricas3
genera)ores )e par!meros3 genera)ores )e )aos aleaorios3 ra)ucores3 ra)ucores )e cla#es3
ra)ucores )e cla#es asimricas3 ra)ucores )e cla#es simricas3 ra)ucores )e par!meros3
algorimos cripogr!"icos3 algorimos cripogr!"icos )e aueni"icaci6n3 algorimos cripogr!"icos )e
aueni"icaci6n me)iane 0uellas3 sellos y "irmas )igiales ano para generaci6n como #eri"icaci6n3
algorimos )e sellos )igiales me)iane conraseFa3 algorimos )e proecci6n 5asa)a en conraseFa3
algorimos )e proecci6n )e )aos3 algorimos cripogr!"icos )e proecci6n>)esproecci6n asimrica
o simrica3 simrica )e 5loBues y simrica )e "lu:o2
JC,1 %ermite seleccionar los algoritmos de una orma muy sencilla3 ya Bue 5asa
simplemene con uilizar el consrucor )el algorimo2
6a inicializaci!n de los algoritmos es ininitamente m0s sencilla2 JC/( emplea los
principios )e los Ja#aKeans para acce)er a los o5:eos3 simplemene acce)ien)o a sus propie)a)es
uilizan)o mo)os sencillos )e lecura y escriura )e las propie)a)es2
Pro%orciona un nue(o %ro(eedor com%leto de algoritmos cri%togr0icos llama)o
RR/QM72
Pro%orciona ada%taciones de %ro(eedores cri%togr0icos ya e=istentes )ue no cum%len
con la es%eciicaci!n JC,2 &ales pro#ee)ores son Min)5rig03 Jacksum y 4ogiCrypo2
Pro%orciona ada%taciones de %ro(eedores cri%togr0icos ya e=istentes )ue s cum%len
con la es%eciicaci!n JC,2 &ales pro#ee)ores son KouncyCasle3 CrypiH3 CrypiHCrypo3 *A*M3
,N+ Crypo3 (leHiCore3 (leHi/C3 (leHiN(3 J9KC*3 S+N3 SunJC/3 SunJSS/ y SunRsaSign2
-3
PFC ULPGC Aplicaciones Criptogrficas Java
Permite; de orma sencilla; obtener inormaci!n com%leta de inicializaci!n y de
coniguraci!n de los algoritmos3 simplemene acce)ien)o a ra#s )e los mo)os )e lecura )e
)ic0as propie)a)es2 C )ic0o )e oro mo)o3 proporciona una nica "orma )e inicializaci6n y
con"iguraci6n2 &am5in permie )isinguir "!cilmene enre los )isinos ipos )e algorimos2
Permite deinir 0cilmente nue(os algoritmos con es%eciicaci!n JC,13 al proporcionar un
sopore sencillo )e ampliaci6n para a)apar los algorimos eHisenes )es)e la especi"icaci6n JC/ y
cualBuier ora Bue no sea JC/ a la especi"icaci6n JC/(3 a)em!s )e permiir la )e"inici6n )e
algorimos )e nue#a implemenaci6n2
Pro%orciona gesti!n adecuada de los %ar0metros de inicializaci!n y coniguraci!n3 ya
Bue'
Permie recuperar los par!meros )e inicializaci6n y con"iguraci6n2
Reconsruir la operaci6n auom!icamene ras un cam5io2
No complica la reuilizaci6n )e las operaciones2
(acilia la reuilizaci6n )e los algorimos2
Permie in)icar los par!meros en cualBuier or)en sin o5ligar a proporcionarlos en un
or)en concreo2
A)em!s3 los algorimos JC/( se pue)en recon"igurar en iempo )e e:ecuci6n2
Permite cambiar 0cilmente de algoritmo y de im%lementaci!n3 ya Bue los algorimos se
seleccionan )e una "orma naural3 ienen una 5ase comn y no es necesario gesionar los
pro#ee)ores cripogr!"icos2
6as o%eraciones de ba'o ni(el son autom0ticas; trans%arentes y sencillas2 /sas
operaciones son' ra)ucci6n )e cla#es3 con#ersi6n enre las )isinas represenaciones )e los
par!meros y cla#es y la generaci6n )e cla#es y par!meros2
,s innecesario realizar un sinn de o%eraciones2 /l usuario se a0orra realizar un sin"n )e
operaciones )e "orma manual2 &ales operaciones son'
4as operaciones )e 5a:o ni#el2
4as operaciones relaciona)as con el uso )e los algorimos2
/ncapsular cla#es3 ya Bue encapsular una cla#e es proegerla como si "uera un o5:eo2
1esencapsular cla#es3 ya Bue )esencapsular una cla#e es )esproegerla como si "uera
un o5:eo2
,enerar par!meros y cla#es ano simricas como asimricas2
Realizar con#ersiones enre represenaciones )e par!meros y cla#es ano simricas
como asimricas2
*n)icar el mo)o )e inicializaci6n para los algorimos )e proecci6n2
Realizar ra)ucciones )e par!meros y cla#es ano simricas como asimricas2
-4
PFC ULPGC Aplicaciones Criptogrficas Java
,s innecesaria la enca%sulaci!n>desenca%sulaci!n de cla(es2 /sas operaciones son
innecesarias ya Bue una cla#e es como cualBuier oro o5:eo3 por lo Bue Iin#enarseJ nue#as
operaciones an pariculares3 )i"icula su uso2 4a operaci6n )e encapsular una cla#e consise en
proeger )ic0a cla#e2 Por oro la)o3 la operaci6n )e )esencapsular una cla#e se raa )e )esproeger
)ic0a cla#e2
6os algoritmos ace%tan los %ar0metros en cual)uiera de sus ormas2 No )isingue enre
cla#es conoci)as3 cla#es )esconoci)as3 especi"ica)as )e "orma rasparene3 opaca o persisene2
*gualmene3 no )isingue enre par!meros especi"ica)os )e "orma ransparene o persisene2
Se generan de orma autom0tica todos los %ar0metros de los algoritmos3 siempre y
cuan)o sean necesarios y no 0ayan si)o especi"ica)os2
Se %otencia la creaci!n de %ro(eedores cri%togr0icos %ersonalizados2 4a gesi6n )e
pro#ee)ores es sencilla3 ya Bue se po)ra )ecir Bue es ineHisene a )i"erencia )e JC/3 es )ecir3
simplemene ca)a pro#ee)or coniene un con:uno )e algorimos Bue pue)e Bue 0ayan
implemena)o los )esarrolla)ores )e )ic0o pro#ee)or o noW por lo Bue se poencia la creaci6n )e
pro#ee)ores cripogr!"icos personaliza)os3 "omenan)o a su #ez la reuilizaci6n2
,s %osible e(itar la realizaci!n de ciertas o%eraciones3 ales como proeger y )esproeger
)aos3 generar aueni"ica)ores O0uellas3 sellos y "irmas )igialesP3 #eri"icar aueni"ica)ores O0uellas3
sellos y "irmas )igialesP2 Para ello se pue)en uilizar los o5:eos seguros2
,s innecesario conocer los algoritmos secundarios de los algoritmos cri%togr0icos3 ales
como los genera)ores )e cla#es Osimricas y asimricasP3 genera)ores )e par!meros3 con#ersores
y ra)ucores enre las )isinas represenaciones )e los par!meros y con#ersores y ra)ucores enre
las )isinas represenaciones )e las cla#es Osimricas y asimricasP2
,s innecesario tener conocimientos im%ortantes2 JC/( re)uce el conocimieno necesario
para el usuario3 ya Bue es innecesario'
Conocer los )ealles cnicos so5re las )isinas cla#es2
&ener conocimienos imporanes para uilizar un algorimo3 ya Bue s6lo 5asa con
conocer el algorimo Bue se )esea uilizar2
1i"erenciar una cla#e )e un o5:eo2
Conocer c6mo se #eri"ican los aueni"ica)ores2
Conocer las )isinas represenaciones )e los par!meros2
Conocer las )isinas represenaciones )e las cla#es ano simricas como asimricas2
Conocer las clases )e ca)a una )e las represenaciones )e los par!meros2
Conocer las clases )e ca)a una )e las represenaciones )e las cla#es ano simricas
como asimricas2
Conocer los par!meros )e con"iguraci6n )e los algorimos2
Conocer los par!meros para los genera)ores )e cla#es ano simricas como
asimricas2
Conocer los par!meros para los genera)ores )e par!meros2
--
PFC ULPGC Aplicaciones Criptogrficas Java
Conocer los par!meros para los ra)ucores )e cla#es ano simricas como
asimricas2
Conocer los par!meros para los con#ersores enre las )isinas represenaciones )e las
cla#es ano simricas como asimricas2
Conocer los par!meros para los con#ersores enre las )isinas represenaciones )e los
par!meros
Conocer los par!meros para los ra)ucores )e cla#es ano simricas como
asimricas2
Conocer los par!meros para los algorimos cripogr!"icos )e proecci6n3 ya sea
proecci6n asimrica3 proecci6n simrica3 simrica )e 5loBues o )e "lu:o3 o 5asa)a en
conraseFa2
Conocer los par!meros para los algorimos cripogr!"icos )e aueni"icaci6n3 ya sean
)e 0uellas3 sellos3 sellos 5asa)os en conraseFa o "irmas )igiales2
Pro%orciona unciones es%eciales3 ales como los algorimos cripogr!"icos compuesos y el
marco para la realizaci6n )e prue5as con el o5:ei#o )e compro5ar el correco "uncionamieno )e
los algorimos2
Permite construir ob'etos seguros de orma sencilla3 ya sean o5:eos proegi)os3 o
aueni"ica5les me)iane 0uella3 sello o "irma )igial2
6a im%lementaci!n y el algoritmo %oseen la misma es%eciicaci!n2 A )i"erencia )e JC/3
JC/( emplea los algorimos )irecamene con la posi5ili)a) )e no per)er la a5sracci6n )e la
implemenaci6n )e los algorimos2 7 a)em!s3 uilizar e implemenar un algorimo se realiza )el
mismo mo)o2
Pro%orciona un marco sencillo %ara %ruebas3 5asa)o en la #eri"icaci6n )e un con:uno )e
prue5as m!s sencillas con el o5:ei#o )e compro5ar el correco "uncionamieno )el algorimo y )e
su implemenaci6n2 Se uiliza la re"leHi6n para simpli"icar el c6)igo )e las prue5as2 A)em!s3 realiza
prue5as generales para o)os los algorimos2
JC,1 reco%ila una gran cantidad de algoritmos cri%togr0icos'
9uellas )igiales ' M123 M143 M1-3 S9AA3 S9A2243 S9A2-%3 S9A3@43 S9A-A23
R*P/M1A2@3 R*P/M1A%$3 R*P/M12-%3 R*P/M132$3 &iger3 L0irlpool3 9as0,CS&2
Sellos )igiales ' 9macM123 9macM143 9macM1-3 9macS9AA3 9macS9A2243
9macS9A2-%3 9macS9A3@43 9macS9A-A23 9macR*P/M1A2@3 9macR*P/M1A%$3
9mac&iger3 Mac1/S3 Mac&riple1/S3 MacRC23 MacRC-3 Mac*1/A3 MacSkip:ack2
Sellos )igiales 5asa)os en conraseFa ' PK/=i09macS9AA3
PK/=i09macR*P/M1A%$2
(irmas )igiales Oincluyen #arianesP ' M12=i0RSA3 M14=i0RSA3 M1-=i0RSA3
R*P/M1A2@=i0RSA3 R*P/M1A%$=i0RSA3 R*P/M12-%=i0RSA3 S9AA=i0RSA3
S9A224=i0RSA3 S9A2-%=i0RSA3 S9A3@4=i0RSA3 S9A-A2=i0RSA3
S9AA=i01SA3 NCN/=i01SA3 Signaure,CS&3 NCN/=i0RSA3
M1-an)S9AA=i0RSA2
Proecci6n simricas )e 5loBues ' 1/S3 &riple1/S3 Klo="is03 RC23 A/S3 Skip:ack3
CAS&-3 CAS&%3 SBuare3 RC%3 MARS3 *1/A3 Serpen3 &=o"is03 ,CS&3 RC-3 RC-G%42
-%
PFC ULPGC Aplicaciones Criptogrficas Java
Mo)os )e operaci6n ' /CK3 CKC3 PCKC3 C&R3 C(K]n^3 C(K]n^3 CpenP,PC(K3
CpenP,PC(K=i0*#3 ,C(K2
/sBuemas )e relleno ' *SCA$A2%Pa))ing3 QD223Pa))ing3 =i0C&S3 &KCPa))ing3
8eroKyePa))ing3 PMCSAPa))ing3 PMCS-Pa))ing3 PMCS?Pa))ing3 SS43Pa))ing3
*SC?@A%4Pa))ing2
Proecci6n simrica )e "lu:o ' RC42
Proecci6n asimrica Oincluyen #arianesP ' RSA3 RSA con 0uellas )igiales OM123
M143 M1-3 S9AA3 S9A2243 S9A2-%3 S9A3@43 S9A-A23 R*P/M1A2@3 R*P/M1A%$3
&igerP3 /l,amal3 /C*/S2
Proecci6n 5asa)a en conraseFa ' PK/ con algorimos )e 0uellas )igiales
OM1-3S9AA3 S9A2-%P y proecci6n simrica O1/S3 &riple1/S3 RC23 *1/A3 RC43 A/SP2
3 Me$oras pendientes
JC, %ro%orciona unas caractersticas )ue de momento no %osee JC,13 como son los
proocolos )e inercam5io )e cla#es3 almacenes )e cla#es y ceri"ica)os3 la gesi6n )e ceri"ica)os y
"lu:os )e enra)a>sali)a seguros2
Sera im%ortante im%lementar lu'os de entrada>salida seguros de orma sencilla %ara
cual)uier algoritmo cri%togr0ico3 ya sea )e proecci6n Osimrica3 asimrica3 )e 5loBues3 )e
"lu:o3 o 5asa)a en conraseFaP o aueni"icaci6n O0uellas )igiales3 sellos )igiales3 "irmas )igiales o
sellos )igiales 5asa)os en conraseFaP2 Por lo ano3 una "uura #ersi6n )e JC/(3 )e5era incluir3
"lu:os )e enra)a>sali)a seguros me)iane cualBuier algorimo cripogr!"ico2 Ca5e )esacar Bue JC/
s6lo proporciona y )e manera comple:a3 "lu:os )e enra)a>sali)a para algorimos cripogr!"icos )e
proecci6n y )e aueni"icaci6n s6lo me)iane 0uellas )igiales2
,n uturas (ersiones tambin deber0 %ro%orcionar algunos as%ectos a(anzados3 ales
como'
Almacenes seguros para cualBuier ipo )e o5:eos3 incluyen)o cla#es y ceri"ica)os2
Sencilla gesi6n )e ceri"ica)os2
+so sencillo )e proocolos )e inercam5io )e cla#es2
Me'orar la gesti!n de los modos de o%eraci!n y los es)uemas de relleno en los algoritmos
cri%togr0icos de %rotecci!n ya e=istentes am5in ser! imporane en "uuras #ersiones2
4eriicar el correcto uncionamiento de todos los algoritmos cri%togr0icos a ra#s )el
uso )e #ecores )e ess y corregir aBuellos incorrecos2 1e momeno se pue)e con"ar en los
algorimos proporciona)os por el pro#ee)or JC/( IRR/QM7J2 1ecir Bue esa area )e5era
realizarse empezan)o por los pro#ee)ores m!s imporanes y erminan)o por los menos
imporanes2 4a lisa )e pro#ee)ores JC/( )e mayor a menor imporancia sera' IRR/QM7J3
I,N+ CrypoJ3 IKouncyCasleJ3 I(leHiCoreJ3 I(leHi/CJ3 I(leHiN(J3 IJacksumJ3 ICrypiHJ3
ICrypiHCrypoJ3 IS+NJ3 ISunJC/J3 ISunJSS/J3 ISunRsaSignJ3 IJ9KC*J3 I*A*MJ3 IMin)5rig0J
y I4ogiCrypoJ2
-?
PFC ULPGC Aplicaciones Criptogrficas Java
.erminar de com%robar el correcto uncionamiento )e las prue5as )e implemenaci6n y
)e algunos )ealles )e las implemenaciones JC/(3 como 5ien pu)iera ser la #eri"icaci6n )e Bue
o)os los algorimos JC/( se pue)en reuilizar con JC/2
.erminar de im%lementar los algoritmos com%uestos3 pro5arlos y aFa)ir a o)os los
pro#ee)ores JC/( eHisenes nue#os algorimos compuesos reuilizan)o sus algorimos
cripogr!"icos ya eHisenes2
Im%ortante me'orar la de%endencia con otras libreras2 Sera ineresane in)epen)izar al
m!Himo a JC/( )e li5reras )e erceros2
Se (e indis%ensable aumentar el ni(el de conianza de esta librera3 ya Bue 0ay Bue ener
en cuena Bue un ra5a:o )esarrolla)o por un alumno )e una uni#ersi)a) no proporciona el mismo
ni#el )e con"ianza Bue el ra5a:o )esarrolla)o por una empresa conoci)a y esa5leci)a )es)e 0ace
5asanes aFos2 Para ello se po)r!3 por e:emplo3 me:orar las prue5as so5re los algorimos2
Im%lementar algoritmos nue(os no im%lementados :asta a:ora en Ja(a )e 0uellas
)igiales3 sellos )igiales3 "irmas )igiales3 proecci6n asimrica3 proecci6n simrica )e "lu:o3
proecci6n simrica )e 5loBues3 y aumenar la cani)a) )e mo)os )e operaci6n y esBuemas )e
relleno3 ales como'
9uellas )igiales ' Sne"ruA2@ O&amaFo )e la 0uella en 5is _ A2@P3 Sne"ru2-% O2-%P3
&iger2 OAD2P3 9ASGA%$ OA%$P3 NG9as0 OA2@P3 Sap0ire**A2@ OA2@P3 Sap0ire**A%$ OA%$P3
Sap0ire**AD2 OAD2P3 Sap0ire**224 O224P3 Sap0ire**2-% O2-%P3 Sap0ire**2@@ O2@@P3
Sap0ire**32$ O32$P3 SBuare9as03 QCRA% OA%P3 QCR32 O32P3 PM1A2@ OA2@P3 PM1A%$
OA%$P3 PM1AD2 OAD2P3 PM1224 O224P3 PM12-% O2-%P3 CRCA%CC*&& OA%P3 CRC32 O32P3
Panama O2-%P2
Sellos )igiales 'CMAC y PMAC2
(irmas )igiales ' ,MR3 MC1SA3 Sc0norr3 1esme)3 4amporG1i""ie3 Ra5in3 MayasG
Meyer2
Proecci6n asimrica ' Ra5in3 MerkleG9ellman3 Paillier3 Mc/liece3 CayleyGPurser3
Lilliams3 ,ol)=asserGMicali2
Proecci6n simrica )e "lu:o ' CR7Q3 S/A43 C0ameleon3 (is03 A->A3 A->23 9eliH3
Pike3 Panama O&amaFo )e cla#e en 5is _ 2-%P3 So5er OA2@P3 Lake OA2@P3 SCCP3 Sno=
OA2@P3 SN33 &uring3 4e#ia0an3 M+,*3 Sapp0ire2 O`@3 @3 2$4$aP3 Scream OA2@P3 S/A43
OA2@P3 Cloak ODD2P y Soliare2
Proecci6n simrica )e 5loBues ' 3GLay O&amaFo )e 5loBue en 5is _ D%3 &amaFos )e
cla#e en 5is _ D%P3 S9ACA4 OA%$3 `A2@3 -A2aP3 S9ACA42 O2-%3 `A2@3 -A2aP3 Magena
OA2@3 bA2@3 AD23 2-%cP3 1/A4 OA2@3 bA2@3 AD23 2-%cP3 (/A4 O%43 b%43 A2@cP3 M9A(R/
O%43 b%43 A2@cP3 *C/ O%43 `%43 %43 222PP3 Ma)ryga3 4CM*@D O%43 %4P3 4CM*DA OA2@3 bA2@3
AD23 2-%cP3 4CM*D? OA2@3 bA2@3 AD23 2-%cP3 Akelarre OA2@3 `%43 %43 222PP3 MAS+M* O%43
A2@P3 M*S&7A O%43 A2@P3 M*S&72 O%43 A2@P3 &/A O%43 A2@P3 Q&/A O%43 A2@P3 Ne=1/S
O%43 A2$P3 Re) Pike O%43 %4P3 CM/A O%43 GP3 ,1/S O%43 %4P3 ,CS&?%@ O%43 ?%@P3 *KC O2-%3
A%$P3 SGA3 1iamon)2 OA2@3 `@3 @3 %--3%aP3 1iamon)24ie OA2@3 `@3 @3 %--3%aP3 R/1CC2
O@$3 A%$P3 R/1CC3 O@$3 `$3 2$4@$PP3 M9+(+ O%43 -A2P3 1/SQ O%43 bA2@3 AD2cP3 4uci"er
OA2@3 A2@P3 MMK OA2@3 A2@P3 S//1 OA2@3 A2@P3 S0ark O%43 A2@P3 Mac,u""in O%43 A2@P3
Kear3 4ion3 4ioness3 4a))er1/S3 9PC3 Noekeon OA2@3 A2@P3 SP//1%4 O%43 `4@3 A%3 2-%aP3
-@
PFC ULPGC Aplicaciones Criptogrficas Java
SP//1A2@ OA2@3 `4@3 A%3 2-%aP3 SP//12-% OA2@3 `4@3 A%3 2-%aP3 (RC, O`%43 A$24a3 `4$3
A$$$aP3 ;A2@ OA2@3 A2@P3 Sa"erM4$ O%43 4$P3 Sa"erSM4$ O%43 4$P3 Sa"erM%4 O%43 %4P3
Sa"erSM%4 O%43 %4P3 Sa"erMA2@ O%43 A2@P3 Sa"erSMA2@ O%43 A2@P3 Sa"erR OA2@3 bA2@3 AD23
2-%cP3 Sa"erRR OA2@3 bA2@3 2-%cP3 Crypon OA2@P3 1(C OA2@3 bA2@3 AD23 2-%cP3 /2 OA2@3
bA2@3 AD23 2-%cP3 CSGCip0er O%43 `$3 @3 A2@aP3 M1C OT3 `%43 @3 %4$aP3 Rain5o= OA2@3 `A2@3
323 2-%aP3 NS/A OA2@3 A2@P3 MPJ OA2@3 A2@P3 Co5ra OA2@3 `A3 A3 AA-2aPa2
Mo)os )e operaci6n `PKC3 P(K3 CKCP13 C(KN4(3 KC(3 KC(a
4 #etalles
/l ncleo principal )el proyeco es una li5rera llama)a IJC/(J3 la cual proporciona la
iner"az necesaria para po)er mane:ar algorimos cripogr!"icos y o5:eos seguros2 /l )iagrama
general )e clases )e )ic0a li5rera es el siguiene'
4a clase ISecureC5:ecJ es la clase Bue represena a los o5:eos seguros y sos son genera)os
uilizan)o algorimos cripogr!"icos Bue son represena)os me)iane la iner"az ICrypoAlgori0mJ2
Para o5ener nue#amene los o5:eos asegura)os es necesario #ol#er a uilizar los algorimos
cripogr!"icos2
-D
Ilustracin 1E: -iagra&a general 'e clases 'e JCEF
PFC ULPGC Aplicaciones Criptogrficas Java
/s al la )imensi6n )el proyeco3 Bue )e a0 el gran nmero )e li5reras )e5i)o principalmene
a Bue se 0a Bueri)o proporcionar el mayor nmero )e pro#ee)ores y algorimos cripogr!"icos
posi5le realizan)o a)apaciones )e pro#ee)ores y algorimos cripogr!"icos ya eHisenes Bue
cumplan con la especi"icaci6n JC/ u ora2
Para Bue el lecor pue)e 0acerse una i)ea )e la )imensi6n )e ese proyeco3 5asa con )ecir
Bue ese proyeco coniene 3A42 clases3 3A- campos3 2DA4 mo)os3 ?3D-D lneas )e c6)igo y
22D4A lneas )e comenarios2 1enro )e esos )aos ya se encuenran inclui)os las mricas para las
prue5as3 cuyas )imensiones concreas son A?24 clases3 ?3 campos3 D-@ mo)os3 3$D3% lneas )e
c6)igo y @AAD lneas )e comenarios2 A)em!s3 am5in se incluyen las mricas para el manual )e
usuario )e JC/(3 cuyos )aos son AA clases3 3 campos3 4A2 mo)os3 4-?2 lneas )e c6)igo y -?4$
lneas )e comenarios2
Cra mrica para imaginarse el cose )e ese proyeco es el iempo )e )esarrollo y realizaci6n
)el mismoW el cual se esima enre un mnimo )e 2$$$ 0oras )e ra5a:o y un m!Himo )e 3$$$ 0oras2
/se proyeco 0a eni)o pocas pausas )urane su )esarrollo3 el cual comenz6 a "inales )e "e5rero )e
2$$- y ermin6 a "inales )e mayo )e 2$$%3 es )ecir3 m!s )e un aFo )e )esarrollo2
/l manual )e usuario )e ese proyeco3 sin consi)erar ese )ocumeno3 se encuenra en una
clase llama)a I+ser,ui)eJ2 Se encuenra en una clase ya Bue no 0ay me:or manual para una li5rera
)e programaci6n Bue una clase compuesa por numerosos e:emplos escrios en el mismo lengua:e
)e programaci6n OJa#aP y eHplicaciones escrias con el lengua:e )e )ocumenaci6n para c6)igo
OJa#a)ocP2 /se manual )e usuario po)r! enconrarlo "!cilmene en la )irecci6n =e5
0p'>>:ce"2source"orge2ne>api>org>rreHky>securiy>crypo>:ce">+ser,ui)e20ml2 Para o5ener m!s
in"ormaci6n es imporane consular la p!gina =e5 )e ese proyeco 0p'>>:ce"2source"orge2ne y la
p!gina principal online )e la )ocumenaci6n )e JC/( Bue se encuenra en
0p'>>:ce"2source"orge2ne>api>in)eH20ml2
A coninuaci6n se mosrar!n los siguienes apara)os'
Eisi6n general )el )iseFo3 )on)e se 0a5lar! )el )iseFo )e ese proyeco2
Componenes2 1ic0a secci6n enumerar! los pares )e las Bue se compone el proyeco2
1epen)encias3 )on)e se mosrar!n las )epen)encias )el proyeco y )e sus
componenes2
1isri5uciones Bue son con:unos )e "ic0eros Bue conienen )i"erenes consrucciones
)el proyeco2 +nas )esina)as para el uso general3 ora para )esarrolla)ores3 ec222
&am5in se )escri5ir!n las prue5as realiza)as al proyeco3 el coneni)o )el C1GRCM
Bue se a):una con la memoria )e ese proyeco y una peBueFa gua )e insalaci6n y uso )el
proyeco2
%$
PFC ULPGC Aplicaciones Criptogrficas Java
1 &isin !eneral el ise'o
/l proyeco IAplicaciones Cripogr!"icas Ja#aJ 0a si)o )escompueso en numerosas li5reras2
A)em!s3 ca)a li5rera iene asocia)a ora Bue coniene las prue5as para compro5ar el correco
"uncionamieno )e )ic0a li5rera2 Por si "uera poco3 o)as las li5reras 0an si)o )ocumena)as2
4as li5reras )e ese proyeco son IJC/(J como li5rera principal3 IJC/( A))onsJ como
li5rera para eHensiones "uuras y el reso )e li5reras son pro#ee)ores cripogr!"icos Bue cumplen
al menos la especi"icaci6n JC/( y li5reras )e prue5as para compro5ar el correco "uncionamieno
)e o)as las li5reras2 Concreamene se prue5a el correco "uncionamieno )e o)os los mo)os )e
o)as las clases Bue componen el proyeco y se realizan prue5as )e "uncionali)a) a ca)a algorimo2
/l )iseFo )e ese proyeco sigue los principios 5!sicos )e los Ja#a Keans2 /s )ecir3 o)as las
clases se componen )e ari5uos a los cuales se acce)e me)iane al menos un mo)o )e lecura
Ollama)o Ige R nom5re )el ari5uoJP y al menos oro )e escriura Ollama)o Ise R nom5re )el
ari5uoJP2
Cra consi)eraci6n a ener en cuena es Bue se 0a inena)o al m!Himo Bue el nmero )e
lneas )e c6)igo por mo)o "uera el menor posi5le y as )e esa "orma conseguir Bue'
No sea necesario escri5ir gran)es cani)a)es )e )ocumenaci6n ya Bue los mo)os
casi se eHplican por s solos me)iane el c6)igo3 necesian)o an solo la ayu)a )e unas pocas
lneas )e comenarios para la )ocumenaci6n )el mismo2
4a realizaci6n )e las prue5as y su e:ecuci6n "uera lo m!s sencillo posi5le2
2 $omponentes
/se proyeco se compone )e las siguienes li5reras'
A2 JC/( ' /sa es la li5rera principal )el proyeco3 )on)e se encuenra la especi"icaci6n
JC/(3 las iner"aces para manipular algorimos cripogr!"icos y oros algorimos )e apoyo
relaciona)os con la cripogra"a2 A)em!s am5in iene la posi5ili)a) )e uilizar o5:eos
seguros2 Por si no "uera poco3 am5in coniene #arias implemenaciones )e la
especi"icaci6n o iner"az JC/( para implemenar r!pi)amene nue#os algorimos
cripogr!"icos3 a)apar oros ya eHisenes y a)em!s ser compai5le con la anerior
especi"icaci6n JC/2 Su p!gina =e5 o"icial y la )e ese proyeco es
0p'>>:ce"2source"orge2ne2
22 JC/( &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la li5rera IJC/(J para
compro5ar su correco "uncionamieno2
32 RR/QM7 JC/( Pro#i)er ' Principal pro#ee)or )e algorimos cripogr!"icos Bue
cumplen la especi"icaci6n JC/(2 &o)os esos algorimos 0an si)o pro5a)os y "uncionan
correcamene2 Se raa )e un pro#ee)or personaliza)o con algorimos cripogr!"icos
eHrai)os )e oros pro#ee)ores ales como IKouncyCasle JC/( Pro#i)erJ3 IJacksum JC/(
%A
PFC ULPGC Aplicaciones Criptogrficas Java
Pro#i)erJ y I(leHiCore JC/( Pro#i)erJ2 /se pro#ee)or coniene %4 algorimos )e o)os los
ipos "uncionan)o correcamene y son'
Algorit&os criptogrficos 'e proteccin asi&Ktrica' RSA
Algorit&os criptogrficos 'e proteccin si&Ktrica 'e "lo#ues' A/S3 Klo="is03
Camellia3 CAS&-3 CAS&%3 ,CS&3 RC23 RC%3 Serpen3 Skip:ack3 &riple1/S3
&=o"is02
Algorit&os criptogrficos 'e proteccin si&Ktrica 'e flu%o' RC4
Algorit&os criptogrficos 'e proteccin "asa'a en contrase$a'
PK/=i0S9AAan)&=o"is03 PK/=i0S9A2-%an)A/S2-%
Algorit&os genera'ores 'e fuentes 'e 'atos aleatorios' KKS
Algorit&os criptogrficos 'e autentificacin &e'iante =uellas 'igitales'
,CS&3 9a#alA2@3 9a#alA%$3 9a#alAD23 9a#al2243 9a#al2-%3 M123 M143 M1-3
R*P/M1A2@3 R*P/M1A%$3 R*P/M12-%3 R*P/M132$3 S9AA3 S9A2243 S9A2-%3
S9A3@43 S9A-A23 &iger3 L0irlpool
Algorit&os criptogrficos 'e autentificacin &e'iante sellos 'igitales'
9macM123 9macM143 9macM1-3 9macR*P/M1A2@3 9macR*P/M1A%$3
9macS9AA3 9macS9A2243 9macS9A2-%3 9macS9A3@43 9macS9A-A23
9mac&iger3 Mac1/S3 MacRC23 MacSkip:ack3 Mac&riple1/S
Algorit&os criptogrficos 'e autentificacin &e'iante sellos "asa'os en
contrase$a' PK/9macR*P/M1A%$3 PK/9macS9AA
Algorit&os criptogrficos 'e autentificacin &e'iante fir&as 'igitales'
M12=i0RSA3 M14=i0RSA3 M1-=i0RSA3 R*P/M1A2@=i0RSA3
R*P/M1A%$=i0RSA3 R*P/M12-%=i0RSA3 S9AA=i0RSA3 S9A224=i0RSA3
S9A2-%=i0RSA3 S9A3@4=i0RSA3 S9A-A2=i0RSA
42 RR/QM7 JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera IRR/QM7 JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
-2 JC/( A))ons ' /Hensiones para JC/(2 Acualmene incluye3 aunBue no se 0an
pro5a)o correcamene3 clases Bue permien )e"inir nue#os algorimos cripogr!"icos en 5ase
a oros algorimos cripogr!"icos ya eHisenes2 &am5in coniene las prue5as para po)er
realizarlas con el o5:ei#o )e compro5ar Bue las implemenaciones )e los algorimos
cripogr!"icos son correcas2
%2 JC/( A))ons &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la li5rera
IJC/( A))onsJ para compro5ar su correco "uncionamieno2
?2 KouncyCasle JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e
oro pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>===25ouncycasle2org2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero
no )el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
@2 KouncyCasle JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a
la li5rera IKouncyCasle JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
D2 Jacksum JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene Bue no cumple ni la especi"icaci6n JC/ ni la JC/( cuya
%2
PFC ULPGC Aplicaciones Criptogrficas Java
=e5 es 0p'>>===2:onelo2)e>:a#a>:acksum>2 /se pro#ee)or 0a si)o casi compleamene
)esarrolla)o pero no )el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian
con"igurarse me:or2
A$2 Jacksum JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera IJacksum JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
AA2 (leHiCore JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>===2"leHipro#i)er2)e>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero
no )el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
A22 (leHiCore JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera I(leHiCore JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
A32 (leHi/C JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>===2"leHipro#i)er2)e>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero
no )el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
A42 (leHi/C JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera I(leHi/C JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
A-2 (leHiN( JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>===2"leHipro#i)er2)e>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero
no )el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
A%2 (leHiN( JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera I(leHiN( JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
A?2 CrypiHCrypo JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e
oro pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>===2crypiH2org>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero no
)el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
A@2 CrypiHCrypo JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a
la li5rera ICrypiHCrypo JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
AD2 CrypiH JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>===2crypiH2org>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero no
)el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
2$2 CrypiH JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera ICrypiH JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
2A2 ,N+Crypo JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e
oro pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>===2gnu2org>so"=are>gnuGcrypo>2 /se pro#ee)or 0a si)o casi compleamene
)esarrolla)o pero no )el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian
con"igurarse me:or2
222 ,N+Crypo JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera I,N+Crypo JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
%3
PFC ULPGC Aplicaciones Criptogrficas Java
232 *A*M JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>:ce2iaik2ugraz2a>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero no )el
o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
242 *A*M JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera I*A*M JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
2-2 J9KC* JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>===2:05ci2)e>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero no )el
o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
2%2 J9KC* JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera IJ9KC* JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
2?2 4ogi Crypo JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e
oro pro#ee)or cripogr!"ico ya eHisene pero una especi"icaci6n )esconoci)a Bue no es JC/
cuya =e5 es 0p'>>===2logi2org>logi2crypo>2 /se pro#ee)or 0a si)o casi compleamene
)esarrolla)o pero no )el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian
con"igurarse me:or2
2@2 4ogi Crypo JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera I4ogi Crypo JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
2D2 Min)5rig0 JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e
oro pro#ee)or cripogr!"ico ya eHisene pero )e una especi"icaci6n )esconoci)a Bue no es
JC/ cuya =e5 es 0p'>>===2appgae2com>pro)ucs>@$.Min)&erm>2 /se pro#ee)or 0a si)o
casi compleamene )esarrolla)o pero no )el o)o pro5a)o2 (uncionan muc0os algorimos y
el reso necesian con"igurarse me:or2
3$2 Min)5rig0 JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera IMin)5rig0 JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
3A2 S+N JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>:a#a2sun2com>:2se>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero no
)el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
322 S+N JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera IS+N JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
332 SunJC/ JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>:a#a2sun2com>:2se>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero no
)el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
342 SunJC/ JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera ISunJC/ JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
3-2 SunJSS/ JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e oro
pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>:a#a2sun2com>:2se>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero no
)el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
%4
PFC ULPGC Aplicaciones Criptogrficas Java
3%2 SunJSS/ JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera ISunJSS/ JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
3?2 SunRsaSign JC/( Pro#i)er ' Se raa )e un pro#ee)or JC/( Bue 0a si)o a)apa)o )e
oro pro#ee)or cripogr!"ico ya eHisene pero )e especi"icaci6n JC/ cuya =e5 es
0p'>>:a#a2sun2com>:2se>2 /se pro#ee)or 0a si)o casi compleamene )esarrolla)o pero no
)el o)o pro5a)o2 (uncionan muc0os algorimos y el reso necesian con"igurarse me:or2
3@2 SunRsaSign JC/( Pro#i)er &ess ' /sa li5rera es la encarga)a )e realizar prue5as a la
li5rera ISunRsaSign JC/( Pro#i)erJ para compro5ar su correco "uncionamieno2
3 (epenencias
/n esa secci6n se in)ican las li5reras )e las cuales ese proyeco )epen)e2 /n la siguiene
lisa se in)icar!n las )epen)encias )e ca)a una )e las li5reras )e ese proyeco'
JC/( ' 1epen)e )e IAP* )e J2S/J y IApac0e Jakara Commons 4angJ2
JC/( &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/(J y IJC/( A))onsJ2
RR/QM7 JC/( Pro#i)er ' 21epen)e )e IAP* )e J2S/J3 IKouncyCasle JC/(
Pro#i)erJ3 IJacksum JC/( Pro#i)erJ y I(leHiCore JC/( Pro#i)erJ2
RR/QM7 JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
IRR/QM7 JC/( Pro#i)erJ2
JC/( A))ons ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y IJC/( &essJ2
JC/( A))ons &ess ' 1epen)e )e IAP* )e J2S/J3 IJC/( A))onsJ y IJC/( &essJ2
KouncyCasle JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y IKouncyCasle
JC/ Pro#i)erJ2
KouncyCasle JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/(
&essJ y IKouncyCasle JC/( Pro#i)erJ2
Jacksum JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y IJacksum NonJC/
Pro#i)erJ2
Jacksum JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
IJacksum JC/( Pro#i)erJ2
(leHiCore JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y I(leHiCore JC/
Pro#i)erJ2
(leHiCore JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
I(leHiCore JC/( Pro#i)erJ2
(leHi/C JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y I(leHi/C JC/
Pro#i)erJ2
(leHi/C JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
I(leHi/C JC/( Pro#i)erJ2
%-
PFC ULPGC Aplicaciones Criptogrficas Java
(leHiN( JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y I(leHiN( JC/
Pro#i)erJ2
(leHiN( JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
I(leHiN( JC/( Pro#i)erJ2
CrypiHCrypo JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y ICrypiHCrypo
JC/ Pro#i)erJ2
CrypiHCrypo JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/(
&essJ y ICrypiHCrypo JC/( Pro#i)erJ2
CrypiH JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y ICrypiH JC/
Pro#i)erJ2
CrypiH JC/( Pro#i)er &ess ' 1epen)e )e IJ2S/J3 IJ+niJ3 IJC/( &essJ y ICrypiH
JC/( Pro#i)erJ2
,N+Crypo JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y I,N+Crypo JC/
Pro#i)erJ2
,N+Crypo JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ
y I,N+Crypo JC/( Pro#i)erJ2
*A*M JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y I*A*M JC/ Pro#i)erJ2
*A*M JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
I*A*M JC/( Pro#i)erJ2
J9KC* JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y IJ9KC* JC/ Pro#i)erJ2
J9KC* JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
IJ9KC* JC/( Pro#i)erJ2
4ogi Crypo JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y I4ogi Crypo
NonJC/ Pro#i)erJ2
4ogi Crypo JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ
y I4ogi Crypo JC/( Pro#i)erJ2
Min)5rig0 JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J3 IJC/(J y IMin)5rig0
NonJC/ Pro#i)erJ2
Min)5rig0 JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ
y IMin)5rig0 JC/( Pro#i)erJ2
S+N JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J y IJC/(J2
S+N JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
IS+N JC/( Pro#i)erJ2
SunJC/ JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J y IJC/(J2
SunJC/ JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
ISunJC/ JC/( Pro#i)erJ2
%%
PFC ULPGC Aplicaciones Criptogrficas Java
SunJSS/ JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J y IJC/(J2
SunJSS/ JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ y
ISunJSS/ JC/( Pro#i)erJ2
SunRsaSign JC/( Pro#i)er ' 1epen)e )e IAP* )e J2S/J y IJC/(J2
SunRsaSign JC/( Pro#i)er &ess ' 1epen)e )e IAP* )e J2S/J3 IJ+niJ3 IJC/( &essJ
y ISunRsaSign JC/( Pro#i)erJ2
4 (istribuciones
ABu se )escri5en las )isri5uciones Bue proporciona ese proyeco )es)e su =e5
0p'>>:ce"2source"orge2ne y 0p'>>source"orge2ne>pro:ecs>:ce"'
I:ce".#A2$.5asicrunime2zipJ' /s la )isri5uci6n 5!sica2 Coniene las li5reras para el
uso )e JC/( y )el pro#ee)or RR/QM7 an solo2 Se raa )e una )isri5uci6n s6lo para
usuarios Bue necesian lo 5!sico2 Ccupa unos 2d-4 MK y se )isri5uye en "ormao 8*P2 /sa
)isri5uci6n #iene acompaFa)a )e las li5reras )e las Bue )epen)e eHcepo )e la IAP* )e
J2S/J Bue es la es!n)ar y no necesia incluirse2
I:ce".#A2$.)e#elopmen2zipJ' /s la )isri5uci6n )esina)a a los )esarrolla)ores Bue
Buieran me:orar ese proyeco2 Coniene el c6)igo "uene3 las prue5as y la )ocumenaci6n
ano )e IJC/(J3 IJC/( A))onsJ y o)os los pro#ee)ores cripogr!"icos IJC/(J2 Ccupa
unos 24d3 MK y se )isri5uye en "ormao 8*P2 /sa )isri5uci6n #iene acompaFa)a )e las
li5reras )e las Bue )epen)e eHcepo )e la IAP* )e J2S/J Bue es la es!n)ar y no necesia
incluirse2
I:ce".#A2$.runime2zipJ' /s la )isri5uci6n complea para usuarios3 no
)esarrolla)ores2 Coniene nicamene o)o el c6)igo compila)o )e IJC/(J3 IJC/(
A))onsJ3 las prue5as y los pro#ee)ores2 Ccupa unos %d%4 MK y se )isri5uye en "ormao
8*P2 /sa )isri5uci6n #iene acompaFa)a )e las li5reras )e las Bue )epen)e eHcepo )e la
IAP* )e J2S/J Bue es la es!n)ar y no necesia incluirse2
I:ce".#A2$.all.src2zipJ' Coniene o)o el c6)igo "uene Ja#a )el proyeco3 incluyen)o
o5#iamene los comenarios )e )ocumenaci6n Ja#a)oc2 Ccupa unos ?dA@ MK y se
)isri5uye en "ormao 8*P2 /sa )isri5uci6n #iene acompaFa)a )e las li5reras )e las Bue
)epen)e eHcepo )e la IAP* )e J2S/J Bue es la es!n)ar y no necesia incluirse2
I:ce".#A2$.)oc2zipJ' Coniene o)a la )ocumenaci6n )e la memoria y la
)ocumenaci6n )e o)as las li5reras )el proyeco2 Ccupa unos 22d4 MK y se )isri5uye en
"ormao 8*P2
I:ce".#A2$.=e52zipJ' 1isri5uci6n compuesa por la p!gina =e5 )el proyeco3 pero sin
incluir el reso )e )isri5uciones2 Ccupa unos Dd-A MK y se )isri5uye en "ormao 8*P2
%?
PFC ULPGC Aplicaciones Criptogrficas Java
5 P)!ina #eb
1es)e la p!gina =e5 )el proyeco 0p'>>:ce"2source"orge2ne Oo am5in
0p'>>source"orge2ne>pro:ecs>:ce">P el #isiane po)r! acce)er a los siguienes recursos'
1ocumenaci6n )el proyeco3 )es)e un sumario 0asa la )ocumenaci6n complea2
Po)r! acce)er a)em!s a los capulos por separa)o )e la )ocumenaci6n complea2 /sos
capulos son' I*nro)ucci6n a la seguri)a)J3 ICripogra"a oriena)a a o5:eosJ3 I/l
proyecoJ3 I(uuros proyecosJ3 IRecursos uiliza)osJ y IPregunas "recuenesJ2
1ocumenaci6n )e la AP* JC/(2 &an solo se 0a inclui)o la )ocumenaci6n )e la
li5rera IJC/(J y se 0an )e:a)o "uera el reso )e li5reras por cuesiones )e espacio en el
ser#i)or )e alo:amieno )e la p!gina =e5 )el proyeco ya Bue se s6lo permie un m!Himo
)e A$$ MK y la )ocumenaci6n complea )e o)as las li5reras )el proyeco ocupa m!s )e
A-$ MK2
8ona )e )escarga )e las )isri5uciones2
Presenaci6n2 Se po)r! acce)er a una presenaci6n )e )iaposii#as para #er lo m!s
ineresane )el proyeco y aBuello Bue es! su:eo )e ser #isiona)o en la lecura )e ese
proyeco ane el ri5unal e#alua)or )el mismo2
Muliu) )e enlaces )e 0erramienas uiliza)as para el )esarrollo )el proyeco2
elimas noicias so5re el proyeco2
6 Pruebas reali*aas
4as li5reras )e prue5as se encargan )e someer al proyeco a una serie )e ess con el o5:ei#o
)e compro5ar el correco "uncionamieno )el mismo2
Se 0an realiza)o prue5as para compro5ar el correco "uncionamieno )e o)os los mo)os )e
o)as las clases Bue componen el proyeco2
4a mayora )e las prue5as se 5asan en compro5ar Bue las propie)a)es )e los o5:eos )e una
clase se leen y escri5en correcamene2
/Hisen oras prue5as Bue #eri"ican la "uncionali)a) )e los algorimos2 /sa prue5a genera
p!rameros y cla#es3 realiza ra)ucciones )e par!meros y cla#es y especialmene raa )e generar
o5:eos seguros para poseriormene o5ener el o5:eo asegura)o con #arios ipos )e par!meros y
cla#es2 Si el o5:eo asegura)o es el mismo Bue el original o si es aunico3 enonces el algorimo
supera la prue5a )e "uncionali)a)2 +n algorimo no supera esa prue5a )e "uncionali)a) en caso
conrario o cuan)o se pro)uce alguna eHcepci6n pro#oca)a principalmene por una mala
con"iguraci6n )el algorimo2
%@
PFC ULPGC Aplicaciones Criptogrficas Java
9ay oras prue5as llama)as )e implemenaci6n2 Su "inali)a) es la )e #eri"icar la correca
implemenaci6n )e los algorimos3 no se raa )e Bue "uncionen3 si no )e Bue "uncionen como ienen
Bue 0acerlo2 Pero 0ay Bue )ecir Bue esas prue5as )e implemenaci6n es!n implemena)as pero no
se 0a realiza)o ninguna ya Bue eso se 0a consi)era)o pare )e un proyeco "uuro2
Cra curiosi)a) es Bue son anas prue5as Bue se ar)a 5asane en po)er compro5ar si sas
son supera)as2 &am5in es con#eniene sa5er Bue si se lanzan muc0as prue5as a la #ez3 se corre el
riesgo )e Bue)arse sin memoria y no po)er #er si son supera)as o no2 4o me:or Bue se pue)e 0acer
es lanzar las prue5as so5re los paBuees 0o:a OaBuellos Bue no conienen oros paBueesP2
Recuer)e am5in Bue las nicas li5reras Bue 0an supera)o compleamene las prue5as3 son
IJC/(J y IRR/QM7 JC/( Pro#i)erJ2 /l reso )e li5reras reBuieren una re#isi6n Iclase por claseJ3
Ialgorimo por algorimoJ2 /so limo no se 0a realiza)o por "ala )e iempo y se 0a )e:a)o la
responsa5ili)a) )e ello a un proyeco "uuro2
7 $ontenio el $(+,-.
/l C1GRCM Bue acompaFa a la memoria )e ese proyeco conen)r! las siguienes carpeas'
ISource Co)eJ' &o)o el c6)igo "uene )el proyeco2
I4i5sJ' &o)as las li5reras )e las Bue )epen)e ese proyeco eHcepuan)o la li5rera
es!n)ar J2S/2
I1isri5uionsJ' Almacenar! las )isri5uciones )el proyeco2
IPapersJ' 4a memoria )el proyeco en "ormao CpenC""ice y P1( :uno con las
im!genes uiliza)as2 A)em!s se incluye la )ocumenaci6n AP* so5re o)as las li5reras2
ILe5J' P!gina =e5 )el proyeco3 a la Bue se po)r! acce)er )e "orma o""line u online
si se )esea2
ISo"=areJ' Coniene el so"=are mnimo necesario para po)er consular el c6)igo
"uene )el proyeco y po)er lanzar las prue5as para compro5ar su correco "uncionamieno'
IJR/2eHeJ' Arc0i#o )e insalaci6n )e Ja#a 2 Runime San)ar) /)iion OJ2S/P2
I:ce policy "ilesJ' Carpea Bue coniene los arc0i#os Bue permien )es5loBuear
JR/>J2S/2
I/clipseJ' Carpea Bue coniene el *1/ para Ja#a llama)o I/clipseJ2 Para
insalarlo3 5asa con copiar esa carpea al )isco )uro2
I?G8ip2eHeJ' Arc0i#o )e insalaci6n )el programa I?G8ipJ3 el cual se uiliza para
comprimir>)escomprimir arc0i#os2
IAl8ip2eHeJ' Arc0i#o )e insalaci6n )el programa IAl8ipJ uiliza)o para
comprimir>)escomprimir arc0i#os2
IA)o5e Rea)er /S2eHeJ' Arc0i#o )e insalaci6n )el programa IA)o5e Rea)erJ en
espaFol para Lin)o=s QP2 Permie leer arc0i#os P1(2
%D
PFC ULPGC Aplicaciones Criptogrficas Java
ICpenC""ice 22eHeJ' Arc0i#o )e insalaci6n )el programa ICpenC""iceJ Bue
permiir! #er y so5re o)o e)iar la memoria )el proyeco2
ICpenC""ice 2 /S pack2eHeJ' Arc0i#o )e insalaci6n para ra)ucir CpenC""ice a
espaFol2
/ 0ua e instalacin y uso
Si lo Bue )esea es #er Bu se 0a 0ec0o eHacamene3 eHaminar el c6)igo "uene y compro5ar
Bue las prue5as son supera)as3 s6lo es necesario Bue siga los siguienes pasos'
A2 *nsalar la m!Buina #irual )e Ja#a' IJ2S/ Runime /n#ironmenJ OJR/P en un
)irecorio cualBuiera Bue llamaremos sim56licamene ]:a#aG0ome^2
22 1esproeger JR/ copian)o los "ic0eros )e policas )e seguri)a) llama)os
I+S.eHpor.policy2:arJ y Ilocal.policy2:arJ al )irecorio I]:a#aG0ome^>li5>securiyJ2
32 Copiar o)o el c6)igo "uene )el proyeco en una carpea llama)a ]sourceG0ome^2
42 Copiar o)as las li5reras )e las Bue )epen)e ese proyeco en una carpea llama)a
]li5sG0ome^2
-2 *nsalar el *1/ I/clipseJ3 a5rirlo3 )e"inirle un )irecorio cualBuiera para el espacio )e
ra5a:o y cerrar la pesaFa ILelcomeJ si le apareciera2
%2 Crear un nue#o proyeco Ja#a llama)o IAplicaciones Cripogr!"icas Ja#aJ a parir )e
la carpea ]sourceG0ome^ y a coninuaci6n pulsar en siguiene2
?2 AFa)ir el JR/ )esproegi)o como li5rera Bue es! u5ica)o en ]:a#aG0ome^2
@2 AFa)ir las li5reras u5ica)as en ]li5sG0ome^ 5a:o el nom5re )e una nica li5rera Bue
po)ra llamarse I1epen)encesJ2 /s muy imporane asegurarse )e Bue la li5rera JR/ se
encuenra encima )e la li5rera I1epen)encesJ2
D2 /sperar un iempo a Bue se consruya el espacio )e ra5a:o2
A$2 7 ya es! en )isposici6n )e #er el c6)igo "uene y #eri"icar Bue las prue5as se superan
al menos para las li5reras IJC/(J y IRR/QM7 JC/( Pro#i)erJ2
AA2 Para #er el c6)igo3 simplemene 0aga )o5le click en el no)o raz )el proyeco3 en
no)os li5rera3 no)os carpea y no)os arc0i#o Ja#a2
A22 Para lanzar las prue5as so5re IJC/(J3 )e5e )irigirse a la li5rera IJC/( &essJ e ir
e:ecuan)o ca)a una )e las prue5as3 )es)e prue5as sencillas O"ic0eros cuyo nom5re ermina
en I&esJP 0asa mliples prue5as O"ic0eros cuyos nom5res comienzan con IAll&essJP2
Para lanzar prue5as 5asa con pulsar el 5o6n )erec0o so5re ella y 0acer click en la opci6n
IRun As GG^ J+ni &esJ2 Recuer)e Bue es imporane Bue no e:ecue muc0as prue5as a la
#ez pueso Bue pue)e Bue se Bue)e sin memoria y por ello no erminen correcamene las
prue5as2 4o me:or es lanzar las prue5as )e los paBuees 0o:a por ca)a li5rera2 &am5in
pue)e compro5ar el correco "uncionamieno )e la li5rera IRR/QM7 JC/( Pro#i)erJ2
?$
PFC ULPGC Aplicaciones Criptogrficas Java
& 'l uso (a)itual
/n esa secci6n se muesra el uso m!s 0a5iual )e la cripogra"a3 es )ecir3 se muesra c6mo se
crean o5:eos seguros y se o5ienen sus o5:eos asegura)os a parir )e sus #ersiones seguras
uilizan)o par!meros nue#os y reuilizan)o unos ya eHisenes genera)os con anerio)a)2
/n los siguienes punos se mosrar! el menciona)o uso 0a5iual me)iane la uilizaci6n )e
ese proyeco2 Se #er! Bue es muy "!cil consruir o5:eos seguros con la li5rera JC/(2 /n resumen3
ese uso 0a5iual se compone )e los siguienes pasos'
A2 Asegurar un o5:eo con nue#os par!meros cripogr!"icos2
22 Almacenar par!meros cripogr!"icos para un uso poserior2
32 C5ener el o5:eo asegura)o uilizan)o los nue#os par!meros cripogr!"icos2
42 Asegurar oro o5:eo reuilizan)o par!meros cripogr!"icos ya eHisenes2
-2 C5ener el o5:eo asegura)o reuilizan)o par!meros cripogr!"icos ya eHisenes2
1 Ase!urar un ob1eto con nuevos par)metros cripto!r)ficos
())
) *e+i,nte -CE.& cre, un objeto seguro y obtiene su /ersi0n insegur,
nue/,mente' !osteriormente cre, y +esh,ce otro objeto seguro reutili1,n+o
p,r2metros gener,+os con ,nteriori+,+
)(
public st,tic /oi+ e3,mple4_-CE. () 5
try 5
(( 4' Se +ese, ,segur,r un objeto
(( 4'4' 6e7inimos un objeto 8ue se +ese, ,segur,r
String object = "my object";
(( 4'9' Se seleccion, un ,lgoritmo +e seguri+,+
Symmetric!rotection secureAlgorithm = new
AES_BlocSymmetric!rotection""E#$%();
(( 4':' Se inici,li1, el ,lgoritmo con p,r2metros concretos si 7uer,
neces,rio (est, inici,li1,ci0n es opcion,l)
(( Est, inici,li1,ci0n es ine3istente y, 8ue se +ese, utili1,r unos
p,r2metros nue/os (cl,/e y p,r2metro gener,+o ,utom2tic,mente por el
,lgoritmo)
(( 4';' Se ,segur, el objeto y se gu,r+, en ,lg<n lug,r
SecureObject secureObject = new SecureObject(object& secureAlgorithm);
s,/eObject(secureObject);
(( '''
!a"la @F: JCEF 17 Asegurar un o"%eto con nuevos par&etros criptogrficos
?A
PFC ULPGC Aplicaciones Criptogrficas Java
2 Almacenar par)metros cripto!r)ficos para un uso posterior
(( 9' Se gu,r+,n los p,r2metros p,r, su posterior uso& y, se, p,r,
gener,r nue/os objetos seguros u obtener objetos ,segur,+os (objetos
inseguros) 8ue es lo m2s h,bitu,l
byte=> enco+e+$ey = secureAlgorithm'getSymmetric$ey()'getEnco+e+();
byte=> enco+e+!,r,meter = secureAlgorithm'getEnco+e+!,r,meter();
s,/e$ey(enco+e+$ey); s,/e!,r,meter(enco+e+!,r,meter);
(( '''
!a"la @9: JCEF /7 Al&acenar par&etros criptogrficos para un uso posterior
3 -btener el ob1eto ase!urao utili*ano los nuevos par)metros
cripto!r)ficos
(( ''' tiempo m2s t,r+e en ,lg<n otro lug,r +el c0+igo '''
(( :' Se +ese, recuper,r el objeto +e 7orm, segur,
(( :'4' C,rg,mos los +,tos 8ue se necesit,n
enco+e+$ey = lo,+$ey(); enco+e+!,r,meter = lo,+!,r,meter();
(( :'9' ?nici,li1,mos el ,lgoritmo con los p,r2metros ,propi,+os p,r,
po+er obtener el objeto ,segur,+o
secureAlgorithm = new AES_BlocSymmetric!rotection""E#$%();
secureAlgorithm'setSymmetric$ey(enco+e+$ey);
secureAlgorithm'set!,r,meter(enco+e+!,r,meter);
(( :':' Se obtiene el objeto ,segur,+o , p,rtir +e su /ersi0n en 7orm, +e
objeto seguro
secureObject = (SecureObject)lo,+Object();
object = (String)secureObject'getObject(secureAlgorithm);
(( '''
!a"la @G: JCEF @7 *"tener el o"%eto asegura'o utili2an'o los nuevos par&etros criptogrficos
?2
PFC ULPGC Aplicaciones Criptogrficas Java
4 Ase!urar otro ob1eto reutili*ano par)metros cripto!r)ficos ya
e2istentes
(( ''' tiempo m2s t,r+e en ,lg<n otro lug,r +el c0+igo '''
(( ;' Se +ese, ,segur,r un nue/o objeto con l, mism, cl,/e y p,r2metro en
un inst,nte +e tiempo posterior
(( ;'4' Se +e7ine el nue/o objeto
String otherObject = "other object";
(( ;'9' Se c,rg,n los p,r2metros 8ue se necesit,n
enco+e+$ey = lo,+$ey(); enco+e+!,r,meter = lo,+!,r,meter();
(( ;':' Se inici,li1, el ,lgoritmo
secureAlgorithm = new AES_BlocSymmetric!rotection""E#$%();
secureAlgorithm'setSymmetric$ey(enco+e+$ey);
secureAlgorithm'set!,r,meter(enco+e+!,r,meter);
(( ;';' Se ,segur, el nue/o objeto
SecureObject otherSecureObject = new SecureObject(otherObject&
secureAlgorithm);
s,/eObject(otherSecureObject);
(( '''
!a"la @I: JCEF D7 Asegurar otro o"%eto reutili2an'o par&etros criptogrficos .a e3istentes
5 -btener el ob1eto ase!urao reutili*ano par)metros cripto!r)ficos ya
e2istentes
(( ''' tiempo m2s t,r+e en ,lg<n otro lug,r +el c0+igo '''
(( @' Se +ese, recuper,r el nue/o objeto ,segur,+o
(( @'4' C,rg,mos los +,tos 8ue se necesit,n
enco+e+$ey = lo,+$ey(); enco+e+!,r,meter = lo,+!,r,meter();
(( @'9' ?nici,li1,mos el ,lgoritmo con los p,r2metros ,propi,+os p,r,
po+er obtener el objeto ,segur,+o
secureAlgorithm = new AES_BlocSymmetric!rotection""E#$%();
secureAlgorithm'setSymmetric$ey(enco+e+$ey);
secureAlgorithm'set!,r,meter(enco+e+!,r,meter);
(( @':' Se obtiene el objeto ,segur,+o , p,rtir +e su /ersi0n en 7orm, +e
objeto seguro
otherSecureObject = (SecureObject)lo,+Object();
object = (String)otherSecureObject'getObject(secureAlgorithm);
A
c,tch (Bhrow,ble throw,ble) 5 throw,ble'printSt,cBr,ce(); return; A
A
!a"la DJ: JCEF E7 *"tener el o"%eto asegura'o reutili2an'o par&etros criptogrficos .a e3istentes
?3
PFC ULPGC Aplicaciones Criptogrficas Java
* Comparativa con JCA + JC'
A coninuaci6n se po)r! #er el uso m!s 0a5iual )e la cripogra"a3 es )ecir3 se mosrar! c6mo
se crean unos o5:eos seguros y se o5ienen sus o5:eos asegura)os a parir )e sus #ersiones seguras
uilizan)o par!meros nue#os y reuilizan)o unos ya eHisenes genera)os con anerio)a)2 Pero en
esa ocasi6n3 no se uilizar! el proyecoW se emplear! la arBuiecura cripogr!"ica )e Ja#a OJCAP y su
eHensi6n OJC/P2 1e esa "orma3 po)r! #erse una pare imporane )el #alor aFa)i)o )e ese proyeco
al mun)o )e la cripogra"a y Ja#a2
1 Ase!urar un ob1eto con nuevos par)metros cripto!r)ficos
-efinicin 'el o"%eto a asegurar . carga 'el provee'or
())
) *e+i,nte -CE& cre, un objeto seguro y obtiene su /ersi0n insegur, nue/,mente'
!osteriormente cre, y +esh,ce otro objeto seguro reutili1,n+o p,r2metros gener,+os con
,nteriori+,+
)(
public st,tic /oi+ e3,mple4_-CE () 5
(( 4' Se +ese, ,segur,r un objeto
(( 4'4' 6e7inimos un objeto 8ue se +ese, ,segur,r
String object = "my object";
(( 4'9' Se seleccion, un ,lgoritmo +e seguri+,+
(( 4'9'4' Es muy posible 8ue se, neces,rio c,rg,r el pro/ee+or +e los ,lgoritmos 8ue se
+ese,n utili1,r' Esto h,y 8ue h,cerlo un, sol, /e1
!ro/i+er pro/i+er = new BouncyC,stle!ro/i+er();
Security',++!ro/i+er(pro/i+er);
String pro/i+erC,me = pro/i+er'getC,me();
(( '''
!a"la D1: JCE 1717 -efinicin 'el o"%eto a asegurar . carga 'el provee'or
?4
PFC ULPGC Aplicaciones Criptogrficas Java
-efinicin 'el genera'or 'e claves si&Ktricas
(( '''
(( 4'9'9' Se +eben gener,r los p,r2metros +el ,lgoritmo ,ntes +e seleccion,r el mismo
(( 4'9'9'4' Se gener, l, 7uente +e +,tos ,le,torios si 7uer, neces,rio (no es el c,so)
Secure",n+om r,n+om = null;
(( 4'9'9'9' Se gener, l, cl,/e
$ey ey = null;
(( 4'9'9'9'4' Se seleccion, el ,lgoritmo gener,+or +e cl,/es simDtric,s p,r, el ,lgoritmo
+ese,+o
j,/,3'crypto'$eyEener,tor eyEener,tor = null;
try 5 eyEener,tor = j,/,3'crypto'$eyEener,tor'get?nst,nce("AES"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la D/: JCE 17/7 -efinicin 'el genera'or 'e claves si&Ktricas
Iniciali2acin 'el genera'or 'e claves si&Ktricas . generacin 'e la clave
(( '''
(( 4'9'9'9'9' Se inici,li1, el ,lgoritmo +e gener,ci0n +e cl,/es simDtric,s p,r, el
,lgoritmo +ese,+o
int eySi1e = 9@F;
Algorithm!,r,meterSpec gen!,r,meter = null;
i7 (gen!,r,meter G= null HH r,n+om == null) 5
try 5 eyEener,tor'init(gen!,r,meter); A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (gen!,r,meter G= null HH r,n+om G= null) 5
try 5 eyEener,tor'init(gen!,r,meter& r,n+om); A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (gen!,r,meter == null HH eySi1e I J HH r,n+om == null) 5
eyEener,tor'init(eySi1e);
A else i7 (gen!,r,meter == null HH eySi1e I J HH r,n+om G= null) 5
eyEener,tor'init(eySi1e& r,n+om);
A else i7 (gen!,r,meter == null HH eySi1e K= J HH r,n+om G= null) 5
eyEener,tor'init(r,n+om);
A
(( 4'9'9'9':' Se utili1, el gener,+or y, seleccion,+o e inici,li1,+o p,r, gener,r l, cl,/e
simDtric,
ey = eyEener,tor'gener,te$ey();
(( '''
!a"la D@: JCE 17@7 Iniciali2acin 'el genera'or 'e claves si&Ktricas . generacin 'e la clave
?-
PFC ULPGC Aplicaciones Criptogrficas Java
-efinicin 'el genera'or 'e par&etros
(( '''
(( 4'9'9':' Se necesit, gener,r ,+em2s un p,r2metro p,r, el ,lgoritmo ,+em2s +e l, cl,/e
gener,+, con ,nteriori+,+
Algorithm!,r,meterSpec p,r,meter = null;
(( 4'9'9':'4' Se in+ic, el tipo +e p,r2metro +el 8ue se tr,t,
Cl,ss p,r,meterBype = ?/!,r,meterSpec'cl,ss;
(( 4'9'9':'9' Se seleccion, el ,lgoritmo gener,+or +e p,r2metros p,r, el ,lgoritmo +ese,+o
Algorithm!,r,meterEener,tor p,r,meterEener,tor = null;
try 5 p,r,meterEener,tor = Algorithm!,r,meterEener,tor'get?nst,nce("AES"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la DD: JCE 17D7 -efinicin 'el genera'or 'e par&etros
Iniciali2acin 'el genera'or 'e par&etros
(( '''
(( 4'9'9':':' Se inici,li1, el ,lgoritmo +e gener,ci0n +e p,r2metros
gen!,r,meter = null; int p,r,meterSi1e = 4F;
i7 (gen!,r,meter G= null HH r,n+om == null) 5
try 5 p,r,meterEener,tor'init(gen!,r,meter); A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (gen!,r,meter G= null HH r,n+om G= null) 5
try 5 p,r,meterEener,tor'init(gen!,r,meter& r,n+om); A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (gen!,r,meter == null HH r,n+om == null) 5
p,r,meterEener,tor'init(p,r,meterSi1e);
A else i7 (gen!,r,meter == null HH r,n+om G= null) 5
p,r,meterEener,tor'init(p,r,meterSi1e& r,n+om);
A
(( '''
!a"la DE: JCE 17E7 Iniciali2acin 'el genera'or 'e par&etros
?%
PFC ULPGC Aplicaciones Criptogrficas Java
Generacin 'el par&etro
(( '''
(( 4'9'9':';' Se utili1, el gener,+or p,r, obtener el p,r2metro neces,rio p,r, el ,lgoritmo
Algorithm!,r,meters ,lgorithm!,r,meters = p,r,meterEener,tor'gener,te!,r,meters();
try 5 p,r,meter = ,lgorithm!,r,meters'get!,r,meterSpec(p,r,meterBype); A
c,tch (?n/,li+!,r,meterSpecE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la DF: JCE 17F7 Generacin 'el par&etro
-efinicin 'el algorit&o 'e seguri'a'
(( '''
(( 4'9':' Se seleccion, el ,lgoritmo +e seguri+,+
Cipher secureAlgorithm = null;
try 5 secureAlgorithm = Cipher'get?nst,nce("AES(CBC(!$CSL!,++ing"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!,++ingE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la D9: JCE 1797 -efinicin 'el algorit&o 'e seguri'a'
??
PFC ULPGC Aplicaciones Criptogrficas Java
Iniciali2acin 'el algorit&o 'e seguri'a'
(( '''
(( 4':' Se inici,li1, el ,lgoritmo con p,r2metros concretos si 7uer, neces,rio (est,
inici,li1,ci0n CO es opcion,l)
(( 4':'4' Se inici,li1, el ,lgoritmo
int mo+e = Cipher'ECC"%!B_*O6E;
i7 (p,r,meter G= null HH r,n+om == null) 5
try 5 secureAlgorithm'init(mo+e& ey& p,r,meter); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter G= null HH r,n+om G= null) 5
try 5 secureAlgorithm'init(mo+e& ey& p,r,meter& r,n+om); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter == null HH r,n+om == null) 5
try 5 secureAlgorithm'init(mo+e& ey); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter == null HH r,n+om G= null) 5
try 5 secureAlgorithm'init(mo+e& ey& r,n+om); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
A
(( '''
!a"la DG: JCE 17G7 Iniciali2acin 'el algorit&o 'e seguri'a'
*"tencin 'el par&etro #ue se =a.a po'i'o generar auto&tica&ente
(( '''
(( 4':'9' Se c,ptur,n los p,r2metros si se h,n gener,+o ,utom2tic,mente' Esto es neces,rio
si no se especi7ic,n los ,lgoritmos& e incluso es neces,rio ,un8ue se especi7i8ue puesto 8ue
el ,lgoritmo pue+e ignor,r el p,r2metro in+ic,+o por el usu,rio y gener,r otro +e 7orm,
,utom2tic,
try 5 ,lgorithm!,r,meters = secureAlgorithm'get!,r,meters(); A
c,tch (Bhrow,ble throw,ble) 5A
i7 (p,r,meter == null HH ,lgorithm!,r,meters G= null) 5
i7 (p,r,meterBype == null) 5
p,r,meterBype = Algorithm!,r,meterSpec'cl,ss;
A
try 5 p,r,meter = ,lgorithm!,r,meters'get!,r,meterSpec(p,r,meterBype); A
c,tch (?n/,li+!,r,meterSpecE3ception e) 5 e'printSt,cBr,ce(); return; A
A
(( '''
!a"la DI: JCE 17I7 *"tencin 'el par&etro #ue se =a.a po'i'o generar auto&tica&ente
?@
PFC ULPGC Aplicaciones Criptogrficas Java
Creacin 'el o"%eto seguro
(( '''
(( 4';' Se ,segur, el objeto y se gu,r+, en ,lg<n lug,r
Se,le+Object secureObject = null;
try 5 secureObject = new Se,le+Object(object& secureAlgorithm); A
c,tch (?lleg,lBlocSi1eE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?OE3ception e) 5 e'printSt,cBr,ce(); return; A
s,/eObject(secureObject);
(( '''
!a"la EJ: JCE 171J7 Creacin 'el o"%eto seguro
2 Almacenar par)metros cripto!r)ficos para un uso posterior
!ra'uccin 'e la clave
(( '''
(( 9' Se gu,r+,n los p,r2metros p,r, su posterior uso& y, se, p,r, gener,r nue/os objetos
seguros u obtener objetos ,segur,+os (objetos inseguros) 8ue es lo m2s h,bitu,l
(( 9'4' Se tr,+ucen los p,r2metros , su /ersi0n persistente
(( 9'4'4' Se tr,+uce l, cl,/e , su /ersi0n persistente' En este c,so es sencillo' !ero en
otr,s oc,siones es +istinto y en otr,s es neces,rio conocer el ,lgoritmo +e tr,+ucci0n
+i7icult,n+o el proceso mucho m2s ,l no ser homogDneo y, 8ue t,mbiDn se utili1, p,r,
tr,+ucciones un ,lgoritmo +e tipo Secret$ey.,ctory t,l y como se /e en los coment,rios
siguientes'
(( 9'4'4'4' Est, es l, 7orm, b2sic, suministr,+,' Sin emb,rgo& p,r, los p,r2metros se
proporcion,n mec,nismos m2s ,/,n1,+os ,l permitir 7orm,tos +e co+i7ic,ci0n pero son m2s
complic,+os
enco+e+$ey = ey'getEnco+e+();
(( '''
!a"la E1: JCE /717 !ra'uccin 'e la clave
?D
PFC ULPGC Aplicaciones Criptogrficas Java
!ra'uccin 'el par&etro
(( '''
(( 9'4'9' Se tr,+uce el p,r2metro , su /ersi0n persistente' En este c,so es sencillo pero no
es m2s 8ue l, tr,+ucci0n m,nu,l +e un c,so p,rticul,r' En gener,l se necesit, m,nej,r un
,lgoritmo +el tipo Algorithm!,r,meters +i7icult,n+o mucho m2s el proceso t,l y como se
muestr, , continu,ci0n' En tot,l se muestr, l, 7orm, m,nu,l pero p,rticul,r y l, 7orm,
",utom2tic," gener,l' Obser/,n+o en est, <ltim, 8ue se utili1, un nombre +istinto p,r, el
,lgoritmo +e tr,+ucci0n 8ue p,r, el ,lgoritmo +e protecci0n(+esprotecci0n ,un8ue se,n nombres
"sin0nimos"(,li,s o e8ui/,lentes
(( 9'4'9'4' .orm, m,nu,l pero p,rticul,r +e tr,+ucir este p,r2metro
i7 (p,r,meter inst,nceo7 ?/!,r,meterSpec) 5
?/!,r,meterSpec i/ = (?/!,r,meterSpec)p,r,meter;
enco+e+!,r,meter = i/'get?M();
A
(( '''
!a"la E/: JCE /7/7 !ra'uccin 'el par&etro
*tra tra'uccin 'el par&etro
(( '''
(( 9'4'9'9' .orm, ",utom2tic," pero gener,l +e tr,+ucir cu,l8uier p,r2metro
Algorithm!,r,meters p,r,meterBr,nsl,tor = null;
try 5 p,r,meterBr,nsl,tor = Algorithm!,r,meters'get?nst,nce(""?-C6AEN"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
try 5 p,r,meterBr,nsl,tor'init(p,r,meter); A
c,tch (?n/,li+!,r,meterSpecE3ception e) 5 e'printSt,cBr,ce(); return; A
try 5 enco+e+!,r,meter = p,r,meterBr,nsl,tor'getEnco+e+(); A
c,tch (?OE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la E@: JCE /7@7 *tra tra'uccin 'el par&etro
Al&acena&iento 'e los par&etros
(( '''
(( 9'9' Se gu,r+,n los p,r2metros
s,/e$ey(enco+e+$ey);
s,/e!,r,meter(enco+e+!,r,meter);
(( '''
!a"la ED: JCE /7D7 Al&acena&iento 'e los par&etros
@$
PFC ULPGC Aplicaciones Criptogrficas Java
3 -btener el ob1eto ase!urao utili*ano los nuevos par)metros
cripto!r)ficos
Carga 'e los par&etros
(( '''
(( ''' tiempo m2s t,r+e en ,lg<n otro lug,r +el c0+igo '''
(( :' Se +ese, recuper,r el objeto +e 7orm, segur,
(( :'4' C,rg,mos los +,tos 8ue se necesit,n
enco+e+$ey = lo,+$ey();
enco+e+!,r,meter = lo,+!,r,meter();
(( '''
!a"la EE: JCE @717 Carga 'e los par&etros
-efinicin 'el algorit&o 'e seguri'a'
(( '''
(( :'9' ?nici,li1,mos el ,lgoritmo con los p,r2metros ,propi,+os p,r, po+er obtener el
objeto ,segur,+o
(( :'9'4' Se seleccion, el ,lgoritmo p,r, +esproteger el objeto seguro
try 5 secureAlgorithm = Cipher'get?nst,nce("AES(CBC(!$CSL!,++ing"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!,++ingE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la EF: JCE @7/7 -efinicin 'el algorit&o 'e seguri'a'
@A
PFC ULPGC Aplicaciones Criptogrficas Java
!ra'uccin 'e los par&etros a la for&a a'ecua'a
(( '''
(( :'9'9' Se inici,li1, el ,lgoritmo p,r, +esprotecci0n
(( :'9'9'4' Es neces,rio con/ertir los p,r2metros en su 7orm, ,+ecu,+,
(( :'9'9'4'4' Se recon/ierte l, cl,/e , l, 7orm, ,+ecu,+,
ey = new Secret$eySpec(enco+e+$ey& "AES");
(( :'9'9'4'9' Se recon/ierte el p,r2metro , l, 7orm, ,+ecu,+,
p,r,meterBype = ?/!,r,meterSpec'cl,ss; p,r,meterBr,nsl,tor = null;
try 5 p,r,meterBr,nsl,tor = Algorithm!,r,meters'get?nst,nce(""?-C6AEN"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
try 5 p,r,meterBr,nsl,tor'init(enco+e+!,r,meter); A
c,tch (?OE3ception e) 5 e'printSt,cBr,ce(); return; A
try 5 p,r,meter = p,r,meterBr,nsl,tor'get!,r,meterSpec(p,r,meterBype); A
c,tch (?n/,li+!,r,meterSpecE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la E9: JCE @7@7 !ra'uccin 'e los par&etros a la for&a a'ecua'a
Iniciali2acin 'el algorit&o 'e seguri'a' para 'esproteccin
(( '''
(( :'9'9'9' Se inici,li1, el ,lgoritmo p,r, +esprotecci0n
mo+e = Cipher'6EC"%!B_*O6E;
i7 (p,r,meter G= null HH r,n+om == null) 5
try 5 secureAlgorithm'init(mo+e& ey& p,r,meter); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter G= null HH r,n+om G= null) 5
try 5 secureAlgorithm'init(mo+e& ey& p,r,meter& r,n+om); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter == null HH r,n+om == null) 5
try 5 secureAlgorithm'init(mo+e& ey); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter == null HH r,n+om G= null) 5
try 5 secureAlgorithm'init(mo+e& ey& r,n+om); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
A
(( '''
!a"la EG: JCE @7D7 Iniciali2acin 'el algorit&o 'e seguri'a' para 'esproteccin
@2
PFC ULPGC Aplicaciones Criptogrficas Java
*"tencin 'el o"%eto asegura'o
(( '''
(( :':' Se obtiene el objeto ,segur,+o , p,rtir +e su /ersi0n en 7orm, +e objeto seguro
try 5
secureObject = (Se,le+Object)lo,+Object();
object = (String)secureObject'getObject(secureAlgorithm); A
c,tch (?lleg,lBlocSi1eE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (B,+!,++ingE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?OE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (Cl,ssCot.oun+E3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la EI: JCE @7E7 *"tencin 'el o"%eto asegura'o
4 Ase!urar otro ob1eto reutili*ano par)metros cripto!r)ficos ya
e2istentes
-efinicin 'el o"%eto . carga 'e los par&etros
(( '''
(( ''' tiempo m2s t,r+e en ,lg<n otro lug,r +el c0+igo '''
(( ;' Se +ese, ,segur,r un nue/o objeto con l, mism, cl,/e y p,r2metro en un inst,nte +e
tiempo posterior
(( ;'4' Se +e7ine el nue/o objeto
String otherObject = "other object";
(( ;'9' Se c,rg,n los p,r2metros 8ue se necesit,n
enco+e+$ey = lo,+$ey();
enco+e+!,r,meter = lo,+!,r,meter();
(( '''
!a"la FJ: JCE D717 -efinicin 'el o"%eto . carga 'e los par&etros
!ra'uccin 'e la clave a su for&a a'ecua'a
(( '''
(( ;':' Se inici,li1, el ,lgoritmo
(( ;':'4' Se recon/ierten los p,r2metros , l, 7orm, ,+ecu,+,
(( ;':'4'4' Se recon/ierte l, cl,/e , l, 7orm, ,+ecu,+,
ey = new Secret$eySpec(enco+e+$ey& "AES");
(( '''
!a"la F1: JCE D7/7 !ra'uccin 'e la clave a su for&a a'ecua'a
@3
PFC ULPGC Aplicaciones Criptogrficas Java
!ra'uccin 'el par&etro a su for&a a'ecua'a
(( '''
(( ;':'4'9' Se recon/ierte el p,r2metro , l, 7orm, ,+ecu,+,
p,r,meterBype = ?/!,r,meterSpec'cl,ss; p,r,meterBr,nsl,tor = null;
try 5 p,r,meterBr,nsl,tor = Algorithm!,r,meters'get?nst,nce(""?-C6AEN"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
try 5 p,r,meterBr,nsl,tor'init(enco+e+!,r,meter); A
c,tch (?OE3ception e) 5 e'printSt,cBr,ce(); return; A
try 5 p,r,meter = p,r,meterBr,nsl,tor'get!,r,meterSpec(p,r,meterBype); A
c,tch (?n/,li+!,r,meterSpecE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la F/: JCE D7@7 !ra'uccin 'el par&etro a su for&a a'ecua'a
-efinicin 'el algorit&o 'e seguri'a'
(( '''
(( ;':'9' Se seleccion, el ,lgoritmo +e seguri+,+
secureAlgorithm = null;
try 5 secureAlgorithm = Cipher'get?nst,nce("AES(CBC(!$CSL!,++ing"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!,++ingE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la F@: JCE D7D7 -efinicin 'el algorit&o 'e seguri'a'
@4
PFC ULPGC Aplicaciones Criptogrficas Java
Iniciali2acin 'el algorit&o 'e seguri'a' para proteccin
(( '''
(( ;':':' Se inici,li1, el ,lgoritmo con p,r2metros concretos (est, inici,li1,ci0n CO es
opcion,l)
(( ;':':'4' Se inici,li1, el ,lgoritmo
mo+e = Cipher'ECC"%!B_*O6E;
i7 (p,r,meter G= null HH r,n+om == null) 5
try 5 secureAlgorithm'init(mo+e& ey& p,r,meter); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter G= null HH r,n+om G= null) 5
try 5 secureAlgorithm'init(mo+e& ey& p,r,meter& r,n+om); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter == null HH r,n+om == null) 5
try 5 secureAlgorithm'init(mo+e& ey); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter == null HH r,n+om G= null) 5
try 5 secureAlgorithm'init(mo+e& ey& r,n+om); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
A
(( '''
!a"la FD: JCE D7E7 Iniciali2acin 'el algorit&o 'e seguri'a' para proteccin
*"tencin 'el par&etro si fuera genera'o auto&tica&ente
(( '''
(( ;':':'9' Se c,ptur,n los p,r2metros si se h,n gener,+o ,utom2tic,mente' Esto es neces,rio
si no se especi7ic,n los ,lgoritmos& e incluso es neces,rio ,un8ue se especi7i8ue puesto 8ue
el ,lgoritmo pue+e ignor,r el p,r2metro in+ic,+o por el usu,rio y gener,r otro +e 7orm,
,utom2tic,
try 5 ,lgorithm!,r,meters = secureAlgorithm'get!,r,meters(); A
c,tch (Bhrow,ble throw,ble) 5A
i7 (p,r,meter == null HH ,lgorithm!,r,meters G= null) 5
i7 (p,r,meterBype == null) 5 p,r,meterBype = Algorithm!,r,meterSpec'cl,ss; A
try 5 p,r,meter = ,lgorithm!,r,meters'get!,r,meterSpec(p,r,meterBype); A
c,tch (?n/,li+!,r,meterSpecE3ception e) 5 e'printSt,cBr,ce(); return; A
A
(( '''
!a"la FE: JCE D7F7 *"tencin 'el par&etro si fuera genera'o auto&tica&ente
@-
PFC ULPGC Aplicaciones Criptogrficas Java
Creacin 'el o"%eto seguro
(( '''
(( ;';' Se ,segur, el nue/o objeto y se gu,r+, en ,lg<n lug,r
Se,le+Object otherSecureObject = null;
try 5 otherSecureObject = new Se,le+Object(otherObject& secureAlgorithm); A
c,tch (?lleg,lBlocSi1eE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?OE3ception e) 5 e'printSt,cBr,ce(); return; A
s,/eObject(otherSecureObject);
(( '''
!a"la FF: JCE D797 Creacin 'el o"%eto seguro
5 -btener el ob1eto ase!urao reutili*ano par)metros cripto!r)ficos ya
e2istentes
Carga 'e los par&etros
(( '''
(( ''' tiempo m2s t,r+e en ,lg<n otro lug,r +el c0+igo '''
(( @' Se +ese, recuper,r el nue/o objeto ,segur,+o
(( @'4' C,rg,mos los +,tos 8ue se necesit,n
enco+e+$ey = lo,+$ey();
enco+e+!,r,meter = lo,+!,r,meter();
(( '''
!a"la F9: JCE E717 Carga 'e los par&etros
-efinicin 'el algorit&o 'e seguri'a'
(( '''
(( @'9' ?nici,li1,mos el ,lgoritmo con los p,r2metros ,propi,+os p,r, po+er obtener el
objeto ,segur,+o
(( @'9'4' Se seleccion, el ,lgoritmo p,r, +esproteger el objeto seguro
try 5 secureAlgorithm = Cipher'get?nst,nce("AES(CBC(!$CSL!,++ing"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!,++ingE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la FG: JCE E7/7 -efinicin 'el algorit&o 'e seguri'a'
@%
PFC ULPGC Aplicaciones Criptogrficas Java
!ra'uccin 'e la clave a su for&a a'ecua'a
(( '''
(( @'9'9' Se inici,li1, el ,lgoritmo p,r, +esprotecci0n
(( @'9'9'4' Es neces,rio con/ertir los p,r2metros en su 7orm, ,+ecu,+,
(( @'9'9'4'4' Se recon/ierte l, cl,/e , l, 7orm, ,+ecu,+,
ey = new Secret$eySpec(enco+e+$ey& "AES");
(( '''
!a"la FI: JCE E7@7 !ra'uccin 'e la clave a su for&a a'ecua'a
!ra'uccin 'el par&etro a su for&a a'ecua'a
(( '''
(( @'9'9'4'9' Se recon/ierte el p,r2metro , l, 7orm, ,+ecu,+,
p,r,meterBype = ?/!,r,meterSpec'cl,ss; p,r,meterBr,nsl,tor = null;
try 5 p,r,meterBr,nsl,tor = Algorithm!,r,meters'get?nst,nce(""?-C6AEN"& pro/i+erC,me); A
c,tch (CoSuchAlgorithmE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (CoSuch!ro/i+erE3ception e) 5 e'printSt,cBr,ce(); return; A
try 5 p,r,meterBr,nsl,tor'init(enco+e+!,r,meter); A
c,tch (?OE3ception e) 5 e'printSt,cBr,ce(); return; A
try 5 p,r,meter = p,r,meterBr,nsl,tor'get!,r,meterSpec(p,r,meterBype); A
c,tch (?n/,li+!,r,meterSpecE3ception e) 5 e'printSt,cBr,ce(); return; A
(( '''
!a"la 9J: JCE E7D7 !ra'uccin 'el par&etro a su for&a a'ecua'a
@?
PFC ULPGC Aplicaciones Criptogrficas Java
Iniciali2acin 'el algorit&o 'e seguri'a' para 'esproteccin
(( '''
(( @'9'9'9' Se inici,li1, el ,lgoritmo p,r, +esprotecci0n
mo+e = Cipher'6EC"%!B_*O6E;
i7 (p,r,meter G= null HH r,n+om == null) 5
try 5 secureAlgorithm'init(mo+e& ey& p,r,meter); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter G= null HH r,n+om G= null) 5
try 5 secureAlgorithm'init(mo+e& ey& p,r,meter& r,n+om); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (?n/,li+Algorithm!,r,meterE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter == null HH r,n+om == null) 5
try 5 secureAlgorithm'init(mo+e& ey); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
A else i7 (p,r,meter == null HH r,n+om G= null) 5
try 5 secureAlgorithm'init(mo+e& ey& r,n+om); A
c,tch (?n/,li+$eyE3ception e) 5 e'printSt,cBr,ce(); return; A
A
(( '''
!a"la 91: JCE E7E7 Iniciali2acin 'el algorit&o 'e seguri'a' para 'esproteccin
*"tencin 'el o"%eto asegura'o
(( '''
(( @':' Se obtiene el objeto ,segur,+o , p,rtir +e su /ersi0n en 7orm, +e objeto seguro
try 5
otherSecureObject = (Se,le+Object)lo,+Object();
object = (String)otherSecureObject'getObject(secureAlgorithm); A
c,tch (?lleg,lBlocSi1eE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (B,+!,++ingE3ception e) 5e'printSt,cBr,ce(); return; A
c,tch (?OE3ception e) 5 e'printSt,cBr,ce(); return; A
c,tch (Cl,ssCot.oun+E3ception e) 5 e'printSt,cBr,ce(); return; A
A
(( '''
!a"la 9/: JCE E7F7 *"tencin 'el o"%eto asegura'o
&ras o5ser#ar el proceso anerior3 se #e claramene Bue JC/( simpli"ica enormemene el uso
)e la cripogra"a ya Bue se o5iene el mismo resula)o pero con menos lneas )e c6)igo3 menos
conocimieno y a)em!s )e una "orma m!s "!cil y sencilla2 Por consiguiene3 JC/ complica el uso )e
la cripogra"a al o5ligar al usuario a escri5ir m!s lneas )e c6)igo y ener m!s conocimieno para
po)er usar JC/2
@@
PFC ULPGC Aplicaciones Criptogrficas Java
, Conclusiones
/n resumi)as cuenas3 las conclusiones m!s imporanes so5re el proyeco en s son los
principales aspecos #alora5les posii#amene y am5in los punos negai#os2
Comencemos por algunos punos Bue po)ran consi)erarse como negai#os2 Zsos son los
siguienes'
A2 /l iempo emplea)o en el proyeco po)ra consi)erarse eHcesi#o2
22 No 0a5er )esarrolla)o eHacamene lo Bue esa5a pre#iso )es)e un principio2
4os principales aspecos #alora5les posii#amene son'
A2 9a5er )esarrolla)o un ra5a:o no#e)oso en lugar )e lo Bue se ena pre#iso2
22 /l uso A$$U )e 0erramienas Cpen Source o (ree=are2
32 9a5er aplica)o el conocimieno )e #arias !reas' *ngeniera )el so"=are3 ,r!"icos3
Programaci6n3 C"im!ica3 Programaci6n =e53 ec222
42 /l en"oBue oriena)o a o5:eos )e la cripogra"a2
-2 Pu5licaci6n )el proyeco en una p!gina =e5 O0p'>>:ce"2source"orge2neP2
%2 /l )iseFo )e im!genes propias originales2
?2 9a5er si)o capaz )e ra5a:ar en el proyeco sin prisas y sin pausas )urane algo m!s )e
un aFo2
@2 4as propuesas realiza)as so5re posi5les "uuros proyecos "in )e carrera2
D2 4a secci6n )e pregunas "recuenes como ayu)a a)icional2
@D
PFC ULPGC Aplicaciones Criptogrficas Java
D$
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
?#1uturos Proyectos
/se capulo )ealla los posi5les proyecos )e "in )e carrera "ueremene relaciona)os con ese
proyeco2 4a )escripci6n )e esos "uuros proyecos se 0a realiza)o me)iane el "ormao eHigi)o a
una propuesa )e proyeco )e "in )e carrera por la +ni#ersi)a) )e 4as Palmas )e ,ran Canaria3 con
el o5:ei#o )e "aciliar la elecci6n )e esos proyecos por alumnos y uores y )ar as coninui)a) a
ese proyeco2
4os nue#os proyecos propuesos son'
A2 Ampliaciones )e JC/( ' Consise en realizar me:oras signi"icai#as al proyeco
IAplicaciones Cripogr!"icas Ja#aJ2
22 Prue5as so5re algorimos JC/( ' ,aranizar Bue el mayor nmero )e algorimos
cripogr!"icos )e o)os los pro#ee)ores JC/( "uncionan correcamene2 Para ello es
necesario realizar prue5as )e implemenaci6n me)iane #ecores )e )aos y corregir las
con"iguraciones Bue sean necesarias2
32 Ceri"ica)os 1igiales con JC/( ' /se proyeco consise en aFa)ir "uncionali)a)es
so5re el campo )e la gesi6n )e ceri"ica)os )igiales al proyeco IAplicaciones
Cripogr!"icas Ja#aJ2
42 Arc0i#os seguros con JC/( ' Programa Bue consruye "ic0eros seguros uilizan)o el
proyeco IAplicaciones Cripogr!"icas Ja#aJ2
-2 Pro#ee)or Cripogr!"ico JC/( ' Se raa )e )iseFar un pro#ee)or )e algorimos
cripogr!"icos no implemena)os 0asa la "ec0a por ningn pro#ee)or conoci)o en Ja#a
uilizan)o para ello el proyeco IAplicaciones Cripogr!"icas Ja#aJ2
%2 Almacn )e o5:eos seguros con JC/( ' Consise en consruir una li5rera Bue permia
almacenar o5:eos )e "orma segura en almacenes persisenes y poseriormene recuperarlos
uilizan)o para ello el proyeco IAplicaciones Cripogr!"icas Ja#aJ2
?2 Meaimplemenaci6n )e IAplicaciones Cripogr!"icas Ja#aJ ' Se raa )e #ol#er a
implemenar el c6)igo Ja#a )el proyeco IAplicaciones Cripogr!"icas Ja#aJ pero uilizan)o
0erramienas )e planillas )e c6)igo2
Para mayor in"ormaci6n pue)e consular la p!gina =e5 )el proyeco
0p'>>:ce"2source"orge2ne2
DA
PFC ULPGC Aplicaciones Criptogrficas Java
1 Ampliaciones de JC'-
.tulo Ampliaciones )e JC/(
.utor [[[
2escri%ci!n
<eneral
/n la acuali)a)3 la seguri)a) es imporansima2 Sin ser#icios )e
seguri)a)3 el )esarrollo )e cieros sisemas se #era "rena)oW enre los Bue
)esacan' el comercio elecr6nico y las comunicaciones seguras a ra#s
)e la re)2 Por lo Bue la cripogra"a se #uel#e in)ispensa5le
&b'eti(os
Realizar las me:oras siguienes al proyeco IAplicaciones Cripogr!"icas
Ja#aJ' "lu:os )e enra)a>sali)a3 proocolos )e inercam5io )e cla#es3
gesi6n )e mo)os )e operaci6n y esBuemas )e relleno3 algorimos
compuesos y a)ici6n )e algorimos )e ese ipo a o)os los pro#ee)ores
JC/( eHisenes
Metodologa
/n un principio se uilizar! un en"oBue cl!sico )e )esarrollo pero Bue
po)r! a)aparse a la nauraleza )el proyeco y )e las personas Bue
ra5a:an en el mismo
Recursos
necesarios
PC3 *nerne3 4inuH3 Ja#a3 Proyeco IAplicaciones Cripogr!"icas Ja#aJ
O0p'>>:ce"2source"orge2neP3 /clipse *1/3 CpenC""ice y CamSu)io
Peril del
alumno
Solura con Ja#a3 +M4 y ener conocimienos )e Cripogra"a y 1iseFo
)e so"=are
,ta%as
/apa A Preliminares' Analizar el proyeco IAplicaciones Cripogr!"icas
Ja#aJ
/apa 2 1esarrollo' Me:orar el proyeco IAplicaciones Cripogr!"icas
Ja#aJ aFa)in)ole las me:oras in)ica)as en la secci6n IC5:ei#osJ
/apa 3 Presenaci6n' /la5orar y ensayar la presenaci6n con el o5:ei#o
)e o5ener el m!Himo iners )el p5lico3 resalan)o por encima )e o)o
los resula)os y conclusiones m!s imporanes )el proyeco2 Pu5licar el
proyeco en 0ps>>source"orge2ne
Planiicaci!n
tem%oral
estimada
/apas 1uraci6n esima)a
/apa A Preliminares @$ 0oras
/apa 2 1esarrollo A%$ 0oras
/apa 3 Presenaci6n %$ 0oras
1uraci6n oal 3$$ 0oras
!a"la 9@: Futuro Pro.ecto: A&pliaciones 'e JCEF
D2
PFC ULPGC Aplicaciones Criptogrficas Java
2 .rue)as so)re algoritmos JC'-
.tulo Prue5as so5re algorimos JC/(
.utor [[[
2escri%ci!n
<eneral
/n la acuali)a)3 la seguri)a) es imporansima2 Sin ser#icios )e
seguri)a)3 el )esarrollo )e cieros sisemas se #era "rena)oW enre los Bue
)esacan' el comercio elecr6nico y las comunicaciones seguras a ra#s
)e la re)2 Por lo Bue la cripogra"a se #uel#e in)ispensa5le
&b'eti(os
,aranizar Bue el mayor nmero )e algorimos cripogr!"icos )e o)os los
pro#ee)ores JC/( "uncionan correcamene2 Para ello es necesario
realizar prue5as )e implemenaci6n me)iane #ecores )e )aos y corregir
las con"iguraciones Bue sean necesarias2
Metodologa
/n un principio se uilizar! un en"oBue cl!sico )e )esarrollo pero Bue
po)r! a)aparse a la nauraleza )el proyeco y )e las personas Bue
ra5a:an en el mismo
Recursos
necesarios
PC3 *nerne3 4inuH3 Ja#a3 Proyeco IAplicaciones Cripogr!"icas Ja#aJ
O0p'>>:ce"2source"orge2neP3 /clipse *1/3 CpenC""ice y CamSu)io
Peril del
alumno
Solura con Ja#a3 +M4 y ener conocimienos )e Cripogra"a y 1iseFo
)e so"=are
,ta%as
/apa A Preliminares' Analizar el proyeco IAplicaciones Cripogr!"icas
Ja#aJ y recopilar el mayor nmero )e #ecores )e )aos para las prue5as
)e implemenaci6n
/apa 2 1esarrollo' Realizar el con:uno )e prue5as y correcciones a los
algorimos
/apa 3 Presenaci6n' /la5orar y ensayar la presenaci6n con el o5:ei#o
)e o5ener el m!Himo iners )el p5lico3 resalan)o por encima )e o)o
los resula)os y conclusiones m!s imporanes )el proyeco2 Pu5licar el
proyeco en 0ps>>source"orge2ne
Planiicaci!n
tem%oral
estimada
/apas 1uraci6n esima)a
/apa A Preliminares @$ 0oras
/apa 2 1esarrollo A%$ 0oras
/apa 3 Presenaci6n %$ 0oras
1uraci6n oal 3$$ 0oras
!a"la 9D: Futuro Pro.ecto: Prue"as so"re algorit&os JCEF
D3
PFC ULPGC Aplicaciones Criptogrficas Java
3 Certificados #igitales con JC'-
.tulo Ceri"ica)os 1igiales con JC/(
.utor [[[
2escri%ci!n
<eneral
/n la acuali)a)3 la seguri)a) es imporansima2 Sin ser#icios )e
seguri)a)3 el )esarrollo )e cieros sisemas se #era "rena)oW enre los Bue
)esacan' el comercio elecr6nico y las comunicaciones seguras a ra#s
)e la re)2 Por lo Bue la cripogra"a se #uel#e in)ispensa5le
&b'eti(os
Realizar me:oras al proyeco IAplicaciones Cripogr!"icas Ja#aJ2 Me:oras
ales como la gesi6n )e ceri"ica)os )igiales3 generaci6n auom!ica )e
ceri"ica)os3 lisas )e anulaci6n3 aueni"icaci6n me)iane ceri"ica)os3
ca)enas )e ceri"icaci6n3 222
Metodologa
/n un principio se uilizar! un en"oBue cl!sico )e )esarrollo pero Bue
po)r! a)aparse a la nauraleza )el proyeco y )e las personas Bue
ra5a:an en el mismo
Recursos
necesarios
PC3 *nerne3 4inuH3 Ja#a3 Proyeco IAplicaciones Cripogr!"icas Ja#aJ
O0p'>>:ce"2source"orge2neP3 /clipse *1/3 CpenC""ice y CamSu)io
Peril del
alumno
Solura con Ja#a3 +M4 y ener conocimienos )e Cripogra"a y 1iseFo
)e so"=are
,ta%as
/apa A Preliminares' Analizar el proyeco IAplicaciones Cripogr!"icas
Ja#aJ3 la gesi6n )e ceri"ica)os y las 0erramienas )isponi5les para ello
/apa 2 1esarrollo' Me:orar el proyeco IAplicaciones Cripogr!"icas
Ja#aJ aFa)in)ole gesi6n )e ceri"ica)os )igiales
/apa 3 Presenaci6n' /la5orar y ensayar la presenaci6n con el o5:ei#o
)e o5ener el m!Himo iners )el p5lico3 resalan)o por encima )e o)o
los resula)os y conclusiones m!s imporanes )el proyeco2 Pu5licar el
proyeco en 0ps>>source"orge2ne
Planiicaci!n
tem%oral
estimada
/apas 1uraci6n esima)a
/apa A Preliminares @$ 0oras
/apa 2 1esarrollo A%$ 0oras
/apa 3 Presenaci6n %$ 0oras
1uraci6n oal 3$$ 0oras
!a"la 9E: Futuro Pro.ecto: Certifica'os -igitales con JCEF
D4
PFC ULPGC Aplicaciones Criptogrficas Java
4 Arc(ivos Seguros con JC'-
.tulo Arc0i#os Seguros con JC/(
.utor [[[
2escri%ci!n
<eneral
/n la acuali)a)3 la seguri)a) es imporansima2 Sin ser#icios )e
seguri)a)3 el )esarrollo )e cieros sisemas se #era "rena)oW enre los
Bue )esacan' el comercio elecr6nico y las comunicaciones seguras a
ra#s )e la re)2 Por lo Bue la cripogra"a se #uel#e in)ispensa5le
&b'eti(os
1esarrollar un programa para generar arc0i#os seguros uilizan)o
algorimos cripogr!"icos y Bue a)em!s )e5e ener la posi5ili)a) )e
aFa)ir nue#os algorimos en iempo )e e:ecuci6n2 1e5e ser una seria
alernai#a a I/ncryp /asyJ O0p'>>===25also"2comP3 I/asyCrypoJ
O0p'>>===20an)y5is2com>P3 I/ncrypCnClickJ
O0p'>>===225rig0sparks2comP y IAHCrypJ
O0p'>>aHcryp2source"orge2neP
Metodologa /n un principio se uilizar! un en"oBue cl!sico )e )esarrollo pero Bue
po)r! a)aparse a la nauraleza )el proyeco y )e las personas Bue
ra5a:an en el mismo
Recursos
necesarios
PC3 *nerne3 4inuH3 Ja#a3 Proyeco IAplicaciones Cripogr!"icas Ja#aJ
O0p'>>:ce"2source"orge2neP3 /clipse *1/3 CpenC""ice3 CamSu)io y un
)iseFa)or )e ,+*s como Eisual /)ior O0p'>>==2eclipse2org>#ep>P2
Peril del
alumno
Solura con Ja#a3 +M4 y ener conocimienos )e Cripogra"a y 1iseFo
)e so"=are
,ta%as
/apa A Preliminares' Analizar el proyeco IAplicaciones
Cripogr!"icas Ja#aJ y los programas I/ncryp /asyJ3 I/asyCrypoJ3
I/ncrypCnClickJ y IAHCrypJ
/apa 2 1esarrollo' Consruir la aplicaci6n IArc0i#os Seguros con
JC/(J
/apa 3 Presenaci6n' /la5orar y ensayar la presenaci6n con el
o5:ei#o )e o5ener el m!Himo iners )el p5lico3 resalan)o por
encima )e o)o3 los resula)os y conclusiones m!s imporanes )el
proyeco2 Pu5licar el proyeco en 0ps>>source"orge2ne
Planiicaci!n
tem%oral
estimada
/apas 1uraci6n esima)a
/apa A Preliminares @$ 0oras
/apa 2 1esarrollo A%$ 0oras
/apa 3 Presenaci6n %$ 0oras
1uraci6n oal 3$$ 0oras
!a"la 9F: Futuro Pro.ecto: Arc=ivos 5eguros con JCEF
D-
PFC ULPGC Aplicaciones Criptogrficas Java
& .roveedor Criptogrfico JC'-
.tulo Pro#ee)or Cripogr!"ico JC/(
Autor [[[
2escri%ci!n
general
/n la acuali)a)3 la seguri)a) es imporansima2 Sin ser#icios )e
seguri)a)3 el )esarrollo )e cieros sisemas se #era "rena)oW enre los
Bue )esacan' el comercio elecr6nico y las comunicaciones seguras a
ra#s )e la re)2 Por lo Bue la cripogra"a se #uel#e in)ispensa5le
&b'eti(os 1iseFar un pro#ee)or )e algorimos cripogr!"icos JC/( oalmene
nue#o3 es )ecir3 algorimos cripogr!"icos no implemena)os 0asa
a0ora en Ja#a
Metodologa
/n un principio se uilizar! un en"oBue cl!sico )e )esarrollo pero Bue
po)r! a)aparse a la nauraleza )el proyeco y )e las personas Bue
ra5a:an en el mismo
Recursos
necesarios
PC3 *nerne3 4inuH3 Ja#a3 Proyeco IAplicaciones Cripogr!"icas Ja#aJ
O0p'>>:ce"2source"orge2neP3 /clipse *1/3 CpenC""ice y CamSu)io
Peril del
alumno
Solura con Ja#a3 +M4 y ener conocimienos )e Cripogra"a y 1iseFo
)e so"=are
,ta%as
/apa A Preliminares' Analizar el proyeco IAplicaciones
Cripogr!"icas Ja#aJ y sus pro#ee)ores JC/(
/apa 2 1esarrollo' 1esarrollar un pro#ee)or JC/( Bue suminisre
algorimos acualmene no )isponi5les pro5an)o el correco
"uncionamieno )e ca)a uno )e ellos2 /s posi5le a0orrarse las
implemenaciones )es)e cero3 se po)ra a)apar implemenaciones ya
eHisenes en oros lengua:es2 +na "uene )e in"ormaci6n sera
CrypoRR O0p'>>===2eskimo2com>f=ei)ai>crypli520mlP
/apa 3 Presenaci6n' /la5orar y ensayar la presenaci6n con el
o5:ei#o )e o5ener el m!Himo iners )el p5lico3 resalan)o por
encima )e o)o3 los resula)os y conclusiones m!s imporanes )el
proyeco2 Pu5licar el proyeco en 0ps>>source"orge2ne
Planiicaci!n
tem%oral
estimada
/apas 1uraci6n esima)a
/apa A Preliminares -$ 0oras
/apa 2 1esarrollo 2A$ 0oras
/apa 3 Presenaci6n %$ 0oras
1uraci6n oal 3$$ 0oras
!a"la 99: Futuro Pro.ecto: Provee'or Criptogrfico JCEF
D%
PFC ULPGC Aplicaciones Criptogrficas Java
* Almac"n de o)$etos seguros con JC'-
.tulo Almacn )e o5:eos seguros con JC/(
.utor [[[
2escri%ci!n
general
/n la acuali)a)3 la seguri)a) es imporansima2 Sin ser#icios )e
seguri)a)3 el )esarrollo )e cieros sisemas se #era "rena)oW enre los
Bue )esacan' el comercio elecr6nico y las comunicaciones seguras a
ra#s )e la re)2 Por lo Bue la cripogra"a se #uel#e in)ispensa5le
&b'eti(os
Me:orar el proyeco IAplicaciones Cripogr!"icas Ja#aJ
O0p'>>:ce"2source"orge2neP3 aFa)in)ole una soluci6n m!s amplia Bue
el MeySore )e JC/3 es )ecir3 Bue permie almacenar cla#es y cualBuier
oro ipo )e o5:eos2 A)em!s los almacenes se )e5en po)er gesionar
)irecamene )es)e su almacenamieno en "ic0eros empaBuea)os
como por e:emplo )el ipo JAR
Metodologa
/n un principio se uilizar! un en"oBue cl!sico )e )esarrollo pero Bue
po)r! a)aparse a la nauraleza )el proyeco y )e las personas Bue
ra5a:an en el mismo
Recursos
necesarios
PC3 *nerne3 4inuH3 Ja#a3 Proyeco IAplicaciones Cripogr!"icas Ja#aJ3
/clipse *1/3 CpenC""ice3 CamSu)io y 0p'>>:ce"2source"orge2ne
Peril del
alumno
Solura con Ja#a3 +M4 y ener conocimienos )e Cripogra"a y 1iseFo
)e so"=are
,ta%as
/apa A Preliminares' Consisir! en analizar la "uncionali)a) )e
MeySore )e la especi"icaci6n cripogr!"ica Ja#a' JCA y JC/2
/apa 2 1esarrollo' 1esarrollar el almacn )e o5:eos seguros3
permiien)o su persisencia y acceso )ireco en "ic0eros con "ormao
JAR2
/apa 3 Presenaci6n' /la5orar y ensayar la presenaci6n con el
o5:ei#o )e o5ener el m!Himo iners )el p5lico3 resalan)o por
encima )e o)o los resula)os y conclusiones m!s imporanes )el
proyeco2 Pu5licar el proyeco en 0ps>>source"orge2ne
Planiicaci!n
tem%oral
estimada
/apas 1uraci6n esima)a
/apa A Preliminares ?$ 0oras
/apa 2 1esarrollo A-$ 0oras
/apa 3 Presenaci6n %$ 0oras
1uraci6n oal 2@$ 0oras
!a"la 9G: Futuro Pro.ecto: Al&acKn 'e o"%etos seguros con JCEF
D?
PFC ULPGC Aplicaciones Criptogrficas Java
, Metaimplementaci/n de 0Aplicaciones Criptogrficas Java1
.tulo Meaimplemenaci6n )e IAplicaciones Cripogr!"icas Ja#aJ
.utor [[[
2escri%ci!n
<eneral
9oy )a el iempo es muy imporane3 y am5in lo es para el )esarrollo
y manenimieno )e so"=are2 Acualmene3 las planillas )e c6)igo son
unas 0erramienas eHcepcionales para )esarrollar y manener so"=are3
re)ucien)o consi)era5lemene el iempo emplea)o para ello2 Por lo
ano3 sera ineresane realizar la meaimplemenaci6n )el Proyeco
(in )e Carrera IAplicaciones Cripogr!"icas Ja#aJ uilizan)o )ic0as
0erramienas
&b'eti(os
*mplemenar el Proyeco (in )e Carrera IAplicaciones Cripogr!"icas
Ja#aJ me)iane 0erramienas )e planillas )e c6)igo
Metodologa
/n un principio se uilizar! un en"oBue cl!sico )e )esarrollo pero Bue
po)r! a)aparse a la nauraleza )el proyeco y )e las personas Bue
ra5a:an en el mismo
Recursos
necesarios
PC3 *nerne3 0erramienas )e planillas )e c6)igo3 4inuH3 CpenC""ice y
CamSu)io
Peril del
alumno
Solura con Ja#a3 4inuH3 CpenC""ice y 1iseFo )e so"=are
,ta%as
/apa A An!lisis' Kuscar3 seleccionar y apren)er a uilizar la
0erramiena para planillas )e c6)igo Ja#a m!s a)ecua)a2 +n 5uen
puno )e pari)a es el enlace I&emplae /nginesJ en 0p'>>===2:a#aG
source2ne>
/apa 2 1esarrollo' Se raa )e analizar 5re#emene la implemenaci6n
)el proyeco IAplicaciones Cripogr!"icas Ja#aJ y reimplemenarlo
uilizan)o para ello la 0erramiena para planillas )e c6)igo Ja#a
selecciona)a con aneriori)a)
/apa 3 Presenaci6n' /la5orar y ensayar la presenaci6n con el
o5:ei#o )e o5ener el m!Himo iners )el p5lico3 resalan)o por
encima )e o)o3 los resula)os y conclusiones m!s imporanes )el
proyeco2 Pu5licar el proyeco en 0ps>>source"orge2ne
Planiicaci!n
tem%oral
estimada
/apas 1uraci6n esima)a
/apa A KsBue)a -$ 0oras
/apa 2 An!lisis 2$$ 0oras
/apa 3 Presenaci6n -$ 0oras
1uraci6n oal 3$$ 0oras
!a"la 9I: Futuro Pro.ecto: ,etai&ple&entacin 'e (Aplicaciones Criptogrficas Java)
D@
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
@#Recursos Atilizados
A coninuaci6n se muesra un resumen )e los recursos emplea)os para el )esarrollo )el
proyeco'
Para o5ener in"ormaci6n ' Ki5liogra"a so5re seguri'a'3 U,L3 Java y Criptografa2
&am5in se 0an usa)o p!ginas =e5 so5re Java3 Java'oc3 Curso 'e tKcnicas 'e venta3
Criptografa3 Algorit&os criptogrficos3 JUnit3 Eclipse y 0!,L2 7 por si no "uera poco3
a)em!s se 0an emplea)o )iccionarios o enciclope)ias online ales como (Heal Aca'e&ia
Espa$ola)3 (4i?ipe'ia) y (4or'reference)2 (,ail3,ail)
Para ra5a:ar en el proyeco ' C5#iamene se 0a emplea)o un or'ena'or personal con
un siste&a operativo insala)o y liso para su uso2
Para )ar #alor al proyeco ' Se 0an uiliza)o o)os los pro#ee)ores cripogr!"icos
eHisenes )e algorimos cripogr!"icos para Ja#a Bue se 0an enconra)o' (>ounc.Castle)3
(G1U Cr.pto)3 (IAIL)3 (Cr.pti3)3 (Cr.pti3Cr.pto)3 (J0>CI)3 (LogiCr.pto)3
(,in'"rig=t)3 (Jac?su&)3 (Fle3iCore)3 (Fle3iEC)3 (Fle3i1F)3 (5U1)3 (5unJCE)3
(5unJ55E) y (5unHsa5ign)2
Como apoyo al proyeco ' 1e alguna u ora "orma3 am5in se 0an emplea)o las
li5reras )e )esarrollo' (*ster,iller Utils)3 (J*-E)3 (Apac=e Ja?arta Co&&ons Lang)+
(Junit) . (API 'e J/5E)2
Para el )esarrollo )el proyeco ' Se 0a uiliza)o principalmene el enorno )e )esarrollo
para Ja#a (Eclipse) y am5in algunos )e sus plugins para 9&M43 J+ni3 JC1/ y
Ja#a29&M42
Para gesionar arc0i#os comprimi)os ' (9:2ip) y (Al6ip) 0an si)o uiliza)os2
Como 0erramienas )e )ocumenaci6n ' (*pen*ffice)3 (Java'oc)3 (ArgoU,L)3
(P-FCreator) . (Java/0!,L)2
Como na#ega)or =e5 para *nerne ' (,o2illa Firefo3)2
Para )iseFar la p!gina =e5 )el proyeco ' (1vu) y una planilla para )ic0a p!gina =e52
Para pu5licar el proyeco en *nerne ' (4in5CP)+ (File6illa) y (5ourceForge7net)2
Como lengua:es )e )esarrollo 3 se 0an uiliza)o (Java)3 (0!,L)3 (8,L)3 (U,L) y
(C55)2
Para gra5ar C1s ' IC1KurnerQP ProJ2
Para la e#enual e)ici6n )e arc0i#os )e eHo ' (JE'it) y (1otepa';;)2
Como programas )e e)ici6n y gesi6n )e im!genes 3 se 0an emplea)o (GI,P)3
(Irfanvie<) y (Paint71E!)2
DD
PFC ULPGC Aplicaciones Criptogrficas Java
&am5in se 0an emplea)o )irecrices )e )esarrollo 3 es )ecir3 conse:os3 normas y>o
cuesiones a ener en cuena so5re (cual#uier tipo 'e pro'ucto)3 (la i&portancia 'el
cliente)3 (el 'esarrollo 'e un pro'ucto)3 (la presentacin 'e un pro'ucto) y (la
'ocu&entacin 'e un pro'ucto)2
A)em!s se 0an usa)o oras 0erramienas para gesionar noas como (1otes0ol'er
Lite)3 para e:ecuar "!cilmene en Lin)o=s aplicaciones Ja#a como (J5&oot=) y para
realizar copias )e seguri)a) se 0a emplea)o (Co"ian >ac?up)2
/n las siguienes secciones se po)r! enconrar m!s in"ormaci6n en )ealle so5re o)os los
recursos uiliza)os para la realizaci6n )el proyeco2 7 am5in en las )irecciones
0p'>>:ce"2source"orge2ne>)oc>resources2p)" y 0p'>>:ce"2source"orge2ne y
0p'>>source"orge2ne>pro:ecs>:ce">2
A$$
PFC ULPGC Aplicaciones Criptogrficas Java
1 2i)liograf!a
1 3iblio!rafa sobre Se!uria
Fun'a&entos 'e 5eguri'a' en He'es7 Aplicaciones . Estn'ares
Resumen ' Cripogra"a3 Aplicaciones y /s!n)ares )e seguri)a) )e re)es y Seguri)a)
)e los sisemas
P!gina o"icial ' 0p'>>===2li5rosie2ne>sallings4
Cros )aos ' /)ici6n' 2<W *SKN' @4G2$-G4$$2GAW Auor' Lilliam Sallings
!Kcnicas Criptogrficas 'e proteccin 'e 'atos
Resumen ' Cripogra"a3 Aplicaciones y (un)amenos Maem!icos
P!gina o"icial ' 0p'>>===2raGma2es O0p'>>===2raGma2es>li5ros>$$$A%@D20mP
Cros )aos ' /)ici6n' 2<W /)iorial' RaGMaW *SKN' @4G?@D?G42AG$W Auor' Amparo
(ser Sa5aer y oros anos m!s
Criptografa -igital
Resumen ' (un)amenos y Aplicaciones )e la Cripogra"a
Cros )aos ' /)ici6n' 2<W /)iorial' Prensas +ni#ersiarias )e 8aragozaW *SKN' @4G
??33G--@G3W Auor' Jos Pasor (ranco y oros anos m!s
0ac?ers 'e Java . J/EE
Resumen' Apren)er a )esarrollar aplicaciones Ja#a seguras
P!gina o"icial' 0p'>>===2mcgra=G0ill2es O0p'>>===2mcgra=G
0ill2es>0ml>@44@A2A@-%20mlP
Cros )aos ' /)iorial' Mc,ra=G9illW *SKN' @4G4@AG2A@-G%W Auores' Ar &aylor3 222W
A$A
PFC ULPGC Aplicaciones Criptogrficas Java
2 3iblio!rafa sobre 4.5
El Lengua%e Unifica'o 'e ,o'ela'o7 ,anual 'e Heferencia
Resumen ' Apren)er +M4 y sus )ealles
Cros )aos ' /)iorial' Pearson /)ucaci6nW Auores' James Rum5aug03 *#ar Jaco5son3
,ra)y Kooc0W *SKN' @4G?@2DG$3?G$
El Proceso Unifica'o 'e -esarrollo 'e 5oft<are
Resumen ' Apren)er a )esarrollar so"=are con +M4
Cros )aos ' /)iorial' Pearson /)ucaci6nW Auores' James Rum5aug03 *#ar Jaco5son3
,ra)y Kooc0W *SKN' @4G?@2DG$3%G2
El Lengua%e Unifica'o 'e ,o'ela'o
Resumen ' Apren)er +M4
Cros )aos ' /)iorial' Pearson /)ucaci6nW Auores' James Rum5aug03 *#ar Jaco5son3
,ra)y Kooc0W *SKN' @4G?@2DG$2@GA
3 3iblio!rafa sobre 6ava
Progra&acin en Java / J/5E 17D
Resumen ' Complesimo li5ro para apren)er Ja#a y sus li5reras J2S/ A24
Cros )aos ' /)iorial' AnayaW Auor' Jo0n 8uko=skiW *SKN' @4G4A-GA--DGQ
A$2
PFC ULPGC Aplicaciones Criptogrficas Java
2 3e)s
1 7ebs secunarias sobre 6ava
E3tensa coleccin 'e e%e&plos Java organi2a'os por pa#uetes
P!gina o"icial ' 0p'>>:a#aalmanac2com>
*)ioma ' *ngls
I&portante punto 'e inicio para apren'er Java
P!gina o"icial '
0p'>>)irecory2google2com>&op>Compuers>Programming>4anguages>Ja#a>
*)ioma ' *ngls
EsplKn'i'os tutoriales so"re Java
P!gina o"icial ' 0p'>>:a#a2sun2com>)ocs>5ooks>uorial>in)eH20ml
*)ioma ' *ngls
Gran'es canti'a'es 'e recursos so"re Java
P!gina o"icial ' 0p'>>===2:a#are"erence2com
*)ioma ' *ngls
I&portante portal so"re progra&acin en las principales tecnologas+ entre ellas Java
P!gina o"icial ' 0p'>>===2programacion2ne3 0p'>>===2programaci6n2com
*)ioma ' Casellano
Coneni)o ' Noicias3 Klogs3 &uoriales3 Arculos3 Cursos3 (oros3 C6)igo (uene3
1irecciones3 (ormaci6n3 9&M43 Ja#a3 P9P3 ASP3 Kases )e 1aos
Pgina <e" en castellano con interesante infor&acin so"re Java
P!gina o"icial ' 0p'>>===2:a#a0ispano2org
*)ioma ' Casellano
Coneni)o ' Noicias3 &uoriales3 Arculos3 Cursos3 C6)igo il3 Ja#a (A;3 &ips3
/#enos3 Monogr!"icos3 /nlaces3 /nre#isas
A$3
PFC ULPGC Aplicaciones Criptogrficas Java
2 7ebs principales sobre 6ava
Gua 'e referencia so"re la seguri'a' en Java
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>A2-2$>)ocs>gui)e>securiy>in)eH20ml
*)ioma ' *ngls
Coneni)o ' Me:oras )e Seguri)a) en J1M -2$3 ,ua )e Seguri)a) y ,ua )e Caminos
)e Ceri"icaci6n3 Ser#icio )e Aueni"icaci6n y Auorizaci6n OJAASP3 Ser#icios ,enricos
)e Seguri)a) OJ,SSP3 /Hensi6n Cripogr!"ica )e Ja#a OJC/P3 /Hensi6n )e Sockes Seguros
)e Ja#a OJSS/P3 Capa Simple )e Aueni"icaci6n y Seguri)a) OSAS4P3 1ocumenaci6n3
9erramienas y &uoriales )e Seguri)a)
Pgina principal 'e 5un so"re la seguri'a' con Java
P!gina o"icial ' 0p'>>:a#a2sun2com>securiy>in)eH2:sp
*)ioma ' *ngls
Coneni)o ' Ja#a Crypograp0ic /Hension OJC/P3 Ja#a Au0enicaion an)
Au0orizaion Ser#ice OJAASP3 Ja#a Secure Socke /Hension OJSS/P3 /speci"icaciones3
1ocumenaci6n3 (A;s3 Arculos3 222
-ocu&entacin so"re la API J/5E E7J
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>A2-2$>)ocs>api>
*)ioma ' *ngls
!utorial intro'uctorio so"re los Java>eans
P!gina o"icial ' 0p'>>===2programacion2ne>:a#a>uorial>5eans>
*)ioma ' Casellano
Coneni)o ' Ja#aKeans3 Componenes )e la Plaa"orma3 Ja#a Concepos so5re los
Ja#aKeans y coneni)o )el K1M3 KeanKoH' +so3 ArranBue3 Mens3 Apples3 /#enos3
Keans' /:emplo sencillo3 Propie)a)es Keans' Sencillas3 Compari)as3 Resringi)as e
*n)eHa)as3 Kean*n"o y la *nrospecci6n3 Personalizaci6n y Persisencia )e los Keans3 Nue#as
Caracersicas )e Ja#aKeans
!utorial intro'uctorio so"re los Java>eans
P!gina o"icial '
0p'>>:a#a2sun2com>)e#eloper>online&raining>Keans>JKeansAP*>s0orcourse20ml
*)ioma ' *ngls
A$4
PFC ULPGC Aplicaciones Criptogrficas Java
-ocu&entacin 'e referencia so"re JCE
P!gina o"icial ' 0p'>>:a#a2sun2com>pro)ucs>:ce>in)eHGA420ml
*)ioma ' *ngls
Coneni)o ' *nro)ucci6n y SPor Bu usar JC/T3 Caracersicas imporanes y ,ua )e
Re"erencia )e JC/
Gua 'e referencia so"re JCE
P!gina o"icial '
0p'>>:a#a2sun2com>:2se>A2-2$>)ocs>gui)e>securiy>:ce>JC/Re",ui)e20ml
*)ioma ' *ngls
Coneni)o ' *nro)ucci6n y 4o nue#o )e JC/ en el J2S/ -2$3 Concepos cripogr!"icos
y 4as clases principales3 *nsalaci6n )e Pro#ee)ores y C6)igos )e e:emplo3 Apn)ice'
*n"ormaci6n so5re los algorimos3 amaFos )e cla#e3 programas )e e:emplo3 ec2
Gua 'e referencia so"re la li"rera criptogrfica JCA
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>A2-2$>)ocs>gui)e>securiy>CrypoSpec20ml
*)ioma ' *ngls
Coneni)o ' *nro)ucci6n3 4as clases principales y C6)igos )e e:emplo3 Apn)ice'
*n"ormaci6n so5re los algorimos3 amaFos )e cla#e3 programas )e e:emplo3 ec2
Lista 'e provee'ores criptogrficos reconoci'os por 5un ,icros.ste&s
P!gina o"icial ' 0p'>>:a#a2sun2com>pro)ucs>:ce>:ceA22.pro#i)ers20ml
*)ioma ' *ngls
3 $urso e t8cnicas e venta
&ulo ' /nien)o3 luego #en)o' cnicas )e #ena
P!gina o"icial ' 0p'>>===2mailHmail2com>curso>empresa>#en)er
*)ioma ' /spaFol
A$-
PFC ULPGC Aplicaciones Criptogrficas Java
4 7ebs sobre 64nit
!utorial so"re Junit
P!gina o"icial ' 0p'>>===2programacion2com>:a#a>ariculo>:ap.:uni>
*)ioma ' Casellano
Coneni)o ' SPor Bu uilizar JuniT2 1iseFo )e Juni2 /:emplos )e uilizaci6n2 Pr!cicas
recomen)a5les para su uso
!utorial (Prue"as 'e progra&as Java &e'iante Junit)
P!gina o"icial ' 0p'>>===2in"Gcr2uclm2es>===>mpolo>uorial>
*)ioma ' Casellano
Coneni)o ' Caracersicas )el )iseFo Juni2 /:emplos reales )e su uso :uno con su
c6)igo "uene
5 7ebs sobre %clipse
Al&acKn 'e plugins para Eclipse
P!gina o"icial '0p'>>eclipseGplugins22y2ne>eclipse>plugins2:sp
*)ioma ' *ngls
Coneni)o ' Con:uno )e m6)ulos>plugins /clipse organiza)os por caegoras3 ales
como' generaci6n )e c6)igo3 5ases )e )aos3 )ocumenaci6n3 elecr6nica3 lengua:es3
mo)ela)o3 re)es3 parones3 SCM3 eam3 esing3 +M43 +*3 =e53 ec2
6 7ebs sobre 9:.5
!utorial so"re 0!,L
P!gina o"icial ' 0p'>>===2um2es>fpsi5m>uorial>
*)ioma ' Casellano
Coneni)o ' Coman)os 5!sicos3 4isas3 *m!genes3 /nlaces3 &a5las3 (unciones
especiales y Recomen)aciones
A$%
PFC ULPGC Aplicaciones Criptogrficas Java
7 7ebs sobre 6avaoc
!utorial intro'uctorio para Java'oc
P!gina o"icial ' 0p'>>ic2u)lap2mH>people>carlos>uoriales>:a#a)oc>:a#a)ocuorial2p)"
Gua 'e referencia so"re Java'oc con e%e&plos
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>A2-2$>)ocs>ool)ocs>=in)o=s>:a#a)oc20ml
I&portante tutorial para apren'er a &ane%ar Java'oc 'e la &e%or for&a posi"le
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>:a#a)oc>=riing)occommens>
/ 7ebs principales sobre $ripto!rafa
I&portante curso so"re la seguri'a'+ la criptografa . Java
P!gina o"icial ' 0p'>>===2u#2es>fso>cursos>seguri)a)2:a#a>0ml>s:a#a20ml
*)ioma ' Casellano
Coneni)o ' Cripologa3 Ci"ra)o3 Aueni"icaci6n 0as0 y mac3 (irmas )igiales2
Seguri)a) )e los algorimos3 AaBues m!s imporanes2 Aplicaciones3 &cnicas
cripogr!"icas3 Ceri"ica)os 1igiales2 Proocolos SS4 y &4S2 4a seguri)a) en Ja#a3 su
arBuiecura cripogr!"ica JCA y su eHensi6n JC/2 JSS/' /Hensi6n )e Sockes Seguros )e
Ja#a2 JAAS' Ser#icio )e Aueni"icaci6n y Auorizaci6n )e Ja#a2 Re"erencias
!utorial &u. interesante . resu&i'o so"re la criptografa . sus aplicaciones
P!gina o"icial ' 0p'>>===2cer2"nm2es>uoA20m
*)ioma ' Casellano
Coneni)o ' Cripogra"a3 Ci"ra)o3 (irma )igial3 Ceri"ica)os )igiales3 &erceras pares
)e con"ianza3 *n"raesrucura )e cla#e p5lica
Pgina <e" 'e un co&pletsi&o li"ro . curso electrnico so"re seguri'a' . criptografa en
espa$ol
P!gina o"icial ' 0p'>>===2cripore)2upm2es>guiaeoria>g.m$$Aa20m
*)ioma ' Casellano
Coneni)o ' Cripogra"a2 Seguri)a) *n"orm!ica2 Ci"ra)os2 Aueni"icaci6n 0as02
(irmas )igiales2 Ceri"ica)os )igiales2 Aplicaciones )e correo seguro2 Proocolos
cripogr!"icos2 Cur#as elpicas2 Ki5liogra"a2 /nlaces2 &a5las2 So"=are2 1ocumenos
A$?
PFC ULPGC Aplicaciones Criptogrficas Java
; 7ebs secunarias sobre $ripto!rafa
Pgina oficial 'el li"ro gratuito: (0an'"oo? of Applie' Cr.ptograp=.)
P!gina o"icial ' 0p'>>===2cacr2ma02u=aerloo2ca>0ac>
*)ioma ' *ngls
Coneni)o ' Cripogra"a2 Maem!icas y &eora )e Nmeros2 Par!meros2 Ci"ra)os g
Aueni"icaci6n 9as02 (irmas )igiales2 Proocolos )e inercam5io )e cla#es2 &cnicas )e
gesi6n )e cla#es2 *mplemenaciones e"icienes2 Paenes y San)ar)s
Pgina personal &u. interesante so"re el &un'o 'e la Criptologa
P!gina o"icial ' 0p'>>=e5s2ono2com>usr$$->:suarez>)i""ie0ellman20ml
*)ioma ' Casellano
Coneni)o ' Cripogra"a2 Cripoan!lisis2 Cras cnicas2 Noicias2 Cola5oraciones2
Earios
4e" personal con interesante infor&acin so"re criptografa+ seguri'a' . otras cosas
P!gina o"icial ' 0p'>>:o2morales$$$22eresmas2ne>"sumario20ml
*)ioma ' Casellano
Coneni)o ' Cripogra"a2 Seguri)a)2 *neresanes enlaces2
5eguri'a' en agentes &viles "asa'os en la criptografa
P!gina o"icial ' 0p'>>grasia2")i2ucm2es>:pa#on>agenes>
*)ioma ' Casellano
Coneni)o ' Cripogra"a2 (irmas )igiales2 An!lisis )el proocolo S/&2 *n"ormaci6n
so5re agenes )e seguri)a)
Intro'uccin a la seguri'a'+ sus servicios . Java
P!gina o"icial ' 0p'>>:a#a2sun2com>securiy>:a#aoneD?G=0iepaper20ml
*)ioma ' *ngls
Coneni)o ' *nro)ucci6n a la seguri)a) y sus ser#icios2 4a seguri)a) en Ja#a
A$@
PFC ULPGC Aplicaciones Criptogrficas Java
1< 7ebs sobre Al!oritmos $ripto!r)ficos
Infor&acin 'e referencia con in'epen'encia 'e la i&ple&entacin so"re &uc=os
algorit&os criptogrficos
P!gina o"icial ' 0p'>>===2users2zene2co2uk>0op=oo)>crypo>scan>
*)ioma ' *ngls
E3tensa enciclope'ia so"re la criptografa . &uc=os otros conceptos
P!gina o"icial '
0p'>>===2a5solueasronomy2com>encyclope)ia>C>Cr>Crypograp0y20m
*)ioma ' *ngls
Coneni)o ' *nro)ucci6n a la Cripogra"a2 Algorimos )e ci"ra)o )e 5loBues3 )e "lu:o
y )e resumen )e mensa:es
Con%unto 'e algorit&os criptogrficos &u. populares
P!gina o"icial ' 0p'>>kremlinencryp2com>algori0ms20m
*)ioma ' *ngls
Coneni)o ' Algorimos )e ci"ra)o )e 5loBues3 )e "lu:o y )e resumen )e mensa:es
*tro con%unto 'e algorit&os criptogrficos &u. populares
P!gina o"icial ' 0p'>>===25also"2com>"iles>ee>Crypograp0ic.Algori0ms20m
*)ioma ' *ngls
Coneni)o ' Algorimos )e ci"ra)o )e 5loBues3 )e "lu:o y )e resumen )e mensa:es
*tra e3tensa enciclope'ia so"re la criptografa . &uc=os otros conceptos
P!gina o"icial ' 0p'>>===2ans=ers2com>opic>crypograp0yGA
*)ioma ' *ngls
Coneni)o ' *nro)ucci6n a la Cripogra"a2 Muliu) )e enlaces muy ineresanes2
Algorimos )e Ci"ra)o )e KloBues3 )e (lu:o y )e Resumen )e Mensa:es
A$D
PFC ULPGC Aplicaciones Criptogrficas Java
3 'clipse
1escripci6n ' 4a plaa"orma /clipse es un enorno )e )esarrollo inegra)o O*1/P
a5iero y eHensi5le Bue proporciona los componenes y la meo)ologa para la creaci6n y
uilizaci6n )e 0erramienas )e )esarrollo )e so"=are inegra)as2 4a arBuiecura )e plugins
)e /clipse permie3 a)em!s )e inegrar )i#ersos lengua:es so5re un mismo *1/3 inro)ucir
oras aplicaciones accesorias Bue pue)en resular iles )urane el proceso )e )esarrollo
como' 0erramienas +M43 e)iores #isuales )e iner"aces3 ayu)a en lnea para li5reras3 ec222
Caracersicas ' /)ior )e eHo y resala)o )e sinaHis g A)ici6n )e m6)ulos con suma
"acili)a)2 Compilaci6n en iempo real e inegraci6n con An2 &ess uniarios con Juni y
conrol )e #ersiones con CES2 Asisenes' para creaci6n )e proyecos3 clases3 ess3 ec222
/c222
Caegora ' So"=are )e )esarrollo
4icencia ' CP4W SCpen SourceT' SW S,rauioT' SWEersi6n' 32A
P!gina o"icial ' 0p'>>===2eclipse2org>
Alernai#as ' Korlan) JKuil)er (oun)aion 2$$-
4 A.4 de J2S'
1escripci6n ' AP* )e Ja#a OJ2S/P es un con:uno )e clases Bue es uiliza)o para
generar programas 5!sicos en el lengua:eW uilizan)o una analoga3 esas clases ienen la
misma "uncionali)a) Bue las "unciones clases es!n)ar uiliza)as en oros lengua:es como C
o CRR2
Caracersicas ' Coniene "uncionali)a)es generales3 para c!lculos maem!icos3 5eans3
comunicaciones3 iner"aces gr!"icas3 seguri)a)3 cripogra"a3 5ases )e )aos3 QM43 CCRKA3
mulime)ia3 impresi6n3 im!genes3 uili)a)es3 RM*3 ec2
Caegora ' 4i5rera )e )esarrollo es!n)ar para Ja#a
SCpen SourceT ' SW S,rauioT' SW Eersi6n' A2-
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>in)eH20ml
Alernai#as ' ,N+ Classpa0 O0p'>>===2gnu2org>so"=are>classpa0>classpa020mlP
AA$
PFC ULPGC Aplicaciones Criptogrficas Java
& .lugins de 'clipse
Eclipse JUnit Plugin
1escripci6n ' M6)ulo )e /clipse Bue "acilia la realizaci6n )e prue5as me)iane J+ni
Caracersicas ' Asisenes para la creaci6n )e uni)a)es )e prue5a2 Conrol )e las
prue5as supera)as y "racasa)as2 *negra)o en el /clipse 5ase
Eclipse 0!,L E'itor Plugin
1escripci6n ' M6)ulo para /clipse uiliza)o para la e)ici6n )e los lengua:es )e
marca)o 9&M43 JSP y QM4
Caracersicas ' Resala)o 9&M43 JSP3 QM4 y CSS2 Pre#isualizaci6n 9&M4 y JSP2
Eali)aci6n JSP y QM42 Asisenes para crear arc0i#os 9&M43 JSP o QM42 /)ior )e
pre"erencias2 Na#ega)or =e5 em5e5i)o en /clipse2 Eisor )e im!genes2 Palea )e eiBueas2
7 oras muc0as caracersicas
P!gina o"icial '
0p'>>amaeras2source"orge2:p>cgiG5in>"s=iki.en>=iki2cgiTpage_/clipse9&M4/)ior
4icencia ' Cpen SourceW SCpen SourceT' S
J*-E Plug:in Eclipse
1escripci6n ' *negra el )ecompila)or JC1/ en /clipse
+iliza)o para ' Consular el c6)igo cuan)o se no es! )isponi5le3 s6lo su #ersi6n
5yeco)e O#ersi6n compila)aP
Caracersicas ' (unciona )e manera auom!ica y ransparene para el usuario
P!gina o"icial '
4icencia ' ,P4W SCpen SourceT' SW S,rauioT' SW Eersi6n' A2$2-
Java/0!,L Plug:in Eclipse
1escripci6n ' Con#iere el c6)igo :a#a en eHo "ormaea)o a color en 9&M43 R&(3
&eQ y Q9&M42
P!gina o"icial ' 0p'>>===2:a#a20ml2)e>
4icencia ' ,P4 o CP4A2$W SCpen SourceT' SW S,rauioT' SW Eersi6n' A2-2$
AAA
PFC ULPGC Aplicaciones Criptogrficas Java
* .roveedores Criptogrficos JC'
1 3ouncy$astle
1escripci6n ' 4a li5rera Kouncy Casle Crypo es una implemenaci6n Ja#a )e
algorimos cripogr!"icos2 /s uno )e los me:ores pro#ee)ores )e ser#icios cripogr!"icos Bue
0ay para Ja#a
Caracersicas ' Pro#ee)or JC/ y JCA2 ,eneraci6n )e ceri"ica)os y lisas )e
anulaci6n )e ceri"ica)os2 Cras muc0as caracersicas ineresanes ales como S>M*M/3
CCSP3 &SP3 CpenP,P3 ec222 *ncluye c6)igo )e e:emplo para apren)er a uilizar3 a)em!s )el
con:uno )e prue5as realiza)as para #eri"icar su "uncionamieno
P!gina o"icial ' 0p'>>===25ouncycasle2org
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' A22D
2 "A"=
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>:ce2iaik2ugraz2a>
4icencia ' (ree=areW SCpen SourceT' NoW Eersi6n' 32A3
S,rauioT ' S3 pero s6lo para usos no comerciales
3 $rypti2
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>===2crypiH2org>
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' 2@>$3>2$$-
AA2
PFC ULPGC Aplicaciones Criptogrficas Java
4 $rypti2$rypto
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' 2@>$3>2$$-
P!gina o"icial ' 0p'>>===2crypiH2org>
5 >le2i$ore
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>===2"leHipro#i)er2)e>
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' A2A2-
6 >le2i%$
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>===2"leHipro#i)er2)e>
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' A2A2-
7 >le2i?>
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>===2"leHipro#i)er2)e>
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' A2A2-
/ 0?4 $rypto
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>===2gnu2org>so"=are>gnuGcrypo>
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' 22$2A
AA3
PFC ULPGC Aplicaciones Criptogrficas Java
; 693$"
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>===2:05ci2)e>
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' $2$2%
1< S4?
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>
SCpen SourceT ' NoW S,rauioT' SW Eersi6n' A2-
11 Sun6$%
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>
SCpen SourceT ' NoW S,rauioT' SW Eersi6n' A2-
12 Sun6SS%
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>
SCpen SourceT ' NoW S,rauioT' SW Eersi6n' A2-
13 Sun,saSi!n
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos para JC/
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>
SCpen SourceT ' NoW S,rauioT' SW Eersi6n' A2-
AA4
PFC ULPGC Aplicaciones Criptogrficas Java
, .roveedores Criptogrficos no JC'
1 6ac@sum
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos2 No cumple la especi"icaci6n JC/
P!gina o"icial ' 0p'>>===2:onelo2)e>:a#a>:acksum>
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' A2-2A
2 5o!i $rypto
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos2 No cumple la especi"icaci6n JC/
P!gina o"icial ' 0p'>>===2logi2org>logi2crypo>
4icencia ' Cpen SourceW SCpen SourceT' SW S,rauioT' SW Eersi6n' A2A22
3 .inbri!At
1escripci6n ' Pro#ee)or )e ser#icios cripogr!"icos2 No cumple la especi"icaci6n JC/
P!gina o"icial ' 0p'>>===2appgae2com>pro)ucs>@$.Min)&erm>
4icencia ' Cpen SourceW SCpen SourceT' SW Eersi6n' 22422
S,rauioT ' S3 eHcepo para usos comerciales
AA-
PFC ULPGC Aplicaciones Criptogrficas Java
5 i)rer!as de #esarrollo 6A.4s7
1 -stermiller 4tils
1escripci6n ' Earias uili)a)es Ja#a3 enre las Bue )esaca un genera)or )e conraseFas
P!gina o"icial ' 0p'>>osermiller2org>
4icencia ' ,N+ ,P4W SCpen SourceT' SW S,rauioT' SW Eersi6n' A2$42$3
2 6-(%
1escripci6n ' 1ecompila)or3 opimiza)or y o"usca)or para el c6)igo 5yeco)e Ja#a
P!gina o"icial ' 0p'>>:o)e2source"orge2ne>
4icencia ' ,N+ 4,P4W SCpen SourceT' SW S,rauioT' SW Eersi6n' A2A2A
3 ApacAe 6a@arta $ommons 5an!
1escripci6n ' +ili)a)es generales para Ja#a
P!gina o"icial ' 0p'>>:akara2apac0e2org>commons>lang>
4icencia ' Apac0eW SCpen SourceT' SW S,rauioT' SW Eersi6n' 22A
4 64nit
1escripci6n ' 4i5rera para auomaizar la e:ecuci6n )e prue5as uniarias para so"=are
oriena)o a o5:eos
Caracersicas ' Paricular para las prue5as )e programas Ja#a2 /s a)ecua)o para el
)esarrollo )irigi)o por las prue5as
P!gina o"icial ' 0p'>>===2:uni2org
4icencia ' CP4 A2$W SCpen SourceT' SW S,rauioT' SW Eersi6n' 32@2A
AA%
PFC ULPGC Aplicaciones Criptogrficas Java
8 Utilidades de compresi/n
1 7+*ip
1escripci6n ' ?G8ip es un programa )e compresi6n )e )aos muy 5ueno
Caracersicas ' Alo porcena:e )e compresi6n con el nue#o "ormao ?z Oel me:or )e
momenoP2 A)em!s )e ?z3 acepa' 8*P3 CAK3 RAR3 ARJ3 ,8*P3 K8*P23 83 &AR3 CP*C3
RPM y 1/K2 Capaci)a) )e auoeHracci6n para el "ormao ?z2 *negraci6n con el inrpree
)e Lin)o=s3 poene a)minisra)or )e "ic0eros y lnea )e coman)os2 +iliza5le a ra#s )e
una iner"az gr!"ica )e usuario o una lnea )e coman)os2 Microso" Lin)o=s y 4inuH2
/Hensi6n para (AR Manager y &ra)ucci6n a -3 i)iomas
4icencia ' ,N+ 4,P4W SCpen SourceT' SW S,rauioT' SW Eersion'
P!gina o"icial ' 0p'>>===2?Gzip2org
Alernai#a (ree=are ' *8Arc O0p'>>===2izarc2org>P
Alernai#as Comerciales '
Lin8ip O0p'>>===2=inzip2comP
LinRar O0p'>>=inrar2com2esP
2 AlBip
1escripci6n ' /s una uili)a) )e compresi6n con muliu) )e "ormaos
+iliza)o para ' Acce)er )e "orma e#enual a "ic0eros I2:arJ
Caracersicas ' Sopora 3% "ormaos )e compresi6n O8*P3 AC/3 RAR3 4893 222P2
Proporciona sopore I1rag \ 1ropJ2 *ner"az gr!"ica amiga5le y acceso )es)e la lnea )e
coman)os2 Compleo manual )e usuario2 Mliples i)iomas3 incluyen)o espaFol2 *negra5le
con el eHplora)or )e Lin)o=s
P!gina o"icial ' 0p'>>===2alools2ne
Alernai#as Cpen Source ' ?Gzip O0p'>>===2?Gzip2orgP
Alernai#as Comerciales '
Lin8ip O0p'>>===2=inzip2comP
LinRar O0p'>>=inrar2com2esP
4icencia ' (ree=areW S,rauioT' SW Eersi6n' %2A3
AA?
PFC ULPGC Aplicaciones Criptogrficas Java
19 :erramientas de documentaci/n
1 -pen-ffice
1escripci6n ' /s un suie )e o"icina )e so"=are li5re3 grais para o)o el mun)o3 y Bue
iene m6)ulos2
M6)ulos ' Procesa)or )e eHos' CpenC""ice2org Lrier2 9o:a )e c!lculo'
CpenC""ice2org Calc2 ,r!"icos #ecoriales' CpenC""ice2org 1ra=2 Presenaciones'
CpenC""ice2org *mpress2 Kases )e )aos' CpenC""ice2org Kase2 (6rmulas maem!icas'
CpenC""ice2org Ma02 7 oras caracersicas como e)ici6n 9&M4 y generaci6n P1(
4icencia ' ,N+ 4,P4W SCpen SourceT' SW S,rauioT' SW Eersi6n' 22$
P!gina o"icial ' 0p'>>===2openo""ice2org
Alernai#as Comerciales ' Microso" C""ice' Lor)3 Po=erPoin3 /Hcel3 Access2
Microso" Eisio2 Smar)ra=
2 6avaoc
1escripci6n ' 9erramiena )e )ocumenaci6n en"oca)a a programas realiza)os en el
lengua:e Ja#a3 la cual es semiauom!ica al "aciliar la generaci6n )e un grupo )e arc0i#os
9&M4 en 5ase a una sin!His )e comenarios insera)os en el c6)igo "uene2
P!gina o"icial ' 0p'>>:a#a2sun2com>:2se>:a#a)oc>in)eH2:sp
3 6ava29:.5
1escripci6n ' Con#iere el c6)igo :a#a en eHo "ormaea)o a color en 9&M43 R&(3
&eQ y Q9&M42
P!gina o"icial ' 0p'>>===2:a#a20ml2)e>
4icencia ' ,P4 o CP4A2$W SCpen SourceT' SW S,rauioT' SW Eersi6n' -2$
AA@
PFC ULPGC Aplicaciones Criptogrficas Java
4 .etrics Analisys :ool
1escripci6n ' Permie o5ener mricas so5re un con:uno )e "ic0eros c6)igo "uene )e
Ja#a2
Caracersicas ' C5iene mricas ales como nmero )e clases3 iner"aces3 mo)os3
campos3 "ic0eros3 lneas )e c6)igo3 lneas )e comenarios3 ec222
P!gina o"icial ' 0p'>>===2cs2appsae2e)u>f:rc>merics&ool20ml
Eersi6n ' A2AW 4icencia' ,P4W SCpen SourceT' SW S,rauioT' S
5 Ar!o4.5
1escripci6n ' 9erramiena )e mo)ela)o para realizar )iseFos en +M4
P!gina o"icial ' 0p'>>argouml2igris2org
4icencia ' KS1W SCpen SourceT' SW S,rauioT' SW Eersi6n' $2A%2A
Alernai#as ' +m5rello +M4 Mo)eller O0p'>>uml2source"orge2ne>P
6 P(>$reator
1escripci6n ' Sencilla aplicaci6n para crear )ocumenos P1(
Caracersicas ' Permie crear )ocumenos P1( a parir )e cualBuier ora aplicaci6n
Bue permia imprimir2 +iliza una impresora #irual para la comunicaci6n con el reso )e
aplicaciones2 Permie con"igurar el gra)o )e compresi6n y muc0as caracersicas )e los
P1(2 Crea )ocumenos en los siguienes "ormaos' Pora5le 1ocumen (orma OP1(P3
Posscrip OPSP3 /ncapsulae) Posscrip O/PSP3 PN,3 JP/,3 KMP3 PCQ y &*((2 Com5ina
mliples )ocumenos en un nico P1(2 Permie proeger los )ocumenos P1( con
conraseFas )e A2@ 5is2 Permie auoguar)a)o y muc0o m!s 222
P!gina o"icial '
0p'>>===2p)"creaor2)e2#u>
0p'>>===2source"orge2ne>pro:ecs>p)"creaor
Eersi6n ' $2@2A RCA$W 4icencia' ,P4 y A(P4W SCpen SourceT' SW S,rauioT' S
*)ioma ' /spaFol
AAD
PFC ULPGC Aplicaciones Criptogrficas Java
11 Utilidades de 4nternet
1 .o*illa >irefo2
1escripci6n ' Na#ega)or =e5
P!gina o"icial ' 0p'>>===2mozilla2org>pro)ucs>"ire"oH>
SCpen SourceT ' SW Eersi6n' A2-
Alernai#as ' Microso" *nerne /Hplorer
2 ?vu
1escripci6n ' Programa para la creaci6n )e p!ginas =e5 9&M4
Caracersicas ' Sisemas operai#os sopora)os' Lin)o=s3 Macinos03 4inuH2 (!cil )e
usar3 poene e i)eal para no programa)ores
P!gina o"icial ' 0p'>>===2n#u2com>
4icencia ' MP4 A2AW SCpen SourceT' SW S,rauioT' SW Eersi6n' A2$
Alernai#as ' (ronPage O0p'>>===2microso"2com>"ronpage>P2 1ream=ea#er
O0p'>>===2macrome)ia2com>so"=are>)ream=ea#er>P
A2$
PFC ULPGC Aplicaciones Criptogrficas Java
3 7inS$P
1escripci6n ' Cliene S(&P gr!"ico para Lin)o=s Bue emplea SS9 y SCP2 Su "unci6n
principal es "aciliar la rans"erencia segura )e arc0i#os enre )os sisemas in"orm!icos3 el
local y uno remoo Bue o"rezca ser#icios SS92
+iliza)o para ' Acce)er al ser#i)or )e Source(orge2ne para pu5licar la p!gina =e5
uilizan)o el proocolo S(&P para acceso al 0os s0ell2source"orge2ne y a la carpea
I>0ome>groups>:>:c>:ce">0)ocsJ2
Caracersicas ' *ner"az gr!"ica3 )isponi5le en #arios i)iomas3 inegraci6n con
Lin)o=s3 sopore )e las operaciones comunes )e arc0i#o3 sopore )e proocolos SCP y
S(&P so5re SS9GA y SS9G23 sopore )e operaciones programa)asG5ac03 sincronizaci6n )e
)irecorios3 sopore )e aueni"icaci6n3 iner"aces similares a gesores )e arc0i#os populares3
sopore para guar)ar la in"ormaci6n )e la sesi6n3 gesi6n por!il )e la con"iguraci6n )el
programa3 ec222
P!gina o"icial ' 0p'>>=inscp2ne>
4icencia ' ,P4W SCpen SourceT' SW S,rauioT' SW Eersi6n' 32@
4 >ileBilla
1escripci6n ' Cliene r!pi)o (&P y S(&P para Lin)o=s con muc0as caracersicas2
+iliza)o para ' Su5ir las )isri5uciones )el proyeco )e "orma an6nima y en mo)o
5inario al ser#i)or (&P uploa)2source"orge2ne y a la carpea I>incomingJ para poserior
)e"inir los I"ile releaseJ2
P!gina o"icial ' 0p'>>"ilezilla2source"orge2ne>
4icencia ' ,P4W SCpen SourceT' SW S,rauioT' SW Eersi6n' 222222
A2A
PFC ULPGC Aplicaciones Criptogrficas Java
12 engua$es de desarrollo
1 6ava
1escripci6n ' Ja#a es una plaa"orma )e so"=are3 )e al manera Bue los programas
crea)os en ella pue)an e:ecuarse )e la misma "orma en )i"erenes ipos )e arBuiecuras y
)isposii#os compuacionales
P!gina o"icial ' 0p'>>:a#a2sun2com
Componenes ' /l lengua:e )e programaci6n oalmene oriena)o a o5:eos2 4a
m!Buina #irual )e Ja#a OJa#a Eirual Mac0ine3 JEMP3 Bue permie la pora5ili)a) en
e:ecuci6n2 /l AP* Ja#a3 una 5i5lioeca es!n)ar para el lengua:e2 /l enorno )e e:ecuci6n
OJa#a Runime /n#ironmen3 JR/P
Crea)or ' Sun Microsysems
2 9:.5
1escripci6n ' /l 9&M43 acr6nimo ingls )e 9yper &eH Markup 4anguage Olengua:e
)e marcaci6n )e 0ipereHoP3 es un lengua:e )e marcas )iseFa)o para esrucurar eHos y
presenarlos en "orma )e 0ipereHo3 Bue es el "ormao es!n)ar )e las p!ginas =e5
P!gina o"icial ' 0p'>>===2=32org>Mark+p>
3 C.5
1escripci6n ' QM4 es un mealengua:e para lengua:es )e marca)o como 9&M4
5asa)o en )ocumenos )e eHo plano3 en los Bue se uilizan eiBueas para )elimiar los
elemenos )el )ocumeno
Aplicaciones ' Conseguir una p!gina =e5 m!s sem!nica y suce)er al 9&M42 Separar
la esrucura )el coneni)o2 /s!n)ar para el inercam5io )e )aos enre )i#ersas
aplicaciones2 7 muc0simas oras aplicaciones
P!gina o"icial ' 0p'>>===2=32org>QM4>
Crea)or ' Lorl) Li)e Le5 Consorium OL3CP
A22
PFC ULPGC Aplicaciones Criptogrficas Java
4 4.5
1escripci6n ' 4engua:e +ni"ica)o )e Mo)ela)o O+M43 por sus siglas en ingls3
+ni"ie) Mo)elling 4anguageP es el lengua:e )e mo)ela)o )e so"=are m!s conoci)o en la
acuali)a)2 +iliza mo)elos "uncionales3 )e o5:eos y )in!micos2
P!gina o"icial ' 0p'>>===2uml2org>
5 $SS
1escripci6n ' 4as 0o:as )e esilo en casca)a OCasca)ing Syle S0ees3 CSSP son un
lengua:e "ormal usa)o para )e"inir la presenaci6n )e un )ocumeno esrucura)o en 9&M4
o QM4 Oy por eHensi6n en Q9&M4P2 4a i)ea Bue se encuenra )er!s )el )esarrollo )e CSS
es separar la esrucura )e un )ocumeno )e su presenaci6n2
P!gina o"icial ' 0p'>>===2=32org>Syle>CSS>
A23
PFC ULPGC Aplicaciones Criptogrficas Java
13 Utilidades de presentaci/n
1 .acromeia >lasA Player
1escripci6n ' Repro)ucor )e pelculas (las0 SL(
P!gina o"icial ' 0p'>>===2macrome)ia2com>es>so"=are>"las0player>
4icencia ' (ree=areW SCpen SourceT' NoW S,rauioT' SW Eersi6n' ?2$2AD2$
*)ioma ' /spaFolW (ec0a' A$>A2>2$$4
2 $amStuio
1escripci6n ' Permie gra5ar la aci#i)a) )e la panalla en una pelcula
Caracersicas ' eil para )emosraciones )e uilizaci6n )e so"=are2 ,ra5ar secuencias
)e una pelcula en repro)ucci6n2 (ormaos sopora)os' AE* #)eo y a)em!s en SL(
O(las0P2 ,enera pelculas (las0 SL( a parir )e #)eos AE*2 ,ra5a e#enos ales como los
mo#imienos )el cursor )el ra6n3 0acer clicks y la escriura )e caraceres2 A)em!s3 es
posi5le gra5ar soni)o )es)e un micr6"ono3 los ala#oces o am5as
P!gina o"icial ' 0p'>>source"orge2ne>pro:ecs>camsu)io> y 0p'>>===2camsu)io2org>
4icencia ' (ree=areW SCpen SourceT' NoW S,rauioT' SW Eersi6n' 22$$
Alernai#as Comerciales ' Camasia Su)io 22$ O0p'>>===2ec0smi02comP
Alernai#as Cpen Source ' H#i)cap O0p'>>H#i)cap2source"orge2neP2 SL(ools
O0p'>>===2Buiss2org>s="oolsP
3 Plantilla para p)!ina #eb
1escripci6n ' Almacn )e planillas para p!ginas =e5
P!gina o"icial ' 0p'>>===2emplaes5oH2com
S,rauioT ' SW *)ioma' S/spaFolT
A24
PFC ULPGC Aplicaciones Criptogrficas Java
14 Utilidades de 'dici/n de Arc(ivos de ;e<to
1 6%it
1escripci6n ' /)ior )e "ic0eros )e eHo plano Bue sopora mliples lengua:es3
principalmene )e programaci6n
Caracersicas ' /Hensi5le me)iane m6)ulos OpluginsP2 /scrio en Ja#a2 4engua:e )e
macros2 Sisemas Cperai#os sopora)os' Mac CS Q3 CS>23 +niH3 EMS y Lin)o=s2
1isponi5ili)a) )e un reposiorio )e macros y m6)ulos en *nerne2 ,esor )e m6)ulos para
acualizaciones sencillas y m!s )e A3$ lengua:es2 Resala)o )e la sinaHis y auoi)enaci6n2
Eisas a#anza)as )el eHo y I=or) =rapJ2 Sopora un gran nmero )e co)i"icaci6n )e
caraceres3 ales como +&(@ y +nico)e
P!gina o"icial ' 0p'>>===2:e)i2org
4icencia ' ,N+ ,P4W SCpen SourceT' SW S,rauioT' SW Eersi6n' 422
Alernai#as ' /)iplus O0p'>>===2e)iplus2comP
2 ?otepaDD
1escripci6n ' /)ia arc0i#os )e eHo
+iliza)o para ' /)iar arc0i#os )e eHo r!pi)amene
Caracersicas ' Sopora el resala)o )e m!s )e 3% lengua:es' Ja#a3 9&M43 Assem5ler3
P9P3 E9143 C3 222 Permie )e"inir nue#os lengua:es2 7 muc0as oras caracersicas m!s
P!gina o"icial ' 0p'>>noepa)Gplus2source"orge2ne
Eersi6n ' 323W 4icencia' ,P4W SCpen SourceT' SW S,rauioT' S
A2-
PFC ULPGC Aplicaciones Criptogrficas Java
1& Utilidades de 'dici/n de 4mgenes
1 0".P
1escripci6n ' Programa )e manipulaci6n y reoBue )e im!genes
P!gina o"icial ' 0p'>>===2gimp2org
Eersi6n Lin)o=s ' 0p'>>gimpG=in2source"orge2ne>
4icencia ' ,N+ ,P4W SCpen SourceT' SW S,rauioT' SW Eersi6n' 222
Alernai#as comerciales ' A)o5e P0oos0op
2 "rfanvie#
1escripci6n ' Eisor )e gr!"icos y arc0i#os mulime)ia
Caracersicas ' Sopora in"ini)a) )e "ormaos )e im!genes3 au)io y #)eo2 Sopora
muliu) )e i)iomas2 l5um )e im!genes2 Sopora "ilros )e A)o5e P0oos0op2 IArrasrar y
SolarJ2 Repro)ucor mulime)ia y con#ersiones programa)as2 Cpciones )e impresi6n y
e"ecos Os0arpen3 5lur3 222P2 Posi5ili)a) )e aFa)ir nue#os m6)ulos>plugins2 7 muc0as oras
caracersicas m!s
P!gina o"icial ' 0p'>>===2ir"an#ie=2com>
4icencia ' (ree=areW SCpen SourceT' NoW S,rauioT' SW Eersi6n' 32D?
Alernai#as comerciales ' AC1See O0p'>>===2ac)sysems2comP
3 PaintE?%:
1escripci6n ' Aplicaci6n )e manipulaci6n )e im!genes y "oos para Lin)o=s
+iliza)o para ' AFa)ir "!cilmene ransparencias a im!genes
Caracersicas ' Sopora capas3 )es0acer sin lmies3 e"ecos especiales y una amplia
#arie)a) )e 0erramienas iles y po)erosas2 Ampliaci6n me)iane plugins2 Permie
"ormaos PN,3 JP/,3 KMP3 ,*(3 &,A y &*((2 *ner"az gr!"ica )e usuario simple e inuii#a
P!gina o"icial ' 0p'>>===2eecs2=su2e)u>pain2ne>
4icencia ' M*&W SCpen SourceT' SW S,rauioT' SW Eersi6n' 22-
A2%
PFC ULPGC Aplicaciones Criptogrficas Java
1* Source-orge=net
1escripci6n ' Le5 )e )esarrollo )e so"=are Cpen Source m!s gran)e )el mun)o2
Caracersicas ' Proporciona acceso al almacn m!s gran)e )e *nerne so5re c6)igo y
aplicaciones Cpen Source2 A)em!s3 am5in proporciona ser#icios grauios a los
)esarrolla)ores )e so"=are Cpen Source
P!gina o"icial ' 0ps>>source"orge2ne
Alernai#as ' 0p'>>===2igris2org3 0p'>>===25erlios2)e> y 0p'>>sa#anna02gnu2org>2
1, Otros recursos
1 -renaor Personal
Caracersicas ' Procesa)or AM1 y ConeHi6n a *nerne
Sisema Cperai#o ' Lin)o=s 2$$$
Alernai#as Cpen Source ' (e)ora Pro:ec Core O0p'>>"e)ora2re)0a2com>P
2 $(3urnerCP Pro
1escripci6n ' Soluci6n para gra5ar C1s y 1E1s
Caracersicas ' (ormaos' C1GR3 C1GRL3 1E1RR>RL3 1E1GR>RL3 1E1 )o5le
capa2 ,ra5a C1s )e au)io con y sin pausas enre pisas2 A$$U li5re3 sin pu5lici)a) ni
resricciones2 Sopora la mayora )e )isposii#os *1/3 +SK3 (ire=ire y SCS*2 Copia C1s )e
au)io al )isco )uro y o5iene in"ormaci6n musical )es)e *nerne2 ,ra5a y crea im!genes
*SC2 Eeri"icaci6n )e )aos ras gra5aci6n2 Crea )iscos )e inicio )isponi5les en mliples
i)iomas2 Con#ersor enre im!genes *SC3 K*N y NR,2 Sisemas operai#os sopora)os'
Lin)o=s D@>M/>2$$$>QP>2$$3 Ser#er
P!gina o"icial ' 0p'>>===2c)5urnerHp2se>
4icencia ' (ree=areW SCpen SourceT' NoW S,rauioT' SW Eersi6n' 32$2AA%
Alernai#as ' Nero O0p'>>====2nero2comP
A2?
PFC ULPGC Aplicaciones Criptogrficas Java
3 ,eal Acaemia %spa'ola
1escripci6n ' 1iccionario online )e la Real Aca)emia /spaFola )e la lengua
P!gina o"icial ' 0p'>>===2rae2esW S,rauioT' S
4 7i@ipeia
1escripci6n ' /nciclope)ia online li5re en m!s )e cien i)iomas Bue o)os po)emos
mo)i"icar2 /s! organiza)o en arculos y caegoras2
P!gina o"icial ' 0p'>>===2=ikipe)ia2orgW S,rauioT' S
5 7orreference
1escripci6n ' 1iccionarios online )e ra)ucci6n enre i)iomas
Caracersicas ' 1iccionarios /spaFolG*ngls3 (rancsG*ngls3 *alianoG*ngls g
1iccionario *ngls
P!gina o"icial ' 0p'>>===2=or)re"erence2com
S,rauioT ' SW Alernai#as' 0p'>>===2)iccionarios2com>
6 ###Email2mailEcom
1escripci6n ' *niciai#a )e ICpen /GlearningJ consisene en o"recer "ormaci6n grauia
por *nerne )esina)a al gran p5lico
reas ' *n"orm!ica3 *)iomas3 /mpresa y Cali)a) )e #i)a
P!gina o"icial ' 0p'>>===2mailHmail2com
S,rauioT ' SW *)ioma' /spaFolW Alernai#as' 0p'>>===2emagiser2com
A2@
PFC ULPGC Aplicaciones Criptogrficas Java
7 ?otes9oler 5ite
1escripci6n ' Sencillo gesor )e noas
Caracersicas ' Permie programar recor)aorios para las noas2 /Hporar las noas a
)ocumenos )e eHo2 1ispone )e mliples i)iomas3 enre ellos el espaFol2 Permie
personalizar la iner"az2 Se aFa)e a la 5an)e:a )el sisema
P!gina o"icial '
0p'>>===2noes0ol)er2com
0p'>>noes2akla5s2com
4icencia ' (ree=areW SCpen SourceT' NoW S,rauioT' SW Eersi6n' A233
/ 6SmootA
1escripci6n ' Consruye e:ecua5les I2eHeJ para Lin)o=s con el o5:ei#o )e e:ecuar
aplicacions Ja#a )e una "orma m!s sencilla
+iliza)o para ' Consruir la #ersi6n e:ecua5le )e Argo+M4
Caracersicas ' Sencillo )e usar2 *ner"az )e usuario amiga5le y 5asane complea2
Mliples opciones )e consrucci6n' icono3 m!Buina #irual )e :a#a reBueri)a3 gesi6n )e
memoria3 222 Compleos manuales )e usuario
P!gina o"icial ' 0p'>>:smoo02source"orge2ne>
4icencia ' ,P4W SCpen SourceT' SW S,rauioT' SW Eersi6n' $2D2?
; $obian 3ac@up
1escripci6n ' Permie realizar copias )e seguri)a)
+iliza)o para ' Realizar3 )e "orma auom!ica3 copias )e seguri)a) )el proyeco
Caracersicas ' Programa)or )e copias )e seguri)a)2 Mliples i)iomas3 enre ellos el
espaFol2 Mo)o )e aplicaci6n3 ser#icio y lnea )e coman)os2 Capaci)a)es )e compresi6n y
ci"ra)o2 Copias incremenales y )i"erenciales2 *ner"az gr!"ica )e usuario sencilla e inuii#a
P!gina o"icial ' 0p'>>===2co5ian2se>
4icencia ' (ree=areW SCpen SourceT' NoW S,rauioT' SW Eersi6n' ?242-233-
A2D
PFC ULPGC Aplicaciones Criptogrficas Java
1< Aobe ,eaer
1escripci6n ' Permie la #isualizaci6n y la impresi6n )e arc0i#os P1( OPora5le
1ocumen (ormaP2
P!gina o"icial ' 0p'>>===2a)o5e2com>es>pro)ucs>acro5a>rea)ermain20ml
4icencia ' (ree=areW SCpen SourceT' NoW S,rauioT' SW Eersi6n' ?2$
15 #irectrices de #esarrollo
A lo largo )el )esarrollo )el proyeco se 0an consi)era)o o segui)o una serie )e )irecrices
relaciona)as con el pro)uco3 la imporancia )el cliene3 el ra5a:o Bue conlle#a el )esarrollo )e un
pro)uco3 la presenaci6n )el pro)uco y su )ocumenaci6n2
1 Sobre el proucto
La intro'uccin+ conclusiones . resulta'os 'e un pro'ucto son &u. i&portantes
/n la inro)ucci6n )e un pro)uco es )on)e se arae al lecor so5re la imporancia )e lo Bue se
#a a 0acer2
/n la presenaci6n )e las conclusiones y resula)os es )on)e se ransmie el mensa:e )e o)o
lo 5ueno Bue 0ay en el pro)uco2
+na )e"iciene re)acci6n )e la inro)ucci6n o una mala presenaci6n )e las conclusiones y
resula)os3 pone en enre)ic0o la cali)a) glo5al )el pro)uco2
!o'o pro'ucto 'e"e poseer caractersticas i&portantes
&o)o pro)uco3 )esarrollo y>o presenaci6n )e5e poseer un con:uno )e caracersicas3 ales
como' Kuena esrucuraci6n3 Clari)a)3 Con#ergencia 0acia un o5:ei#o3 Co0erencia3 Resalar lo
imporane y /legancia2
La sencille2 es &u. i&portante
4a 0omogenei)a) es "!cil )e enen)er3 mane:ar3 asimilar3 ec222 Sin em5argo3 la
0eerogenei)a) pro#oca o)o lo conrario2
4as ciencias cnicas3 y en paricular la ciencia )e la compuaci6n3 se )an a conocer al mun)o
me)iane rminos muy cnicos y muy poco "amiliares para el gran p5lico2
A3$
PFC ULPGC Aplicaciones Criptogrficas Java
!o'o Pro.ecto Fin 'e Carrera 'e"e resaltar ciertos aspectos
/Hise un con:uno )e aspecos Bue son ineresanes a resalar )e un proyeco "in )e carrera2
/sos aspecos son' Sus resula)os3 Sus conclusiones3 /l iners )el proyeco3 4a uili)a) )el
proyeco en el !m5io social3 4a cali)a) )el ra5a:o realiza)o3 4a )i"icula) )el ra5a:o realiza)o3 4a
:usi"icaci6n )el iempo emplea)o3 (acili)a) )e uilizaci6n )e los resula)os )el proyeco por
erceras personas3 Pu5lici)a) )el proyeco a ra#s )e p!ginas =e53 ec222 y Car!cer inegra)or )e
conocimienos cnicos2
2 5a importancia el cliente
Es esencial enten'er la ver'a'era necesi'a' 'el cliente
Cuan)o 0a5lamos )e #en)er un pro)uco3 es esencial enen)er la #er)a)era necesi)a) o )eseo
)el cliene3 esa5lecien)o priori)a)es2
4os principales o5:ei#os )e ese principio son' Realizar una presenaci6n e"eci#a3
1i"erenciar lo Bue es imporane y lo Bue no lo es3 1i"erenciarse )e la compeencia3 A mayor gra)o
)e con"ianza3 menor gra)o )e resisencia2
/s! 5asa)o en la 4ey )e Pareo Bue )ice' ISi se aien)e al 2$U )e las principales necesi)a)es
o )eseos )e un cliene3 se Bue)ar! impaca)o posii#amene en un @$UJ2 Algunos e:emplos son'
/l cliene no )esea conocer los )ealles )e la cripogra"a3 simplemene )esea crear
o5:eos seguros2
/s como aBuel cliene Bue #a a una "erreera y pi)e una 5roca2 Zl no necesia una
5roca3 lo Bue realmene necesia es un agu:ero en la pare)2
Es &u. i&portante i'entificar a los clientes potenciales 'el pro'ucto
Para ello es imporane realizar las siguienes pregunas' S;uin es el cliene )el pro)ucoT3
SA Buin #a )irigi)oT
+n e:emplo po)ra ser' /n el caso )e una re)acci6n3 es imporane ponerse en el lugar )el
poencial lecor3 pregunarse IS/l lecor capar! la i)eaTJ y no presuponer na)a2
A3A
PFC ULPGC Aplicaciones Criptogrficas Java
3 Sobre el esarrollo e un proucto
-escansar 'e for&a inteligente es i&portante
/s imporane ya Bue as' Se a)Buiere perspeci#a3 Se aumena la o5:ei#i)a)3 Se aumena el
seni)o crico2
+n e:emplo sera' Re)acar 5ien iene su )i"icula) y no o)os los )as enemos la inspiraci6n
a)ecua)a3 para esos )as negros3 Bue no nos #iene na)a a la ca5eza3 lo me:or es )e)icarse a cosas
m!s mec!nicas Bue no reBuieren ana concenraci6n3 como pue)e ser complear la 5i5liogra"a3 ir
0acien)o un manual )e usuario o un aneHo cnico3 ec222
4 Sobre la presentacin e un proucto
Los pri&eros &inutos 'e una presentacin son los &s i&portantes
4os primeros minuos )e una presenaci6n son los m!s imporanes ya Bue su moi#o es'
I,anarse al p5lico si se 0ace 5ien3 o per)erlos para siempre en caso conrarioJ2
Los Mlti&os &inutos 'e una presentacin ta&"iKn son &u. i&portantes
4os limos minuos )e una presenaci6n am5in son muy imporanes con el o5:ei#o )e
I1e:ar un 5uen sa5or )e 5ocaJ2
La presentacin 'el pro'ucto es igual 'e i&portante #ue el propio pro'ucto
4a presenaci6n )e un pro)uco es como mnimo igual )e imporane Bue el propio pro)uco
La presentacin oral 'e"e satisfacer unos criterios concretos &u. i&portantes
4a presenaci6n oral )e un pro)uco )e5e sais"acer unos crierios concreos muy imporanes'
&ransmiir correcamene la i)ea principal )el pro)uco3 /Hponer el pro)uco )e "orma Bue resule
ineresane3 A:usarse al gui6n escrio3 A:usarse al iempo3 Rimo )e presenaci6n a)ecua)o3
(lui)ez en la presenaci6n y /#iar los silencios improce)enes2
El lengua%e utili2a'o en una presentacin oral 'e"e ser a'ecua'o
/l lengua:e uiliza)o en una eHposici6n oral )e5e sais"acer unos crierios concreos e
in)ispensa5les Bue son' 4engua:e a)ecua)o3 ni )emasia)o "ormal ni coloBuial3 /#iar uilizar
muleillas3 9a5lar alo y claro3 Eocalizar correcamene y Mo)ular correcamene el ono )e #oz
para capar la aenci6n2
A32
PFC ULPGC Aplicaciones Criptogrficas Java
La i&agen 'el presenta'or 'e"e ser a'ecua'a
4a imagen )el presena)or en una eHposici6n oral )e5e cumplir una serie )e caracersicas
)esea5les' Mosrar seguri)a) en lo Bue se )ice3 &ransmiir enusiasmo3 ,esiculaci6n con las
manos3 9a5ili)a)es en la comunicaci6n no oral y Mirar al p5lico correcamene2
5 Sobre la ocumentacin e un proucto
La 'ocu&entacin 'e"e ser entreteni'a
Apren)er leyen)o es! 5ien3 pero es! muc0o me:or apren)er )i#irin)ose2
La canti'a' 'ocu&entacin no es i&portante
4a cani)a) )e )ocumenaci6n no es imporane3 s6lo su coneni)o lo es2
A33
PFC ULPGC Aplicaciones Criptogrficas Java
A34
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
B#Preguntas recuentes
/sa secci6n am5in es conoci)a como (A;s e incluye las pregunas m!s "recuenes Bue el
lecor )e ese proyeco pue)e 0acerse2 Pues 5ien3 aBu se resol#er!n algunas )e ellas2
/sas pregunas se 0an clasi"ica)o por caegoras y sus respuesas se muesran en )os
#ersiones3 una cora y ora larga2 /sas caegoras son' ISo5re el proyeco en cuesi6nJ3 ISo5re la
)ocumenaci6n y su esrucuraJ3 ISo5re los resula)os uiliza)osJ3 ISo5re el proyeco en sJ3 ISo5re
las )i"icula)es y erroresJ3 ISo5re la meo)ologa y la emporizaci6nJ y IS;u opina el mun)o )e
ese proyecoTJ2
;uiz!s3 la preguna m!s imporane po)ra ser' ISPor Bu no se 0a )esarrolla)o un con:uno
)e aplicacionesTJ /s )ecir3 ISporBue no se 0a cumpli)o uno )e los )os o5:ei#os )e ese proyecoTJ2
Respon)ien)o )e "orma cora3 se po)ra po)ra )ecir Bue' IPorBue ras realizar el an!lisis surgi6 una
i)ea me:orJ2 4a respuesa m!s larga sera' I4a raz6n )e eHisencia )el segun)o o5:ei#o pre#iso
XMosrar aplicaciones )e las cnicas cripogr!"icas me)iane so"=are )esarrolla)o en el proyecoY
simplemene era el )e pro5ar Bue realmene se 0a5a alcanza)o el primer o5:ei#o' XApren)er a
uilizar cnicas cripogr!"icasY2 &ras "inalizar el esu)io preliminar3 se consi)er6 Bue era muc0o
me:or )esarrollar algo nue#o3 anes Bue realizar un con:uno )e aplicaciones represenai#as )e la
cripogra"a3 lo cual no es na)a no#e)oso2 A)em!s3 ya eHisen 0erramienas muy 5uenas como
ICryp&oolJ O0p'>>===2crypool2com>P3 &rueCryp O0p'>>===2ruecryp2org>P y AHCryp
O0p'>>aHcryp2source"orge2neP )e c6)igo a5iero y oras "ree=are ales como I/ncrypCnClickJ y
I(ingerPrinJ O0p'>>===225rig0sparks2com>P2J2
&am5in son ineresanes las siguienes cuesiones Bue se respon)er!n aBu )e "orma 5re#e'
SCu!l es el amaFo )el proyecoT Su amaFo es 5asane gran)e ya Bue es! compueso
por 3A42 clases3 3A- campos3 2DA4 mo)os3 ?3D-D lneas )e c6)igo y 22D4A lneas )e
comenarios2
SCu!l 0a si)o el cose )el proyecoT /con6mico ninguno al uilizar 0erramienas
grauias pero el cose )e iempo )e esima enre 2$$$ y 3$$$ 0orasW m!s )e un aFo )e
ra5a:o sin pausa2
S;u meo)ologa se 0a uiliza)oT Se 0a uiliza)a la cl!sica Oan!lisis3 )iseFo3
implemenaci6n y prue5asP con reroalimenaciones2
/n las siguienes secciones po)r!n enconrar m!s pregunas "recuenes con respuesas coras y
largas2
Para mayor in"ormaci6n pue)e consular la =e5 0p'>>:ce"2source"orge2ne2
A3-
PFC ULPGC Aplicaciones Criptogrficas Java
1 So)re el pro+ecto en cuesti/n
1 FPor qu8 no se Aa esarrollao un con1unto e aplicacionesG
Respuesa cora' PorBue ras realizar el an!lisis surgi6 una i)ea me:or2
Respuesa larga' 4a raz6n )e eHisencia )el segun)o o5:ei#o pre#iso IMosrar aplicaciones
)e las cnicas cripogr!"icas me)iane so"=are )esarrolla)o en el proyecoJ simplemene era el )e
pro5ar Bue realmene se 0a5a alcanza)o el primer o5:ei#o' IApren)er a uilizar cnicas
cripogr!"icasJ2
&ras "inalizar el esu)io preliminar3 se consi)er6 Bue era muc0o me:or )esarrollar algo nue#o3
anes Bue realizar un con:uno )e aplicaciones represenai#as )e la cripogra"a3 lo cual no es na)a
no#e)oso2 A)em!s3 ya eHisen 0erramienas muy 5uenas como ICryp&oolJ
O0p'>>===2crypool2com>P y &rueCryp O0p'>>===2ruecryp2org>P )e c6)igo a5iero y oras
"ree=are ales como I/ncrypCnClickJ y I(ingerPrinJ O0p'>>===225rig0sparks2com>P2
2 FPor qu8 se Aa intentao evitar en la meia e lo posible usar t8rminos
t8cnicosG
Respuesa cora' PorBue son oalmene innecesarios y per:u)iciales2
Respuesa larga' 4os rminos cnicos s6lo son enen)i5les por un grupo re)uci)o )e
personas3 no por el p5lico en general2 A)em!s3 eso 0a permii)o o5ener la #er)a)era
"uncionali)a) )e la cripogra"a3 asegurar o5:eos2
3 FPor qu8 no se Aa entrao en etalle en el tema e la cripto!rafaG
Respuesa cora' PorBue no 0a si)o necesario2
Respuesa larga' 4a cripogra"a no sir#e para na)a sino se le saca pro#ec0o y ese proyeco
raa principalmene )e sacarle el m!Himo pari)o a la cripogra"a3 no en enrar en )ealles2
A3%
PFC ULPGC Aplicaciones Criptogrficas Java
4 F(e ne sur!e la iea el proyectoG
Respuesa cora' 12 Jess Mara Ramos Saky O*ngeniero *n"orm!icoP
Respuesa larga' /n especial surge )el iners en )esarrollar sisemas seguros3 concreamene3
sisemas )e gesi6n )e 5ases )e )aos oriena)os a o5:eos2
5 FHui8n es el autor e la propuesta e Proyecto >in e $arreraG
12 Jess Mara Ramos Saky O*ngeniero *n"orm!icoP
2 So)re la documentaci/n + su estructura
1 FPor qu8 no se Aa se!uio la estructura !eneral e un proyecto fin e
carreraG
Respuesa cora' Se consi)er6 Bue la esrucura ra)icional es anigua y muy general2
Respuesa larga' /n general3 no es! pensa)a para una "!cil y r!pi)a comprensi6n )el
proyeco2
2 F:oas las fuentes e informacin e2puestas Aan sio utili*aasG
Respuesa cora' S3 o)as las Bue se 0an pueso es porBue 0an si)o uiliza)as para la
ela5oraci6n )e la )ocumenaci6n2
Respuesa larga' Por oro la)o3 am5in es ciero Bue se 0an consula)o muc0as oras "uenes
)e in"ormaci6n Bue "inalmene no 0an si)o uiliza)as )e una "orma claramene i)eni"ica5le en la
)ocumenaci6n3 pero s 0an ser#i)o para a)Buirir mayor conocimieno so5re los emas2
A3?
PFC ULPGC Aplicaciones Criptogrficas Java
3 FPor qu8 las referencias a biblio!rafa no Aan sio colocaas en los
captulosG
Respuesa cora' Pues porBue se consi)eran Bue )on)e es!n3 siempre esar!n m!s a mano y
a)em!s no se inerrumpe al lecor con los accesos )irecos a las re"erencias2
Respuesa larga' Por lo ano3 se consi)era Bue no 0ay me:or siio para colocar las re"erencias
Bue en el capulo )e IRecursos uiliza)osJ2
4 FPor qu8 la ocumentacin es escasa en cuestin e volumenG
Respuesa cora' No es escasa3 es :usa y su"iciene2
Respuesa larga' /l #olumen )e la )ocumenaci6n no es imporane3 lo imporane es el
coneni)o y Bue es 5ien re"erencia)o2 &am5in 0ay Bue )ecir Bue o)a la )ocumenaci6n es
oalmene original3 sal#o algunos peBueFos "ragmenosW es )ecir3 nunca se 0a copia)o y pega)o
in"ormaci6n al cual #ena )e su "uene )e in"ormaci6n y am5in se 0a coloca)o s6lo lo imporane2
Si se Buieren m!s )ealles3 para ello eHisen los recursos uiliza)os2 9u5iera resula)o muy "!cil
0acer Bue el #olumen )e la )ocumenaci6n "uera mayor3 5asara con 0acer la lera m!s gran)e y
copiar un mon6n )e in"ormaci6n )e las "uenes consula)as y no por ello3 el proyeco esara me:or
)ocumena)o2
5 FPor qu8 se Aa !enerao la ocumentacin e forma muy esquem)ticaG
Respuesa cora' /s una apuesa personal2 4a )ocumenaci6n narrai#a )e:a muc0o Bue )esear2
Respuesa larga' 4o nico Bue se 0u5iera gana)o )ocumenan)o )e "orma narrai#a3 sera el
a0orro )e p!ginas3 pero por el conrario3 se )i"iculara la comprensi6n )e la in"ormaci6n eHpuesa3
ya Bue el lecor en)ra Bue consruirse sus propios esBuemas menales2
6 F%l enfoque e la cripto!rafa orientaa a ob1etos es entenibleG
Respuesa cora' S2
Respuesa larga' 9a si)o corro5ora)o por #arias personas con y sin conocimienos pre#ios )e
cripogra"a2
A3@
PFC ULPGC Aplicaciones Criptogrficas Java
3 So)re los recursos utili%ados
1 F9a valio la pena utili*ar recursos 1<<I -pen Source o >ree#areG
Respuesa cora' S2
Respuesa larga' *n)u)a5lemene3 ya Bue se po)ra )ecir Bue )esarrollar el proyeco no 0a
cosa)o )inero3 s6lo iempo2
2 FPor qu8 se ecii utili*ar Aerramientas e2clusivamente -pen Source o
>ree#areG
Respuesa cora' Por principios morales3 icos3 pro"esionales3 legales y comerciales2
Respuesa larga' 1e5i)o a Bue uilizar so"=are comercial piraa 0aca Bue siniera
remor)imienos2 Pienso Bue el )a )e maFana a m ampoco me gusara Bue piraearan mi ra5a:o2
3 FPor qu8 se Aa utili*ao 7ino#s en lu!ar e un sistema operativo -pen
SourceG
Respuesa cora' Por pro5lemas )e compai5ili)a) )e 0ar)=are2
Respuesa larga' 1urane muc0o iempo se inen6 uilizar sisemas operai#os 4inuH )e
c6)igo a5iero y grauios3 pero por pro5lemas )e compai5ili)a) )e 0ar)=are u#e Bue usar
Lin)o=s2
4 So)re el pro+ecto en s!
1 %l ise'o es sumamente simpleJ Festo es bueno o maloG
Respuesa cora' &oalmene 5ueno2
Respuesa larga' 4legar a ese )iseFo no 0a si)o "ruo )e la casuali)a) ni resula)o )e un )a2
Para llegar 0asa aBu se 0an pasa)o por un mon6n )e )iseFos pre#ios2
A3D
PFC ULPGC Aplicaciones Criptogrficas Java
2 FHu8 tama'o y coste tiene el proyectoG
Respuesa cora' Su amaFo es 5asane gran)e ya Bue es! compueso por 3A42 clases3 3A-
campos3 2DA4 mo)os3 ?3D-D lneas )e c6)igo y 22D4A lneas )e comenarios2
Respuesa larga' Para 0acerse una me:or i)ea3 se pue)e comparar el proyeco con oros ya
eHisenes escrios en Ja#a ales como I1r2 Ja#aJ Oun enorno )e )esarrollo para Ja#a3
0p'>>)r:a#a2source"orge2neP3 I,an Pro:ecJ O0erramiena )e gesi6n3
0p'>>ganpro:ec2source"orge2neP3 I9&M4 +niJ OPrue5as para aplicaciones =e53
0p'>>0mluni2source"orge2neP3 IiReporJ O1iseFa)or #isual )e in"ormes3
0p'>>irepor2source"orge2neP3 Ii&eHJ O,enera)or )e "ic0eros P1(3
0p'>>===2lo=agie2com>i&eH>P3 IJAHeJ O/)ior QM43 0p'>>:aHe2source"orge2neP y IJ/)iJ
O/)ior )e eHo para programa)ores3 0p'>>===2:e)i2orgP2
Proyecto Clases Cam%os Mtodos 6neas de C!digo 6neas de Comentarios
1r2 Ja#a 3-- %@$ A?3D -$3-@ 24-%3
,an Pro:ec 3$3 A24A A4D2 3AD4? 2%433
9&M4 +ni 2?4 44D 22?A -%4%3 24?43
iRepor 2D@ 24?- 3-A% ???%$ A4@$-
i&eH 4A- 4A@$ 42A% A244$- 4?-AA
JAHe A3- 4D? @@? 233A- 33@-
J/)i ?%- 32%3 4?@D A3DD$$ 4D@%?
A%licaciones
Cri%togr0icas
Ja(a
-"9$ -"? $C"9 B-C?C $$C9"
!a"la GJ: !a&a$os 'e este pro.ecto . otros
/se proyeco coniene 3A42 clases3 3A- campos3 2DA4 mo)os3 ?3D-D lneas )e c6)igo y
22D4A lneas )e comenarios2 1enro )e esos )aos ya se encuenran inclui)os las mricas para las
prue5as3 cuyas )imensiones concreas son A?24 clases3 ?3 campos3 D-@ mo)os3 3$D3% lneas )e
c6)igo y @AAD lneas )e comenarios2 A)em!s3 am5in se incluyen las mricas para el manual )e
usuario )e JC/(3 cuyos )aos son AA clases3 3 campos3 4A2 mo)os3 4-?2 lneas )e c6)igo y -?4$
lneas )e comenarios2
Cra mrica para imaginarse el cose )e ese proyeco es el iempo )e )esarrollo y realizaci6n
)el mismoW el cual se esima enre un mnimo )e 2$$$ 0oras )e ra5a:o y un m!Himo )e 3$$$ 0oras2
/se proyeco 0a eni)o pocas pausas )urane su )esarrollo3 el cual comenz6 a "inales )e "e5rero )e
2$$- y ermin6 a "inales )e mayo )e 2$$%3 es )ecir3 m!s )e un aFo )e )esarrollo2
A4$
PFC ULPGC Aplicaciones Criptogrficas Java
3 FPor qu8 no Aay re!istro e los anteriores ise'osG
Respuesa cora' PorBue siempre "ueron consi)era)os pasos pre#ios 0acia el )iseFo "inal2
Respuesa larga' &o)o )iseFo anerior es en o)os los seni)os in"erior al )iseFo "inal3 por lo
Bue no 0ay caracersicas posii#as )e )iseFos aneriores Bue 0icieran razona5le la super#i#encia )e
)ic0o )iseFo aunBue s6lo "uera )ocumena)o2
4 FSe implementan al!oritmos cripto!r)ficosG
Respuesa cora' No2
Respuesa larga' Se po)ra )ecir Bue no3 aunBue en reali)a) implemena algn Bue oro
algorimo cripogr!"ico para complear los pro#ee)ores cripogr!"icos ya eHisenes2 Pero en
general3 simplemene "acilia enormemene el uso )e los mismos a5srayen)o un mon6n )e
)ealles2
& So)re las dificultades + errores
1 FHu8 es lo que m)s Aa costaoG
Respuesa cora' No a5an)onar )e manera casi permanene el proyeco2
Respuesa larga'
IEi#irJ con las i)eas' Sle gusar! al ri5unalT3 Sse 0a5r!n oma)o las )ecisiones
correcasT2
Manener el rimo2
4a realizaci6n )e las areas no creai#as2
4a 5sBue)a )e una i)ea nue#a2
/l nue#o en"oBue )e la Cripogra"a Criena)a a C5:eos2
Re)iseFar y re)iseFar cieros aspecos2
+ilizar algunos recursos resula5a "rusrane2 Por e:emplo3 el CpenC""ice se colga5a y
per)a in"ormaci6n3 y el Argo+M4 no era na)a amiga5le )e usar2
&ra5a:ar en el proyeco )urane m!s )e un aFo2
A4A
PFC ULPGC Aplicaciones Criptogrficas Java
* So)re la metodolog!a + la tempori%aci/n
1 F$u)l Aa sio la metoolo!a empleaa en el esarrollo el proyectoG
Respuesa cora' 4a cl!sica2
Respuesa larga' 4a 5asa)a en el ciclo )e #i)a cl!sico )el so"=are' An!lisis3 1iseFo3
*mplemenaci6n y Prue5as con reroalimenaciones2
2 FSe Aan cumplio los tiempos previstosG
Respuesa cora' No2
Respuesa larga' /l iempo real )e )e)icaci6n al proyeco es! muy ale:a)o )el esima)o
inicialmene3 y es Bue 0ay Bue ener en cuena Bue es la primera #ez Bue esimo iempos2
3 F$u)l Aa sio la tempori*acin e caa una e las etapas el proyectoG
,ta%as ,stimaci!n Real 2ierencia
/su)io Preliminar @$ 0oras 4-$ 0oras 3?$ 0oras
1esarrollo A4$ 0oras A4$$ 0oras A2%$ 0oras
Presenaci6n @$ 0oras --$ 0oras 4?$ 0oras
.otal 3$$ 0oras 2-$$ 0oras 22$$ 0oras
!a"la G1: !e&pori2acin 'el pro.ecto
4 FPor qu8 no se Aan estimao los tiempos con mayor etalleG
Respuesa cora' No se consi)er6 il2
Respuesa larga' 1es)e un principio se sa5a Bue las esimaciones )e iempo i5an a resular
oalmene una pr)i)a )e iempo3 ya Bue se carece )e eHperiencia al respeco2 Pre)ecir la cani)a)
)e iempo Bue se ar)ar! en realizar una area es )emasia)o comple:o y reBuiere )e su"icienes
eHperiencias aneriores para o5ener una esimaci6n cercana a los iempos reales2
A42
PFC ULPGC Aplicaciones Criptogrficas Java
5 F%l tiempo empleao es ra*onable para lo conse!uioG
Respuesa cora' 1epen)e )e con Buien y>o Bu se compare2
Respuesa larga' Se es consciene )e Bue un ingeniero m!s eHperimena)o en el )esarrollo )e
proyecos 0u5iera )esarrolla)o ese mismo ra5a:o en muc0o menos iempo2
6 F&ale la pena reali*ar el control e tiemposG
Respuesa cora' 1epen)e2
Respuesa larga' S6lo si se #a a sacar pro#ec0o )e l en un "uuro pr6Himo2
, >?u" opina el mundo de este pro+ecto@
(El conteni'o est "ien+ no veo fallos+ est "astante co&pleto+ cual#uiera #ue sepa algo 'e
criptografa no ten'ra pro"le&as en la lectura 'el conteni'o . para alguien #ue no tenga ni i'ea
'e criptografa creo #ue po'ra seguir sin pro"le&as la lectura+ pero para &i gusto+ . enci&a
sien'o la &e&oria 'e un pro.ecto+ lo veo &u. es#ue&tico+ &uc=as ta"las+ lengua%e &u. poco
for&al+ etc777 lo cual+ por lo &enos a &+ &e &olesta un poco al leerlo+ pero por lo 'e&s+ est
correcto o al &enos no veo fallos a si&ple vista)2
(En general &e pareci #ue era "astante enten'i"le+ el for&ato es sencillo+ claro . poco
te'ioso)2
A43
PFC ULPGC Aplicaciones Criptogrficas Java
A44
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
D#Endice de tablas
.ablas
&a5la A' PeBueFo e:emplo )e uno )e los #alores aFa)i)os )e JC/(22222222222222222222222222222222222222222222222222A%
&a5la 2' Componenes )e una arBuiecura )e seguri)a) y sus o5:ei#os222222222222222222222222222222222222222222 22
&a5la 3' Comparai#a enre AaBues Pasi#os y Aci#os OA>2P22222222222222222222222222222222222222222222222222222222222222
&a5la 4' Comparai#a enre AaBues Pasi#os y Aci#os O2>2P22222222222222222222222222222222222222222222222222222222222223
&a5la -' AaBues Pasi#os y sus C5:ei#os222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 23
&a5la %' Cros nom5res )e los aaBues pasi#os222222222222222222222222222222222222222222222222222222222222222222222222222222222223
&a5la ?' AaBues Aci#os y sus o5:ei#os22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222-
&a5la @' Cros nom5res )e los aaBues aci#os2222222222222222222222222222222222222222222222222222222222222222222222222222222222 2-
&a5la D' Ser#icios )e Seguri)a) y sus C5:ei#os2222222222222222222222222222222222222222222222222222222222222222222222222222222 2?
&a5la A$' 4os Ser#icios )e Seguri)a) y la #i)a coi)iana2222222222222222222222222222222222222222222222222222222222222222222@
&a5la AA' AaBues )e"en)i)os por los Ser#icios )e Seguri)a)2222222222222222222222222222222222222222222222222222222222 2@
&a5la A2' Mecanismos uiliza)os por los ser#icios2222222222222222222222222222222222222222222222222222222222222222222222222222 2D
&a5la A3' &ipos )e o5:eos cripogr!"icos222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 3A
&a5la A4' Caracersicas )e los o5:eos222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 3A
&a5la A-' Cperaciones Cripogr!"icas y sus "unciones2222222222222222222222222222222222222222222222222222222222222222222222 32
&a5la A%' Caegoras )e proecci6n y sus cla#es22222222222222222222222222222222222222222222222222222222222222222222222222222222 32
&a5la A?' Propie)a)es )e o)o aueni"ica)or222222222222222222222222222222222222222222222222222222222222222222222222222222222222 34
&a5la A@' &ipos )e aueni"ica)ores y sus )escripciones2222222222222222222222222222222222222222222222222222222222222222222234
&a5la AD' Caegoras )e Aueni"icaci6n y sus cla#es222222222222222222222222222222222222222222222222222222222222222222222222 3-
&a5la 2$' Aclaraciones a)icionales so5re los )isinos ipos )e cla#es OA>2P2222222222222222222222222222222222222 3%
&a5la 2A' Aclaraciones a)icionales so5re los )isinos ipos )e cla#es O2>2P2222222222222222222222222222222222222 3%
&a5la 22' Pro5lemas )e las operaciones cripogr!"icas22222222222222222222222222222222222222222222222222222222222222222222223%
&a5la 23' Soluciones a los pro5lemas )e las operaciones cripogr!"icas2222222222222222222222222222222222222222222 3?
&a5la 24' Caracersicas principales )e las operaciones cripogr!"icas2222222222222222222222222222222222222222222223?
&a5la 2-' Aplicaciones principales )e las operaciones cripogr!"icas22222222222222222222222222222222222222222222222 3@
&a5la 2%' Ser#icios )e seguri)a) y las operaciones cripogr!"icas2222222222222222222222222222222222222222222222222222 3@
&a5la 2?' Propie)a)es generales )e un algorimo cripogr!"icamene seguro22222222222222222222222222222222222 3D
&a5la 2@' Crierios )e selecci6n )e algorimos cripogr!"icos22222222222222222222222222222222222222222222222222222222222 4$
&a5la 2D' Aplicaciones so5re ISeguri)a) )e las comunicacionesJ22222222222222222222222222222222222222222222222222224A
&a5la 3$' Aplicaciones so5re I*)eni"icaci6n y Aueni"icaci6nJ2222222222222222222222222222222222222222222222222222224A
&a5la 3A' Aplicaciones so5re IProecci6n )e so"=areJ22222222222222222222222222222222222222222222222222222222222222222222 4A
&a5la 32' Aplicaciones so5re IComercio /lecr6nicoJ222222222222222222222222222222222222222222222222222222222222222222222242
&a5la 33' Concepos y sus rminos cnicos OA>2P2222222222222222222222222222222222222222222222222222222222222222222222222222 42
&a5la 34' Concepos y sus rminos cnicos O2>2P2222222222222222222222222222222222222222222222222222222222222222222222222222 43
&a5la 3-' PeBueFo e:emplo )e uno )e los #alores aFa)i)os )e JC/(2222222222222222222222222222222222222222222222224@
&a5la 3%' JC/( [ A2 Asegurar un o5:eo con nue#os par!meros cripogr!"icos2222222222222222222222222222222 ?A
&a5la 3?' JC/( [ 22 Almacenar par!meros cripogr!"icos para un uso poserior22222222222222222222222222222 ?2
A4-
PFC ULPGC Aplicaciones Criptogrficas Java
&a5la 3@' JC/( [ 32 C5ener el o5:eo asegura)o uilizan)o los nue#os par!meros cripogr!"icos2 ?2
&a5la 3D' JC/( [ 42 Asegurar oro o5:eo reuilizan)o par!meros cripogr!"icos ya eHisenes222222 ?3
&a5la 4$' JC/( [ -2 C5ener el o5:eo asegura)o reuilizan)o par!meros cripogr!"icos ya
eHisenes22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?3
&a5la 4A' JC/ [ A2A2 1e"inici6n )el o5:eo a asegurar y carga )el pro#ee)or22222222222222222222222222222222222 ?4
&a5la 42' JC/ [ A222 1e"inici6n )el genera)or )e cla#es simricas2222222222222222222222222222222222222222222222222 ?-
&a5la 43' JC/ [ A232 *nicializaci6n )el genera)or )e cla#es simricas y generaci6n )e la cla#e22222 ?-
&a5la 44' JC/ [ A242 1e"inici6n )el genera)or )e par!meros22222222222222222222222222222222222222222222222222222222222?%
&a5la 4-' JC/ [ A2-2 *nicializaci6n )el genera)or )e par!meros222222222222222222222222222222222222222222222222222222 ?%
&a5la 4%' JC/ [ A2%2 ,eneraci6n )el par!mero222222222222222222222222222222222222222222222222222222222222222222222222222222222??
&a5la 4?' JC/ [ A2?2 1e"inici6n )el algorimo )e seguri)a)2222222222222222222222222222222222222222222222222222222222222 ??
&a5la 4@' JC/ [ A2@2 *nicializaci6n )el algorimo )e seguri)a)222222222222222222222222222222222222222222222222222222222?@
&a5la 4D' JC/ [ A2D2 C5enci6n )el par!mero Bue se 0aya po)i)o generar auom!icamene222222222 ?@
&a5la -$' JC/ [ A2A$2 Creaci6n )el o5:eo seguro22222222222222222222222222222222222222222222222222222222222222222222222222222 ?D
&a5la -A' JC/ [ 22A2 &ra)ucci6n )e la cla#e22222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?D
&a5la -2' JC/ [ 2222 &ra)ucci6n )el par!mero222222222222222222222222222222222222222222222222222222222222222222222222222222222 @$
&a5la -3' JC/ [ 2232 Cra ra)ucci6n )el par!mero22222222222222222222222222222222222222222222222222222222222222222222222222 @$
&a5la -4' JC/ [ 2242 Almacenamieno )e los par!meros222222222222222222222222222222222222222222222222222222222222222222@$
&a5la --' JC/ [ 32A2 Carga )e los par!meros22222222222222222222222222222222222222222222222222222222222222222222222222222222222 @A
&a5la -%' JC/ [ 3222 1e"inici6n )el algorimo )e seguri)a)2222222222222222222222222222222222222222222222222222222222222 @A
&a5la -?' JC/ [ 3232 &ra)ucci6n )e los par!meros a la "orma a)ecua)a222222222222222222222222222222222222222222@2
&a5la -@' JC/ [ 3242 *nicializaci6n )el algorimo )e seguri)a) para )esproecci6n22222222222222222222222222@2
&a5la -D' JC/ [ 32-2 C5enci6n )el o5:eo asegura)o22222222222222222222222222222222222222222222222222222222222222222222222 @3
&a5la %$' JC/ [ 42A2 1e"inici6n )el o5:eo y carga )e los par!meros2222222222222222222222222222222222222222222222 @3
&a5la %A' JC/ [ 4222 &ra)ucci6n )e la cla#e a su "orma a)ecua)a2222222222222222222222222222222222222222222222222222 @3
&a5la %2' JC/ [ 4232 &ra)ucci6n )el par!mero a su "orma a)ecua)a22222222222222222222222222222222222222222222222 @4
&a5la %3' JC/ [ 4242 1e"inici6n )el algorimo )e seguri)a)2222222222222222222222222222222222222222222222222222222222222 @4
&a5la %4' JC/ [ 42-2 *nicializaci6n )el algorimo )e seguri)a) para proecci6n2222222222222222222222222222222 @-
&a5la %-' JC/ [ 42%2 C5enci6n )el par!mero si "uera genera)o auom!icamene22222222222222222222222222@-
&a5la %%' JC/ [ 42?2 Creaci6n )el o5:eo seguro2222222222222222222222222222222222222222222222222222222222222222222222222222222 @%
&a5la %?' JC/ [ -2A2 Carga )e los par!meros22222222222222222222222222222222222222222222222222222222222222222222222222222222222 @%
&a5la %@' JC/ [ -222 1e"inici6n )el algorimo )e seguri)a)2222222222222222222222222222222222222222222222222222222222222 @%
&a5la %D' JC/ [ -232 &ra)ucci6n )e la cla#e a su "orma a)ecua)a2222222222222222222222222222222222222222222222222222 @?
&a5la ?$' JC/ [ -242 &ra)ucci6n )el par!mero a su "orma a)ecua)a22222222222222222222222222222222222222222222222 @?
&a5la ?A' JC/ [ -2-2 *nicializaci6n )el algorimo )e seguri)a) para )esproecci6n22222222222222222222222222@@
&a5la ?2' JC/ [ -2%2 C5enci6n )el o5:eo asegura)o22222222222222222222222222222222222222222222222222222222222222222222222 @@
&a5la ?3' (uuro Proyeco' Ampliaciones )e JC/(222222222222222222222222222222222222222222222222222222222222222222222222222 D2
&a5la ?4' (uuro Proyeco' Prue5as so5re algorimos JC/(22222222222222222222222222222222222222222222222222222222222222D3
&a5la ?-' (uuro Proyeco' Ceri"ica)os 1igiales con JC/(222222222222222222222222222222222222222222222222222222222222 D4
&a5la ?%' (uuro Proyeco' Arc0i#os Seguros con JC/(2222222222222222222222222222222222222222222222222222222222222222222D-
&a5la ??' (uuro Proyeco' Pro#ee)or Cripogr!"ico JC/(222222222222222222222222222222222222222222222222222222222222222 D%
&a5la ?@' (uuro Proyeco' Almacn )e o5:eos seguros con JC/(22222222222222222222222222222222222222222222222222 D?
&a5la ?D' (uuro Proyeco' Meaimplemenaci6n )e IAplicaciones Cripogr!"icas Ja#aJ2222222222222222D@
&a5la @$' &amaFos )e ese proyeco y oros222222222222222222222222222222222222222222222222222222222222222222222222222222222222 A4$
&a5la @A' &emporizaci6n )el proyeco222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222A42
A4%
PFC ULPGC Aplicaciones Criptogrficas Java
...................................................................
C#Endice de ilustraciones
Ilustraciones
*lusraci6n A' JC/( acerca la cripogra"a al usuario22222222222222222222222222222222222222222222222222222222222222222222222222A4
*lusraci6n 2' /#oluci6n en el iempo )e la seguri)a) y la in"orm!ica222222222222222222222222222222222222222222222 2A
*lusraci6n 3' C5enci6n )el coneni)o )e mensa:es22222222222222222222222222222222222222222222222222222222222222222222222222 24
*lusraci6n 4' An!lisis )el r!"ico2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 24
*lusraci6n -' Suplanaci6n )e i)eni)a)22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 2-
*lusraci6n %' Repeici6n )e mensa:es222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 2%
*lusraci6n ?' Mo)i"icaci6n )e mensa:es22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 2%
*lusraci6n @' *nerrupci6n )e ser#icio2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222?
*lusraci6n D' Proecci6n y 1esproecci6n Simricas222222222222222222222222222222222222222222222222222222222222222222222222 33
*lusraci6n A$' Proecci6n y 1esproecci6n Asimricas2222222222222222222222222222222222222222222222222222222222222222222233
*lusraci6n AA' C5:eo Aueni"ica5le me)iane 9uella 1igial22222222222222222222222222222222222222222222222222222222223-
*lusraci6n A2' C5:eo Aueni"ica5le me)iane Sello 1igial222222222222222222222222222222222222222222222222222222222222 3-
*lusraci6n A3' C5:eo Aueni"ica5le me)iane (irma 1igial22222222222222222222222222222222222222222222222222222222222 3-
*lusraci6n A4' JC/( acerca la cripogra"a al usuario2222222222222222222222222222222222222222222222222222222222222222222222224-
*lusraci6n A-' 1iagrama general )e clases )e JC/(2222222222222222222222222222222222222222222222222222222222222222222222222 -D
A4?
PFC ULPGC Aplicaciones Criptogrficas Java
A4@
PFC ULPGC Aplicaciones Criptogrficas Java
A4D
PFC ULPGC Aplicaciones Criptogrficas Java
A-$
PFC ULPGC Aplicaciones Criptogrficas Java
Aplicaciones
Cripogr!"icas Ja#a
Mayo 2$$%
Jess Mara Ramos Saky
&uor'
Miguel ngel Prez Aguiar
(acula) )e *n"orm!ica
+ni#ersi)a) )e las Palmas )e ,ran Canaria
A-A
PFC ULPGC Aplicaciones Criptogrficas Java
A-2
PFC ULPGC Aplicaciones Criptogrficas Java
A-3
PFC ULPGC Aplicaciones Criptogrficas Java
A-4
PFC ULPGC Aplicaciones Criptogrficas Java
A--
Proyecto Fin de Carrera
www.ulpgc.es
Aplicaciones Criptogrficas Java
Jess Mara Ramos Saky
Miguel ngel Prez Aguiar
A gran)es rasgos3 el uso )e la cripogra"a ayu)a a e#iar el uso "rau)uleno )e
sisemas3 a proeger in"ormaci6n con"i)encial o imporane3 permiir comunicaG
ciones seguras y posi5iliar el comercio elecr6nico2
Sien)o m!s precisos3 la cripogra"a permie asegurar un o5:eo con#irin)olo
en oro o5:eo incomprensi5le y>o aueni"ica5le y poseriormene o5ener el o5:eo
asegura)o a parir )e su #ersi6n segura2
/l o5:ei#o primor)ial )e ese proyeco es apren)er a uilizar los principales
mecanismos cripogr!"icos' proecci6n y aueni"icaci6n2
/l resula)o 0a si)o un con:uno )e li5reras Ja#a so5re cripogra"a3 )esacan)o
enre ellas JC/( OJa#a Crypograp0ic /Hension (rame=orkP2 /sa li5rera es
poene y so5re o)o )e "!cil uso Bue suplana a las li5reras ya eHisenes JCA y
JC/ proporciona)as por Sun Microsysems al ser sas muy complica)as )e uilizar2
Como un e:emplo )el #alor aFa)i)o )e ese proyeco3 o5ser#e el c6)igo
siguiene )on)e se muesra c6mo se asegura un o5:eo e inme)iaamene )espus
se recupera el mismoW y o)o ello )e una "orma super sencilla'
Object object = new String("my object");
CryptoAlgorithm secureAlgorithm = new AES_BlocSymmetric!rotection""E#$%();
SecureObject secureObject = new SecureObject(object& secureAlgorithm);
object = (String)secureObject'getObject(secureAlgorithm);
/se proyeco se encuenra 0ospe)a)o en el mayor reposiorio )e proyecos
so"=are )e c6)igo a5iero eHisene llama)o Source(orge2ne2 Para mayor
in"ormaci6n pue)e consular la )irecci6n =e5 0p'>>:ce"2source"orge2ne2

Você também pode gostar