Escolar Documentos
Profissional Documentos
Cultura Documentos
WALDOMIRO MAY
ALGORITMOS DE CRIPTOGRAFIA:
Substituição, Caesar, Permuta e Vigenère
Cruzeiro – SP
2010
FACULDADE DE TECNOLOGIA PROF. WALDOMIRO MAY
ALGORITMOS DE CRIPTOGRAFIA:
Substituição, Caesar, Permuta e Vigenère
Cruzeiro – SP
2010
INDICE
Algoritmo de substituição
Algoritmo de Caesar
Algoritmo de Vingenère
Algoritmo de Permuta
/*
* FATEC CRUZEIRO - TECNOLOGIA EM INFORMÁTICA
* 6o SEMESTRE - BANCO DE DADOS
* CLEBER REZENDE CARVALHO - 18/11/2010
*/
package criptografia;
import java.text.Normalizer;
System.out.print(Letras[i][0] + "=");
int j = 0;
boolean ok = true;
do{
if (ok == false){
ok = true;
}
if (ok == true){
Letras[i][1] = (char)Temp;
}
}while(ok == false);
//remove acentos
Tp = Normalizer.normalize(Tp, Normalizer.Form.NFD);
Tp = Tp.replaceAll("[^\\p{ASCII}]", "");
//exibe os resultados
exibirResultados(Tc, Tp, Tp2);
Tabela de referência
--------------------
a=p b=t c=q d=c e=f f=d g=x h=u i=k j=a k=n l=s m=m
n=j o=l p=z q=g r=i s=r t=b u=v v=w w=h x=y y=e z=o
Chave:
------
substituição
Texto cifrado:
-----------
buf gvkqn lsc spoe tilhj dly avmzr lwfi p spoe clx
package criptografia;
import java.text.Normalizer;
} while(Tp.charAt(i) != Letras[j]);
}
System.out.println("");
return Tc;
}
static private void exibirResultados(String Tc, String Tp, String Tp2, int ch){
System.out.println("Chave: \n" + "------\n" + ch + "\n\n");
System.out.println("Texto puro: (entrada) \n" + "----------- \n" + Tp + "\n\n");
System.out.println("Texto cifrado: \n" + "----------- \n" + Tc + "\n\n");
System.out.println("Texto puro: (decifrado) \n" + "----------- \n" + Tp2 + "\n\n");
}
Tp = "the quick old lazy brown fox jumps over a lazy dog";
Tc = "";
ch = 3;
//remove acentos
Tp = Normalizer.normalize(Tp, Normalizer.Form.NFD);
Tp = Tp.replaceAll("[^\\p{ASCII}]", "");
//exibe os resultados
exibirResultados(Tc, Tp, Tp2, ch);
}
}
Este algoritmo produz a saída abaixo:
Tabela de referência
--------------------
a=00 b=01 c=02 d=03 e=04 f=05 g=06 h=07 i=08 j=09 k=10 l=11 m=12
n=13 o=14 p=15 q=16 r=17 s=18 t=19 u=20 v=21 w=22 x=23 y=24 z=25
Chave:
------
3
Texto cifrado:
-----------
wkh txlfn rog odcb eurzq ira mxpsv ryhu d odcb grj
package criptografia;
import java.text.Normalizer;
return chn;
}
} while(Tp.charAt(i) != Letras[j]);
}
System.out.println("");
return Tc;
}
}
System.out.println("");
return Tp;
}
static private void exibirResultados(String Tc, String Tp, String Tp2, String ch){
System.out.println("Chave: \n" + "------\n" + ch + "\n\n");
System.out.println("Texto puro: (entrada) \n" + "----------- \n" + Tp + "\n\n");
System.out.println("Texto cifrado: \n" + "----------- \n" + Tc + "\n\n");
System.out.println("Texto puro: (decifrado) \n" + "----------- \n" + Tp2 + "\n\n");
}
Tp = "the quick old lazy brown fox jumps over a lazy dog";
Tc = "";
ch = "senha";
Tp2 = "";
Tabela de referência
--------------------
a=00 b=01 c=02 d=03 e=04 f=05 g=06 h=07 i=08 j=09 k=10 l=11 m=12
n=13 o=14 p=15 q=16 r=17 s=18 t=19 u=20 v=21 w=22 x=23 y=24 z=25
s = 18
e=4
n = 13
h=7
a=0
Chave:
------
senha
Texto cifrado:
-----------
llrxuagxvlvpngytvbdnxskquetfvvwvnsarcqvg
package criptografia;
import java.text.Normalizer;
return ch;
}
//remove acentos
Tp = Normalizer.normalize(Tp, Normalizer.Form.NFD);
Tp = Tp.replaceAll("[^\\p{ASCII}]", "");
System.out.println("");
return Tc;
}
static private void exibirResultados(String Tc, String Tp, String Tp2, int[] ch){
System.out.print("Chave: \n" + "------\n(");
for (int i = 0; i < ch.length; i++){
System.out.print(ch[i]);
if (i < ch.length-1){
System.out.print(", ");
}else{
System.out.print(")\n\n\n");
}
}
System.out.println("Texto puro: (entrada) \n" + "----------- \n" + Tp + "\n\n");
System.out.println("Texto cifrado: \n" + "----------- \n" + Tc + "\n\n");
System.out.println("Texto puro: (decifrado) \n" + "----------- \n" + Tp2 + "\n\n");
}
Tp = "the quick old lazy brown fox jumps over a lazy dog";
Tc = "";
Tp2 = "";
//gera os valores da chave com um número definido pelo usuário
ch = gerarChave(5);
ch2 = gerarContraChave(ch);
//exibe os resultados
exibirResultados(Tc, Tp, Tp2, ch);
}
}
Chave:
------
(1, 2, 3, 4, 0)
Texto cifrado:
-----------
utheqlickoydlaznbrowufoxjvmpsoaeralgzydo