Kódování a šifrování
Problematika kódování a šifrování je rozsáhlá. Nelekejte se ovšem následujícího množství textu. Důležité je problematiku pochopit, nejlépe za pomoci příkladů. Pak je snadné si všechny informace zapamatovat. Naopak není k ničemu užitečné naučit se všechny definice a tvrzení nazpaměť a nemít ponětí, co znamenají.
Kódování
záznam informace pomocí známého, pokud možno všeobecně rozšířeného kódu (kódy jsou obvykle standardizovány, tj. zveřejněny a používány všude stejně) za účelem jejího praktického a jednoduchého uchovávání a přenosu
např. Morseova abeceda – optimalizováno pro přenos světelným signálem
Braillovo písmo – optimalizováno pro četbu hmatem
informatika – záznam textu, obrazu, zvuku optimalizovaný pro přenos elektrickým signálem
– dvě možné úrovně el. signálu – 0 (není) a 1 (je)
– využití polyadických soustav (binární, dekadická a hexadecimální)
Jednotky informace
bit (zkr. binary unit, angl. bit = kousek) – zkráceně 1 b
nejmenší jednotka informace, jeden záznam na záznamovém médiu, jeden impuls na přenosovém médiu, jedna binární číslice, nabývá hodnot 0 nebo 1
Více bitů za sebou lze považovat za binární číslo, které můžeme zapsat i pomocí jiných soustav.
např. 4 bity 1 1 0 0 = 1100 (binární číslo)
= 12 (dekadické číslo)
= 0xC (hexadecimální číslo, pozná se tak, že zápis začíná vždy 0x)
použití – rychlost přenosu (např. 2048 b/s)
– výpočetní síla procesoru (např. 32 b procesor – dokáže zpracovat 32 binárních číslic najednou)
byte (= 8 bitů = 23 bitů) – zkráceně 1 B
Lze pomocí něj zapsat 256 čísel od 0 (00000000) po 255 (11111111).
použití – velikost souboru (např. 3 MB veliký soubor s fotografií)
Pozor při stahování souborů – velikost souboru je uvedena v bytech, rychlost přenosu v bitech.
např. Soubor o velikosti 875 MB = 8×875 Mb se při přenosové rychlosti 2 Mb/s bude stahovat 8×875/2 = 3500 s = 70 min.
méně používané
2 byte = 1 word (slovo)
2 word = 1 double word (dvojité slovo)
řecké předpony
kilo (k), mega (M), giga (G), tera (T) – někdy ve smyslu mocnin dvou, někdy ve smyslu mocnin deseti
např. kilo = 210 = 1024 nebo 103 = 1000, mega = 220 = 1048576 nebo 106 = 1000000
Někdy zneužíváno např. výrobci disků – 100 GB disk by měl mít 100×230 B = 107374182400B, ale ve skutečnosti může mít jen 100000000000 B = jen 93% velikosti
Kódování informace v informatice
veškeré informace uloženy v souborech, kódovány pomocí číslic0 a1
Soubory s informací kódovanou známým způsobem jsou opatřeny známou příponou a zpracovávány programy, které toto kódování znají (pokud neurčíte jinak).
Existují programy, které umí zobrazit přímo jednotlivé bity jakéhokoliv souboru, např. Pspad.
(ke stažení na http://www.pspad.com/cz/download.php)
Kódování textu (znaků)
Princip
K zakódování X různých znaků potřebujeme X různých dvojkových čísel. Základní anglická abeceda se skládá z 26 znaků, tj. k jejímu zakódování potřebujeme nejméně 26 dvojkových čísel, nejlépe 0 (00000) až 25 (11001), neboli nejméně 5 bitů, přičemž čísla 26 (11010) až 31 (11111) jsou nevyužita.
Anglická abeceda s rozlišením velkých a malých písmen se skládá z 52 znaků, tj. k jejímu zakódování potřebujeme nejméně 52 dvojkových čísel, nejlépe 0 (000000) až 51 (110011), neboli nejméně 6 bitů, přičemž čísla 52 (110100) až 63 (111111) jsou nevyužita.
Potřebujeme-li zakódovat ještě číslice od 0 do 9, interpunkční a jiná znaménka, zvláštní znaky (mezera, procento, zavináč apod.) a netištitelné znaky (tab, enter), potřebujeme již 8 bitové číslo, které nám dává 255 různých možností od 0 (00000000) po 255 (11111111). Běžně se tedy jeden znak textu zakóduje pomocí 1 bytu. Velikost souboru s neformátovaným textem kódovaným tímto způsobem je pak v bytech rovna počtu znaků textu. Např. soubor Ahoj.txt, který obsahuje slovo Ahoj, má velikost 4 B.
Existuje obrovské množství možností, jak jednotlivým existujícím znakům přiřadit jednotlivá čísla od 0 do 255. V praxi se ovšem používají standardizované převodní tabulky, nejčastěji ASCII (American Standard Code for Information Interchange) tabulka.
ASCII kódovací tabulka
32 | 60 | < | 88 | X | 116 | t | 144 | � | 172 | ¬ | 200 | Č | 228 | ä | |
33 | ! | 61 | = | 89 | Y | 117 | u | 145 | ‘ | 173 | | 201 | É | 229 | ĺ |
34 | „ | 62 | > | 90 | Z | 118 | v | 146 | ’ | 174 | ® | 202 | Ę | 230 | ć |
35 | # | 63 | ? | 91 | [ | 119 | w | 147 | “ | 175 | Ż | 203 | Ë | 231 | ç |
36 | $ | 64 | @ | 92 | \ | 120 | x | 148 | ” | 176 | ° | 204 | Ě | 232 | č |
37 | % | 65 | A | 93 | ] | 121 | y | 149 | • | 177 | ± | 205 | Í | 233 | é |
38 | & | 66 | B | 94 | ^ | 122 | z | 150 | – | 178 | ˛ | 206 | Î | 234 | ę |
39 | ‚ | 67 | C | 95 | _ | 123 | { | 151 | — | 179 | ł | 207 | Ď | 235 | ë |
40 | ( | 68 | D | 96 | ` | 124 | | | 152 | � | 180 | ´ | 208 | Đ | 236 | ě |
41 | ) | 69 | E | 97 | a | 125 | } | 153 | ™ | 181 | µ | 209 | Ń | 237 | í |
42 | * | 70 | F | 98 | b | 126 | ~ | 154 | š | 182 | ¶ | 210 | Ň | 238 | î |
43 | + | 71 | G | 99 | c | 127 | 155 | › | 183 | · | 211 | Ó | 239 | ď | |
44 | , | 72 | H | 100 | d | 128 | € | 156 | ś | 184 | ¸ | 212 | Ô | 240 | đ |
45 | – | 73 | I | 101 | e | 129 | � | 157 | ť | 185 | ą | 213 | Ő | 241 | ń |
46 | . | 74 | J | 102 | f | 130 | ‚ | 158 | ž | 186 | ş | 214 | Ö | 242 | ň |
47 | / | 75 | K | 103 | g | 131 | � | 159 | ź | 187 | » | 215 | × | 243 | ó |
48 | 0 | 76 | L | 104 | h | 132 | „ | 160 | 188 | Ľ | 216 | Ř | 244 | ô | |
49 | 1 | 77 | M | 105 | i | 133 | … | 161 | ˇ | 189 | ˝ | 217 | Ů | 245 | ő |
50 | 2 | 78 | N | 106 | j | 134 | † | 162 | ˘ | 190 | ľ | 218 | Ú | 246 | ö |
51 | 3 | 79 | O | 107 | k | 135 | ‡ | 163 | Ł | 191 | ż | 219 | Ű | 247 | ÷ |
52 | 4 | 80 | P | 108 | l | 136 | � | 164 | ¤ | 192 | Ŕ | 220 | Ü | 248 | ř |
53 | 5 | 81 | Q | 109 | m | 137 | ‰ | 165 | Ą | 193 | Á | 221 | Ý | 249 | ů |
54 | 6 | 82 | R | 110 | n | 138 | Š | 166 | ¦ | 194 | Â | 222 | Ţ | 250 | ú |
55 | 7 | 83 | S | 111 | o | 139 | ‹ | 167 | § | 195 | Ă | 223 | ß | 251 | ű |
56 | 8 | 84 | T | 112 | p | 140 | Ś | 168 | ¨ | 196 | Ä | 224 | ŕ | 252 | ü |
57 | 9 | 85 | U | 113 | q | 141 | Ť | 169 | © | 197 | Ĺ | 225 | á | 253 | ý |
58 | : | 86 | V | 114 | r | 142 | Ž | 170 | Ş | 198 | Ć | 226 | â | 254 | ţ |
59 | ; | 87 | W | 115 | s | 143 | Ź | 171 | « | 199 | Ç | 227 | ă | 255 | ˙ |
Kódy 0-31 jsou přiřazeny netištitelným znakům (např. 9 = tab, 10 = enter). Kódy 48-57 jsou přiřazeny číslicím 0-9 (kód číslice se dá tedy určit jako 48 + číslice, např. číslice 5 bude kódována jako 48+5 = 53 = 110101). Význam kódů 128-255 závisí na použitém typu písma. V českém písmu budou mít tato čísla jiný význam než v řeckém. Pokud v elektronickém textu uvidíte neznámé znaky tam, kde evidentně nemají co dělat, může to být způsobeno právě špatně vybraným písmem. Autor textu např. zakódoval český znak č pomocí českého písma jako kód 190, zatímco prohlížeč textu kód 190 dekódoval pomocí řeckého písma jako řecký znak alfa. Např. u html stránky většinou stačí v prohlížeči zvolit správné písmo pro dekódování obsahu stránky (menu Zobrazit, Kódování).
Osmibitové kódování znaků již dnes není dostačující, neboť je potřeba moci jedním kódem zakódovat i znaky všech národních abeced (včetně azbuky nebo asijských písem), aby je bylo možno v jednom textu kombinovat. Proto bylo vyvinuto 16tibitové kódování Unicode, kterým je možno zakódovat až 216 (přibližně 64 tisíc) znaků. Význam kódů 0-128 je stejný jako ve standardu ASCII. Velikost souboru s neformátovaným textem kódovaným pomocí Unicode je v bytech rovna dvojnásobku počtu znaků textu. Některé dnešní programy ještě nepodporují kódování Unicode (nebo musíte tuto možnost nejdříve ručně povolit), takže znak kódovaný pomocí Unicode zobrazí jako dva jiné znaky.
Textové soubory kódované uvedenými způsoby lze vytvářet, ukládat a otevírat pomocí textových editorů, např. Notepadu (poznámkový blok). Notepad pracuje tak, že bity jakéhokoliv souboru, který v něm otevíráte (vč. souborů, které text neobsahují, ale přesto si vyberete, že je chcete otevírat v Notepadu) rozdělí po osmi a každou osmici přeloží podle ASCII tabulky na příslušný znak, který pak zobrazí.
Mezi tyto textové soubory patří především neformátovaný text (přípona txt) a zdrojové kódy programů (např. přípona cpp pro C++, vbs pro Visual Basic Script, html, php nebo asp pro webové stránky). Některé další soubory (např. formátovaný text s příponami doc, rtf apod.) jsou částečně kódovány jako text, částečně úplně jinak (obsahují formátovací značky, lze si prohlédnout v pspadu). Samotné programy (např. přípony dll, exe, com) obsahují již přímo instrukce pro procesor a jako text nejsou kódovány vůbec
Příklad
Text = Ahoj!123
Kódování podle ASCII
A h o j ! 1 2 3
binárně = 0100 0001 0110 1000 0110 1111 0110 1010 0010 0001 0011 0001 0011 0010 0011 0011
dekadicky = 65 104 111 106 33 49 50 51
hexadecimálně = 0x41 0x68 0x6F 0x6A 0x21 0x31 0x32 0x33
Kódování obrazu
Princip
Vektorový záznam
Zaznamenává se způsob, jakým lze obraz vytvořit, např. kruh o poloměru R se středem na souřadnicích X,Y nakreslete barvou B a tloušťkou čáry T, úsečku veďte z bodu A do bodu B přerušovaně atd. Příslušný program pak podle instrukcí zrekonstruuje obraz. Výhodou tohoto záznamu jsou velice nízké nároky na paměť, nelze jej ovšem pochopitelně použít pro fotografie a reálné kresby, pouze pro jednoduchou grafiku. Vektorovou grafiku ovládají pouze specializované programy (např. Corel Draw), běžné prohlížeče a zobrazovače s ní nepracují, proto se s ní běžně nesetkáte.
Rastrový záznam
Zaznamenává se jakási šachovnice jednotlivých barevných bodů (pixel = zkr. picture element, angl. obrazový prvek), na níž lze obraz rozložit. Čím více je řádků a sloupců, na které obraz rozložíme, tím větší je jeho rozlišení a kvalita, zároveň však také velikost. Např. obrázek o rozlišení 640×480 se skládá z 307200 pixelů, pro každý pixel je potřeba zaznamenat informaci o jeho barvě, soubor s obrázkem tedy bude veliký. Při příliš malém rozlišení však zase bude obraz nepřirozeně rasterizovaný (viditelné čtverečky). Snažíme se volit nejmenší takové rozlišení, při němž je rasterizace pro lidské oko nerozpoznatelná.
Způsob kódování barvy závisí na počtu barev, kterých můžou pixely nabývat. V černobílém obrázku mohou pixely mít pouze jednu ze dvou barev, každý pixel tedy stačí zakódovat pouze jedním bitem, kde např. 0 znamená černá a 1 znamená bílá. Obrázek pak bude mít takovou velikost v bitech, jaké má rozlišení.
Příklad
0000000000111110000000000
0000000000111110000000000
0000000000111110000000000
0000000000111110000000000
0000000000111110000000000
1111111111111111111111111
1111111111111111111111111
1111111111111111111111111
1111111111111111111111111
1111111111111111111111111
0000000000111110000000000
0000000000111110000000000
0000000000111110000000000
0000000000111110000000000
0000000000111110000000000
Rozlišení obrázku – 15×25 = 375
Velikost obrázku – 375×1 = 375 b = 47 B
Může-li každý pixel obrázku nabývat některou ze 16 barev, pak je třeba každý pixel zakódovat čtyřmi bity, neboť pomocí nich lze zapsat 16 různých čísel od 0 (0000) do 15 (1111). Tzv. barevná paleta pak určuje, která barva je kódována kterým číslem. Všechny programy, které s takovým obrazem pracují, však musí mít tuto paletu nastavenu stejně, aby výsledný obraz byl stejně barevný. U 256 barevné palety je každý pixel potřeba zakódovat osmi bity, neboť pomocí nich lze zapsat 255 různých čísel od 0 (00000000) do 255 (11111111). Obdobně lze odvodit vztahy pro libovolně velikou paletu. Velikost souboru s obrázkem je pak v bitech rovna součinu rozlišení obrazu a počtu bitů, který je potřeba na zakódování barvy jednoho pixelu.
Příklad
Soubor s obrázkem, velikost 36 b
binárně 010 111 000 010
011 101 001 100
111 010 110 000
tj. totéž jako 0101 1100 0010
0111 0100 1100
1110 1011 0000
hexadecimálně 0x5 0xC 0x2
0x7 0x4 0xC
0xE 0xB 0x0
a) 8-mi barevná paleta – 1 pixel = 3 bity
0 | 000 | černá |
1 | 001 | hnědá |
2 | 010 | zelená |
3 | 011 | modrá |
4 | 100 | červená |
5 | 101 | oranžová |
6 | 110 | žlutá |
7 | 111 | bílá |
pixely obrázku:
zelený, bílý, černý, zelený
modrý, oranžový, hnědý, červený
bílý, zelený, žlutý, černý
rozlišení 4×3 = 12 pixelů
b) 16-ti barevná paleta – 1 pixel = 4 bity
0 | 0000 | černá |
1 | 0001 | šedá |
2 | 0010 | tm. hnědá |
3 | 0011 | sv. hnědá |
4 | 0100 | tm. zelená |
5 | 0101 | sv. zelená |
6 | 0110 | tm. modrá |
7 | 0111 | sv. modrá |
8 | 1000 | fialová |
9 | 1001 | tm. červená |
10 | 1010 | sv. červená |
11 | 1011 | oranžová |
12 | 1100 | tm. žlutá |
13 | 1101 | sv. žlutá |
14 | 1110 | béžová |
15 | 1111 | bílá |
pixely obrázku:
světle zelený, tmavě žlutý, tmavě hnědý
světle modrý, tmavě zelený, tmavě žlutý
béžový, oranžový, černý
rozlišení 3×3 = 12 pixelů
Chceme-li se vyhnout omezením daným paletou a používat všechny možné okem rozlišitelné barvy, pak použijeme tzv. barevný model RGB (red, green, blue). Podle něj je každá barva složená z určitého množství červené, modré a žluté (existují ovšem i jiné podobné modely se stejným výsledkem). Lidské oko dokáže nejvýše rozlišit, že každá z těchto tří barev přispěla do výsledné barvy 0 až 255 díly, množství každé přísady tedy lze zakódovat osmi bity. Výsledná barva je pak kódována 3×8, tedy 24 bity. Velikost souboru s obrázkem 640×320 pixelů je v tomto kódování 640x320x24 = 38400 b = 4800 B = přibližně 5 MB.
Rastrový záznam kódovaný uvedenými způsoby je použitelný pro jakýkoliv druh obrazu vč. fotografií. Čím detailnější je informace o barvě, tím kvalitnější je obraz, ale i větší velikost souboru. Rastrové obrázky všech uvedených typů mají příponu bmp (informace o kódování barvy je uvedena v hlavičce souboru) a lze je vytvářet, ukládat a otevírat pomocí grafických editorů, např. Paintbrushe (malování).
Chceme-li zmenšit velikost souborů s obrázky, aniž bychom snížili rozlišení, je třeba použít některý komprimovaný formát. Komprese (komprimace) je způsob, jak z něčeho velkého nějakým způsobem udělat něco menšího. Bezeztrátová komprese používá způsoby, které umožňují soubor zrekonstruovat do přesně stejné podoby, jakou měl před kompresí. Ztrátová komprese nevratně zbaví soubor části informace, která je ovšem obvykle zanedbatelná, tudíž nepotřebná. Pro různé typy dat jsou vhodné různé typy kompresí.
Formát png
Jedná se o bezeztrátovou kompresi, která je použitelná pro obrázky s ostrými hranami a velkými plochami stejné barvy. Není pak třeba např. pixel po pixelu vypisovat dvacet bílých řádků obrazu, do souboru stačí pouze zapsat, že bude následovat např. 200 bílých pixelů.
Příklad pro zájemce
zjednodušený zápis komprimovaný záznam
(10 x 1 10 x 0 10 x 1)
10×1 5×0 10×1 01010 1 00101 0 01010 1 – 18b 010101001010010101
10×1 5×0 10×1 010101001010010101
10×1 5×0 10×1 x 5 010101001010010101
10×1 5×0 10×1 010101001010010101
10×1 5×0 10×1 (25 x 1) 010101001010010101
25×1 11001 1 – 6b 110011
25×1 110011
25×1 x 5 110011
25×1 110011
25×1 (10 x 1 10 x 0 10 x 1) 110011
10×1 5×0 10×1 01010 1 00101 0 01010 1 – 18b 010101001010010101
10×1 5×0 10×1 010101001010010101
10×1 5×0 10×1 x 5 010101001010010101
10×1 5×0 10×1 010101001010010101
10×1 5×0 10×1 010101001010010101
Velikost komprimovaného obrázku – 5×18 + 5×6 + 5×18 = 210 b oproti 375 b, tj. zmenšení na 56% původní velikosti
Formát jpg
Jedná se o ztrátovou kompresi, která využívá podobnosti sousedních pixelů u obrazů s přirozeným přechodem barev, např. fotografií. Zanedbání barevných rozdílů mezi sousedními pixely je pro oko nepostřehnutelné.
Formát gif
Jedná se o bezeztrátovou kompresi, která omezuje množství použitých barev na nejvýše 256. Je podobně jako formát png vhodná pro uměle vytvořené obrazy. Mezi přednosti tohoto formátu patří existence tzv. průhledné barvy (při překrytí dvou obrazů prosvítá pod průhlednou barvou spodní obraz) a možnost gif animace (vytvoření pohybového efektu střídáním podobných obrázků, použijte například Zoner GIF Animator, http://www.stahuj.cz/grafika_a_design/animace/zoner-gif-animator). Formát gif je z uvedených důvodů velmi oblíbený mezi autory webových stránek.
Kódování zvuku
Princip
Analogový záznam
Jedná se o jakýsi přirozený otisk fyzikální reality (zvukové vlny) do elektrických impulsů. Analogový záznam postihuje realitu plynule. Nevýhodou analogového záznamu zvuku je náchylnost k záznamu šumů a velké nároky na velikost (viz malá kapacita Audio CD). Obdobou analogového záznamu zvuku (např. nahrávání na kazetový magnetofon) je analogová fotografie (chemická reakce vyvolaná světlem na povrchu filmu).
Digitální záznam
Zvuk není zaznamenáván plynule, ale vzorkován, tj. mnohokrát za vteřinu se změří a zapíše jeho frekvence a hlasitost. Z těchto vzorků je pak možné zvuk kvalitně rekonstruovat. Výhodou digitálního záznamu zvuku je menší nárok na velikost souboru a možnost přidání doplňujících informací do souboru (např. titulky, texty, obraz).
Soubory s digitálním zvukem bývají dále komprimovány některou z mnoha existujících metod. Komprese využívá obvykle nedokonalosti lidského ucha, kdy ořeže (nezachovává) frekvence zvuku, které jsou nižší nebo vyšší, než může ucho zaznamenat. Čím užší škála frekvencí se v záznamu zachovává, tím nižší je kvalita výsledné nahrávky. Kvalitu obvykle volíme podle účelu, např. nižší kvalitu může mít mluvené slovo (telefonní hovor, rádiové vysílání), vyšší kvalitu budeme požadovat např. od nahrávky klasické hudby.
Formát vaw
U tohoto formátu firmy Microsoft nedochází ke kompresi, zvuk je dokonalý, avšak klade velké nároky na paměť. Používá se proto především pro krátké zvukové předěly a znělky operačního systému.
Formáty mpg, mpeg, mp3
Tyto formáty dovolují různý stupeň komprese. Kódování a dekódování těchto souborů klade zvýšené nároky na procesor, avšak při dnešních parametrech procesorů se nejedná o nic kritického, proto jsou velice oblíbené.
Formát wma
Formát firmy Microsoft, který má podobné vlastnosti jako mp3, avšak Microsoft nezveřejňuje jeho strukturu, proto s ním umí zacházet především jeho programy.
Formát ogg
Obdoba předchozích formátů, která je dobře dokumentovaná a oblíbená mezi příznivci alternativních operačních systémů a otevřeného softwaru.
Srovnání uvedených formátů
Forma záznamu | Délka záznamu – min:s | Velikost záznamu | Koeficient MB/min | Poměr k originálu |
wav | 2 : 32 | 26,95 MB | 10,64 | 1 : 1 |
mp3 CD kvalita 128 kbps | 2 : 32 | 2,45 MB | 0,97 | 1 : 11 |
mp3 téměř CD kvalita 80 kbps | 2 : 32 | 1,54 MB | 0,61 | 1 : 18 |
mp3 rádio kvalita 64 kbps | 2 : 32 | 1,23 MB | 0,48 | 1 : 22 |
Formát midi
Tento formát se od předchozích velmi liší svým principem. Zde totiž není přenášen záznam frekvencí a hlasitostí, ale pouze předpis, jak příslušný zvuk vyrobit (podobně jako u vektorových obrázků), např. zahraj půlové tóny C,D,E na klavír a celé tóny Cis, F na housle. Program, který rekonstruuje zvukový záznam, pak musí být schopen vydávat zvuk příslušných nástrojů. Výhodou tohoto přenosu je minimum nároků na paměť, neboť se přenáší v podstatě pouze notový zápis zvuku. Proto je velmi oblíbený např. u mobilních telefonů. Formát midi nelze pochopitelně použít pro mluvené slovo.
Kódování videa
Video můžeme považovat za kombinaci obrazu a zvuku. Metody k jeho záznamu jsou proto také kombinací předchozích metod. Jedná se např. o formáty mpeg, wmv nebo avi. Velmi důležitá je zde samozřejmě komprese. Obvyklé je využití tzv. asymetrické komprese, kdy zakódování je výpočetně náročné (ale to nevadí, protože se provádí pouze jednou), zatímco dekódování je podstatně jednodušší (což je důležité, protože se provádí při každém pouštění videa). Je to podobné jako u opačných matematických operací umocňování (jednoduché, jde i zpaměti) a odmocňování (složité, trvá to dlouho).
Šifrování
Proces změny otevřené (čitelné) informace pomocí známého postupu (šifry) a tajného hesla na informaci šifrovanou. Šifrovat lze na úrovni bitů nebo celých znaků. Čím složitější šifra, tím větší nároky klade šifrování na procesor, ale zároveň je tím těžší šifru prolomit. Informaci je třeba zabezpečit tak složitou šifrou, aby její prolomení pomocí výpočetní techniky (zkoušením všech možných hesel) bylo finančně náročnější než je hodnota této informace. Nejslabším článkem šifrování je pak vždy lidský faktor, útočník se snaží tajné heslo vylákat z člověka, který ho zná (např. falešnými e-maily – tzv. phishing).
Šifrováním a vším souvisejícím se zabývá věda zvaná kryptografie.
Symetrická šifra
Obdobný postup pro šifrování i dešifrování. Všichni účastníci komunikace musí znát stejné tajné heslo, které si musí před jejím zahájením bezpečně předat.
Transpozice (posun)
Každý znak se posune o určitý, tajný počet. V případě bitového zápisu dojde pouze k záměně nul za jedničky.
Příklad
posun o 1
a->b, b->c, c->d …
0->1, 1->0
ahoj -> bipk
ahoj pomocí ASCII = 0100 0001 0110 1000 0110 1111 0110 1010 0010 0001 -> 1011 1110 1001 0111 1001 0000 1001 0101 1101 1110
Substituce (náhrada)
Každý znak se změní na jiný znak podle tajné kódovací tabulky.
Příklad
kódovací tabulka
a->x, b->d, c->f, d->i …
abcd -> xdfi
Asymetrická šifra
K šifrování je třeba jedno heslo, tzv. soukromý klíč (private key), k dešifrování druhé heslo, tzv. veřejný klíč (public key). Oba klíče jsou mnohamístná čísla odvozená složitými matematickými postupy. Každý účastník komunikace zná a chrání si svůj soukromý klíč, zatímco svůj veřejný klíč dá k dispozici ostatním účastníkům. Klíčový pár vygeneruje účastníkům důvěryhodná instituce (např. Česká pošta, 1. Certifikační autorita). Veřejnému klíči spolu s informacemi o jeho vlastníkovi se říká certifikát.
Digitální podpis
Odesilatel zprávy připojí ke zprávě její kopii a zašifruje ji svým tajným klíčem. Adresát zprávy tuto kopii dešifruje veřejným klíčem adresáta a porovná ji s obsahem zprávy. Pokud jsou stejné, získává adresát jistotu, že zpráva pochází skutečně od odesilatele a nebyla po cestě nikým změněna. Obsah zprávy ovšem šifrovaný není, zpráva je čitelná pro každého.
Příklad
zpráva -> zpráva se svou kopií -> zpráva s kopií zašifrovanou tajným klíčem odesilatele
-> zpráva s kopií dešifrovanou veřejným klíčem odesilatele -> zpráva
ahoj -> ahojahoj -> ahojbipk -> ahojahoj -> ahoj
Šifrování zpráv
Odesilatel zprávy zašifruje zprávu veřejným klíčem adresáta. Zprávu pak může dešifrovat pouze adresát svým tajným klíčem, pro kohokoliv jiného (včetně odesilatele) je nečitelná. Odesilatel zprávy ovšem není zaručen, stejně jako není zaručeno, že zpráva nebyla po cestě někým změněna.
Příklad
zpráva -> zpráva zašifrovaná veřejným klíčem adresáta -> zpráva dešifrovaná tajným klíčem adresáta
ahoj -> bipk -> ahoj
V reálném prostředí se používá kombinace obou těchto metod a zprávy procházející nezabezpečeným prostředím jsou tak zabezpečené a důvěryhodné.