Specialization IB - Question 3 (Coding theory) Flashcards

1
Q

Co je kodovani, druhy/typy kodovaci teorie

A

Total function (mapping): z S do T.

druhy:
Noisy coding theory
Noiseless coding theory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Co je kanal (channel)

A

Kanal je fyzicke medium

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Jake typy kanalu

A

Diskretni
* Discrete Shannon stochastic channel: trojice (∑, Ω, Pr) - ∑=vstupni abeced, Ω=vystupni abeceda, Pr= pravdepodobnostni funkce, ze se element ze vstupni abecedy mapuje na element z vystupni abecedy
* Hamming adversarial (worst-case) noise model

kontuniualni (nepretrzity)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Co je cilem kodovani?

A

Metody upravy/transformace kodu, aby kod sedel vice ucelu. Napr. pri kompresi chceme kodovat caste znaky do kratsich posloupnosti, chceme detekovat chyby pri prenosu po siti. Zaroven chceme jednoznacnost pri dekodovani atp.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Co je hammingova vzdalenost

A

Pocet symbolu, ve kterych se dve slova lisi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Minimalni vzdalenost

A

Nejmensi Hammingova vzdalenost v kodu C - mezi dvemi slovy kodu C

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Error-correction theorem

A

pro detekci ‘s’ chyb h(C) ≥ s + 1 (proof: s by bylo dalsi slovo v C)
pro opravu ‘t’ chyb h(C) ≥ 2t + 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Zapis/definice code C, idealni hodnoty

A

(n, M, d)-code C
n = delka slov v kodu C
M = pocet slov v kodu C
d = minimalni vzdalenost kodu C

ideal = kratke n, velke M, velke d

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Code rate of code C- (n, M, d) (rovnice, co to je)

A

(log_q (M))/n

pomer potrebnych pocet vstupnich symbolu k poslani kodu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Shannon noisless theorem

A

pro prenos n hodnot informace X potrebujem pouzit: n * S(X) bitu.

napr.
bit 1 = p=1/4
bit 0 = p=3/4

pro 4-bit block -> 3.245 bitu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Entropie

A

Mira chaosu (nejistoty) - cim nizsi entropie, tim vetsi predvidatelnost (nulova entropie - vime presne, co bude vystupem)

I(x)= -log_2 { P(x) } // Mira informace ve zprave x
S(X) = - sum (𝑃 ( 𝑥_𝑖) · 𝐼(𝑥_𝑖)) // Entropie

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Generování skutečně náhodných sekvencí - vlastnosti + jake jsou idealni, dobre, prijatelne zdroje

A

TRNG (True random generators) - byvaji pomale, maji nedeterministicke chovani= jejich kvalita zalezi na zdroji nahodnosti:
* Idealni zdroj: Pouzije fakt nahodny prvek - radioaktivni rozpad, kosmicka radiace, atmosfericky sum
* Excelentni: HW-based (zabudovany cip), pridavne kart
* Dobry: Mikrofon, kamera, I/O HW, pohyb mysi
* Prijatelny: SW-based (procesy, sitova komunikace)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Generování pseudonáhodných sekvencí

A

Deterministicky konecny automat:
- ma vnitrni stav
- stav se meni

Ze stavu se deterministicky da zjistit cela posloupnost generovanych dat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Priklad algoritmu pseudonahodnych sekvenci

A
  • LFSR - Linear Feedback Shift Register
  • RSA PRNG (slow)
  • BBS PRNG (slow)
  • ANSI X9.17
  • Yarrow
  • Fortuna
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Jak funguje Linear Feedback Shift Register

A

Vybere se startovaci stav (nesmi mit same nuly)

Pri vyberu vhodne stavu mame 2^n - 1 kombinaci (pri delce stavu 128+ nemozne zkusit vsechny)

XOR 2 bitu ze dvou vybranych pozicich ve slove, nasledne shift a umisteni vysledku XORu na prvni/posledni pozici (v zavislosti na smeru shiftu)

napr. XOR bitu na poslednich dvou pozicich, shift 1&raquo_space;, novy bit umisten na prvni pozici
1. 1001 (output: 1)
2. 1100 (output: 0)
3. 0110 (output: 1)

x-1. 0010 (output: 1)
x<=>1. 1001 (pocatecni stav)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Zlepseni Linear Feedback Shift Register

A

Zkombinovat vice LFSR at mame nelinearni kombinaci

17
Q

Jak funguje RSA PRNG

A

Klasicke RSA
seed/stav = zprava (seed^e mod n nebo state^e mod n)

x_0 = random(2, n-2)
x_i = x_(i-1)^e mod n
vystup generatoru: lsb(x_i) // lsb = Least Significant Bit

18
Q

Jak funguje BBS PRNG

A

Podobne RSA. Jedinny rozdil - misto state^e -> state^2

x_0 = random(2, n-2)
x_i = x_(i-1)^2 mod n # rozdil
vystup generatoru: lsb(x_i) // lsb = Least Significant Bit

19
Q

Jak funguje ANSI X9.17 PRNG

A

Zalozen 64-bit 3DES-3 nebo 128-bit AES

K = klic
DT = Datum/cas/nahodne inicializovany counter
s = Seed

alg:
1. t = E_k (DT)
2. r = E_k (s XOR t)
3. s = E_K (r XOR t)

vysledek (output) je ‘r’ - nahodne cislo

20
Q

Jak funguje YARROW PRNG

A

Blockova sifra CTR modu (napr. DES, AES, …) + hash funkce

Ma dva pooly: Fast - slow (rychlejsi pro castejsi ressed, slow mene casty reseed)

Ma Reseed control mechanismus - odhaduje na zaklade vypocitane entropie, jestli je potreba reseed nebo ne

K = klic
s = K = Seed
reseed = zmena klice
alg:
1. C_i = C_(i-1) + 1 mod 2^n
2. output = E_k (C_i)

21
Q

Jak funguje Fortuna PRNG

A

Nasleduje Yarrow

blokove sifry AES, Twofish, Serpent
hash: SHA-256

32 poolu pro sber entropy.
P_i = i-th Pool
reseed:
* P_0 kazde kolo
* P_1 kazde druhe kolo
* P_2 kazde ctvrte kolo
* P_3 kazde osme kolo
Vysledek je, ze pokazde bude pool s dostatecnou entropii

22
Q

Staticke analyza nahodnosti

A

NIST test (15 testu)
DIEHARD

Jde o to, jestli pseudonahody generator cisel generauje sekvenci, ktera je vskutku tvarici se nahodne (napr. tedy sekvence ma +- stejne mnozstvi 0/1, avsak nemuze byt n 0 na zacatku, nasledne nasledovane n 1).

23
Q

Kryptografické protokoly

A

Algoritmy, kde musi byt dodrzena posloupnost kroku, aby protokol splnil svuj ucel
- cile muzou byt: authentication, integrity, key establishment
Protokoly muzou spolehat i na tajemstvi:
* symetricke maji sdilene klice - duvera je ve znalosti sdileneho klice
* asymetricke - duvera je zalozena na vlastnictvi privatniho klice a v duvere propojeni mezi privatnim a verejnym klicem

24
Q

Co je Nonce

A

Cislo puzite maximalne jednou pro komunikaci (sekvencni cislo, uuid, timestamp)

25
Q

Priklad protokolu pro authentication (Asym)

A

n = randome nonce

Komunikace sifrovana verejnymi klici Alice, Boba

Alice -> Bob: E_B (n)
Alice <- Bob: E_A (n+1)
Alice -> Bob: E_B (n+1)

vedi, ze komunikuji spolu Alice a Bob.

26
Q

Priklad protokolu pro Challenge-Response

A

Alice -> Bob: Challenge (send me secret)
Alice <- Bob: Response (secret)
Alice -> Bob: OK/NOK (verifikace)

27
Q

Commitment scheme - Remote coin flip

A

H = hash function
g = guess
n = nonce

Alice -> Bob: x = H(g + n)
Bob: hodi minci
Alice -> Bob: rekne vysledek sveho odhadu (g) a pripoji nonce
Bob: muze si uverit ze poskytnute hodnoty splnuji: H(g + n) == x

Bob nevi, k cemu se Alice zavala pri hodu a vsak vi, ze Alice nedokazi zmenit svuj odhad.
commitment: Alice nemuze zmenit svuj vysledek

28
Q

Protokoly/metody ustavení klíčů

A

Key Transport: Alice bezpecne posle tajemstvi bobovi (napr. Asym komunikace)
Key Aggrement: Alice and Bob each contribute data on which the key is derived (e.g. Diffie-Helman)

29
Q

Ustanoveni klice - vlastnosti (concepts of assurance)

A
  • Implicit Key Authentication: Jistota Boba, ze nikdo jiny krom alice nemohl precist klic
  • Key Confirmation: Alice ujisti Boba, ze jen ona zna klic
  • Explicit Key Authentication: Implicit Key Authentication a Key Confirmation
  • Entity Authentication: Ujisteni jedne strany o identite druhe strany.
30
Q

Co je session klic

A

Kratkodoby klic - posle se mensi mnozstvi zprav a je jedno leaknuti klice

  • Perfect Forward Secrecy - Kompromitace dlouhodobeho klice neovlivni zpravy z minulosti. Napr RSA + Diffie Hellman - ikdyz se leakne RSA klic, nevi klic k Diffie Hellman
  • Perfect Backward Secrecy - Kompromitace session klice neovlivni zpravy v budoucnosti
31
Q

Shamir no-key protocol

A

Protokol bez sdileneho tajemstvi

A -> B: E_A (x)
A <- B: E_B( E_A (x) )
A -> B: E_B (x)

32
Q

Encrypted Key Exchange (EKE) - sifrovana vymena public klice

A
  1. A a B sdili heslo H
  2. A generuje par klicu s VA (verejny klic A)
  3. A -> B E_H ( VA ) // E = symmetric cipher, vyuzije H
  4. B ted vi VA (desifruje si pres H)
  5. B generuje klic K
  6. A <- B: E_H( E_VA( K ) )
  7. A -> B: E_K ( x )
  8. A <- B: E_K ( x, y )
  9. A -> B: E_K ( y )

x, y = nahodne cisla, timestamp. Ma overit, ze K sdili spravne strany a nahodna cisla x, y by meli zamezit replay utoku

33
Q

protokoly s nulovým rozšířením znalostí (Zero-Knowledge protocols) - co to je, vlastnosti

A

Strana dokaze prokazat znalost urcite hodnoty, aniz by tu hodnotu zdelila

Soundess - zanedbatelne pravdepodobnost, ze utocnik zvladne podvadet
Completness - honest parties always achieve desirable outcome
Zero-knowledge - nevi nic krom znalosti, kterou chceme dokazat

34
Q

Simple example with Doors (Zero-Knowledge protocols)

A

Mame kruhovou chodbu s dvermi uprostred.

Alice ma klic a chce prokazat Bobovi, ze ho ma

Alice projde chodbou dokola (prokaze tak, ze zvladla projit dvermi). Neukazala tedy, ze ma klic a ani otevirani dveri. Jelikoz ale nemohla jit jinam, Bob musi verit.

35
Q

Feige-Fiat-Shamir identification scheme

A

Trusted authority (T):
* choose p,q; n=p*q
* choose s, s^2 ≡ v mod n; gcdn(s, n) = 1

Alg:
1. Alice vybere nahodne r < n
2. Alice -> Bob: posle x (x = r^2 mod n)
3. Alice <- Bob: random bit b (b ∈ {0, 1})
4. Alice -> Bob: posle y (y=r * s^b mod n)
5. Bob identifikuje Alice pokud y^2 = x * v^b

Protokol se opakuje do te doby, dokud Bob neni presvedceny. Pri opakovani t-times, Alice ma sanci 2^-t oklamat Boba.

36
Q

Kvantová kryptografie

A

Zalozena na fyzice (ne na predpokladu, ze je neco obtizne vypocitat)

moznost vyuziti pro one-time pad, key generation/distribution, factorization

37
Q

BB-84 shared key establishment

A

Natoceni fotonu (+ prevod na bit):
base 0° = 1, 90° = 0
base 45° = 1, 135° = 0

Pokud merime spravnou bazi, jsme schopni zjistit rotaci -> vime na 100%, jestli bit je 0 nebo 1. Kdyz merime spatnou bazi, foton polarizujem a sance se nam rozdeli na 50/50 jestli bude vybran spravny bit (0 nebo 1)

  1. Alice vygeneruje radu bitu a zakoduje do q-ubitu
  2. Alice posle bobovi fotony - nahodne polarizovane (vybran nahodny smer)
  3. Bob vybira nahodny baze
  4. Bob a Alice se spoji (klidne po nezabezpecenym kanalu - je jedno, kdo je uslysi) a hledaji schody v bazi (pro ktere bity zvolily stejnou bazi)
  5. Klic je sestaven z namerenych bitu, kde meli Bob a Alice vybranou stejnou bazi

Pokud Eva bude naslouchat poslane qubity a zvoli spatnou bazi (coz je pravdepodobne), tak je 50% sance, ze posle Bobovi spatny qubit