Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Ú
Úvod do kryptografie
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Martin Mareš
Úvod do kryptografie
Commits
3701a306
Commit
3701a306
authored
1 year ago
by
Martin Mareš
Browse files
Options
Downloads
Plain Diff
Merge branch 'master' into 'master'
Překlepy See merge request
!1
parents
fb53a617
df2f90f8
No related branches found
No related tags found
1 merge request
!1
Překlepy
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
01-intro/intro.tex
+9
-9
9 additions, 9 deletions
01-intro/intro.tex
with
9 additions
and
9 deletions
01-intro/intro.tex
+
9
−
9
View file @
3701a306
...
@@ -163,7 +163,7 @@ Zatímco symetrické šifry obvykle mají lineární časovou složitost, všech
...
@@ -163,7 +163,7 @@ Zatímco symetrické šifry obvykle mají lineární časovou složitost, všech
\:
Alice zašifruje klíč~
$
N
$
asymetricky:
$
z
=
E
_
A
(
K
_
E, y
)
$
.
\:
Alice zašifruje klíč~
$
N
$
asymetricky:
$
z
=
E
_
A
(
K
_
E, y
)
$
.
\:
Alice pošle Bobovi
$
y
$
a~
$
k
$
.
\:
Alice pošle Bobovi
$
y
$
a~
$
k
$
.
\:
Bob použije asymetrickou šifru, aby získal klíč
$
N
=
D
_
A
(
K
_
D, z
)
$
.
\:
Bob použije asymetrickou šifru, aby získal klíč
$
N
=
D
_
A
(
K
_
D, z
)
$
.
\:
Bob použije symetrickou šifr
y
, aby získal zprávu
$
x
=
D
_
S
(
N, y
)
$
.
\:
Bob použije symetrickou šifr
u
, aby získal zprávu
$
x
=
D
_
S
(
N, y
)
$
.
\endlist
\endlist
}
}
...
@@ -218,7 +218,7 @@ Začneme triviálním protokolem, postupně budeme odhalovat jeho slabiny a opra
...
@@ -218,7 +218,7 @@ Začneme triviálním protokolem, postupně budeme odhalovat jeho slabiny a opra
\subsection
{
První pokus: potřebujeme padding
}
\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.
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
}
Pokaždé když bude chtít Alice poslat zprávu, vytvoří řetězec tvaru
{
\tt
PRIHOD
\sp
12345
}
nebo
{
\tt
KONEC
}
, zašifruje ho a~odešle.
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
Co je na tomto protokolu špatně? Především z~něj
\uv
{
prosakuje
}
spousta informací. Jelikož symetrické šifry
...
@@ -231,7 +231,7 @@ Tomu se říká \em{padding} neboli \em{vycpávka}. Důležité je, aby padding
...
@@ -231,7 +231,7 @@ Tomu se říká \em{padding} neboli \em{vycpávka}. Důležité je, aby padding
když přijmeme opadovanou zprávu, musíme být schopni padding odstranit a získat zprávu původní.
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.
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:
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
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/
}
.
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ů.
}
takže stačí na částku rezervovat 13 číslic a na celou zprávu 20 znaků.
...
@@ -243,7 +243,7 @@ vidí v~televizním přenosu, jak Bob zareagoval na kterou zašifrovanou zprávu
...
@@ -243,7 +243,7 @@ vidí v~televizním přenosu, jak Bob zareagoval na kterou zašifrovanou zprávu
slovník známých zpráv s~jejich významy.
slovník známých zpráv s~jejich významy.
Pomoc je snadná: Před šifrováním ke zprávě přidáme nějakou nonci, třeba náhodný 64-bitový
Pomoc je snadná: Před šifrováním ke zprávě přidáme nějakou nonci, třeba náhodný 64-bitový
řetězec. Pak už bude velmi nepravděpodobn
ě
, že by útočník potkal tutéž zašifrovanou zprávu
řetězec. Pak už bude velmi nepravděpodobn
é
, že by útočník potkal tutéž zašifrovanou zprávu
vícekrát.
vícekrát.
\subsection
{
Přehrávací útoky: hodí se sériová čísla
}
\subsection
{
Přehrávací útoky: hodí se sériová čísla
}
...
@@ -277,10 +277,10 @@ jeho nejvyšší bit), takže Bob napříště zahodí všechny autentické zpr
...
@@ -277,10 +277,10 @@ jeho nejvyšší bit), takže Bob napříště zahodí všechny autentické zpr
Také můžeme upravovat částky. Pokud uhodneme, kolikamístnou částku Alice poslala (to se dá
Také můžeme upravovat částky. Pokud uhodneme, kolikamístnou částku Alice poslala (to se dá
podle průběhu dražby tipovat), můžeme následující mezeru změnit na nulu a tím částku vynásobit
podle průběhu dražby tipovat), můžeme následující mezeru změnit na nulu a tím částku vynásobit
deseti. Navíc první číslice bude často jednička
\foot
{
Pravděpodobně se i zde uplatňuje tzv.
deseti. Navíc první číslice bude často jednička
\foot
{
Pravděpodobně se i zde uplatňuje tzv.
\linkurl
{
https://cs.wikipedia.org/wiki/Benford
\%
C5
\%
AFv
_
z
\%
C3
\%
A1kon
}{
Benfordův zákon
}
.
}
\linkurl
{
https://cs.wikipedia.org/wiki/Benford
\%
C5
\%
AFv
_
z
\%
C3
\%
A1kon
}{
Benfordův zákon
}
.
}
,
a pokud si to útočník správně tipne, může ji změnit na jakoukoliv jinou číslici.
a pokud si to útočník správně tipne, může ji změnit na jakoukoliv jinou číslici.
Konečně můžeme zkusit změnit
{
\tt
PRIHOD
}
na
{
\tt
KONEC
\sp
}
a tím donutit Boba odejít z~dražby.
Konečně můžeme zkusit změnit
{
\tt
PRIHOD
}
na
{
\tt
KONEC
\sp
}
,
a tím donutit Boba odejít z~dražby.
Na to bychom ale potřebovali, aby Bob ignoroval přebytečné číslice za příkazem
{
\tt
KONEC
}
.
Na to bychom ale potřebovali, aby Bob ignoroval přebytečné číslice za příkazem
{
\tt
KONEC
}
.
Nebo pokud bychom uhodli, že Alice chce skončit, mohli bychom naopak z~konce udělat jakékoliv
Nebo pokud bychom uhodli, že Alice chce skončit, mohli bychom naopak z~konce udělat jakékoliv
přihození.
přihození.
...
@@ -307,16 +307,16 @@ Alice si bude udržovat počítadlo zpráv a podle něj nastavovat sekvenční
...
@@ -307,16 +307,16 @@ Alice si bude udržovat počítadlo zpráv a podle něj nastavovat sekvenční
Nonce bude generovat náhodně.
Nonce bude generovat náhodně.
Bob si bude pamatovat poslední přijaté sekvenční číslo.
Bob si bude pamatovat poslední přijaté sekvenční číslo.
Když mu přijde zpráva, nejdříve ověří podpis a pokud nesouhlasí, zprávu zahodí.
Když mu přijde zpráva, nejdříve ověří podpis
,
a pokud nesouhlasí, zprávu zahodí.
Jinak zprávu dešifruje, porovná její sekvenční číslo s~posledním přijatým, a~pokud
Jinak zprávu dešifruje, porovná její sekvenční číslo s~posledním přijatým, a~pokud
nové není větší, zprávu zahodí.
nové není větší, zprávu zahodí.
Pokud zpráva prošla i~tímto textem, Bob ji považuje za autentickou a provede příkaz.
Pokud zpráva prošla i~tímto textem, Bob ji považuje za autentickou a provede příkaz.
\subsection
{
Překvapení na závěr
}
\subsection
{
Překvapení na závěr
}
Alice je spokojená -- vydražila svého milovaného Tuxe všem nepřátelům
navzdory
.
Alice je spokojená -- vydražila svého milovaného Tuxe
navzdory
všem nepřátelům.
Tak se při příští dražbě pokusí osvědčený protokol použít znovu. Ale ouha, nepřátelům
Tak se při příští dražbě pokusí osvědčený protokol použít znovu. Ale ouha, nepřátelům
se najednou daří postrk
á
vat příkazy, které Alice neposílala.
se najednou daří po
d
strk
o
vat příkazy, které Alice neposílala.
Co je špatně? Inu, sériová čísla sice brání přehrávání zpráv v~rámci jedné instance protokolu,
Co je špatně? Inu, sériová čísla sice brání přehrávání zpráv v~rámci jedné instance protokolu,
ale už ne kopírování zpráv z~jedné instance protokolu do druhé.
ale už ne kopírování zpráv z~jedné instance protokolu do druhé.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment