CN100524153C - 在数据库中添加、检索计算机文件的方法 - Google Patents
在数据库中添加、检索计算机文件的方法 Download PDFInfo
- Publication number
- CN100524153C CN100524153C CNB2004800105493A CN200480010549A CN100524153C CN 100524153 C CN100524153 C CN 100524153C CN B2004800105493 A CNB2004800105493 A CN B2004800105493A CN 200480010549 A CN200480010549 A CN 200480010549A CN 100524153 C CN100524153 C CN 100524153C
- Authority
- CN
- China
- Prior art keywords
- file
- checking
- database
- hashed value
- hash function
- 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 - Lifetime
Links
- 230000006870 function Effects 0.000 title description 140
- 238000000034 method Methods 0.000 claims description 89
- 230000008878 coupling Effects 0.000 claims description 12
- 238000010168 coupling process Methods 0.000 claims description 12
- 238000005859 coupling reaction Methods 0.000 claims description 12
- 230000014509 gene expression Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 6
- 238000010200 validation analysis Methods 0.000 claims description 5
- 230000013011 mating Effects 0.000 claims description 2
- 238000012795 verification Methods 0.000 abstract description 29
- 238000005516 engineering process Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Abstract
用于内容寻址的散列函数不同于用于内容验证的散列函数。将文件添加到数据库涉及将两个散列函数值成对存储在表中。验证数据库中确信是副本的文件的完整性,或者当检索文件时,利用验证散列函数。可以连续校验文件。可以使用多层数据库。可以将第二散列函数添加到现有系统。可以升级验证散列函数并且可以使用多于一个的内容验证散列函数。在变体中,随机数发生器替代散列函数用于内容寻址;还使用验证散列函数。使用随机数寻址的文件被添加到数据库或者从数据库中检索,并且它们的验证散列值得到校验。为安全性使用时间标记和数字签名。
Description
技术领域
本发明一般涉及使用计算机进行的信息存储和检索。更具体地说,本发明涉及使用散列函数和随机数以标识和验证计算机文件的内容。
技术背景
现有技术包括:数字信息的内容可寻址的存储、它的检索的概念和散列函数、消息摘要及描述符文件的使用,如在国际公布WO99/38093中所述。国际公布WO 99/38092描述用于存储和访问内容可寻址的信息的特定技术,而国际公布WO 01/18633描述用于加密内容可寻址的信息的技术。这些公布全部通过引用结合。
如现有技术所讨论的,显然,内容可寻址的技术对于以保证存储内容的完整性的方式存储和访问文档可以非常有用。如现有技术所讨论的,一种技术是使用消息摘要(例如“MD5”)来唯一地表示特定文档。此外,单个MD5可以唯一地表示许多文档(例如,使用描述符文件),并且单独的文档可以包含许多不同的MD5,它们各引用单个文档或者文档集。
有两个与散列函数关联的风险需要注意:统计散列函数碰撞和散列攻击。在纯巧合和没有任何恶意下,当实现内容可寻址的存储的系统会包含两个内容不同但有相同的散列值即相同的“内容地址”的文件时,发生散列碰撞。在几乎任何可想到的情况下,此风险将在很长时间保持可忽略—即使由于销售目的,消除或者大大减少它会有相当大的价值。
散列攻击是一个全然不同的命题,并且也被认为是“第二原象(pre-image)发现”。当不择手段的团体恶意生成计算机文件的重大修改版本(举例)时,已经安排此版本来产生和原始文件的散列值一样的散列值(或者“内容地址”),发生散列攻击。散列攻击也许只是将随机的位模式插入到文件中或者可能改变合同文档的含义。任何情况下,散列攻击意味着散列函数的“破坏”和对被认为受适当保护的数字信息的毁坏。
在任何情况下,系统本身的可靠性危如累卵:在一些成功的和广泛公布的散列攻击后(即使在理论条件下,而没有直接的现实世界适用性),系统在公众的意识中变得不可信。而且,一旦只是证明使用中的散列函数可能被破坏,系统也将是不可信的。随着计算资源继续发展,这样的散列攻击可能会在更长的时期上成功。当更大的散列函数尺寸被选择并接连受到破坏时,导致兼容性问题和信任链破坏。对于应该是这样系统的正常应用的长期存储服务,该结果不是有吸引力的前景。
只是使用具有巨大尺寸的散列函数不是始终实用的。一方面,散列函数应该足够大以保证在统计上排除散列函数碰撞(对于两个不同的输入有同一散列值)。另一方面,它应该足够小以保持在它的目标应用中作为引用是实用的,并且在需要用于计算散列值的处理器时间方面是可以负担的。
不幸地—即使系统一般对于特定尺寸的散列函数是可用的—改变到不同的散列尺寸是较大的操作,其带有许多牵连:效率的损失、以及应用转换成本和向后兼容开销。例如,在内容可寻址的存储系统中用不同的散列函数替换MD5算法并且为每一个计算机文件生成新的消息摘要出现问题。由于这些128位的消息摘要(各自表示文件的唯一地址)可能遍布于其他文档和全世界的计算机系统中,可以证明几乎不可能用新计算的消息摘替换这些128位的消息摘要。此外,如果转换发生在先前的散列函数已被普遍接受为“破坏的”的时间之后,结果可以是重大的且根本无法恢复的“信任裂缝”,因为现有的内容地址在转换时将不是勿庸置疑的。
从而需要机制和技术来补救上面的问题。
发明内容
为了实现前述内容,并依照本发明的目的,将描述一种技术来帮助消除恶意散列攻击和提供将检测散列函数碰撞的保证。
总的想法是将内容寻址从内容验证中分离。换言之,用于内容寻址的散列函数不同于用于内容验证的散列函数。在变体中,使用随机数发生器来代替散列函数用于内容寻址。该技术允许可以随时间以透明的方式改变并加强内容验证散列函数,并且关于使用内容地址的任何应用保持充分向后兼容,使用内容寻址散列函数来计算内容地址。从而,可以检测散列攻击并使之转向,这取决于验证散列函数而不是内容寻址散列函数的满强度。作为结果,将预期较少的值得提及的恶意攻击,因为将知道它们几乎没有机会成功。
该方法呈现出优于缺省情况即只是升级整个系统上的单个内容寻址散列函数的显著优点,该缺省情况会要求在大多数应用中作较大的转换并且会危及现有的内容寻址的数据集合的完整性,从而大大减少了该技术对于长期档案功能的吸引力。
使用用于验证的第二散列函数允许检测涉及寻址散列函数的碰撞或者对寻址散列函数的散列攻击。虽然在两个使用128位的寻址散列函数的文件之间发生碰撞在统计上是不可能的;公众也许仍需要一些安慰即可以检测任何这样的碰撞。即使碰撞会发生,用于这两个文件的验证散列值也会不同,从而标出问题:即对于两个不同的文件,寻址散列函数产生了相同的值。类似地,如果不择手段的团体攻击128位的散列函数并且设计出使得两个文件给出相同散列值的方法,也会通过验证散列值的不同检测该攻击。从而,因为会检测任何这样的攻击几乎是确定的,所以远不可能有人会花时间和资源来进行这样的攻击。
附图简短说明
通过参考结合附图进行的以下描述,可以最好地理解本发明连同其更多的优点,图中:
图1说明用于为文档创建基于散列的唯一标识符的技术。
图2说明包含使用不同散列函数计算的任何数量的文件的散列值的表。
图3是流程图,描述用于将文件添加到数据库的一个实施例。
图4是流程图,描述从数据库中检索文件的一个实施例。
图5是流程图,描述使用本发明实施例实现的用于校验数据库中文件的完整性的技术。
图6说明多层数据库,其中保存计算机文件的数据库分布在众多的服务器计算机中。
图7是流程图,描述将文件添加到多层数据库的一种技术。
图8是流程图,描述用于将散列权限功能添加到现有的内容可寻址的存储系统的一种技术。
图9是流程图,描述用于升级验证散列函数的技术。
图10是流程图,描述可以用来为散列权限表提供安全的附加技术。
图11说明具有附加安全措施的散列权限表的一个实施例。
图12说明包含任意数量文件的验证散列值和对应的文件的随机数的表。
图13是流程图,描述用于将文件添加到数据库的技术,其中系统使用随机数发生器作为函数来生成每个文件的唯一地址。
图14是流程图,描述从数据库中检索文件的技术,其中随机数用来标识文件。
图15说明标识符权限表的一个实施例,其中附加的安全技术也是可应用的。
图16A和16B说明适用于实现本发明实施例的计算机系统。
发明的详细描述
考虑到现有技术的特性和由于继续使用较老的、潜在不太安全的散列函数(例如,128位的散列函数)引起的潜在问题(无论真实的或者公众意识里察觉到的),要求得到改进。认识到现有技术的散列函数服务于两个目的。散列函数产生的散列值不仅为任何给定的计算机文件提供近乎唯一的基于内容的地址,而且还提供唯一的值可以用来验证文件内容。散列函数提供单个散列值用于寻址和验证内容。然后认识到使用128位的散列函数可得的地址空间的尺寸实际上不是问题。128位的散列函数(举例),提供有2128个地址的地址空间;这个数量的唯一地址实际上在可预见的未来不会被用完,也不会导致碰撞。
但是相同的散列函数也用于提供文件内容的验证:当使用文件的散列值作为地址检索文件时,散列值被重新计算并与原始值比较。由于要求加强所使用的散列函数,从而认识到第二验证散列函数可以用来提供文件内容的验证,而保留原始的寻址散列函数来提供唯一的地址。保留原始的寻址散列函数有许多优点,包括这样的好处即可以继续使用用于寻址文件的唯一值。由于可以将该唯一值分布到许多位置或者插入到其他文档中以便引用所涉及的文件,所以重要的是该唯一地址没有改变。并且通过允许第二(可能更强的)验证散列函数用于验证文件的内容,提供更大的保证即这样的系统不会遭受散列攻击。这样的系统允许随时间动态地升级验证散列函数,并不丢失给定文件的稳定的、唯一的内容地址的好处。
内容可寻址的存储
为了帮助理解接下来的讨论,简要回顾内容可寻址的存储将是有用的。图1说明为文档102创建基于散列的唯一标识符122的技术。接下来的描述使用经过表示和管理的简单文档的例子;然而,文档102可以是以数字形式表示的任何类型的信息。例如,本发明可适用于任何电子表示的信息,例如计算机文件、文件组、文件标识符组或者其他数据集合或者数据库信息。这样的其他数据集合包括数字音频或者视频流的帧或者剪辑、数字照片、扫描的纸文档、声音消息、CAD/CAM设计图、MRI或者X射线数据、消息记录或者文件的流、系统的状态日志或者审查的录入条目、电子邮件档案、校验图像等。数据库信息包括来自关系网络、分级网络或者其他数据库的记录。一般而言,数字信息可以包括任何二进制(或者n进制)的数字串。在一个实施例中,将数字信息处理为二进制大对象或者BLOB。接下来的描述使用计算机文件作为例子,虽然本发明并不局限于此。术语“计算机文件”在此用来包含任何电子表示的前述类型的信息。
算法104用来处理文档102以产生文档的唯一标识符106。最好,算法104是产生散列值106的散列函数。在该例中,散列函数用来产生散列值或者消息摘要(“MD”)106。众所周知的散列函数包括:MD2、MD5、SHA-1、SHA-256、RIPEMD-160等。
如本领域中已知的,在文档上使用散列函数产生唯一的散列值或者消息摘要,它是文档的“数字指纹”并且唯一地标识文档。术语消息摘要或者“MD”经常用来指散列函数创建的散列值,并且用于包含可能用于创建唯一的、基于内容的文档标识符的任何类型的散列函数。该例假设MD5算法用来创建MD106。
为了本发明的目的可以照原样使用消息摘要106或者可以将之嵌入到描述符文件108中。描述符文件108包括消息摘要106和多种元数据110中的任何一种,该元数据进一步描述、标识或者解释文档102的信息或者任何其他信息。在上面引用的国际申请中描述关于描述符文件和元数据类型的说明书。在一个实施例中,元数据110包括描述性的文件名、文件尺寸、访问权、所有者、保留周期等。也可以包括更高级的信息,如主题、标题、作者、日期。如果需要用于特定应用的话,描述符文件用作此类信息的占位符是有用的,并且对于保存文件组的消息摘要也是有用的,如果情形那样要求的话。消息摘要可以引用描述符文件或者可以直接标识单独的文档。
一旦形成描述符文件,将散列函数114应用于描述符文件来产生另一个消息摘要116。使用现有技术中示出的技术,消息摘要116现在可以用于唯一地定位和标识文档102。例如,描述符文件108和文档102可以存储在计算机的规则文件系统中,它们的文件名分别是由MD 116和MD 106表示的位串。或者,每个文件可以存储在数据库中,其中文件的关键字是每个文件各自的消息摘要。一般而言,文件108和文档102可以存储在任何内容可寻址的存储系统中,其中,只使用它们的消息摘要可以对它们进行定位和检索。
MD5消息摘要(或者其他散列值)可以转换为人易于读取和记录的形式。因为来自MD5散列函数的结果消息摘要是128位的数字,所以要求以更易管理的形式将该数字编码以供人使用。可以以多种形式中的任何一种对结果数字进行编码,包括10进制、16进制或者二进制。最好,将数字转换为映射到基本ASCII字符集中的26个字母和数字字符集的以32为基数的数字。该映射被称作“ASCII铠装Armoring”,并且通常用来在有限的字符集中翻译二进制的信息以在要求内容限制于字符数字编码的协议上传输。在结果串中的预定位置包括标志字符,使得串的总长度变成27个字符。该标志字符也可以提供如使用的算法,文件类型等信息。
结果是27个字符的数字和大写字母的ASCII串。这样的格式提供紧凑的形式,可以更容易地被人写下来和/或被计算机处理,并且这样的格式还是容易被许多软件程序适应的形式。另外,消息摘要的这种特定表示有着更容易通过数据查询来检索、编码成软件应用程序文件请求、通过内容或者资产管理系统引用、在对象浏览器中被请求、从一个文档电子拷贝和粘贴到另一个文档、通过电子邮件发送等的优点。
在该例中,MD 116已被转换成27个字符的串120。在特定实施例中,串120与因特网的名称118连接成串来产生URL 122。名称118可通过DNS解析并且包含域名“trustclip.com”。在此特定实施例中,“trustclip.com”用来定位连接到内容可寻址的存储设备的Web服务器。运行域“trustclip.com”的服务供应商使用消息摘要作为唯一的标识符来存储这样的文档,并且当提供URL(例如URL 122)时使这样的文档是用户可得的。在这种方式下,当给了用户URL 122时或者另外使用它作为链接时,Web站点“trustclip.com”取得MD 120、定位文档并将它返回给用户。如果MD 120标识包括多个文档的消息摘要的描述符文件,那么所有的这些文件都被返回。消息摘要(以116、120或者其他形式)可以通过许多方式用于定位原始文档。如前面提到的,消息摘要可以用作文档的文件名、数据库中的关键字,嵌入URL或者URI(或者其他文件定位符,例如IP地址或者路径名称)中,或者可以只是照原样使用。
在另一实施例中,将消息摘要给服务供应商,然后他们使用消息摘要来搜索和定位由消息摘要唯一标识的文档。例如,服务供应商可以搜索他们自己的内容可寻址的存储器,或者可以在其他实体的存储器中搜索文档。还可以在整个企业网、企业内部互联网、因特网上或者通过其他方式广播消息摘要,目的是找到消息摘要唯一标识的文档。在上面引用的国际申请中描述了描述符文件的实施例
验证散列函数的使用
图2说明包含使用不同散列函数计算的任意数量文件的散列值的表200。在一个实施例中表200被称为“散列权限authority”表。对于数据库中包含的特定文件,表200可以保存使用不同散列函数计算的任意数量的那个文件的不同散列值。例如,表200包括保存使用第一散列函数(例如MD5算法)计算的地址散列值(AH)的列204,和保存使用不同散列函数计算的验证散列值(VH)的列208。每行对应于一个给定文件。例如,行212对应于文件A,并且包含使用MD5算法(举例)计算的文件A的AH。使用256位或者更强的散列函数来计算文件A的VH。行212示出,对于特定文件A,它的AH与它的VH关联存储,从而通过引用特定文件的AH,就可以获得它的VH,反过来也是。特定文件的VH可以是具有和用于计算文件的AH的散列函数一样强度(或者更少强度)的散列函数的结果;可是,优选的是用于计算VH的散列函数更强。同样,可以有众多诸如列208的列,使得对于给定文件,它具有众多的使用不同验证散列函数计算的VH值。
根据存储文件的数量,表200可以有任何数量的条目(或者记录)。表200可以与存储在单个计算机上、计算机网络上、分布式计算机网络上或者以任何适用于存储文件或其他数字信息的数据库中的文件关联。此外,使用散列函数、时间标记和或数字签名,表200可以使其条目受到保护,本领域内的那些技术人员将理解这一点。此外,使用任何其他适合的数据结构而不一定是表,特定文件的AH和VH可以相互关联。
图3是流程图,描述将文件添加到数据库的一个实施例。在该简单的例子中,要求使用本发明的技术将计算机文件或者其他类型的数字信息添加到文件的数据库中。该数据库最好使用基于内容寻址的方案存储文件,其中文件的散列值作为它的唯一地址使用。两个不同的散列函数与数据库关联。寻址散列函数生成用来寻址每个文件的地址散列值(AH),而验证散列函数用于生成用来验证特定文件的内容的验证散列值(VH)。最好验证散列函数比寻址散列函数强;较强的散列函数的例子是SHA-256和RIPEMD-256。
在一个实施例中,验证散列函数是与寻址散列函数相同的散列函数,但是它使用标志、参数、额外输入、变体或者其他修改,使得它产生不同于寻址散列函数产生的散列值。例如,可以通过包括元数据例如文件名、尺寸、所有者、创建日期或者重复例如文件中最后4k的块来对文件作微小的修改。
存在如表200的数据结构并且其包含所有存在于数据库中的文件的条目和它们对应的散列值,尽管这样的表可以首先是空的,如果还没有添加文件的话。
在220中,从任何适合的源获得待添加的文件。在224中,将寻址散列函数应用于文件,目的是生成文件的AH来确定它的唯一地址。在228中,验证散列函数用于生成文件的VH。步骤232校验待添加的文件是否已经存在于数据库中。校验这样的文件可以以不同的方式执行。在一个实施例中,使用文件的AH作为标识符或者索引搜索整个数据库找寻文件。例如,可以用文件的AH作为文件名来存储文件;然后可以扫描整个文件系统来查看AH是否存在。在另一实施例中,可以使用AH到表200中查找以确定文件是否已经存在。
如果确定文件没有存在于数据库中(通过没有找到与文件AH的任何匹配),然后在236,使用文件的AH作为文件的地址将文件存储于数据库中。例如,文件的文件名可以是它的AH。接下来在240中,将该特定文件的AH-VH对添加到表200中,使得新添加的文件的条目现在存在于表200中。AH作为数据库中文件的唯一地址被返回给请求者。然后过程结束。
回到步骤232,如果确定文件已经存在于数据库中(通过找到文件AH的匹配),然后确定已经存在于数据库中的文件事实上是否和要求添加的文件是相同的文件。在244中,为数据库中驻留在地址AH的文件计算VH。在248中,将驻留在数据库中的文件的VH与待添加的文件(来自步骤228)的VH比较。在几乎所有情况中,这两个VH是相同的,这指出待添加的文件确实已经存在于数据库中。如果是这样,AH作为数据库中文件的唯一地址返回给请求者并且过程结束。另一方面,如果两个文件的VH不同,这指出问题。
在252中,系统报告存在问题。该问题可以是散列攻击的结果,其中这两个文件中的一个被恶意改变,因此虽然寻址散列函数指出文件是相同的,验证散列函数(更强和更可靠)却指出这两个文件事实上是不同的。另一个可能是,在系统硬件或软件中已有技术故障,从而虽然VH值看来不同,但文件事实上是相同的。第三个可能是发生散列碰撞,从而即使这两个文件事实上是不同的,对每个文件的地址散列值的计算得到那个相同的值。在任何情况下,步骤252向可以然后采取适当操作的系统或者用户指出问题。在任何情况下,优选的是,在这时不将文件添加到数据库中,虽然根据特定实现这样的情况是可能的。
图4是流程图,描述从数据库中检索文件的一个实施例。在这种情形下,用户希望使用本发明的技术实现从数据库中检索文件。在260中,用户或者软件应用要求得到特定文件并且会基于先前计算的那个文件的散列值来寻找那个文件。最好,用户或应用知道计算文件的散列值所使用的特定寻址散列函数也由系统用来计算AH值。用户或者应用从存储AH的任何适合的源中获得所要求文件的AH。在264中,用户或者应用将所要求文件的该地址散列值(AH)提交给系统。在268中,使用例如先前在步骤232说明的技术,系统使用AH来确定要求的文件是否存在于数据库中。如果存在的话,在该步骤可以查阅散列权限表来检索文件的AH和VH。如果确定文件没有存在于数据库中,那么在272中,系统向用户或者应用报告没有找到要求的文件。
然而,如果系统指出它相信文件已经找到,那么在276中,系统计算在数据库中找到的文件的AH。在280中,将在264中接收自用户的AH与在276中生成的AH比较。该比较作为校验来执行以确保存储在地址AH的文件事实上确实有和AH相等的地址散列值。在一些情况中,不执行该比较步骤是可能的。
如果AH值不同,那么在284中,将异常报告给用户或者应用。在280中计算的不同的AH值将通常指出本地文件已被损坏并且不应返回给用户。如果AH值是相同的,这指出在地址AH找到的文件可能是用户要求得到的。因而,在288中计算在数据库中找到的文件的验证散列值(VH)。在292中,将该计算的VH与来自散列权限表中的条目的该文件的VH比较。在步骤268期间,使用AH作为索引在散列权限表中查找对应于该文件的条目,或者在该时间点也可以使用文件的AH作为索引在表中查找VH。如果VH值不同,那么在296中将问题报告给用户,指出和步骤252中所述的相同的可能问题。如果VH值相同,这指出在地址AH找到的文件和当文件第一次被添加到数据库时最初存储在该位置的文件是相同的文件。在该步骤中,相等的VH值可靠地指出找到的文件是用户要求得到的文件。在298中,将文件交付给请求它的用户或者软件应用。
图5是流程图,描述用于使用本发明实施例实现的校验数据库中的文件的完整性的技术。在这种情形下,要求连续校验存储在数据库中的文件的完整性,目的是在发现异常时发出警报声并且如果有必要的话采取纠正操作。没有这样连续的完整性校验,可能的是,不择手段的团体也许会替换、更改或者删除数据库中的原始文件以至原始文件会丢失。例如,如果某人找到一种方式来破坏用来计算文件的地址散列值(AH)的较低强度的散列函数,那么那个人将假文件插入到数据库中是可能的。换言之,假文件会成为原始文件的修改版本,它的地址散列值仍然和原始文件相同。从而,由于非法目的,文件也许被修改并被插入到数据库中来冒充为真实文件。由于两个文件的地址散列值是相同的,可以证明,要证明非法修改的文件不是正确的文件是极困难的。即使验证散列函数用于验证这样的文件的内容从而证明该修改文件是非法版本,真实文件的原始内容也会丢失。
在本发明的该实施例中,保存计算机文件的数据库保留每个文件的副本(或更多的拷贝),从而当在一个拷贝中检测到错误时,可疑文件可以用它的副本替换。尽管现有技术的技术也许涉及使用这样的副本和文件替换,接下来的描述还是提供了一种方式以使用第二验证散列函数来实现连续的完整性校验。在这种情况下,依照本发明的实施例,许多计算机文件被存储在适合的数据库中。对于每个存储在数据库中的文件,已经将地址散列值(AH)和验证散列值(VH)对存储在表中或其他适合的数据结构中。图5的流程图提供了一种方式,使用第二验证散列函数的附加强度和优点来连续校验这些文件的完整性。
在304开始,系统迭代遍历数据库中的所有文件(或者所有文件的子集,如果要求的话)。使用它们的文件名或者其他标识符,通过顺序步进经过存在于数据库中的所有文件来实现该迭代,或者通过使用来自表中的文件的AH引用每个文件,例如散列权限表200的表可以用于迭代遍历数据库中的所有文件。其他用于迭代遍历各种文件的技术包括随机选择表中的文件或者文件条目。
在308中,通过引用文件现有的AH(从表中、从文件名或者经由其他手段获得)确定数据库中文件的地址来获得待校验的文件。在312中,将系统使用的寻址散列函数应用于文件来计算文件的AH。在316中,将该计算的AH与在散列权限表中找到的文件的现有AH比较。
如果AH值不同,那么在320中,系统向执行完整性校验的用户或者应用报告问题。如果AH值不同,系统假定正被分析的当前文件以某种方式(经由技术故障、攻击或者其他)已被损坏并且在324中系统实现错误恢复。由于系统先前在另一位置存储了当前文件的拷贝,来自散列权限表的AH(用来第一次定位文件)用来定位那个文件现有的好的拷贝。一旦定位,用已知好的拷贝替换可疑文件。由于文件的两个拷贝同时被损坏从统计上是不可能的,所以假定文件的副本是好的拷贝。当然,为了双校验副本的完整性,也可以计算副本的AH来与散列权限表中找到的AH比较。可以执行其他错误恢复过程。例如,根据实现方法,系统可以决定不替换可疑文件,可疑文件可以被删除,或者可以将可疑文件作为文档的原始版本添加到存储器中并且保留篡改企图的证据。一旦对所涉及的当前文件实现错误恢复,在344,继续循环并且获得待校验其完整性的文件。
回到步骤316,如果AH值相同,这指出在内容地址AH找到的当前文件可能是最初存储在那个地址的文件。为了进一步校验文件的完整性,在328中,计算文件的验证散列值(VH)。最好,系统使用的验证散列函数不同于并且更强于寻址散列函数。在332中,将计算的文件VH与存在于散列权限表中的现有的VH(当文件最初存储时计算的)比较。如果VH值不同,那么在336中报告问题,通常如在步骤252所述。
在340中,系统可以采取适合的纠正操作来补救问题。例如,文件可以标记为可疑、可以执行审查以确定为什么VH值不同、当前文件的副本可以用于替换可疑文件的拷贝、文件的其他现有拷贝可以删除等。采取的纠正操作取决于系统的设计和实现以及系统操作员希望达到的目标。一旦采取适合的操作,在344中就获得待分析的下一个文件。
现在回到步骤332,如果VH值相同,这几乎确定地指出当前在内容地址AH存在的文件事实上是当它的AH-VH对被添加到散列权限表时最初放在那儿的文件。在这种情形下,不需要报告或者纠正操作,并且在344中获得待分析的下一个文件。一旦经由循环304-344校验了所有文件,过程结束或者循环。
多层实施例
本发明的实施例可以在驻留于台式计算机、服务器、专用主机等上的数据库中以及在以分布式方式的数据库中实现。图6说明多层数据库400,其中保存计算机文件(或者其他数字信息)的数据库分布于众多的服务器计算机之中。数据库可以在任意数量的计算机上以分布式方式来实现,包括图6示出的简单多层数据库。当然,可以有更少或者更多数量的层,以及更少或者更多数量的以不同类型的层次布置的数据库服务器。在该例中,数据库服务器410、412和414表示与大公司各部门关联的服务器。数据库服务器420(而其他没有示出)表示包含三个部门的公司内部的分层,如图所示(而其他没有示出)。数据库服务器430与公司首脑办公室关联并且还可以链接到对应于其他公司或者子公司的服务器,而且甚至可以链接到也许驻留有全局散列权限的下一个更高层。
与每个数据库服务器关联的是散列权限表(例如,表411),也许如图2所示实现,或者使用类似功能的数据结构。特定层的每个表不仅表示存储在那个层的服务器上的文件(和它们关联的散列值),而且表示下一较低层的所有文件。在这种方式下,位于给定层的散列权限表知道位于较低层的所有内容以及存储在那个服务器上的内容。该多层数据库实施例针对一种需求:为效率、可伸缩性和本地处理而使用分布式计算机,而同时允许给定层的散列权限表不仅记录在它之下的内容,而且验证内容的完整性。例如,如果相同的文件被添加到数据库中不同的数据库服务器上,在不同的服务器上就会有该文件的多个拷贝并且不同的散列权限表中有同样的条目。如果不择手段的团体成功修改了数据库中文件的一个拷贝,该非法拷贝会造成对真实拷贝的完整性的怀疑。接下来的描述针对这些问题。
图7是流程图,描述将文件添加到多层数据库的一种技术。在450中,获得计算机文件(或者其他数字信息)并且从用户(或其他软件应用)接收应该将该文件添加到数据库中的指示。在454中,计算文件的地址散列值(AH)和验证散列值(VH)。在458中,将文件存储在本地服务器410上的地址AH(举例)并且计算的AH-VH被添加到本地表411中(举例)。在466中,将计算的AH-VH对向上传递到下一层,即数据库服务器420,意图是如果该对并不是已经存在,则将之添加到表421中。为了便于说明,我们假定文件并不是已经存在于服务器410上,尽管图3的实施例可以用来校验先前是否存储了文件。
当将文件添加到数据库中(例如,如图3中或者图7中)时,系统可以首先校验文件是否已经存在于数据库中或者系统可以选择不校验。系统是否校验是取决于计算机文件包含的信息类型以及其他因素的实施细节。例如,如果计算机文件包含MRI数据或者X射线数据,几乎确定的是,一个文件的内容将不同于任何其他文件的内容。从而,由于效率原因,不是必须要在添加文件之前校验以查看文件是否已经存在于数据库中,因为不大可能已经存在相同的精确的文件。另一方面,如果文件表示流行的电子邮件附件,很多员工试图将之存储到公司数据库中,那么首先校验以查看这样的文件是否已经被添加到数据库中是有益的。系统是否首先校验可以取决于其他因素。
在470中,将从服务器410接收到的AH-VH对与在下一更高层的表421中现有的条目比较。取决于类似条目是否存在,该比较有三个可能的结果。如果在表421中没有AH值对应于从表411传递上来的AH值,那么确定在表421中没有条目对应于添加到服务器410中的文件,并且确定文件也没有被添加到服务器420和它的任何其他较低层的服务器(在该例中是412和414)。如果情形如此,那么在474中,将从表411传递上来的AH-VH对作为条目添加到表421中。也可以将存储在服务器410上的文件拷贝到服务器420上,尽管严格来说这不是必须的。现在表421也包括AH-VH对,它指出至少一个较低层的服务器包括对应的计算机文件。将对添加到表中之后,然后流程向上循环回到步骤466,其中将相同的AH-VH对向上传递到下一较高层(服务器430和表431)来校验并查看在下一较高层是否存在匹配。该传递和校验继续直到穷尽所有的层。
现在返回步骤470,如果确定从表411传递的AH-VH对精确地匹配(即AH值和VH值匹配),那么这指出刚添加到服务器410的计算机文件也存在于服务器420中或者也许在它的一个较低层服务器中。除非系统的实现要求删除文件的一个拷贝,否则在478中没有要求操作。(这可以是声称在分布式环境中任何给定文件只被存储一次的机制的基础,为了节省存储容量)。在474和478二者中,AH作为文件的唯一地址返回给请求者。在478后过程结束。
然而,如果AH值匹配但是VH值不匹配,这指出问题,在482中报告该问题。如前面讨论,该问题可以是碰撞、技术故障或者散列攻击。可以在486中采取纠正操作,例如在步骤340描述的那些操作。在采取任何适合的操作后,过程结束。在其他实施例中,在步骤486之后,系统可以决定将控制传送到步骤466,其中如前所述将AH-VH对传递到下一更高层,。
其他前述实施例也可以使用图6的多层数据库或者类似的分布式数据库实现。例如,图4描述的检索实施例也可以在分布式数据库上实现,这种情况下,步骤268会在各种数据库服务器而不是单个服务器上搜索。同样地,图5中描述的完整性校验实施例也可以在分布式数据库上实现,其中步骤304的循环会考虑驻留在各种数据库服务器上的所有文件。
将散列权限功能添加到现有的内容可寻址的存储系统中
图8是流程图,描述用于将散列权限功能添加到现有的内容可寻址的存储系统上的一种技术。现有技术描述了散列函数用来生成给定文件的唯一消息摘要的内容可寻址的存储技术。当将文件存储在内容可寻址的存储(CAS)系统中时,它的消息摘要不仅可以用来唯一地寻址文件而且可以用来验证文件的内容。使用下面的实施例,将在此所述的散列权限功能加入到这样的CAS系统是可能的(即,增加第二验证散列函数的使用)。在704中,创建类似于图2的散列权限表或者创建类似的数据结构来保存地址散列值(AH)和验证散列值(VH)。现有的CAS系统已经利用特定散列函数(在下文中称为寻址散列函数)来生成每个文件的内容地址或者地址散列值(AH)。将这些AH值放到新创建的散列权限表的第一列中,而第二列将保存每个文件上的验证散列函数生成的验证散列值。最好,验证散列函数是比寻址散列函数更强的不同的散列函数。
在708中,循环开始,即迭代遍历数据库中的每个文件或者内容地址。在712中,获得下一个文件及其地址散列值(AH)或者内容地址。在716中,验证散列函数用来计算文件的VH。然后,在720中,将该AH-VH对作为条目添加到散列权限表中。在724中,循环继续到数据库中的下一个文件。一旦数据库中的所有文件已被处理并且它们的AH-VH对已输入到表中,在728,激活新的散列权限机制。该激活意味着任何将来的添加、检索或者完整性校验过程都会利用如前所述的散列权限表。
升级验证散列函数
图9是流程图,描述用于升级验证散列函数的技术。如前所述,除寻址散列函数外,验证散列函数用来验证文件的内容。替换现有的验证散列函数或者将第二验证散列函数添加到系统来提供更大的完整性也是可能的。例如,如果256位的验证散列函数当前在使用,也可以添加和使用512位的验证散列函数。接下来描述一种技术,其中第二验证散列函数和第一验证散列函数一起使用,尽管用第二验证散列函数替换第一验证散列函数也是可能的。
步骤740开始循环,它迭代遍历数据库中的所有文件。循环可以经由它们的文件名或者计算的散列值来按顺序引用每个文件,或者可以使用散列权限表来迭代遍历每个文件。在744中,从数据库中获得待处理的下一个文件。
在748中,新的验证散列函数用来计算文件的新的验证散列值VH′。在752中,将VH′添加到散列权限表中,例如通过将第三列添加到表中来保存所有使用新的验证散列函数计算的验证散列值。例如,如图11所示。从而,表中文件的给定条目将会有三个散列值:用于地址散列的第一个值、用于第一验证散列的第二个值和用于第二验证散列的第三个值。当然,在可供选择的实施例中,第二验证散列值只是替换第一验证散列值,而此表剩下两列。在756中,处理下一个文件。
一旦所有的文件都已被处理,在760中,系统通过标记系统中新升级的验证散列函数的存在来激活它的使用。升级的散列函数的存在包含用于添加、检索和完整性校验处理的分支。例如,当添加文件时,两个验证散列函数将都用来计算将要添加到表中的两个不同的验证散列值。类似地,当检索文件时,两个验证散列函数将都用来验证文件的内容。完整性校验处理也会使用两个验证散列函数。
图10是流程图,描述可以用来为散列权限表提供安全的附加技术。图11说明带有附加安全措施的散列权限表800的一个实施例。表800包括用于地址散列值的列802、用于第一验证散列函数值的列804、用于第二验证散列函数值的列806、用于时间标记的列808和用于数字签名的列810。该表实现使用第二验证散列函数的实施例,尽管附加安全技术可以用于任何散列权限表的实施例。
在任何处理期间,当添加或者改变散列权限表中的记录时,附加安全技术最好如在步骤770中一样使用。例如,当将新的文件添加到数据库时,添加记录,而当添加新的验证散列函数或者添加映射时,改变记录,如图15所示和以下所述。任何对表中条目的添加或者修改都可以要求使用这些安全技术。在这些情形下,采取下面的附加步骤可以是适当的。
在774中,记录(例如列802-806)中的现有条目是使用任何适合的时间标记方法作时间标记。在778中,在列808将时间标记添加到记录。在782中,为了验证散列权限,使用任何适合的数字签名为记录创建数字签名。数字签名可以包括记录中任何适当的信息,包括AH值和VH值、时间标记和前一个记录的数字签名。在786中,在列810将数字签名添加到记录。
作为唯一标识符的随机数的使用
一旦认识到不同的功能即寻址和验证可以由两个单独的散列函数(如前所述)处理,就会进一步认识到除了寻址散列函数生成的唯一数之外的唯一数也可以用于唯一地标识文件并且用作它在数据库中的唯一地址。换言之,因为寻址散列函数不被用作验证的目的(因为使用单独的验证散列函数),严格看来不是必须使用寻址散列函数来生成唯一数以生成文件的唯一地址。为了那些目的,认识到如果生成足够大的随机数作为唯一标识符以寻址文件,验证散列函数仍然可以用来验证文件的内容因而会产生同样的优点。简单来说,寻址散列函数可以被随机数发生器替换,它生成适合的足够大的随机数用作文件的唯一地址。
可以使用各种各样的随机数发生器中的许多。随机数发生器的知识和使用在本领域内众所周知。作为例子,可以使用的随机数生成技术包括:使用种子值例如时间、热量或者噪声测量等生成伪随机数。生成的随机数的尺寸将随每个实现和系统操作员的需要而变化,以确保所有的生成的随机数的唯一性。预期会需要包含至少128位(以它们的二进制形式)的随机数来充分确保在公众或者半公众应用(典型地,在因特网上)中碰撞的风险是极低的。在一个特定的实施例中,随机数发生器生成128位的随机数,它们是适合长的,足以避免碰撞并允许与已实现(或正实现)的128位的寻址散列函数的系统兼容。当然,还可以使用更长的随机数。
图12说明包含任意数量文件的验证散列值和对应的文件的随机数的表500。在一个实施例中表500被称为“标识符权限”表。对于包含在数据库中的特定文件,表500保存那个文件的随机数和使用验证散列函数计算的那个文件的散列值。(当然,可以使用可供选择的实施例,其中有多于一个的验证散列函数。)表500包括使用随机数发生器计算的随机数(R)的列504和保存使用散列函数计算的验证散列值(VH)的列508。每行对应于一个给定文件。例如,行514对应于文件W,并包含文件A的R。例如,文件A的VH使用256位的散列函数来计算。行514示出,对于特定文件W,它的R与它的VH关联存储,从而通过引用特定文件的R可以获得它的VH,反过来也是。
取决于存储的文件的数量,表500可以包含任意数量的条目(或者记录)。表500可以与存储在单个计算机上、计算机网络上、分布式计算机网络上或者任何适用于存储文件或者其他数字信息的数据库中的文件关联。此外,表500可以使用散列函数、时间标记和或数字签名来使其条目受到保护,本领域内的那些技术人员将理解这一点。此外,使用任何其他适合的数据结构而不一定是表,特定文件的R和VH可以相互关联。
同样包括在表500的是对于当将文件的副本添加到数据库中时有用的实际地址列512。例如,在文件Z已被添加到数据库并且它的R-VH对已被添加到行520之后,可以发现文件Z是文件X的精确副本。该实现可以发生在文件正被添加到数据库的时候或者之后的优化处理期间。当文件Z的随机数已经被生成、添加到列504并且被分发给用户或应用的时候,删除行520(或者不输入它)就会是棘手的,因为各种团体也许正在使用为文件Z生成的随机数作为唯一的手段来引用它。在这种情形下,因为不是必须物理上将文件Z添加到数据库中(或者文件Z可能已被删除),可以将文件X的随机数输入到行520的列512中来向一个对文件Z的搜索指出应该使用文件X的随机数来寻址此文件。由于文件X和文件Z是副本,所以使用文件X的随机数作为地址是适当的。取决于实现,列512中空的条目(或者另一适合的标志)将向系统指出没有另一地址应该被查阅。当然,表500中可以有许多条目都引用相同的文件。这种情况下,只有文件的一个拷贝需要保留,并且表500中的那个文件的已被删除的拷贝的条目将使用列512来指出文件的实际地址。
图13是流程图,描述用于将文件添加到数据库的技术,其中系统使用随机数发生器作为函数来生成每个文件的唯一地址。在550中,从用户或者软件应用获得待添加的文件。在554中,适合的随机数发生器用来创建文件的随机数R。该随机数最好是适合长的位串,足以为每个添加到数据库中的文件提供唯一的地址。并且如现有技术中所说明和如图1所示,可以对此位串进行编码来提供易于用户可读取的标识符或者作为文件的文件名。同样如图1所示,随机数可以组成URL或者其他适合的标识符的一部分。在可供选择的实施例中,不需要在获得文件后立即执行步骤554,而可以结合步骤560或者结合步骤572来执行。在558中,系统使用的验证散列函数用来计算文件的验证散列值(VH)。
在并不要求校验文件是否已经存在于数据库中(也就是,只是直接添加文件是有利的)的实施例中,不执行步骤562,而然后在560,在地址R将文件存储于数据库中。在568中,然后将R-VH对添加到散列权限表,将R作为文件的唯一地址返回给请求者,并且过程结束。
在要求校验待添加文件是否已经存在于数据库中的实施例中,步骤562将计算的文件的VH与表的列508中的所有VH值比较。如果没有找到匹配,这指出文件不存在,并且控制移到添加文件及其R-VH对的步骤560,如前讨论的。然而,如果找到匹配,这指出文件的拷贝已经存在于数据库中并且散列权限表中的条目已经存在。在一个实施例中,不需要为文件生成新的随机数和添加新的条目到表中。从而,在584中,将对应于VH匹配的来自表中条目的随机数作为数据库中那个文件的唯一地址返回给用户(或者其他应用)。在该实施例中,不需要生成新的随机数,不需要添加新的条目到表中,并且由于文件已经存在在数据库中,所以不需要添加文件到数据库中。仅仅通过找到包含与步骤558中计算的VH匹配的VH的表中的条目,通过使用来自找到的条目的随机数获得用于标识文件的随机数。在580后过程结束。
在步骤562的另一变体中,可以有种情形,其中已经为文件生成随机数并且已经已经将之返回给用户或者其他软件应用。在这种情形下,如果确定在562中有VH匹配并且文件的拷贝已经存在于数据库中,将仍然期望在572中将R-VH对添加到表中。因为随机数R已经被返回给用户来帮助将来引用文件,所以将R-VH对添加到表中,从而在表中有对应于随机数R的条目是必要的。但是,在这种情况下,严格说不是必须添加文件的另一拷贝,因此在576中添加从新添加的R-VH对到预先存在的随机数之间的映射。由于文件已经存在于数据库中,所以不需要添加文件的拷贝。
作为例子,考虑表500中的行520,其中要求将文件Z添加到数据库中,但是在562中,确定文件Z是文件X的精确拷贝。(因为文件Z的VH和文件X的VH匹配,所以可以确定文件是相同的)。由于文件X已经存在,所以不需要将文件Z添加到数据库中,但是在572中,将行520添加到表中来提供文件Z的新生成的随机数R(在554中创建)和文件Z的VH。在576中,将来自列504的文件X的随机数添加到行520的列512中,目的是提供从文件Z的随机数到文件实际地址的映射。当然,如果要求实际添加文件Z(文件X的副本),那就没有必要执行步骤576并利用列512,因为在列504中的文件Z的随机数然后会准确地标识数据库中的文件Z。在580后过程结束。
优化实施例使用随机数发生器实现操作数据库中文件的多个拷贝。在该优化中,将数据库中给定文件的多个拷贝删除,只留下数据库中文件的单个拷贝。可以通过循环遍历标识符权限表500中的所有条目寻找匹配的VH值来执行该优化。列508中匹配的VH值指出相同文件的多个拷贝。用于循环经过表中的条目列表寻找匹配的算法为本领域的那些技术人员已知。一旦对于特定文件找到两个或者更多的匹配,就在适当的时候使用列504中的随机数来寻址文件的每个拷贝并删除多个拷贝。最好,保留文件的单个拷贝并且还保留表中每个R-VH对条目。保留每个条目是因为每个文件的地址R也许已经被分发给用户和应用,他们将来将依赖该地址来引用文件。最后,升级标识符权限表以将删除的文件的那些条目映射到文件的单个剩余拷贝。例如,如前说明的,如果文件X和文件Z是拷贝并且文件Z从数据库中删除,那么保留在行520的条目而在列512添加映射以映射文件Z的随机数到文件X的随机数,从而允许有文件Z的地址R的任何用户在文件X的地址R找到该文件的拷贝。当然该技术还用于给定文件的多个版本。
图14是流程图,描述从数据库中检索文件的技术,其中随机数用来标识文件。在这种情形下,用户希望从数据库中检索文件。在610中,用户或者软件应用要求得到特定文件并且会基于先前存储的那个文件的随机数(R)寻找那个文件。用户或者应用从任何存储有R的适合的源获得所要求文件的R。用户或者应用将所要求文件的这个R提交给系统。在614中,通过使用R作为文件的地址或者也许作为文件的文件名,系统使用R来确定所要求的文件是否存在于数据库中。在618中查阅标识符权限表来查找文件的VH。
在622中,计算在数据库中找到的文件的验证散列值(VH)。在626中,将该计算的VH与来自标识符权限表中的条目的该文件的VH比较。如果VH值不同,那么在634中将问题报告给用户,指出和步骤252中所述的相同的可能问题,除了由于散列函数没有用来计算文件的地址(使用了随机数)所以这种情况下散列碰撞是不可能的以外。如果VH值相同,这指出在地址R找到的文件和当在数据库中第一次添加文件时最初存储在该位置的文件是相同的文件。在该步骤相等的VH值可靠地指出找到的文件是用户要求得到的文件。在630中,将文件交付给请求它的用户或者软件应用。
图15说明标识符权限表840的一个实施例,其中前述的附加安全技术也应用于此实施例,并且随机数用来唯一地标识文件。当添加记录时(即,当添加文件或者新的R-VH对时),或者当改变记录时(例如,当添加实际地址时)时,可以使用附加技术。例如,将时间标记848应用于列842-846并且除前一个记录的数字签名外数字签名850还包括所有的以上各列。当然,变体也是可能的,在变体上,将字段包括在时间标记和数字签名中。
计算机系统实施例
本发明可以在各种各样的计算机上实现。在一个预期的实施例中,用于存储和检索文档的计算机硬件是从EMC公司(Hopkinton,Massachusetts)可得的Centera牌计算机。Centera产品说明书指南描述该计算机和它的软件,并且可以在http://www.emc. com/pdf/products/centera/centera_guide.pdf得到,并由此通过引用结合。可以使用Linux和JAVA编写系统软件。在该实施例中,预期Centera计算机是允许用户经由URL供应消息摘要的Web站点的后端,如图1所示。在Web站点服务器上运行的系统软件在Centera和用户之间通过接口连接,并且允许在此所述的文件的插入和检索。在涉及使用随机数发生器的实施例中,可以在任何通用计算机上实现,并且Linux也可以结合从Microsoft公司可得的.NET和C#(“C升音sharp”)语言来使用。
在其他实施例中,文档存储、系统软件和用户接口都驻留在单个计算机上。又在其他实施例中,服务供应商提供与用户接口连接的因特网上的前端用户接口,而后在因特网上或者其他万维网上搜索消息摘要标识的文档,而不是存储文档本身。或者,全分布式对等系统完全基于内容可寻址的存储来检索和保证它的内容。
图16A和16B说明适用于实现本发明实施例的计算机系统900。图16A示出计算机系统的一种可能的物理形式。当然,计算机系统可以有许多物理形式,范围从集成电路、印刷电路板和小型手持设备直至大型超级计算机。计算机系统900包括监视器902、显示器904、机壳906、盘驱动器908、键盘910和鼠标912。盘914是计算机可读介质,用来传送数据到计算机系统900和从计算机系统900传送数据。
图16B是计算机系统900的方框图的例子。附到系统总线920的是各种各样的子系统。将处理器922(也称作中央处理单元,或者CPU)耦合到包括存储器924的存储设备上。存储器924包括随机存取存储器(RAM)和只读存储器(ROM)。如在本领域众所周知的,ROM用于向CPU单向传送数据和指令而RAM通常用于以双向方式传送数据和指令。这两类存储器都可以包括以下所述的任何适合的计算机可读介质。固定盘926还双向耦合到CPU 922上;它提供附加的数据存储容量而且还可以包括任何以下所述的计算机可读介质。固定盘926可以用于存储程序、数据等并且通常是次级存储介质(例如硬盘),比主存储器慢。将理解,在适当情况下,保留在固定盘926中的信息可以作为虚拟存储器以标准方式结合在存储器924中。可移动盘914可以采取以下所述的任何计算机可读介质的形式。
CPU 922还耦合到多种输入/输出设备如显示器904、键盘910、鼠标912和扬声器930。一般而言,输入/输出设备可以是以下任何一种:视频显示器、跟踪球、鼠标、键盘、麦克风、触感式显示器、转换卡阅读器、磁带或纸带阅读器、写字板、指示笔、声音或者笔迹识别器、生物计量阅读器或者其他计算机。CPU 922可以任选地耦合到另一个计算机或者使用网络接口940耦合到电信网络。有了这样的网络接口,预期CPU可以在执行上述方法步骤过程中从网络接收信息或者可以向网络输出信息。此外,本发明的方法实施例可以完全在CPU 922上执行或者可以结合承担一部分处理的远程CPU在例如因特网的网络上执行。
另外,本发明的实施例还涉及带有计算机可读介质的计算机存储产品,其上有用于执行不同的计算机实现的操作的计算机代码。介质和计算机代码可以是特别为本发明设计和构造的那些,或者它们可以是计算机软件领域的技术人员众所周知的和可得到的那类。计算机可读介质的例子包括但不限于:磁介质如硬盘、软盘和磁带;光介质如CD-ROM和全息设备;磁光介质如可光读的盘;以及特别配置来存储和执行程序代码的硬件设备,例如专用集成电路(ASIC)、可编程逻辑设备(PLD)和ROM及RAM设备。计算机代码的例子包括如编译器产生的机器代码和包含使用解释器由计算机执行的更高级代码的文件。
尽管为了理解清晰已经相当详细地描述了前述发明,将明显的是,在所附权利要求的范围内可以实现某些变更和修改。因此,所述实施例应该被看作说明性的而非限制性的,并且本发明不应该限制于在此给出的细节而应该由下面的权利要求和它们等价物的完整范围所定义。
Claims (36)
1.一种将计算机文件添加到数据库的方法,所述方法包括:
接收待添加到所述数据库的所述计算机文件;
计算所述文件的唯一标识符,所述唯一标识符用于标识在所述数据库中的唯一位置;
使用验证散列函数计算所述文件的验证散列值,所述验证散列值不同于所述唯一标识符,所述验证散列值用于验证所述文件的内容;
在所述唯一标识符标识的所述位置将所述文件存储在所述数据库中;以及
将所述唯一标识符和所述验证散列值添加到与所述数据库关联的数据结构,其中所述唯一标识符和所述验证散列值在所述数据结构中相互关联,由此所述将所述唯一标识符和所述验证散列值添加到所述数据结构指出在所述数据库中存在所述文件。
2.如权利要求1所述的方法,还包括:
确定所述文件的拷贝是否存在于所述数据库中;
当确定所述文件的拷贝存在于所述数据库中时,使用所述验证散列函数计算所述文件的所述拷贝的拷贝散列值并将所述验证散列值与所述拷贝散列值比较;以及
当确定所述验证散列值与所述拷贝散列值匹配时,采取操作。
3.如权利要求1所述的方法,还包括:
通过搜索所述数据结构找寻与所述唯一标识符匹配的值,确定所述文件的拷贝是否已经存在于所述数据库中。
4.如权利要求2所述的方法,还包括:
通过搜索所述数据结构找寻与所述唯一标识符匹配的值,确定所述文件的拷贝是否存在于所述数据库中。
5.如权利要求1所述的方法,其中所述数据结构是表、列表或者树状数据结构。
6.如权利要求1所述的方法,其中根据第一散列函数计算所述唯一标识符,并且所述验证散列函数提供比所述第一散列函数更强的安全性。
7.如权利要求1所述的方法,其中所述唯一标识符是使用标识散列函数从所述文件中计算出的标识散列值,是使用随机数发生器生成的随机数,或是使用伪随机数发生器生成的伪随机数。
8.如权利要求1所述的方法,其中所述验证散列值是唯一的、基于内容的标识符。
9.一种从数据库中检索要求的计算机文件的方法,所述方法包括:
获得所述要求的计算机文件的唯一标识符,所述唯一标识符用于标识在所述数据库中的唯一位置;
使用所述唯一标识符作为引用从所述数据库中检索存储的文件;
通过使用所述唯一标识符从与所述数据库关联的数据结构中检索唯一标识符—验证散列值对,其中先前已使用验证散列函数导出所检索的验证散列值;
使用所述验证散列函数计算所述存储的文件的验证散列值;
将所计算的验证散列值与所检索的验证散列值比较;以及
当所计算的验证散列值与所检索的验证散列值匹配时,确定所述存储的文件是所述要求的文件,所计算的验证散列值用于验证所述存储的文件的内容,由此从所述数据库中检索所述要求的文件。
10.如权利要求9所述的方法,还包括:
从用户接收检索所述要求的文件的请求,所述请求包括所述唯一标识符;以及
当确定所述存储的文件是所述要求的文件时,将所述存储的文件交付给所述用户。
11.如权利要求9所述的方法,还包括:
通过搜索所述数据结构找寻所述唯一标识符,执行所述检索存储的文件的步骤。
12.如权利要求9所述的方法,其中所述数据结构是表、列表或者树状数据结构。
13.如权利要求9所述的方法,其中根据第一散列函数计算所述唯一标识符,并且所述验证散列函数提供比所述第一散列函数更强的安全性。
14.如权利要求9所述的方法,其中所述唯一标识符是使用标识散列函数从所述文件中计算出的标识散列值,是使用随机数发生器生成的随机数,或是使用伪随机数发生器生成的伪随机数。
15.如权利要求9所述的方法,其中所述验证散列值是唯一的、基于内容的标识符。
16.一种将散列权限功能添加到文件数据库的方法,所述方法包括:
创建散列权限数据结构,所述数据结构包括多个条目;
检索所述数据库中文件的唯一标识符,所述唯一标识符用于标识所述文件在所述数据库中的唯一位置;
从所述数据库中检索所述文件;
使用验证散列函数计算所述文件的验证散列值,所述验证散列值不同于所述唯一标识符,所述验证散列值用于验证所述文件的内容;
将所述唯一标识符和所述验证散列值添加到所述散列权限数据结构的所述条目之一,在所述数据库中所述唯一标识符和所述验证散列值相互关联。
17.如权利要求16所述的方法,其中所述散列权限数据结构是表、列表或者树状数据结构。
18.如权利要求16所述的方法,其中根据寻址散列函数计算所述唯一标识符,并且所述验证散列函数提供比所述寻址散列函数更强的安全性。
19.如权利要求16所述的方法,还包括:
对于所述数据库中所述多个文件的其余每个执行权利要求16的最后四个步骤。
20.如权利要求16所述的方法,其中所述唯一标识符是使用标识散列函数从所述文件中计算出的标识散列值,是使用随机数发生器生成的随机数,或是使用伪随机数发生器生成的伪随机数。
21.如权利要求16所述的方法,其中所述验证散列值是唯一的、基于内容的标识符。
22.一种在文件数据库中升级验证散列函数的方法,所述方法包括:
访问表示所述文件数据库的数据结构,所述数据结构包括所述数据库中每个所述文件的唯一标识符—验证散列值对,其中先前已使用对每个文件的内容起作用的所述验证散列函数来计算出所述每个文件的验证散列值,所述每个文件的验证散列值不同于所述每个文件的唯一标识符,并且所述唯一标识符用于标识所述文件在所述数据库中的唯一位置;以及
对于所述数据库中的每个所述文件,
检索所述文件,
使用更强的验证散列函数计算所述文件的新的验证散列值,所述新的验证散列值用于验证所述文件的内容,并且
将所述新的验证散列值添加到所述数据结构并与所述文件的所述唯一标识符关联以形成所述文件的升级的唯一标识符—新的验证散列值对。
23.如权利要求22所述的方法,其中所述数据结构是表、列表或者树状数据结构。
24.如权利要求22所述的方法,其中所述唯一标识符是使用标识散列函数从所述文件中计算出的标识散列值,是使用随机数发生器生成的随机数,或是使用伪随机数发生器生成的伪随机数。
25.如权利要求22所述的方法,其中所述验证散列值是唯一的、基于内容的标识符。
26.一种使用随机数发生器将计算机文件添加到数据库的方法,所述方法包括:
接收待添加到所述数据库的所述计算机文件;
使用所述随机数发生器生成所述文件的随机数;
使用验证散列函数计算所述文件的验证散列值,所述验证散列值不同于所述随机数,所述验证散列值用于验证所述计算机文件的内容;
在所述随机数标识的唯一位置将所述文件存储在所述数据库中;以及
将所述随机数和所述验证散列值添加到与所述数据库关联的数据结构中的条目,其中所述随机数和所述验证散列值在所述数据结构中相互关联,由此所述数据结构中所述条目的添加指出所述数据库中所述文件的存在。
27.如权利要求26所述的方法,还包括:
通过搜索所述数据结构找寻与所述验证散列值匹配的值,确定所述文件的拷贝是否已经存在于所述数据库中。
28.如权利要求26所述的方法,其中所述数据结构是表、列表或者树状数据结构。
29.一种使用随机数发生器将计算机文件添加到文件数据库的方法,所述方法包括:
接收待添加到所述数据库的所述计算机文件;
访问表示所述数据库的数据结构,所述数据结构包括所述数据库中每个所述文件的随机数—验证散列值对,其中已使用所述随机数发生器计算出所述随机数,并且已使用验证散列函数计算出所述验证散列值;
使用所述验证散列函数计算所述文件的新的验证散列值;
通过搜索所述数据结构找寻与所述新的验证散列值匹配的值,确定所述文件的拷贝是否已经存在于所述数据库中;
当确定所述文件的拷贝已经存在于所述数据库中时,将与所述文件的所述拷贝关联的随机数返回给用户,所述随机数与所述新的验证散列值关联。
30.如权利要求29所述的方法,其中所述数据结构是表、列表或者树状数据结构。
31.一种使用随机数发生器将计算机文件添加到文件数据库的方法,所述方法包括:
接收待添加到所述数据库的所述计算机文件;
使用所述随机数发生器生成所述文件的第一随机数;
访问表示所述数据库的数据结构,所述数据结构包括所述数据库中每个所述文件的随机数—验证散列值对,其中已使用所述随机数发生器计算出所述随机数,并且已使用验证散列函数计算出所述验证散列值;
使用所述验证散列函数计算所述文件的新的验证散列值;
通过搜索所述数据结构找寻与所述新的验证散列值匹配的值,确定所述文件的拷贝是否已经存在于所述数据库中;
当确定所述文件的拷贝已经存在于所述数据库中时,
将所述第一随机数和所述新的验证散列值作为条目添加到所述数据结构,
从所述数据结构中检索与所述文件的所述拷贝关联的第二随机数,
将把所述第一随机数映射到所述第二随机数的映射添加到所述条目,由此所述第一随机数的引用映射到所述第二随机数以便于访问所述文件。
32.如权利要求31所述的方法,其中所述数据结构是表、列表或者树状数据结构。
33.一种使用随机数发生器从数据库中检索要求的计算机文件的方法,所述方法包括:
获得与所述要求的计算机文件关联的随机数,已使用所述随机数发生器为所述文件生成所述随机数;
使用所述随机数作为引用从所述数据库中检索存储的文件;
使用所述随机数从与所述数据库关联的数据结构中查找关联的第一散列值,其中已使用验证散列函数从所述存储的文件中计算出所述第一散列值;
使用所述验证散列函数计算所述存储的文件的第二散列值;
将所述第一散列值与所述第二散列值比较;以及
当所述第一散列值与所述第二散列值匹配时,确定所述存储的文件是所述要求的文件,由此从所述数据库中检索所述要求的文件。
34.如权利要求33所述的方法,还包括:
当确定所述存储的文件是所述要求的文件时,将所述存储的文件交付给用户。
35.如权利要求33所述的方法,还包括:
通过搜索所述数据结构找寻所述随机数,执行所述检索存储的文件的步骤。
36.如权利要求33所述的方法,其中所述数据结构是表、列表或者树状数据结构。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US44917203P | 2003-02-21 | 2003-02-21 | |
US60/449,172 | 2003-02-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1777853A CN1777853A (zh) | 2006-05-24 |
CN100524153C true CN100524153C (zh) | 2009-08-05 |
Family
ID=32908691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800105493A Expired - Lifetime CN100524153C (zh) | 2003-02-21 | 2004-02-19 | 在数据库中添加、检索计算机文件的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7373345B2 (zh) |
EP (1) | EP1595197A2 (zh) |
JP (1) | JP4991283B2 (zh) |
CN (1) | CN100524153C (zh) |
AU (1) | AU2004214014B2 (zh) |
CA (1) | CA2516741C (zh) |
WO (1) | WO2004074968A2 (zh) |
Families Citing this family (230)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
US20100235916A1 (en) * | 2001-12-21 | 2010-09-16 | Radatti Peter V | Apparatus and method for computer virus detection and remediation and self-repair of damaged files and/or objects |
US7337471B2 (en) * | 2002-10-07 | 2008-02-26 | Symantec Corporation | Selective detection of malicious computer code |
US7260847B2 (en) * | 2002-10-24 | 2007-08-21 | Symantec Corporation | Antivirus scanning in a hard-linked environment |
US7263521B2 (en) * | 2002-12-10 | 2007-08-28 | Caringo, Inc. | Navigation of the content space of a document set |
US7373664B2 (en) * | 2002-12-16 | 2008-05-13 | Symantec Corporation | Proactive protection against e-mail worms and spam |
US20040158546A1 (en) * | 2003-02-06 | 2004-08-12 | Sobel William E. | Integrity checking for software downloaded from untrusted sources |
US7293290B2 (en) * | 2003-02-06 | 2007-11-06 | Symantec Corporation | Dynamic detection of computer worms |
US7246227B2 (en) * | 2003-02-10 | 2007-07-17 | Symantec Corporation | Efficient scanning of stream based data |
US7546638B2 (en) * | 2003-03-18 | 2009-06-09 | Symantec Corporation | Automated identification and clean-up of malicious computer code |
US9678967B2 (en) * | 2003-05-22 | 2017-06-13 | Callahan Cellular L.L.C. | Information source agent systems and methods for distributed data storage and management using content signatures |
US7412449B2 (en) * | 2003-05-23 | 2008-08-12 | Sap Aktiengesellschaft | File object storage and retrieval using hashing techniques |
US7143251B1 (en) * | 2003-06-30 | 2006-11-28 | Data Domain, Inc. | Data storage using identifiers |
US7739278B1 (en) * | 2003-08-22 | 2010-06-15 | Symantec Corporation | Source independent file attribute tracking |
JP4307982B2 (ja) | 2003-12-19 | 2009-08-05 | 株式会社日立製作所 | データ多重化制御方法 |
US7707039B2 (en) | 2004-02-15 | 2010-04-27 | Exbiblio B.V. | Automatic modification of web pages |
US8442331B2 (en) | 2004-02-15 | 2013-05-14 | Google Inc. | Capturing text from rendered documents using supplemental information |
US7812860B2 (en) | 2004-04-01 | 2010-10-12 | Exbiblio B.V. | Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device |
US10635723B2 (en) | 2004-02-15 | 2020-04-28 | Google Llc | Search engines and systems with handheld document data capture devices |
US9229646B2 (en) * | 2004-02-26 | 2016-01-05 | Emc Corporation | Methods and apparatus for increasing data storage capacity |
US20060098900A1 (en) | 2004-09-27 | 2006-05-11 | King Martin T | Secure data gathering from rendered documents |
US20060081714A1 (en) | 2004-08-23 | 2006-04-20 | King Martin T | Portable scanning device |
US9116890B2 (en) | 2004-04-01 | 2015-08-25 | Google Inc. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
US7894670B2 (en) | 2004-04-01 | 2011-02-22 | Exbiblio B.V. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
US9008447B2 (en) | 2004-04-01 | 2015-04-14 | Google Inc. | Method and system for character recognition |
US8081849B2 (en) | 2004-12-03 | 2011-12-20 | Google Inc. | Portable scanning and memory device |
US9143638B2 (en) | 2004-04-01 | 2015-09-22 | Google Inc. | Data capture from rendered documents using handheld device |
US7990556B2 (en) | 2004-12-03 | 2011-08-02 | Google Inc. | Association of a portable scanner with input/output and storage devices |
WO2008028674A2 (en) | 2006-09-08 | 2008-03-13 | Exbiblio B.V. | Optical scanners, such as hand-held optical scanners |
US8146156B2 (en) | 2004-04-01 | 2012-03-27 | Google Inc. | Archive of text captures from rendered documents |
US7130981B1 (en) | 2004-04-06 | 2006-10-31 | Symantec Corporation | Signature driven cache extension for stream based scanning |
US8713418B2 (en) | 2004-04-12 | 2014-04-29 | Google Inc. | Adding value to a rendered document |
US8489624B2 (en) | 2004-05-17 | 2013-07-16 | Google, Inc. | Processing techniques for text capture from a rendered document |
US8620083B2 (en) | 2004-12-03 | 2013-12-31 | Google Inc. | Method and system for character recognition |
US8874504B2 (en) | 2004-12-03 | 2014-10-28 | Google Inc. | Processing techniques for visual capture data from a rendered document |
US7240151B1 (en) * | 2004-04-30 | 2007-07-03 | Emc Corporation | Methods and apparatus for transferring data in a content addressable computer system |
US7240150B1 (en) * | 2004-04-30 | 2007-07-03 | Emc Corporation | Methods and apparatus for processing access requests in a content addressable computer system |
US7428611B1 (en) * | 2004-04-30 | 2008-09-23 | Emc Corporation | Methods and apparatus for forwarding access requests in a content addressable computer system |
US7861304B1 (en) | 2004-05-07 | 2010-12-28 | Symantec Corporation | Pattern matching using embedded functions |
US7949666B2 (en) | 2004-07-09 | 2011-05-24 | Ricoh, Ltd. | Synchronizing distributed work through document logs |
US8346620B2 (en) | 2004-07-19 | 2013-01-01 | Google Inc. | Automatic modification of web pages |
US7617297B2 (en) * | 2004-07-26 | 2009-11-10 | International Business Machines Corporation | Providing archiving of individual mail content while maintaining a single copy mail store |
US8069269B2 (en) * | 2004-08-04 | 2011-11-29 | Emc Corporation | Methods and apparatus for accessing content in a virtual pool on a content addressable storage system |
GB2418748B (en) * | 2004-09-29 | 2010-06-09 | Codemasters Software Co | Directory structures for composite data files |
US7457813B2 (en) | 2004-10-06 | 2008-11-25 | Burnside Acquisition, Llc | Storage system for randomly named blocks of data |
US8161013B2 (en) | 2004-11-08 | 2012-04-17 | Emc Corporation | Implementing application specific management policies on a content addressed storage device |
US7444464B2 (en) * | 2004-11-08 | 2008-10-28 | Emc Corporation | Content addressed storage device configured to maintain content address mapping |
EP1825342A1 (en) | 2004-11-22 | 2007-08-29 | Nokia Corporation | Method and device for verifying the integrity of platform software of an electronic device |
US20060129602A1 (en) * | 2004-12-15 | 2006-06-15 | Microsoft Corporation | Enable web sites to receive and process e-mail |
US7613701B2 (en) * | 2004-12-22 | 2009-11-03 | International Business Machines Corporation | Matching of complex nested objects by multilevel hashing |
US7698516B2 (en) * | 2005-01-12 | 2010-04-13 | Emc Corporation | Methods and apparatus for managing deletion of data |
US7693050B2 (en) | 2005-04-14 | 2010-04-06 | Microsoft Corporation | Stateless, affinity-preserving load balancing |
US7392235B2 (en) | 2005-04-15 | 2008-06-24 | Emc Corporation | Methods and apparatus for retrieval of content units in a time-based directory structure |
EP1869593B1 (en) | 2005-04-15 | 2018-08-22 | Emc Corporation | Methods and apparatus for managing the storage of content |
US7765191B2 (en) | 2005-04-15 | 2010-07-27 | Emc Corporation | Methods and apparatus for managing the replication of content |
US7734732B2 (en) * | 2005-05-12 | 2010-06-08 | At&T Mobility Ii Llc | System, apparatus and methods for storing links to media files in network storage |
US7370048B2 (en) * | 2005-05-27 | 2008-05-06 | International Business Machines Corporation | File storage method and apparatus |
US7805470B2 (en) | 2005-06-23 | 2010-09-28 | Emc Corporation | Methods and apparatus for managing the storage of content in a file system |
EP1894127B1 (en) * | 2005-06-23 | 2010-07-07 | EMC Corporation | Methods and apparatus for managing the storage of content in a file system |
US7975303B1 (en) | 2005-06-27 | 2011-07-05 | Symantec Corporation | Efficient file scanning using input-output hints |
US7895654B1 (en) | 2005-06-27 | 2011-02-22 | Symantec Corporation | Efficient file scanning using secure listing of file modification times |
CA2513022A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | System and method for communicating state management between a browser user-agent and a mobile data server |
CA2513010A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A method for detecting state changes between data stored in a first computing device and data retrieved from a second computing device |
CA2513018A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | Method for training a proxy server for content delivery based on communication of state information from a mobile device browser |
CA2513019A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A method for communicating state information between a server and a mobile device browser with version handling |
CA2513014A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A method of controlling delivery of multi-part content from an origin server to a mobile device browser via a proxy server |
CA2513016A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A secure method of synchronizing cache contents of a mobile browser with a proxy server |
JP4810915B2 (ja) * | 2005-07-28 | 2011-11-09 | 日本電気株式会社 | データ検索装置及び方法、並びにコンピュータ・プログラム |
EP1927060B1 (en) * | 2005-08-09 | 2019-10-09 | Nexsan Technologies Canada Inc. | Data archiving method and system |
GB2429545A (en) * | 2005-08-22 | 2007-02-28 | Ericsson Telefon Ab L M | Securely storing and access data |
US9311398B2 (en) * | 2005-11-15 | 2016-04-12 | Ebay Inc. | Method and system to process navigation information |
US7958101B1 (en) * | 2006-01-03 | 2011-06-07 | Emc Corporation | Methods and apparatus for mounting a file system |
US8095542B1 (en) * | 2006-01-03 | 2012-01-10 | Emc Corporation | Methods and apparatus for allowing access to content |
US7734603B1 (en) * | 2006-01-26 | 2010-06-08 | Netapp, Inc. | Content addressable storage array element |
US8560503B1 (en) | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
DE102006014327A1 (de) * | 2006-03-23 | 2007-09-27 | Siemens Ag | Verfahren zum Überwachen der Datenintegrität |
WO2007131190A2 (en) | 2006-05-05 | 2007-11-15 | Hybir Inc. | Group based complete and incremental computer file backup system, process and apparatus |
US20070283158A1 (en) * | 2006-06-02 | 2007-12-06 | Microsoft Corporation Microsoft Patent Group | System and method for generating a forensic file |
US8190915B2 (en) * | 2006-06-14 | 2012-05-29 | Oracle International Corporation | Method and apparatus for detecting data tampering within a database |
US8826023B1 (en) * | 2006-06-30 | 2014-09-02 | Symantec Operating Corporation | System and method for securing access to hash-based storage systems |
US8479004B2 (en) * | 2006-08-31 | 2013-07-02 | Ricoh Co., Ltd | Paper-based document logging |
DE102006055964A1 (de) * | 2006-11-24 | 2008-05-29 | Bdt-Solutions Gmbh | Verfahren und Vorrichtung zur Datensicherung |
US8892532B2 (en) * | 2006-12-06 | 2014-11-18 | Lsi Corporation | Document management with verifiable time-of-archive capability |
US7840537B2 (en) * | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US7689608B2 (en) * | 2007-02-20 | 2010-03-30 | At&T Intellectual Property I, L.P. | Methods, systems and computer program products for controlling network asset recovery |
US8006094B2 (en) * | 2007-02-21 | 2011-08-23 | Ricoh Co., Ltd. | Trustworthy timestamps and certifiable clocks using logs linked by cryptographic hashes |
US20080235163A1 (en) * | 2007-03-22 | 2008-09-25 | Srinivasan Balasubramanian | System and method for online duplicate detection and elimination in a web crawler |
JP5181504B2 (ja) * | 2007-03-22 | 2013-04-10 | 富士通株式会社 | データ処理方法、プログラム及び情報処理装置 |
US7904557B1 (en) * | 2007-03-26 | 2011-03-08 | Emc Corporation | Granting access to a content unit stored on an object addressable storage system |
US20080243688A1 (en) * | 2007-03-28 | 2008-10-02 | Hart Peter E | Method and Apparatus for Recording Transactions with a Portable Logging Device |
US8996483B2 (en) | 2007-03-28 | 2015-03-31 | Ricoh Co., Ltd. | Method and apparatus for recording associations with logs |
US20080263193A1 (en) * | 2007-04-17 | 2008-10-23 | Chalemin Glen E | System and Method for Automatically Providing a Web Resource for a Broken Web Link |
US20090055906A1 (en) * | 2007-08-20 | 2009-02-26 | Infineon Technologies Ag | Method and apparatus for embedded memory security |
US8234283B2 (en) * | 2007-09-20 | 2012-07-31 | International Business Machines Corporation | Search reporting apparatus, method and system |
US8295486B2 (en) | 2007-09-28 | 2012-10-23 | Research In Motion Limited | Systems, devices, and methods for outputting alerts to indicate the use of a weak hash function |
US9424266B2 (en) * | 2007-10-01 | 2016-08-23 | Microsoft Technology Licensing, Llc | Efficient file hash identifier computation |
US8285718B1 (en) * | 2007-12-21 | 2012-10-09 | CastTV Inc. | Clustering multimedia search |
US8114117B2 (en) * | 2008-09-30 | 2012-02-14 | Tyco Healthcare Group Lp | Compression device with wear area |
US8661428B2 (en) * | 2008-04-25 | 2014-02-25 | Vmware, Inc. | Updating a file using differences and file format therefor |
US8752185B2 (en) * | 2008-05-01 | 2014-06-10 | Yahoo! Inc. | Method for media fingerprinting |
US10262136B1 (en) * | 2008-08-04 | 2019-04-16 | Zscaler, Inc. | Cloud-based malware detection |
US7738454B1 (en) * | 2008-09-30 | 2010-06-15 | Juniper Networks, Inc. | Methods and apparatus related to packet classification based on range values |
US7835357B2 (en) * | 2008-09-30 | 2010-11-16 | Juniper Networks, Inc. | Methods and apparatus for packet classification based on policy vectors |
US7961734B2 (en) * | 2008-09-30 | 2011-06-14 | Juniper Networks, Inc. | Methods and apparatus related to packet classification associated with a multi-stage switch |
US7796541B1 (en) | 2008-09-30 | 2010-09-14 | Juniper Networks, Inc. | Methods and apparatus for range matching during packet classification based on a linked-node structure |
US8675648B1 (en) | 2008-09-30 | 2014-03-18 | Juniper Networks, Inc. | Methods and apparatus for compression in packet classification |
US8804950B1 (en) | 2008-09-30 | 2014-08-12 | Juniper Networks, Inc. | Methods and apparatus for producing a hash value based on a hash function |
US8798057B1 (en) | 2008-09-30 | 2014-08-05 | Juniper Networks, Inc. | Methods and apparatus to implement except condition during data packet classification |
US8447989B2 (en) * | 2008-10-02 | 2013-05-21 | Ricoh Co., Ltd. | Method and apparatus for tamper proof camera logs |
US8185733B2 (en) | 2008-10-02 | 2012-05-22 | Ricoh Co., Ltd. | Method and apparatus for automatically publishing content based identifiers |
JP4962483B2 (ja) * | 2008-12-19 | 2012-06-27 | 日本電気株式会社 | 情報処理装置 |
US7889741B1 (en) | 2008-12-31 | 2011-02-15 | Juniper Networks, Inc. | Methods and apparatus for packet classification based on multiple conditions |
US8111697B1 (en) | 2008-12-31 | 2012-02-07 | Juniper Networks, Inc. | Methods and apparatus for packet classification based on multiple conditions |
US8488588B1 (en) | 2008-12-31 | 2013-07-16 | Juniper Networks, Inc. | Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric |
US8806220B2 (en) * | 2009-01-07 | 2014-08-12 | Microsoft Corporation | Device side host integrity validation |
US9268779B2 (en) * | 2009-01-28 | 2016-02-23 | Mckesson Financial Holdings | Methods, computer program products, and apparatuses for dispersing content items |
CN102369724B (zh) | 2009-02-18 | 2016-05-04 | 谷歌公司 | 自动捕获信息,例如使用文档感知设备捕获信息 |
CN101482887B (zh) * | 2009-02-18 | 2013-01-09 | 北京数码视讯科技股份有限公司 | 数据库关键数据的防篡改检验方法 |
US8447066B2 (en) | 2009-03-12 | 2013-05-21 | Google Inc. | Performing actions based on capturing information from rendered documents, such as documents under copyright |
WO2010105245A2 (en) | 2009-03-12 | 2010-09-16 | Exbiblio B.V. | Automatically providing content associated with captured information, such as information captured in real-time |
US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US9122729B2 (en) * | 2009-07-31 | 2015-09-01 | Cumulus Data Llc | Chain-of-custody for archived data |
US8953603B2 (en) | 2009-10-28 | 2015-02-10 | Juniper Networks, Inc. | Methods and apparatus related to a distributed switch fabric |
US8369523B2 (en) * | 2009-11-24 | 2013-02-05 | International Business Machines Corporation | Surrogate key generation using cryptographic hashing |
US9081799B2 (en) | 2009-12-04 | 2015-07-14 | Google Inc. | Using gestalt information to identify locations in printed information |
US9323784B2 (en) | 2009-12-09 | 2016-04-26 | Google Inc. | Image search using text-based elements within the contents of images |
US9195500B1 (en) | 2010-02-09 | 2015-11-24 | F5 Networks, Inc. | Methods for seamless storage importing and devices thereof |
US8819208B2 (en) | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
US8428045B2 (en) * | 2010-03-16 | 2013-04-23 | Harman International Industries, Incorporated | Media clock recovery |
US8874607B2 (en) | 2010-08-17 | 2014-10-28 | Fujitsu Limited | Representing sensor data as binary decision diagrams |
US9002781B2 (en) | 2010-08-17 | 2015-04-07 | Fujitsu Limited | Annotating environmental data represented by characteristic functions |
US8645108B2 (en) | 2010-08-17 | 2014-02-04 | Fujitsu Limited | Annotating binary decision diagrams representing sensor data |
US8930394B2 (en) | 2010-08-17 | 2015-01-06 | Fujitsu Limited | Querying sensor data stored as binary decision diagrams |
US9138143B2 (en) | 2010-08-17 | 2015-09-22 | Fujitsu Limited | Annotating medical data represented by characteristic functions |
US8583718B2 (en) | 2010-08-17 | 2013-11-12 | Fujitsu Limited | Comparing boolean functions representing sensor data |
US8572146B2 (en) | 2010-08-17 | 2013-10-29 | Fujitsu Limited | Comparing data samples represented by characteristic functions |
US8495038B2 (en) * | 2010-08-17 | 2013-07-23 | Fujitsu Limited | Validating sensor data represented by characteristic functions |
US8745064B2 (en) * | 2010-09-13 | 2014-06-03 | Lumension Security, Inc. | Systems and methods for operating a saturated hash table |
US8935492B2 (en) | 2010-09-30 | 2015-01-13 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US9286298B1 (en) | 2010-10-14 | 2016-03-15 | F5 Networks, Inc. | Methods for enhancing management of backup data sets and devices thereof |
US9384198B2 (en) | 2010-12-10 | 2016-07-05 | Vertafore, Inc. | Agency management system and content management system integration |
US9282060B2 (en) | 2010-12-15 | 2016-03-08 | Juniper Networks, Inc. | Methods and apparatus for dynamic resource management within a distributed control plane of a switch |
US20130036103A1 (en) * | 2011-08-04 | 2013-02-07 | The Boeing Company | Software Part Validation Using Hash Values |
US9177247B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Partitioning medical binary decision diagrams for analysis optimization |
US9075908B2 (en) | 2011-09-23 | 2015-07-07 | Fujitsu Limited | Partitioning medical binary decision diagrams for size optimization |
US8781995B2 (en) | 2011-09-23 | 2014-07-15 | Fujitsu Limited | Range queries in binary decision diagrams |
US9176819B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Detecting sensor malfunctions using compression analysis of binary decision diagrams |
US8909592B2 (en) | 2011-09-23 | 2014-12-09 | Fujitsu Limited | Combining medical binary decision diagrams to determine data correlations |
US8719214B2 (en) | 2011-09-23 | 2014-05-06 | Fujitsu Limited | Combining medical binary decision diagrams for analysis optimization |
US8838523B2 (en) | 2011-09-23 | 2014-09-16 | Fujitsu Limited | Compression threshold analysis of binary decision diagrams |
US8620854B2 (en) | 2011-09-23 | 2013-12-31 | Fujitsu Limited | Annotating medical binary decision diagrams with health state information |
US8812943B2 (en) | 2011-09-23 | 2014-08-19 | Fujitsu Limited | Detecting data corruption in medical binary decision diagrams using hashing techniques |
US9069707B1 (en) | 2011-11-03 | 2015-06-30 | Permabit Technology Corp. | Indexing deduplicated data |
US8976647B2 (en) * | 2011-11-08 | 2015-03-10 | Futurewei Technologies, Inc. | Hardware-based dynamic load balancing that avoids flow packet reordering statistically |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
EP2615773B1 (en) * | 2012-01-10 | 2015-12-16 | Thomson Licensing | Method and device for timestamping data and method and device for verification of a timestamp |
US9020912B1 (en) | 2012-02-20 | 2015-04-28 | F5 Networks, Inc. | Methods for accessing data in a compressed file system and devices thereof |
US9032183B2 (en) | 2012-02-24 | 2015-05-12 | Simplivity Corp. | Method and apparatus for content derived data placement in memory |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US8762353B2 (en) * | 2012-06-13 | 2014-06-24 | Caringo, Inc. | Elimination of duplicate objects in storage clusters |
US9104560B2 (en) | 2012-06-13 | 2015-08-11 | Caringo, Inc. | Two level addressing in storage clusters |
US8799746B2 (en) | 2012-06-13 | 2014-08-05 | Caringo, Inc. | Erasure coding and replication in storage clusters |
US9736121B2 (en) | 2012-07-16 | 2017-08-15 | Owl Cyber Defense Solutions, Llc | File manifest filter for unidirectional transfer of files |
US9135323B2 (en) * | 2012-09-13 | 2015-09-15 | Raytheon Company | System and method for classifying data dump data |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US10218586B2 (en) | 2013-01-23 | 2019-02-26 | Owl Cyber Defense Solutions, Llc | System and method for enabling the capture and securing of dynamically selected digital information |
US8776254B1 (en) | 2013-01-23 | 2014-07-08 | Owl Computing Technologies, Inc. | System and method for the secure unidirectional transfer of software and software updates |
US9306953B2 (en) | 2013-02-19 | 2016-04-05 | Owl Computing Technologies, Inc. | System and method for secure unidirectional transfer of commands to control equipment |
US9953042B1 (en) | 2013-03-01 | 2018-04-24 | Red Hat, Inc. | Managing a deduplicated data index |
CN109905726B (zh) * | 2013-03-15 | 2021-06-04 | 构造数据有限责任公司 | 实时电视广告检测的系统和方法 |
US20150381734A1 (en) * | 2013-10-02 | 2015-12-31 | Hitachi, Ltd. | Storage system and storage system control method |
US9659023B2 (en) * | 2013-11-21 | 2017-05-23 | Upthere, Inc. | Maintaining and using a cache of child-to-parent mappings in a content-addressable storage system |
US9495373B2 (en) | 2013-12-06 | 2016-11-15 | International Business Machines Corporation | File versions within content addressable storage |
US9483481B2 (en) | 2013-12-06 | 2016-11-01 | International Business Machines Corporation | Files having unallocated portions within content addressable storage |
US9507814B2 (en) * | 2013-12-10 | 2016-11-29 | Vertafore, Inc. | Bit level comparator systems and methods |
US9367435B2 (en) | 2013-12-12 | 2016-06-14 | Vertafore, Inc. | Integration testing method and system for web services |
US9256549B2 (en) | 2014-01-17 | 2016-02-09 | Netapp, Inc. | Set-associative hash table organization for efficient storage and retrieval of data in a storage system |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US9311329B2 (en) | 2014-06-05 | 2016-04-12 | Owl Computing Technologies, Inc. | System and method for modular and continuous data assurance |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US20160191449A1 (en) * | 2014-07-28 | 2016-06-30 | Chatsee Inc. | Random content messaging system and method |
US9747556B2 (en) | 2014-08-20 | 2017-08-29 | Vertafore, Inc. | Automated customized web portal template generation systems and methods |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US9152500B1 (en) * | 2014-09-22 | 2015-10-06 | Storagecraft Technology Corporation | Hash collision recovery in a deduplication vault |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US10834065B1 (en) | 2015-03-31 | 2020-11-10 | F5 Networks, Inc. | Methods for SSL protected NTLM re-authentication and devices thereof |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
KR101563494B1 (ko) * | 2015-05-28 | 2015-10-27 | 소프트포럼 주식회사 | 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법 |
US9811333B2 (en) | 2015-06-23 | 2017-11-07 | Microsoft Technology Licensing, Llc | Using a version-specific resource catalog for resource management |
US9965639B2 (en) * | 2015-07-17 | 2018-05-08 | International Business Machines Corporation | Source authentication of a software product |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US9825970B2 (en) * | 2015-10-05 | 2017-11-21 | Verizon Patent And Licensing Inc. | Managing access to content for a sponsored data campaign |
US9600400B1 (en) | 2015-10-29 | 2017-03-21 | Vertafore, Inc. | Performance testing of web application components using image differentiation |
US10614038B1 (en) * | 2015-12-28 | 2020-04-07 | EMC IP Holding Company LLC | Inline deduplication of compressed data |
US10404698B1 (en) | 2016-01-15 | 2019-09-03 | F5 Networks, Inc. | Methods for adaptive organization of web application access points in webtops and devices thereof |
US10713589B1 (en) * | 2016-03-03 | 2020-07-14 | Amazon Technologies, Inc. | Consistent sort-based record-level shuffling of machine learning data |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US10592669B2 (en) | 2016-06-23 | 2020-03-17 | Vmware, Inc. | Secure booting of computer system |
CN106250440B (zh) * | 2016-07-26 | 2019-07-09 | 金蝶软件(中国)有限公司 | 文档管理方法和装置 |
HUP1600467A2 (en) * | 2016-07-26 | 2018-03-28 | Intersoft Hungary Kft | Method and system for authentically determining the identity of an electronic document and copy or futureversion |
US10242196B2 (en) * | 2016-07-29 | 2019-03-26 | Vmware, Inc. | Secure booting of computer system |
US10142109B2 (en) * | 2016-08-16 | 2018-11-27 | Hewlett Packard Enterprise Development Lp | Instantiating containers |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
DE102016220656A1 (de) * | 2016-10-21 | 2018-04-26 | Bundesdruckerei Gmbh | Bereitstellung und Prüfung der Gültigkeit eines virtuellen Dokuments |
GB2555476A (en) * | 2016-10-31 | 2018-05-02 | Philip Hartley Robin | Apparatuses and methods for signing a legal document |
US11488135B2 (en) | 2016-11-23 | 2022-11-01 | Observa, Inc. | System and method for using user rating in real-world data observation campaign |
GB2561562A (en) * | 2017-04-18 | 2018-10-24 | F Secure Corp | Method for detecting and preventing an attack |
US11010300B2 (en) | 2017-05-04 | 2021-05-18 | Hewlett Packard Enterprise Development Lp | Optimized record lookups |
CN107395574B (zh) * | 2017-06-30 | 2021-05-07 | 上海策赢网络科技有限公司 | 信息标识、信息请求及提供方法和装置、存储介质和设备 |
US10700711B1 (en) | 2017-11-03 | 2020-06-30 | Caringo Inc. | Multi-part upload and editing of erasure-coded objects |
US11055280B2 (en) * | 2017-11-27 | 2021-07-06 | Snowflake Inc. | Batch data ingestion in database systems |
US11243703B2 (en) | 2018-04-27 | 2022-02-08 | Hewlett Packard Enterprise Development Lp | Expandable index with pages to store object records |
US11488182B2 (en) * | 2018-06-22 | 2022-11-01 | Observa, Inc. | System and method for identifying content in a web-based marketing environment |
US10534708B1 (en) | 2018-06-25 | 2020-01-14 | Microsoft Technology Licensing, Llc | Shallow cache for content replication |
CN109658238B (zh) | 2018-10-26 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置 |
JP7020384B2 (ja) * | 2018-11-29 | 2022-02-16 | 日本電信電話株式会社 | アプリケーション動作制御装置、アプリケーション動作制御方法、および、アプリケーション動作制御プログラム |
US10997122B2 (en) * | 2018-12-05 | 2021-05-04 | Citrix Systems, Inc. | File redundancy detection and mitigation |
US11288401B2 (en) * | 2019-09-11 | 2022-03-29 | AO Kaspersky Lab | System and method of reducing a number of false positives in classification of files |
CN111030991B (zh) * | 2019-11-06 | 2022-02-11 | 温州大学 | 一种用于数据处理器的防御控制流攻击方法 |
CN113612678B (zh) * | 2021-07-15 | 2023-03-31 | 中标软件有限公司 | 一种邮件附件下载使用的安全防护方法 |
US20230205889A1 (en) * | 2021-12-24 | 2023-06-29 | Vast Data Ltd. | Securing a storage system |
US20230229642A1 (en) * | 2022-01-14 | 2023-07-20 | Xetdata Inc. | Data indexing and deduplication using content-defined trees |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4807182A (en) * | 1986-03-12 | 1989-02-21 | Advanced Software, Inc. | Apparatus and method for comparing data groups |
US4741028A (en) * | 1986-07-30 | 1988-04-26 | International Telesystems Corporation | Method of randomizing telephone numbers |
US5255270A (en) | 1990-11-07 | 1993-10-19 | Emc Corporation | Method of assuring data write integrity on a data storage device |
JPH06318261A (ja) | 1992-09-18 | 1994-11-15 | Sony Corp | 電子装置 |
JP2739826B2 (ja) * | 1994-09-28 | 1998-04-15 | 日本電気株式会社 | データハッシュ化装置 |
WO1996032685A1 (en) | 1995-04-11 | 1996-10-17 | Kinetech, Inc. | Identifying data in a data processing system |
US5742807A (en) * | 1995-05-31 | 1998-04-21 | Xerox Corporation | Indexing system using one-way hash for document service |
US5690452A (en) | 1996-06-27 | 1997-11-25 | Baublits; David G. | Spring loaded automatic plug ejector or hole saws |
US6862602B2 (en) * | 1997-03-07 | 2005-03-01 | Apple Computer, Inc. | System and method for rapidly identifying the existence and location of an item in a file |
JP3056704B2 (ja) * | 1997-08-25 | 2000-06-26 | 三菱電機株式会社 | データ管理装置 |
US6138237A (en) * | 1997-09-04 | 2000-10-24 | Bistream Inc. | Apparatuses, methods, and media for authoring, distributing, and using software resources with purposely restricted use |
US6151659A (en) | 1997-12-22 | 2000-11-21 | Emc Corporation | Distributed raid storage system |
JP2002501255A (ja) | 1998-01-23 | 2002-01-15 | ファイルプール・エヌ.ブイ. | コンテンツアドレス可能な情報のカプセル化、表現、および転送 |
US6182197B1 (en) | 1998-07-10 | 2001-01-30 | International Business Machines Corporation | Real-time shared disk system for computer clusters |
US6523130B1 (en) | 1999-03-11 | 2003-02-18 | Microsoft Corporation | Storage system having error detection and recovery |
US6976165B1 (en) * | 1999-09-07 | 2005-12-13 | Emc Corporation | System and method for secure storage, transfer and retrieval of content addressable information |
US6480931B1 (en) | 1999-11-05 | 2002-11-12 | International Business Machines Corporation | Content addressable storage apparatus and register mapper architecture |
US6658589B1 (en) | 1999-12-20 | 2003-12-02 | Emc Corporation | System and method for backup a parallel server data storage system |
US7062648B2 (en) | 2000-02-18 | 2006-06-13 | Avamar Technologies, Inc. | System and method for redundant array network storage |
US7412462B2 (en) | 2000-02-18 | 2008-08-12 | Burnside Acquisition, Llc | Data repository and method for promoting network storage of data |
US6826711B2 (en) | 2000-02-18 | 2004-11-30 | Avamar Technologies, Inc. | System and method for data protection with multidimensional parity |
JP2001282619A (ja) * | 2000-03-30 | 2001-10-12 | Hitachi Ltd | コンテンツ改竄検知方法及びその実施装置並びにその処理プログラムを記録した記録媒体 |
US7065610B1 (en) | 2000-06-27 | 2006-06-20 | Emc Corporation | Method and apparatus for maintaining inventory of logical volumes stored on storage elements |
US6912548B1 (en) | 2000-06-27 | 2005-06-28 | Emc Corporation | Logical volume identifier database for logical volumes in a computer storage system |
US7082441B1 (en) | 2000-08-17 | 2006-07-25 | Emc Corporation | Method and storage and manipulation of storage system metrics |
US6857067B2 (en) * | 2000-09-01 | 2005-02-15 | Martin S. Edelman | System and method for preventing unauthorized access to electronic data |
US7043524B2 (en) * | 2000-11-06 | 2006-05-09 | Omnishift Technologies, Inc. | Network caching system for streamed applications |
US20030005306A1 (en) * | 2001-06-29 | 2003-01-02 | Hunt Preston J. | Message digest based data synchronization |
US6763446B1 (en) | 2001-08-08 | 2004-07-13 | Emc Corporation | Systems and methods for handling storage access requests |
US6978282B1 (en) | 2001-09-04 | 2005-12-20 | Emc Corporation | Information replication system having automated replication storage |
US6757790B2 (en) | 2002-02-19 | 2004-06-29 | Emc Corporation | Distributed, scalable data storage facility with cache memory |
US20030188180A1 (en) * | 2002-03-28 | 2003-10-02 | Overney Gregor T. | Secure file verification station for ensuring data integrity |
US6715048B1 (en) | 2002-03-28 | 2004-03-30 | Emc Corporation | System and method for efficiently performing a restore operation in a data storage environment |
US7113945B1 (en) | 2002-04-10 | 2006-09-26 | Emc Corporation | Virtual storage device that uses volatile memory |
US7428751B2 (en) * | 2002-12-05 | 2008-09-23 | Microsoft Corporation | Secure recovery in a serverless distributed file system |
US7047359B1 (en) | 2002-12-17 | 2006-05-16 | Storage Technology Corporation | Method, system and product for managing a virtual storage system |
EP1678645B1 (en) | 2003-10-27 | 2019-10-02 | Hitachi Vantara Corporation | Policy-based management of a redundant array of independent nodes |
JP2005165516A (ja) | 2003-12-01 | 2005-06-23 | Hitachi Ltd | ストレージ制御装置、ストレージシステム、及びストレージシステムの制御方法 |
US7114027B2 (en) | 2003-12-03 | 2006-09-26 | International Business Machines Corporation | Content addressable data storage and compression for computer memory |
US7162571B2 (en) | 2003-12-09 | 2007-01-09 | Emc Corporation | Methods and apparatus for parsing a content address to facilitate selection of a physical storage location in a data storage system |
US7246130B2 (en) * | 2004-02-19 | 2007-07-17 | Microsoft Corporation | Journalling non-navigation activity in a navigation-based application |
US7100008B2 (en) | 2004-03-15 | 2006-08-29 | Hitachi, Ltd. | Long term data protection system and method |
-
2004
- 2004-02-19 EP EP04712625A patent/EP1595197A2/en not_active Ceased
- 2004-02-19 CN CNB2004800105493A patent/CN100524153C/zh not_active Expired - Lifetime
- 2004-02-19 CA CA2516741A patent/CA2516741C/en not_active Expired - Lifetime
- 2004-02-19 JP JP2006502448A patent/JP4991283B2/ja not_active Expired - Lifetime
- 2004-02-19 WO PCT/IB2004/000420 patent/WO2004074968A2/en active Application Filing
- 2004-02-19 AU AU2004214014A patent/AU2004214014B2/en not_active Expired
- 2004-02-19 US US10/782,137 patent/US7373345B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CA2516741A1 (en) | 2004-09-02 |
JP2006518508A (ja) | 2006-08-10 |
AU2004214014B2 (en) | 2009-10-22 |
CN1777853A (zh) | 2006-05-24 |
EP1595197A2 (en) | 2005-11-16 |
US20040220975A1 (en) | 2004-11-04 |
AU2004214014A1 (en) | 2004-09-02 |
JP4991283B2 (ja) | 2012-08-01 |
US7373345B2 (en) | 2008-05-13 |
WO2004074968A2 (en) | 2004-09-02 |
WO2004074968A3 (en) | 2004-12-29 |
CA2516741C (en) | 2013-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100524153C (zh) | 在数据库中添加、检索计算机文件的方法 | |
CA2318908C (en) | Content addressable information encapsulation, representation, and transfer | |
US6807632B1 (en) | Content addressable information encapsulation, representation, and transfer | |
JP4602769B2 (ja) | 文書セットのコンテンツ空間のナビゲーション | |
US8145688B2 (en) | Tools and techniques for original digital files | |
US7895224B2 (en) | Navigation of the content space of a document set | |
CN115525609A (zh) | 一种基于电子文件与电子档案的数据交换平台及方法 | |
Farquhar et al. | Design for the long term: Authenticity and object representation | |
Deepak et al. | Cloud Based Protection for Multimedia Content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20090805 |