Nova Patents
EP3051699A2

Hardware efficient rabin fingerprints

Abstract

An approach for fingerprinting large data objects at the wire speed has been disclosed. The techniques include Fresh/Shift pipelining, split Fresh, optimization, online channel sampling, and pipelined selection. The architecture can also be replicated to work in parallel for higher system throughput. Fingerprinting may provide an efficient mechanism for identifying duplication in a data stream, and deduplication based on the identified fingerprints may provide reduced storage costs, reduced network bandwidth consumption, reduced processing time and other benefits. In some embodiments, fingerprinting may be used to ensure or verify data integrity and may facilitate detection of corruption or tampering. An efficient manner of generating fingerprints (either via hardware, software, or a combination) may reduce a computation load and/or time required to generate fingerprints.

EP3051699A2, drawing sheet 1
Sheet 1 of 19

Term

9.3 yearsto projected expiry

Projected expiry 27 January 2036, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

9 claims: 4 independent, 5 dependent

  1. 1
    A method comprising:selecting an irreducible polynomial;generating a Fresh function based on the irreducible polynomial and an input polynomial determined by a size of an input message;computing a first fingerprint for a first shingle of data using the Fresh function;generating a first Shift function, wherein the first Shift function uses the first fingerprint for the first shingle of data as an input;and computing a second fingerprint for a second shingle of data using the first Shift function.
  2. 7
    The method of any preceding claim 1, wherein computing the first fingerprint for the first shingle of data using the Fresh function comprises:splitting the Fresh function into a first Fresh portion and a second Fresh portion;splitting the first shingle of data into a first shingle portion and a second shingle portion;and computing a fingerprint for each of the first shingle portion and the second shingle portion using the first Fresh portion and the second Fresh portion, wherein the second Fresh portion uses the fingerprint for the first shingle portion as an input.
  3. 8
    A system comprising:one or more processors;and a memory storing instructions, which when executed by the one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 7.
  4. 9
    A computer program product comprising a non-transitory computer useable medium storing a computer readable program, wherein the computer readable program, when executed on a computer, causes the computer to perform the method of any one of claims 1 to 7.