Galvenā atšķirība starp bloku šifrēšanu un plūsmas šifrēšanu ir tā, ka bloka šifrēšana šifrē un atšifrē teksta bloku vienlaikus. No otras puses, straumēšanas šifrēšana šifrē un atšifrē tekstu, vienā reizē paņemot vienu baitu.
Salīdzinājuma diagramma
Salīdzināšanas pamats | Bloķēt šifrēšanu | Straumēšanas šifrēšana |
---|---|---|
Pamata | Pārvērš vienkāršā teksta tekstu, ņemot to bloku vienlaicīgi. | Pārvērš tekstu, veicot vienu vienkārša teksta baitu. |
Sarežģītība | Vienkāršs dizains | Salīdzinoši komplekss |
Izmantoto bitu skaits | 64 biti vai vairāk | 8 biti |
Apjukums un difūzija | Izmanto gan apjukumu, gan izkliedēšanu | Pamatojas tikai uz neskaidrībām |
Izmantotie algoritma režīmi | ECB (elektronisko kodu grāmata) CBC (kodēšanas bloka ķēde) | CFB (atšifrēt atsauksmes) OFB (izejas atsauksmes) |
Atgriezeniskums | Šifrētā teksta maiņa ir grūti. | Tas izmanto XOR šifrēšanai, ko var viegli mainīt pret vienkāršu tekstu. |
Īstenošana | Feistel Cipher | Vernam Cipher |
Bloka šifrēšanas definīcija
Bloķēt šifrēšanu ņem ziņu un pārrauj to fiksētā bloku lielumā un pārvērš vienu ziņojuma bloku uzreiz. Piemēram, mums ir ziņojums vienkāršā tekstā “STREET_BY_STREET”, kas nepieciešams šifrēšanai. Izmantojot bock šifru, “STREET” vispirms ir jāšifrē, kam seko “_BY_” un visbeidzot „STREET”.
Faktiskajā praksē komunikācija notiek tikai bitos. Tāpēc STREET faktiski nozīmē STREET ASCII rakstzīmes bināro ekvivalentu. Pēc tam jebkurš algoritms tos šifrē; iegūtie biti tiek pārveidoti atpakaļ to ASCII ekvivalentā.
Acīmredzama bloka šifru izmantošanas problēma ir atkārtojot tekstu, kuram tiek ģenerēts tas pats cipars. Tātad, tas dotu mājienu cryptanalyst, kas padara to vieglāk noskaidrot atkārtojas virknes teksta. Tā rezultātā var atklāt visu ziņojumu.
Lai pārvarētu šo problēmu, tiek izmantots ķēdes režīms . Šajā metodē iepriekšējais šifrētā teksta bloks tiek sajaukts ar pašreizējo bloku, lai šifrēšanas teksts būtu neskaidrs, tādējādi izvairoties no atkārtotiem blokiem ar tādu pašu saturu.
Stream Cipher definīcija
Stream Cipher parasti šifrē vienu baitu ziņu tajā brīdī, nevis izmantojot blokus. Piemēram, pieņemsim, ka sākotnējais ziņojums (vienkāršais teksts) ir “zilā debesis” ASCII (ti, teksta formāts). Pārvēršot šos ASCII līdzvērtīgos bināros lielumos, tas sniegs rezultātu 0 un 1 formā. Ļaujiet to iztulkot 010111001.
Šifrēšanai un atšifrēšanai izmanto pseidoganduma bitu ģeneratoru, kurā tiek ielādēta atslēga un vienkāršais teksts. Pseudorandom bitu ģenerators rada plūsmu 8 bitu skaitļiem, kas šķietami ir nejauši pazīstami kā keystream . Ļaujiet ievades taustiņam 100101011. Tagad atslēga un teksta teksts ir XORed. XOR loģika ir viegli saprotama.
XOR rada 1 izeju, ja viens ieeja ir 0, bet otrs ir 1. Izeja ir 0, ja vai nu abas ieejas ir 0, vai abas ieejas ir 1.
Apjukums ir metode, kas garantē, ka šifrēšanas teksts nesniedz pavedienu par sākotnējo vienkāršo tekstu.
Difūzija ir stratēģija, ko izmanto, lai uzlabotu vienkārša teksta atlaišanu, izplatot to rindās un kolonnās.
Galvenās atšķirības starp bloku šifrēšanu un plūsmas kodējumu
- Bloka šifrēšanas metode ietver viena teksta bloka šifrēšanu, ti, atsevišķi. Līdzīgi atšifrējiet tekstu, veicot vienu bloku pēc otra. Turpretim straumēšanas šifrēšanas paņēmiens ietver viena baita šifrēšanu un atšifrēšanu vienā reizē.
- Bloka šifrēšana izmanto gan neskaidrības, gan difūziju, bet plūsmas šifrēšana balstās tikai uz neskaidrībām.
- Bloka šifrējumā parastais bloka lielums varētu būt 64 vai 128 biti. Pretstatā 1 baits (8 biti) vienā reizē tiek pārvērsts plūsmas šifrā.
- Bloka šifrēšana izmanto ECB (elektronisko kodu grāmatu) un CBC (kodēšanas bloka ķēdes) algoritmu režīmus. Gluži pretēji, Stream šifrēšana izmanto CFB (Cipher Feedback) un OFB (Output Feedback) algoritmu režīmus.
- Plūsmas šifrēšana izmanto XOR funkciju, lai pārveidotu vienkāršo tekstu šifrētajā tekstā, tāpēc XORed bitus ir viegli mainīt. Tā kā bloķēšanas šifrēšana neizmanto XOR, lai to izdarītu.
- Bloķēšanas šifrēšana izmanto vienu un to pašu taustiņu, lai šifrētu katru bloku, bet plūsmas šifrēšana katram baitam izmanto citu atslēgu.
Secinājums:
Block Cipher un Stream Cipher atšķiras veidā, kādā vienkāršais teksts ir šifrēts un atšifrēts. Bloka šifrēšanas ideja ir sadalīt vienkāršo tekstu blokos, kas turpmāk šifrē šos blokus. Kamēr plūsmas šifrēšana pārvērš vienkāršu tekstu mazliet līdzīgi plūsmai.