Схема відбитків пальців Рабіна — є методом для реалізації відбитків пальців з використанням поліномів над скінченним полем. Її запропонував Міхаель Ошер Рабін.[1]

Система ред.

Враховуючи n-ий ряд m0,...,mn-1, ми розглядаємо його як многочлен степеня n-1 над скінченним полем.

 

Тоді ми обираємо довільний незвідний многочлен   зі степенем k над скінченним полем, і ми визначаємо, що ідентифікаційна мітка m є залишком   після поділу   за допомогою   над скінченним полем, який можна розглядати як многочлен степеня k − 1 або як k-те число.

Застосування ред.

Багато реалізацій алгоритму Рабіна — Карпа використовують всередині своєї послідовності відбитки пальців Рабина.

Система "лексикографічного пошуку у ширину" (LBFS) від Массачусетського технологічного інституту MIT використовує відбитки пальців Рабіна для реалізації блоків, стійких до зміни розміру.[2] Основна ідея полягає в тому, що файлова система обчислює криптографічний геш кожного блоку в файлі. Для збереження при переказах між клієнтом і сервером вони порівнюють свої контрольні суми і тільки блоки передачі, чиї контрольні суми відрізняються. Але однією з проблем цієї схеми є те, що одна вставка на початку файлу призведе до того, що кожна контрольна сума буде змінюватися, якщо використовуються блоки фіксованого розміру (наприклад, 4 КБ). Отже, ідея полягає в тому, щоб вибрати блоки не на основі конкретного зсуву, а скоріше за деякою властивістю блоку. LBFS робить це, пересуваючи 48-байтове вікно над файлом і обчислюючи Відбитки пальців Рабіна кожного вікна. Коли низькі 13 біт відбитків пальців дорівнює нулю LBFS називає ці 48 байт точкою зупинки і завершує поточний блок і починає новий. Оскільки результат відбитків пальців Рабіна є псевдовипадковим, ймовірність будь-якого заданого 48 байта, що є кінцевою, становить   (1 в 8192). Це має ефект стійких до зміщення блоків змінних розмірів. Будь-яка хеш-функція може бути використана для поділу довгого файлу на блоки (поки криптографічна геш-функція використовується для знаходження контрольної суми кожного блоку): але Відбитки пальців Рабіна є ефективним котковим гешем, оскільки обчислення відбитків пальців Рабіна околуB може повторно використати деякі обчислення відбитків пальців Рабіна області A коли околи A та B перетинаються.

Зауважте, що це проблема, подібна до проблеми, з якою зіткнулася rsync.

Дивись також ред.

Посилання ред.

  1. Michael O. Rabin (1981). Fingerprinting by Random Polynomials (PDF). Center for Research in Computing Technology, Harvard University. Tech Report TR-CSE-03-01. Процитовано 22 березня 2007.
  2. Athicha Muthitacharoen, Benjie Chen, and David Mazières "A Low-bandwidth Network File System"

Зовнішні посилання ред.