Hibadetektáló és javító kódolások Számítógépes adatbiztonság Hibadetektálás és javítás Zajos csatornák ARQ adatblokk meghibásodási valószínségének csökkentése blokk bvítése redundáns információval Hálózati megoldások kis csatorna kapacitás, nem konstans átviteli ráta FEC broadcast, rossz csatorna, adattárolás 2
Hibák Véletlen bithibák Burst hibák Bit error rate BER Block error rate BLER Burst error length BERL 3 Becslés kis valószínségekkel p, q egymástól független kis meghibásodási valószínségek Meghibásodás valószínsége: becslés: p+q pontos érték: 1-1-p1-q=p+q-pq Példa: BER: 1:107, Mennyi a valószínsége a meghibásodásnak min 1 bit egy 10000 bites csomagban? becslés: 104 *10-7 =10-3 pontos: 1-1-107 10000 =00009995 4
Csatornakapacitás Zajos csatornák adatátviteli kapacitása Shannon-Hartley tétel B sávszélesség S/N átlagos jel/zaj arány C = Blog 2 1+ S / N 5 Csatornakódolás kapacitástétele C csatornakapacitású csatornán a forrás szöveg K hosszúságú blokkjának bvítése N hosszúságúra tetszlegesen kicsivé teszi K meghibásodásának valószínségét, ha K/N<C, és K# 6
Kódolás Jelölések u := u1,u2,uk c := c1,c 2,c N c := f u Hamming távolság kód tér elemei között q d c, v : = #{ci vi } i =1 7 Kódolás folyt Dekódolás c = Dv u = f #1 c Kódtávolság dmin := min dc, c Kezelhet hibák t jel = dmin 1 t jav = Int dmin 1 2 8
Kódolás folyt Singleton korlát elhelyezhet kódszavak N hosszúságú vektorok, q elem ABC M q N#d min +1 MDS maximum distance separable kód egyenlség esetén Hamming korlát m K t jav N% $ 'q -1 i q N # i i=0 Perfekt kód egyenlség esetén 9 Paritás bit páros becslés páratlan paritás Paritás bitek Hibadetektálási képesség pl K=8, N=9 bin kódolás 1 paritás bit,ber 1:104 8 bites hibás üzenet paritás nélkül 1-1-10-4 8 =0000799 paritással nem detektált hibás üzenet fels detektálható 1 bites hibák 9*10-4 1-10 -4 8 1-1-10-4 9-9*10-4 1-10 -4 8 =0000000359 10
Két dimenziós paritás 0101001 1 001 0 Paritás bitek Adatok 1011110 1 0001110 1 000 1 1011111 0 Paritás bájt 111 0 11 CRC üzenet polinom M és generátor polinom G osztásakor keletkez maradék R mint redundancia => C=M+R maradék nélkül osztható G-vel vett üzenet V, hiba E V=C+E válasszunk olyan G-t, hogy E-vel ne 0 maradékot adjon 12
CRC folyt MSG=1000 Mx = x 7 + x 4 + x 3 + x 1 Gx = x 3 + x 2 + 1 M*x k = x 10 + x 7 + x 6 + x 4 1000000 Generátor 11111001 1000000 Üzenet 1001 1000 1011 1100 1000 101 Maradék 1000000 XOR 101 = 1000101 13 CRC folyt CRC generátor polinomok CRC CRC-8 CRC-10 CRC-12 CRC-16 CRC-CCITT CRC-32 Cx x 8 +x 2 +x 1 +1 x 10 +x 9 +x 5 +x 4 +x 1 +1 x 12 +x 11 +x 3 +x 2 +x 1 +1 x 16 +x 15 +x 2 +1 x 16 +x 12 +x 5 +1 x 32 +x 26 +x 23 +x 22 +x 16 +x 12 +x 11 +x 10 +x 8 +x 7 +x 5 +x 4 +x 2 +x+1 14
Internet checksum Gyorsan számolható 1-es komplemense 16 bites üzenetdarabok 1- es komplemens összegének Gyenge hibadetektálási tulajdonságok unsigned short tcpcksumstruct ep *pep, unsigned len { struct ip *pip = struct ip *pep->ep_data; struct tcp *ptcp = struct tcp *pip->ip_data; unsigned short*sptr; unsigned long tcksum; unsigned i; tcksum = 0; sptr = unsigned short * pip->ip_src; /* 2*IP_ALEN octets = IP_ALEN shorts */ /* they are in net order */ for i=0; i<ip_alen; ++i tcksum += *sptr++; sptr = unsigned short *ptcp; tcksum += hs2netipt_tcp + len; if len % 2 { char *ptcp[len] = 0; /* pad */ len += 1; /* for the following division */ } len >>= 1; /* convert to length in shorts */ for i=0; i<len; ++i tcksum += *sptr++; tcksum = tcksum >> 16 + tcksum 0xffff; tcksum += tcksum >> 16; return short~tcksum 0xffff; } 15 Hibajavító kódolás Forward Error Correction nagyobb redundancia nincs szükség visszacsatolásra állandó átviteli sebesség adattároló rendszerek, zajos csatornák pl rádió hálózatok Blokk kódok Konvolúciós kódok 16
Bináris lineáris kódok lineáris tér bázisai a kódszavak generátor, paritás ellenrz mátrix, szindróma c = u G G H T = 0 s T = H v T 17 Hamming kódolás 7,4 Hamming kód kódszó: D 7D6D5P4D3P2P1 Hamming távolság: 3 G := I k A T H := A I nk # 1 0 0 0 1 1 0 % 0 1 0 0 1 0 1 G = % % 0 0 1 0 0 1 1 % $ 0 0 0 1 1 1 1' # 1 1 0 1 1 0 0 % H = 1 0 1 1 0 1 0 % $ 0 1 1 1 0 0 1' szisztematikus kód 18
Hamming kódolás folyt Példa Hamming15,11 0111110x100x0xx 01111000001 Transmit it with an error: 01011000001 Compute parities: 010110000010 0101 1 0111 1000 0 01 01 10 00 1 0 1 0 0 1 0 0 1 1 Bit 11 1011 in binary is in error Flip it: 011110000010 Extract the data: 0111110 100 0 19 Véges testek Véges elemszámú halmazok Zártak egy + és * mveletre aritmetika moduló p-vel Van additív {0} és multiplikatív {1} elem GFq, q prím vagy prím hatvány p prím esetén {0,1,p-1} valós primitív elem: p-1-edik hatványnál éri el elször az egységelemet 20
Reed-Solomon kódolás Nem bináris lineáris kód Véges test feletti polinomok u = u1,u2,,uk ux = u0 + u1 x + u2 x 2 + # # # + uk $1 x K $1 c1 = u 0, c 2 = u 1, c 3 = u 2,, c N = u N #1 GFq primitív eleme $1 1 1 1 2 3 1 2 4 1 6 G = 3 6 9 1 K #1 2K #1 3K #1 %1 ' 2N #1 3N #1 K #1N #1 1 N #1 $1 2 1 1 3 H = 4 1 N #K %1 2 4 6 8 3 6 9 12 2N #K 3N #K ' N #K N #1 N #1 2N #1 3N #1 4N #1 21 Reed-Solomon kódolás folyt Törlések és hibák javítása szindrómákra vonatkozó egyenletrendszerek megoldása Alkalmazások 8-bites byte ABC használata RS 255,223 CD lemezek, rtávközlés, xdsl, RAID 6 22