I kryptografi , är ett chiffer en matematisk teknik för att omvandla ett meddelande på ett sådant sätt att det blir oläslig för någon annan än den avsedda målgruppen . Chiffer och crytography har blivit en viktig del av nätverkskommunikation . Medan många former av kryptering existerar , de alla härstammar från en historia av chiffer skapande går tillbaka till antikens Rom , och skapandet av den första monoalphabetic chiffer . Efter förebild av Caesar chiffer , kan programmeraren implementera en monoalphabetic siffra i ett programmeringsspråk , som Java . Monoalphabetic Avbytare
Cryptographers avser chiffer som gäller en enda transformation till ett helt meddelande som " monoalphabetic . " Dessa chiffer brukar ta en enkel algoritm som utför en förvandling , och sedan tillämpa denna algoritm för varje tecken i meddelandet. Den typ av algoritmen spelar egentligen ingen roll , så mycket som det förblir konsekvent under hela kryptering av meddelandet . Det enklaste kommer att arbeta på ett tecken i tiden , medan andra kan använda flera tecken att konstruera chiffer . Addera Caesar Cipher och Hill Cipher
enklaste monoalphabetic chiffer är Caesar Cipher , uppfanns av Julius Caesar för att dölja meddelanden från hans fiender . Caesar chiffer tilldelar helt enkelt ett numeriskt värde till bokstäver , och sedan bestämmer en offset . Denna offset skiftar värdet av breven och sålunda krypterar meddelandet. Om läsaren känner till offset , kan hon återställa helt enkelt värdena och läser det ursprungliga meddelandet . The Hill Cipher , å andra sidan , använder matriser av karaktärer och värden för att bestämma kryptering . Till exempel skulle en Hill offset nyckel 2x2 värden tar två tecken i taget från matrisen och skifta deras värde .
Caesar Cipher i Java
Caesar Cipher i Java innebär att bestämma en förskjutning , och sedan skifta värdet för varje bokstav i en sträng med den förskjutningen . Programmeraren kan skapa en lista med bokstäver för att jämföra det ursprungliga meddelandet mot krypteringsnyckel , och sedan översätta det budskapet i chiffer kryptering . Sedan blir kryptering en fråga om enkel addition :
class Caesar {
public void main ( String [] args ) {
String meddelande = " hghajdvudbu " ; String temp = " abcdefghijklmnopqrstuvwxyz " ; int offset = 3 ; String översätta = 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 lägga = Character.toString ( temp.charAt ( index ) ) ;
översätta + = lägg , System.out.println ( translate ) ,
} } } Addera 2x2 Hill Cipher i Java
The Hill Cipher använder en matris för att multiplicera värdena i texten för att skapa chiffer . I ett enkelt fall skulle en 2x2 matris användas för att skapa en chiffernyckel . Programmeraren skulle då behöva använda två karaktärer från meddelandet på en gång för att korrekt beräkna den översatta messae , vilket illustreras i följande kod :
String meddelande = " hghajdvudbu " , String temp = " abcdefghijklmnopqrstuvwxyz " String översätta = new String ( ) ;
int nyckel [ ] [ ] = new int [ 2 ] [ 2 ] ;
knappen [ 0 ] [ 0 ] = 1 ; knappen [ ,"0 ] [ 1 ] = 2 ; tangent [ 1 ] [ 0 ] = 3 ; tangent [ 1 ] [ 1 ] = 4 ;
int letterone = 7 ; int lettertwo = 6 ;
int nletterone = ( letterone * tangenten [ 0 ] [ 0 ] ) + ( letterone * tangenten [ 0 ] [ 1 ] ) ; int nlettertwo = ( lettertwo * tangent [ 1 ] [ 0 ] ) + ( lettertwo * tangent [ 1 ] [ ,"1 ] ) ;
översätta = Character.toString ( temp.charAt ( nletterone % 26 ) ) + Character.toString ( temp.charAt ( nlettertwo % 26 ) ) ;