krypteringsalgoritmer kommer i forskellige former og terminologier , men har tendens til at dele flere grundlæggende teorier, der har omfattet kernen i kryptografi siden menneskehedens første ønskede at skjule en besked fra nysgerrige øjne. Dag , disse teorier gælder for de fleste krypteringsalgoritmer , uanset type eller programmeringssprog på tidspunkter , ved først at nedbryde beskeden i binær kode . Substitution
substitutionschiffer erstatter én værdi med en anden , for eksempel, den binære " 1001 " kan blive " 101" og " 0101 " vil blive erstattet af en " 111 ". klassisk eksempel på en substitution cipher er Cæsars cipher , der afløste bogstaver i alfabetet med bogstavet tre trin ned ( "C" bliver til "F "). Desværre er substitution ciphers let revnet, især når de anvendes til at kryptere breve baseret på frekvens analyse eller kontekst.
Et eksempel algoritme til en udskiftning funktion er " c = E ( x, a) = (a + x ) mod 26 ", hvilket betyder , at den krypterede tegn" C ", er fra kryptering ( eller " E ") af " x " og " a " , hvor " x "er graden af forskydning fra bogstavet " a ". The Mod sektion er heltal resten af den resulterende nummer fra "x " og en delt med 26 , antallet af bogstaver i det engelske alfabet .
Gennemførelse /Permutation
Transposition ciphers flytte rundt værdier på en forudbestemt rækkefølge. En simpel ikke-binær eksempel giver afklaring : Med permutation , rækkefølgen "1234 " kan blive " 2314 " ved at flytte det første ciffer til det tredje , andet til første , tredje til anden og forlader den fjerde. Med en binær mønster af bits og samme permutation regel " 1101 " ville blive " 1011 . " The Rail Fence Cipher er et eksempel på en gennemførelse cipher . Permutation ciphers er marginalt stærkere end substitution ciphers , men kan tydes med relativ lethed , afhængigt af cipher længden.
XOR
XOR, eller " eksklusive OR " operation er et andet grundlæggende kryptering proces , der returnerer " true " , hvis blot en af værdierne er sandt. Med de foregående eksempler i tankerne , "1001 " sammenlignet med tasten " 0101 " vil returnere værdien "1100 ", og kan nemt vendes til den oprindelige med samme nøgle - " 1100 " med " 0101 " bliver til " 1001 ".
Block ciphers
Block ciphers nedbryde data i et bestemt antal bits og bruge en eller alle af de tidligere teorier om dem blokke for at kryptere dem . Flere muligheder indbefatter imidlertid blokkædnings , der anvender forrige blok til at kryptere den næste blok i kæden , yderligere scrambling dataene. Data Encryption Standard og Triple DES er gode eksempler på blok ciphers med forskellige operationer af substitution , permutation og XOR .