Циклічний надлишковий код: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Немає опису редагування
Рядок 14:
У найзагальнішому своєму вигляді [[контрольна сума]] являє собою деяке значення, побудоване за певною схемою на основі кодованого повідомлення. Перевірочна інформація при систематичному кодуванні дописується, найчастіше, на кінець повідомлення — після корисних даних. З приймального боку абонент знає алгоритм обчислення контрольної суми: відповідно, програма має можливість перевірити коректність прийнятих даних.
 
При передачі пакетів по реальному каналу, зрозуміло, можуть виникнути спотворення вихідної інформації внаслідок різних зовнішніх впливів: електричних наведень, поганих погодних умов і багатьох інших. Сутність методики в тому, що при хороших характеристиках [[Хеш-функція|http://bit.nmu.org.ua/ua/student/metod/cryptology/lecture17.php хеш-функції]] <ref>{{Cite web|url=http://bit.nmu.org.ua/ua/student/metod/cryptology/lecture17.php|title=Лекція 17 - Криптографічні ХЕШ-функції {{!}} Кафедра безпеки інформації та телекомунікацій|website=bit.nmu.org.ua|accessdate=2016-12-03}}</ref>в переважній кількості випадків помилка в повідомленні призведе до зміни обчисленого на прийомі значення CRC. Якщо вихідна і обчислена суми не рівні між собою, ухвалюється рішення про недостовірність отриманих даних, і можна запитати повторну передачу пакета.
 
== Математичний опис ==
Рядок 280:
 
== Специфікації алгоритмів CRC ==
Однією з найвідоміших є [http://embedded.ifmo.ru/embedded_old/ETC/REFERAT/crc/crc.htm методика Ross N. Williams]<ref>{{Cite web|url=http://embedded.ifmo.ru/embedded_old/ETC/REFERAT/crc/crc.htm|title=CRC-алгоритмы обнаружения ошибок.|last=|first=|date=|website=http://embedded.ifmo.ru|publisher=|language=Російська мова|accessdate=}}</ref>. У ній використовуються наступні параметри:
* Назва алгоритму (name);
 
Рядок 289:
* Стартові дані (init), тобто значення регістрів на момент початку обчислень;
 
* Прапор (RefIn), який вказує на початок і напрямок обчислень. Існує два варіанти: False - починаючи зі старшого значущого [http://arduino.ua/ru/prog/ShiftOut біта (MSB-first),]<ref>{{Cite web|url=http://arduino.ua/ru/prog/ShiftOut|title=ShiftOut Программирование Ардуино|website=arduino.ua|accessdate=2016-12-03}}</ref> або True - з молодшого [http://arduino.ua/ru/prog/ShiftOut (LSB-first);]<ref>{{Cite web|url=http://arduino.ua/ru/prog/ShiftOut|title=ShiftOut Программирование Ардуино|website=arduino.ua|accessdate=2016-12-03}}</ref>
 
* Прапор (RefOut), що визначає, інвертується чи порядок бітів регістра при вході на елемент XOR;