Быстрый и надежный алгоритм контрольной суммы для небольшого файла данных (~ 10 КБ) [закрыто]

Сначала введите «service mysqld start» и войдите в систему

0
задан Zakir 7 March 2019 в 02:08
поделиться

3 ответа

Мое намерение состоит в том, чтобы обнаружить подделку содержимого этого файла

Если вам нужно обнаружить преднамеренное подделывание файла, вам нужна какая-то криптографическая подпись [ 114] - не просто хеш.

Если вы можете защитить ключ внутри устройства, может быть достаточно использовать HMAC в качестве алгоритма подписи. Однако, если секрет будет извлечен из устройства, пользователи смогут использовать его для подделки подписей.

Если вы не можете защитить ключ в устройстве, вам нужно будет использовать алгоритм асимметричной подписи. API-интерфейсы Libsodium crypto_sign предоставляют хороший API для этого. В качестве альтернативы, если вы хотите использовать базовые алгоритмы напрямую, EdDSA - достойный выбор.

Любой из этих вариантов потребует относительно большой объем пространства (от 32 до 64 байт), который будет выделен для подписи, и проверка этой подписи займет значительно больше времени, чем некриптографическая подпись. Это в значительной степени неизбежно, если вам нужно эффективно предотвратить вмешательство.

0
ответ дан duskwuff 7 March 2019 в 02:08
поделиться

Для ваших целей вы можете использовать криптографический хеш, такой как SHA256. Это очень надежно, и столкновения крайне маловероятны, но вы должны проверить, в порядке ли скорость.

В этом ответе приведен пример реализации: https://stackoverflow.com/a/55033209/4593267

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

В противном случае требуется асимметричная криптографическая система с закрытым ключом, известным только законному источнику (источникам) этих файлов данных, и открытым ключом, используемым устройством для проверки криптографического хэша, как описано в ответе duskwuff. [ 114]

0
ответ дан chqrlie 7 March 2019 в 02:08
поделиться

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

(здесь я использую несколько круговое определение «злонамеренный»: если кто-то сталкивается с проблемой пересчета или манипулирования CRC, чтобы заставить свои изменения работать, это считается «злым», и мы не защищаем она.)

0
ответ дан Jeremy 7 March 2019 в 02:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: