Straumēšanas šifrs pret bloķēšanas šifru | Stāvokļa šifrs pret bloku šifru
Kriptogrāfijā Straumes šifri un Bloku šifri ir divi šifrēšanas/atšifrēšanas algoritmi, kas pieder simetrisko atslēgu šifru saimei. Parasti šifrs izmanto vienkāršu tekstu kā ievadi un rada šifrētu tekstu kā izvadi. Bloku šifri šifrē fiksēta garuma bitu bloku, izmantojot nemainīgu transformāciju. Straumes šifri šifrē dažāda garuma bitu straumes un izmanto dažādas transformācijas katram bitam.
Kas ir straumes šifrs?
Straumes šifri pieder simetrisko atslēgu šifru saimei. Straumes šifri apvieno vienkārša teksta bitus ar pseidogadījuma šifra bitu straumi, izmantojot XOR (ekskluzīvo vai) operāciju. Straumes šifri šifrē vienkāršā teksta ciparus pa vienam, izmantojot dažādas transformācijas secīgiem cipariem. Tā kā katra cipara šifrēšana ir atkarīga no šifrēšanas programmas pašreizējā stāvokļa, straumes šifrus sauc arī par stāvokļa šifriem. Parasti atsevišķi biti/kodi tiek izmantoti kā atsevišķi cipari. Lai izvairītos no drošības problēmām, ir jāpārliecinās, ka viens un tas pats sākuma stāvoklis netiek izmantots vairāk nekā vienu reizi. Visplašāk izmantotais straumes šifrs ir RC4.
Kas ir bloka šifrs?
Bloka šifrs ir vēl viens simetriskas atslēgas šifrs. Bloku šifri darbojas uz blokiem (bitu grupām) ar fiksētu garumu. Bloku šifri izmanto fiksētu (nemainīgu) transformāciju visiem cipariem blokā. Piemēram, ja x-bitu bloka vienkāršais teksts (kopā ar slepeno atslēgu) tiek nodrošināts kā ievade bloka šifrēšanas programmai, tas rada atbilstošo šifrētā teksta x-bitu bloku. Faktiskā transformācija ir atkarīga no slepenās atslēgas. Līdzīgi atšifrēšanas algoritms atgūst sākotnējo vienkāršā teksta x-bitu bloku, kā ievadi izmantojot x-bitu šifrētā teksta bloku un iepriekš minēto slepeno atslēgu. Ja ievades ziņojums ir pārāk garš, salīdzinot ar bloka lielumu, tas tiks sadalīts blokos un šie bloki tiks (atsevišķi) šifrēti, izmantojot vienu un to pašu atslēgu. Tomēr, tā kā tiek izmantota viena un tā pati atslēga, katra atkārtotā secība vienkāršajā tekstā kļūst par tādu pašu atkārtotu secību šifrētajā tekstā, un tas var radīt drošības problēmas. Populāri bloku šifri ir DES (datu šifrēšanas standarts) un AES (uzlabotais šifrēšanas standarts).
Kāda ir atšķirība starp straumes šifru un blokšifru?
Lai gan gan straumes šifri, gan blokšifri pieder simetrisko šifrēšanas šifru saimei, pastāv dažas būtiskas atšķirības. Bloku šifri šifrē fiksēta garuma bitu blokus, savukārt straumes šifri apvieno vienkārša teksta bitus ar pseidogadījuma šifra bitu straumi, izmantojot XOR darbību. Lai gan bloku šifri izmanto vienu un to pašu transformāciju, straumes šifri izmanto dažādas transformācijas, pamatojoties uz dzinēja stāvokli. Straumes šifri parasti tiek izpildīti ātrāk nekā bloku šifri. Aparatūras sarežģītības ziņā straumes šifri ir salīdzinoši mazāk sarežģīti. Straumes šifriem parasti tiek dota priekšroka salīdzinājumā ar blokšifriem, ja vienkāršais teksts ir pieejams dažādos daudzumos (piemēram, drošam Wi-Fi savienojumam), jo bloku šifri nevar darboties tieši blokos, kas ir īsāki par bloka lielumu. Bet dažreiz atšķirība starp straumes šifriem un bloku šifriem nav ļoti skaidra. Iemesls ir tāds, ka, izmantojot noteiktus darbības režīmus, bloka šifru var izmantot kā straumes šifru, ļaujot tam šifrēt mazāko pieejamo datu vienību.