Skip to content

Reed-Solomon Fingerprinting

rid-'solomon

In Reed-Solomon Fingerprinting, Alice optimizes data transfer by sending only hashes to Bob instead of the entire file. The integrity check involves comparing hash values, providing Bob with a high level of confidence in the equality of files.

The hash function used in this protocol is denoted as \(p_a(x)= \Sigma^n_{i=1} a_i · x^{i−1}\), referred to as Reed-Solomon encoding.

In this context, the Fundamental theorem of Algebra is leveraged to imply the following:

For any two distinct (unequal) polynomials \(p_a\) and \(p_b\) of degree at most \(n\) with coefficients in \(\mathbb{F}_p\), \(p_a(x) = p_b(x)\) for at most \(n\) values of \(x\) in \(\mathbb{F}_p\).

Note

Any input can be represented by a polynomial.

Comparing the evaluations of their respective polynomials at a random point allows us to check whether two inputs are identical.

The probability of these two evaluations being the same, even when their inputs differ, is given by \((n-1)/p\), which approaches 0 when \(p >> n\).

Symbol Definition Note
\(a\) Alice’s file
\(b\) Bob’s file
\(n\) number of characters
\(m\) number of possible characters
\(a_1\),…, \(a_n\) Alice’s characters
\(b_1\),…, \(b_n\) Bob’s characters
\(H\) hash functions family
\(h(x)\) hash function
\(p\) modulo \(p\geq\max(m, n^2)\)
\(\mathbb{F}_p\) finite field over \(p\)
\(r\) random value in \(\mathbb{F}_p\)
\(v\) \(h_r(a)\)

Comments