Specialization IB - Question 3 (Coding theory) Flashcards
(37 cards)
Co je kodovani, druhy/typy kodovaci teorie
Total function (mapping): z S do T.
druhy:
Noisy coding theory
Noiseless coding theory
Co je kanal (channel)
Kanal je fyzicke medium
Jake typy kanalu
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)
Co je cilem kodovani?
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.
Co je hammingova vzdalenost
Pocet symbolu, ve kterych se dve slova lisi.
Minimalni vzdalenost
Nejmensi Hammingova vzdalenost v kodu C - mezi dvemi slovy kodu C
Error-correction theorem
pro detekci ‘s’ chyb h(C) ≥ s + 1 (proof: s by bylo dalsi slovo v C)
pro opravu ‘t’ chyb h(C) ≥ 2t + 1
Zapis/definice code C, idealni hodnoty
(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
Code rate of code C- (n, M, d) (rovnice, co to je)
(log_q (M))/n
pomer potrebnych pocet vstupnich symbolu k poslani kodu
Shannon noisless theorem
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
Entropie
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
Generování skutečně náhodných sekvencí - vlastnosti + jake jsou idealni, dobre, prijatelne zdroje
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)
Generování pseudonáhodných sekvencí
Deterministicky konecny automat:
- ma vnitrni stav
- stav se meni
Ze stavu se deterministicky da zjistit cela posloupnost generovanych dat
Priklad algoritmu pseudonahodnych sekvenci
- LFSR - Linear Feedback Shift Register
- RSA PRNG (slow)
- BBS PRNG (slow)
- ANSI X9.17
- Yarrow
- Fortuna
Jak funguje Linear Feedback Shift Register
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»_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)
Zlepseni Linear Feedback Shift Register
Zkombinovat vice LFSR at mame nelinearni kombinaci
Jak funguje RSA PRNG
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
Jak funguje BBS PRNG
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
Jak funguje ANSI X9.17 PRNG
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
Jak funguje YARROW PRNG
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)
Jak funguje Fortuna PRNG
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
Staticke analyza nahodnosti
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).
Kryptografické protokoly
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
Co je Nonce
Cislo puzite maximalne jednou pro komunikaci (sekvencni cislo, uuid, timestamp)