ГОСТ Р МЭК 61784-3-1—2016
Приложение А
(справочное)
Дополнительная информация для профилей коммуникаций, удовлетворяющих требованиям
функциональной безопасности, CPF 1
А.1 Вычисление хэш функции
II
II Использование:
II crc32eth [infile]
II вычисляет Ethemet-CRC32 на основе содержания файла [infite]
И
II Компилировать:
II (этот источник должен компилироваться на любом компиляторе C++)
II g++ -Wall -о crc32eth crc32eth.cc «GNU-C++ под Linux
II g++ -Wall -mno-cygwin -о crc32eth.exe crc32eth.cc «with судwin GNU-C++
II
I/-------------------------------------------------------------------------------------------------------------
II вычисление CRC математически является оцениванием остатка полиноминального
II деления, где порождающий многочлен (полином) является делителем.
II Для Ethernet-CRC32 порождающий многочлен — это 0xedb88320, биты соответствуют
II (f.l.tr.) коэффициентам fuer хл0. хл1 .. хА31. коэффициент для хЛ32 не является явно
/Л .
II Этот «неестественный» порядок битов (наименее значащий бит слева) также
II применяется к любому единичному октету блока ввода данных и к результату
II полиноминального деления.
II-------------------------------------------------------------------------------------------------------------
«include <iostream>
«include <iomanip>
«include <fstream>
II-------------------------------------------------------------------------------------------------------------
const unsigned long maCRC32Ether[256] = {
// Таблица для порождающего многочлена 0xedb&8320
0x00000000, 0x77073096.0хее0в612с. 0x990951ba.
0x076dc419. 0x706af48f. 0xe963a535. 0x9e6495a3,
0x0edb8832, 0x79dcb8a4. 0xe0d5e91e. 0x97d2d988.
0x09b64c2b. 0x7eb17cbd. 0xe7b82d07. 0x90bf1d91.
0x1db71064. 0x6ab020f2, 0xf3b97148. 0x84be41de.
0x1adad47d, 0x6ddde4eb. 0xf4d4b551, 0x83d385c7.
0x136c9856.0x646ba8c0. 0xfd62f97a. 0x8a65c9ec.
0x14015c4f. 0x63066cd9, 0xfa0f3d63. 0x8d080df5.
0x3b6e20c8. 0x4c69105e. 0xd56041e4. 0xa2677172.
0x3c03e4d1. 0x4b04d447, 0xd20d85fd, 0xa50ab56b.
0x35b5a8?a. 0x42b2986c. 0xdbbbc9d6. 0xacbcf940,
0x32d86ce3. 0x45df5c75, 0xdcd60dcf. 0xabd13d59.
0x26d930ac. 0x51de003a. 0xc8d75180, 0xbtd06116,
0x21b4f4b5, 0x56b3c423. 0xcfba9599. 0xb8bda50f,
0x2802b89e, 0x5f058808. 0xc60cd9b2. 0xb10be924.
0x2f6f7c87. 0x58684c11,0xc1611dab. 0xb6662d3d,
0x76dc4190. 0x01 db7106. 0x98d220bc. 0xefd5102a.
0x71 Ы 8589. 0x06b6b51t. 0x9fbfe4a5, 0xe8b8d433.
0x7807c9a2. 0x0t00f934. 0x9609a88e,0xe10e9818,
0x7f6a0dbb, 0x086d3d2d.0x91646c97. 0xe6635c01,
0x6b6b51f4. 0x1c6c6162. 0x856530d8. 0xf262004e.
0x6c0695ed. 0x1b01a57b. 0x8208f4c1. 0xf50fc457.
0x65b0d9c6. 0x12b7e950, 0x8bbeb8ea. 0xtcb9887c.
0x62dd1ddf, 0x15da2d49. 0x8cd37cf3. 0xfbd44c65,
44