Rabin-Fingerprint

Der Rabin-Fingerprint ist ein Verfahren zur Berechnung eines Fingerprints. Es wurde von Michael O. Rabin vorgeschlagen.[1]

Motivation

Fingerprints sind kurze Etiketten für große Objekte. Unterschiedliche Fingerprints sollen unterschiedlichen Objekten entsprechen und unterschiedliche Objekte sollen nur mit geringer Wahrscheinlichkeit denselben Fingerprint haben.

Der Rabin-Fingerprint ist ein spezielles Verfahren, das auf der Arithmetik in Z 2 [ x ] {\displaystyle \mathbb {Z} _{2}\left[x\right]} modulo eines irreduziblen Polynoms mit Koeffizienten in Z 2 {\displaystyle \mathbb {Z} _{2}} beruht.

Methode

Verschlüsselt werden soll ein String ( a 1 , , a m ) {\displaystyle (a_{1},\ldots ,a_{m})} aus Nullen und Einsen mit a 1 = 1 {\displaystyle a_{1}=1} . Dieser wird als Polynom a 1 t m 1 + + a 2 t m 2 + + a m {\displaystyle a_{1}t^{m-1}+\ldots +a_{2}t^{m-2}+\ldots +a_{m}} mit Koeffizienten in Z 2 {\displaystyle \mathbb {Z} _{2}} aufgefasst, das Eingabe-Polynom A ( x ) {\displaystyle A(x)} .

Für die Berechnung wird ein Schlüssel P ( x ) {\displaystyle P(x)} , ebenfalls aus Z 2 [ x ] {\displaystyle \mathbb {Z} _{2}[x]} , benötigt. Bei P ( x ) {\displaystyle P(x)} soll es sich um ein irreduzibles Polynom handeln.

Die Rabin-Fingerprintfunktion f {\displaystyle f} ist als

f ( A ) ( x ) = A ( x ) mod P ( x ) {\displaystyle f(A)(x)=A(x)\mod P(x)}

definiert.

Verwendung

Besonders geeignet ist der Rabin-Fingerprint beim Einsatz zur Erkennung von identischen oder ähnlichen Abschnitten in unterschiedlichen Dateien, d. h. zur Erkennung von Redundanz. Diese kann dann zum Beispiel zur Optimierung von Dateitransferprozessen oder bei der Archivierung von Daten genutzt werden. So benutzt etwa das am Massachusetts Institute of Technology entwickelte Dateisystem LBFS (Low-Bandwidth File System) den Rabin-Fingerprint.[2]

  • A. Broder: Some applications of Rabin‘s fingerprinting method

Einzelnachweise

  1. Michael O. Rabin: Fingerprinting by Random Polynomials. Center for Research in Computing Technology, Harvard University, 1981 (englisch, xmailserver.org [PDF; 465 kB; abgerufen am 9. Dezember 2014]). 
  2. Purushottam Kulkarni, Fred Douglis, Jason D. LaVoie, John M. Tracey: Redundancy Elimination Within Large Collections of Files. In: USENIX Annual Technical Conference, General Track. 12. Mai 2004, S. 59–72, abgerufen am 21. Februar 2015 (englisch).