Den væsentligste forskel mellem en blok-kryptering og en strøm-chiffer er, at blok-krypteringen krypterer og dekrypterer en blok af teksten ad gangen. På den anden side krypterer strømkrypter og dekrypterer teksten ved at tage tekstens eneste byte ad gangen.
Sammenligningstabel
Grundlag for sammenligning | Bloker cipher | Stream chiffer |
---|---|---|
Grundlæggende | Konverterer den almindelige tekst ved at tage sin blok ad gangen. | Konverterer teksten ved at tage en byte af almindelig tekst ad gangen. |
kompleksitet | Enkelt design | Kompleks forholdsvis |
Antal bits, der anvendes | 64 bit eller mere | 8 bit |
Forvirring og diffusion | Bruger både forvirring og diffusion | Kun afhænger af forvirring |
Algoritme tilstande anvendes | ECB (Electronic Code Book) CBC (Cipher Block Chaining) | CFB (Cipher Feedback) OFB (Output Feedback) |
reversibilitet | Omvendt krypteret tekst er svært. | Det bruger XOR til kryptering, som let kan vendes til almindelig tekst. |
Implementering | Feistel Cipher | Vernam Cipher |
Definition af Block Cipher
Block Cipher tager en besked og bryder den ind i en fast størrelse af blokke og konverterer en blok af meddelelsen på et øjeblik. For eksempel har vi en meddelelse i almindelig tekst "STREET_BY_STREET", der skal krypteres. Ved hjælp af bock-kryptering skal "STREET" først krypteres, efterfulgt af "_BY_" og endelig "STREET".
I selve praksis foregår kommunikation kun i bit. Derfor betyder STREET faktisk den binære ækvivalent af ASCII karakter af STREET. Efterfølgende krypterer enhver algoritme disse; de resulterende bits transformeres tilbage i deres ASCII-ækvivalent.
Et tydeligt problem vedrørende brugen af blokcifre er gentagelse af tekst, for hvilken den samme kryptering er genereret. Derfor vil det give et tip til kryptanalytikeren, som gør det lettere at finde ud af de tilbagevendende strenge af almindelig tekst. Som et resultat kan det afsløre hele meddelelsen.
For at overvinde fra dette problem anvendes kædefunktionen . I denne teknik blandes den foregående blok af kodetekst med den nuværende blok, for at undgå chifferteksten vag, undgår man de tilbagevendende mønstre af blokke med det samme indhold.
Definition af Stream Cipher
Stream Cipher krypterer typisk en byte af meddelelsen i det øjeblik i stedet for at bruge blokke. Lad os tage et eksempel, formoder , at den oprindelige meddelelse (almindelig tekst) er "blå himmel" i ASCII (dvs. tekstformat). Når du konverterer disse ASCII til tilsvarende binære værdier, vil det give output i 0 og 1's form. Lad det blive oversat til 010111001.
Til kryptering og dekryptering anvendes en pseudorandom bitgenerator, hvori en nøgle og almindelig tekst indlæses. En pseudorandom bitgenerator skaber en strøm af 8-bit tal, der tilsyneladende er tilfældigt kendt som keystream . Lad indtastningsnøglen være 100101011. Nu er nøglen og ren tekst XORed. XOR-logikken er let at forstå.
XOR producerer en udgang på 1, når en indgang er 0, og den anden er 1. Udgangen er 0, hvis begge indgange er 0 eller begge indgange er 1.
Forvirring er en metode, der sikrer, at en chiffertekst ikke giver nogen anelse om den oprindelige almindelig tekst.
Diffusion er en strategi, der bruges til at forbedre overfladen af almindelig tekst ved at sprede den over rækker og kolonner.
Nøgleforskelle mellem Block Cipher og Stream Cipher
- Blokchifferteknik indebærer kryptering af en blok tekst ad gangen, det vil sige enkeltvis. På samme måde dekrypterer du teksten ved at tage en blok efter den anden. I modsætning hertil indebærer Stream-chifferteknik kryptering og dekryptering af en byte af teksten ad gangen.
- Blokciffer bruger både forvirring og diffusion, mens strømkrypteringen kun afhænger af forvirring.
- Den sædvanlige størrelse af blokken kan være 64 eller 128 bit i blok-cifferet. Imidlertid konverteres 1 byte (8 bit) ad gangen i strømkifferen.
- Block cipher bruger ECB (Electronic Code Book) og CBC (Cipher Block Chaining) algoritme tilstande. Tværtimod bruger Stream-kryptering CFB (Cipher Feedback) og OFB (Output Feedback) algoritmen.
- Stream-chiffer bruger XOR-funktion til at konvertere almindelig tekst til chiffertekst, det er grunden til, at det er let at vende XORed-bitsne. Mens blokchiffer ikke bruger XOR til at gøre det.
- Blokkifferifikation bruger den samme nøgle til at kryptere hver blok, mens strømkodning bruger en anden nøgle for hver byte.
Konklusion:
Block Cipher og Stream Cipher adskiller sig i den måde, hvorpå almindelig tekst krypteres og dekrypteres. Tanken bag blokchiffer er at opdele den klare tekst i blokke yderligere kryptere disse blokke. Mens stream-chiffer konverterer almindelig tekst bit for bit svarende til stream.