WO2015183127A1 - Method of segmenting data - Google Patents

Method of segmenting data Download PDF

Info

Publication number
WO2015183127A1
WO2015183127A1 PCT/RU2014/000400 RU2014000400W WO2015183127A1 WO 2015183127 A1 WO2015183127 A1 WO 2015183127A1 RU 2014000400 W RU2014000400 W RU 2014000400W WO 2015183127 A1 WO2015183127 A1 WO 2015183127A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
functions
predicate
function
sliding window
Prior art date
Application number
PCT/RU2014/000400
Other languages
French (fr)
Russian (ru)
Inventor
Леонид Валерьевич ЮРЬЕВ
Original Assignee
Общество С Ограниченной Ответственностью "Петер-Сервис Рнд"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Петер-Сервис Рнд" filed Critical Общество С Ограниченной Ответственностью "Петер-Сервис Рнд"
Priority to PCT/RU2014/000400 priority Critical patent/WO2015183127A1/en
Publication of WO2015183127A1 publication Critical patent/WO2015183127A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Definitions

  • the invention relates to the field of computer technology, automated and information systems, automated analysis of electronic documents and information flows.
  • the invention can be used to develop new and improve existing systems for checking electronic documents or digital data streams for the presence of fragments or citations from other (reference) documents or files, including both full repetition of content and multiple repetition of individual fragments in random order.
  • a missed defect namely, that the distance from the last boundary of the selected segment also affects the result of the proposed predicate function.
  • the generated segment boundaries depend not only on the contents of the sliding window, but also on all data from the previous segment boundary. Therefore, when minor local changes are made to the beginning of the data stream, another segment map can be obtained.
  • the described method also has the aforementioned disadvantages, which are significant when searching for confidential and other important information.
  • the objective of this invention is to obtain a universal method of segmentation, which allows you to effectively identify matching fragments between digital documents containing arbitrary information with a clear result in the form of boundaries of coincidences, without access to the original standards, overcoming the significant limitations and disadvantages of the known solutions described above.
  • the technical result of this invention is to improve the accuracy. and the effectiveness of identifying matching fragments between digital documents.
  • the method of data segmentation includes the following steps: the user generates an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters, receive the processed data from at least one data source, then shift the sliding window to the limits of the processed data, while determining the value of each function from the above set of data corresponding to the current position of the sliding window, after which op divide the boundaries of the data segment based on the order and values of the functions obtained in the previous step.
  • the boundaries of the data segment are determined based on the order and values of the functions obtained in the previous step for at least the last M positions, choosing the first true value as the boundary in accordance with the direction of forward movement and the order of functions, where M is the desired the maximum length of the segment boundary set by the user at the stage of forming an ordered set of discrete and predicate functions.
  • the predicate function is a detector of signatures (key and / or characteristic byte sequences) of data formats, files and documents.
  • the predicate function is a detector of the format and / or data structure based on static characteristics and optional heuristics.
  • the predicate function is a detector that distinguishes between the text (values and byte sequences corresponding to printed characters) and non-text information.
  • the predicate function is a detector that recognizes information in natural languages by the presence of characteristic sequences of bytes (p-gram).
  • the predicate function is a detector that recognizes a change in encoding (content-charset) for text information.
  • the predicate function is a detector that recognizes content-encoding for arbitrary information.
  • the predicate function is a detector that recognizes the nature of the distribution of byte values in a sliding window.
  • the invention may be implemented as a device comprising: a first unit configured to obtain the desired maximum length of the boundary of the segment M and form an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters and the ability to transmit the specified dialing into the second block, configured to receive and transmit processed data and shift the sliding window within the received data from the last by determining the values of each function from the above set on the data corresponding to the current position of the sliding window, the second block is configured to receive and receive the received values and the order of functions in the third block, configured to determine the boundary of the data segment based on the received order and values of functions for at least the last M positions, and the first value “true” is selected as the boundary in accordance with the forward direction of the moving windows and order functions.
  • the blocks are connected in series.
  • This device can be implemented as a hardware module or virtualized device.
  • virtualization we mean emulation or imitation of this device on a computer system.
  • the invention can be implemented as a data segmentation system, including:
  • one or more command processing devices one or more data storage devices, one or more programs, where one or more programs are stored on one or more data storage devices and executed on one or more processors, and one or more programs includes the following instructions: user forms an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters, then receive the processed data from at least one data source, shift t a sliding window within the processed data, in this case, the value of each function from the above set is determined on the data corresponding to the current position of the sliding window, then the boundaries of the data segment are determined based on the order and values of the functions obtained in the previous step.
  • one or more programs additionally contain the following instructions: determine the boundaries of the data segment based on the order and values of the functions obtained in the previous step for at least the last M positions, choosing the first “true” value as the boundary in accordance directions of movement forward and the order of functions, where M is the desired maximum length of the segment boundary specified by the user at the stage of forming an ordered set of discrete and predicate functions.
  • the present invention in its various embodiments can be implemented in the form of a method implemented on a computer, in the form of a system or computer-readable medium containing instructions for performing the aforementioned method.
  • the method of data segmentation includes the following steps:
  • the necessary segmentation parameters are determined.
  • the user generates an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters;
  • a typical example of a suitable predicate function is the calculation of the value “false / true” as the result equal to zero hashes modulo prime.
  • the properties of the selected combination of the hashing function and the reduction operation are modulo, while the size of the result of the hashing function and the numerical size of the module will determine the size of the set of initial values for which the result of the predicate function will be “true”.
  • suitable hashing functions the well-known MD5, RIPE-MD, SHA1, SHA256, etc. can be cited.
  • Another typical example is the use of a hash function followed by a comparison of the result. For example, generating the result “true” in case of equality of the lower 9 bits of the result of the function MD5 to 123.
  • the data may be separate files or streams of network traffic, but not limited to these examples.
  • a data source can be storage media, network devices, remote computer systems.
  • Hard drives (hdd), solid state drives (ssd), flash memory, CD / DVD / Blue-Ray readers can act as storage media.
  • the sliding window is shifted within the processed data, while the value of each function from the above set is determined on the data corresponding to the current position of the sliding window.
  • Receive processed data Set the sliding window to the beginning of the processed data. Successively move the sliding window forward from the current position. For this position, the contents of the window of each of the N selected functions are analyzed, taking into account their order, while the resulting result of each function is saved. The boundaries of the data segment are determined based on the order and values of the functions obtained in the previous
  • the selected order of functions simultaneously determines the priority of using their result.
  • Figure 1 can serve as an illustration of the operation of the invention.
  • the probability of distortion of the result by false-positive detection of coincidence as a result of hash collision should not exceed 2 ⁇ 32 .
  • the lower limit of the selection range W is determined by the parameters of the hash function during the formation of shingles. To comply with the conditions for the probability of hash collisions, taking into account the so-called “birthday paradox”, the size of the hash result must be at least 8 bytes (64 bits), which is also the lower limit for choosing the size of the sliding window W.
  • Skipping a match longer than 1000 bytes is possible when generating a segment larger than 1 000 bytes, or entering into synchronization of the segment boundaries of the analyzed data stream and a reference document of more than 1000 bytes.
  • the size of the sliding window W 10
  • SHA1 hash function
  • a number of primes as the module values: 593, 587, 577, 571, 277.
  • the listed numbers are selected analytically based on well-known knowledge of discrete mathematics, probability theory, and analysis of operations.
  • the average segment length will be about 400 bytes, and the rms value will be about 500.
  • the number of segments less than 10 bytes long will be about 1.6% in quantitative terms or about 0.001% of the data volume.
  • the data segmentation method includes the following steps:
  • the beginning of the data stream is certainly considered the boundary of the segment, i.e. the beginning of their first one.
  • the contents of the sliding window is analyzed first function F 1 - Signature Detector "ZIP”, "DOC” and "JPG". Suppose that in the first iteration, none of the signatures were detected.
  • the SHA1 hash is calculated from the current contents of the sliding window, and the result is used further in the other five functions.
  • the first and last position of the data stream or file is, of course, considered the boundary of the segment.
  • the window is sequentially shifted from the first position forward until the edge of the window coincides with the logical end
  • the size of the sliding window W is selected based on the requirements of the predicate functions that form the analyzer as described below.
  • a sliding window As such, they can be used, including, but not limited to:
  • detectors of the format and / or data structure based on static characteristics and optional heuristics. Such detectors generate a value of "true" when changing the nature of the data of the current content
  • Detectors that recognize the nature of the distribution of byte values in a sliding window. For example, including, but not limited to: duplicate byte values, uniform and / or stochastic distribution, a subset of byte values from a valid set of values, etc.
  • a hashing function (message digest) that produces a result with a distribution close to a uniform discrete one.
  • a hashing function (message digest) that produces a result with a distribution close to a uniform discrete one.
  • a hashing function (message digest) that produces a result with a distribution close to a uniform discrete one.
  • CRC cyclic checksum
  • Rabin-Karp rolling hash ring hashing cryptographic hash functions (GOST R 34.11-2012, MD5, RIPE-MD, SHA1, SHA256, etc. .d.), schemes
  • predicate As a result of the constructed predicate function, a statement (predicate) is accepted that the hashing result equal to zero modulo a selectable natural number, the selection criteria of which are described below, is equal to zero. In other words, the remainder is calculated by dividing the resulting hash value by
  • the contents of the sliding window is inversely proportional to the selected value as a result of well-known laws of discrete mathematics.
  • the use of primes can be similarly recommended for
  • the analyzer For each position of the sliding window, the analyzer returns the serial number of the very first function that issued
  • the selected order of functions simultaneously determines the priority of using their result.
  • next segment boundary is determined by iteratively viewing the data stream M positions forward.
  • next boundary is indicated according to the first element of the list, when its value corresponds to the first function of the analyzer, or if after the last boundary there was
  • the (first) list item is deleted. What will correspond to the search in the table described in the section "Implementation of the invention", while maintaining it up to date without reprocessing the data.
  • the data stream is sequentially segmented at the designated boundaries.
  • the size of the generated segments is determined by the characteristics and order of the predicate functions of the detectors in the analyzer.
  • hashing segments can be used as well-known hash functions (SHAl, MD5, ⁇ -MD), as well as any other satisfying the target application requirements.
  • hash functions SHAl, MD5, ⁇ -MD
  • Hashing is carried out simultaneously when moving the sliding window forward, but another sequence of actions can be used.
  • the access key is the hash value obtained by
  • the hash value obtained by segmentation is used as a key when searching the index of digital fingerprints.

Abstract

This invention relates to the field of computing and automated and information systems and to the automated analysis of electronic documents and data streams. The present method of segmenting data comprises the following steps: a user generates an ordered set of discrete and predicate functions on the basis of the characteristics thereof, taking into account the necessary segmentation parameters; data is received from at least one data source; a sliding window is shifted within the data undergoing processing and the value of each function from the above-mentioned set is determined for the data corresponding to the current position of the sliding window; the boundaries of a data segment are determined on the basis of the order and values of the functions obtained in the previous step.

Description

СПОСОБ СЕГМЕНТИРОВАНИЯ ДАННЫХ  DATA SEGMENTATION METHOD
ОБЛАСТЬ ТЕХНИКИ FIELD OF TECHNOLOGY
Изобретение относится к области вычислительной техники, автоматизированных и информационных систем, автоматизированному анализу электронных документов и информационных потоков.  The invention relates to the field of computer technology, automated and information systems, automated analysis of electronic documents and information flows.
Изобретение может быть использовано при разработке новых и совершенствовании существующих систем проверки электронных документов или потоков цифровых данных на наличие в них фрагментов или цитат из других (эталонных) документов или файлов, включая как полное повторение содержимого, так и многократное повторение отдельных фрагментов в произвольном порядке.  The invention can be used to develop new and improve existing systems for checking electronic documents or digital data streams for the presence of fragments or citations from other (reference) documents or files, including both full repetition of content and multiple repetition of individual fragments in random order.
УРОВЕНЬ ТЕХНИКИ BACKGROUND
В настоящее время, актуальна проблема эффективного выявления повторения (воспроизведения) цифровых документов (файлов) или их частей в составе других документов или информационных потоков.  Currently, the urgent problem of effective identification of the repetition (reproduction) of digital documents (files) or their parts as part of other documents or information flows.
При решении указанной задачи возникает проблема выявления совпадающих фрагментов между цифровыми документами, содержащими произвольную информацию.  When solving this problem, the problem arises of identifying matching fragments between digital documents containing arbitrary information.
Из уровня техники известно несколько целостных систем и способов, позволяющих выявлять совпадение фрагментов между цифровыми документами, содержащими произвольную информацию, но с одним или несколькими перечисленными ниже недостатками, которые ограничивают область применения данных решений:  Several integrated systems and methods are known from the prior art that make it possible to identify the coincidence of fragments between digital documents containing arbitrary information, but with one or more of the following disadvantages that limit the scope of these solutions:
• анализ только текстовой информации;  • analysis of textual information only;
• возможность обнаружения целиком только документов или их целостных структурных элементов, но не произвольных фрагментов;• the ability to detect entirely only documents or their integral structural elements, but not arbitrary fragments;
• формирование результата в виде приблизительной оценочной метрики, достоверность которой имеет нечеткий вероятностный характер; • formation of the result in the form of an approximate estimated metric, the reliability of which is of a fuzzy probabilistic nature;
• формирование результата в форме не позволяющей сделать вывод о точном объеме совпадений, о границах совпадающих фрагментов и визуально их обозначить;  • formation of the result in a form that does not allow to draw a conclusion about the exact volume of matches, about the boundaries of matching fragments and visually identify them;
• достоверное обнаружение только очень близких по содержанию документов, совпадающих с образцами на 90% и более;  • reliable detection of only documents very close in content that match the samples by 90% or more;
• крайне низкая вероятность обнаружения фрагментов при совпадении менее 50% от содержании документа;  • extremely low probability of detecting fragments with a match of less than 50% of the content of the document;
• существенное увеличение размера «цифрового отпечатка» при необходимости увеличить точность или достоверность результата;  • a significant increase in the size of the “digital fingerprint”, if necessary, to increase the accuracy or reliability of the result;
• ограниченная применимость для конфиденциальной информации из-за необходимости доступа в процессе анализа к эталонов в их исходном виде;  • limited applicability for confidential information due to the need for access in the process of analysis to the standards in their original form;
• ограниченная применимость для секретной информации по причине слабой криптографической стойкости формируемых «цифровых отпечатков» к восстановлению прообраза, либо существенное увеличения необходимых вычислительных ресурсов;  • limited applicability for classified information due to the weak cryptographic resistance of the generated "digital fingerprints" to restore the prototype, or a significant increase in the necessary computing resources;
• требуется вмешательство в передаваемую или сохраняемую информацию, например вставка специальных данных или генерация маркеров;  • intervention is required in the transmitted or stored information, for example, insertion of special data or generation of markers;
• различные изъяны в методах сегментирования, приводящие к искажению результатов на некоторых наборах данных.  • various flaws in the methods of segmentation, leading to distortion of the results on some data sets.
Из уровня техники известно решение US8117343, «Landmark chunking of landmarkless regions», опубликовано 14.02.2012, Hewlett-Packard Development Company, L.P. Описывают различные способы решения проблемы сегментирования неструктурированных данных. Однако может быть показано, что при относительном усложнении использованные подходы равноценны нарушению принципа локальности или использования комбинаций оценивающих функций. Поэтому описанные методы не дают качественного улучшения результата при поиске совпадающих фрагментах в произвольных данных. The prior art is known to the solution US8117343, "Landmark chunking of landmarkless regions", published 02/14/2012, Hewlett-Packard Development Company, LP Describes various ways to solve the problem of segmenting unstructured data. However, it can be shown that, with relative complexity, the approaches used are equivalent to violating the principle of locality or using combinations of evaluating functions. Therefore, the described methods do not provide a qualitative improvement in the result when searching for matching fragments in arbitrary data.
Из уровня техники известно решение US7733910, «Data segmentation using shift-varying predicate function fingerprinting», опубликовано 08.06.2010, Riverbed Technology, Inc.  The prior art discloses US7733910, “Data segmentation using shift-varying predicate function fingerprinting,” published on 06/08/2010, Riverbed Technology, Inc.
Раскрывает способ сегментации потока данных. Однако имеется упущенный дефект, заключающийся в том, что на результат предлагаемой предикатной функции влияет также расстояние от последней границы выделенного сегмента. В результате генерируемые границы сегментов зависят не только от содержания скользящего окна, но и от всех данных с предыдущей границы сегмента. Поэтому при внесении незначительных локальных изменений в начало потока данных может быть получена другая карта сегментов. Таким образом, описанному способу также присущи указанные выше недостатки, которые являются существенными при поиске конфиденциальной и прочей важной информации.  Discloses a method for segmenting a data stream. However, there is a missed defect, namely, that the distance from the last boundary of the selected segment also affects the result of the proposed predicate function. As a result, the generated segment boundaries depend not only on the contents of the sliding window, but also on all data from the previous segment boundary. Therefore, when minor local changes are made to the beginning of the data stream, another segment map can be obtained. Thus, the described method also has the aforementioned disadvantages, which are significant when searching for confidential and other important information.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ SUMMARY OF THE INVENTION
Задачей данного изобретения является получение универсального способа сегментирования, позволяющего эффективно выявлять совпадающие фрагменты между цифровыми документами, содержащими произвольную информацию с выработкой четкого результата в виде границ совпадений, без доступа к исходным эталонам, преодолевая этим существенные ограничения и недостатки известных решений, описанных выше. The objective of this invention is to obtain a universal method of segmentation, which allows you to effectively identify matching fragments between digital documents containing arbitrary information with a clear result in the form of boundaries of coincidences, without access to the original standards, overcoming the significant limitations and disadvantages of the known solutions described above.
Техническим результатом данного изобретения является повышение точности и эффективности выявления совпадающих фрагментов между цифровыми документами. The technical result of this invention is to improve the accuracy. and the effectiveness of identifying matching fragments between digital documents.
Согласно одному из вариантов реализации способ сегментирования данных, включает следующие шаги: пользователь формирует упорядоченный набор дискретных и предикатных функции на основе их характеристик, с учетом необходимых параметров сегментирования, получают обрабатываемые данные из, по крайней мере, одного источника данных, затем сдвигают скользящее окно в пределах обрабатываемых данных, при этом определяют значение каждой функций из вышеуказанного набора на данных, соответствующих текущему положению скользящего окна, после чего определяют границы сегмента данных, на основании порядка и значений функций, полученных на предыдущем шаге. According to one embodiment, the method of data segmentation includes the following steps: the user generates an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters, receive the processed data from at least one data source, then shift the sliding window to the limits of the processed data, while determining the value of each function from the above set of data corresponding to the current position of the sliding window, after which op divide the boundaries of the data segment based on the order and values of the functions obtained in the previous step.
В некоторых вариантах реализации определяют границы сегмента данных, на основании порядка и значений функций, полученных на предыдущем шаге не менее чем за последние М позиций, выбирая в качестве границы первое значение «истина» в соответствии направления движения вперед и порядка функций, где М - желательная максимальная длина границы сегмента, задаваемая пользователем на этапе формирования упорядоченного набора дискретных и предикатных функции. In some embodiments, the boundaries of the data segment are determined based on the order and values of the functions obtained in the previous step for at least the last M positions, choosing the first true value as the boundary in accordance with the direction of forward movement and the order of functions, where M is the desired the maximum length of the segment boundary set by the user at the stage of forming an ordered set of discrete and predicate functions.
В некоторых вариантах реализации предикатная функция представляет собой детектор сигнатур (ключевых и/или характерных последовательностей байтов) форматов данных, файлов и документов.  In some implementations, the predicate function is a detector of signatures (key and / or characteristic byte sequences) of data formats, files and documents.
В некоторых вариантах реализации предикатная функция представляет собой детектор формата и/или структуры данных на основе статических характеристик и опциональных эвристик.  In some implementations, the predicate function is a detector of the format and / or data structure based on static characteristics and optional heuristics.
В некоторых вариантах реализации предикатная функция представляет собой детектор, различающий границы между текстовой (значения и последовательности байт соответствующие печатным знакам) и не текстовой информацией. In some implementations, the predicate function is a detector that distinguishes between the text (values and byte sequences corresponding to printed characters) and non-text information.
В некоторых вариантах реализации предикатная функция представляет собой детектор, распознающий информацию на естественных языках по наличию характерных последовательностях байт (п-грамм).  In some implementations, the predicate function is a detector that recognizes information in natural languages by the presence of characteristic sequences of bytes (p-gram).
В некоторых вариантах реализации предикатная функция представляет собой детектор, распознающий смену кодировки (content-charset) для текстовой информации.  In some implementations, the predicate function is a detector that recognizes a change in encoding (content-charset) for text information.
В некоторых вариантах реализации предикатная функция представляет собой детектор, распознающий смену представления (content-encoding) для произвольной информации.  In some implementations, the predicate function is a detector that recognizes content-encoding for arbitrary information.
В некоторых вариантах реализации предикатная функция представляет собой детектор, распознающий характер распределения значений байтов в скользящем окне.  In some implementations, the predicate function is a detector that recognizes the nature of the distribution of byte values in a sliding window.
В некоторых вариантах реализации, данное изобретение может быть выполнено в виде устройства включающего: первый блок, выполненный с возможностью получения желательной максимальной длины границы сегмента М и формирования упорядоченного набора дискретных и предикатных функций на основе их характеристик, с учетом необходимых параметров сегментирования и возможностью передачи указанного набора во второй блок, выполненный с возможностью приемо-передачи обрабатываемых данных и сдвига скользящего окна в пределах получаемых данных с последующим определением значений каждой функций из вышеуказанного набора на данных, соответствующих текущему положению скользящего окна, при этом, второй блок выполнен с возможностью приемо- передачи полученных значений и порядка функций в третий блок, выполненный с возможностью определения границы сегмента данных, на основании полученного порядка и значений функций не менее чем за последние М позиций, при этом, в качестве границы выбирается первое значение «истина» в соответствии направления движения вперед скользящего окна и порядка функций. In some embodiments, the invention may be implemented as a device comprising: a first unit configured to obtain the desired maximum length of the boundary of the segment M and form an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters and the ability to transmit the specified dialing into the second block, configured to receive and transmit processed data and shift the sliding window within the received data from the last by determining the values of each function from the above set on the data corresponding to the current position of the sliding window, the second block is configured to receive and receive the received values and the order of functions in the third block, configured to determine the boundary of the data segment based on the received order and values of functions for at least the last M positions, and the first value “true” is selected as the boundary in accordance with the forward direction of the moving windows and order functions.
В некоторых вариантах реализации устройства, блоки соединяются последовательно.  In some embodiments of the device, the blocks are connected in series.
Данное устройство может быть реализовано в виде аппаратного модуля или виртуализованного устройства. Под виртуализацией будем понимать эмуляцию или имитацию данного устройства на компьютерной системе.  This device can be implemented as a hardware module or virtualized device. By virtualization we mean emulation or imitation of this device on a computer system.
В одном из вариантов реализации, изобретение может быть выполнено в виде системы сегментирования данных, включающей: In one embodiment, the invention can be implemented as a data segmentation system, including:
одно или более устройств обработки команд, одно или более устройств хранения данных, одну или более программ, где одна или более программ хранятся на одном или более устройстве хранения данных и исполняются на одном и более процессоре, причем одна или более программ включает следующие инструкции: пользователь формирует упорядоченный набор дискретных и предикатных функции на основе их характеристик, с учетом необходимых параметров сегментирования, затем получают обрабатываемые данные из, по крайней мере, одного источника данных, сдвигают скользящее окно в пределах обрабатываемых данных, при этом определяют значение каждой функций из вышеуказанного набора на данных, соответствующих текущему положению скользящего окна, потом определяют границы сегмента данных, на основании порядка и значений функций, полученных на предыдущем шаге. one or more command processing devices, one or more data storage devices, one or more programs, where one or more programs are stored on one or more data storage devices and executed on one or more processors, and one or more programs includes the following instructions: user forms an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters, then receive the processed data from at least one data source, shift t a sliding window within the processed data, in this case, the value of each function from the above set is determined on the data corresponding to the current position of the sliding window, then the boundaries of the data segment are determined based on the order and values of the functions obtained in the previous step.
В некоторых вариантах реализации системы, одна или более программ дополнительно содержат следующие инструкции: определяют границы сегмента данных, на основании порядка и значений функций, полученных на предыдущем шаге не менее чем за последние М позиций, выбирая в качестве границы первое значение «истина» в соответствии направления движения вперед и порядка функций, где М - желательная максимальная длина границы сегмента, задаваемая пользователем на этапе формирования упорядоченного набора дискретных и предикатных функции. ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ In some embodiments of the system, one or more programs additionally contain the following instructions: determine the boundaries of the data segment based on the order and values of the functions obtained in the previous step for at least the last M positions, choosing the first “true” value as the boundary in accordance directions of movement forward and the order of functions, where M is the desired maximum length of the segment boundary specified by the user at the stage of forming an ordered set of discrete and predicate functions. DETAILED DESCRIPTION OF THE INVENTION
Данное изобретение в различных своих вариантах осуществления может быть выполнено в виде способа, реализуемого на компьютере, в виде системы или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа. The present invention in its various embodiments can be implemented in the form of a method implemented on a computer, in the form of a system or computer-readable medium containing instructions for performing the aforementioned method.
Способ сегментирования данных, включает следующие шаги:  The method of data segmentation includes the following steps:
Определяют необходимые параметры сегментирования.  The necessary segmentation parameters are determined.
Обозначим желаемую максимальную длину сегмента как М, а размер скользящего окна как W. Выберем указанные параметры, исходя из необходимого качества анализа.  Let us designate the desired maximum segment length as M, and the size of the sliding window as W. Let us select the indicated parameters based on the required analysis quality.
Выбираемую величину М можно охарактеризовать как глубину просмотра данных «вперед». Её значение выбирается исходя из желаемой длины последовательности S, необходимой для синхронизации (совпадения) границ формируемых сегментов при совпадении анализируемых данных, согласно выражению S = М + W, где W - ранее выбранный размер скользящего окна.  The selected value of M can be characterized as the depth of viewing data "forward". Its value is selected based on the desired length of the sequence S necessary for synchronization (coincidence) of the boundaries of the formed segments when the analyzed data coincide, according to the expression S = M + W, where W is the previously selected size of the sliding window.
Пользователь формирует упорядоченный набор дискретных и предикатных функции на основе их характеристик, с учетом необходимых параметров сегментирования; The user generates an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters;
Выбирают (или конструируют) N взаимно не коррелирующих дискретных и предикатных функций (т.н. «детекторы») F ... FN, выполняющих оценку данных в скользящем окне и вырабатывающих значение «истина» для некоторого подмножества значений. Под взаимно не коррелирующими функциями будем подразумевать такие, результаты которых не коррелируют при одинаковых аргументах. Choose (or design) N mutually non-correlating discrete and predicate functions (the so-called "detectors") F ... F N that evaluate the data in a sliding window and generate the value "true" for a certain subset of values. By mutually non-correlating functions we mean those whose results do not correlate with the same arguments.
Характерным примером подходящей предикатной функции, а также иллюстрацией использования дискретных функций, может служить вычисление значения «ложь/истина» как равенства нулю результата хеширования по модулю простого числа. При этом свойства выбранной комбинацию хеширующей функции и операции приведения по модулю, при этом размер результата хеширующей функции и численный размер модуля будет определять размер множества исходных значений, для которых результат предикатной функции будет «истина». В качестве примера подходящих функции хеширования можно привести общеизвестные MD5, RIPE-MD, SHA1 , SHA256 и т.д. A typical example of a suitable predicate function, as well as an illustration of the use of discrete functions, is the calculation of the value “false / true” as the result equal to zero hashes modulo prime. In this case, the properties of the selected combination of the hashing function and the reduction operation are modulo, while the size of the result of the hashing function and the numerical size of the module will determine the size of the set of initial values for which the result of the predicate function will be “true”. As an example of suitable hashing functions, the well-known MD5, RIPE-MD, SHA1, SHA256, etc. can be cited.
Другим характерным примером может служить также использование хеширующей функции с последующим сравнением результата. Например, выработка результата «истина» в случае равенства младших 9 бит результата функции MD5 числу 123.  Another typical example is the use of a hash function followed by a comparison of the result. For example, generating the result “true” in case of equality of the lower 9 bits of the result of the function MD5 to 123.
Получают данные из, по крайней мере, одного источника данных; Receive data from at least one data source;
Данные могут представлять из себя отдельные файлы или потоки сетевого трафика, но не ограничиваясь указанными примерами.  The data may be separate files or streams of network traffic, but not limited to these examples.
В качестве источника данных могут выступать носители информации, сетевые устройства, удаленные компьютерные системы. В качестве носителей информации могут выступать, но не ограничиваясь, жесткие диски (hdd), твердотельные накопители (ssd), flash-память, устройства чтения CD/DVD/Blue-Ray.  As a data source can be storage media, network devices, remote computer systems. Hard drives (hdd), solid state drives (ssd), flash memory, CD / DVD / Blue-Ray readers can act as storage media.
Сдвигают скользящее окно в пределах обрабатываемых данных, при этом определяют значение каждой функций из вышеуказанного набора, на данных, соответствующих текущему положению скользящего окна. The sliding window is shifted within the processed data, while the value of each function from the above set is determined on the data corresponding to the current position of the sliding window.
Получают обрабатываемые данные. Устанавливают скользящее окно на начало обрабатываемых данных. Последовательно сдвигают скользящее окно вперед от текущей позиции. Для данной позиции анализируют содержимое окна каждой из N выбранных функций, с учетом их порядка, при этом сохраняют полученный результат каждой из функций. Определяют границы сегмента данных, на основании порядка и значений функций, полученных на предыдущем Receive processed data. Set the sliding window to the beginning of the processed data. Successively move the sliding window forward from the current position. For this position, the contents of the window of each of the N selected functions are analyzed, taking into account their order, while the resulting result of each function is saved. The boundaries of the data segment are determined based on the order and values of the functions obtained in the previous
Среди сохраненных значений функций не менее чем за последние М позиций, определяют порядковый номер самой первой функции, выдавшей положительный результат, либо значение «пусто» если таковых нет. Таким образом, выбранный порядок функций одновременно определяет приоритет использования их результата.  Among the stored values of the functions for at least the last M positions, determine the serial number of the very first function that produced a positive result, or the value is "empty" if there are none. Thus, the selected order of functions simultaneously determines the priority of using their result.
Если положительный результат найден, то соответствующая ему позиция и будет искомой границей.  If a positive result is found, then the corresponding position will be the desired boundary.
Определенные границы сегментов в дальнейшем используются для выявления совпадающих фрагментов между цифровыми документами.  Certain segment boundaries are subsequently used to identify matching fragments between digital documents.
Иллюстрацией работы изобретения может служить фиг.1. Figure 1 can serve as an illustration of the operation of the invention.
ПРИМЕР РЕАЛИЗАЦИИ EXAMPLE OF IMPLEMENTATION
Предположим, что необходимо выполнить сегментирование данных для задачи выявления в анализируемом последовательном потоке информации некоторых эталонных файлов произвольного формата, о которых известно, что они с большой вероятностью могут быть документами широко используемых форматов (ZIP, DOC, JPG) и/или включать в себя таковые.  Suppose that it is necessary to perform data segmentation for the task of identifying in a sequential information flow of analysis some reference files of an arbitrary format, which are known to be likely to be documents of widely used formats (ZIP, DOC, JPG) and / or include those .
В качестве исходных предпосылок примем: As initial prerequisites, we take:
Вероятность формирования сегментов длиной более 1000 байт не должна The probability of forming segments longer than 1000 bytes should not
1  one
превышать . to exceed.
г 5000  g 5000
Вероятность искажения результата ложноположительным обнаружением совпадения в результате хеш-коллизии не должна превышать величины 2~32. The probability of distortion of the result by false-positive detection of coincidence as a result of hash collision should not exceed 2 ~ 32 .
Выявление совпадений размером менее 10 байт не представляет практической ценности. Количество сегментов такого размера следует минимизировать, но без ущерба для остальных параметров. Для упрощения также ограничим количество ожидаемых форматов документов тремя, с условными сигнатурами "ZIP", "DOC" и "JPG". Matching less than 10 bytes is not practical. The number of segments of this size should be minimized, but without prejudice to other parameters. For simplicity, we will also limit the number of expected document formats to three, with conditional signatures "ZIP", "DOC" and "JPG".
Далее исходя из принятых условий аналитически выберем подходящие параметры W, М и N предикатных функций. Next, based on the accepted conditions, we analytically choose the appropriate parameters W, M, and N predicate functions.
Нижняя граница диапазона выбора W определяется параметрами функции хеширования при формировании шинглов. Для соблюдения условия по вероятности хеш-коллизии, с учетом так называемого «парадокса дней рождений», размер результата хеширования должен быть не менее 8 байт (64 бита), что одновременно является нижней границей для выбора размера скользящего окна W. The lower limit of the selection range W is determined by the parameters of the hash function during the formation of shingles. To comply with the conditions for the probability of hash collisions, taking into account the so-called “birthday paradox”, the size of the hash result must be at least 8 bytes (64 bits), which is also the lower limit for choosing the size of the sliding window W.
Пропуск совпадения длиной более 1000 байт возможен при генерации сегмента размером более 1 ООО байт, либо вхождение в синхронизацию границ сегментов анализируемого потока данных и эталонного документа более 1000 байт. Как было показано ранее длина последовательности байт, влияющих на синхронизацию, не превышает S = L + W, где W размер скользящего окна, а L > М длина сегмента в худшем случае. Skipping a match longer than 1000 bytes is possible when generating a segment larger than 1 000 bytes, or entering into synchronization of the segment boundaries of the analyzed data stream and a reference document of more than 1000 bytes. As shown earlier, the length of a sequence of bytes that affect synchronization does not exceed S = L + W, where W is the size of the sliding window, and L> M is the segment length in the worst case.
Исходя из принятых условий можно выбрать: размер скользящего окна W = 10, глубину просмотра вперед М = 1000— 10 = 990 и подобрать такой набор из N функций, чтобы вероятность случаев L > М была не более Based on the accepted conditions, one can choose: the size of the sliding window W = 10, the depth of forward viewing, M = 1000—10 = 990, and choose a set of N functions such that the probability of cases L> M is no more
В качестве первой, самой приоритетной функции F1 задействуем детектор сигнатур ZIP, DOC и JPG. Это гарантирует, что начало вложенного документа с одной из сигнатур совпадет с началом сегмента, что увеличит точность и практическую значимость результата. We use the ZIP, DOC, and JPG signature detector as the first, highest priority function F 1 . This ensures that the beginning of the attached document with one of the signatures coincides with the beginning of the segment, which will increase the accuracy and practical significance of the result.
В худшем случае, в скользящем окне не будут обнаружены сигнатуры ZIP, DOC и JPG. Поэтому следует подобрать еще несколько функций с такими вероятностями выработки результата «истина», чтобы для вероятности генерации сегмента длиной L > М, оцененной как Q(L) = ГШ-iCl Ρΰι, выполнялось условие Q(L) < -~^· In the worst case scenario, ZIP, DOC, and JPG signatures will not be detected in a sliding window. Therefore, it is necessary to select a few more functions with such probabilities of generating a “true” result so that for the probability of generating a segment of length L> M, estimated as Q (L) = GS-iCl - Ρΰ ι , the condition Q (L) <- ~ ^
Сконструируем остальные функции по предложенной ранее схеме, на основе хэш-функции, приведения по модулю и сравнения результата с нулем. We construct the remaining functions according to the previously proposed scheme, based on a hash function, modulo cast, and comparing the result with zero.
В качестве хэш-функции возьмем SHA1, а в качестве значений модулей ряд простых чисел: 593, 587, 577, 571, 277. Перечисленные числа подбираются аналитически исходя из общеизвестных знаний дискретной математики, теории вероятности и анализа операций. We take SHA1 as a hash function, and a number of primes as the module values: 593, 587, 577, 571, 277. The listed numbers are selected analytically based on well-known knowledge of discrete mathematics, probability theory, and analysis of operations.
Таким образом, мы получим еще пять функций F2 ... F6, для которых вероятность выработки значения «истина» составляет соответственно Р2 = 1/593, Р3 = 1/587, Р4 = 1/577, Р5 = 1/571, Р6 = 1/277. Thus, we get five more functions F 2 ... F 6 for which the probability of generating the value of "truth" is respectively P 2 = 1/593, P 3 = 1/587, P 4 = 1/577, P 5 = 1/571, P 6 = 1/277.
Обозначенные шесть функций F1 ... F6 образуют составной анализатор, при использовании которого рассчитываемая аналитически вероятность превышения размера сегмента в 1000 байт для М = 990 составит около 3,07е-05, даже при условии что Р1 = 0, т.е. если сигнатуры "ZIP", "DOC" или "JPG" не будут обнаружены первой функций. Средняя длина сегмента составит порядка 400 байт, а среднеквадратичное значение около 500. Количество сегментов длиной менее 10 байт составит около 1.6% в количественном отношении или около 0,001% от объема данных. The designated six functions F 1 ... F 6 form a composite analyzer, using which the analytically calculated probability of exceeding a segment size of 1000 bytes for M = 990 will be about 3.07e-05, even if P 1 = 0, i.e. . if the signatures "ZIP", "DOC" or "JPG" will not be detected first function. The average segment length will be about 400 bytes, and the rms value will be about 500. The number of segments less than 10 bytes long will be about 1.6% in quantitative terms or about 0.001% of the data volume.
Способ сегментирования данных включает следующие шаги: The data segmentation method includes the following steps:
Начало потока данных, безусловно, считается границей сегмента, т.е. началом первого их них. Установим указатель последней границы в первую позицию анализируемого документа. The beginning of the data stream is certainly considered the boundary of the segment, i.e. the beginning of their first one. Set the pointer of the last border to the first position of the analyzed document.
Установим указатель текущей позиции в первую позицию анализируемого документа и заполним скользящее окно данными. Организуется список возможных позиций границ сегментов, который приводится в изначальное пустое состояние. Set the current position indicator to the first position of the analyzed document and fill the sliding window with data. A list of possible positions of the boundaries of the segments is organized, which is brought back to the initial empty state.
Содержимое скользящего окна подвергается анализу первой функции F1 - детектору сигнатур "ZIP", "DOC" и "JPG". Предположим, что на первой итерации ни одна из сигнатур не обнаружена. The contents of the sliding window is analyzed first function F 1 - Signature Detector "ZIP", "DOC" and "JPG". Suppose that in the first iteration, none of the signatures were detected.
От текущего содержимого скользящего окна вычисляется хэш SHA1, а результат используется далее в остальных пяти функций. The SHA1 hash is calculated from the current contents of the sliding window, and the result is used further in the other five functions.
Как вычислительный эквивалент приведения по модулю, вычисляется остаток от деления результата SHA1 на каждое из пяти выбранных простых чисел. Если остаток от деления равен нулю, то в качестве результата соответствующей функции F2 ... F6 примем «истина», иначе «ложь». As the computational equivalent of the modulo cast, the remainder of dividing the result of SHA1 by each of the five selected primes is calculated. If the remainder of the division is zero, then as the result of the corresponding function F 2 ... F 6 we accept "true", otherwise "false".
Если одна из функций F1 ... F6 возвратит результат «истина», то текущую позицию занесем в конец списка возможных границ. При добавлении возможной границы будем одновременно сохранять порядковый номер функции выработавший соответствующий результат, а также удалять из списка все предыдущие возможные границы от функций с номерами больше чем у добавляемой. If one of the functions F 1 ... F 6 returns the result “true”, then we will put the current position at the end of the list of possible boundaries. When adding a possible border, we will simultaneously save the serial number of the function that generated the corresponding result, and also remove from the list all previous possible borders from functions with numbers greater than that of the added one.
Далее передвинем указатель текущей позиции и скользящее окно вперед на один байт. Next, we move the pointer to the current position and the sliding window forward by one byte.
Если список возможных границ не пуст и указатель последней границы сегмента отстоит от текущей позиции на М байт или более, то извлечем из начала списка возможных границ первый элемент. Сохраненную в нем позицию будем считать очередной границей сегмента. If the list of possible borders is not empty and the pointer of the last border of the segment is M or more bytes from the current position, then we will extract the first element from the beginning of the list of possible borders. The position stored in it will be considered the next segment boundary.
Иначе, если список возможных границ пуст или указатель последней границы сегмента отстоит от текущей позиции менее чем на М байт, то переходим к анализу содержимого скользящего окна и последующим действиям, описанным ранее. Otherwise, if the list of possible boundaries is empty or the pointer of the last segment boundary is less than M bytes from the current position, then we proceed to the analysis of the contents of the sliding window and the subsequent steps described earlier.
В качестве примера реализации, приведем полную схему использования данного способа (системы или устройства) сегментирования в контексте выявления совпадений в документе производного формата: As an example of implementation, we give a complete diagram of the use of this method (system or device) of segmentation in the context of identifying matches in a document of a derived format:
1 ) Все анализируемые данные подвергаются сегментированию усовершенствованным методом. 1) All analyzed data is segmented advanced method.
1.1) Первая и последняя позиция потока данных или файла, безусловно, считаются границей сегмента.  1.1) The first and last position of the data stream or file is, of course, considered the boundary of the segment.
1.2) Используется общеизвестный механизм скользящего окна:  1.2) The well-known sliding window mechanism is used:
1.2.1) Анализируемые данные просматриваются через условное  1.2.1) The analyzed data is viewed through a conditional
окно фиксированного размера W.  fixed window W.
1.2.2) При этом окно последовательно сдвигается от первой позиции вперед, пока край окна не совпадет с логическим концом  1.2.2) In this case, the window is sequentially shifted from the first position forward until the edge of the window coincides with the logical end
анализируемых данных.  analyzed data.
1.2.3) Содержимое скользящего окна анализируется на каждой  1.2.3) The contents of the sliding window are analyzed on each
итерации.  iterations.
1.2.4) Размер скользящего окна W выбирается исходя из требований предикатных функций, которые образуют анализатор как описано далее.  1.2.4) The size of the sliding window W is selected based on the requirements of the predicate functions that form the analyzer as described below.
1.3) Данные в скользящем окне оцениваются составным анализатором, сконструированным по следующим принципам:  1.3) Data in a sliding window is evaluated by a composite analyzer designed according to the following principles:
1.3.1) Исходя из целесообразности и желаемых качественных  1.3.1) Based on the feasibility and desired quality
показателей, подбирается упорядоченный набор из нескольких предикатных функций (детекторов). Каждая функция формируют булевой результат только на основании содержимого скользящего окна.  indicators, an ordered set of several predicate functions (detectors) is selected. Each function forms a Boolean result only based on the contents of the sliding window.
1.3.2) Упрощенно, каждую такую функцию можно назвать  1.3.2) Simplified, each such function can be called
«детектором», сигнализирующем о некотором ключевом  "Detector", signaling some key
вхождении или изменении характеристик содержимого  entering or changing content characteristics
скользящего окна. В качестве таковых могут быть использованы, включая, но не ограничиваясь:  a sliding window. As such, they can be used, including, but not limited to:
1.3.2.1) Опционально детекторы сигнатур (ключевых и/или  1.3.2.1) Optional signature detectors (key and / or
характерных последовательностей байтов) форматов данных, файлов и документов, которые могут быть включены в анализируемые документы, файлы и потоки данных, исходя из условий применения изобретения. Такие детекторы characteristic sequences of bytes) data formats, files and documents that can be included in the analyzed documents, files and data streams, based on conditions for applying the invention. Such detectors
вырабатывают значение «истина» при обнаружении любой из целевых сигнатур в содержимом скользящего окна.generate a value of “true” when any of the target signatures is detected in the contents of the sliding window.
.2.2) Опционально детекторы формата и/или структуры данных на основе статических характеристик и опциональных эвристик. Такие детекторы вырабатывают значение «истина» при смене характера данных текущего содержания .2.2) Optionally, detectors of the format and / or data structure based on static characteristics and optional heuristics. Such detectors generate a value of "true" when changing the nature of the data of the current content
скользящего окна относительно предыдущего. Способы анализа и точные критерии принятия решений для выработки результата определяются доступными методами и условиями применения изобретения. Включая, но не ограничиваясь: a sliding window relative to the previous one. The methods of analysis and the exact criteria for making decisions to produce a result are determined by the available methods and conditions of application of the invention. Including but not limited to:
1.3.2.2.1) Детекторы, различающие границы между текстовой (значения и последовательности байт соответствующие печатным знакам) и не текстовой информации.  1.3.2.2.1) Detectors that distinguish the boundaries between text (values and byte sequences corresponding to printed characters) and non-text information.
1.3.2.2.2) Детекторы, распознающие информацию на  1.3.2.2.2) Detectors that recognize information on
естественных языках по наличию характерных  natural languages by the presence of characteristic
последовательностях байт (п-грамм).  byte sequences (p-grams).
1.3.2.2.3) Детекторы, распознающие смену кодировки (content- charset) для текстовой информации.  1.3.2.2.3) Detectors that recognize encoding changes (content-charset) for text information.
1.3.2.2.4) Детекторы, распознающие смену представления  1.3.2.2.4) Detectors recognizing a change of view
(content-encoding) для произвольной информации.  (content-encoding) for arbitrary information.
1.3.2.2.5) Детекторы, распознающие характер распределения значений байтов в скользящем окне. Например, включая, но не ограничиваясь: повторяющиеся значения байтов, равномерное и/или стохастическое распределение, подмножество значений байтов из допустимого набора значений и т.д. 1.3.2.2.5) Detectors that recognize the nature of the distribution of byte values in a sliding window. For example, including, but not limited to: duplicate byte values, uniform and / or stochastic distribution, a subset of byte values from a valid set of values, etc.
.2.3) Предикатные функции, вырабатывающие результат.2.3) The predicate functions that produce the result
«истина» с прогнозируемой вероятностью. Включая, но не ограничиваясь конструируемыми из хеширующих функций следующим способом: “Truth” with predictable probability. Including, but not limited to constructing from hashing functions in the following way:
1.3.2.3.1) Содержимое скользящего окна обрабатывается  1.3.2.3.1) The contents of the sliding window are processed
хеширующей функцией (message digest), вырабатывающей результат с распределением близким к равномерному дискретному. Включая, но не ограничиваясь: вычисление циклической контрольной суммы (CRC), кольцевое хеширование Рабина-Карпа (Rabin-Karp rolling hash), криптографические хеш-функции (ГОСТ Р 34.11-2012, MD5, RIPE-MD, SHA1, SHA256, и т.д.), схемы  a hashing function (message digest) that produces a result with a distribution close to a uniform discrete one. Including, but not limited to: calculating a cyclic checksum (CRC), Rabin-Karp rolling hash ring hashing, cryptographic hash functions (GOST R 34.11-2012, MD5, RIPE-MD, SHA1, SHA256, etc. .d.), schemes
универсального хеширования, мультипликативной схема хеширования.  universal hashing; multiplicative hashing scheme.
1.3.2.3.2) В качестве результата конструируемой предикатной функции принимается утверждение (предикат) о равенство нулю результата хеширования, приведенного по модулю выбираемого натурального числа, критерии выбора которого описаны далее. Другими словами, вычисляется остаток от деления полученного хеш-значения на  1.3.2.3.2) As a result of the constructed predicate function, a statement (predicate) is accepted that the hashing result equal to zero modulo a selectable natural number, the selection criteria of which are described below, is equal to zero. In other words, the remainder is calculated by dividing the resulting hash value by
выбранное простое число. Если остаток от деления равен нулю, то значение конструируемой «истина», иначе «ложь». selected prime number. If the remainder of the division is zero, then the value of the constructed "truth", otherwise "false".
1.3.2.3.3) Натуральное число выбирается исходя из того, что вероятность результата «истина», вырабатываемого описанным выше способом, для произвольного 1.3.2.3.3) A natural number is chosen on the basis that the probability of the result is “true”, generated by the method described above, for an arbitrary
содержимого скользящего окна, обратно пропорционально выбираемому значению в следствии общеизвестных законов дискретной математике. Использование простых чисел может быть аналогично рекомендовано для  the contents of the sliding window is inversely proportional to the selected value as a result of well-known laws of discrete mathematics. The use of primes can be similarly recommended for
устранения взаимных корреляций при использовании нескольких функций, формируемых описанным способом..2.4) Дополнительно и опционально, прочие предикатные функции для формирования границ сегментов в ключевых и/или характерных местах, использование которых может быть полезным и/или рациональным исходя из целей и условий применения изобретения. Включая, но не elimination of cross-correlations when using several functions generated in the described way. 2.4) Additionally and optionally, other predicate functions for forming the boundaries of segments in key and / or characteristic places, the use of which may be useful and / or rational based on the objectives and conditions of application of the invention. Including but not
ограничиваясь: спецификой анализируемых данных,  limited to: the specifics of the data being analyzed,
требованиями к производительности, требованиями к объему используемой памяти, ограничениями на размер эталонного индекса, требованиями к точности анализа и результатов.  performance requirements, requirements for the amount of memory used, restrictions on the size of the reference index, requirements for the accuracy of analysis and results.
1.3.3) Для каждой позиции скользящего окна анализатор возвращает порядковый номер самой первой функции, выдавшей  1.3.3) For each position of the sliding window, the analyzer returns the serial number of the very first function that issued
положительный результат, либо значение «пусто» если таковых нет. Таким образом выбранный порядок функций одновременно определяет приоритет использования их результата.  a positive result, or the value is "empty" if there are none. Thus, the selected order of functions simultaneously determines the priority of using their result.
1.3.4) Конкретный порядок функций и их параметры, особенно  1.3.4) The specific order of functions and their parameters, especially
такие как натуральное число для приведения по модулю, выбираются исходя из целей и условий применения изобретения, а также требуемой точности результатов анализа в соответствии с аналитической моделью приведенной в разделе «Раскрытия изобретения». В качестве базового принципа может быть рекомендовано упорядочивание функций согласно вероятности выработки ими положительного результата, начиная от меньших значений. such as a natural number for modulo reduction, are selected based on the goals and conditions of application of the invention, as well as the required accuracy of the analysis results in accordance with the analytical model given in the section "Disclosures of the invention". As a basic principle, the ordering of functions according to the probability that they will produce a positive result, starting from lower values, can be recommended.
) Очередная граница сегмента определяется путем итеративного просмотра потока данных на М позиций вперед. ) The next segment boundary is determined by iteratively viewing the data stream M positions forward.
1.4.1) Выбираемую величину М можно охарактеризовать как  1.4.1) The selected value of M can be characterized as
глубину просмотра данных вперед. Её значение выбирается исходя из желаемой длины последовательности 5, необходимой для синхронизации (совпадения) границ формируемых сегментов при совпадении анализируемых данных, согласно выражению S = М + W, где W это ранее выбранный размер скользящего окна. 2015/183127 depth of data viewing ahead. Its value is selected based on the desired length of the sequence 5, necessary for synchronization (coincidence) of the boundaries of the formed segments when the analyzed data coincide, according to the expression S = M + W, where W is the previously selected size of the sliding window. 2015/183127
1.4.2) Организуется список потенциальных границ сегментов по направлению движения окна.  1.4.2) A list of potential segment boundaries in the direction of window movement is organized.
1.4.3) Для каждой позиции результаты анализатора отличные от  1.4.3) For each position, the analyzer results are different from
«пусто» добавляется в конец списка с сохранением номера функции. Что соответствует формированию таблицы, описанной в разделе «Осуществление изобретения».  "Empty" is added to the end of the list while maintaining the function number. Which corresponds to the formation of the table described in the section "Implementation of the invention."
1.4.4) При добавлении к списку результата анализатора на очередной итерации одновременно удаляются все предыдущие сохраненные результаты с большим номером.  1.4.4) When adding the analyzer result to the list at the next iteration, all previous saved results with a large number are simultaneously deleted.
1.4.5) Очередная граница обозначается согласно первому элементу списка, когда его значение соответствует первой функции анализатора, либо если после последней границы было  1.4.5) The next boundary is indicated according to the first element of the list, when its value corresponds to the first function of the analyzer, or if after the last boundary there was
проанализировано М позиций или более.  analyzed M positions or more.
1.4.6) При обозначении границы сегмента соответствующий  1.4.6) When designating a segment boundary, the corresponding
(первый) элемент списка удаляется. Что будет соответствовать поиску по таблице, описанной в разделе «Осуществление изобретения», одновременно с поддержанием её в актуальном состоянии без повторной обработки данных.  The (first) list item is deleted. What will correspond to the search in the table described in the section "Implementation of the invention", while maintaining it up to date without reprocessing the data.
1.5) Поток данных последовательно сегментируются по обозначенным границам.  1.5) The data stream is sequentially segmented at the designated boundaries.
1.5.1) Таким образом, размер формируемых сегментов определяется характеристиками и порядком предикатных функций детекторов в составе анализатора.  1.5.1) Thus, the size of the generated segments is determined by the characteristics and order of the predicate functions of the detectors in the analyzer.
1.5.2) Качественные показатели результатов анализа совпадений могут быть предсказаны аналитически, опираясь на  1.5.2) Qualitative indicators of the results of a coincidence analysis can be predicted analytically based on
общеизвестные знания дискретной математике и сведения, приведенные в разделе «Раскрытие изобретения». well-known knowledge of discrete mathematics and the information given in the section "Disclosure of the invention."
) Выделенные сегменты хешируются, результат дополняется длинной сегмента и его позицией в исходном потоке данных или документе.) The selected segments are hashed, the result is supplemented by a long segment and its position in the original data stream or document.
2.1) Для хеширования сегментов могут использоваться как общеизвестные хеш-функции (SHAl , MD5, ШМЕ-MD), так и любые другие удовлетворяющие целевым требованиям применения.2.1) For hashing segments can be used as well-known hash functions (SHAl, MD5, ШМЕ-MD), as well as any other satisfying the target application requirements.
2.2) Хеширование осуществляется одновременно при передвижении скользящего окна вперед, но может быть использована и другая последовательность действий. 2.2) Hashing is carried out simultaneously when moving the sliding window forward, but another sequence of actions can be used.
2.3) Результат хеширования формируется на границе сегментов, как  2.3) The result of the hashing is formed at the boundary of the segments, as
указано в пункте 1.4.  specified in paragraph 1.4.
3) Для эталонов или файлов формируются «цифровые отпечатки», из  3) For standards or files, “digital fingerprints” are formed, from
которых формируется общий индекс для эффективного поиска.  which forms a common index for effective search.
3.1) Результаты хеширования сегментов дополняется идентификатором эталона, получаемый в результате набор записей является  3.1) The results of the hashing of the segments is complemented by the identifier of the template, the resulting set of records is
«цифровым отпечатком» исходного документа.  "Digital fingerprint" of the source document.
3.2) Цифровые отпечатки объединяются в общий индекс, при этом  3.2) Digital fingerprints are combined into a common index, while
ключом доступа является хеш-значение, полученное при  the access key is the hash value obtained by
сегментировании.  segmentation.
3.3) Эталоны могут содержать повторяющиеся фрагменты и частично дублировать содержание друг друга. Поэтому одному ключу доступа могут соответствовать несколько записей.  3.3) Standards can contain repeating fragments and partially duplicate the contents of each other. Therefore, several entries can correspond to one access key.
4) При анализе данных производится поиск результата хеширования в  4) When analyzing the data, the hash result is searched in
индексе эталонов с агрегированием результатов:  index of standards with aggregation of results:
4.1) Хеш-значение, полученное при сегментировании используется в качестве ключа при поиске по индексу цифровых отпечатков. 4.1) The hash value obtained by segmentation is used as a key when searching the index of digital fingerprints.
4.2) В случае совпадения из индекса считываются все записи, 4.2) In case of a match, all entries are read from the index,
соответствующие ключевому хеш-значению.  matching the key hash value.
4.3) Информация о позиции обнаруженного совпадающего сегмента добавляется к результату.  4.3) Information about the position of the detected matching segment is added to the result.
Специалисту в данной области, очевидно, что конкретные варианты осуществления изобретения были описаны здесь в целях иллюстрации, допустимы различные модификации, не выходящие за рамки и сущности объема изобретения. It will be apparent to those skilled in the art that specific embodiments of the invention have been described herein for purposes of illustration, various modifications are permissible without departing from the scope and essence of the scope of the invention.

Claims

ФОРМУЛА ИЗОБРЕТЕНИЯ CLAIM
1. Способ сегментирования данных, включает следующие шаги:  1. The method of data segmentation includes the following steps:
• пользователь формирует упорядоченный набор дискретных и предикатных функции на основе их характеристик, с учетом необходимых параметров сегментирования;  • the user forms an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters;
• получают обрабатываемые данные из, по крайней мере, одного источника данных;  • receive processed data from at least one data source;
• сдвигают скользящее окно в пределах обрабатываемых данных, при этом определяют значение каждой функций из вышеуказанного набора на данных, соответствующих текущему положению скользящего окна;  • shift the sliding window within the processed data, while determining the value of each function from the above set on the data corresponding to the current position of the sliding window;
• определяют границы сегмента данных, на основании порядка и значений функций, полученных на предыдущем шаге.  • determine the boundaries of the data segment based on the order and values of the functions obtained in the previous step.
2. Способ по п.1, в котором определяют границы сегмента данных, на основании порядка и значений функций, полученных на предыдущем шаге не менее чем за последние М позиций, выбирая в качестве границы первое значение «истина» в соответствии направления движения вперед и порядка функций, где М - желательная максимальная длина границы сегмента, задаваемая пользователем на этапе формирования упорядоченного набора дискретных и предикатных функции.  2. The method according to claim 1, in which the boundaries of the data segment are determined based on the order and values of the functions obtained in the previous step for at least the last M positions, choosing the first value “true” as the boundary in accordance with the forward direction and order functions, where M is the desired maximum length of the segment boundary, set by the user at the stage of forming an ordered set of discrete and predicate functions.
3. Способ по п.1 или п.2, в котором первая и последняя позиция данных является границей сегмента.  3. The method according to claim 1 or claim 2, in which the first and last data position is the boundary of the segment.
4. Способ по п.1 или п.2, в котором упорядоченный набор дискретных и предикатных функций содержит функцию, вырабатывающую результат «истина» с прогнозируемой вероятностью.  4. The method according to claim 1 or claim 2, in which an ordered set of discrete and predicate functions contains a function that produces the result "true" with a predicted probability.
5. Способ по п.1 или п.2, в котором предикатная функция представляет собой детектор сигнатур (ключевых и/или характерных последовательностей байтов) форматов данных, файлов и документов. 5. The method according to claim 1 or claim 2, in which the predicate function is a signature detector (key and / or characteristic byte sequences) of data formats, files and documents.
6. Способ по п.1 или п.2, в котором предикатная функция представляет собой детектор формата и/или структуры данных на основе статических характеристик и опциональных эвристик. 6. The method according to claim 1 or claim 2, in which the predicate function is a detector of the format and / or data structure based on static characteristics and optional heuristics.
7. Способ по п.1 или п.2, в котором предикатная функция представляет собой детектор, различающий границы между текстовой (значения и последовательности байт соответствующие печатным знакам) и не текстовой информацией.  7. The method according to claim 1 or claim 2, in which the predicate function is a detector that distinguishes between the text (values and sequences of bytes corresponding to printed characters) and non-text information.
8. Способ по п.1 или п.2, в котором предикатная функция представляет собой детектор, распознающий информацию на естественных языках по наличию характерных последовательностях байт (п-грамм).  8. The method according to claim 1 or claim 2, in which the predicate function is a detector that recognizes information in natural languages by the presence of characteristic sequences of bytes (p-gram).
9. Способ по п.1 или п.2, в котором предикатная функция представляет собой детектор, распознающий смену кодировки (content-charset) для текстовой информации.  9. The method according to claim 1 or claim 2, in which the predicate function is a detector that recognizes a change in encoding (content-charset) for text information.
10. Способ по п.1 или п.2, в котором предикатная функция представляет собой детектор, распознающий смену представления (content-encoding) для произвольной информации.  10. The method according to claim 1 or claim 2, in which the predicate function is a detector that recognizes the change of representation (content-encoding) for arbitrary information.
11. В Способ по п.1 или п.2, в котором предикатная функция представляет собой детектор, распознающий характер распределения значений байтов в скользящем окне.  11. In the Method according to claim 1 or claim 2, in which the predicate function is a detector that recognizes the nature of the distribution of byte values in a sliding window.
12. Система сегментирования данных, включает: 12. The data segmentation system includes:
a. одно или более устройств обработки команд;  a. one or more command processing devices;
b. одно или более устройств хранения данных;  b. one or more storage devices;
c. одну или более программ,  c. one or more programs
где одна или более программ хранятся на одном или более устройстве хранения данных и исполняются на одном и более процессоре, причем одна или более программ включает следующие инструкции:  where one or more programs are stored on one or more data storage devices and executed on one or more processors, and one or more programs includes the following instructions:
• пользователь формирует упорядоченный набор дискретных и предикатных функции на основе их характеристик, с учетом необходимых параметров сегментирования; • the user forms an ordered set of discrete and predicate functions based on their characteristics, taking into account necessary segmentation parameters;
• получают обрабатываемые данные из, по крайней мере, одного источника данных;  • receive processed data from at least one data source;
• сдвигают скользящее окно в пределах обрабатываемых данных, при этом определяют значение каждой функций из вышеуказанного набора на данных, соответствующих текущему положению скользящего окна;  • shift the sliding window within the processed data, while determining the value of each function from the above set on the data corresponding to the current position of the sliding window;
• определяют границы сегмента данных, на основании порядка и значений функций, полученных на предыдущем шаге.  • determine the boundaries of the data segment based on the order and values of the functions obtained in the previous step.
13. Система по п.12, в которой одна или более программ дополнительно содержат следующие инструкции:  13. The system according to item 12, in which one or more programs additionally contain the following instructions:
а. определяют границы сегмента данных, на основании порядка и значений функций, полученных на предыдущем шаге не менее чем за последние М позиций, выбирая в качестве границы первое значение «истина» в соответствии направления движения вперед и порядка функций, где М - желательная максимальная длина границы сегмента, задаваемая пользователем на этапе формирования упорядоченного набора дискретных и предикатных функции.  but. determine the boundaries of the data segment, based on the order and values of the functions obtained in the previous step for at least the last M positions, choosing the first value “true” as the boundary in accordance with the direction of forward movement and the order of functions, where M is the desired maximum length of the segment boundary defined by the user at the stage of forming an ordered set of discrete and predicate functions.
Н.Устройство сегментирования данных, включающее: первый блок, выполненный с возможностью получения желательной максимальной длины границы сегмента М и формирования упорядоченного набора дискретных и предикатных функций на основе их характеристик, с учетом необходимых параметров сегментирования и возможностью передачи указанного набора во второй блок, выполненный с возможностью приемо-передачи обрабатываемых данных и сдвига скользящего окна в пределах получаемых данных с последующим определением значений каждой функций из вышеуказанного набора на данных, соответствующих текущему положению скользящего окна, при этом, второй блок выполнен с возможностью приемо-передачи полученных значений и порядка функций в третий блок, выполненный с возможностью определения границы сегмента данных, на основании полученного порядка и значений функций не менее чем за последние М позиций, при этом, в качестве границы выбирается первое значение «истина» в соответствии направления движения вперед скользящего окна и порядка функций. H. A data segmentation device, comprising: a first block configured to obtain a desired maximum length of the segment boundary M and to form an ordered set of discrete and predicate functions based on their characteristics, taking into account the necessary segmentation parameters, and the ability to transfer the specified set to a second block made with the possibility of receiving and transmitting processed data and shifting the sliding window within the received data with the subsequent determination of the values of each function from the above annogo set of data corresponding to the current position of the sliding window, wherein the second unit is arranged for receiving and transmitting the obtained values and the order of the functions in the third block, made with the possibility of determining the boundary of the data segment, based on the obtained order and the values of the functions for at least the last M positions, and the first value “true” is selected as the boundary in accordance with the forward direction of the moving windows and order functions.
15. Устройство по п.14, в котором блоки соединяются последовательно. 15. The device according to 14, in which the blocks are connected in series.
PCT/RU2014/000400 2014-05-30 2014-05-30 Method of segmenting data WO2015183127A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/RU2014/000400 WO2015183127A1 (en) 2014-05-30 2014-05-30 Method of segmenting data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2014/000400 WO2015183127A1 (en) 2014-05-30 2014-05-30 Method of segmenting data

Publications (1)

Publication Number Publication Date
WO2015183127A1 true WO2015183127A1 (en) 2015-12-03

Family

ID=54699336

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2014/000400 WO2015183127A1 (en) 2014-05-30 2014-05-30 Method of segmenting data

Country Status (1)

Country Link
WO (1) WO2015183127A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026397A (en) * 1996-05-22 2000-02-15 Electronic Data Systems Corporation Data analysis system and method
US20080159331A1 (en) * 2006-12-29 2008-07-03 Riverbed Technology, Inc. Data segmentation using shift-varying predicate function fingerprinting
US20100114980A1 (en) * 2008-10-28 2010-05-06 Mark David Lillibridge Landmark chunking of landmarkless regions
US20130066625A1 (en) * 2003-11-21 2013-03-14 Nuance Communications Austria Gmbh Text segmentation and label assignment with user interaction by means of topic specific language models and topic-specific label statistics

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026397A (en) * 1996-05-22 2000-02-15 Electronic Data Systems Corporation Data analysis system and method
US20130066625A1 (en) * 2003-11-21 2013-03-14 Nuance Communications Austria Gmbh Text segmentation and label assignment with user interaction by means of topic specific language models and topic-specific label statistics
US20080159331A1 (en) * 2006-12-29 2008-07-03 Riverbed Technology, Inc. Data segmentation using shift-varying predicate function fingerprinting
US20100114980A1 (en) * 2008-10-28 2010-05-06 Mark David Lillibridge Landmark chunking of landmarkless regions

Similar Documents

Publication Publication Date Title
US9122407B2 (en) Deduplication device and deduplication method
CN110162750A (en) Text similarity detection method, electronic equipment and computer readable storage medium
CN110750615B (en) Text repeatability judgment method and device, electronic equipment and storage medium
Laurenson Performance analysis of file carving tools
US20200125532A1 (en) Fingerprints for open source code governance
CN111159697A (en) Key detection method and device and electronic equipment
CN107085568A (en) A kind of text similarity method of discrimination and device
US11163948B2 (en) File fingerprint generation
WO2021121280A1 (en) Multi-purpose agent for endpoint scanning
Rowe Identifying forensically uninteresting files using a large corpus
CN113139096A (en) Video data set labeling method and device
TWI699663B (en) Segmentation method, segmentation system and non-transitory computer-readable medium
Oliver et al. Designing the elements of a fuzzy hashing scheme
CN116821903A (en) Detection rule determination and malicious binary file detection method, device and medium
WO2015183127A1 (en) Method of segmenting data
US20210357363A1 (en) File comparison method
CN107220249B (en) Classification-based full-text search
CN111159996B (en) Short text set similarity comparison method and system based on text fingerprint algorithm
CN110968649B (en) Method, apparatus and computer program product for managing data sets
CN108874753B (en) Method and device for searching response of subject post and computer equipment
CN111400342A (en) Database updating method, device, equipment and storage medium
CN113407375B (en) Database deleted data recovery method, device, equipment and storage medium
US20220365909A1 (en) Apparatus and method for detecting target file based on network packet analysis
CN108664900A (en) A kind of method and apparatus of the similarities and differences of writing for identification
CN112989793B (en) Article detection method and device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14893008

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14893008

Country of ref document: EP

Kind code of ref document: A1