|
|
Line 1: |
Line 1: |
| The '''Rabin fingerprinting scheme''' is a method for implementing [[fingerprint (computing)|fingerprint]]s using [[polynomial]]s over a [[finite field]]. It was proposed by [[Michael O. Rabin]].<ref>
| | Friends call him Royal Seyler. Managing people is how I make money and it's some thing I really appreciate. The factor I adore most bottle tops gathering and now I have time to consider on new things. Delaware is our beginning place.<br><br>My website: [http://www.Wandmanufaktur.de/index/users/view/id/3122 http://www.Wandmanufaktur.de] |
| {{cite paper |author=[[Michael O. Rabin]] |title=Fingerprinting by Random Polynomials |publisher=Center for Research in Computing Technology, Harvard University |id=Tech Report TR-CSE-03-01 |year=1981 |url=http://www.xmailserver.org/rabin.pdf |format=PDF |accessdate=2007-03-22 }}
| |
| </ref>
| |
| | |
| ==Scheme==
| |
| Given an ''n''-bit message ''m''<sub>0</sub>,...,''m''<sub>n-1</sub>, we view it as a polynomial of degree ''n''-1 over the [[finite field]] [[Galois field|GF(2)]].
| |
| | |
| <math> f(x) = m_0 + m_1 x + \ldots + m_{n-1} x^{n-1} </math>
| |
| | |
| We then pick a random [[irreducible polynomial]] ''p(x)'' of degree ''k'' over GF(2), and we define the fingerprint of ''m'' to be the remainder <math>r(x)</math> after division of <math>f(x)</math> by <math>p(x)</math> over GF(2) which can be viewed as a polynomial of degree ''k''-1 or as a ''k''-bit number.
| |
| | |
| ==Applications==
| |
| | |
| The ''Low Bandwidth Network Filesystem'' (LBFS) from MIT uses Rabin fingerprints to implement variable size shift-resistant blocks.
| |
| <ref>Athicha Muthitacharoen, Benjie Chen, and [[David Mazières]]
| |
| [http://pdos.csail.mit.edu/papers/lbfs:sosp01/lbfs.pdf "A Low-bandwidth Network File System"]</ref>
| |
| The basic idea is that the filesystem computes the [[cryptographic hash]] of each block in a file. To save on transfers between the client and server,
| |
| they compare their checksums and only transfer blocks whose checksums differ. But one problem with this scheme is that a single insertion at the beginning of the file will cause every checksum to change if fixed-sized (e.g. 4 KB) blocks are used. So the idea is to select blocks not based on a specific offset but rather by some property of the block contents. LBFS does this by sliding a 48 byte window over the file and computing the Rabin fingerprint of each window. When the low 13 bits of the fingerprint are zero LBFS calls those 48 bytes a breakpoint and ends the current block and begins a new one. Since the output of Rabin fingerprints are [[pseudo-random]] the probability of any given 48 bytes being a breakpoint is <math>2^{-13}</math>. This has the effect of shift-resistant variable size blocks. ''Any'' [[hash function]] could be used to divide a long file into blocks (as long as a [[cryptographic hash function]] is then used to find the checksum of each block): but the Rabin fingerprint is an efficient [[rolling hash]], since the computation of the Rabin fingerprint of region ''B'' can reuse some of the computation of the Rabin fingerprint of region ''A'' when regions ''A'' and ''B'' overlap.
| |
| | |
| Note that this is a problem similar to that faced by [[rsync]].
| |
| | |
| ==See also==
| |
| *[[W-shingling]]
| |
| *[[Rolling hash]]
| |
| | |
| ==References==
| |
| <references/>
| |
| | |
| ==External links==
| |
| * {{cite paper |author=Andrei Z. Broder |year=1993 |title=Some applications of Rabin's fingerprinting method |url=http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.6172 |accessdate=2011-09-12 }}
| |
| * {{cite paper |author=David Andersen |year=2007 |title=Exploiting Similarity for Multi-Source Downloads using File Handprints |url=http://www.cs.cmu.edu/~dga/papers/nsdi2007-set-abstract.html |accessdate=2007-04-12 }}
| |
| * [http://code.google.com/p/rabin-fingerprint-c/ Rabin fingerprint algorithm implemented in C]
| |
| | |
| [[Category:Theory of cryptography]]
| |
| | |
| | |
| {{crypto-stub}}
| |
Friends call him Royal Seyler. Managing people is how I make money and it's some thing I really appreciate. The factor I adore most bottle tops gathering and now I have time to consider on new things. Delaware is our beginning place.
My website: http://www.Wandmanufaktur.de