Em criptografia , uma cifra é uma técnica matemática para transformar uma mensagem de tal forma a torná-lo ilegível para qualquer um que não seja o seu público-alvo. Cifras e crytography tornaram-se uma parte essencial da rede de comunicações . Embora existam muitas formas de criptografia , todos eles derivam de uma história da criação cifra que remonta à Roma antiga, ea criação da primeira cifra monoalfabética . Seguindo o exemplo da cifra de César , o programador pode implementar uma cifra monoalfabética em uma linguagem de programação , como Java. Monoalfabética Substituições
criptógrafos se referir a cifras que se aplicam uma única transformação de uma mensagem inteira como " monoalfabética . " Essas cifras costumam levar um algoritmo simples que executa uma transformação , e , em seguida, aplicar o algoritmo para cada caracteres na mensagem. A natureza do algoritmo realmente não importa , tanto quanto ele permanece consistente durante toda a criptografia da mensagem. O mais simples vai funcionar em um personagem de cada vez, enquanto outros podem usar vários personagens para construir a cifra.
Caesar Cipher e Hill Cipher
O mais simples cifra monoalfabética é a cifra de Caesar , inventado por Júlio César para ocultar mensagens de seus inimigos. A cifra de César simplesmente atribui um valor numérico às letras, e então decide um offset. Este deslocamento desloca o valor das cartas , e assim codifica a mensagem . Se o leitor sabe o deslocamento , ela pode simplesmente restaurar os valores e ler a mensagem original. O monte Cifra , por outro lado , utiliza matrizes de caracteres e os valores para determinar a encriptação . Por exemplo, um monte de compensar chave de valores 2x2 levaria dois personagens de cada vez a partir da matriz e mudar seu valor.
Caesar Cipher em Java
a cifra de Caesar em Java envolve determinar um deslocamento, e , em seguida, mudando o valor de cada letra de uma string por esse deslocamento. O programador pode criar uma lista de cartas para comparar a mensagem original com a chave de codificação e , em seguida, traduzir essa mensagem na criptografia cifra. Em seguida , a criptografia torna-se uma questão de simples adição :
classe César {
void main ( String [ ] args ) { public static
Cordas mensagem = " hghajdvudbu "; Cordas temp = " abcdefghijklmnopqrstuvwxyz "; int offset = 3; Cordas traduzir = new string () ;
for (int i = 0; i < s.length (); i + +) {
Cordas t = Character.toString ( message.charAt (i)) ; int index = temp.indexOf (t); índice + = deslocamento% 26; Cordas add = Character.toString ( temp.charAt (index) );
traduzir + = adicionar ; System.out.println ( traduzir );
}}}
2x2 Colina Cipher em Java
The Hill Cipher usa uma chave de matriz para multiplicar valores no texto , a fim de criar a cifra. Em um caso simples , uma matriz de 2x2 seria usado para criar uma chave de cifra . O programador , então, necessidade de utilizar dois personagens da mensagem de cada vez , a fim de calcular corretamente o messae traduzido , conforme ilustrado no código a seguir :
Cordas mensagem = " hghajdvudbu "; Cordas temp = " abcdefghijklmnopqrstuvwxyz " Cordas traduzir = new string () ;
int tecla [ ] [] = new int [ 2] [2 ];
tecla [ 0] [0] = 1; tecla [ ,"0] [1] = 2; tecla [ 1] [ 0] = 3; tecla [ 1] [1 ] = 4;
int letterone = 7; int lettertwo = 6;
int nletterone = ( letterone * tecla [ 0] [0] ) + ( letterone * tecla [ 0] [1] ); int nlettertwo = ( lettertwo tecla * [1] [ 0] ) + ( lettertwo tecla * [1] [ ,"1] );
traduzir = Character.toString ( temp.charAt ( nletterone % 26 ) ) + Character.toString ( temp.charAt ( nlettertwo % 26 ) );