Pagrindinis bloko šifro ir srauto šifravimo skirtumas yra tas, kad bloko šifravimas vienu metu užšifruoja ir iššifruoja teksto bloką. Kita vertus, srauto šifravimas šifruoja ir iššifruoja tekstą, vienu metu paimdamas vieną baito tekstą.
Palyginimo diagrama
Palyginimo pagrindas | Blokuoti šifravimą | Srauto šifravimas |
---|---|---|
Pagrindinis | Konvertuoja paprastą tekstą vienu metu. | Konvertuoja tekstą vienu baito paprasto teksto vienu metu. |
Sudėtingumas | Paprastas dizainas | Kompleksas palyginti |
Naudotų bitų skaičius | 64 bitai ar daugiau | 8 bitai |
Sumišimas ir difuzija | Naudoja tiek painiavą, tiek sklaidą | Naudojama tik dėl painiavos |
Naudojami algoritmo režimai | ECB (elektroninių kodų knyga) CBC (blokinis blokavimas) | CFB (Cipher Feedback) OFB (išvesties atsiliepimai) |
Grįžtamumas | Šifruoto teksto keitimas yra sunkus. | Jis naudoja XOR šifravimui, kurį galima lengvai pakeisti į paprastą tekstą. |
Įgyvendinimas | „Feistel Cipher“ | Vernam Cipher |
Blokų šifravimo apibrėžimas
Blokuoti „Cipher“ užpildo pranešimą ir sulaužo į fiksuotą blokų dydį ir konvertuoja vienu pranešimo bloku. Pavyzdžiui, mes turime pranešimą paprastu tekstu „STREET_BY_STREET“, kurį reikia užšifruoti. Naudojant „Bock“ šifrą, „STREET“ turi būti užšifruotas iš pradžių, po to - „_BY_“ ir pagaliau „STREET“.
Iš tikrųjų praktika komunikacija vyksta tik bitais. Todėl STREET iš tikrųjų reiškia STREET ASCII simbolio dvejetainį ekvivalentą. Vėliau bet kuris algoritmas šifruoja juos; gaunami bitai vėl paverčiami į savo ASCII ekvivalentą.
Akivaizdi problema, susijusi su blokų šifrų naudojimu, yra kartoti tekstą, kuriam sukuriamas tas pats šifras. Taigi, tai duotų užuominą į kriptoanalizatorių, kuris leidžia lengviau išsiaiškinti pasikartojančių paprasto teksto eilutes. Todėl jis gali atskleisti visą pranešimą.
Norėdami įveikti šią problemą, naudojamas grandinės režimas . Šiuo metodu ankstesnis šifravimo teksto blokas yra maišomas su dabartiniu bloku, kad šifravimo tekstas būtų neaiškus, todėl išvengiama pasikartojančių blokų, turinčių tą patį turinį.
Stream Cipher apibrėžimas
„Stream Cipher“ paprastai užkoduoja vieną žinutės baitą, o ne naudojant blokus. Paimkime pavyzdį, tarkime, kad originalus pranešimas (paprastas tekstas) yra „mėlynas dangus“ ASCII (ty teksto formatas). Kai konvertuojate šiuos ASCII į lygiavertes dvejetaines reikšmes, ji suteiks išėjimą 0 ir 1 formose. Leiskite jį išversti į 010111001.
Šifravimui ir iššifravimui naudojamas pseudorandinis bitų generatorius, kuriame yra įdėtas raktas ir paprastas tekstas. Pseudorandominis bitų generatorius sukuria 8 bitų numerių srautą, kuris, atrodo, yra atsitiktinis, vadinamas keystream . Leiskite įvesties klavišui 100101011. Dabar raktas ir paprastas tekstas yra XORed. XOR logika yra paprasta suprasti.
XOR sukuria 1 išėjimą, kai vienas įėjimas yra 0, o kitas yra 1. Išėjimas yra 0, jei abu įėjimai yra 0 arba abu įėjimai yra 1.
Sumišimas yra metodas, garantuojantis, kad šifruotas tekstas nesuteikia jokios informacijos apie paprastą tekstą.
Difuzija yra strategija, kuria siekiama padidinti paprasto teksto redundanciją, skleidžiant ją eilutėse ir stulpeliuose.
Pagrindiniai „Block Cipher“ ir „Stream Cipher“ skirtumai
- Blokavimo šifravimo technika apima vieno teksto bloko šifravimą vienu metu, ty atskirai. Panašiai iššifruokite tekstą, paimdami vieną bloką po kito. Priešingai, srauto šifravimo technika apima vieno baito teksto šifravimą ir iššifravimą vienu metu.
- Blokavimo šifras naudoja tiek painiavą, tiek difuziją, o srauto šifravimas priklauso tik nuo painiavos.
- Įprastas bloko dydis gali būti 64 arba 128 bitų blokų šifravimo. Priešingai, 1 baitas (8 bitai) vienu metu konvertuojamas srauto šifru.
- Blokinis šifras naudoja ECB (elektroninių kodų knygą) ir CBC (koduotės blokavimo grandinės) algoritmo režimus. Priešingai, „Stream“ šifras naudoja CFB (Cipher Feedback) ir OFB (Output Feedback) algoritmo režimus.
- „Stream“ šifras naudoja XOR funkciją paprastam tekstui konvertuoti į šifruotą tekstą, todėl XORed bitus lengva pakeisti. Tuo tarpu bloko šifras nenaudoja XOR.
- Blokavimo šifras naudoja tą patį raktą kiekvienam blokui užšifruoti, o srauto šifras kiekvienam baitui naudoja kitą raktą.
Išvada:
Blokuoti „Cipher“ ir „Stream Cipher“ skiriasi tuo, kaip paprastas tekstas yra užšifruotas ir iššifruotas. Blokavimo šifro idėja yra padalinti paprastą tekstą į blokus, kurie toliau šifruoja tuos blokus. Nors srauto šifras konvertuoja paprastą tekstą šiek tiek panašiu į srautą.