Zabezpečení datových přenosů pomocí CRC



Podobné dokumenty
Cyklické redundantní součty a generátory

Modulace 2. Obrázek 1: Model klíčování amplitudovým posuvem v programu MATLAB

Informace, kódování a redundance

Kódy pro detekci a opravu chyb. INP 2008 FIT VUT v Brně

Lekce 6: Techniky přenosu dat

3. Linková vrstva. Linková (spojová) vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl

ALGEBRA. Téma 5: Vektorové prostory

Fides Card Reader

Amplitudová a frekvenční modulace

Zobrazení dat Cíl kapitoly:

TECHNICKÁ UNIVERZITA V LIBERCI EKONOMICKÁ FAKULTA. VZOR PŘIJÍMACÍ ZKOUŠKY DO NAVAZUJÍCÍHO STUDIA Obor: Manažerská informatika

Počítačové sítě. Miloš Hrdý. 21. října 2007

Informace, kódování a redundance

Kódování signálu. Problémy při návrhu linkové úrovně. Úvod do počítačových sítí. Linková úroveň

Informatika Kódování. Obsah. Kód. Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/

DIGITÁLNÍ KOMUNIKACE S OPTICKÝMI VLÁKNY. Digitální signál bude rekonstruován přijímačem a přiváděn do audio zesilovače.

ACASYS-KS Komunikace v systému ACASYS

MĚŘENÍ NAPĚTÍ A PROUDŮ VE STEJNOSMĚRNÝCH OBVODECH.

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

Telekomunikační sítě Protokolové modely

[1] samoopravné kódy: terminologie, princip

Universal Serial Bus. Téma 12: USB. Komunikační principy Enumerace Standardní třídy zařízení

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

Vysoká škola chemicko technologická v Praze Ústav fyziky a měřicí techniky. Detekce hořlavých a toxických plynů OLDHAM MX32

Představíme si funkci fyzické vrstvy. Standardy fyzické vrstvy, způsoby přenosu, způsoby kódování a veličiny popisující přenos dat.

PŘEDNÁŠKA PS 6 Přenos dat v počítačových sítích

MRAR-L. Družicové navigační systémy. Č. úlohy 4 ZADÁNÍ ROZBOR

1) Sestavte v Matlabu funkci pro stanovení výšky geoidu WGS84. 2) Sestavte v Matlabu funkci pro generování C/A kódu GPS družic.

Měření vysílání DVB-T simulovaným přenosovým kanálem

VLASTOSTI DRUŽICOVÉHO NAVIGAČNÍHO SYSTÉMU GPS-NAVSTAR

Stud. skupina: 3E/96 Číslo úlohy: - FSI, ÚMTMB - ÚSTAV MECHANIKY TĚLES, MECHATRONIKY A BIOMECHANIKY REAL TIME CONTROL

Kódováni dat. Kódy používané pro strojové operace

1. ÚVODNÍ USTANOVENÍ 2. NAHRÁNÍ VLOŽENÉHO PROGRAMU

Projekt: Autodiagnostika pro žáky SŠ - COPT Kroměříž, Registrační číslo: CZ.1.07/1.1.38/ CAN BUS. Učební text

Pro bodový odhad při základním krigování by soustava rovnic v maticovém tvaru vypadala následovně:

2N NetSpeaker. IP Audio Systém. Manuál 1.4

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra řídicí techniky. Diplomová práce

Genetické algoritmy. Vysoká škola ekonomická Praha. Tato prezentace je k dispozici na:

Komprese zvuku. Ing. Jan Přichystal, Ph.D. 14. března PEF MZLU v Brně

Projekt IEEE 802, normy ISO 8802

Komunikace v síti M-Bus

Laboratorní cvičení z předmětu Elektrická měření 2. ročník KMT

CQ485. Opakovač a převodník linek RS485 a RS422. S aktivní i pasivní obnovou dat

Obr ATM mele pakety různých protokolů do jedné standardní ATM buňky o velkosti 53 bajtů

ECL MODBUS OPC. Návod k použití

Základní normalizované datové přenosy

Připojení systému A3600 k aplikaci DDS2000

Daniel Honc, František Dušek Katedra řízení procesů a výpočetní techniky, FCHT, Univerzita Pardubice

STRUKTURA POČÍTAČŮ JIŘÍ HRONEK, JIŘÍ MAZURA KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO

FU-48 / 72 / 86 / 96 série

DÁLKOVÁ SPRÁVA ŘÍDICÍCH SYSTÉMŮ V PROSTŘEDÍ CONTROL WEB 5

LAN/RS-Port (VERZE 2)

MIDAM Verze 1.1. Hlavní okno :

Proudové šifry a posuvné registry s lineární zpětnou vazbou

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Telemetrický komunikační protokol JETI

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

ZAČÍNÁME. špičkové technologie. SolidCAM + SolidWorks ÚSPORA ČASU. nová revoluční technologie frézování. Plně integrované v ýrobní ře šení

Popis programu EnicomD

Architektura počítače

Skupina IEEE 802. Institute of Electrical and Electronics Engineers skupina 802: standardy pro lokální sítě. podvrstvy

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média

USB. Universal Serial Bus. revize 2.0 z 27.dubna 200

Gramatická evoluce a softwarový projekt AGE

DOSTUPNÉ METODY MĚŘENÍ JÍZDNÍCH DYNAMICKÝCH PARAMETRŮ VOZIDEL

AC Napětí/Proud Data Logger Uživatelský Manuál

4EK211 Základy ekonometrie

2. Číslicová filtrace

4. Co je to modulace, základní typy modulací, co je to vícestavová fázová modulace, použití. Znázorněte modulaci, která využívá 4 amplitud a 4 fází.

Logické řízení výšky hladiny v nádržích

Základy číslicové techniky z, zk

Kompaktní procesní stanice

FA200 a FA211 série. Uživatelská příručka. obchod@zutemer.cz servis@zutemer.cz 1

Principy operačních systémů. Lekce 7: Souborový systém

[1] samoopravné kódy: terminologie, princip

MAPOVÉ OKNO GSWEB. Nápověda. Pohyb v mapovém okně Výběr v mapovém okně. Panel Ovládání Panel Vrstvy. Tisk Přehledová mapa Redlining Přihlásit jako

Datalogger Teploty a Vlhkosti

Matematika I A ukázkový test 1 pro 2014/2015

Reference 10. Předpokládejme stavový popis spojitého, respektive diskrétního systému

Měření vlastností optických vláken a WDM přenos

Samoopravné kódy, k čemu to je

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

Zpracování informací

Uživatelská příručka. Axesstel TX210LF

Zpracování informací

w-lantv 50n DVB-T Stručný průvodce instalací Tento průvodce Vás provede nastavením bezdrátové TV krok za krokem. Obsah balení

Základy topologie a komunikace sítí LAN

Matematika IV 10. týden Kódování

Principy činnosti sběrnic

11. Odporový snímač teploty, měřicí systém a bezkontaktní teploměr

VÝVOJ NOVÉHO REGULAČNÍHO ALGORITMU KOTLE VERNER S PODPOROU PROGRAMU MATLAB

RNDr. Božena Rytířová. Základy měření (laboratorní práce)

PROGRAM AZA Control návod k použití

Úloha A - Měření vlastností digitální modulace

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

XD Routing a vstupní I/O systém. Digitální broadcast technologie

MINISTERSTVO ŠKOLSTVÍ, MLÁDEŽE A TĚLOVÝCHOVY. Učební osnova předmětu MATEMATIKA. pro studijní obory SOŠ a SOU (13 15 hodin týdně celkem)

KOMBINATORIKA, PRAVDĚPODOBNOST, STATISTIKA. Charakteristiky variability. Mgr. Jakub Němec. VY_32_INOVACE_M4r0120

Transkript:

Zabezpečení datových přenosů pomocí CRC Cílem úlohy je seznámit se s funkčními principy využití CRC (Cyclic Redundancy Check), tedy s jeho: - matematickým základem - vlastnostmi a detekčními schopnostmi - praktickou implementací CRC je algoritmus výpočtu redundantních dat z dat užitečných (tedy těch, jejichž přenos chceme zabezpečit). CRC kód je odesílán spolu s daty a po jejich přijetí znovu nezávisle vypočítán. Pokud se liší vypočtený CRC kód od přijatého, je jisté, že při přenosu došlo k chybě. Pokud jsou přijatý a vypočtený CRC kód shodné, považujeme data za správně přijatá. Existuje však nízká (ale nenulová) pravděpodobnost, že přijatá data jsou chybná. Přenášenou datovou posloupnost lze interpretovat například jako polynom s binárními koeficienty. Posloupnost 11000101 lze pak reprezentovat binárním polynomem x 7 x 6 x 2 1. CRC se počítá jako zbytek po dělení datové posloupnosti tzv. generujícím polynomem. V průběhu výpočtu se na koeficienty uplatňuje operace sčítání modulo 2 (tzn. 1 1 = 0). Určení CRC pouze generujícím polynomem je nejednoznačné, různé algoritmy ho implementují různě z historických nebo technických důvodů může docházet prohození bajtů, změně pořadí bitů v bajtu, nebo přidání různých bitových posloupností před nebo za vstupní data: - někdy se před výpočtem před vstupní data přidává jednička. - někdy se před výpočtem za vstupní data přidává počet nul odpovídající stupni generujícího polynomu. CRC vypočtený z posloupnosti data + odeslaný CRC (bez chyb při přenosu) je potom vždy rovný nule. Číslo za písmeny CRC znamená obvykle stupeň generujícího polynomu, například CRC5 znamená, že generující polynom má nejvyšší mocninu x 5 a tedy délku odpovídající 6 bitům, zbytek po dělení (tedy vlastní CRC) má pak stupeň maximálně o jedničku nižší v našem případě tedy x 4 a délku odpovídající 5 bitům. 1. V rámci domácí přípravy se seznamte s postupem výpočtu CRC kódu (viz závěrečná strana tohoto materiálu). 2. Spusťte program Matlab a otevřete simulační schéma dle obr. 1. (plocha/crc/crc1.mdl) navrhněte datový rámec s délkou 8 12 bitů a uložte jej do bloku Frame, zvolte jednoduchý zabezpečovací polynom (např. CRC-3, CRC-4 viz příloha) a uložte koeficienty shodně do bloků CRC Generator a CRC Syndrome Detector, v pracovním prostředí Matlabu definujte proměnné frame_length a CRC_degree a uložte do nich hodnoty odpovídající délce dat a stupni generujícího polynomu, pro zvolený datový rámec a generující polynom vypočtěte odpovídající CRC, chyby přenosového kanálu generuje blok Error vector. Jako první zvolte vektor bez chyb tj. 000 0, poté s jednou chybou. Délku chybového vektoru určuje součet délek přenosového rámce a stupeň generujícího polynomu (Pozor - nezaměňujte stupeň polynomu a jeho délku), na zobrazovacích blocích se ujistěte o správné činnosti simulačního schématu.

3. Simulačně ověřte následující hypotézy (pro všechny relevantní kombinace chyb tam, kde je to možné): je-li chybový vektor posunem generujícího polynomu (násobení obecnou mocninou x), chyba není detekována obecněji je-li chybový vektor beze zbytku dělitelný generujícím polynomem, chyba není detekována každá jednonásobná chyba je detekována, pokud má generující polynom koeficient 1 u x 0 a zároveň má alespoň jeden další člen pokud je generující polynom beze zbytku dělitelný polynomem (x 1), pak detekuje jakýkoliv lichý počet chyb pokud (x i 1) není beze zbytku dělitelné generujícím polynomem pro všechna i 1, n-1, kde: n je délka kódového slova, pak jsou detekovány všechny dvojnásobné chyby pokud je chybový vektor typu x j (x t. 1), kde t je menší než stupeň generujícího polynomu (blok chyb s délkou menší nebo rovnou počtu bitů CRC), pak jsou všechny takovéto chyby detekovány 4. Výše uvedené hypotézy se v rámci zpracování úlohy pokuste obecně dokázat. Pokuste se dokázat i další platná tvrzení: pokud je chybový vektor blokovou chybou s délkou rovnou stupni generujícího polynomu (vektor typu x j (x t. 1), kde t je rovno stupni generujícího polynomu), pak pravděpodobnost, že chyba nebude detekována, je 2 -(n-1) pokud je chybový vektor blokovou chybou s délkou vyšší, než je stupeň generujícího polynomu, pak pravděpodobnost, že chyba nebude detekována, je 2 -n 5. V Simulinku sestavte přenosový řetězec podle obr. 2. Bernoulli Binary Generator generuje náhodnou posloupnost dat. Binary Symmetric Channel generuje chyby bitů s nastavenou pravděpodobností. Ve vámi zvolené konfiguraci přenosové cesty a pravděpodobnosti chyby bitu (zkuste např. 0,1, 1 a 1%) určete četnost jevu, kdy není detekován příjem chybného rámce (přijat pozměněný rámec se správným CRC). 6. V rámci zpracování úlohy se pokuste odhadnout pravděpodobnost tohoto jevu pro stejný komunikační kanál (s využitím výše uvedených tvrzení). Výsledek simulace a Váš odhad porovnejte.

Výpočet CRC Data: 10011101 reprezentace x 7 x 4 x 3 x 2 1 Generující polynom: x 3 x 1 (CRC3) Nejprve posuneme data o stupeň generujícího polynomu (vynásobíme x 3 : x 7 x 10 atd.), Poté vydělíme datový polynom generujícím polynomem. Zbytek po tomto dělení je hledané CRC. x 10 x 7 x 6 x 5 x 3 : x 3 x 1 = x 7 x 5 1 x 10 x 8 x 7 x 8 x 6 x 5 x 3 x 8 x 6 x 5 x 3 x 3 x 1 x 1 Délka CRC je rovna stupni generujícího polynomu. V tomto případě je zbytek po dělení 0*x 2 1*x 1, výsledné CRC je tedy 011. Odeslaná posloupnost bude 10011101011, tedy x 10 x 7 x 6 x 5 x 3 x 1 Ověření správnosti příjmu probíhá obdobně: x 10 x 7 x 6 x 5 x 3 x 1 : x 3 x 1 = x 7 x 5 1 x 10 x 8 x 7 x 8 x 6 x 5 x 3 x 1 x 8 x 6 x 5 x 3 x 1 x 3 x 1 0 Výsledný zbytek po dělení je 0, chyba tedy nebyla detekována.

Název CRC-1 Polynom CRC-3 x^3 + x + 1 x + 1 (most hardware; also known as parity bit) CRC-4-ITU x^4 + x + 1 (ITU-T G.704, p. 12) CRC-5-EPC x^5 + x^3 + 1 (Gen 2 RFID[15]) CRC-5-ITU x^5 + x^4 + x^2 + 1 (ITU-T G.704, p. 9) CRC-5-USB x^5 + x^2 + 1 (USB token packets) CRC-6-ITU x^6 + x + 1 (ITU-T G.704, p. 3) CRC-7 x^7 + x^3 + 1 (telecom systems, ITU-T G.707, ITU-T G.832, MMC, SD) CRC-8-CCITT x^8 + x^2 + x + 1 (ATM HEC), ISDN Header Error Control and Cell Delineation ITU-T I.432.1 (02/99) CRC-8-Dallas/Max^im x^8 + x^5 + x^4 + 1 (1-Wire bus) CRC-8 x^8 + x^7 + x^6 + x^4 + x^2 + 1 CRC-8-SAE J1850 x^8 + x^4 + x^3 + x^2 + 1 CRC-8-WCDMA x^8 + x^7 + x^4 + x^3 + x + 1[16] CRC-10 CRC-11 CRC-12 x^10 + x^9 + x^5 + x^4 + x + 1 (ATM; ITU-T I.610) x^11 + x^9 + x^8 + x^7 + x^2 + 1 (FlexRay[17]) x^12 + x^11 + x^3 + x^2 + x + 1 (telecom systems[18][19]) CRC-15-CAN x^15 + x^14 + x^10 + x^8 + x^7 + x^4 + x^3 + 1 CRC-16-IBM CRC-16-CCITT CRC-16-T10-DIF CRC-16-DNP CRC-16-DECT CRC-24 CRC-24-Radix^-64 CRC-30 CRC-32-IEEE 802.3 CRC-32C (Castagnoli) x^16 + x^15 + x^2 + 1 (Bisync, Modbus, USB, ANSI X3.28, many others; also known as CRC-16 and CRC-16-ANSI) x^16 + x^12 + x^5 + 1 (X.25, HDLC, XMODEM, Bluetooth, SD, many others; known as CRC-CCITT) x^16 + x^15 + x^11 + x^9 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1 (SCSI DIF) x^16 + x^13 + x^12 + x^11 + x^10 + x^8 + x^6 + x^5 + x^2 + 1 (DNP, IEC 870, M-Bus) x^16 + x^10 + x^8 + x^7 + x^3 + 1 (cordless telephones)[21] x^24 + x^22 + x^20 + x^19 + x^18 + x^16 + x^14 + x^13 + x^11 + x^10 + x^8 + x^7 + x^6 + x^3 + x + 1 (FlexRay[17]) x^24 + x^23 + x^18 + x^17 + x^14 + x^11 + x^10 + x^7 + x^6 + x^5 + x^4 + x^3 + x + 1 (OpenPGP) x^30 + x^29 + x^21 + x^20 + x^15 + x^13 + x^12 + x^11 + x^8 + x^7 + x^6 + x^2 + x + 1 (CDMA) 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 (V.42, Ethernet, MPEG-2, PNG[22], POSIX cksum) x^32 + x^28 + x^27 + x^26 + x^25 + x^23 + x^22 + x^20 + x^19 + x^18 + x^14 + x^13 + x^11 + x^10 + x^9 + x^8 + x^6 + 1 (iscsi & SCTP, G.hn payload, SSE4.2) CRC-32K (Koopman) x^32 + x^30 + x^29 + x^28 + x^26 + x^20 + x^19 + x^17 + x^16 + x^15 + x^11 + x^10 + x^7 + x^6 + x^4 + x^2 + x + 1 CRC-32Q x^32 + x^31 + x^24 + x^22 + x^16 + x^14 + x^8 + x^7 + x^5 + x^3 + x + 1 (aviation; AIXM[23]) CRC-64-ISO x^64 + x^4 + x^3 + x + 1 (HDLC ISO 3309, Swiss-Prot/TrEMBL; considered weak for hashing[24]) CRC-64-ECMA-182 x^64 + x^62 + x^57 + x^55 + x^54 + x^53 + x^52 + x^47 + x^46 + x^45 + x^40 + x^39 + x^38 + x^37 + x^35 + x^33 + x^32 + x^31 + x^29 + x^27 + x^24 + x^23 + x^22 + x^21 + x^19 + x^17 + x^13 + x^12 + x^10 + x^9 + x^7 + x^4 + x + 1 (as described in ECMA-182 p. 51)

Obr. 1 Simulace zabezpečení pomocí CRC Obr. 2 Simulace generování náhodných chyb v přenosovém řetězci při zabezpečení pomocí CRC

Obr. 3 Nastavení bloků ve schématu z Obr. 2 Význam proměnných a doporučené hodnoty: Bernoulli Binary Generator: - Probability of zero pravděpodobnost nuly v generovaných datech, nastavit 0.5, - Initial seed počáteční stav, nastavit např. 0 - Sample time délka trvaní jednoho vzorku počet vzorků za sekundu, v kombinaci s délkou simulace nastavovat tak aby se přeneslo dostatečné množství rámců (aby se v přenesených datech vyskytly nedetekované chyby) - Samples per frame počet bitů v jednom datovém rámci Binary Symmetric Chanel: - Error probability pravděpodobnost chyby bitu v přenosu CRC Generator: - Generator polynomial generující polynom, nutno nastavit stejně i v bloku CRC Detector - Checksums per frame nastavit 1