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 | обозначает длину r в битах. Алгоритм требует предварительного выбора w -битного внутреннего «ключа», и эта гарантия сохраняется до тех пор, пока строки r и s выбираются без знания ключа.

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

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

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

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

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

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

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

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

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

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

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

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

Ссылки

  1. ^ Бродер, AZ (1993). "Некоторые приложения метода дактилоскопии Рабина". Последовательности II: Методы в коммуникациях, безопасности и компьютерной науке . Springer. стр. 143–152. ISBN 0-387-97940-9.
  2. ^ Обнаружение дубликатов и почти дубликатов файлов. Патент США 6658423, выдан 2 декабря 2003 г.
  3. ^ AZ Broder (1998). "О сходстве и содержании документов". Труды. Сжатие и сложность последовательностей 1997 (Кат. № 97TB100171) . IEEE Computer Society. стр. 21–27. CiteSeerX 10.1.1.24.779 . doi :10.1109/SEQUEN.1997.666900. ISBN  978-0-8186-8132-5. S2CID  11748509.
  4. ^ Брин, С. и Дэвис, Дж. и Гарсия-Молина, Х. (1995) Механизмы обнаружения копирования для цифровых документов. Архивировано 18 августа 2016 г. в Wayback Machine . В: Международная конференция ACM по управлению данными (SIGMOD 1995), 22–25 мая 1995 г., Сан-Хосе, Калифорния, из stanford.edu. 18/08/2016. Получено 01/11/2019.
  5. ^ Фань, Л.; Као, П.; Алмейда, Дж.; Бродер, А. (2000). «Кэш-память: масштабируемый протокол общего доступа к веб-кэшу в глобальном масштабе». Труды IEEE/ACM по сетевым технологиям . 8 (3): 281–293. doi :10.1109/90.851975.
  6. ^ Манбер, У. (1994). «Поиск похожих файлов в большой файловой системе». Труды зимней технической конференции USENIX .
  7. ^ Рабин, МО (1981). «Дактилоскопия случайными полиномами». Центр исследований вычислительных технологий Гарвардского университета, отчет TR-15-81 .
  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 . Получено 05.07.2018 . pHash — это библиотека программного обеспечения с открытым исходным кодом, выпущенная по лицензии GPLv3, которая реализует несколько алгоритмов перцептивного хэширования и предоставляет API-интерфейс на языке C для использования этих функций в ваших собственных программах. Сам pHash написан на C++.
  10. ^ ab Hoad, Timothy; Zobel, Justin (2003), "Methods for Identifying Versioned and Plagiarised Documents" (PDF) , Журнал Американского общества информационной науки и технологий , 54 (3): 203–215, CiteSeerX 10.1.1.18.2680 , doi :10.1002/asi.10170, архивировано из оригинала (PDF) 30 апреля 2015 г. , извлечено 14 октября 2014 г. 
  11. ^ Stein, Benno (июль 2005 г.), «Fuzzy-Fingerprints for Text-Based Information Retrieval», Труды 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 г.