CN104205089B - 流识别和过滤 - Google Patents

流识别和过滤 Download PDF

Info

Publication number
CN104205089B
CN104205089B CN201380011606.9A CN201380011606A CN104205089B CN 104205089 B CN104205089 B CN 104205089B CN 201380011606 A CN201380011606 A CN 201380011606A CN 104205089 B CN104205089 B CN 104205089B
Authority
CN
China
Prior art keywords
data flow
signature
synchronous point
block
synchronous
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN201380011606.9A
Other languages
English (en)
Other versions
CN104205089A (zh
Inventor
R·萨吉
N·梅约米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altnet Inc
Original Assignee
Global Documentation System Holdings Ltd
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 Global Documentation System Holdings Ltd filed Critical Global Documentation System Holdings Ltd
Publication of CN104205089A publication Critical patent/CN104205089A/zh
Application granted granted Critical
Publication of CN104205089B publication Critical patent/CN104205089B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种方法获得第一数据项的第一数据项签名,第一数据项签名包括第一数据项中的多个同步点与对应的多个块签名之间的关联。处理尝试在第二数据项中找到所述多个同步点中的一个;并且,如果找到这样的同步点,则通过将哈希函数应用于第二数据项中对应的比特块来确定第二数据项中的所述对应的比特块的块签名。所述处理查明来自第二数据项的所述同步点和所述对应的块签名是否对应于第一数据项签名中的同步点和块签名。如果预定数量的同步点和对应的块签名匹配,则第一和第二数据项被认为匹配。

Description

流识别和过滤
版权声明
本专利文档包含受版权保护的资料。版权所有人不反对美国专利商标局的文件中的本专利文档或任何相关资料的复制,但在其它方面保留任何所有的版权。
技术领域
本发明涉及流识别和过滤。
附图说明
当参照附图考虑以下描述和所附权利要求时,本发明的其它目的、特征和特性、以及结构的相关元件的功能和操作的方法、以及部件的结合和制造的经济性将变得更清楚,所有的附图形成本说明书的一部分。
图1(a)描绘数据流;
图1(b)描绘同步点和对应的比特块;
图1(c)描绘图1(A)的数据流的流签名;
图2(a)-2(d)描绘数据流的处理;
图3(a)-3(b)示出用于对多个流进行处理的结构;
图4(a)-4(b)描绘多个流的处理;
图5示出用于对流进行处理的示例性数据结构;
图6(a)-6(c)示出使用图5的数据结构处理的示例流;
图7示出典型的分组;
图8是计算机系统的示意图。
具体实施方式
背景和概述
检查存储在设备上或者在设备之间传输的数据以便试图确定该数据是否对应于其它已知的数据通常是有用的且期望的。例如,确定存储在设备上的数据是否对应于或者是其它数据的整个或部分副本可能是有用的或期望的。作为另一个示例,确定在两个设备之间发送的数据流是否对应于(或者是)其它数据(的整个或部分副本)可能是有用的或期望的。
描述
数据流(或流)包括比特序列。流中的比特序列可以表示某一类型的数据项(例如,电影或图像或音乐、数据库等)或者对某一类型的数据项进行编码。可以对流中的比特序列进行加密和/或压缩。本领域技术人员在阅读本描述时将认识并理解到,本发明不受底层比特序列所表示的内容限制。
如本文中所使用的,数据指的是任何任意的数据,而不管底层数据表示什么,也不管如何对底层数据进行格式化、编码或存储。
参照图1(a)-1(b),流100包括多个同步点(在图中该流被示出具有i个同步点,这些同步点被表示为SP1,SP2,SP3,…,SPi,其统称为SPj)。在该流中跟在每个同步点后面的是比特块(在图中第j个块被表示为Bj)。
如图1(b)中所示,第i个同步点(SPi)由k个比特(b0b1…bk)组成,并且第i个比特块(Bi)由j个比特(c0c1…cj)组成。
尽管第j个比特块在图中被示为紧跟在第j个同步点的后面,但是应当明白,第j个比特块可以与第j个同步点间隔某个已知量。
在目前优选的实现中,存在十六(16)个同步点,每个同步点由32个比特组成,并且每个比特块由256个字节组成。在另一实现中,存在十(10)个同步点,每个同步点由64个比特组成,并且每个比特块由256个字节组成。如本文中所使用的,流中的比特的数量被称为流的大小,同步点中的比特的数量被称为同步点的大小,并且比特块中的比特的数量被称为比特块的大小。本领域技术人员在阅读本描述时将认识并理解到,可以使用除以上示出的数量之外的不同的和/或其它的数量的同步点,同步点可以具有与以上示出的数量不同的大小,比特块可以具有与以上示出的数量不同的大小。
本领域技术人员在阅读本描述时将认识并理解到,同步点的数量在某些情况下可以被确定为比特流的大小的函数。
与每个比特块Bj对应的是通过将函数(h)应用于该比特块而确定的值Hj,以使得:
Hj=h(Bj)
值Hj在本文中也被称为第j个比特块的块签名。
函数h应当具有以下性质:对于任何两个任意的比特块Ba和Bb,如果Ba等于Bb,则h(Ba)=h(Bb)。
函数h的其它可期望性质包括:
(a)Bi中的小变化有可能导致h(Bi)的不同值;
(b)函数h相对简单并且快速地计算。
函数h可以是任何哈希函数。在一些实现中,可以使用诸如MD5或SHA-1等的消息摘要函数,尽管优选地可以使用更简单并且更轻量的函数。优选地,哈希函数生成32比特值。
本领域技术人员在阅读本描述时将认识并理解到,函数h不需要(并且可能将不会)对于每一个比特块生成唯一值。
每个流具有对应的流签名。现在参照图1(a)-1(c),具有i个同步点(SP1,SP2,SP3,…,SPi)的流的签名由i对<SPj,h(Bj)>组成,j=1…i。图1(c)中的示图示出了图1(a)的流100的签名102的逻辑表示。
参照图2(a)和图2(b)描述数据流的流签名的创建。如图2(a)中所示,初始设定200对流S进行处理以生成流签名202。参照图2(b)中的流程图更详细地描述初始设定200的处理。初始设定处理200将创建由一定数量(k)的对<SPj,h(Bj)>组成的流签名202,j=1…k,k为某个值。k的值优选地被预设(例如,10、15、20等),但是,如以上所提到的,还可以将k的值确定为流S的大小的函数。
在对流200进行处理中,初始设定202可以首先确定流S的大小(在204处)。该大小信息可以被用于例如确定该流所需的同步点的数量(k)和/或该流内的同步点的间隔。如当阅读本描述时将变得清楚的,对于任何给定的流(S),优选的是使同步点分布在整个流(S)上。
处理202然后(在206处)确定流S中的下一个(第i个)同步点(SPi)以及对应的比特块(Bi)。对于比特块Bi确定值H(Bi)(在208处),并且将对<SPj,H(Bj)>存储在流S的签名中(在210处)。在208处计算的函数“H”对应于以上所描述的函数h,并且优选为诸如MD5或SHA等的哈希函数的消息摘要。
处理202然后确定对于该流S是否已经确定了充分的<同步点,值>对(在212处)。如果是,则存储该流的签名(SS)(在214处),否则确定另一个同步点(在206处)。在对流(S)处理的结束时,生成(例如,图1(c)中所示的形式的)流签名,并且将该流签名与流S)相关联地存储。
如在阅读本描述时对于本领域技术人员将清楚的,两个流具有同样的流签名(使用本文中所描述的处理而确定)的事实不一定暗示这两个流是同样的。例如,第一个流可以由数百万个比特组成,而流签名可以仅由十个或二十个<同步点,比特块值>对组成,其中,同步点随机地分布在该流上,并且其中,每个同步点仅使用128个比特,并且每个比特块仅使用512个比特。在这种情况下,如果第二个流具有完全相同的<同步点,比特块值>对,则它可能对应于第一个流,但是它可能不对应于第一个流。然而,如果第二个流不具有与第一个流相同的<同步点,比特块值>对,则它不对应于第一个流。
发明人认识到,对于一些应用,确定数据流是否充分地对应于另一个已知数据流可能是足够的。他们认识到,在一些应用中,以某种程度的确定性确定两个流可能相等可能是足够的。这样的信息可以被用于触发流的更广泛的(而且可能更昂贵的)处理以确定对应或相等。
现在参照图2(c),在已确定并存储流S的签名(SS)之后,可以对任意的流进行处理以确定它是否充分地对应于流S。流S’被提供给比较处理216(以下参照图2(d)进行描述),比较处理216使用先前存储的流签名(SS)来确定输入流S’是否对应于流S。
比较处理216确定是否存在任何更多的流要处理(在218处)。如果不是,则没有找到匹配,因此这些流不匹配。如果存在更多的输入流要处理,则所述处理查找同步点(在220处)。应当意识到,所述处理将查找流签名SS中的同步点的任何一个(SP),并且不需要按顺序查找它们。如在阅读本描述时对于本领域技术人员将清楚的,这允许输入流以片(piece)或分组(packet)被处理,这些片或分组可以不按顺序到达比较处理216。
在已找到同步点(SP)之后,比较处理216然后寻找与该同步点相关联的对应的比特块(B)(在220处),并且确定该比特块B的签名H(B)。本领域技术人员在阅读本描述时将认识并理解到,比较处理216中所使用的函数H必须与用于产生流签名的函数相同。
接着(在226处),将对<SP,H(B)>与流签名SS中的同步点SP的对应的对进行比较。如果该对不匹配(在228处),则对流的其余部分(如果有的话)进行处理(在218处,…)。另一方面,如果(在228处)对<SP,H(B)>与流签名SS中的同步点SP的对应的对匹配,则(在230处)比较处理216确定是否已存在认为流匹配的充分的对匹配。对于“充分匹配”的测试(在230处)可以使用到目前为止流中匹配的数量的计数,并且可以使用该计数值来确定流签名的<同步点,块签名>对的百分比匹配。在一些优选的实现中,认为70%匹配(例如,十分之七匹配)是认为流匹配的充分匹配(在232处)。本领域技术人员在阅读本描述时将认识并理解到,所需的百分比匹配(高达并且包括100%)是比较处理所需的精度的函数。因为,如以上所解释的,当找到匹配(在232处)时,可以使用比较处理216来触发附加的(而且代价更高的)比较,所以本领域技术人员将知道并且理解如何权衡错误的肯定匹配(在232处)与充分匹配流的随后处理的代价。
到目前为止,我们已经描述了将输入流(S’)与单个先前处理的流(S)进行比较,并且与其进行可能匹配。在一些实施例中,可以将输入流与多于一个的先前处理的流进行比较。
图3(a)中的示图示出了多个(k个)流签名的逻辑组织300,k个流S1,…Sk中的每一个有一个流签名。可以如以上参照图2(a)-2(b)所描述的那样确定流签名中的每一个。
现在参照图3(a)-3(b)和图4(a)-4(b)描述将任意的输入流(S)与这k个流中的每一个进行比较的处理。与多个可能的流进行比较的一个流的比较处理可以在输入流中寻找多个流签名的同步点,并且它还可以寻找多于一个的签名的匹配<同步点,哈希值>对。总之,所述处理优选地跟踪它对于k个流(S1…Sk)中的每一个找到的匹配<同步点,哈希值>对的数量,并且宣告输入流S与这k个流中的第一个流之间的匹配为充分匹配(如以上所讨论的,基于对于充分性的某一预定阈值)。
参照图4(a)-4(b)中的流程图,如果存在更多的流S要处理(在400处),则处理继续(在402处)查找S中与流S1…Sk中的一个的同步点中的至少一个对应的同步点(SP)。在该流程图中,流S1…Sk被称为流集合,其被表示为S’。如果没有找到同步点(在402处),则处理继续(在400处)对输入流S的任何其余部分进行处理。如果(在402处)在S中找到与流S1…Sk(即,流集合S’)中的任何一个对应的同步点(SP),则处理继续(在404处)确定与所找到的同步点(SP)相关联的比特块B的对应的签名H(B)。
接着(在406处),将签名对<SP,H(B)>与S’中的所有流的与同步点SP相关联的签名进行比较(其中,SP是在S中找到的与流S1…Sk中的至少一个中的同步点中的至少一个对应的同步点);并且H(B)是与该同步点(SP)对应的比特块B的签名。再次参照图3(a),流S1…Sk中的每一个的流签名被存储并且对于所述处理是可用的,以使得可以检查<同步点,签名>对。
如果对于S’中的流的任何一个对于对<SP,H(B)>没有找到匹配签名对(在408处),则处理继续(在400处)对输入流S的任何其余部分进行处理。如果找到一个或多个匹配对<SP,H(B)>(在408处),则处理继续(在410处),对于S’中的所有匹配流的<SP,H(B)>对的计数。
一旦计数被更新(在410中),所述处理就确定(在412处)S’中的任何一个流(Sm)是否具有充分的匹配对。如果确定(在412处)S’中没有流具有充分的匹配对,则处理继续(在400处)对输入流S的任何其余部分进行处理。如果任何流Sm具有充分的匹配对,则所述处理完成(在414处),并且认为输入流S与具有充分的匹配对的流匹配。
应当意识到,以上所描述的处理可以导致输入流S与集合S’中的多于一个的流匹配。
在一些实现中,数据结构302(图3(b))为每个流签名维护一个检查列表(checklist),以使得每次<同步点,签名>对对于该流匹配时,所述处理可以划掉(或打勾)。该列表允许系统确定(例如,计数)对于该流的匹配对的数量。本领域技术人员在阅读本描述时将认识并理解到,检查列表可以以任何数量的方式实现,包括,例如,被实现为其中对应的<同步点,签名>对中的每一个为一个比特的位图。在处理输入流的开始时,检查列表中的所有比特都被设置为0,并且当找到匹配时,对应的比特值被设置为1。用于流Sj的位图检查列表中的比特的和于是将给出对于该流Sj的输入流中的匹配对的数量。如将意识到的,可以使用不同的和/或其它的方案来跟踪匹配数量。
本领域技术人员在阅读本描述时将认识并理解到,相对于两个流的术语“匹配”(或“不匹配”)的使用这里不一定暗示它们是同样的。如果对于两个流的充分数量的<同步点,签名>对相同,则这两个流匹配。
如先前所讨论的,本领域技术人员在阅读本描述时将认识并理解到,可以使用充分性的不同度量来确定两个流是否具有充分匹配。在一些实施例中,70%匹配将被认为是充分的,而在其它实施例中,可能需要更高的匹配(高达100%)。本领域技术人员在阅读本描述时将认识并理解到,如何基于例如处理的应用以及对于错误的肯定匹配的容限来选择匹配充分性的度量。如早先所提到的,在一些应用中,一旦通过这里所描述的处理找到两个流匹配,就可以使用进一步的测试来确定这些流是否匹配。
数据结构和实现
本领域技术人员在阅读本描述时将认识并理解到,可以应用各种优化来实现匹配处理。数据结构优选地应当是:
·可扩展的:应当初始处理数百个到数百万个条目,如果需要,具有增长的选择。
·存储器高效的:应当使用尽可能少的存储器。
·搜索高效的:对于给定模式的搜索应当不超过O(n)。
参照图5描述用于流匹配处理的实现的示例性数据结构。对于该示例,假定每个同步点是六至八个字节的序列,并且每个指纹是两字节长的值。附加的(可选的)数据也可以被存储在所述数据结构中。参照图5,所述数据结构(被称为同步指纹数据结构(SFDS))包括一组数组:
row1—256比特长的数组,其中,每个比特对应于ASCII代码(可以出现在同步点中的代码)
row2—2562比特长的数组,其中,256个比特与row1中的比特的每一个相关
row3—2563比特长的数组,其中,256个比特与row3中的比特的每一个相关
row4—与row3中的特定条目对应的树的列表
在初始化处理中,将同步点(6-8个字节的序列)和指纹(2字节长的哈希值,其具有附加的可选数据集)的对如下存储在数据结构中:
1.同步的第1个字节将设置row1中的相关比特(如果它还未被设置)。
2.同步的第2个字节将设置与在row1中设置的比特相关的row2的256个比特中的相关比特(如果它还未被设置)。
3.同步的第3个字节将设置与在row2中设置的比特相关的row3的256个比特中的相关比特(如果它还未被设置)。
4.将同步字节的剩余部分存储在与在步骤3处设置的比特对应的树中。(如果树尚不存在,则将创建该树。)
5.将指纹和任何附加的数据连接到来自以上步骤4的树的相关叶子。
示例
以下示例示出以上(在图5中)所描述的示例性数据结构的使用。现在参照图6(a)-6(c)中的图,考虑具有同步点SP1=“2,254,1,A,A,C”(该模式在这里以ASCII示出)、具与对应的指纹值0x23a9的流。将意识到,这意味着与同步点SP1相关联的比特块的哈希为0x23a9。为了该示例,假定该流具有流id 1000和同步索引5。
可以如下将该对<“2,254,1,A,A,C”,0x23a9>添加到数据结构:
1.同步点中的第1个字符是“2”,所以将row1中的比特2设置为1。
2.同步点中的第2个字符为254,所以将与row1的比特2对应的row2的256个比特中的比特254设置为1。也就是说,将row2[2][254]设置为1。
3.同步点中的第3个字符为1,所以设置与在步骤2中设置的比特对应的row3的256个比特中的第1比特。也就是说,将row3[2,254][1]设置为1。
4.假定在步骤3中设置的比特已经具有与它对应的树,并且该树已经具有'A'作为第1个字符,则不对'A'(同步点中的第4个字符)进行处理。
5.同步点中的第5个字符也为'A'—将它添加到树作为第2个字母。
6.同步点中的第6个字符为“C”,所以将它添加到树作为第3个字母,并且在它下面创建新的空的叶子。
7.将指纹值(0x23a9)和附加的数据(流id 1000和同步索引5)存储在记录中,并且将它与在步骤6中创建的叶子相关联。
一旦数据结构被设定(如上所述),就可以例如如这里参照图6(a)-6(c)描述的那样处理输入流。匹配处理使用两个辅助的数据结构,即,匹配同步列表(MSL)数据结构(图6(b))和匹配签名矢量列表(MSLoV)数据结构(图6(c))。
匹配同步列表(MSL)结构是具有多达n个条目的列表(其中,n是同步的长度)。在该示例中,同步长度为8,并且MSL具有8个条目。该列表保存正被处理的同步的地址(SFDS,图5)。矢量的条目i保存头i个字节与SFDS中的同步匹配且其第(i+1)个字节还未被比较的同步的地址。值-1代表在该长度中“没有匹配”。
匹配签名矢量列表(MSLoV)结构是矢量列表。MSLoV列表中的每个矢量保存与给定流的同步匹配的同步和该流的流id的列表。矢量的第j个条目保存找到的与该流的同步匹配的第j个同步的同步索引(从SFDS获取)。
使用这些数据结构的搜索流程如下:
1.每次新的分组被读取时,逐个字节地扫描该分组中的所有字节。每个字节与SFDS的row1中的字节进行比较。如果存在匹配,则将MSL的条目1设置为与SFDS的row1中的相关条目相关的SFDS的row2的部分。
2.对跟在具有匹配的字节后面的字节进行数次比较。假定前一字节是匹配中的第i个,则将对当前的字节检查i次(检查按以下描述的逆序进行。也就是说,首先,进行步骤e中的检查,然后进行d中的检查,然后…,最后一次是在步骤a中描述的检查):
a.作为匹配中的第1(如步骤1中所描述的)
b.作为以MSL的条目1指向的部分同步开始的匹配中的第2字节—对照MSL的条目1指向的SFDS的row2的相关部分对该匹配进行检查。如果找到匹配,则将条目1设置为“-1”,并且利用到目前为止找到的部分匹配的地址(其是SFDS的row2中的相关条目)来更新条目2。
c.作为以MSL的条目2指向的部分同步开始的匹配中的第3字节—对照MSL的条目1指向的SFDS的row3的相关部分对该匹配进行检查。如果找到匹配,则将条目2设置为“-1”,并且利用到目前为止找到的部分匹配的地址(其是SFDS的row2中的相关条目)来更新条目3。
d....
e.作为以MSL的条目i-1指向的部分同步开始的匹配中的第i字节—对照MSL的条目i-1指向的SFDS的相关部分对该匹配进行检查。如果找到匹配,则将条目i-1设置为“-1”,并且利用到目前为止找到的部分匹配的地址(其是SFDS中的相关条目)来更新条目i。
3.每次找到完整同步(也就是说,步骤2中的i等于完整同步的长度,并且步骤2.e成功)时,计算指纹。计算的指纹与MSL的最后一个条目中的SFDF部分指向的SFDF的树叶所指向的指纹进行比较。如果找到匹配指纹,则获取其流Id和同步索引,并且更新MSLoV:
a.如果MSLoV对于该流Id不具有矢量,则创建一个新矢量,并将该新矢量添加到MSLoV的开头。该新矢量的流Id被设置为从SFDS获取的流Id。该新矢量的条目1被设置为从SFDS获取的同步索引。
b.如果MSLoV对于该流Id已经具有矢量,则将其第1个空条目设置为从SFDS获取的同步索引。
c.注意,如果匹配同步具有MSLoV中的数个叶子,则分别对这些叶子中的每一个进行以上步骤a/b。
4.一旦MSLoV矢量中的索引的数量超过给定的量(例如,十分之八),则定义输入流与其id根据该矢量的流Id而存储的流之间的匹配。
5.注意,对于同步,仅搜索具有预定义长度的流的部分。如果搜索超过识别匹配流的该部分,则假定为未知流,并且对MSL和MSLoV二者进行清除。
结束示例
本领域技术人员在阅读本描述时将认识并理解到,可以使用不同的和/或其它的数据结构来实现这里描述的处理。应当意识到,对于所使用的数据结构,一些效率是优选的。作为目标,数据结构应当存储多达1百万个同步点(每个6-8个字节)与和同步模式中的每一个相关的指纹。如所指出的,数据结构优选地提前离线创建(它将被准备用于初始数据集,并且然后每当需要时被递增地更新),而搜索本身将实时地进行。
通过使用以上示例(图6(a)-6(c))中描述的数据结构,对于一百万个同步条目:
·头3个字节将被添加到3行,每行256个条目(28的3次等于224,等于1600万个条目)。后面的字节将被唯一地添加到每个前缀的最后一行(小于1%将具有相同的前缀,并且列表结构将是足够高效的,如果不是,则可以对新添加的流考虑不同的同步模式)。
·添加新同步被离线进行,并且它为同步长度的阶(order)。
·搜索数据结构中的同步可以实时地进行,并且为同步长度的阶O(1)。
分组化(packetize)的数据流
在一些情况下,输入数据流可以是以分组化的数据的形式。例如,如果比较处理在诸如路由器的设备中发生,则这可以出现。在这样的情况下,执行处理的设备可能需要缓冲来自多于一个的分组的有效载荷数据,以便执行处理。
众所周知,在基于分组的网络(诸如TCP/IP网络,例如,因特网)中,要从一个位置发送到另一个位置的数据被分组化(分割成多个分组)。参照图7,典型的分组包括地址信息和有效载荷。有效载荷包括要被传输的数据,地址信息包括允许网络将分组路由到其目的地的信息。本领域技术人员在阅读本描述时将认识并理解到,可以使用许多形式的分组化,并且分组的形式和类型不限于本发明。另外,应当意识到,一些网络可以使用协议的多个层级,以使得有效载荷本身可以是包括其它地址信息的分组。不管所使用的协议如何,本领域技术人员都将知道如何从特定的分组提取与数据项对应的数据。
如果预先知道分组化的类型,则优选的是选择同步点,以使得每个同步点适合放入单个分组的有效载荷内。然而,由于这也许是不可能的,所以可能有必要获得并且缓冲多个顺序分组的有效载荷,以便执行上述处理(查找同步点,并然后对其对应的比特块进行处理)。
本领域技术人员在阅读本描述时将认识并理解到,与当前使用的方法相比,所描述的处理和系统支持两个内容流之间的快得多的并且更高效方式的比较。另外,本文中所描述的方法可以处理加密内容。
计算
实现这样的方法的程序(以及其它类型的数据)可以以许多方式使用各种介质(例如,计算机可读介质)传输和存储。可以使用硬连线电路或定制硬件代替可以实现各种实施例的处理的软件指令中的一些或全部、或者与这些软件指令中的一些或全部结合。因此,可以使用硬件和软件的各种结合,而不是仅使用软件。
图8是其上可以实现并且执行本公开的实施例的计算机系统800的示意图。
根据本示例,计算机系统800包括总线801(即,互连)、至少一个处理器802、至少一个通信端口803、主存储器804、可移动存储介质805、只读存储器806、以及大容量储存器807。
处理器802可以是任何已知的处理器,诸如,但不限于, 处理器、处理器、或处理器线(lines)等。通信端口903可以是以下端口中的任何一个:与基于调制解调器的拨号连接一起使用的RS-232端口、10/100以太网端口、使用铜或光纤的吉比特端口、或USB端口等。通信端口803可以根据网络(诸如局域网(LAN)、广域网(WAN)、CDN、或计算机系统800连接的任何网络)而选择。计算机系统800可以经由输入/输出(I/O)端口809与外围设备(例如,显示屏幕830、输入设备816)通信。
主存储器804可以是随机存取存储器(RAM)、或本领域中公知的其它动态存储设备。只读存储器806可以是用于存储静态信息(诸如用于处理器802的指令)的任何静态存储设备(诸如可编程只读存储器(PROM)芯片)。大容量储存器807可以被用于存储信息和指令。例如,可以使用硬盘(诸如小型计算机串行接口(SCSI)驱动器族)、光盘、磁盘阵列(诸如独立磁盘冗余阵列(RAID),诸如RAID驱动器族)、或任何其它大容量存储设备。
总线801将处理器802与其它存储器、储存器和通信块通信地耦合。根据所使用的存储设备等,总线801可以是PCI/PCI-X、SCSI、基于通用串行总线(USB)的系统总线(或其它)。可移动存储介质805可以是任何类型的外部硬盘驱动器、软盘驱动器、Zip驱动器、紧凑盘-只读存储器(CD-ROM)、紧凑盘-可重写(CD-RW)、数字视频盘-只读存储器(DVD-ROM)等。
本文中的实施例可以被提供作为计算机程序产品,该计算机程序产品可以包括其上存储指令的机器可读介质,所述指令可以被用于对计算机(或其它电子设备)编程以执行处理。如本文中所使用的,术语“机器可读介质”指的是任何介质、多个相同介质、或不同介质的结合,这些介质参与提供可以被计算机、处理器或类似设备读取的数据(例如,指令、数据结构)。这样的介质可以采取许多形式,包括但不限于,非易失性介质、易失性介质、以及传输介质。非易失性介质包括,例如,光盘或磁盘以及其它持久存储器。易失性介质包括通常构成计算机的主存储器的动态随机存取存储器。传输介质包括同轴电缆、铜线和光纤,其包括包含耦合到处理器的系统总线的线。传输介质可以包括或传送声波、光波以及电磁发射,诸如射频(RF)和红外(IR)数据通信期间产生的那些。
机器可读介质可以包括,但不限于,软盘、光盘、CD-ROM、磁光盘、ROM、RAM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光学卡、闪存、或适合于存储电指令的其它类型的介质/机器可读介质。而且,本文中的实施例还可以被作为计算机程序产品下载,其中,所述程序可以经由通信链路(例如,调制解调器或网络连接)通过载波或其它传播介质中所包含的数据信号从远程计算机传递到请求计算机。
在将数据(例如,指令序列)传载到处理器中可以涉及各种形式的计算机可读介质。例如,数据可以(i)从RAM递送到处理器;(ii)通过无线传输介质传载;(iii)根据大量的格式、标准或协议进行格式化和/或传输;和/或(iv)以本领域中众所周知的各种方式中的任何一种进行加密。
计算机可读介质可以(以任何适当的格式)存储适于执行方法的那些程序元素。
如所示的,主存储器804被编码有支持本文中所讨论的功能性的应用850-1(应用850-1可以是例如初始设定200或比较应用216)。应用850-1(和/或本文中描述的其它资源)可以体现为支持根据本文中描述的不同实施例的处理功能性的软件代码,诸如数据和/或逻辑指令(例如,存储在存储器中或另一计算机可读存储介质(诸如盘)上的代码)。
在一个实施例的操作期间,处理器802经由总线801的使用访问主存储器804,以便启动、运行、执行、解释或以其它方式执行应用850-1的逻辑指令。应用850-1的执行生成处理850-2中的处理功能性。换句话讲,处理950-2表示在计算机系统800中的处理器802内或上执行的应用850-1的一个或多个部分。
应当注意,除了执行本文中所讨论的操作的处理850-2之外,本文中的其它实施例包括应用850-1本身(即,未执行的或非执行的逻辑指令和/或数据)。应用850-1可以被存储在计算机可读介质(例如,储存库)(诸如盘、硬盘)上或光学介质中。根据其它实施例,应用850-1还可以被存储在存储器类型系统中,诸如固件、只读存储器(ROM)中,或者如该示例中那样,作为主存储器804内的(例如,随机存取存储器或RAM内的)可执行代码。例如,应用850-1还可以被存储在可移动存储介质805、只读存储器806、和/或大容量存储设备807中。
以上参照图2(a)-2(d)和图4(a)-4(b)讨论了计算机系统800支持的示例功能性,更具体地,与应用850-1相关联的功能性。
本领域技术人员将理解,计算机系统800可以包括其它处理和/或软件和硬件组件,诸如控制硬件资源的分配和使用的操作系统。
如本文中所讨论的,本发明的实施例包括各种步骤或操作。各个这些步骤可以由硬件组件执行,或者可以包含在机器可执行指令中,这些指令可以被用于使通用或专用处理器被编程有执行操作的指令。可替代地,步骤可以由硬件、软件和/或固件的结合执行。术语“模块”指的是自包含功能组件,其可以包括硬件、软件、固件或它们的任何结合。
本领域普通技术人员在阅读本描述时将容易意识并理解到,装置的实施例可以包括可操作为执行所描述的处理中的一些(而不必是全部)的计算机/计算设备。
存储程序或数据结构的计算机可读介质的实施例包括存储程序的计算机可读介质,该程序在被执行时可以使处理器执行所描述的处理中的一些(而不必是全部)。
在本文中描述处理的情况下,本领域技术人员将意识到,该处理可以在没有任何用户干预的情况下进行操作。在另一实施例中,该处理包括一些人类干预(例如,步骤由人执行或者通过人的帮助执行)。
应当意识到,权利要求中的词“第一”和“第二”被用于区分或识别,而非表示顺序或数字限制。类似地,字母或数字标记(诸如“(a)”、“(b)”等)的使用被用于帮助区分和/或识别,而非表示任何顺序或数字限制或排序。
尽管已经结合目前认为是最实用且优选的实施例的实施例对本发明进行了描述,但要理解,本发明不限于所公开的实施例,而是相反,旨在涵盖包括在所附权利要求的精神和范围内的各种修改和等同布置。

Claims (19)

1.一种用于数据流的由硬件结合软件实现的计算机实现的方法,所述方法包括:
确定数据流中的多个同步点,所述数据流由任意的比特序列组成,并且每个同步点由所述数据流中的比特序列组成;
对于所述多个同步点中的每一个,确定所述流中对应的比特块,其中,对于多个比特块,第k个比特块由比所述数据流中的同步点和下一个同步点之间的所有比特少的比特组成;
对于每个比特块,通过将哈希函数或消息摘要函数应用于所述比特块来确定对应的块签名;
通过将所述多个同步点中的每一个与所述对应的比特块的对应的块签名相关联来形成数据流签名,其中,所述关联形成对应的同步点和块签名对的有序序列,其中,所述数据流签名基于比所述数据流中的所有比特少的比特。
2.根据权利要求1所述的方法,其中,每个特定的同步点的对应的比特块在所述数据流中与所述特定的同步点直接相邻。
3.根据权利要求1或2所述的方法,其中,所述哈希函数从包括以下函数的函数中选择:SHA和MD5。
4.根据权利要求1或2所述的方法,其中,每个同步点由32个比特组成。
5.根据权利要求1或2所述的方法,其中,每个比特块由256个字节组成。
6.一种用于数据流的设备,所述设备包括用于实现权利要求1-5中的任何一项的方法的硬件和软件。
7.一种用于数据流的由硬件结合软件实现的计算机实现的方法,所述方法包括:
(A)获得第一数据流的第一数据流签名,所述第一数据流签名包括所述第一数据流中的多个同步点与对应的多个块签名之间的关联,其中,所述关联包括对应的同步点和块签名对的有序序列,其中,每个所述块签名使用比两个连续的同步点之间的所有比特少的比特确定,其中,所述数据流签名基于比所述数据流中的所有比特少的比特;
(B)尝试在第二数据流中寻找所述多个同步点中的同步点;以及
(C)如果在所述第二数据流中找到所述多个同步点中的特定的同步点,则:
(C)(1)确定所述第二数据流中与所述特定的同步点对应的比特块的块签名,其中,所述块签名通过将哈希函数或消息摘要函数应用于所述第二数据流中与所述特定的同步点对应的比特块来确定;和
(C)(2)查明来自所述第二数据流的所述特定的同步点和所述对应的块签名是否对应于所述第一数据流签名中的同步点和块签名对;以及
(C)(3)当来自所述第二数据流的所述特定的同步点和所述对应的块签名对应于所述第一数据流签名中的同步点和块签名对时,维护指示该对应的计数信息;
(D)在所述第二数据流中的至少一些仍未被处理时,重复步骤(B)和(C),直到来自所述第二数据流的预定数量的同步点和对应的块签名与所述第一数据流签名中的同步点和对应的块签名匹配为止;
(E)当来自所述第二数据流的所述预定数量的同步点和对应的块签名与所述第一数据流签名中的同步点和对应的块签名匹配时,指示所述第一数据流与所述第二数据流之间匹配。
8.根据权利要求7所述的方法,其中,对于所述第二数据流的多个不同部分,并行地重复步骤(B)和(C)。
9.根据权利要求7或8所述的方法,还包括:
(F)在(E)中所确定的所述第一数据流与所述第二数据流之间匹配的情况下,选择性地拒绝对所述第二数据流的访问。
10.根据权利要求7或8所述的方法,还包括:
(G)在(E)中所确定的所述第一数据流与所述第二数据流之间匹配的情况下,维护关于所述第二数据流的信息。
11.根据权利要求10所述的方法,其中,处理的至少一些在设备中发生,并且其中,所维护的信息包括关于所述设备的信息。
12.根据权利要求11所述的方法,其中,所述设备是网络中的路由器。
13.根据权利要求7或8所述的方法,还包括:
获得多个分组;和
从所述多个分组提取有效载荷信息,以获得所述第二数据流中的至少一些。
14.根据权利要求7或8所述的方法,还包括:
(H)在(E)中所确定的所述第一数据流与所述第二数据流之间匹配的情况下,使所述第二数据流经受附加的检查以确定它是否与所述第一数据流相同。
15.根据权利要求7或8所述的方法,其中,每个特定的同步点的对应的比特块与所述特定的同步点直接相邻。
16.根据权利要求7或8所述的方法,其中,所述哈希函数从包括以下函数的函数中选择:SHA和MD5。
17.根据权利要求7或8所述的方法,其中,每个同步点由32个比特组成。
18.根据权利要求7或8所述的方法,其中,每个比特块由256个字节组成。
19.一种用于数据流的由硬件结合软件实现的计算机实现的方法,所述方法包括:
(A)获得多个数据流签名,多个数据流中的每一个具有至少一个签名,所述多个数据流中的每一个特定的数据流的数据流签名包括所述特定的数据流中的多个同步点与所述特定的数据流的对应的多个块签名之间的关联,其中,所述关联包括对应的同步点和块签名对的有序序列,其中,每个所述块签名使用比两个连续的同步点之间的所有比特少的比特确定,并且其中,所述数据流签名基于比所述数据流中的所有比特少的比特;
(B)尝试在第二数据流中寻找所述多个数据流签名的同步点;以及
(C)如果在所述第二数据流中找到所述多个数据流签名的特定的同步点,则:
(C)(1)确定所述第二数据流中与所述特定的同步点对应的对应比特块的块签名,其中,所述块签名通过将哈希函数或消息摘要函数应用于所述第二数据流中与所述特定的同步点对应的比特块来确定;和
(C)(2)查明所述第二数据流的所述特定的同步点和所述对应的块签名是否对应于所述多个数据流签名的任何一个中的同步点和块签名对;以及
(C)(3)当所述第二数据流的所述特定的同步点和所述对应的块签名对应于所述多个数据流签名的一个或多个中的同步点和块签名时,维护指示该对应的计数信息;
(D)在所述第二数据流中的至少一些仍未被处理时,重复步骤(B)和(C),直到来自所述第二数据流的预定数量的同步点和对应的块签名与所述多个数据流签名的至少一个中的同步点和对应的块签名匹配为止;
(E)当来自所述第二数据流的预定数量的同步点和对应的块签名与所述多个数据流的第一数据流签名中的所述预定数量的同步点和块签名匹配时,指示所述第一数据流与所述第二数据流之间匹配。
CN201380011606.9A 2012-02-29 2013-02-15 流识别和过滤 Expired - Fee Related CN104205089B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261604859P 2012-02-29 2012-02-29
US61/604,859 2012-02-29
US201261607021P 2012-03-06 2012-03-06
US61/607,021 2012-03-06
PCT/US2013/026264 WO2013130281A1 (en) 2012-02-29 2013-02-15 Stream recognition and filtering

Publications (2)

Publication Number Publication Date
CN104205089A CN104205089A (zh) 2014-12-10
CN104205089B true CN104205089B (zh) 2018-10-16

Family

ID=49083160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380011606.9A Expired - Fee Related CN104205089B (zh) 2012-02-29 2013-02-15 流识别和过滤

Country Status (8)

Country Link
US (2) US9703869B2 (zh)
EP (1) EP2820564B1 (zh)
JP (1) JP6340668B2 (zh)
KR (1) KR20140131333A (zh)
CN (1) CN104205089B (zh)
AU (1) AU2013226430A1 (zh)
TW (1) TWI594626B (zh)
WO (1) WO2013130281A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9356980B2 (en) 2012-07-31 2016-05-31 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US9444726B2 (en) 2012-07-31 2016-09-13 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US9491093B2 (en) 2012-07-31 2016-11-08 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US10567489B2 (en) * 2013-03-15 2020-02-18 Time Warner Cable Enterprises Llc System and method for seamless switching between data streams
FR3010606A1 (fr) * 2013-12-27 2015-03-13 Thomson Licensing Procede de synchronisation de metadonnees avec un document audiovisuel en utilisant des parties de trames et dispositif de production de telles metadonnees
WO2017059290A1 (en) 2015-10-02 2017-04-06 Google Inc. Peer-to-peer syncable storage system
US10437829B2 (en) * 2016-05-09 2019-10-08 Level 3 Communications, Llc Monitoring network traffic to determine similar content
CN108021580A (zh) * 2016-11-04 2018-05-11 广东亿迅科技有限公司 一种数据同步更新方法及其系统
JP2019047331A (ja) * 2017-09-01 2019-03-22 株式会社リコー データ生成装置、データ生成方法、プログラム及びデータ記録システム

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4658093A (en) 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
CA2166420C (en) 1993-07-01 2006-03-28 James R. Woodhill System and method for distributed storage management on networked computer systems
JP3865775B2 (ja) 1995-04-11 2007-01-10 キネテック インコーポレイテッド データ処理システムにおけるデータの識別
JP3312105B2 (ja) * 1997-02-05 2002-08-05 株式会社東芝 動画像インデックス生成方法および生成装置
US6807632B1 (en) 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US6717694B1 (en) * 1998-07-31 2004-04-06 Canon Kabushiki Kaisha Data transmission apparatus, system and method, and recording medium
US6574657B1 (en) 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
US6819337B2 (en) * 2000-06-28 2004-11-16 Sun Microsystems, Inc. Initializing a series of video routers that employ source-synchronous signaling
JP4219086B2 (ja) * 2000-12-21 2009-02-04 株式会社リコー 抄本データ作成方法、抄本データ作成装置、そのための装置、及び記録媒体
US7660998B2 (en) * 2002-12-02 2010-02-09 Silverbrook Research Pty Ltd Relatively unique ID in integrated circuit
JP2004234641A (ja) * 2003-01-08 2004-08-19 Kddi Corp コンテンツファイル制作者の認証方式およびそのプログラム
US7809154B2 (en) 2003-03-07 2010-10-05 Technology, Patents & Licensing, Inc. Video entity recognition in compressed digital video streams
US7373520B1 (en) * 2003-06-18 2008-05-13 Symantec Operating Corporation Method for computing data signatures
US7519726B2 (en) 2003-12-12 2009-04-14 International Business Machines Corporation Methods, apparatus and computer programs for enhanced access to resources within a network
EP1721438B1 (en) * 2004-03-02 2010-09-08 Divinetworks Ltd. Server, method and system for caching data streams
JP4901164B2 (ja) * 2005-09-14 2012-03-21 ソニー株式会社 情報処理装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
WO2007131545A2 (en) * 2005-12-09 2007-11-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. A method and apparatus for automatic comparison of data sequences
US7627641B2 (en) * 2006-03-09 2009-12-01 Watchguard Technologies, Inc. Method and system for recognizing desired email
JP5022025B2 (ja) 2006-12-27 2012-09-12 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテンツのデータ・ストリームとメタデータを同期するための方法および装置。
JP2008211022A (ja) * 2007-02-27 2008-09-11 Toshiba Corp 不揮発性半導体記憶装置及びその製造方法
US7782808B2 (en) * 2007-07-02 2010-08-24 Lg Electronics, Inc. Digital broadcasting system and data processing method
US8732236B2 (en) * 2008-12-05 2014-05-20 Social Communications Company Managing network communications between network nodes and stream transport protocol
US20090109840A1 (en) * 2007-10-31 2009-04-30 Hallse Brian L Fault-resistant digital-content-stream AV packet switch
US7925708B2 (en) 2008-01-04 2011-04-12 Yahoo! Inc. System and method for delivery of augmented messages
JP5337411B2 (ja) 2008-06-13 2013-11-06 京セラドキュメントソリューションズ株式会社 情報秘匿化方法および情報秘匿化装置
US8135930B1 (en) * 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
JP5602138B2 (ja) * 2008-08-21 2014-10-08 ドルビー ラボラトリーズ ライセンシング コーポレイション オ−ディオ及びビデオ署名生成及び検出のための特徴の最適化及び信頼性予測
US20100138414A1 (en) * 2008-12-01 2010-06-03 Andrew Newman Methods and systems for associative search
JP2009151798A (ja) * 2009-01-19 2009-07-09 Sony Corp 画像処理装置および方法
JP5291523B2 (ja) * 2009-04-21 2013-09-18 株式会社データ変換研究所 類似データ検索装置及びそのプログラム
US9419801B2 (en) * 2009-05-12 2016-08-16 Infrascale Inc. System and method for transmitting needed portions of a data file between networked computers
JP5297297B2 (ja) * 2009-08-11 2013-09-25 Kddi株式会社 動画コンテンツ検出装置
US8325276B2 (en) * 2009-08-26 2012-12-04 Samsung Electronics Co., Ltd. System and method for real-time video content sharing with synchronization via closed-caption metadata
US8910202B2 (en) * 2009-12-08 2014-12-09 Harmonic, Inc. Modification and distribution of video content
US20120176386A1 (en) * 2011-01-10 2012-07-12 Hutchins Edward A Reducing recurrent computation cost in a data processing pipeline

Also Published As

Publication number Publication date
TW201340689A (zh) 2013-10-01
US20140351280A1 (en) 2014-11-27
KR20140131333A (ko) 2014-11-12
AU2013226430A1 (en) 2014-09-04
CN104205089A (zh) 2014-12-10
JP2015515770A (ja) 2015-05-28
US20150248485A1 (en) 2015-09-03
WO2013130281A1 (en) 2013-09-06
US10068017B2 (en) 2018-09-04
EP2820564A1 (en) 2015-01-07
TWI594626B (zh) 2017-08-01
EP2820564B1 (en) 2019-04-10
EP2820564A4 (en) 2015-11-25
US9703869B2 (en) 2017-07-11
JP6340668B2 (ja) 2018-06-13

Similar Documents

Publication Publication Date Title
CN104205089B (zh) 流识别和过滤
US10778441B2 (en) Redactable document signatures
US11403284B2 (en) System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system
CN110555050B (zh) 一种基于元路径的异构网络节点表示学习方法
CN108197226A (zh) Mptc账户状态树以及mptc区块链快速检索方法
JP2020513176A5 (zh)
EP3072076B1 (en) A method of generating a reference index data structure and method for finding a position of a data pattern in a reference data structure
CN105849555B (zh) 用于错误校正的序列读数迭代聚类
US20170185712A1 (en) A method of storing/reconstructing a multitude of sequences in/from a data storage structure
US20150248448A1 (en) Online radix tree compression with key sequence skip
CN106326234A (zh) 流分类方法及装置
AU2021216571A1 (en) Generating emoji sequence identifications to identify wallet addresses for blockchain wallets
CN107612969B (zh) 基于B-Tree布隆过滤器的云存储数据完整性审计方法
US10567399B2 (en) Fragmented malware hash lookup in cloud repository
CN114037531A (zh) 一种区块链分片系统的分片账户调整方法及其相关装置
Moataz et al. Oblivious substring search with updates
CN108173651A (zh) 一种自有后量子密钥分配方法
Miao et al. Verifiable data streaming protocol supporting update history queries
KR20190020721A (ko) 블록체인 시스템 및 블록체인 생성 방법
CN113468575B (zh) 一种支持访问模式隐藏的密态流式数据检索系统及方法
KR101795482B1 (ko) 데이터 검색 단말 및 그의 검색 방법
KR101587756B1 (ko) 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법
CN112328733A (zh) 基于MinHash函数的中文多关键字模糊排序可搜索加密方法
CN110457954A (zh) 合同管理装置与方法
CN105653692B (zh) 一种基于非关系型数据库的文件存储方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20180809

Address after: California, USA

Applicant after: ALTNET, Inc.

Address before: American California

Applicant before: ALTNET, INC.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181016

Termination date: 20220215

CF01 Termination of patent right due to non-payment of annual fee