证明数字文档存在的方法及其系统以及标签链区块链系统与流程

文档序号:19878671发布日期:2020-02-08 06:43阅读:184来源:国知局
证明数字文档存在的方法及其系统以及标签链区块链系统与流程

本发明涉及一种证明数字文档的存在及其时间/日期戳的方法。本发明还涉及一种用于检索(retrieving)数字文档的证据的方法和/或系统。本发明还涉及一种区块链系统。



背景技术:

在当今的知识经济中,知识产权(ip)通常是个人或公司最有价值的资产。知识产权法律旨在通过认可创造者、所有者和/或发明者并向他们提供法律和经济利益,鼓励创造新的、有价值的ip,从而造福于社会。独创性是所有ip权利(ipr)的关键先决条件之一。话虽如此,通常重要的是要知道ip何时被创建和/或被首次使用,以及谁是创造者、所有者或发明者。

一种证明独创性和/或创造的方法是通过数字“出生证明”。创作者、所有者或发明者一旦创建了新的数字作品(无论是图像、视频、文档、歌曲等)、新的商业秘密、新的版权作品、新的商标徽标的新设计和/或新发明的生成并以数字方式将其保存,可以提供包含时间戳和/或与时间戳相关联的数字出生证明。但是,仅依靠创建数字文档的计算机的时间戳通常是不够的,因为这样的时间/日期戳可能会被伪造,或者如果仅依靠计算机的时间则可能根本不正确。

区块链系统是已知的,其使用加密散列(cryptographichashes)来记录和创建诸如交易和/或其他数据的链接,然后将其存储在账本中,该账本通常是开放式账本或封闭式账本,尽管半开放式账本也是可能的。但是,区块链系统的一个普遍问题是,随着其链变得越来越长,其系统需要越来越多的时间、计算能力和能量来生成链中的下一个虚拟链接。在某个时刻,收益递减规律表明,链中下一个环节的生成要么太慢,太耗能,和/或否则不可持续。因此,需要改进当前的区块链系统架构。

因此,期望能够提供一种能够快速且容易地提供时间和日期戳以及数字证书(例如,数字指纹)以证明数字文档的新创建、拥有和/或起源的方法。优选地,这样的方法提供了唯一地标识数字文件的时间记录,而不以任何方式公开实际的数字内容。还希望这样的记录被安全地存储,优选地由可信值得信赖的组织来存储,和/或具有标准化的时间戳。还希望为每个数字文档提供唯一的数字指纹。还希望能够从数字指纹所指示的数字文档中检测数字文档是否已被更改或改变。还需要一种更简单、更有效的方法来认证数字文档,特别是在法院或其他法庭中,以在防盗窃商业秘密、先用权抗辩、版权诉讼等的情况。还需要一种改进的区块链系统。



技术实现要素:

鉴于前述内容,本发明的一个目的是提供一种改进的计算机实现的方法及其计算机系统,以证明数字文档的存在,即,提供“存在证明”。

本发明涉及一种用于证明数字文档的存在的计算机实现的方法,该方法具有以下步骤:获取数字文档的时间戳,获取数字文档的多个加密散列,基于时间戳和多个加密散列生成证据密钥,并存储证据密钥以提供存储的证据密钥。

本发明还涉及一种用于证明数字文档的存在的计算机实现的方法,该方法具有以下步骤:获取数字文档的多个时间戳;获取该数字文档的加密散列;基于多个时间戳和加密散列生成证据密钥,并存储证据密钥以提供存储的证据密钥。

本发明还涉及一种用于证明数字文档的存在的计算机实现的方法,该方法具有以下步骤:获取数字文档的时间戳,获取数字文档的加密散列,基于时间戳和加密散列生成证据密钥,并存储证据密钥以提供存储的证据密钥。证据密钥的存储是存储在多个存储介质上的。

本发明还包括用于证明存在包含本文所述方法的数字文档的计算机系统。

在不期望受理论限制的情况下,可以相信的是,本发明可以提供一种改进的计算机实现的方法,该方法可以证明数字文档(诸如照片、脚本、电子书)的存在,即“存在证明”。此外,相信通过使用加密散列、时间戳、证据密钥和/或存储介质,本文的证明方法可以具有一个或多个益处,例如,改进的可靠性、速度、计算效率、安全性等。相信在某些情况下,本文的方法提供的证据密钥和/或证据可以在例如法院、仲裁、调解等中使用,以作为数字文档在特定时间存在的推定。还可以相信在某些情况下,本文的方法提供的证据密钥和/或证据可以在例如法院、仲裁、调解等中使用,以作为数字文档在特定时间由某个人和/或组织拥有的推定。

还相信的是,这种计算机实现的方法和计算机系统对于证明例如个人数字文档、法律数字文档、公司数字文档、商业数字文档等及其组合的存在可能是有用的。相信的是,本发明对于证明诸如,遗嘱、信托文件、公司文件、网站、文本或其他电子消息、合同、契约、转让协议、销售合同、收据、广告、发明说明、实验数据、数据日志、电话日志、财务交易、专利、商标、版权、商业秘密、保险记录、病历、计算机程序、计算机软件、照片、视频、音乐、实验报告等的数字文件的存在和/或其修改和/或修正特别有用。

本发明还涉及包含第一链和第二链的计算机实现的标签链系统。第一链和第二链是互斥的。

在不期望受理论限制的情况下,可以相信的是,标签链系统允许区块链系统扩展自身以涵盖其他校验和、交易等,同时保持所需的速度,减少时间,总体能源需求等。

附图说明

为了更全面地理解本发明,请参考以下详细说明和附图,其中:

图1示出了本发明的一个实施方式的示意图;

图2示出了包括检索请求的本发明的一个实施方式的示意图;

图3示出了根据本发明的一个实施方式的用于证明数字文档的存在的方法的流程图;

图4示出了根据图3所示的实施方式的方法的步骤54的详细流程图;

图5示出了用于证明数字文档的存在的本发明的系统的一个实施方式;

图6示出了本发明的一个实施方式,其描述了一种用于同步存储服务器的时钟的方法;

图7示出了根据本发明的一个实施方式的算法结构;

图8a示出了生成校验和的本发明的一个实施方式;

图8b示出了生成校验和的本发明的另一个实施方式;

图9示出了生成校验和的本发明的另一个实施方式;以及

图10示出了本发明的标签链实施方式的示意图。

本文中的附图仅出于说明性目的,其并不一定示出所有必要或可选的步骤、部件和/或其他细节。

具体实施方式

如本文所用,术语“包括”是指包括以下元素,但不排除其他元素的存在。

如本文所用,除非另外说明,否则术语“耦合”或“连接”是指经由一种或多种电气或无线方法直接或间接的电耦合或连接。

如本文所使用的,短语“数字文档”指示以数字方式而不是以物理形式存储的任何文档。然而,本领域技术人员理解,本文的数字文档可以是物理文档的数字表示。此外,已经认识到,数字文档本身实际上可以包含一个或多个数字文件;例如,例如,本文的数字文档可以是其中具有多个数字文件的数据库、其中具有多个数字文件的文件夹、具有多个数字文件的整个硬盘,其中具有多个数据库的服务器等。

如本文中所使用的,“时间”指示时间以及日期或对应于特定时间和日期的关联值。

本发明涉及一种用于证明数字文档的存在的计算机实现的方法,该方法具有以下步骤:获取数字文档的时间戳,获取数字文档的多个加密散列,基于时间戳和多个加密散列生成证据密钥,并存储证据密钥以提供存储的证据密钥。

本发明还涉及一种用于证明数字文档的存在的计算机实现的方法,该方法具有以下步骤:获取数字文档的多个时间戳;获取数字文档的加密散列;基于多个时间戳和加密散列生成证据密钥,并存储证据密钥以提供存储的证据密钥。

本发明还涉及一种用于证明数字文档的存在的计算机实现的方法,该方法具有以下步骤:获取数字文档的时间戳,获取数字文档的加密散列,基于时间戳和加密散列生成证据密钥,并存储证据密钥以提供存储的证据密钥。证据密钥的存储被存储在多个存储介质上。

转到附图,图1示出了本发明的一个实施方式的示意图。在图1中,方法10从文档20开始,其中由例如,用户、计算机、系统等为该文档提交证据密钥请求22。证据密钥请求22可以被发送到证据密钥生成器24,该证据密钥生成器24通常是例如设置在例如服务器、浏览器、应用程序等中的计算机程序和/或算法。然后,取决于本发明的实施方式,证据密钥生成器24获取(例如生成)一个或多个时间戳26,并获取(例如生成)一个或多个加密散列28。

证据密钥生成器24可以采用各种方法和输入30来生成证据密钥32。在本文的一个实施方式中,证据密钥生成器24然后基于时间戳26和/或加密散列28的输入30生成一个或多个证据密钥32;或基于时间戳26和加密散列28生成一个或多个证据密钥32。在本文的一个实施方式中,证据密钥生成器采用多个时间戳(诸如26和26')以及加密散列28来生成证据密钥32。在替代的实施方式中,证据密钥生成器24采用时间戳26和多个加密散列28和28'来生成证据密钥30。在又一实施方式中,证据密钥生成器24采用多个时间戳26和26'以及多个加密散列28生成证据密钥30。在又一实施方式中,证据密钥生成器24用相同或不同的输入30来生成多个证据密钥32和32'。

本文中的时间戳可以来自不同的来源,并且可以根据一个或多个事件生成。在本文的一个实施方式中,时间戳与数字文档首次被创建的时间有关。在本文的一个实施方式中,时间戳与数字文档最后被保存的时间有关。因此,在本文的一个实施方式中,时间戳可以是用于数字文档的版本跟踪程式的一部分。

在本文的一个实施方式中,时间戳与证据密钥生成器接收到生成证据密钥的请求的时间有关。在本文的一个实施方式中,时间戳与证据密钥生成器获取加密散列的时间有关。在本文的另一个实施方式中,时间戳是从诸如时间服务器、独立时钟及其组合之类的时间源获取的。在本文的一个实施方式中,独立时钟是全球定位系统(gps)时钟。

在本文的一个实施方式中,时间戳是多个时间戳;或从约2个时间戳到约10个时间戳;或从约2个时间戳到约8个时间戳;或从约3个时间戳到约6个时间戳。在本文的一个实施方式中,如本文所述,该多个时间戳是从不同的时间源获取的;或者,多个时间戳中的每个是从不同的时间源获取的。在不期望受理论限制的情况下,可以相信的是,例如,当证据密钥被提供给第三方以证明数字文档在特定时间存在时,这种特征可以使对整个系统的可靠性更有信心。

在本文的一个实施方式中,时间戳包括与多个时间戳,其与多个事件有关;或多个时间戳,其中每个时间戳都与一个不同的事件有关。在本文的一个实施方式中,时间戳与多个不同的事件有关,诸如数字文档第一次被创建的时间,数字文档最后被保存的时间,证据密钥生成器接收生成证据密钥的请求的时间,证据密钥生成器获取加密散列的时间及其组合。

此外,在本发明的一个实施方式中,如果多个时间戳不是所有都落入预定时间量内,则证据密钥由证据密钥生成器、另一算法或另一过程标记为可能的错误。在本文的一个实施方式中,该预定时间为10分钟;或5分钟;或2分钟。

本文的加密散列是一个代码;或字母数字代码字符串,其代表数字文档中的数据。加密散列函数映射数字文档中的数据,以为该特定文档提供特定的加密散列。本文的加密散列函数可以是由密钥加密散列函数生成的密钥加密散列,也可以是由非密钥加密散列函数生成的非密钥加密散列。在本文的一个实施方式中,密钥散列具有选自以下的组中的函数:vmac、umac、blake2、poly1305-aes、pmac、siphash、one-keymac、md6、hmac(基于散列的消息认证码)及其组合;或及其组合;或blake2、mac、hmac及其组合。

在本文的一个实施方式中,非密钥加密散列函数选自以下的组中的函数:blake-256,blake-512,blake2b,blake2s,ecoh,gost,has-160,haval,jh,md2,md4,md5,md6,radiogatún,ripemd,ripemd-128,ripemd-160,ripemd-320,sha-1,sha-224,sha-256,sha-384,sha-512,sha-3,skein,snefru,spectralhash,streebog,swifft,tiger,whirlpool及其组合;或非密钥加密散列函数选自以下的组中的函数:sha-1,sha-224,sha-256,sha-384,sha-512,sha-3及其组合;或非密钥加密散列函数选自以下的组中的函数:sha2-256,sha2-512,sha3-256,sha-3及其组合。

在本文的一个实施方式中,加密散列;或多个加密散列为约2至约100个加密散列;或约2到约25个加密散列;或约3到约10个加密散列;或约4到约8个加密散列。在本文的一个实施方式中,每个加密散列由不同的加密散列函数生成。在不期望受理论限制的情况下,可以相信的是,多个加密散列的组合提供了更大的保证,其保证冲突不会或将不会发生。本领域技术人员理解,当使用多个加密散列时,冲突的机会呈指数下降。

在不期望受理论限制的情况下,可以相信的是,与其他类型的散列相比,本文使用加密散列特别有用,因为从加密散列本身很难(如果不是不可能的话)重构(即逆向工程)数字(即电子)文档和/或数字文档的内容。因此,就像不可能根据指纹对人进行逆向工程一样,也不可能根据数字指纹对数字文档进行逆向工程。因此,可以相信的是,具有这种益处,本发明可用于证明商业秘密的存在,同时降低暴露商业秘密的风险。

证据密钥可以与加密散列和时间戳一起生成;或与加密散列、时间戳和附加输入一起生成。可以通过将这些输入关联在一起或根据需要进一步修改/更改它们而生成证据密钥。例如,在本文的一个实施方式中,将加密散列、时间戳和任何其他输入被进一步馈送到另一散列函数中,以生成另一散列,然后将该散列用作证据密钥(单独或与其他数据一起)。

在不期望受理论限制的情况下,可以相信的是,通过同时使用加密散列和时间戳生成证据密钥,可以对于这些输入中的一个或多个在以后不会被更改提供更大的信心。

从图1可以看出,虽然只显示了两个时间戳26和26',两个加密散列28和28'以及两个证据密钥32和32'等,但在图1的右侧的虚线和方框表示附加的时间戳、加密散列、证据密钥等也可以被提供、获取、生成等,并且这些附加特征被认为在本发明的范围内。因此,从图1清楚可见,单个数字文档可能会导致生成多个时间戳、多个加密散列、多个证据密钥、多个存储的证据密钥等。

然后,证据密钥32和任何可选的附加的关联数据34一起存储在存储器36中,其通常包括将证据密钥和附加的关联数据一起放置在存储介质中。本文中的附加的关联数据可以包含证据密钥和/或与证据密钥相关联,以便例如对证据密钥进行分类,解释证据密钥,帮助在以后的时间点检索证据密钥,帮助对证据密钥进行验证等。在本文的一个实施方式中,附加的关联数据包含用于对证据密钥进行分类的数据。在本文的一个实施方式中,附加的关联数据包括用于生成证据密钥的软件版本的软件版本号。在本文的一个实施方式中,附加的关联数据包含用于搜索证据密钥的数据(通常在存储证据密钥之后)。

在本文的一个实施方式中,附加的关联数据包含非敏感信息,诸如有助于解释证据密钥的关于证据密钥的信息,其内容等,但实际上没有公开数字文档本身的详细内容。在本文的一个实施方式中,附加的关联数据允许使用非敏感信息来搜索证据密钥;或仅使用非敏感信息搜索证据密钥。附加的关联数据可以是例如存储的时间戳(指示证据密钥的存储时间)、唯一标识符(例如电子邮件地址、电话号码、用户名、密码、服务器地址、ip地址、设备地址等)、文件名及其组合;或存储的时间戳、电子邮件地址、电话号码、用户名、密码、文件名及其组合;或存储的时间戳、电子邮件地址、电话号码、用户名、文件名、唯一标识符及其组合。

在本文的一个实施方式中,可以由诸如系统管理员、本地管理员、注册用户和/或公众之类的实体查看、搜索、组织、分类附加的关联数据。在本文的一个实施方式中,相对于附加的关联数据和/或证据密钥,不同级别和/或类别的实体具有不同级别的访问许可。例如,系统管理员可能具有查看、搜索、组织、分类等附加的关联数据和证据密钥的完全访问权限,而公众可能仅具有有限的访问权限以仅查看附加的关联数据。

在本文的一个实施方式中,任何级别的实体都不具有允许他们更改附加的关联数据或证据密钥的访问权限。

在本文的一个实施方式中,如果对附加的关联数据和/或证据密钥进行了任何更改,则将其记录在日志中,或记录在永久日志中。在本文的一个实施方式中,本文的日志包括已进行的更改的记录,以及例如进行更改的实体、进行更改的日期和时间、进行更改的位置(物理位置和/或虚拟位置,例如,ip地址)、进行更改所需的访问权限等的一个或多个指示。

本文有用的密码可以是用于识别和/或认证特定用户、服务器或其他实体的任何类型的信息,尤其是对于原始数字文档提交证据密钥请求的信息。在本文的一个实施方式中,密码选自以下的组中:字母数字字符串、个人识别因素、位置、图片、电子文件及其组合;或字母数字字符串、个人识别因素、图片及其组合;或字母数字字符串、个人识别因素及其组合。在本文的一个实施方式中,个人识别因素是生物特征因素,诸如指纹、声纹、面部识别认证、其他个性化样式及其组合;或指纹、声纹、面部识别认证及其组合。本文的生物特征因素可以包括生物特征信息。在本文的一个实施方式中,个人识别因素采用面部识别算法。

在本文的一个实施方式中,本文有用的附加的关联数据是区分大小写的。在本文的一个实施方式中,在本文中有用的附加的关联数据不区分大小写。在本文的一个实施方式中,密码、文件名、ip地址等是区分大小写的。在本文的一个实施方式中,密码、文件名、ip地址等不区分大小写。

在图1中,可以看到证据密钥23和附加的关联数据34被组合并一起存储在存储器36、36'等中,以便提供一个或多个存储的证据密钥38、38'等。本文的存储采器用存储介质,或多个存储介质,以存储存储的证据密钥。诸如证据密钥32和附加的关联数据34之类的信息通常存储在存储器36、36'等中的数据库中和/或本文的存储介质中。

本文中适用的存储介质包括选自以下的组中的存储介质:服务器、存储驱动器,纸张,cd-rom,dvd,一次性存储介质及其组合;或服务器,存储驱动器,cd-rom,dvd,一次性存储介质及其组合;或服务器,存储驱动器,cd-rom,dvd及其组合;或磁盘驱动器,闪存,磁带及其组合;或者硬盘,软盘,磁光盘,闪存,磁带及其组合;或硬盘,闪存及其组合。

在本文的一个实施方式中,本文的方法和/或系统包括多个存储介质。

在本文的一个实施方式中,多个存储介质或多个存储介质中的每个存储介质位于不同的物理位置。在不期望受理论限制的情况下,可以相信的是,在诸如自然灾害、停电、战争、政治动荡等事件的情况下,这种分散的系统可提供业务连续性和防灾效益。在本文的一个实施方式中,多个存储介质中的一个或多个由组织持有,该组织诸如值得信赖的组织;或值得信赖的国际组织;或无党派组织;或非营利组织;或社会企业。在本文的一个实施方式中,该组织选自以下的组中:奥地利专利局(apo)、中国国际贸易促进委员会(ccpit)、欧洲专利局(epo)、新加坡知识产权局(ipos)、国际知识产权商业化委员会(iipcc)、国家知识产权局(sipo,又称中国知识产权局)、瑞士联邦知识产权局(fiip)、美国专利及商标局(uspto)、国家市场监督管理局(中国的smsa)、世界知识产权局(wipo)、美国国会图书馆,及其组合;或新加坡知识产权局(ipos)、国际知识产权商业化委员会(iipcc)、世界知识产权局(wipo)、美国国会图书馆、国家市场监督管理局(中国的smsa)及其组合。在一个组织的名称(如合并、吞并、撤资等)被改变的情况下,此处使用的术语“组织”包括其各的利益继任者。

在本文的一个实施方式中,本文的多个存储介质彼此电子分离和物理分离。在不期望受理论限制的情况下,可以相信的是,与可比较的互连网络系统和/或仅具有单个物理位置的系统相比,这种系统提供了改进的安全性和可靠性。分散到多个位置的此类系统还可以提供可靠的备份,以防例如其中一个位置被黑客攻击,更改,勒索赎金等。

在图1中,可以看出,在本文的一个实施方式中,该方法可以包括传递步骤40、40'等,其中,证据密钥32和/或附加的关联数据43被传递给一方;或传递给最初提出证据密钥请求22的一方、组织、服务器、帐户等,以形成传递的证据密钥42、42'等。在本文的一个实施方式中,传递步骤40包括将证据密钥32和附加的关联数据34传递到最初提出证据密钥请求22的帐户。这种传递可以通过以下的路径进行:诸如电子邮件、短信、电子消息服务、邮政邮件、互联网传输及其组合;或通过电子邮件、邮政邮件、短信及其组合进行。在不期望受理论限制的情况下,可以相信的是,这种传递将有助于增加在请求检索的情况下,请求者将能够提供足够的信息以能够成功检索所存储的证据密钥的可能性。

在图1中,存储36'被示为与存储36平行。然而,在本发明的一个实施方式中,存储36'与存储36是顺序的(例如,参见图3)。

图2示出了本发明的一个实施方式的示意图,其中,本文中的计算机实现的方法包括检索请求44,该检索请求然后启动检索步骤44、44'等。该检索步骤44启动一过程,由此系统检索证据密钥和/或任何附加的关联数据以形成检索的证据密钥48、48'等。然后,该检索的证据密钥48可能要经过比较步骤50、50'等,其中将检索的证据密钥48与存储的证据密钥38和/或传递的证据密钥42进行比较。在本文的一个实施方式中,比较步骤生成检索请求结果52、52'。在本文的一个实施方式中,比较步骤50将传递的证据密钥42(和任何额外的关联数据(参见图1中的34))与检索到的证据密钥48(以及任何附加的关联数据)进行比较。然后,比较步骤50可以在检索请求结果52中突出显示所传递的证据密钥42和所检索的证据密钥48之间是否存在任何差异,或者它们是否匹配。

在不期望受理论限制的情况下,可以相信的是,如果传递的证据密钥42和检索的证据密钥48匹配,则它们可以用作校验,或校验的可反驳推定,其证明该数字文档在某个时间点(例如,在提交证据密钥请求时)存在和/或由一方拥有。

本领域的技术人员可以理解,在图2中,对于本发明的实施方式,可以设想用于检索步骤46',存储的证据密钥38'的类似的并行过程。在不期望受理论限制的情况下,可以相信的是,通过具有这样的并行检索46',比较50'等为用户提供了附加的安全性层和保证,其保证该方法和系统是合理的,并且数据完整性完好无损。相反,如果从并行过程中检索到不同的结果,则可能表明数据完整性已经以某种方式受到损害。在本发明的一个实施方式中,当检索到不同的结果时,生成日志,通知诸如系统管理员的实体,或其组合。

图3示出了根据本发明的一个实施方式的用于证明数字文档的存在的计算机实现的方法的流程图。具体地,证明数字文档20的存在的方法50的流程图,其中在方法50的第一步52中,证据密钥请求22被接收。如本文所述,证据密钥请求是来自用户的为数字文档生成证据密钥的请求(参见图1中的20)。然后,在步骤54中,由证据密钥生成器生成证据密钥32(参见图1的24)。一旦生成了证据密钥32,它将与任何附加的关联数据(参见图1中的34)一起存储在第一存储器36中,如步骤56所示。在本实施方式中,基于第一存储(参见图1中的36),在步骤58中创建第二存储36'。因此,第一存储36和第二存储36'是顺序排列的,而不是如图1所示的平行的。在本文的一个实施方式中,第一存储器36和第二存储器36'位于不同的独立服务器中。例如,在由谁首先创建文件或谁复制谁引起的纠纷期间,可以授予用户、所有者和/或任何相关的第三方访问权限以从第二存储器36'检索证据密钥32和任何附加的关联数据(参见图1中的34)。证据密钥32和任何附加的关联数据的检索(参见图1中的34)可以通过本领域已知的方法和算法来进行,例如在存储器36,36'上运行的搜索引擎等。

图4是根据如图3所示的实施方式的计算机实现的方法50的步骤54的详细流程图。在步骤62中,获取数字文档20的时间戳26。之后,在步骤64中,基于加密散列函数生成加密散列28。在特定实施方式中,加密散列函数是选自sha2-256、sha2-512和sha3-256的组中的非密钥加密散列函数。在步骤66,基于与生成加密散列28的(第一)加密散列函数不同的(第二)加密散列函数生成加密散列28'。在本发明的一个实施方式中,(第二)加密散列函数选自由sha2-256、sha2-512和sha3-256组成的组中的散列函数。在步骤68中,在获取时间戳26、加密散列28和加密散列28'之后,基于时间戳26、加密散列28和加密散列28'生成证据密钥32。

图5示出了本发明的另一实施方式,其涉及计算机系统70,该计算机系统70用于证明数字文档20的存在。系统70包括被配置为例如根据图3中方法50的步骤54生成数字文档20的证据密钥32的证据密钥生成器24。系统70还包括(第一)接收服务器74和(第二)接收服务器74',其被配置为一旦证据密钥生成器24生成证据密钥,则接收证据密钥(参见图1中的32)。每个接收服务器74和74'独立地与(第一)存储服务器76、(第二)存储服务器76'和(第三)存储服务器76”耦合。每个存储服务器76、76’和76”将证据密钥(存储在其自己的数据库中参见图1中的32)。每个存储服务器76、76'和76”独立地与聚集存储服务器78耦合。在从每个存储服务器76、76'和76”接收数据库和服务器标识之后,聚集存储服务器存储器78被配置为基于新的时间戳和从存储服务器76、76'和76”接收的信息来创建第二数据库。

在本发明的一个实施方式中,新的时间戳是聚集存储服务器78接收特定证据密钥32的时间。在一个实施方式中,证据密钥生成器24被配置为在生成证据密钥(参见图1中的32)之后,立即发送证据密钥至接收服务器74和接收服务器74'(参见图1中的32)。在另一个实施方式中,存储服务器76、76'和76”被配置为以批处理模式将它们自己的各自的数据库发送到聚集存储服务器78。

系统70进一步包括外部存储服务器80,其是聚集存储服务器78的镜像。在一个实施方式中,系统70的任何用户都不能访问外部存储服务器80,并且外部存储服务器80充当灾难恢复备份。在又一个实施方式中,搜索引擎(图5中未示出)与聚集存储服务器78和/或外部存储服务器80耦合,从而允许用户或任何相关的第三方根据请求检索证据密钥32以及特定数字文档的任何附加的关联数据(参见图1中的34)。

根据本发明的一个实施方式,数据库为每个证据密钥包括表1中所示的条目。

表1:数据库结构

在表1中,证据密钥是时间戳、加密散列和/或附加的关联数据的任意组合。

在本文的一个实施方式中,第二数据库包括新的时间戳和(第一)数据库的所有条目。在又一个实施方式中,系统70还包括文件属性编辑器,该文件属性编辑器被配置为获取数字文件大小和数字文件名。

在另一实施方式中,系统70还包括生物特征传感器,其被配置为获取用户的至少一个生物特征因素以用于认证目的。

图6示出了本发明的一个实施方式,该实施方式描述了一种计算机实现的方法,用于同步存储服务器76、76'、76”等的时钟。每个存储服务器76、76'、76”独立地与时间服务器82、时间服务器82'和独立时钟84耦合。当存储服务器76、76'、76”从证据密钥生成器(参见图1中的24)接收证据密钥时(参见图1中的32),它分别从时间服务器82、时间服务器82'和独立时钟84请求时间戳。存储服务器76、76'、76”,还被配置为将例如从时间服务器76、第二时间服务器76',和独立时钟78接收的最早的时间戳作为该特定证据密钥(参见图1中的32)的接受时间作为附加的关联数据分配到数据库中。在一个实施方式中,时间服务器76和时间服务器76'都采用网络时间协议,而独立时钟78是gps时钟。

图7示出了根据本发明的一个实施方式的算法结构86。在聚集存储服务器中实现算法86(参见图5中的78),以确保数据完整性。当存储服务器76、76'、76”等在步骤88中将证据密钥发送到聚集存储服务器(参见图5中的78)时,聚集存储服务器(参见图5中的78)确定它是否在预定时间内(条件90)从所有存储服务器76、76'、76”等接收到相应的证据密钥。如果聚集存储服务器(参见图5中的78)在预定时间段内确实从所有存储服务器76、76'、76”等接收到相应的证据密钥,则在步骤92中,证据密钥将被存储在位于聚集存储服务器(参见图5的78)处的数据库中。

另一方面,如果聚集服务器(参见图5中的78)在预定时间内没有从存储服务器76、76'、76”等中的任何一个接收到相应的证据密钥,则然后在步骤94中,聚集存储服务器(参见图5的78)将从其相应证据密钥缺失或延迟的特定存储服务器中特别请求该缺失的证据密钥。在步骤96中,聚集存储服务器(参见图5的78)检查该特定存储服务器76是否接到(reachable)。如果特定的存储服务器76、76'、76”等无法接到,则在步骤98中,聚集存储服务器(参见图5中的78)提醒系统管理员(参见图5中的70)。或者,聚集存储服务器可以在错误日志中记录此错误,或者以其他方式记录差异。但是,如果存储服务器76、76'、76”等可接到,则该特定存储服务器76将检查缺少的证据密钥32是否存在于其自己的数据库中,并且如果找到(条件100),则该特定的存储服务器76将把缺失的证据密钥32发送到聚集存储服务器(参见图5的78)。然后,在步骤92中,聚集存储服务器(参见图5中的78)将证据密钥32存储在聚集存储服务器的数据库中(步骤92)。

如果在该特定的存储服务器76中找不到缺失的证据密钥32(条件100),则在步骤102中,关于缺失的证据密钥32的日志将被保存在例如错误日志中。

图8a示出了用于生成校验和的本发明的计算机实现的方法的一个实施方式。在步骤801,基于在第一时间段内接收到的多个加密散列或一个加密散列生成当前校验和。第一时间段在约几毫秒到约一个月的范围内。第一时间段越短,当前的校验和将越早生成(即,生成校验和之间的时间越短),并且由于将生成和存储更多的校验和,计算资源所需经受的负载就越大。第一时间段越长,当前校验和将越晚生成(即,生成校验和之间的时间越长),并且由于将生成和存储的校验和越少,计算资源所需经受的负载就越低。校验和用于确保存储的多个加密散列的完整性。例如,为了检测存储的(在例如数据库中)一个或多个加密散列是否被改变或篡改,该加密散列用于创建第二校验和。如果原始校验和与第二校验和不匹配,则表明数据库中存储的至少一个加密散列已被更改或篡改。

本领域的技术人员理解,存在很多生成校验和的方法。例如,可以使用例如加密散列算法、块奇偶函数、循环冗余校验(crc)及其组合生成校验和。优选地,使用诸如sha2和/或sha3之类的加密散列函数生成校验和,以使得散列冲突的可能性相对较低。

在一个示例中,第一时间段是一分钟。

仅出于说明的目的,例如,在第一时间段内可能接收一百个加密散列。首先,通过按接收时间的顺序将一百个加密散列连接在一起生成字符串。然后,例如通过在字符串上应用sha2-256散列函数生成当前校验和。在一示例中,字符串为十六进制格式。在另一示例中,该字符串采用base64格式。

在步骤802,如本文所述,当前校验和被存储在存储介质中。校验和通常存储在非易失性存储介质(即,非易失性计算机可读存储介质)中,并且优选地被保持一段时间,例如数年,或者甚至无限期。由于多个加密散列和相应的证据密钥可以在数年后用作法庭证据,因此校验和也应存储数年或无限期,以进一步证明多个加密散列和相应的证据密钥中没有一个已经被改变或篡改。

在步骤803,基于在下一时间段内接收的另外多个加密散列和当前散列生成下一个校验和。在本文的一个实施方式中,下一时间段是一分钟,并且始于第一时间段的结束。

仅出于说明目的,例如,在下一时间段内可能会收到三十个加密散列。首先,通过按接收时间的顺序将三十加密散列连接在一起和当前的校验和生成字符串。例如,通过在字符串上应用sha2-256散列函数生成下一个校验和。

在步骤804,以与在步骤802中存储的当前校验和相同的方式存储下一个校验和。在步骤805,当前校验和的值被更新,并被下一个校验和的值替换。然后,被更新的当前校验和用于在未来的下一个时间段内生成另一下一个校验和。在本文的一个实施方式中,步骤805在步骤804之前执行,并且当前校验和在步骤804中进行存储。

由于下一个校验和是部分地基于当前校验和生成的,而当前校验和也是部分地基于过去的校验和生成的,因此下一个校验和也将部分地基于过去的校验和生成。即使在过去的校验和中的一个或多个缺失或不被存储的情况下,在本文的一个实施方式中,相信仍然可以使用所有接收到的多个加密散列来重新生成当前校验和。本领域技术人员理解,通过比较重新生成的校验和和存储的过去的校验和,可以验证所存储的多个加密散列的完整性。

在本发明的一个实施方式中,在步骤801和步骤803,不是基于时间来生成当前校验和和下一个校验和,而是基于接收到的预定数量的加密散列生成。例如,每接收到三百个加密散列,就会生成一个校验和。

图8b示出了用于生成校验和的本发明的计算机实现的方法的一个实施方式。图8b中的步骤类似于图8a中的步骤。步骤801和步骤803分别被步骤811和步骤813代替。与步骤801相比,在步骤811中,当前校验和的生成是基在第一时间段内生成的多个证据密钥的,而不是如图8a所示的基于多个加密散列的。类似地,在步骤813中,下一个校验和是基于在下一时间段内生成的多个证据密钥的。由于证据密钥是基于时间戳和多个加密散列或单个加密散列的,因此校验和可以进一步用于验证时间戳、多个加密散列和/或存储在证据密钥中的附加的关联数据未被改变和/或篡改。

图9示出了用于生成校验和的本发明的计算机实现的方法的另一实施方式。多个当前校验和,例如c1和c2,分别用于生成下一个校验和nc1和nc2。在步骤901,基于在第一时间段内接收到的多个加密散列或一个加密散列生成当前校验和c1。在步骤902,将当前校验和c1存储在存储介质中。在步骤903,基于在第二时间段内接收到的多个加密散列或一个加密散列生成另一当前校验和c2。在步骤904,以与步骤902中存储当前校验和的方式相同地存储当前校验和c2。

当前校验和c2的生成不是基于当前校验和c1以及在第一时间段内接收到的多个加密散列或一个加密散列。因此,当在901处计算当前校验和c1并在步骤902中存储当前校验和c1时,当前校验和c2是独立生成的,而无需使用当前校验和c1的任何信息,诸如在第一时间段内接收到的多个加密散列或一个加密散列。当当前校验和c1在系统的处理单元(诸如中央处理单元)中进行处理时,加密散列可能已在第二时间段内到达,依此类推。

在本文的一个实施方式中,到生成当前校验和c1的时候,第二时间段可能已经结束并且第三时间段可能已经开始。为了允许更多的时间来计算当前校验和,使用了多个当前校验和。因此,本领域的技术人员理解,不存在只能使用两个当前的校验和c1和c2的实际限制,而本实施方式仅出于易于理解的目的描述。更多当前校验和,例如约5个当前校验和;或约7个当前校验和;或约10个当前的校验和;或约25个当前校验和;或约50个当前校验和;或约100个当前校验和,可用于进一步延长允许计算当前校验和的时间。

在步骤905,基于在下一时间段内接收的另外多个加密散列和当前校验和c1生成下一个校验和nc1。在不使用当前校验和c2、在第二时间段内接收到的多个加密散列或一个加密散列的信息的情况下,生成下一个校验和nc1。因此,系统的计算/处理单元有更多时间生成当前校验和c2。

在步骤906,以与在步骤902中存储当前校验和的方式相同地存储下一个校验和nc1。在步骤907,当前校验和c1的值被更新,并被下一个校验和nc1的值替换。

在步骤908,基于在下一时间段内接收到的另外多个加密散列和当前校验和c2生成下一个校验和nc2。在不使用来自当前校验和nc1的任何信息(诸如在步骤905-步骤906的时间段内接收的多个加密散列或一个加密散列)的情况下生成下一个校验和nc2。因此,系统的处理单元有更多时间生成当前校验和nc1。

在步骤909,以与在步骤902和步骤904中存储当前校验和的方式相同地存储另一下一个校验和nc2。在步骤910,当前校验和c2的值被更新,并被下一个校验和nc2的值替换。

当需要更多时间生成下一个校验和时,则可以进一步扩展步骤905-步骤910,例如,使其具有下一个校验和nc3,nc4,nc5等。

在本文的一个实施方式中,本文的方法,例如在图8a,图8b和图9中描述的方法,迭代校验和生成和替换步骤基本上概述了区块链的步骤,该区块链用于认证由此形成的数据库的完整性。

在本文的一个实施方式中,当前校验和802是初始代币发行(ico);或ico是加密货币;或加密货币是bitcoin,litecoin,namecoin,swiftcoin,bytecoin,peercoin,dogecoin,emercoin,feathercoin,gridcoin,primecoin,ripple,next,auroracoin,dash,neo,mazacoin,monero,nem,potcoin,syneroamp,titcoin,verge,stellar,vercoin,ethereum,ethereumclassic,tether,decred,wavesplatform,zcash,bitconnect,bitcoincash,eosio,cadano,petro,petrogold等。生成下一个校验和804并用下一个校验和804替换当前的校验和802实质上被视为交易,并被记录在数据库中。该数据库又可以存储在例如存储服务器(例如,参见图5的76、778、80等)或存储在服务器或计算机系统上的账本中。

在本文的图9的实施方式中,第一时间段、第二时间段等是交替的预定时间段,和/或布置成互斥的交替的时间表。

本文中的方法可以由计算机来实现。此外,本文的系统可以是计算机系统。

图10示出了本发明的一个标签(区块)链实施方式的示意图。在图10中,当生成第一链接c1时,通常是通过加密散列生成校验和,启动计算机实现的第一区块链1000。本文的链接可以是单个校验和或多个校验和。本文中的链接可以是和/或代表例如单个交易、多个交易、一个转移、多个转移、一段时间、一个设备(例如电子设备)或多个设备等,及其组合;或者,例如,一段时间内发生的多个交易。当生成链接c2时,通常是通过加密散列生成校验,启动第二区块链1002。假设对于该实施方式,每个链接是单个校验和,那么与典型的区块链相反,在具体化的标签链中,校验和c1不链接到校验和c2以形成链中的下一个链接。而是,校验和c1链接到校验和c3,然后链接到校验和c5等。类似地,校验和c2链接到校验和c4,然后链接到校验和c6等。在图10的实施方式中,在已经建立了第一区块链1000和第二区块链1002之后,第一个区块是校验和c7的第三区块链1004添加到标签链系统。在本文的一个实施方式中,在标签链系统中已经存在多个区块链之后,将多个区块链添加到标签链系统。

在图10的示意图中,每个校验和表示链1000、1002、1004等中的单个链接。因此,从c1到c6的所有奇校验和形成链1000,而从c1到c6的所有偶校验和形成单独的、互斥的链1002。因此,该实施方式被描述为“标签链”类型的区块链。本质上,一条链(或所有其他链)被“标出(taggedout)”,而一条链被“标入(taggedin)”,这意味着它是活动的,因此有资格在链中连接到新链接,或以其他方式在链中接收新链接。但是,这些链是互斥的,因此在任何给定点都只能“标记进”一条链。这些链(可能还包括其他链)在活动(即,接收新链接)和非活动(等待接收新链接)之间交替。在图10中,校验和c7代表新链1004中的第一链接(和初始化)的。

在本文的一个实施方式中,在任何给定时间只有一条链是活动的。

因此,标签链系统至少包含互斥的第一链和第二链。在本文的一个实施方案中,每个链是互斥的。然而,在本文的一个实施方式中,第一链和第二链(以及任何其他链)在同一区块链系统内交织。在本文的一个实施方式中,校验和在不同的链之间交替,并且本领域技术人员可以理解,各种样式是可能的,诸如但不排他地如本文定义的。在这样的实施方式中,链可以是互斥的,这意味着它们之间不包含任何公共链。

在本文的一个实施方式中,校验和不链接为奇校验和和偶校验和,而是也可以以不同的样式或在多个单独的链中链接。在本文的一个实施方式中,使用例如可嵌入校验和中的1、3、5、7等序列逻辑来分离链。在本文的一个实施方式中,经由一段时间段、校验和的数量、校验和的一部分、对每个校验和的修改、取模方法、一个设备或多个设备、地址、唯一标识符及其组合将各种链接分离成不同的链;或经由预定时间段、预定数量的校验和、校验和(或每个校验和)的预定部分、每个校验和的前缀修改、每个校验和的后缀修改、取模方法,一个设备或多个设备、地址、唯一标识符及其组合将各种链接分离成不同的链。

例如,如果预定时间段是1小时,则每个小时代表链中的单独链接(例如,图10中的c1)。在达到一个小时的到期时,下一个链接(例如,图10中的c2)被启动,并且可以根据需要将其分配给不同的链或相同的链。在另一个示例中,如果校验和的数量(在每个链接中)是1000;或校验和的预定数量为1000,则对于每1000个校验和将创建一个不同的链接。通常,可能会存在一个链接或校验和的堆,它们以先进先出(fifo)的顺序排列/分配给链。在又一个示例中,对每个链接(或校验和)的链的选择可以使用取模方法(参见https://en.wikipedia.org/wiki/modulo_operation)将链接(或校验和)除以一个数字并使用余数来选择要被分配链接的链。在另一个示例中,校验和的一部分(例如3个字母数字)(前缀,后缀或中间)用于将校验和分配给适当的链。在这样的实施方式中,例如,如果校验和为“12313393990a381f10”并且链接由后缀确定,则系统将识别“f10”作为后缀并将该链接分配给“f10”链。这是“随机”+循环(链)选择的常用技术。

在本文的一个实施方式中,使用对每个校验和的修改,例如,将3个或更多个字母数字(前缀,后缀或中间)添加到每个链接,并将其分配给适当的链。在这样的实施方式中,例如,如果链接(或校验和)是“12313393990a381f10”,则系统可以将字母数字“e35”添加到该链接的开头,中间或结尾,然后将此链接分配给“e35”链。

在本文的一个实施方式中,校验和、链接和/或链可以根据不同的设备和/或通过识别不同的地址;或ip地址、机器地址、电子邮件标识符、帐户标识符等瓜分。在本文的一个实施方式中,假定每个设备都具有不同的地址。

在本文的一个实施方式中,第一链和第二链存储在同一服务器上。在不期望受理论限制的情况下,可以相信的是,从系统体系结构的角度来看这可能是有利的,因为它可以使管理标签链系统更容易。在本文的一个实施方式中,第一链和第二链存储在不同的服务器上。在不期望受理论限制的情况下,可以相信的是,从系统架构的角度来看这可能是有利的,因为它可以使标签链系统更安全。

在本文的一个实施方式中,当管理员确定时,或者当标签链系统认识到用于生成链中下一个链接的当前时间、能量需求等太大;或大于或等于预定值时,可以添加附加的链。备选地,标签链系统可以在达到预定标准时,诸如在现有链和/或最新链中预定数量的链接、预定时间段等时,添加一个或多个附加的链。

例如,不同的链接(以及因此链)可以被特定的时间段或一组校验和、一组交易等分隔。在本文的一个实施方式中,该链中的每个链接包含约1个交易到约1,000,000个交易;或约1个交易到约10,000个交易;或约1个交易到约1,000个交易;或从约2个交易到约10,000个交易;或从约100个交易到约1,000个交易。在本文的一个实施方式中,每个链的链接由一个时间间隔定义,其中在该时间间隔内发生的所有交易和/或校验和形成一个链接(对于适当的链)和/或可以聚集为一个链接(对于适当的链)。在本文的一个实施方式中,该时间间隔是从约1毫秒到约1个月;或约1秒至约1周;或约1分钟至约1天,其以计算机实现的标签链的系统和/或服务器测量。可替代地,该时间间隔可以通过例如内部计算机时钟、过程或外部服务器的时钟、过程来测量。

在不期望受理论限制的情况下,可以相信的是,本文的标签链可以提供优于单个集成的区块链的显著优势。例如,可以相信的是,随着区块链变得越来越长,校验和定时(例如,生成加密散列所花费的时间)也随时间增加,需要更多的能量和/或需要更多的计算时间。可以相信的是,通过在单个区块链系统中采用标签链并因此采用多个实际链,可以加快区块链系统的整体速度,并且/或者可以进一步拥有其他好处,例如更低的能耗、更少的计算时间等,因为,例如,每个单独的链的长度增长得更慢。

在本文的一个实施方式中,标签链系统中的不同链在一个或多个公共服务器中实现和/或存储在一个或多个公共服务器中。在本文的一个实施方式中,标签链系统中的每个不同链被实现和/或存储在一个或多个不同服务器上。在本文的一个实施方式中,标签链系统中的每个不同链被实现和/或存储在多个服务器上。

在本文的一个实施方式中,聚集存储服务器创建证据密钥和任何附加的关联数据的重复数据库。

在又一个实施方式中,证据密钥还可以包含与时间有关的密钥,其与系统生成的数字文档的内容或任何属性无关。

本领域技术人员可以理解,例如,时间戳、加密散列、加密散列函数、证据密钥生成器、关联数据、存储器、接收服务器、存储服务器、聚集存储服务器等的数量不受本文描述的限制。可以理解,可以根据本发明的实际实施方式来调整实际数量。此外,可以在系统的不同级别上实现附加的算法,以提高系统的可靠性和完整性。在一个实施方式中,当在任何数据库中检测到重复的证据密钥时,将向系统管理员和该证据密钥的最早创建者提供警告通知。

应当理解,尽管以上已经根据特定实施方式描述了本发明,但是前述实施方式仅作为示例提供,并且不限制或限定本发明的范围。包括但不限于以下的各种其他实施方式也落入在权利要求的范围内。例如,本文描述的元件和部件可以进一步分为用于执行相同功能的额外的部件或结合在一起以形成更少的用于执行相同功能的部件。

可以使用用于执行那些功能的装置来实现本文公开的任何功能。这样的装置包括但不限于本文公开的任何部件,例如下面描述的计算机相关的部件。

例如,上述技术可以以硬件、有形地存储在一个或多个计算机可读介质、固件或其任何组合上的一个或多个计算机程序来实现。上述技术可以在可编程计算机上执行(或由其执行)的一个或多个计算机程序中实现,可编程计算机包括以下任意数量的任意组合:处理器、处理器可读和/或可写的存储介质(包括,例如,易失性和非易失性存储器和/或存储元件)、输入设备和输出设备。可以将程序代码应用于使用输入设备输入的输入,以执行所描述的功能并使用输出设备生成输出。

本发明的实施方式包括仅通过使用一个或多个计算机、计算机处理器和/或计算机系统的其他元件才可能实现和/或可行的特征。这些特征在精神上和/或手动上的实现是不可能或不切实际的。因此,这样的特征固有地植根于计算机技术并解决了固有地与计算机技术有关的问题。例如,本发明的一个实施方式可以在在不可能或不可行手动执行的数据量和时间量内生成加密散列(诸如加密散列28和加密散列28')。例如,本发明的一个实施方式可以在不到一秒的时间内在兆字节的数据上生成加密散列,这对于人类而言是不可能手动执行的。作为另一示例,本发明的一个实施方式可以通过互联网和/或其他电子通信网络来传递数据(例如,经由传递40或传递40'),这固有地需要使用电信设备并且不能由人类手动执行。

本文的肯定需要计算机、处理器、存储器或类似计算机相关元件的任何权利要求旨在需要这些元件,并且不应被解释为这些权利要求中不存在或不需要这些元件。这些权利要求不旨在并且不应被解释为涵盖缺少所述的计算机相关元件的方法和/或系统。例如,记载要求保护的方法是由计算机、处理器、存储器和/或类似的计算机相关元件执行的本文中的任何方法权利要求,旨在并且仅应解释为包括通过所引用的计算机相关元件执行的方法。这样的方法权利要求不应被解释为例如涵盖在精神上或用手执行(例如,使用铅笔和纸)的方法。类似地,记载要求保护的产品包括计算机、处理器、存储器和/或类似计算机相关元件的本文中的任何产品权利要求,旨在且仅应解释为涵盖包括所引用的计算机相关元件。这样的产品权利要求不应被解释为例如涵盖不包括所列举的计算机相关元件的产品。

在以下权利要求的范围内的每个计算机程序可以以任何编程语言来实现,例如汇编语言、机器语言、高级过程编程语言或面向对象的编程语言。编程语言可以例如是编译或解释的编程语言。

每个这样的计算机程序可以在有形地体现在机器可读存储设备中的计算机程序产品中实现,以由计算机处理器执行。本发明的方法步骤可以由一个或多个计算机处理器执行,该处理器执行有形地体现在计算机可读介质上的程序,以通过对输入进行操作并生成输出来执行本发明的功能。合适的处理器例如包括通用和专用微处理器。通常,处理器从存储器(例如,只读存储器和/或随机存取存储器)接收(读取)指令和数据,并将指令和数据写入(存储在)存储器。适用于有形地体现计算机程序指令和数据的存储设备包括,例如,所有形式的非易失性存储器,诸如半导体存储设备,包括eprom、eeprom和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;和cd-rom。前述内容中的任何一项都可以由专门设计的asic(专用集成电路)或fpga(现场可编程门阵列)补充或并入。计算机通常还可以从非暂时计算机可读存储介质,诸如内部磁盘(未示出)或可移动磁盘,接收(读取)程序和数据,以及将程序和数据写入(存储在)其中。这些元件还可在常规台式或工作站计算机以及适合于执行实现本文所述方法的计算机程序的其他计算机中找到,这些计算机程序可与任何数字打印引擎或标记引擎、显示监视器或其他能够在纸张、胶片、显示屏或其他输出介质上生成彩色或灰度像素的光栅输出设备结合使用。

本文公开的任何数据可以例如以有形地存储在非暂时计算机可读介质上的一个或多个数据结构来实现。本发明的实施方式可以将该数据存储在该数据结构中,并且从该数据结构读取该数据。

本发明的非限制性实施方式包括:

1、一种用于证明数字文档的存在的计算机实现的方法,包括以下步骤:

a、获取数字文档的时间戳;

b、获取数字文档的多个加密散列;

c、基于时间戳和多个加密散列生成证据密钥;以及

d、存储证据密钥以提供存储的证据密钥。

2、根据实施方式1所述的方法,还包括以下步骤:

e、检索证据密钥以提供检索的证据密钥。

3、根据实施方式2所述的方法,还包括以下步骤:

f、将存储的证据密钥与检索的证据密钥进行比较。

4、根据实施方式2所述的方法,其中,通过提供标识符来允许证据密钥的检索;或其中,标识符选自加密散列、附加的关联数据及其组合。

5、根据实施方式1-4中任一项所述的方法,其中,时间戳是多个时间戳。

6、根据实施方式1-5中的任一项所述的方法,其中,多个加密散列是从约2到约100个加密散列;或约2到约25个加密散列;或约3到约10个加密散列;或约4到约8个加密散列。

7、根据实施方式1-6中任一项所述的方法,其中,多个加密散列中的每一个均由不同的加密散列函数生成。

8、根据实施方式1至7中的任一项所述的方法,其中,加密散列中的至少一个由非密钥加密散列函数生成;或由选自以下的组中的非密钥加密散列函数生成:blake-256,blake-512,blake2b,blake2s,ecoh,gost,has-160,haval,jh,md2,md4,md5,md6,radiogatún,ripemd,ripemd-128,ripemd-160,ripemd-320,sha-1,sha-224,sha-256,sha-384,sha-512,sha-3,skein,snefru,spectralhash,streebog,swifft,tiger,whirlpool及其组合;或由选自以下的组中的非密钥加密散列函数生成:sha-1,sha-224,sha-256,sha-384,sha-512,sha-3及其组合;或由选自以下的组中的非密钥加密散列函数生成:sha2-256,sha2-512,sha3-256,sha-3及其组合。

9、根据实施方式1-8中任一项所述的方法,其中,时间戳包括多个时间戳;或约2到约10个时间戳;或约2个至约8个时间戳;或约3到约6个时间戳。

10、根据实施方式1至9中任一项所述的方法,其中,证据密钥的存储发生在存储介质中,该存储介质选自以下的组中:服务器、存储驱动器,纸张,cd-rom,dvd,一次性存储介质及其组合;或选自以下的组中:服务器,存储驱动器,cd-rom,dvd,一次性存储介质及其组合;或选自以下的组中:服务器,存储驱动器,cd-rom,dvd及其组合;或选自以下的组中:磁盘驱动器,闪存,磁带及其组合;或者选自以下的组中:硬盘,软盘,磁光盘,闪存,磁带及其组合;或选自以下的组中:硬盘,闪存及其组合。

11、一种用于证明数字文档的存在的计算机实现的方法,包括以下步骤:

a、获取数字文档的多个时间戳;

b、获取数字文档的加密散列;

c、基于多个时间戳和加密散列生成证据密钥;以及

d、存储证据密钥以提供存储的证据密钥。

12、根据实施方式11所述的方法,还包括以下步骤:

e、检索证据密钥以提供检索的证据密钥。

13、根据实施方式12所述的方法,还包括以下步骤:

f、将存储的证据密钥与检索的证据密钥进行比较。

14、根据实施方式12所述的方法,其中,通过提供标识符来允许证据密钥的检索;或其中,标识符选自加密散列、附加的关联数据及其组合。

15、根据实施方式11-14中任一项所述的方法,其中,多个时间戳是约2个至约10个时间戳;或约2个至约8个时间戳;或约3到约6个时间戳。

16、根据实施方式11-15中的任一项所述的方法,其中,多个时间戳中的每个由不同时间源生成,该不同时间源选自以下的组中:时间服务器、独立时钟以及其组合;或选自以下的组中:时间服务器、独立时钟及其组合;或选自全球定位系统(gps)时钟。

17、根据实施方式11-16中任一实施方式所述的方法,其中,加密散列是多个加密散列;或其中加密散列是从约2到约100个加密散列;或约2到约25个加密散列;或约3到约10个加密散列;或约4到约8个加密散列。

18、根据实施方式17所述的方法,其中,多个加密散列中的每个由不同的加密散列函数生成。

19、根据实施方式11-18中任一项所述的方法,其中,加密散列是由非密钥加密散列函数生成;或由选自以下的组中的非密钥加密散列函数生成:blake-256,blake-512,blake2b,blake2s,ecoh,gost,has-160,haval,jh,md2,md4,md5,md6,radiogatún,ripemd,ripemd-128,ripemd-160,ripemd-320,sha-1,sha-224,sha-256,sha-384,sha-512,sha-3,skein,snefru,spectralhash,streebog,swifft,tiger,whirlpool及其组合;或由选自以下的组中的非密钥加密散列函数生成:sha-1,sha-224,sha-256,sha-384,sha-512,sha-3及其组合;或由选自以下的组中的非密钥加密散列函数生成:sha2-256,sha2-512,sha3-256,sha-3及其组合。

20、根据实施方式11-19中的任一项所述的方法,其中,证据密钥的存储发生在存储介质中,该存储介质选自以下的组中:服务器、存储驱动器,纸张,cd-rom,dvd,一次性存储介质及其组合;或选自以下的组中:服务器,存储驱动器,cd-rom,dvd,一次性存储介质及其组合;或选自以下的组中:服务器,存储驱动器,cd-rom,dvd及其组合;或选自以下的组中:磁盘驱动器,闪存,磁带及其组合;或者选自以下的组中:硬盘,软盘,磁光盘,闪存,磁带及其组合;或选自以下的组中:硬盘,闪存及其组合。

21、一种用于证明数字文档的存在的计算机实现的方法,包括以下步骤:

a、获取数字文档的时间戳;

b、获取数字文档的加密散列;

c、基于时间戳和加密散列生成证据密钥;以及

d、存储证据密钥以提供存储的证据密钥,其中证据密钥的存储是存储在多个存储介质上的。

22、根据实施方式21所述的方法,还包括以下步骤:

e、检索证据密钥以提供检索的证据密钥。

23、根据实施方式22所述的方法,还包括以下步骤:

f、将存储的证据密钥与检索的证据密钥进行比较。

24、根据实施方式22所述的方法,其中,通过提供标识符来允许证据密钥的检索;或其中,标识符选自加密散列、附加的关联数据及其组合。

25、根据实施方式21-24中任一实施方式所述的方法,其中,所述多个存储介质中的每一个选自以下的组中:服务器、存储驱动器,纸张,cd-rom,dvd,一次性存储介质及其组合;或选自以下的组中:服务器,存储驱动器,cd-rom,dvd,一次性存储介质及其组合;或选自以下的组中:服务器,存储驱动器,cd-rom,dvd及其组合;或选自以下的组中:磁盘驱动器,闪存,磁带及其组合;或选自以下的组中:硬盘,软盘,磁光盘,闪存,磁带及其组合;或选自以下的组中:硬盘,闪存及其组合。

26、根据实施方式21-25中任一项所述的方法,其中,多个存储介质位于多个物理位置;或多个不同的物理位置;或约2到约20个不同的物理位置;或约2到约15个不同的物理位置;或约3到约10个不同的物理位置。

27、根据实施方式21-26中任一项所述的方法,其中,时间戳包括多个时间戳;或约2到约10个时间戳;或约2个至约8个时间戳;或约3到约6个时间戳。

28、根据实施方式21-27中任一项所述的方法,其中,加密散列是多个加密散列;或其中加密散列是从约2到约100个加密散列;或约2到约25个加密散列;或约3到约10个加密散列;或约4到约8个加密散列。

29、根据实施方式21-28中任一项所述的方法,其中,加密散列是由非密钥加密散列函数生成;或由选自以下的组中的非密钥加密散列函数生成:blake-256,blake-512,blake2b,blake2s,ecoh,gost,has-160,haval,jh,md2,md4,md5,md6,radiogatún,ripemd,ripemd-128,ripemd-160,ripemd-320,sha-1,sha-224,sha-256,sha-384,sha-512,sha-3,skein,snefru,spectralhash,streebog,swifft,tiger,whirlpool及其组合;或由选自以下的组中的非密钥加密散列函数生成:sha-1,sha-224,sha-256,sha-384,sha-512,sha-3及其组合;或由选自以下的组中的非密钥加密散列函数生成:sha2-256,sha2-512,sha3-256,sha-3及其组合。

30、一种用于证明多个数字文档的存在的计算机实现的方法,包括以下步骤:

a、在第一时间段内接收多个加密散列;

b、基于在第一时间段内接收到的多个加密散列生成当前校验和;

c、将当前校验和存储在存储介质中;

d、在第二时间段内接收多个加密散列;

e、基于在第二时间段内接收到的多个加密散列生成下一个校验和;

f、将下一个校验和存储在存储介质中;以及

g、用下一个校验和替换存储介质中的校验和。

31、根据实施方式30所述的方法,还包括重复步骤d至步骤g的步骤。

32、一种用于证明多个数字文档的存在的计算机实现的方法,包括以下步骤:

a、在第一时间段内接收多个证据密钥;

b、基于在第一时间段内接收到的多个证据密钥生成当前校验和;

c、将当前校验和存储在存储介质中;

d、在第二时间段内接收多个证据密钥;

e、基于在第二时间段内接收到的多个证据密钥,生成下一个校验和;

f、将下一个校验和存储在存储介质中;以及

g、用下一个校验和替换存储介质中的校验和。

33、根据实施方式32所述的方法,还包括重复步骤d至步骤g的步骤。

34、一种用于证明多个数字文档的存在的计算机实现的方法,包括以下步骤:

a、在第一时间段内接收多个加密散列;

b、基于在第一时间段内接收到的多个加密散列生成当前校验和;

c、将当前校验和存储在存储介质中;

d、在第二时间段内接收多个加密散列;

e、基于在第二时间段内接收到的多个加密散列生成当前校验和;

f、将当前校验和存储在存储介质中;

g、在下一时间段内接收多个加密散列;

h、基于在下一时间段内接收到的多个加密散列和来自步骤b的当前校验和生成下一个校验和;

i、将下一个校验和存储在存储介质中;

j、用步骤i中存储的下一个校验和替换步骤c中存储的当前校验和;

k、在下一时间段内接收多个加密散列;

l、基于在下一时间段内接收到的多个加密散列以及来自步骤e的当前校验和,生成下一个校验和;

m、将下一个校验和存储在存储介质中;以及

n、将步骤f中存储的当前校验和替换为步骤m中存储的下一个校验和。

35、根据实施方式34所述的方法,还包括重复步骤g至步骤n的步骤。

36、一种用于证明数字文档的存在的计算机系统,该系统包括根据前述实施方式中任一项的方法。

37、一种计算机实现的标签链系统,具有:

a、第一链;以及

b、第二条链,

其中第一链和第二链是互斥的。

38、根据实施方式15所述的标签链系统,其中,第一链和第二链存储在同一服务器上。

39、根据实施方式16所述的标签链系统,其中,第一链和第二链存储在不同的服务器上。

还应当理解,为清楚起见在单独的实施方式的上下文中描述的本发明的某些特征也可以在单个实施方式中组合提供。相反,为简洁起见,在单个实施方式的上下文中描述的本发明的各种特征也可以单独地或以任何合适的子组合来提供。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1