Tecnología

Inicio

Monoalfabética Sustitución cifrados en código Java

En criptografía, un sistema de cifrado es una técnica matemática para transformar un mensaje de una manera tal que haga que resulte ilegible para cualquiera que no sea su público objetivo. Cifras y Criptografía se han convertido en una parte esencial de las comunicaciones de red. Mientras que muchas formas de encriptación existen, todos ellos se derivan de una historia de la creación de cifrado que se remonta a la antigua Roma, y ​​la creación del primer sistema de cifrado monoalfabética. Siguiendo el ejemplo del cifrado César, el programador puede implementar un sistema de cifrado monoalfabética en un lenguaje de programación, como Java.

monoalfabéticos Sustituciones

Criptógrafos se refieren a sistemas de cifrado que se aplican una sola transformación de todo un mensaje como "monoalfabética." Estas cifras suelen tener un algoritmo simple que realiza una transformación, y luego aplicar este algoritmo para cada carácter en el mensaje. La naturaleza del algoritmo en realidad no importa, por lo tanto, ya que se mantiene constante a través de la encriptación del mensaje. El más simple funcionará en un carácter a la vez, mientras que otros pueden utilizar varios caracteres para construir el sistema de cifrado.

La cifra de César y Hill Cipher

El sistema de cifrado monoalfabética más simple es la cifra de César, inventado por Julio César para ocultar los mensajes de sus enemigos. El cifrado César simplemente asigna un valor numérico a las letras, y luego decide un desplazamiento. Este desplazamiento desplaza el valor de las cartas, y por lo tanto codifica mensaje. Si el lector conoce el desplazamiento, ella simplemente puede restablecer los valores y leer el mensaje original. The Hill Cipher, por otra parte, utiliza matrices de caracteres y valores para determinar el cifrado. Por ejemplo, una colina compensado clave de los valores 2x2 tomaría dos personajes a la vez de la matriz y cambiar su valor.

La cifra de César en Java

La cifra de César en Java consiste en determinar un desplazamiento, y luego cambiando el valor de cada letra de una cadena por esa desviación. El programador puede crear una lista de letras para comparar el mensaje original con la clave de cifrado, y luego traducir ese mensaje cifrado en el sistema de cifrado. Entonces, el cifrado se convierte en una cuestión de simple adición:

César clase {

principales argumentos (String []) {public static void

String mensaje = "hghajdvudbu";
String temp = "abcdefghijklmnopqrstuvwxyz";
int desplazamiento = 3;
Cadena traducir = new String ();

for (int i = 0; i <s.length (); i ++) {

String t = Character.toString(message.charAt(i));
int index = temp.indexOf(t);
index += offset % 26;
String add = Character.toString(temp.charAt(index));

traducir + = sumar;
System.out.println (traducir);

}
}
}

2x2 Colina Cipher en Java

La colina de cifrado utiliza una clave de matriz para multiplicar valores en el texto con el fin de crear el sistema de cifrado. En un caso simple, una matriz de 2x2 se utiliza para crear una clave de cifrado. El programador podría requerir el uso de dos caracteres del mensaje a la vez con el fin de calcular correctamente la messae traducido, como se ilustra en el siguiente código:

String mensaje = "hghajdvudbu";
String temp = "abcdefghijklmnopqrstuvwxyz"
Cadena traducir = new String ();

int key[][] = 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]);

traducir = Character.toString (temp.charAt (nletterone% 26)) + Character.toString (temp.charAt (nlettertwo% 26));