In der Kryptographie ist eine Chiffre eine mathematische Technik , um eine Nachricht in einer solchen Art und Weise transformieren , um sie unlesbar zu machen , um andere Personen als seine Zielgruppe . Chiffren und crytography sind zu einem wesentlichen Teil der Netzwerk-Kommunikation . Während viele Formen der Verschlüsselung existieren , aus sie stammen alle aus einer Geschichte von Chiffre Schöpfung zurück zu alten Rom, und die Gründung der ersten monoalphabetische Chiffre. Nach dem Beispiel der Caesar-Chiffre , kann der Programmierer einen monoalphabetische Chiffre in einer Programmiersprache wie Java zu implementieren. Monoalphabetische Auswechslungen
Cryptographers beziehen sich auf Chiffren , die eine einzige Transformation gelten für eine gesamte Nachricht als " monoalphabetische . " Diese Chiffren der Regel einen einfachen Algorithmus, der eine Transformation führt , und dann gelten , dass jeder Algorithmus Zeichen in der Nachricht. Die Natur des Algorithmus ist nicht wirklich wichtig , so viel wie es konsistent bleibt während der Verschlüsselung der Nachricht . Das einfachste wird auf ein Zeichen in einer Zeit zu arbeiten , während andere mehrere Zeichen verwenden können , um die Verschlüsselung zu konstruieren.
Caesar Cipher und Hill Cipher
Die einfachste monoalphabetische Chiffre ist die Caesar Cipher , von Julius Cäsar erfunden, um Nachrichten von seinen Feinden zu verstecken. Die Caesar-Chiffre weist einfach einen numerischen Wert , um Buchstaben , und entscheidet dann, einen Offset . Dieser Versatz verschiebt den Wert der Briefe und somit verschlüsselt die Nachricht. Wenn der Leser kennt den Offset , können sie einfach die Werte zurückzusetzen und lesen Sie die ursprüngliche Nachricht . Der Hill-Chiffre , auf der anderen Seite verwendet Matrizen von Zeichen und Werte , um die Verschlüsselung zu bestimmen. Zum Beispiel würde ein Hill Offset Schlüssel 2x2 Werte zwei Zeichen in einer Zeit, aus der Matrix zu nehmen und verschieben ihren Wert.
Caesar Cipher in Java
der Caesar Cipher in Java beinhaltet die Bestimmung einer Offset- und dann Verschieben des Wertes der einzelnen Buchstaben eines Strings durch diese kompensiert. Der Programmierer kann eine Liste erstellen von Briefen an die ursprüngliche Nachricht gegen den Chiffrierschlüssel zu vergleichen und dann zu übersetzen , dass die Nachricht in der Chiffre -Verschlüsselung. Dann wird eine Frage der Verschlüsselung einfache Addition :
Klasse 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 + +) {
< p> String t = Character.toString ( message.charAt (i)) ; int index = temp.indexOf (t); Index + = Offset% 26; String add = Character.toString ( temp.charAt (index) );
übersetzen + = hinzufügen ; System.out.println ( englisch) ;
}}}
2x2 Hill Cipher in Java
The Hill Cipher verwendet eine Matrix-Schlüssel , um Werte in den Text zu multiplizieren, um die Verschlüsselung zu erstellen. In einem einfachen Fall wäre eine 2x2-Matrix verwendet werden, um einen Verschlüsselungsschlüssel zu erzeugen. Der Programmierer müssten dann zwei Charaktere aus der Nachricht zu einem Zeitpunkt zu verwenden , um richtig zu berechnen übersetzt messae , wie im folgenden Code dargestellt :
String message = " hghajdvudbu "; String temp = " abcdefghijklmnopqrstuvwxyz "String translate = new String () ;
int Taste [] [] = new int [ 2] [ 2];
Taste [ 0] [0 ] = 1; Taste [ ,"0 ] [1] = 2; Taste [1 ] [0] = 3; Taste [1 ] [1] = 4;
int letterone = 7; int lettertwo = 6;
int nletterone = ( letterone *-Taste [0] [ 0] ) + ( letterone *-Taste [0] [ 1] ); int nlettertwo = ( lettertwo *-Taste [1] [ 0] ) + ( lettertwo *-Taste [1] [ ,"1] );
translate = Character.toString ( temp.charAt ( nletterone % 26 )) + Character.toString ( temp.charAt ( nlettertwo % 26) );