Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Текст диплома магистра - 12 июня 2014.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
4.87 Mб
Скачать

3.6.1 Параметры вычисление хеш-функции: полином-генератор, разрядность и стартовое слово

В качестве примера рассмотрим схему формирования контрольной суммы CRC-8. Порождающий многочлен g(x) = x8+x5+x4+1. Говоря о формировании контрольной суммы CRC, в первую очередь нужно упомянуть о полиноме-генераторе.

Другим параметром конкретного алгоритма вычисления контрольной суммы является размер слова, или суммарное количество регистров — информационных ячеек, используемых для вычисления численного значения хеш-функции. При этом обязательно учитывается то, что размер слова и степень образующего контрольную сумму полинома совпадают. На практике более всего распространены 8, 16 и 32 — битовые слова, что является следствием особенностей архитектуры современной вычислительной техники.

И последний параметр, важный при описании определенной методики — начальные состояния регистров (стартовое слово). Это последняя из трех значимых характеристик; зная их в совокупности, мы можем восстановить алгоритм вычисления CRC.

3.6.2 Популярные и стандартизованные полиномы

В то время, как циклические избыточные коды являются частью стандартов, у этого термина не существует общепринятого определения — трактовки различных авторов нередко противоречат друг другу.

Этот парадокс касается и выбора многочлена-генератора: зачастую стандартизованные полиномы не являются самыми эффективными в плане статистических свойств соответствующего им check reduntancy code.

При этом многие широко используемые полиномы не являются наиболее эффективными из всех возможных. В 1993—2004 годах группа учёных занималась исследованием порождающих многочленов разрядности до 16, 24 и 32 бит, и нашла полиномы, дающие лучшую, нежели стандартизированные многочлены, производительность в смысле кодового расстояния. Один из результатов этого исследования уже нашёл своё применение в протоколе iSCSI.

Самый популярный и рекомендуемый IEEE полином для CRC-32 используется в Ethernet, FDDI; также этот многочлен является генератором кода Хемминга. Использование другого полинома — CRC-32C — позволяет достичь такой же производительности при длине исходного сообщения от 58 бит до 131 кбит, а в некоторых диапазонах длины входного сообщения могут быть даже выше — поэтому в наши дни он тоже пользуется популярностью. К примеру, стандарт ITU-T G.hn использует CRC-32C с целью обнаружения ошибок в полезной нагрузке.

В Википедии (http://ru.wikipedia.org/wiki/Циклический_избыточный_код) перечислены наиболее распространенные многочлены — генераторы CRC.

3.7 Виды представления исходного кода

Другие системы обнаружения плагиата рассматривают исходный код "как есть". Например, так поступают детекторы плагиата, которые работают с кодом так же, как и с обычными текстами. Но они крайне неэффективны для решения нашей задачи, так как переименование функций и переменных или несущественные изменения в коде являются серьезными препятствиями для их правильной работы. Иногда используется параметризованное представление кода. Один из его вариантов таков: имена функций и переменных заменяются при первой встрече в коде на ноль, а при последующих на расстояние до предыдущей позиции. Обычно детекторы, основанные на этих двух представлениях, лучше находят плагиат, чем системы "подсчитыва­ющие отличительные черты", а также способны находить плагиат в случаях, когда скопирована только часть программы.