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

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Немає опису редагування
Рядок 14:
У найзагальнішому своєму вигляді [[контрольна сума]] являє собою деяке значення, побудоване за певною схемою на основі кодованого повідомлення. Перевірочна інформація при систематичному кодуванні дописується, найчастіше, на кінець повідомлення — після корисних даних. З приймального боку абонент знає алгоритм обчислення контрольної суми: відповідно, програма має можливість перевірити коректність прийнятих даних.
 
При передачі пакетів по реальному каналу, зрозуміло, можуть виникнути спотворення вихідної інформації внаслідок різних зовнішніх впливів: електричних наведень, поганих погодних умов і багатьох інших. Сутність методики в тому, що при хороших характеристиках [[Хеш-функція|хеш-функції]] <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. Якщо вихідна і обчислена суми не рівні між собою, ухвалюється рішення про недостовірність отриманих даних, і можна запитати повторну передачу пакета.
 
== Математичний опис ==
Рядок 50:
При цьому багато широко використовуваних многочленів не є найефективнішими із всіх можливих. У 1993—2004 роках група вчених займалася дослідженням породжувальних многочленів розрядності до 16, 24 та 36 біт й знайшла многочлени, які дають кращу, ніж стандартизовані многочлени, продуктивність у сенсі [[Відстань Геммінга|кодової відстані]]. Один із результатів цього дослідження вже знайшов своє застосування в протоколі [[iSCSI]].
 
Найпопулярніший та рекомендований [[IEEE]] многочлен для CRC-32 використовується в [[Ethernet]], [[FDDI]]; також цей многочлен є генератором [[Коди Гемінга|коду Геммінга]]. Використання іншого многочлену — CRC-32C — дозволяє досягти такої ж продуктивності при довжині вихідного повідомлення від 58 біт до 131 кбіт, а в деяких діапазонах довжини вхідного повідомлення може бути навіть більше — цьому в наш час він також користується популярністю. Наприклад, [https://www.itu.int/dms_pub/itu-t/opb/tut/T-TUT-HOME-2010-PDF-E.pdf стандарт ITU-T G.hn]<ref>{{Cite book|title=ITU-T|last=|first=|year=2010|publisher=|location=|pages=|language=Англійська|isbn=}}</ref> використовує CRC-32C з ціллю виявлення помилок в [[Корисне навантаження|корисному навантаженні]].
 
Нижче в таблиці приведені найбільш розповсюджені многочлени — генератори CRC. На практиці обчислення CRC може включати пре- та пост-інверсію, а також зворотний порядок обробки бітів. У власницьких реалізаціях CRC для ускладнення аналізу коду використовують ненульові початкові значення регістрів.