I kryptografi , er et siffer en matematisk teknikk for å transformere en melding på en slik måte som å gjengi det uleselig for andre enn den tiltenkte målgruppen . Ciphers og crytography har blitt en viktig del av nettverkskommunikasjon. Mens mange former for kryptering finnes, de alle stammer fra en historie av chiffer etableringen dateres tilbake til antikkens Roma , og etableringen av den første monoalfabetisk siffer . Etter eksempel på Caesar chiffer , kan programmereren gjennomføre en monoalfabetisk siffer i et programmeringsspråk , for eksempel Java. Monoalfabetisk Innbyttere
kryptografer se koder som gjelder en enkelt transformasjon til en hel melding som " monoalfabetisk . " Disse koder tar vanligvis en enkel algoritme som utfører en transformasjon, og deretter bruke denne algoritmen til hver karakter i meldingen . Naturen av algoritmen spiller egentlig ingen rolle , så mye som det er konsekvent gjennom kryptering av meldingen. Det enkleste vil fungere på ett tegn om gangen, mens andre kan bruke flere tegn for å konstruere siffer .
Caesar Cipher og Hill Cipher
Den enkleste monoalfabetisk siffer er Caesar Cipher , oppfunnet av Julius Caesar å skjule meldinger fra sine fiender . Caesar chiffer tildeler rett og slett en numerisk verdi til bokstaver , og deretter bestemmer seg en offset . Dette offset skifter verdien av bokstavene , og dermed forvrenges meldingen. Hvis leseren kjenner offset, kan hun bare nullstille verdiene og lese den opprinnelige meldingen . The Hill Cipher , derimot , bruker matriser av tegn og verdier for å avgjøre kryptering. For eksempel vil en Hill offset nøkkel 2x2 verdier ta to tegn om gangen fra matrisen og skifte sin verdi.
Caesar Cipher i Java
Caesar Cipher i Java innebærer å avgjøre en forskyvning , og deretter skifter verdien av hver bokstav i en streng ved at offset . Programmereren kan lage en liste over bokstaver for å sammenligne den opprinnelige meldingen mot chiffer nøkkelen , og så oversette det melding i chiffer kryptering. Deretter blir kryptering et spørsmål om enkelt tillegg : en
klasse Caesar {
public static void main ( String [] args ) {
String melding = " hghajdvudbu "; String temp = " abcdefghijklmnopqrstuvwxyz "; int offset = 3; String oversette = 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 (indeks ) );
oversette + = legger til ; System.out.println ( oversetter ) ;
} } }
2x2 Hill Cipher i Java
< p > The Hill Cipher bruker en matrise for å multiplisere verdiene i teksten for å skape siffer . I et enkelt tilfelle , ville en 2x2 -matrise brukes til å lage et siffer nøkkel . Programmereren vil da trenge å bruke to bokstaver fra meldingen om gangen for å riktig beregne oversatt messae , som illustrert i følgende kode :
String melding = " hghajdvudbu "; String temp = " abcdefghijklmnopqrstuvwxyz " String oversette = new String ();
int key [ ] [ ] = new int [ 2 ] [ 2 ];
tast [ 0 ] [ 0 ] = 1 ; key [ ,"0 ] [ 1 ] = 2 , tast [ 1 ] [ 0 ] = 3 , tast [ 1 ] [ 1 ] = 4;
int letterone = 7 ; int lettertwo = 6 ;
int nletterone = ( letterone *-tasten [ 0 ] [ 0 ] ) + ( letterone *-tasten [ 0 ] [ 1 ] ); int nlettertwo = ( lettertwo *-tasten [ 1 ] [ 0 ] ) + ( lettertwo *-tasten [ 1 ] [ ,"1 ] ) ;
oversette = Character.toString ( temp.charAt ( nletterone % 26 ) ) + Character.toString ( temp.charAt ( nlettertwo % 26 ));