Cifrado de sustitución monoalfabética en Código Java

Escrito por g.s. jackson | Traducido por paulo roldan
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
Cifrado de sustitución monoalfabética en Código Java
Los antecedentes del cifrado monoalfabético se remontan a la antigua Roma. (code image by charles taylor from Fotolia.com)

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

Otras personas están leyendo

Sustituciones monoalfabéticas

Los criptógrafos se refieren a las cifras que aplican una sola transformación a un mensaje completo como "monoalfabética". Estas cifras suelen tener un simple algoritmo que realiza una transformación, y luego aplican ese algoritmo a todos los caracteres en el mensaje. La naturaleza del algoritmo no importa realmente, mientras que permanezca constante a través de la encriptación del mensaje. El más simple funcionará en un caracter a la vez, mientras que otros pueden utilizar caracteres múltiples para construir el sistema de cifrado.

Cifrado César y Cifrado Hill

El cifrado monoalfabético más simple es el cifrado César, inventada 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 cambia el valor de las letras, y por lo tanto codifica el mensaje. Si el lector conoce el desplazamiento, simplemente puede restablecer los valores y leer el mensaje original. El cifrado Hill, por otra parte, utiliza matrices de caracteres y valores para determinar el cifrado. Por ejemplo, una clave de desplazamiento Hill de valores de 2X2 tomaría dos caracteres a la vez de la matriz y cambiaría su valor.

Cifrado César en Java

El cifrado César en Java consiste en determinar un desplazamiento, y después cambiar el valor de cada letra de una cadena de ese desplazamiento. El programador puede crear una lista de letras para comparar el mensaje original contra la clave de cifrado, y después traducir ese mensaje en la encriptación del cifrado. Después, el cifrado se convierte en una cuestión de simple adición:

class Caesar{

public static void main(String[] args){

String message = "hghajdvudbu"; String temp = "abcdefghijklmnopqrstuvwxyz"; int offset = 3; String translate = 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));

translate += add; System.out.println(translate);

} } }

Cifrado Hill 2x2 en Java

El cifrado Hill usa una clave matricial para multiplicar valores en e texto para crear el cifrado. En un caso más simple, se usaría una matriz de 2X2 para crear una clave de cifrado. El programador entonces necesitaría usar dos caracteres del mensaje a la vez para calcular el mensaje traducido de forma correcta, como se ilustra en el siguiente código:

String message = "hghajdvudbu"; String temp = "abcdefghijklmnopqrstuvwxyz" String translate = new String();

int key[][] = new int[2][2];

key[0][0] = 1; key[0][1] = 2; key[1][0] = 3; key[1][1] = 4;

int letterone = 7; int lettertwo = 6;

int nletterone = (letterone * key[0][0]) + (letterone * key[0][1]); int nlettertwo = (lettertwo * key[1][0]) + (lettertwo * key[1][1]);

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

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles