Відбитки пальців Рабіна

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Схема відбитків пальців Рабіна — є методом для реалізації відбитків пальців з використанням поліномів над скінченним полем. Її запропонував Міхаель Ошер Рабін.[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"

Зовнішні посилання

[ред. | ред. код]