stringtranslate.com

Отпечаток пальца (вычисления)

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

Отпечатки пальцев обычно используются, чтобы избежать сравнения и передачи объемных данных. Например, веб-браузер или прокси-сервер могут эффективно проверить, был ли изменен удаленный файл, извлекая только его отпечаток и сравнивая его с отпечатком ранее полученной копии. [2] [3] [4] [5] [6]

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

Существуют специальные алгоритмы для снятия отпечатков пальцев по аудио и видео .

Хэш-функция в действии

Характеристики

Виртуальная уникальность

Чтобы служить своим целям, алгоритм снятия отпечатков пальцев должен иметь возможность идентифицировать файл с виртуальной достоверностью. Другими словами, вероятность столкновения ( два файла с одинаковым отпечатком пальца) должна быть незначительной по сравнению с вероятностью других неизбежных причин фатальных ошибок (таких как разрушение системы войной или падением метеорита ): скажем, 10 −20 или меньше.

Это требование чем-то похоже на требование к функции контрольной суммы , но гораздо более строгое. Чтобы обнаружить случайное повреждение данных или ошибки передачи, достаточно, чтобы контрольные суммы исходного файла и любой поврежденной версии различались с почти наверняка, при наличии некоторой статистической модели ошибок. В типичных ситуациях эта цель легко достигается с помощью 16- или 32-битных контрольных сумм. Напротив, отпечатки файлов должны иметь длину не менее 64 бит, чтобы гарантировать виртуальную уникальность в больших файловых системах (см. «Атака дня рождения» ).

При доказательстве вышеуказанного требования необходимо учитывать, что файлы генерируются весьма неслучайными процессами, которые создают сложные зависимости между файлами. Например, в типичной деловой сети обычно можно найти множество пар или групп документов, которые отличаются лишь незначительными правками или другими незначительными модификациями. Хороший алгоритм снятия отпечатков пальцев должен гарантировать, что такие «естественные» процессы генерируют отдельные отпечатки пальцев с желаемым уровнем достоверности.

Компаундирование

Компьютерные файлы часто объединяются различными способами, такими как конкатенация (как в архивных файлах ) или символическое включение (как с помощью директивы #include препроцессора C ). Некоторые алгоритмы снятия отпечатков позволяют вычислять отпечатки составного файла на основе отпечатков его составных частей. Это свойство «объединения» может быть полезно в некоторых приложениях, например, для определения необходимости перекомпиляции программы.

Алгоритмы

Алгоритм Рабина

Прототипом класса является алгоритм снятия отпечатков пальцев Рабина [7] . Он быстро и легко реализуется, позволяет начислять сложные суммы и обеспечивает математически точный анализ вероятности столкновения. А именно, вероятность того, что две строки r и s дадут один и тот же w -битовый отпечаток, не превышает max(| r |,| s |)/2 w -1 , где | р | обозначает длину r в битах. Алгоритм требует предварительного выбора w -битного внутреннего «ключа», и эта гарантия сохраняется до тех пор, пока строки r и s выбираются без знания ключа.

Метод Рабина не защищен от злонамеренных атак. Злоумышленник может легко обнаружить ключ и использовать его для изменения файлов, не меняя их отпечатков пальцев.

Криптографические хэш-функции

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

Недостатком криптографических алгоритмов хэширования, таких как MD5 и SHA, является то, что их выполнение занимает значительно больше времени, чем алгоритм отпечатков пальцев Рабина. У них также отсутствуют проверенные гарантии вероятности столкновения. Некоторые из этих алгоритмов, особенно MD5 , больше не рекомендуются для безопасного снятия отпечатков пальцев. Они по-прежнему полезны для проверки ошибок, когда целенаправленное изменение данных не является основной проблемой.

Перцептивное хеширование

Перцептивное хеширование — это использование алгоритма снятия отпечатков пальцев, который создает фрагмент, хеш или отпечаток пальца различных форм мультимедиа . [8] [9] Перцептивный хэш — это тип хеша, чувствительного к местонахождению , который аналогичен, если характеристики мультимедиа схожи. В этом отличие от криптографического хеширования , которое основано на лавинном эффекте небольшого изменения входного значения, вызывающего резкое изменение выходного значения. Перцептивные хеш-функции широко используются при обнаружении случаев нарушения авторских прав в Интернете , а также в цифровой криминалистике из-за возможности корреляции между хэшами, позволяющей находить похожие данные (например, с другим водяным знаком ).

Примеры применения

NIST распространяет справочную библиотеку программного обеспечения, Американскую национальную справочную библиотеку программного обеспечения , которая использует криптографические хэш-функции для идентификации файлов и сопоставления их с программными продуктами. База данных HashKeeper , поддерживаемая Национальным центром по разведке наркотиков , представляет собой хранилище отпечатков пальцев «заведомо хороших» и «заведомо плохих» компьютерных файлов для использования в правоохранительных целях (например, при анализе содержимого конфискованных дисков). .

Обнаружение сходства контента

Отпечатки пальцев в настоящее время являются наиболее широко применяемым подходом к обнаружению сходства контента. Этот метод формирует репрезентативные дайджесты документов, выбирая из них набор из нескольких подстрок ( n-грамм ). Наборы представляют собой отпечатки пальцев, а их элементы называются мелочами. [10] [11]

Подозрительный документ проверяется на плагиат путем вычисления его отпечатка пальца и запроса деталей с помощью заранее вычисленного индекса отпечатков пальцев для всех документов справочной коллекции. Совпадение мелочей с деталями других документов указывает на общие сегменты текста и предполагает потенциальный плагиат, если они превышают выбранный порог сходства. [12] Вычислительные ресурсы и время являются ограничивающими факторами для снятия отпечатков пальцев, поэтому этот метод обычно сравнивает только подмножество мелочей, чтобы ускорить вычисления и обеспечить проверку очень больших коллекций, таких как Интернет. [10]

Смотрите также

Рекомендации

  1. ^ АЗ Бродер. Некоторые применения метода снятия отпечатков пальцев Рабина. В разделе «Последовательности II: Методы связи, безопасности и информатики», страницы 143–152. Спрингер-Верлаг, 1993 г.
  2. ^ Обнаружение дубликатов и почти дубликатов файлов. Патент США 6658423, выдан 2 декабря 2003 г.
  3. ^ АЗ Бродер (1998). «О сходстве и содержании документов». Слушания. Сжатие и сложность ПОСЛЕДОВАТЕЛЬНОСТЕЙ 1997 (Кат. № 97TB100171) . Компьютерное общество IEEE. стр. 21–27. CiteSeerX  10.1.1.24.779 . дои : 10.1109/SEQUEN.1997.666900. ISBN 978-0-8186-8132-5. S2CID  11748509.{{cite book}}: CS1 maint: дата и год ( ссылка )
  4. ^ Брин, С. и Дэвис Дж. и Гарсиа-Молина Х. (1995) Механизмы обнаружения копий для цифровых документов, заархивированные 18 августа 2016 г. в Wayback Machine . В: Международная конференция ACM по управлению данными (SIGMOD 1995), 22–25 мая 1995 г., Сан-Хосе, Калифорния, с сайта stanford.edu. 18.08.2016. Проверено 01.11.2019.
  5. ^ Л. Фан, П. Цао, Дж. Алмейда и А. Бродер, Сводный кэш: масштабируемый протокол совместного использования глобального веб-кэша, Транзакции IEEE/ACM в сети, том. 8, № 3 (2000)
  6. ^ У. Манбер, Поиск похожих файлов в большой файловой системе. Материалы Зимней технической конференции USENIX. (1994)
  7. ^ М.О. Рабин Отпечатки пальцев с помощью случайных полиномов. Отчет Центра исследований вычислительных технологий Гарвардского университета TR-15-81 (1981 г.)
  8. ^ Булдас, Ахто; Крунмаа, Андрес; Лааноха, Ристо (2013). «Инфраструктура бесключевых подписей: как построить глобальные распределенные хэш-деревья». В Риисе, Нильсон Х.; Голлманн, Д. (ред.). Безопасные ИТ-системы. НордСек 2013 . Конспекты лекций по информатике. Том. 8208. Берлин, Гейдельберг: Springer. дои : 10.1007/978-3-642-41488-6_21. ISBN 978-3-642-41487-9. ISSN  0302-9743. Инфраструктура бесключевых подписей (KSI) — это глобально распределенная система для предоставления услуг по отмене времени и цифровой подписи, поддерживаемой сервером. Создаются глобальные посекундные хеш-деревья и публикуются их корневые хэш-значения. Мы обсуждаем некоторые проблемы качества обслуживания, возникающие при практической реализации услуги, и представляем решения, позволяющие избежать единых точек сбоя и гарантировать предоставление услуги с разумной и стабильной задержкой. Guardtime AS управляет инфраструктурой KSI уже 5 лет. Мы суммируем, как строится инфраструктура KSI, и уроки, извлеченные за период эксплуатации сервиса.
  9. ^ Клингер, Эван; Старквезер, Дэвид. «pHash.org: Дом pHash, библиотеки перцептивного хеширования с открытым исходным кодом». pHash.org . Проверено 5 июля 2018 г. pHash — это программная библиотека с открытым исходным кодом, выпущенная под лицензией GPLv3, которая реализует несколько алгоритмов перцептивного хеширования и предоставляет C-подобный API для использования этих функций в ваших собственных программах. Сам pHash написан на C++.
  10. ^ Аб Хоад, Тимоти; Зобель, Джастин (2003), «Методы идентификации версионных и плагиатных документов» (PDF) , Журнал Американского общества информационных наук и технологий , 54 (3): 203–215, CiteSeerX 10.1.1.18.2680 , doi : 10.1002 /asi.10170, заархивировано из оригинала (PDF) 30 апреля 2015 г. , получено 14 октября 2014 г. 
  11. ^ Штейн, Бенно (июль 2005 г.), «Нечеткие отпечатки пальцев для поиска текстовой информации», Труды I-KNOW '05, 5-й Международной конференции по управлению знаниями, Грац, Австрия (PDF) , Springer, Know-Center, стр. 572–579, заархивировано из оригинала (PDF) 2 апреля 2012 г. , получено 7 октября 2011 г.
  12. ^ Брин, Сергей; Дэвис, Джеймс; Гарсия-Молина, Гектор (1995), «Механизмы обнаружения копий для цифровых документов», Труды Международной конференции ACM SIGMOD 1995 года по управлению данными (PDF) , ACM, стр. 398–409, CiteSeerX 10.1.1.49.1567 , doi : 10.1145/223784.223855, ISBN  978-1-59593-060-6, S2CID  8652205, заархивировано из оригинала (PDF) 18 августа 2016 г. , получено 7 октября 2011 г.