Рейтинг:0

Формирование 64-битной CRC из 32-битной CRC

флаг us

Предположим, у меня есть 32-битная функция CRC. $\текст{crc32}(х)$ который удовлетворяет всем свойствам CRC. Предположим также, что я ленивый разработчик, который хочет создать 64-битную функцию CRC, но на самом деле не хочет реализовывать еще одну CRC, поэтому я разрабатываю функцию

$$ f(x)= \text{crc32}( {\tt{"}\tt{foo}\tt{"}}\ ||\ x ) \cdot 2^{32} + \text{crc32}( {\ tt {"} \ tt {bar} \ tt {"}} \ ||\ x ) $ $ Делает $f$ сформировать CRC?

hft avatar
флаг ng
hft
Что касается «всех свойств CRC», вы ссылаетесь на страницу википедии, которая не является списком «всех свойств CRC», а представляет собой длинную страницу с объяснениями того, что такое CRC...но различные объяснения не согласуются в их свойствах. Можете ли вы перечислить все желаемые свойства вместо того, чтобы предоставлять ссылку на длинную веб-страницу, которую нам придется анализировать и интерпретировать? В любом случае, вам просто нужен 64-битный хеш, который вы создали. Но если вы действительно хотите исправить ошибки, я не уверен. Что ты хочешь делать?
Рейтинг:2
флаг my

Твой $ф$ точно эквивалентно этому:

$$f(x) = (\text{crc32}(x) \oplus C_1)\ || \ (\text{crc32}(x) \oplus C_2)$$

Для соответствующих $С_1, С_2$ значения, зависящие от длины $Х$; $C_1 = \text{crc32}(\text{"foo"} || 0^{\text{len}(X)}) \oplus \text{crc32}(0^{\text{len}(X) })$, и $C_2 = \text{crc32}(\text{"bar"} || 0^{\text{len}(X)}) \oplus \text{crc32}(0^{\text{len}(X) })$

То есть фактически это crc32 $х$ дважды, за исключением того, что некоторые биты первой и второй копии меняются местами; какие биты зависят от длины $х$, но ничего больше.

Это означает, что свойства обнаружения ошибок вашей функции фактически такие же, как у crc32, и ничем не лучше.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.