Как вычислить разумное количество бит для контрольной суммы?

У меня есть около 1500 байт данных, для которых я хочу построить контрольную сумму, чтобы, если данные были повреждены, шансы на то, что контрольная сумма все еще соответствовала данным, были меньше, чем, скажем, 1 из 10 ^ 15, т.е. достаточно низкая вероятность, что я могу обработать это, как это никогда не произойдет.

Вопрос в том, сколько бит я должен вычислить? У меня есть вычисление sha-160, которое дает мне 160-битный хэш моих данных, но я ожидаю, что это намного больше, чем необходимо. Поэтому я думаю, что мог бы обрезать полученный хеш, чтобы сказать младшие 40 бит, и использовать это как достаточно большой битовый шаблон, который, если данные будут повреждены, я, скорее всего, обнаружу это.

Таким образом, вопрос двоякий: сколько битов достаточно, и является ли использование младших битов хэша sha-160 хорошим подходом?


person WilliamKF    schedule 22.03.2011    source источник


Ответы (1)


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

person Drooling_Sheep    schedule 22.03.2011