Nova Patents
EP3051699B1

Hardware efficient rabin fingerprints

Abstract

This record has no abstract on file.

EP3051699B1, drawing sheet 1
Sheet 1 of 18

Term

Projected expiry 27 January 2036.

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

8 claims: 8 independent, 0 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;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;andcomputing 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;generating a first Shift function, wherein the first Shift function uses the first fingerprint for the first shingle of data as an input;andcomputing a second fingerprint for a second shingle of data using the first Shift function. Procédé comprenant les étapes ci-dessous consistant à : sélectionner un polynôme irréductible ;générer une fonction de décalage de fréquence, Fresh, sur la base du polynôme irréductible et d'un polynôme d'entrée déterminé par la taille d'un message d'entrée ;calculer une première empreinte digitale pour une première tranche de données en utilisant la fonction de décalage de fréquence ;dans lequel l'étape de calcul de la première empreinte digitale pour la première tranche de données en utilisant la fonction de décalage de fréquence comprend les étapes ci-dessous consistant à : diviser la fonction de décalage de fréquence en une première partie de décalage de fréquence et une seconde partie de décalage de fréquence ;diviser la première tranche de données en une première partie de tranche et une seconde partie de tranche ;etcalculer une empreinte digitale pour chacune de la première partie de tranche et de la seconde partie de tranche, en utilisant la première partie de décalage de fréquence et la seconde partie de décalage de fréquence, dans lequel la seconde partie de décalage de fréquence utilise l'empreinte digitale pour la première partie de tranche en tant qu'une entrée ;générer une première fonction de décalage, Shift, dans laquelle la première fonction de décalage utilise la première empreinte digitale pour la première tranche de données en tant qu'une entrée ;etcalculer une seconde empreinte digitale pour une seconde partie de données, en utilisant la première fonction de décalage. Verfahren, das Folgendes umfasst: Auswählen eines irreduziblen Polynoms;Erzeugen einer Fresh-Funktion basierend auf dem irreduziblen Polynom und einem Eingangs-Polynom, das durch eine Größe einer Eingangsnachricht bestimmt wird;Berechnen eines ersten Fingerabdrucks für ein erstes Daten-Shingle unter Verwendung der Fresh-Funktion;wobei das Berechnen des ersten Fingerabdrucks für das erste Daten-Shingle unter Verwendung der Fresh-Funktion Folgendes umfasst: Aufteilen der Fresh-Funktion in einen ersten Fresh-Abschnitt und einen zweiten Fresh-Abschnitt;Aufteilen des ersten Daten-Shingle in einen ersten Shingle-Abschnitt und einen zweiten Shingle-Abschnitt;undBerechnen eines Fingerabdrucks für jeden aus dem ersten Shingle-Abschnitt und dem zweiten Shingle-Abschnitt unter Verwendung des ersten Fresh-Abschnitts und des zweiten Fresh-Abschnitts, wobei der zweite Fresh-Abschnitt den Fingerabdruck für den ersten Shingle-Abschnitt als Eingabe verwendet;Erzeugen einer ersten Shift-Funktion, wobei die erste Shift-Funktion den ersten Fingerabdruck für das erste Daten-Shingle als Eingabe verwendet;undBerechnen eines zweiten Fingerabdrucks für ein zweites Daten-Shingle unter Verwendung der ersten Shift-Funktion.
  2. 2
    Procédé selon la revendication 1, dans lequel l'étape de génération de la fonction de décalage de fréquence comprend l'étape consistant à générer une pluralité d'équations pour calculer un reste de la division du polynôme d'entrée par le polynôme irréductible. The method of claim 1, wherein generating the Fresh function comprises generating a plurality of equations to compute a remainder of dividing the input polynomial by the irreducible polynomial. Verfahren nach Anspruch 1, wobei das Erzeugen der Fresh-Funktion das Erzeugen einer Vielzahl von Gleichungen umfasst, um einen Rest der Division des Eingangs-Polynoms durch das irreduzible Polynom zu berechnen.
  3. 3
    Procédé selon la revendication 1 ou 2, comprenant en outre les étapes ci-dessous consistant à :générer une pluralité de fonctions de décalage pour suivre la première fonction de décalage, dans laquelle chacune de la pluralité de fonctions de décalage utilise une empreinte digitale pour une tranche précédente de données, la tranche précédente de données, et une tranche en cours de données, en tant qu'entrées ;etcalculer une pluralité d'empreintes digitales pour une pluralité de tranches de données en utilisant la pluralité de fonctions de décalage. The method of claim 1 or 2 further comprising: generating a plurality of Shift functions to follow the first Shift function, wherein each of the plurality Shift functions uses a fingerprint for a preceding shingle of data, the preceding shingle of data, and a current shingle of data as inputs;andcomputing a plurality of fingerprints for a plurality of shingles of data using the plurality of Shift functions. Verfahren nach Anspruch 1 oder 2, das ferner Folgendes umfasst. Erzeugen einer Vielzahl von Shift-Funktionen, um der ersten Shift-Funktion nachzufolgen, wobei jede aus der Vielzahl von Shift-Funktionen einen Fingerabdruck für ein vorangegangenes Daten-Shingle, das vorangegangene Daten-Shingle und ein aktuelles Daten-Shingle als Eingaben verwendet;und Berechnen einer Vielzahl von Fingerabdrücken für eine Vielzahl von Daten-Shingles unter Verwendung der Vielzahl von Shift-Funktionen.
  4. 4
    Procédé selon la revendication 3, dans lequel le polynôme irréductible est sélectionné pour minimiser les calculs sur les fonctions de décalage de fréquence et de décalage. The method of claim 3, wherein the irreducible polynomial is selected to minimize computations over the Fresh and Shift functions. Verfahren nach Anspruch 3, wobei das irreduzible Polynom ausgewählt ist, um Berechnungen über die Fresh- und Shift-Funktionen zu minimieren.
  5. 5
    Procédé selon la revendication 3 ou 4, comprenant en outre les étapes ci-dessous consistant à :échantillonner la pluralité d'empreintes digitales pour la pluralité de tranches de données ;sélectionner un sous-ensemble de la pluralité d'empreintes digitales ;etcréer une esquisse d'un bloc de données comprenant la pluralité de tranches de données, dans lequel l'esquisse du bloc de données comprend le sous-ensemble de la pluralité d'empreintes digitales. The method of claim 3 or 4, further comprising: sampling the plurality of fingerprints for the plurality of shingles of data;selecting a subset of the plurality of fingerprints;andcreating a sketch of a data chunk comprising the plurality of shingles of data, wherein the sketch of the data chunk comprises the subset of the plurality of fingerprints. Verfahren nach Anspruch 3 oder 4, das ferner Folgendes umfasst: Abtasten der Vielzahl von Fingerabdrücken für die Vielzahl von Daten-Shingles;Auswählen einer Untermenge der Vielzahl von Fingerabdrücken, undErzeugen eines Sketch eines Datensegments, umfassend die Vielzahl von Daten-Shingles, wobei der Sketch des Datensegments die Untermenge der Vielzahl von Fingerabdrücken umfasst.
  6. 6
    Procédé selon la revendication 5, comprenant en outre l'étape consistant à utiliser l'esquisse du bloc de données pour compresser le stockage du bloc de données. The method of claim 5, further comprising using the sketch of the data chunk to compress storage of the data chunk. Verfahren nach Anspruch 5, das ferner die Verwendung des Sketch des Datensegments zum Komprimieren des Speichers des Datensegments umfasst.
  7. 7
    A system comprising:one or more processors;anda 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 6. System, das Folgendes umfasst: einen oder mehrere Prozessoren;undeinen Speicher, der Befehle speichert, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren ein Verfahren nach einem der Ansprüche 1 bis 6 durchführt. Système comprenant : un ou plusieurs processeurs ;etune mémoire stockant des instructions, qui, lorsqu'elles sont exécutées par ledit un ou lesdits plusieurs processeurs, amènent ledit un ou lesdits plusieurs processeurs à mettre en œuvre le procédé selon l'une quelconque des revendications 1 à 6.
  8. 8
    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 6. Computerprogrammprodukt, umfassend ein nichtflüchtiges computerverwendbares Medium, das ein computerlesbares Programm speichert, wobei das computerlesbare Programm, wenn es auf einem Computer ausgeführt wird, bewirkt, dass der Computer ein Verfahren nach einem der Ansprüche 1 bis 6 durchführt. Produit-programme informatique comprenant un support non transitoire utilisable par ordinateur stockant un programme lisible par ordinateur, dans lequel le programme lisible par ordinateur, lorsqu'il est exécuté sur un ordinateur, amène l'ordinateur à mettre en œuvre le procédé selon l'une quelconque des revendications 1 à 6.