Walidacja numerów identyfikacyjnych suma kontrolna w modelu matematycznym.



Podobne dokumenty
Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

0 + 0 = 0, = 1, = 1, = 0.

Operacje arytmetyczne

Luty 2001 Algorytmy (7) 2000/2001

Kod U2 Opracował: Andrzej Nowak

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Systemy liczbowe używane w technice komputerowej

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Detekcja i korekcja błędów w transmisji cyfrowej

1.1. Pozycyjne systemy liczbowe

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Wstęp do Informatyki

Zadanie domowe 1 23 marzec 2015 PESEL. (na podstawie Wikipedii) Autor: Michał Woźniak. Strona 1 / 6

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

1. Operacje logiczne A B A OR B

Przesyłania danych przez protokół TCP/IP

Detekcja i korekcja błędów w transmisji cyfrowej

DZIESIĘTNY SYSTEM LICZBOWY

Technologie Informacyjne

Programowanie w Baltie klasa VII

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

ZBIÓR PESEL. Jakie informacje zawiera zbiór PESEL?

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Arytmetyka liczb binarnych

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

ZADANIE 1 (7pkt./15min.)

L6.1 Systemy liczenia stosowane w informatyce

Maria Romanowska UDOWODNIJ, ŻE... PRZYKŁADOWE ZADANIA MATURALNE Z MATEMATYKI

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Arytmetyka stałopozycyjna

Scenariusz lekcji Opracowanie: mgr Bożena Marchlińska NKJO w Ciechanowie Czas trwania jednostki lekcyjnej: 90 min.

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Zapis liczb binarnych ze znakiem

Systemy zapisu liczb.

PRAWDOPODOBIEŃSTWO I KOMBINATORYKA

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Algorytmy i struktury danych. Wykład 4

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

LICZBY ZMIENNOPRZECINKOWE

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Zastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej


Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Liczby rzeczywiste. Działania w zbiorze liczb rzeczywistych. Robert Malenkowski 1

Arytmetyka komputera

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

Podstawy Informatyki

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Pracownia Komputerowa wykład V

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

Temat 7. Dekodery, enkodery

Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy

Moneta 1 Moneta 2 Kostka O, R O,R 1,2,3,4,5, Moneta 1 Moneta 2 Kostka O O ( )

Przykładowe zadania z teorii liczb

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

Polcode Code Contest PHP-10.09

WHILE (wyrażenie) instrukcja;

Dokumentacja API BizIn

W11 Kody nadmiarowe, zastosowania w transmisji danych

Sortowanie zewnętrzne

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

EGZAMIN MATURALNY Z INFORMATYKI

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

1259 (10) = 1 * * * * 100 = 1 * * * *1

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Excel - podstawa teoretyczna do ćwiczeń. 26 lutego 2013

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Zestaw zadań dotyczących liczb całkowitych

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

MAGISTRALA CAN STRUKTURA RAMKI CAN

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

WHILE (wyrażenie) instrukcja;

Magistrale na schematach

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

Sprawozdanie z zajęć laboratoryjnych: Technologie sieciowe 1

1. Liczby naturalne, podzielność, silnie, reszty z dzielenia

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Sieci komputerowe. Wykład 11: Kodowanie i szyfrowanie. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Transkrypt:

Tomasz Siroń Liceum Ogólnokształcące im. Bohaterów Porytowego Wzgórza ul. Jana Pawła II 1 23-300 Janów Lubelski tel. 15872 03 56 Opiekun prowadzący: mgr Wiesława Siczek 1. Źródło: http://www.edmond.nl/typo3temp/pics/9d47d865fe.gif Walidacja numerów identyfikacyjnych suma kontrolna w modelu matematycznym. 2. Źródło: http://web.securityinnovation.com/ 1

WSTĘP W dzisiejszych czasach mamy do czynienia z dużym przepływem informacji. Często nie zdajemy sobie nawet sprawy z ich ilości podczas przeprowadzania codziennych zajęć. Przy występowaniu takiego ogromu danych nie trudno o błąd, czy to poprzez czynnik ludzki, czy poprzez błąd systemu. Można sobie wyobrazić co by się stało, gdyby podczas wykonywania płatności kartą w sklepie, doszło do błędu jednej z cyfry w tak niefortunny sposób, iż należność zostałaby pobrana z konta innej osoby. Innym bardziej niebezpiecznym przykładem jest zakłócenie przez np. pracujący telefon komórkowy informacji przepływających przez magistralę CAN 1 w samochodzie osobowym. Mogłoby ono doprowadzić do odcięcia paliwa podczas jazdy lub detonacji poduszek powietrznych. W prawdzie ostatni przykład jest dosyć egzotyczny i mało prawdopodobny, jednak jest Rysunek 3. Przykład karty debetowej. Ostatnia liczba jest sumą kontrolną. Przedstawiony numer karty jednak nie jest poprawny (nie waliduje się algorytmem Luhna). Źródło: http://www.aliorbank.pl Rysunek 4. Sieć CAN, z podziałem na podsieci. Źródło: http://www.auobd2.com możliwy. Aby zmniejszyć jego prawdopodobieństwo należy zastosować specjalny algorytm matematyczny, który sprawdziłby czy zawarte dane są spójne z danymi wejściowymi. Jeśli wynik tego testu byłby negatywny, algorytm ten miałby (w miarę możliwości) naprawić dane wyjściowe lub jeśli uszkodzenia pakietu danych byłyby zbyt duże odrzucić je. Najprostszym sposobem jest zsumowanie (lub wymnożenie) wszystkich liczb i podzielenie ich przez ich liczbę. Dzięki temu zostanie uzyskana tak zwana suma kontrolna (ang. checksum). Służy ona do sprawdzania poprawności danych. Wszelako taki algorytm jest bardzo zawodny i ławo go oszukać. Może ono nastąpić poprzez podstawienie liczby spełniające to równanie lub poprzez 1 CAN (Controller Area Network) wewnętrzna, szeregowa magistrala komunikacyjna mająca zastosowanie w przemyśle motoryzacyjnym. Jej zadaniem jest połączenie ze sobą głównych systemów samochodu (sterowanie pracą silnika, system ABS, itp). 2

tzw. czeski błąd, czyli przestawienie kolejności znaków. Każde dodatkowe działanie matematyczne zwiększa skomplikowanie, niemniej jednak zmniejsza prawdopodobieństwo przekłamania sumy kontrolnej. Aby sprawdzić poprawność danych wystarczy, aby komputer (lub inne urządzenie teleinformatyczne) obliczył sumę kontrolną odebranego pakietu i porównał ją z sumą zawartą w tym pakiecie. Rysunek 5. Karta debetowa podczas skanowania w terminalu płatniczym. Źródło: http://www.chfi.com/ 3

Suma kontrolna jako cyfra kontrolna w weryfikacji numerów PESEL, REGON, numer dowodu osobistego, NIP, ISBN etc. PESEL Jednym z zastosowań sumy kontrolnej jest tzw. cyfra kontrolna. Znajduje ona zastosowanie w wszelkiego rodzaju numerach, które należą do systemów ewidencyjnych. Przykładem może być numer PESEL. Zawiera on w sobie datę urodzenia, numer serii z oznaczeniem płci i cyfrę kontrolną. Rysunek 6. Przykładowy numer PESEL. Numer przedstawiony na przykładzie nie jest jednak poprawny (ostatnia cyfra jest cyfrą kontrolną). Źródło: http://www.nportal.no 99010113954 990101 data urodzenia obywatela (dla osób urodzonych w XX wieku odpowiada dacie urodzenia w postaci zapisu RRMMDD), 1395 numer serii z oznaczeniem płci (ostatnia cyfra nieparzysta 5 oznacza płeć, w tym wypadku mężczyzna), cyfry 1, 3, 5, 7, 9 oznaczają płeć męską, cyfry 0, 2, 4, 6, 8 oznaczają płeć żeńską, 4 cyfra kontrolna. 4

GENEROWANIE POPRAWNEGO NUMERU PESEL Znamy już jak wygląda specyfikacja numeru PESEL, nie wiemy jednak jakim algorytmem się waliduje. Algorytm ten nie należy do skomplikowanych. Należy założyć, iż kolejne cyfry numeru są kolejno literami alfabetu. Następnie należy wykonać działanie: 1*a + 3*b + 7*c + 9*d + 1*e + 3*f + 7*g + 9*h + 1*i + 3*j Otrzymany wynik podzielić przez 10. Jeżeli reszta z dzielenia wynosi 0 to cyfra kontrolna jest równa 0. Jeśli jednak reszta jest różna od zera, należy z poprzedniego wyniku (tego, którego dzieliliśmy przez 10) wybrać ostatnią cyfrę, a następnie odjąć od 10. Wynik tego działania daje nam cyfrę kontrolną. Przykład: Wygenerujmy przykładowy numer PESEL dla osoby urodzonej 23 sierpnia 1985 roku. Osoba ta jest mężczyzną. 1. Zapisujemy datę w formacie RRMMDD czyli: 850823. 2. Do podanej liczby dopisujemy liczbę czterocyfrową serii z założeniem, że ostatnia cyfra dla płci męskiej musi być nieparzysta, przyjmijmy, że będzie to cyfra 0123 (cyfra 3 nieparzysta mężczyzna). Otrzymujemy taki numer: 8508230123. 3. Obliczmy cyfrę kontrolną według wcześniej podanych założeń: 1*8 + 3*5 + 7*0 + 9*8 + 1*2 + 3*3 + 7*0 + 9*1 + 1*2 + 3*3 = = 8 + 15 + 0 + 72 + 2 + 9 + 0 + 9 + 2 + 9 = = 126 126 / 10 = 12 i reszty 6 6 jest różne od 0 więc suma kontrolna wynosi 10 6 = 4 Otrzymujemy więc numer PESEL: 85082301234 i możemy sprawdzić, czy jest on poprawny za pomocą odpowiednich kalkulatorów on-line. 5

Rysunek 7. Sprawdzanie numeru PESEL. Zrzut ekranowy strony internetowej: http://www.kalkulatory.gofin.pl/sprawdzanie-pesel-weryfikacja-pesel,12.html Jak widać numer ten jest poprawny i pokazuje przyjęte przez nas założenia. Rysunek 8. Numer PESEL można znaleźć wszędzie. Źródło: http://www.kont.umcs.lublin.pl/zdj/lukowicz/lukowicz_pesel.jpg 6

Numer dowodu osobistego obowiązującego na terenie RP Numer dowodu osobistego różni się znacznie od numeru PESEL zawiera on w sobie nie tylko cyfry lecz także litery. Rysunek 9. Dowody osobiste obowiązujące na terenie RP. Źródło: http://www.express.olsztyn.pl/ Rysunek 10. Przykładowy awers dowodu osobistego z wyróżnionym jego numerem. Numer ten jest poprawny pod względem walidacji. Źródło: http://www.pocztowy.pl AWU105446 AWU jest to seria dowodu osobistego 105446 numer dowodu osobistego przy czym pierwsza liczba jest cyfrą kontrolną 7

GENEROWANIE POPRAWNEGO NUMERU DOWODU OSOBISTTEGO Podczas obliczania cyfry kontrolnej wartości literowe serii dowodu zamienia się na cyfry według wzoru: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Następnie cały układ liczb mnożymy przez odpowiednie wagi dla poszczególnych liczb. Waga to kolejne liczby 7 3 1 7 3 1 7 3. Przy mnożeniu pomijamy cyfrę kontrolną. Następnie otrzymane wyniki mnożenia sumujemy ze sobą. Sumę, która powstanie dzielimy z resztą przez 10. Otrzymana reszta z dzielenia jest sumą kontrolną. Przykład: Spróbujmy wygenerować przykładowy numer dowodu osobistego. Nie mamy tutaj jakichś specjalnych założeń, przyjmijmy losowy układ liter i cyfr. Załóżmy, że naszym numerem będzie: AUG _12345 2. 1. Zamieniamy serię literową na odpowiednie cyfry, czyli: A 10, U 30, G 16. 2. Zapisujemy całość w postaci ciągu liczb: 10 30 16 1 2 3 4 5. 3. Mnożymy liczby przez odpowiednią wagę 10 30 16 1 2 3 4 5 * 7 3 1 7 3 1 7 3 = 70 90 16 7 6 3 28 15 4. Sumowanie wyników mnożenia: 70 + 90 + 16 + 7 + 6 + 3 + 28 + 15 = 235 5. Dzielimy otrzymaną sumę przez 10 z resztą (reszta jest cyfrą kontrolną) 235 / 10 = 23 i reszty 5 Poprawność otrzymanego numeru dowodu AUG 512345 można sprawdzić w kalkulatorze on-line. 2 W miejscu _ będzie znajdować się cyfra kontrolna. 8

Rysunek 9. Sprawdzanie poprawności numeru dowodu. Zrzut ekranowy strony internetowej: http://wipos.p.lodz.pl/zylla/ut/js-pesel.html 9

Walidacja numeru plastikowych kart płatniczych, algorytm Luhna Współcześnie trudno jest wyobrazić sobie świat, bez obecności krat płatniczych. Ich posiadanie sprawia, że nie musimy się martwić o posiadanie przy sobie gotówki, wystarczy niewielki, 8,5 cm kawałek plastiku. Karty płatnicze wprowadziły rewolucję w dokonywaniu płatności, a także przyczyniły Rysunek 10 Widok na chip karty płatniczej oraz na pierwsze 8 cyfr jej numeru. Źródło: się do zmiany stylu życia współczesnego człowieka. Pierwsze egzemplarze kart płatniczych zaczęły pojawiać się już w pierwszej http://skiingbusiness.com połowie XX w. Początkowo karty kredytowe znacznie różniły się od obecnych, nie posiadały one żadnych normalizacji. Był to zwykle kawałek metalowej blaszki z wygrawerowanymi danymi klienta. W dzisiejszych czasach budowę karty określają odpowiednie normy (z reguły standard ISO IEC_7812). Standard mówi także o tym jak ma wyglądać numer takiej karty. Zgodnie z normą ISO długość numeru plastikowej karty to 16 cyfr. Waliduje go algorytm Luhna (nazwa algorytmu pochodzi od nazwiska niemieckiego naukowca Hansa Petera Luhna pracującego dla firmy IBM). Podobnie jak w algorytmie walidującym numer PESEL, na końcu ciągu cyfr doklejana jest cyfra kontrolna. Algorytm ten ma także inne zastosowania, np. numer IMEI 3. Rysunek 11. Awers znormalizowanej karty płatniczej. Źródło: http://www.kartyplatnicze.info 3 IMEI numer identyfikacyjny telefonów komórkowych oraz innych urządzeń pracujących w sieci GSM/UMTS (np. modemów). Jest on indywidualny dla każdego urządzenia. 10

Specyfikacja numeru karty, generowanie, przykładowego, poprawnego numery karty płatniczej. Przykładowy numer karty płatniczej Visa, który poprawnie waliduje się: 4485 2339 0394 5601 4 Identyfikator Dziedziny Gospodarki, informuje on o tym jakiej dziedziny dotyczy numer karty. 1, 2 linie lotnicze; 3 podróż i rozrywka; 4, 5 bankowość, finanse; 6 handel, bankowość; 7 przemysł naftowy; 8 telekomunikacja; 9 do ustaleń według krajowych jednostek normalizacyjnych. 4485 23 Numer Identyfikacyjny Wydawcy karty, przykładowe numery najpopularniejszych wydawców to: Amex: 34****, 37****; Discovery: 6011**, 644***, 65****; Master- Card: 51**** - 55****; Visa: 4*****. 39 0394 560 identyfikator rachunku osobistego, indywidualny dziewięciocyfrowy numer przypisywany do danego rachunku. 1 cyfra kontrolna. Do walidacji numeru karty stosuje się algorytm Luhana. W uproszczeniu polega on na podwojeniu cyfr będących na parzystych pozycjach w numerze karty. Następnie sprawdzeniu otrzymanych iloczynów czy są większe od dziewięciu, jeśli tak to od otrzymanych iloczynów odjąć cyfrę 9. Kolejno sumujemy podwojone, zmienione iloczyny wraz z cyframi będącymi na pozycjach nieparzystych. Do otrzymanej liczby dodajemy taką liczbę, aby wynik był wielokrotnością liczby 10. Dodawana liczba jest cyfrą kontrolną. Przykład: Będziemy generować przykładowy (16cyfrowy) numer karty płatniczej MasterCard poprawnie walidujący się. 1. Wybieramy Numer Identyfikacyjny Wydawcy wraz z Numerem Dziedziny Gospodarki. Dla MasterCard będzie to przykładowo 55****. Wybieramy numer 551234 (cyfry 1234 są tu przykładowe). 2. Określamy identyfikator rachunku (9cyfrowa liczba) i dopisujemy go do wcześniejszego numeru, przykładowo 551234123456789. 3. Do otrzymanego numeru musimy określić cyfrę kontrolną (x) 551234123456789x. Wykonujemy potrzebne obliczenia. 11

Podwojenie 5 5 1 2 3 4 1 2 3 4 5 6 7 8 9 x co 2 cyfry 10-2 - 6-2 - 6-10 - 14-18 -9 jeśli > 9 1-2 - 6-2 - 6-1 - 5-9 Dodanie Z pozycji parzystych, po działaniach 32 cyfr Z pozycji nieparzystych 31 Suma 63 Wynika, że najbliższa wielokrotność 10 po dodaniu x to 70. 63+7=70 7 Otrzymany numer karty to : 5512 3412 3456 7897, kalkulator on-line potwierdza, że jest on poprawny. Rysunek 12. Sprawdzanie poprawności numeru karty. Zrzut ekranowy strony internetowej: http://wipos.p.lodz.pl/zylla/ut/js-pesel.html 12

Inne rodzaje sum kontrolnych 1. Bit parzystości (ang. Parity Bit) walidacja informacji przesyłanych za pomocą magistrali cyfrowych (np. protokół RS232). Jego obecność sprawia, iż przesyłana wiadomość posiada zawsze parzystą liczbę jedynek. Jest to jeden z najłatwiejszych sposobów walidacji przesyłanych danych. Przed wysłaniem gotowego pakietu danych wykonuję się na ciągu liczb binarnych alternatywę wykluczającą ( albo albo ), jeśli liczba 1 jest nieparzysta bit parzystości przyjmuje wartość 1 w przeciwnym wypadku wartość 0 J a k w N Rysunek 13. Przykładowa ramka danych przesyłanych za pomocą protokółu RS232. Litera H oznacza stan wysoki (logiczne "1"), litera L stan niski (logiczne "0"). Źródło: http://maxembedded.files.wordpress.com Jak widać na powyższym rysunku liczba 1 przesyłanych w zakresie danych (8 bitowa liczba) jest parzysta, a więc bit parzystości przyjmuje wartość L. 2. Cykliczny kod nadmiarowy, CRC (ang. Cyclic Redundancy Check) system kontrolny stosowany przy przesyłaniu lub magazynowaniu danych binarnych. Jego zastosowanie spotyka się przy wielu magistralach, od sieci komputerowych Ethernet przez magistralę 1-wire 4, kończąc na sprawdzaniu poprawności danych zapisanych w sektorze dysku twardego. Kod CRC jest to w skrócie reszta z dzielenia ciągu danych przez 4 1-Wire protokół komunikacyjny wykorzystywany do przesyłu danych pomiędzy urządzeniami elektronicznymi. Nazwa pochodzi od wykorzystywania do przesyłu tylko jednej linii danych (ang. Wire przewód). W praktyce stosując zasilanie pasożytnicze urządzeń do przesyłu danych oraz zasilania urządzenia wystarczą zaledwie dwa przewody. 13

(n + 1) bitowy dzielnik. Istnieje wiele wersje CRC, różnią się one między sobą wielomianem za pomocą którego dzielimy ciąg danych. Przykładowo dla 3 bitowego kodu CRC, weźmy dzielnik (3 + 1) czyli 1011. Do serii danych dopisujemy 3 wyzerowane bity czyli 000. Następnie ustawiamy dzielnik pod serią danych, jeśli nad najstarszą pozycją dzielnika mamy 0 przesuwamy dzielnik o tyle miejsc w prawo, aż napotkamy 1. Kolejnym krokiem jest wykonanie alternatywy wykluczającej pomiędzy dzielnikiem, a serią danych (z uwzględnieniem wcześniej dopisanych 3 bitów). Następnie otrzymaną serię zapisujemy w nowej linii i ustawiając pod nią dzielnik analogicznie jak poprzednio i powtarzamy wcześniej opisane czynności, aż do otrzymania liczby danych równych bądź mniejszych od 3. Przykładowo: Seria danych: 00110101000111, dzielnik 1011. Seria danych wraz z dopisanymi wyzerowanymi bitami. 00110101000111000 1011 00011001000111000 CRC - Przesunięcie dzielnika oraz wykonanie alternatywy wykluczającej - j/w 1011 00001111000111000 - j/w 1011 00000100000111000 - j/w 1011 00000001100111000 - j/w 1011 00000000111111000 - j/w 1011 00000000010011000 - j/w 1011 00000000000101000 - j/w 1011 00000000000000100 100 Otrzymano kod CRC Powszechnie stosowane kody są znacznie dłuższe (np. kod stosowany w sieci Ethernet jest 32 bitowy). 14

Podsumowanie Jak widać z powyższych przykładów stosowanie sumy kontrolnej nie zawsze musi być trudne, a potrafi ułatwić pracę rożnych systemów. Przedstawione wyżej rodzaje sum kontrolnych oraz systemów walidacji danych są tylko niewielkim procentem (bądź jego ułamkiem) sum stosowanych powszechnie. Występuje wiele innych algorytmów np. MD5 bądź SHA, które są dużo bardzie skomplikowane. Są to algorytmy kryptograficzne, ich zastosowanie więc nie ma na celu walidacji danych, ale ich szyfrowanie. Istnieją także inne rozwiązania sum kontrolnych, są to np. rozwiązania autorskie stosowane w specyficznych systemach magazynowania danych lub przy magistralach mających charakter jednostkowy. 15

Bibliografia 1. http://edu.i-lo.tarnow.pl/inf/alg/002_struct/0011.php 2. http://joemonster.org/art/20248 3. http://maxembedded.files.wordpress.com 4. http://niebezpiecznik.pl/post/bezprzewodowe-hackowanie-samochodow-dzieki-chtkoszt-20-dolarow/ 5. http://niebezpiecznik.pl/post/ikea-hacked-zapraszamy-na-darmowa-kawe/ 6. http://pl.wikipedia.org/wiki/1-wire 7. http://pl.wikipedia.org/wiki/algorytm_luhna 8. http://pl.wikipedia.org/wiki/controller_area_network 9. http://pl.wikipedia.org/wiki/cykliczny_kod_nadmiarowy 10. http://pl.wikipedia.org/wiki/dow%c3%b3d_osobisty 11. http://pl.wikipedia.org/wiki/ethernet 12. http://pl.wikipedia.org/wiki/kontrola_parzysto%c5%9bci 13. http://pl.wikipedia.org/wiki/md5 14. http://pl.wikipedia.org/wiki/pesel 15. http://pl.wikipedia.org/wiki/sha-1 16. http://pl.wikipedia.org/wiki/suma_kontrolna 17. http://skiingbusiness.com 18. http://web.securityinnovation.com/ 19. http://wipos.p.lodz.pl/zylla/ut/js-pesel.html 20. http://www.aliorbank.pl 21. http://www.auobd2.com 22. http://www.chfi.com/ 23. http://www.edmond.nl/typo3temp/pics/9d47d865fe.gif 24. http://www.express.olsztyn.pl/ 25. http://www.kalkulatory.gofin.pl/sprawdzanie-pesel-weryfikacja-pesel,12.html 26. http://www.kartyplatnicze.info 27. http://www.kont.umcs.lublin.pl/zdj/lukowicz/lukowicz_pesel.jpg 28. http://www.liceum.fc.pl/templates/ecoplanet-fts/images/logo.png 29. http://www.nportal.no 30. http://www.pocztowy.pl 16