Skip to content
Snippets Groups Projects
Commit d72f2687 authored by Martin Mareš's avatar Martin Mareš
Browse files

Dražba část 1

parent 14fbfdf3
Branches
No related tags found
No related merge requests found
...@@ -61,7 +61,7 @@ Proč je tak důležitý? ...@@ -61,7 +61,7 @@ Proč je tak důležitý?
klíč než algoritmus. klíč než algoritmus.
\endlist \endlist
\note{ \rem{
Ještě dodejme, že Alice a Bob nemusí být konkrétní osoby. Jsou to \em{role} v~protokolu. Ještě dodejme, že Alice a Bob nemusí být konkrétní osoby. Jsou to \em{role} v~protokolu.
Chceme-li na zprávu odpovědět, postavy si role prohodí. Chceme-li na zprávu odpovědět, postavy si role prohodí.
Pokud chceme bezpečně zálohovat data, Bob bude Alice někdy v~budoucnosti. Pokud chceme bezpečně zálohovat data, Bob bude Alice někdy v~budoucnosti.
...@@ -199,4 +199,50 @@ generovat náhodně. Teoreticky se sice může zopakovat, ale jak uvidíme v~odd ...@@ -199,4 +199,50 @@ generovat náhodně. Teoreticky se sice může zopakovat, ale jak uvidíme v~odd
malou pravděpodobností. malou pravděpodobností.
} }
\section{Alice a Bob na dražbě}
Na závěr této kapitoly zkusíme z~kryptografických primitiv poskládat jeden trochu složitější
protokol. Budeme (trochu naivně) předpokládat, že primitiva jsou dokonalá, ale i tak se objeví
nečekaně mnoho problémů. Pohodlně se usaďte, příběh začíná\dots
Alice se chce zúčastnit dražby, na níž se prodává originál plyšového tučňáka Tuxe.
Dražba se ovšem koná kdesi v~Antarktidě, tak se chce nechat zastupovat svým věrným přítelem Bobem.
Bude sledovat průběh dražby v~přímém televizním přenosu a když přijde správná chvíle, pošle Bobovi
zprávu typu \uv{přihoď $x$ tolarů}, případně \uv{skonči}. Tyto zprávy potřebuje šifrovat, protože
jinak by ji konkurence mohla předběhnout; zároveň si ale uvědomíme, že zprávy stačí utajit na velmi
krátkou dobu -- nejpozději po několika minutách Bob požadovanou akci provede a bude zveřejněna v~televizním
přenosu.
Začneme triviálním protokolem, postupně budeme odhalovat jeho slabiny a opravovat je.
\subsection{První pokus: potřebujeme padding}
Použijeme symetrickou šifru. Než Bob odjede, domluví se s~Alicí na nějakém klíči, ideálně náhodně vygenerovaném.
Pokaždé když bude chtít Alice chtít poslat zprávu, vytvoří řetězec tvaru {\tt PRIHOD\sp 12345}
nebo {\tt KONEC}, zašifruje ho a~odešle.
Co je na tomto protokolu špatně? Především z~něj \uv{prosakuje} spousta informací. Jelikož symetrické šifry
zachovávají délku zpráv, triviálně ze zašifrovaného textu poznáme, zde se jedná o~{\tt KONEC} -- to je jediná
pětiznaková zpráva. A~pokud se jedná o~{\tt PRIHOD}, z~počtu znaků zjistíme počet cifer částky, tedy její
desítkový logaritmus.
Oprava je jednoduchá: všechny zprávy doplníme mezerami na nějaký pevný počet znaků.
Tomu se říká \em{padding} neboli \em{vycpávka}. Důležité je, aby padding byl \em{reverzibilní} --
když přijmeme opadovanou zprávu, musíme být schopni padding odstranit a získat zprávu původní.
Jelikož naše zprávy jsou textové a nekončí na mezeru, stačí na jejich konec přidat mezery.
Aliciny peněžní rezervy sotva tvoří víc než $10^{13}$ tolarů,\foot{Jak jsme k~číslu přišli:
Ekonomové odhadují že peněz v~hotovosti a na snadno dostupných účtech
je cca $8\cdot 10^{12}\;{\rm USD}$. Viz \url{https://www.rankred.com/how-much-money-is-there-in-the-world/}.
} takže stačí na částku rezervovat 13 číslic a na celou zprávu 20 znaků.
\subsection{Přehrávací útoky: přidáme nonci}
\subsection{Porovnávání zpráv: nonce podruhé}
\subsection{Modifikace zpráv: podepisujeme}
\subsection{Hotový protokol}
\subsection{Překvapení na závěr}
\endchapter \endchapter
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment