Algoritmer och kryptografi - Först först, innan jag fortsätter och börjar skryta med mig själv och konvertera den här bloggen till en tråkig konversation på en sida, låter oss först förstå vad som är algoritmer, och hur är de relaterade till kryptografi.

Algoritmer och kryptografi

algoritmer

För er som tror att algoritmer bara är anslutna till datavetenskap, har ni fel. Algoritm är en metod eller en formel för att lösa ett problem. Och när jag säger problem kan det vara vilken typ av problem som helst, det kan vara matematik, vetenskapliga formler eller till och med datorbaserade. Låt mig ge dig en enkel

Exempel:

(A + b) 2 = a 2 + 2ab + b2

Eller så kan det vara:

Upplupen mängd = huvudansvarig (1 + ROI * 100 * tid)

ja! Allt som är en formel kan tas som en algoritm. En algoritm är en uppsättning regler för att lösa ett problem, som, om det görs korrekt, kommer att ge ett korrekt svar varje gång. Algoritmer innebär vanligtvis att upprepa en serie steg om och om igen, som i upplånings- och bäringsalgoritmerna och i de långa multiplikations- och divisionsalgoritmerna. Algoritmer inkluderar en mängd olika tillägg, subtraktion, multiplikation och delning.

Men innan du börjar tänka att jag tar någon slags matematikföreläsning här, låt mig säga att jag inte är det. Jag talar om algoritmer och kryptografi relaterade till datavetenskap. Men innan jag fortsätter med det, låt mig ge dig några exempel på enkla algoritmer att komma igång med.

Dessa exempel är för rena noobs som aldrig har gjort någon form av algoritmiska grejer under hela sitt liv. Så om du tycker att du är smart nog kan du hoppa till nästa avsnitt av kryptografi där jag igen skulle introducera några grunder innan jag går vidare till nästa nivå.

Så här är några exempel på Addition Algoritms, som kommer att komma igång för nu och ge en uppfattning om hur algoritmer är. Låt oss börja med grundläggande matematik:

Tilläggsalgoritmer från vänster till höger:

Börja till vänster, lägg till kolumn för kolumn och justera resultatet.

För vissa människor blir denna process så automatisk att de startar till vänster och skriver svaret kolumn för kolumn, justerar när de går utan att skriva några mellansteg. Om de blir ombedda att förklara, säger de något så här:

200 plus 400 är 600, men (titta på nästa kolumn) Jag måste justera det, så skriv 7. Då är 60 och 80 140, men det måste justeras, så skriv 5. Nu, 8 och 3 är 11, inte mer att göra, skriva 1. Den här tekniken utvecklas lätt från erfarenheter med manipuleringsmedel, som bas-10-block och pengar, och utbytes- eller handelsspel, och överensstämmer med de vänster-till-höger-mönster som lärts för att läsa och skriva.

Nu kanske vissa människor går över när de läser om detta. Så du kan behöva Google detta för att få en exakt uppfattning om vad som exakt händer här.

kryptografi

Kryptografi är en konst att skriva koder på ett icke-mänskligt läsbart sätt. Det är en metod för att lagra och överföra data i en viss form så att endast de som den är avsedda för kan läsa och bearbeta dem. Du kan säga att kryptografi är en nära kusin till disciplinerna kryptologi och kryptanalys.

Kryptografi inkluderar tekniker som mikroprickor, sammanslagning av ord med bilder och andra sätt att dölja information i lagring eller transitering. I dagens datorcentriska värld är dock kryptering ofta förknippad med kryptering av vanlig text (vanlig text, ibland kallad klartext) till chiffertext (en process som kallas kryptering) och sedan tillbaka igen (känd som dekryptering). Individer som utövar detta område kallas kryptografer.

Kryptering har använts i många tusentals år. Följande koder och chiffer kan läras och användas för att kryptera och dekryptera meddelanden för hand:

A) Monoalfabetiska cifrar:

Monoalfabetisk chiffer använder samma substitution över hela meddelandet. Om du till exempel vet att bokstaven A är krypterad som bokstaven K gäller detta för hela meddelandet. Dessa typer av meddelanden kan knäckas med hjälp av frekvensanalys, utbildade gissningar eller test och fel.

1. Ceaser Cipher

En Caesar-chiffer är en av de enklaste (och enklaste spruckna) krypteringsmetoderna. Det är en substitutionsciffer som innebär att varje bokstav i det hemliga meddelandet ersätts med en annan bokstav i alfabetet, vilket är ett fast antal positioner längre i alfabetet.

Eftersom varje bokstav i meddelandet har en direkt översättning till en annan bokstav, kan frekvensanalys användas för att dechiffrera meddelandet. Till exempel är bokstaven E den vanligaste bokstaven på engelska.

Således, om den vanligaste bokstaven i ett hemligt meddelande är K, är det troligt att K representerar E. Dessutom ger vanliga ordändningar som ING, LY och ES också ledtrådar. En brute-force-strategi för att försöka alla 25 möjliga kombinationer skulle också fungera för att dechiffrera meddelandet.

I det här exemplet har varje bokstav i klartextmeddelandet flyttats tre bokstäver ner i alfabetet.

Vanlig text : Detta är ett hemligt meddelande

Chiffertext : wklv lv d vhfuhw phvvdjh

2. Atbash Ciffer

Atbash-chifferet är ett mycket specifikt fall av ett substitutionsciffer där bokstäverna i alfabetet är omvända. Med andra ord, alla som ersätts med Zs, alla Bs ersätts med Ys, och så vidare.

Eftersom du byter alfabetet två gånger får du det verkliga alfabetet, kan du kryptera och dechiffrera ett meddelande med exakt samma algoritm.

Exempel:

Vanlig text : Detta är ett hemligt meddelande

Chiffertext : Gsrh rh z hvxivg nvhhztv

Nyckelordscifferet är identiskt med Caesar Cipher med undantag för att substitutionsalfabetet som används kan representeras med ett nyckelord.

För att skapa ett substitutionsalfabet från ett nyckelord skriver du först alfabetet. Nedanför skriver du ned nyckelordet (utelämnar dubbla bokstäver) följt av de återstående oanvända bokstäverna i alfabetet.

ABCDEFGHIJKLMNOPQRSTUVWXYZ

KEYWORDABCFGHIJLMNPQSTUVXZ

För att kryptera ett klartekstmeddelande konverterar du alla bokstäver från den översta raden till motsvarande bokstav på den nedre raden (A till K, B till E, etc.).

Genom att använda frekvensanalys och lite utbildad gissning kan det enkelt knäcka dessa typer av enkla substitutionsciffer.

4. Pigpen / Masonic Chiffer

Pigpencifferet (ibland kallat frimurercifferet eller frimurerens chiffer) är ett enkelt substitutionsciffer som byter bokstäver för symboler baserade på ett rutnät. Schemat utvecklades och användes av frimurarna i början av 1700-talet för journalföring och korrespondens. Exempelknappen visar ett sätt bokstäverna kan tilldelas rutnätet.

B) Polyalfabetiska cifrar:

I ett polyalfabetiskt chiffer kan substitutionen ändras genom hela meddelandet. Med andra ord kan bokstaven A kodas som bokstaven K för en del av meddelandet, men senare kan den vara kodad som bokstaven W.

Rekommenderade kurser

  • Träning i XML
  • CCNA Exam Training Course
  • Komplett UNIX- och Linux OS-utbildning
  • HTML 5 träningspaket

1. Vigenere Cipher

I en Caesar Ciffer flyttas varje bokstav i alfabetet längs ett antal platser; till exempel, i en Caesar-chiffer av skift 3, A skulle bli D, B skulle bli E och så vidare. Vigenere-chifferet består av att använda flera Caesar-chiffer i sekvens med olika skiftvärden.

För att kryptera kan en tabell med alfabet användas, benämnd en tabula recta, Vigenere square eller Vigenere tabell. Det består av alfabetet skrivet ut 26 gånger i olika rader, varje alfabet förskjuts cykliskt till vänster jämfört med föregående alfabet, vilket motsvarar de 26 möjliga kejsarsiffrorna. På olika punkter i krypteringsprocessen använder chifferet ett annat alfabet än en av raderna. Alfabetet som används vid varje punkt beror på ett upprepande nyckelord.

Anta till exempel att ren text som ska krypteras är:

ATTACKATDAWN

Personen som skickar meddelandet väljer ett nyckelord och upprepar det tills det stämmer med klartextens längd, till exempel nyckelordet "LEMON":

LEMONLEMONLE

Varje bokstav kodas genom att hitta skärningspunkten i rutnätet mellan vanlig textbokstav och nyckelbokstav. Till exempel är den första bokstaven i klartext, A, krypterad med alfabetet i rad L, som är den första bokstaven i tangenten. Detta görs genom att titta på bokstaven i rad L och kolumn A på Vigenere-torget, nämligen L. På samma sätt används för andra bokstaven i klartext, nyckelens andra bokstav; bokstaven i rad E och kolumn T är X. Resten av klartext är krypterade på liknande sätt:

Vanlig text : ATTACKATDAWN

Nyckel : LEMONLEMONLE

Chiffertext : LXFOPVEFRNHR

Hitta positionen för chiffertextbokstaven i en rad i tabellen och sedan ta etiketten på kolumnen där den visas som ren text utföra dekryptering. Till exempel, i rad L visas chiffertexten L i kolumn A, som tas som den första klartextbokstaven. När du tittar upp X i rad E i tabellen dekrypteras den andra bokstaven; det visas i kolumn T, som tas som vanlig textbokstav.

En Gronsfeld-chiffer är identisk med Vigenere-chifferet med undantag för att endast 10 rader används, vilket gör att nyckelordet kan vara ett nummer istället för ett ord.

steganografi

Steganografi är faktiskt vetenskapen om att dölja information från människor som skulle smyga på dig. Skillnaden mellan detta och kryptering är att de blivande snooparna kanske inte kan säga att det finns någon dold information i första hand.

Som exempel har bildfiler vanligtvis mycket oanvändt utrymme i dem. Detta utrymme kan användas för att skicka dolda meddelanden. Om du undersöker kryptering kan du se termen steganografi som används ibland. Det är emellertid inte riktig kryptering (även om det fortfarande kan vara ganska effektivt), och som sådant nämner jag det bara här för fullständighet.

Så, i princip om du vill börja utöva kryptologi, skulle det bästa sättet att komma igång med att börja lösa algoritmer och chiffertext tillsammans med Steganography. Även om Steganography kan verka lätt och det inte är sant kryptering, är det fortfarande en av de mest använda krypteringen när det gäller grunderna och när du behöver koda något på mycket liten tid och på bästa sätt.

Första bildkälla: pixabay.com

Rekommenderade artiklar

Här är några artiklar som hjälper dig att få mer information om algoritmer och kryptografi så bara gå igenom länken.

  1. Datastrukturer och algoritmer Intervjufrågor | Mest användbar
  2. 8 Fantastiska algoritmintervjufrågor och svar
  3. Bästa valet programmeringsspråk för att lära sig algoritmer
  4. 10 bästa datastrukturer och algoritmer C ++ | Grunderna

Kategori: