Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Max Alekseyev                        2:5015/128     26 Jun 2001  13:06:02
 To : All
 Subject : CRC64: информация к размышлению
 -------------------------------------------------------------------------------- 
 
 
 Replying to a message of Max Alekseyev to All:
 
  MA> Есть ли стандарт (хотя бы де-факто) на полином в алгоритме CRC64?
 
 Так как никто не поторопился с ответом на мой вопрос, пришлось самому
 изыскивать ответ. Спешу поделиться тем, что мне удалось узнать.
 
 Hачну с выбора полинома. Существуют два подхода:
 
 Первый заключается в выборе примитивного полинома.  а этом настаивают Numerical
 Recipes (http://www.nr.com), .20.3 Cyclic Redundancy and Other Checksums. CRC с
 таким полиномом способна обнаруживать ошибки в не более <степень полинома>
 последовательных битах.
 
 Второй подход, описываемый в статье 
 Ross N. Williams "A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS"
 (ftp://ftp.adelaide.edu.au/pub/rocksoft/crc_v3.txt), наоборот, предлагает
 выбирать полином как произведение специально подобранных полиномов меньших
 степеней. В частности, в это произведение должен входить полином (x+1), что дает
 возможность распознавать однобитовые ошибки.
 
 Оба подхода имеют свои преимущества, хотя если исходить только из указанных
 источников, второй кажется значительно более изощренным применительно к
 обнаружению различного рода ошибок.
 
 Замечу, что полином 0xEDB88320 ставший стандартом де-факто для CRC32, является
 примитивным.
 
 Кстати, имеется перевод статьи Williams'а на русский язык - прекрасный с
 художественной точки зрения, но просто ужасный с терминологической (особенно
 меня "убил" как раз перевод параграфа о выборе полинома). Этот перевод доступен
 по ссылкам
 http://dore.on.ru/articles/crcguide.pdf
 http://www.uic.nnov.ru/~ryai/d/CRCguide.rar
 
 Теперь собственно о CRC64. Покопавшись в дебрях интернета, я обнаружил как
 минимум три распространенных разновидности:
 
 1) Эта CRC64 берет свое начало с заметки
 http://apollo.backplane.com/matt/crc64.html
  а нее имеется много ссылок в интернете и готовых исходников типа
 http://www.gtk.org/~trog/gcrc-0.1.tar.gz
 Полином здесь не является примитивным, но и насколько он удовлетворяет
 требованиям из статьи Williams'а никакой информации не имеется.
 
 2) Другая CRC64 используется в генетических базах данных SWISS-PROT. Что это
 такое, я сказать затрудняюсь, но судя по ссылкам это достаточно распространенная
 вещь (в узких кругах? ;). Ее авторы следовали указаниям именно Numerical Recipes
 и даже полином взяли оттуда:
 x^64 + x^4 + x^3 + x^1 + 1 (0xD800000000000000).
 Реализация практически один в один совпадает с классической CRC32, за
 исключением разрядности. Исходные тексты можно найти здесь:
 ftp://ftp.ebi.ac.uk/pub/software/swissprot/Swissknife/SPcrc.tar.gz
 
 3) Полином из DLT (digital linear tape) стандарта ECMA-182 
 http://www.ecma.ch/ecma1/STAND/ECMA-182.HTM (стр. 63)
 Судя по всему, предлагаемый здесь полином, наиболее удовлетворяет требованиям
 описанным в статье Williams'а.
 
 С интересным обсужденим последних двух CRC64 можно познакомиться здесь:
 http://www.geocrawler.com/mail/msg.php3?msg_id=5330090&list=10
 
 Regards,      ш.ш
         Max    ~
 
 --- FleetStreet 1.27.3.6
  * Origin: Иглы лучей опять найдут нашу кровь. (2:5015/128)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 полином для CRC64   Max Alekseyev   24 Jun 2001 22:56:16 
 полином для CRC64   Wowa Savin   26 Jun 2001 10:32:02 
 полином для CRC64   Max Alekseyev   26 Jun 2001 12:45:36 
 CRC64: информация к размышлению   Max Alekseyev   26 Jun 2001 13:06:02 
 Re: полином для CRC64   Sergey Radkevitch   26 Jun 2001 14:59:38 
 Re: полином для CRC64   Sergey Radkevitch   26 Jun 2001 15:03:43 
 полином для CRC64   Max Alekseyev   26 Jun 2001 18:32:20 
 Re: полином для CRC64   Sergey Radkevitch   28 Jun 2001 11:42:37 
 полином для CRC64   Max Alekseyev   26 Jun 2001 18:31:32 
Архивное /ru.algorithms/22983b3896ca.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional