用于文档信息真实性验证的系统和方法与流程

文档序号:16363621发布日期:2018-12-22 08:18阅读:207来源:国知局
用于文档信息真实性验证的系统和方法与流程

本发明涉及文档信息真实性验证,并且特别地但不一定完全地涉及用于文档信息真实性验证的系统和方法,其用于以下应用,包括:验证由注册的培训组织发布的课程文档的成就声明的信息的真实性,验证旅行文档和需要真实性验证的其他敏感文档,诸如由律师事务所、会计事务所、政府机构等发布的文档。

此外,本文中描述的真实性验证技术可以广泛地应用于不同的文档介质,包括硬拷贝格式(即,纸张、智能卡旅行文档)和软拷贝格式(即,电子格式,包括pdf格式,包括存储在文档存储库内)。

背景技术

文档真实性验证是以下应用所期望的,包括:例如法律文档、个人身份文档、认证文档、访问文档等中的信息的真实性的验证。

这些文档的问题包括:其中包含的信息可能被修改,其中例如,认证被虚假地要求保护,伪造文档,等等。

d1:2011年6月30日的us2011/0161674a1(ming)试图通过公开一种生成自认证文档的方法来解决该问题,其中文档的认证信息被编码在条形码中,条形码打印在文档上。根据认证信息计算散列并且将其传输到服务器以存储。在验证文档的扫描副本时,读取条形码以提取验证信息。从提取的认证信息计算目标散列并将其传输到服务器以进行验证。服务器将目标散列与先前存储的散列相比较。如果它们不相同,则条形码已经被更改。如果它们相同,则使用提取的验证信息来验证扫描副本。可以生成文档id并将其传输到服务器,并且由服务器使用文档id来索引或搜索存储的散列。

然而,d1具有缺点并且服务器可能被泄密,并且存储在其中的散列可能被修改以匹配被篡改的文档。

因此,d1不适用于需要高安全性严格性的应用,诸如用于登机牌、个人识别文档等。

因此,在优选实施例中,本发明利用分布式的基于密码的区块链以不能更改的方式存储文档验证记录。

当前,d2:根据waybackmachine的于2015年12月22日公布的d2:“whatisproofofexistence?”[2016年4月20日从互联网上检索]<url:https://web.archive.org/web/20151222163927/https://proofofexistence.com/about>,公布了一种用于通过在区块链中存储相应文档的各个加密摘要来存储文档的存在的在线分布式证明的区块链。

d2使电子文档(诸如pdf)散列化并且将散列存储为经由op_return脚本对散列进行编码/包含散列的特殊的比特币事务。这是一个比特币脚本操作码,该比特币脚本操作码将该事务输出标记为可证明不可靠,并且允许插入少量数据(其在这种情况下是文档的散列值)以及标识d2的所有事务的标记。

然而,d2并未涉及验证文档中的信息的真实性的问题,而是证明特定文档在特定时间以特定电子格式存在。

因此,d2不能用于检测文档是否已经被篡改。

此外,d2使整个电子文档文件散列化,并且因此不能用于硬拷贝文档,其中轻微的打印、扫描、影印外观像差将使用d2的系统生成完全不同的散列并且因此其中包含的文档信息将是无法验证的。

因此,在优选实施例中,本发明利用文档内容元数据(使用元数据散列存储,而不是d1的文档散列)作为验证的基础,并且因此可以用于硬拷贝文档。

此外,d1和d2的缺点在于,无法在文档保持可验证的情况下更新文档信息。

例如,使用d2,将为原始文档创建第一比特币事务,并且如果原始文档被更新,则将为已更新文档创建第二比特币事务。

但是,使用d2,尽管原始文档已经被取代,但是原始文档和已更改文档似乎都是有效的。

相反,在一个实施例中,本发明利用区块链更新事务达到以这种方式更新文档内容字段的目的,其中在文档验证阶段期间,可以按相反的时间顺序检查区块链以检测文档(或特定文档内容信息字段)是否已经被取代。

此外,d1和d2都有缺陷,因为验证不能对于预定时期都有效。

相反,根据一个实施例,本发明创建指定有效期的区块链事务。

此外,d1和d2都有缺陷,因为文档不能被撤销。

相反,根据一个实施例,本发明利用撤销型区块链事务,使得可以通过在时间上继先前验证事务之后的撤销型事务来检测文档的真实性的撤销。

此外,d1和d2是有缺陷的,因为验证信息不能与文档相关联地显示以用于视觉比较。

相反,根据一个实施例,本发明将元数据存储在诸如文档自身内或区块链内的计算机可读数据(即,2d条形码)中,使得随后可以提取信息并将其显示给用户。

应当理解,如果本文中提及任何现有技术信息,则这样的引用不构成承认该信息形成本领域、澳大利亚或任何其他国家的公知常识的一部分。



技术实现要素:

这样,考虑到前述内容,根据一个实施例,提供了一种用于文档信息真实性验证的方法,该方法包括验证记录创建阶段和文档验证阶段,其中验证记录创建阶段包括:从文档接收文档内容元数据;使用文档内容元数据生成元数据散列;创建包括元数据散列的区块链事务;生成对元数据散列编码的计算机可读数据;以及使用所述计算机可读数据更新文档;其中文档验证阶段包括:接收文档;从所述计算机可读数据中提取元数据散列;以及标识区块链的区块链事务内的元数据散列以验证文档元数据的真实性。

可以理解,d1或d2没有公开为文档的文档信息创建元数据散列,创建相关联的区块链事务,以及用计算机可读数据(即,2d条形码)和元数据散列更新文档。

计算机可读数据可以是条形码。

条形码可以是二维条形码。

验证记录阶段还可以包括使用与文档验证服务器相关联的私钥对文档进行签名。

该方法还可以包括存储文档内容元数据,使得其中文档验证阶段还可以包括检索文档内容元数据并且显示文档内容元数据。

存储文档内容元数据可以包括在计算机可读数据内对元数据编码。

存储文档内容元数据可以包括在区块链事务内对元数据编码。

验证记录创建阶段还可以包括从文档中标识文档内容元数据。

文档内容元数据的标识可以包括光学字符识别。

文档内容元数据的标识可以包括对照使用光学字符识别提取的文本执行搜索字符串查询。

文档内容元数据的标识可以包括隔离文档的至少一个用户定义区域内的文本。

该方法还可以包括文档内容更新阶段,文档内容更新阶段包括:接收文档的已更新文档内容元数据;使用已更新文档元数据生成新的元数据散列;创建包括新的元数据散列的另一区块链事务。

文档验证阶段可以包括:标识与文档相关联的两个或更多个区块链事务。

文档验证阶段还可以包括标识文档内容元数据可能被已更新文档内容元数据取代。

该方法还可以包括标识文档的哪个部分可以被取代。

该方法还可以包括文档验证撤销阶段,文档验证撤销阶段包括:创建撤销区块链事务,使得在文档验证阶段期间,该方法还可以包括:标识在时间上继区块链事务之后的撤销区块链事务以舍弃文档信息的真实性的验证。

区块链事务还指定有效期,使得在文档验证阶段期间,该方法还可以包括如果有效期到期则舍弃文档的验证。

该方法还可以包括创建包括另外的有效期的有效期更新区块链事务,使得在文档验证阶段期间,可以在确定文档的有效性时使用所述另外的有效期。

根据另一方面,可以提供一种用于文档信息真实性验证的系统,该系统包括文档信息验证服务器和客户终端。文档信息验证服务器包括数据库和软件模块。数据库包括:散列区块链;以及与单向散列区块链相关地存储的文档元数据表。软件模块包括:文档创建模块;以及文档信息验证模块。客户终端与文档信息验证服务器可操作地通信。客户终端包括计算机可读数据读取器;与计算机可读数据读取器可操作地通信的软件应用。软件应用包括文档信息验证模块。其中在使用中,该系统可以被配置为用于验证记录创建阶段和文档信息验证阶段。验证记录创建阶段包括:文档信息验证服务器的文档创建模块:接收与文档相关的文档元数据;使用散列算法接收单向散列或从文档元数据生成单向散列;在单向散列区块链中为单向散列创建条目;生成包括文档元数据和单向散列中的至少一者的计算机可读数据;以及向文档创建模块发送所述计算机可读数据。文档信息验证阶段包括:客户终端的文档信息验证模块从文档接收计算机可读数据;客户终端和文档信息验证服务器中的至少一者从计算机可读数据中标识文档元数据和单向散列中的至少一者,其中如果仅接收文档元数据,则使用单向散列算法生成单向散列;以及文档信息验证服务器的文档信息验证模块通过将单向散列与散列区块链中单向散列的条目相比较来验证文档。

该系统还可以包括与文档信息验证服务器可操作地通信的文档发布者服务器。

文档信息验证服务器可以被配置为用于从文档发布者服务器接收文档元数据。

文档信息验证阶段还可以包括客户终端和文档信息验证服务器中的至少一者向文档发布者服务器发送单向散列和文档元数据中的至少一者以用于文档的进一步验证。

文档发布者服务器可以包括含有散列和元数据数据中的至少一者的数据库,并且其中所述进一步验证可以包括交叉参照文档发布者服务器的数据库内的散列和元数据数据中的至少一者。

文档信息验证服务器的文档信息验证模块还可以被配置为用于向客户终端发送验证结果。

客户终端软件应用还可以被配置为用于生成图形用户界面,并且其中图形用户界面可以被配置为用于显示验证结果。

图形用户界面还可以被配置为用于显示文档元数据的至少一个子集。

该系统可以包括多个文档信息验证服务器,并且其中区块链可以是分布在多个文档信息验证服务器上的分布式区块链。

创建计算机可读数据可以包括创建光学计算机可读数据。

计算机可读数据可以是2d条形码。

该系统还可以包括将计算机可读数据插入到文档中。

还公开了本发明的其他方面。

附图说明

尽管存在可以落入本发明范围内的任何其他形式,但现在将仅通过示例的方式参照附图描述本公开的优选实施例,在附图中:

图1示出了根据本公开的实施例的用于文档信息真实性验证的系统;

图2示出了根据一个实施例的用于创建文档信息真实性验证记录的示例性方法;

图3示出了根据一个实施例的用于使用正式创建的文档真实性验证记录来验证文档的真实性的示例性方法;

图4示出了根据一个实施例的用于更新文档信息同时还能够验证已更新文档的真实性的示例性方法;

图5示出了根据一个实施例的用于撤销特定文档的真实性记录的示例性方法;以及

图6示出了根据本公开的一个实施例的系统的客户终端在验证图1的文档时显示的示例性图形用户界面。

具体实施方式

为了促进对根据本公开的原理的理解,现在将参考附图中所示的实施例,并且将使用特定语言来描述这些实施例。然而,应当理解的是,并不因此意图限制本公开的范围。对于已经掌握了本公开的相关领域技术人员而言通常能够想到的对本文所示的发明特征的任何改变和进一步修改以及本文所示的本公开的原理的任何额外应用都将被认为在本公开的范围内。

在公开和描述与用于文档信息真实性验证的系统相关的结构、系统和相关方法之前,应当理解,本公开不限于本文中公开的特定配置、处理步骤和材料,因为这些可能略有变化。还应当理解,本文中采用的术语仅用于描述特定实施例的目的,并不旨在限制,因为本公开的范围仅受权利要求及其等同物的限制。

在描述和要求保护本公开的主题时,将根据下面给出的定义使用以下术语。

必须注意,除非上下文另有明确说明,否则如本说明书和所附权利要求中使用的单数形式“一(a)”、“一个(an)”和“该(the)”包括复数指示物。

如本文中使用的,术语“包括(comprising)”、“包含(including)”、“含有(containing)”、“其特征在于(characterisedby)”及其语法等同物是包括性的或开放式的术语,其不排除另外的未列举的元件或方法步骤。

在以下描述中应当注意,不同实施例中的相似或相同的附图标记表示相同或相似的特征。

用于文档信息真实性验证的系统架构

现在转到图1,示出了用于文档信息真实性验证的系统1。

从随后的描述中将显而易见的是,系统1被配置为用于验证诸如纸质和电子文档等文档的真实性,尤其是由这样的文档呈现的信息的真实性,以减少或消除文档伪造、资格作假等。

在所提供的示例性架构中,系统1包括文档验证服务器19。如下面将进一步详细描述的,文档验证服务器19配置有用于执行本文中描述的各种计算处理任务的各种软件模块。

在实施例中,文档验证服务器19可以采用物理(诸如机架式)计算机服务器的形式,但是在替代实施例中,相关的服务器可以采用虚拟化服务器实例的形式,诸如可以由amazonwebservices(aws)实现的服务器。

如下面将进一步详细描述的,在实施例中,文档验证服务器19保持区块链账本的副本,并且因此文档验证服务器19的本文中描述的过程可以在多个服务器19之间共享。

更具体地,文档验证服务器19包括用于处理数字数据的处理器31。通过系统总线33与处理器31可操作地通信的是存储器设备29。

存储器设备29被配置为用于存储包括计算机程序代码的数字数据。以这种方式,在操作期间,处理器31可以取得并且执行存储在存储器设备29内的指令,并且将这种执行的数据结果存储在存储器设备29上。

存储器29可以采用易失性(ram)和非易失性(hdd)存储装置的组合的形式。

为了说明方便,存储器29在图1中被示出为配置有多个软件模块15并且配置有数据库神经元20内的相关数据。

可以看出,软件模块15可以包括用于创建文档验证记录的创建模块14,其中文档验证记录随后可以由验证模块13以下面进一步详细描述的方式验证。

此外,为了说明方便,在数据库内示出的数据已经被示出为包括文档元数据23,并且在利用区块链的实施例中包括区块链数据26,区块链数据26包括表示各种已验证文档的文档元数据23的多个文档散列21、22。

文档验证服务器19还包括用于与包括用户接口外围设备等在内的各种计算机外围设备进行通信的i/o接口30。

i/o接口30还可以与诸如usb存储器存储设备等数据存储外围设备接合。以这种方式,计算机程序代码模块15可以存储在计算机可读介质上,计算机可读介质可以经由i/o接口30(或网络接口32)被上载到验证服务器19,以便将文档验证服务器19配置为执行本文中描述的具体计算处理任务。

文档验证服务器19还包括用于通过计算机网络发送和接收数据的网络接口32,其中计算机网络被示出为所示的系统1中的因特网34。以这种方式,文档验证服务器19可以与图1中所示的其他计算参与者可操作地通信。

关于这一点,在实施例中,系统1还可以包括文档发布者服务器16。一般而言,文档发布者服务器16由发布需要以本文中描述的方式进行真实性验证的敏感文档的人、实体、组织、机构等使用。

关于这一点,文档发布者可以利用文档发布者服务器16来存储文档元数据16,编译和生成文档,存储文档以及通过因特网34转发文档,等等。

关于这一点,文档发布者服务器16可以类似地包括具有验证模块11和创建模块12的软件模块10。此外,文档发布者服务器16还可以存储文档元数据18和相关联的散列24。

这样,在实施例中,文档发布者服务器16可以执行所有文档真实性验证任务和数据,例如,组织利用文档发布者服务器16以隔离方式执行文档验证。

在替代实施例中,文档发布者16可以利用文档验证服务器19(诸如基于订阅api)来执行所有或至少一些文档验证任务。

系统1还包括通过因特网34与文档发布者服务器16和文档验证服务器19中的至少一者可操作地通信的客户终端25。

一般而言,客户终端25可以用于显示指示文档的真实性的信息。

在一个实施例中,客户终端25可以采取可以被用户用来验证文档的真实性的个人计算机设备的形式,诸如笔记本、移动通信设备(诸如智能电话设备,诸如苹果公司的iphone等)。

可以看出,客户终端25还可以包括用于通过因特网34进行通信的网络接口32。

在客户终端25采用移动通信设备25的形式的实施例中,网络接口32可以通过诸如3-5g蜂窝数据网络之类的蜂窝网络发送和接收数据。

客户终端25类似地包括用于处理数字数据的处理器31和通过系统总线33与处理器31可操作地通信的存储器设备29。

客户终端25存储器29还可以包括操作系统30,诸如appleos或android操作系统。

此外,客户终端25还可以包括i/o接口30,在所示实施例中,i/o接口30可以与计算机可读数据读取器8接合。关于这一点,并且如下面将进一步详细描述的,读取器8可以从文档2读取计算机可读数据27以进行验证,以便验证文档的真实性。

在客户终端25采用移动通信设备的形式的实施例中,读取器8可以采用客户终端25的图像捕捉设备/摄像头设备的形式,并且计算机可读数据27可以采取二维(2d)(诸如快速响应(qr))条形码的形式。这样,为了验证文档2,用户将捕捉文档2所载有的2d条形码的图像,以便允许客户终端25验证其真实性。

在实施例中,客户终端25(采用移动通信设备的形式)可以利用下载的软件应用“app”9来配置,app9可以例如从软件应用商店(如appleappstore等)下载以供客户终端25安装和执行。

关于这一点,软件应用9可以包括各种子模块/软件模块,包括验证模块6和图形用户界面模块7。

图1还示出了包括由系统1验证的文档2的系统1。如上所述,文档2可以采用硬拷贝和软拷贝文档的形式。对于后者,软拷贝(电子的,诸如pdf格式)文档可以存储在文档数据库34内。关于这一点,特定文档可以利用url和文档id或诸如文档散列之类的其他唯一标识符来检索。

如图所示,文档2可以包括文档内容5。此外,文档2可以包括计算机可读数据27,如上所述,计算机可读数据27可以采用被包括或印刷在文档2上的2d条形码的形式。这样,计算机可读数据27可以由客户终端25(或通过因特网34的其他计算参与者)读取,以便验证其真实性。

在实施例中,计算机可读数据27可以包括文档id、文档元数据散列4或文档元数据3或其组合,这取决于具体的应用。

应当注意,出于说明性目的,图1中提供的计算机架构主要是示例性的。

具体地,图1中提供的特定架构用于部署文档验证服务器19以基于订阅形式使用的应用,使得各种文档发布者、用户等可以选择性地访问由文档验证服务器19披露的网络功能以用于验证文档。

然而,应当特别注意,在本文中描述的实施例的目的范围内,可以修改特定架构,同时仍然执行相同的文档真实性验证任务和功能。

用于文档真实性记录创建的示例性方法35

已经一般性地描述了上述计算架构,现在将提供用于利用系统1进行文档真实性验证的各种示例性方法,包括图3中所示的用于文档真实性记录创建的方法35。

方法35用于创建后续可以使用的文档真实性记录和后续的验证步骤。

应当注意,方法35仅是示例性的,并且相应地,不应将技术限制必然地归于所有实施例。

在方法35的步骤39中,获取文档内容。

在文档2是物理文档的情况下,可以利用扫描仪扫描文档,并且利用光学字符识别(ocr)获取文档内容。

可替代地,在文档2是软拷贝文档的情况下,可以从电子文件系统文档自身读取文档内容(诸如通过读取各种文档元数据或文档内容,包括也可以使用ocr来识别文档内容),或者替代性地,可以从诸如文档发布者服务器16的数据库17等适当的数据库检索文档内容。

通常,文档内容是重要的文档内容(本文中称为元数据,其被散列为诸如md5、sha256散列或其他合适的单向散列之类的元数据散列),对这个重要的文档内容的随后的更改或修改可以由系统1来检测。在其他实施例中,可以将整个文档散列成文档散列,使得可以检测对文档的任何更改。

此外,如下面将进一步详细描述的,系统1可以包括用于更新文档内容/元数据或用于撤销真实性认证的功能。

在步骤40中,可以标识各种元数据。如上所述,元数据表示文档内包含的重要信息。

例如,对于成就声明文档,元数据可以表示发布组织的名称、成就者的姓名和资格证书的名称。再例如,对于登机牌,元数据可以表示乘客的姓名、航班号、登机口、护照号码、目的地等。

在实施例中,系统1被配置为用于创建元数据的元数据散列4,使得可以由系统1检测重要的元数据的篡改。此外,元数据可以保持为非散列格式(以计划文本或加密的形式),以便允许客户终端25在验证期间的后续显示。

在步骤40中使用元数据(表示某些重要文档信息)对于硬拷贝文档可能是有用的,使得在其上呈现的重要信息被隔离以用于验证。以这种方式,可以以其他方式修改文档,诸如包括影印和扫描像差,在不同的信头上打印等,而不影响验证其真实性的能力。

然而,如上所述,应当注意在实施例中,特别是对于电子文档,元数据不需要一定与文档隔离以代替使电子数据文件的全部内容都被散列化。具体地,在本实施例中,与元数据散列化相反,电子文档文件可以是散列,诸如md5、sha256散列等。在实施例中,可以利用单独的元数据散列和文档散列,使得可以独立地检测文档或其中的敏感元数据的修改。

在实施例中,所使用的元数据可以是用户指定的。例如,从文档发布者数据库29使用的某些元数据是用户指定的。

在替代实施例中,在从文档自身提取元数据的情况下,可以指定搜索字符串过滤器以允许系统1提取(包括使用ocr)适当的元数据。

例如,对于成就声明文档,可以仅指定组织、成就者和资格证书的名称以作为元数据保存,以便进行验证,使得能够修改其他文档内容而不影响验证文档的元数据的真实性的能力。

这样,可以利用各种搜索字符串,以允许系统1提取这些元数据字段。

在另外的实施例中,可以指定文档区域/矩形(表示文档内的文档元数据的位置),以便允许系统仅从指定区域提取文本。

在步骤41中,可以获取或生成文档id。在优选实施例中,文档id是全局唯一的(guid),以便防止或基本上消除文档id冲突。

文档id可以用于唯一地标识文档,以用于验证。例如,文档id可以用于利用包括文档id的url从文档数据库34中检索文档。此外,文档id可以用于更新文档,以用于撤销文档。

在实施例中,文档id可以由系统1生成。然而,在替代实施例中,文档id1可以由文档发布者提供,其中例如,注册的培训组织发布按数字顺序排列的成就声明文档。

在实施例中,还可以将文档id散列为元数据散列或文档散列的一部分,以便防止篡改文档id。

然而,应当注意,在某些实施例中,不一定需要文档id。例如,硬拷贝文档可以在其上包括表示元数据的散列的2d条形码,其中元数据表示由文档显示的信息。这样,可以扫描2d条形码以验证文档内容,而不一定必须使用文档id。

在另外的实施例中,从文档文件或元数据生成的散列可以用作唯一文档id。

在步骤42中,创建散列4。优选地,散列是单向散列,诸如md5、sha256等。散列提供潜在地将大量信息减少到少量的能力,但重要的是,即使内容的单个字母的篡改也会极大地影响散列。

在优选实施例中,散列4是元数据散列,使得元数据(重要文档信息)被散列化,以便能够检测该重要文档信息的后续更改。然而,如上所述,在其他实施例中,散列4可以是电子文档文件的文档散列。

还可以在散列4内使其他信息散列化,包括文档id。

在实施例中,可以使上述信息的组合散列化以形成散列4。

在优选实施例中,系统1使用区块链以用于存储散列4的目的,以便能够提供验证文档的不可更改的分布式、可信的账本。

具体地,如图1所示,文档验证服务器19可以在数据库20内存储区块链账本26的副本,该副本可以与其他文档验证服务器19同步。

因此,在步骤43中,将散列添加到区块链事务,随后挖掘区块链事务并且将其添加到区块链中的块。存在可以将散列添加到区块链的不同方式,包括在比特币脚本操作码内使用比特币区块链。在替代实施例中,可以利用包括适当数据字段的定制区块链。

因此,当验证文档时,可以检查区块链以确定散列4(其可以从2d条形码27扫描或者替代地在运行中计算)是否驻留在区块链内。

在实施例中,可以对整个区块链搜索散列,但是在优选实施例中,可以使用单独的散列索引来加速散列查找过程。

应当注意,并非所有实施例都必须使用区块链。例如,文档发布者服务器16可以保持文档元数据18(或文档内容)以及相关联的文档散列24或文档id的数据库,用于允许在不使用共享账本的情况下隔离地验证文档的目的。换言之,系统1还保持元数据18的副本(以便例如允许在验证过程期间显示元数据以供用户进行视觉比较)和相关联的散列以便能够检测元数据的篡改(虽然没有针对数据库17的篡改的安全措施,但这可以利用区块链来避免)。

在步骤44中,可以生成计算机可读数据,然后可以将计算机可读数据与文档结合使用以进行验证。

在步骤46中,将计算机可读数据可见地或不可见地插入到文档中。

在上面提到的一个实施例中,计算机可读数据27可以采用包括文档散列、文档id和文档元数据中的一个或多个的2d条形码的形式。

在优选实施例中,计算机可读数据27是可见的,以允许打印、扫描和影印文档。

例如,可以修改文档以可见地显示计算机可读数据27,其中例如,pdf文档被修改为在文档的右下侧包括2d条形码的图像。以这种方式,当随后验证电子文档或其打印输出时,用户可以利用智能电话25的摄像头设备来捕捉2d条形码的图像以验证文档的内容或元数据。

在替代实施例中,对于仅以电子形式存在的电子文档,计算机可读数据27不一定是人眼可见的,并且可以被并入在例如文档的元数据中。这样,当显示文档时,文档显示软件可以在后台检查相关联的元数据并且显示和指示文档是否被验证。

例如,可以更新pdf文档,使得pdf文档元数据包括计算机可读数据27(如上所述,其可以包括文档元数据、文档id和文档散列中的一个或多个)。这样,当在诸如adobeacrobatreader等pdf应用内显示时,pdf软件可以自动检查计算机可读数据27并且显示关于文档是否被验证的指示。

在替代实施例中,诸如当用于旅行文档等时,可以使用rfid标签。

在步骤46中——其中文档采用电子文档的形式,也可以对文档进行数字签名,以防止篡改或修改被包括或插入在其上的计算机可读数据。

在一个实施例中,文档验证服务器19可以使用私钥对文档进行签名,使得其他人随后可以验证文档验证服务器19确实已经利用相关联的公钥对文档进行了签名。

用于文档真实性验证的示例性方法36

现在转到图2,示出了用于文档真实性验证的示例性方法36。从随后的描述中显而易见的是,方法36用于利用与其相关联的计算机可读数据27来验证文档的真实性的目的。

方法36开始于获取文档的步骤47。例如,可以手动获取物理文档,或者,可以从文件系统检索电子文档,从url下载电子文档,等等。

在步骤48中,扫描或读取与文档相关联的计算机可读数据。

对于包括2d条形码形式的计算机可读数据27的物理文档,可以利用客户终端25的读取器8读取条形码。

对于电子文档,计算机可读数据27可以由文档显示软件(诸如adobeacrobat)检索。

在步骤49中,可以从计算机可读数据27中提取散列。

在计算机可读数据包括文档id的情况下,还可以从计算机可读数据中检索文档id,以便能够与用于检索文档的或与文档相关联的文档id相比较。

在步骤50中,在系统1利用区块链的情况下,可以检查区块链以寻找含有包括散列的事务的块,并且在一些实施例中寻找相关联的文档id。

如果在区块链中找到匹配的事务,则在步骤51中,可以向用户显示指示文档是真实的验证。

另外,在步骤52中,可以从计算机可读数据中提取元数据,然后可以由客户终端25显示元数据,以便允许用户将从计算机可读数据中提取的元数据与显示在文档上的元数据相比较。

在某些其他实施例中,元数据23可以存储在区块链26自身内,使得可以在验证期间从区块链26检索元数据23,以否定将元数据23存储在2d条形码27自身内的需要。

用于更新文档元数据的示例性方法37

转到图4,示出了用于更新文档元数据的示例性方法37。

具体地,在实施例中,可能需要更新文档元数据。

例如,对于登机牌,可能发生登机口改变。作为另一示例,对于成就声明,可能从婚前姓名改变成就者的姓名。

因此,方法37可以用于允许更新某些文档字段,同时还能够保持验证文档的真实性的能力。

因此,在步骤52中,可以生成或获取要更新的文档的文档id(或其他唯一标识符,诸如文档或元数据散列)。

在步骤54中,接收已更新元数据(或文档内容)。例如,已更新元数据可以包括新的姓氏。

在步骤55中,使已更新元数据(或已更新文档内容)散列化。

此时,在步骤56中,通过另外的事务将新的散列添加到区块链。

在步骤57-59中,可以修改文档以并入新的计算机可读数据27。然而,2d条形码27的更新不是一定要发生,尤其是对于已经传播的文档。

因此,当随后验证文档时,可以以时间倒序检查区块链事务,其中在时间上最近的验证事务被用作当前验证事务。

可替代地,如果从与存在更近期的区块链事务的区块链事务相关联的文档中提取到散列,则客户终端25可以向用户通知文档元数据/内容过期并且文档已经被取代。

在实施例中,验证结果可以指示文档已经被取代。然而,在其他实施例中,验证结果可以指示哪个文档内容元数据已经被取代。

例如,当创建第一区块链验证事务时,文档id和原始元数据散列可以存储在区块链内。

然后,当接收到对文档元数据的更新时,可以在区块链内创建包括文档id和新的元数据散列(表示已更新的元数据)的新的区块链事务。

因此,在文档的后续验证期间,可以由客户终端25读取计算机可读数据27以提取文档id和元数据散列。

然后,可以搜索区块链以寻找与文档id相关联的区块链事务。

然而,如果系统1标识出两个或更多个事务,则系统1能够将检索到的散列与两个或更多个事务相比较,以标识特定事务是当前事务还是已经被取代。

用于文档真实性撤销的示例性方法38

现在转到图5,示出了用于文档真实性撤销的示例性方法38。

具体地,可能出现撤销文档的需要。例如,已经接收到成就声明的人可能随后已经被发现是通过欺诈获取的资格证书并且因此成就声明需要撤销。

在使用区块链技术的情况下,无法从区块链中删除事务。

因此,方法38利用撤销事务,撤销事务被添加到区块链以撤销文档。

具体地,方法38开始于步骤60,在步骤60中接收针对由文档id(或其他唯一标识符,诸如文档或元数据散列)标识的特定文档的撤销请求。

在步骤61中,向区块链添加撤销事务。撤销事务由事务类型(撤销事务类型,其也可以存储在比特币脚本操作码中)和文档id来标识。

因此,在后续的验证期间,在步骤62中,接收针对文档的计算机可读数据,并且从中提取文档id和/或文档散列。

在步骤63中,搜索区块链以寻找匹配的文档id或散列。

然而,对于在区块链内标识的任何验证事务,在步骤63中,系统1都将标识与文档id或散列相关联的区块链内的后续撤销事务,并且因此在步骤64中,验证失败。

有限真实性验证期

在实施例中,文档可以具有有限的真实性。其中例如,文档仅在12个月内有效,例如驾驶执照可能就是这种情况。

因此,存储在区块链内的验证事务可以指定有效期(其也可以存储在比特币脚本操作码中)。因此,在验证期间,系统1可以检查验证事务的进入日期,并且如果当前日期超过了有效期,则验证失败。

例如,如果系统1在大于12个月之前在区块链内标识验证事务,但验证事务指定验证有效期为12个月,并且系统1无法标识任何另外的在时间上在后的与文档相关联的验证事务,则验证失败。

关于这一点,可以通过添加在时间上在后的区块链验证事务来更新有效期。

用于验证由注册的培训组织(rto)发布的成就声明文档的系统1架构的示例性用途

已经描述了上述系统1的架构和相关方法,现在将描述系统1用于验证由注册的培训组织(rto)发布的成就声明文档的应用的示例性用途。

可以看出,文档发布者(rto)服务器16包括多个软件模块10。

在本文中描述的实施例中,软件模块10可以包括用于创建用于后续验证的文档记录的目的的验证记录创建模块12。

还可以看出,文档信息验证服务器19自身可以包括多个软件模块15,软件模块15自身包括验证记录创建模块14。

此外,文档发布者(rto)服务器16的软件模块10还可以包括用于后续文档验证的验证模块11。

类似地,文档信息验证服务器19的软件模块15类似地包括用于验证文档的目的的验证模块13,如下面将进一步详细描述的。

如上所述,如果文档发布者(rto)服务器16和文档信息验证服务器19的功能由单个服务器实现,则这种验证和创建功能可以由相同的模块实现。

在该示例性实施例中,名为jamessmith的人成功完成了特定rto的课程。

在完成课程之后,由rto记录成就或课程声明的详情。

具体地,可以看出,文档发布者(rto)服务器16包括数据库17。

此外,数据库17可以包括元数据18或被配置为用于存储与由jamessmith完成的课程相关的各种信息字段的其他类型的结构化数据。

因此,以下信息可以记录在数据库17中:

a.姓名:jamessmith

b.发布日期:2007年7月7日

c.文档号:0007/07/2007

d.发布rto:allwest培训服务

e.全国供应商代码号:51925

f.证书类型:成就/课程声明

g.签署官员:bobcooper

h.签署官员职位:首席执行官

现在,在验证记录创建阶段期间,创建上述元数据的散列。在一个实施例中,元数据被连结成诸如包括以下内容的字符串:

a.jamessmith|19051983|m|007007007|0007/07/2007|allwest培训服务|51925|07072007|成就声明|进行拖运卡车运营|bobcooper|首席执行官

接下来,使用诸如md5、sha256或其他散列算法等单向散列算法使连结的字符串散列化。例如,这样的散列可以生成以下散列:

a.25908e49524e4828190dae3d79b894eec7ec3e4843c8bca6ef9f384c679167bc

接下来,存储元数据散列以便可用于后续的文档信息验证。

具体地,可以看出,文档信息验证服务器19包括用于存储包括散列数据在内的各种信息的数据库20。

因此,将上述元数据散列插入到数据库20中。这种插入可以包括文档信息验证服务器19从文档发布者(rto)服务器16的数据库17接收元数据(或元数据散列),诸如以周期性的间隔接收,根据请求而定,等等。

应当注意,本文中描述的散列算法可以由本文中描述的实施例的目的范围内的任何计算参与者执行。换言之,例如,文档发布者(rto)服务器16或文档信息验证服务器19可以执行散列化。

在优选实施例中,为了防止由于将欺诈性散列条目插入到数据库20中而引起的欺诈,系统1可以实现分布式公共账本区块链26,使得每个散列条目可以根据数据库20内的其他散列条目来验证。

在本文中描述的实施例中,验证由单个文档信息验证服务器19执行。然而,应当理解,区块链26可以是分布在多个服务器19上的分布式区块链。

应当注意,任何分布式的基于密码的区块链都可以在本文中描述的实施例的目的范围内使用,并且包括在bitcoin(比特币)、ehterum(以太坊)、litecoin(莱特币)区块链等中使用的或与之类似的那些。

在这些实施例中,可以为每个rto16(“文档信息发布者”)和文档验证服务器19指派“发布者地址”,“发布者地址”可以是比特币钱包地址。电容器、比特币区块链内的事务可以与相应的文档发布者服务器16或文档验证服务器19唯一地相关联。

在实施例中,元数据还可以存储在文档信息验证服务器19的数据库20内。以这种方式,通过散列(或文档id),可以查找元数据。

在该实施例中,散列可以用作主钥。然而,应当理解,数据库20不是必须包括元数据23,以便仅为了文档信息验证的目的而包括散列。

现在,生成包括散列和元数据中的至少一者的计算机可读数据。计算机可读数据的创建将允许将计算机可读数据插入到诸如成就证书等文档上,该文档是纸质或电子(即,pdf)文档,该文档随后可以使用客户终端25来读取以用于验证文档和存储在其中的文档元数据的真实性的目的。

在优选实施例中,计算机可读数据体现在2d条形码中。例如,当生成2d条形码计算机可读数据时,可以使用以下格式进行数据编码:

a.[key_hash]||[姓名]||[出生日期dd/mm/yyyy]||[性别]||[dl号码]||[文档编号]||[发布rto]||[全国供应商代码号]||[发布日期dd/mm/yyyy]||[证书类型]||[执照类型]||[签署官员]||[签署官员职位]

这可以使用适当的算法生成到以下2d条形码中:

在创建了计算机可读数据之后,然后将计算机可读数据插入或打印到文档上。

从图1中可以看出,示出了文档2,文档2是由jamessmith完成的课程的成就证书。在该特定实施例中,文档2由文档发布者(rto)服务器16作为pdf文档发布。因此,jamessmith可以利用电子pdf文档2作为对于各种雇用目的的其资质证明。

可以看出,文档可以包括文档内容5,文档内容5可以包括常见的人类可读信息,该信息包括上述元数据的至少一个子集。然而,如上所述,在现有技术的布置中,可以电子地或物理地编辑文档以便表示欺诈性信息。

这样,通过额外地包括计算机可读数据27,可以使用客户终端25来验证文档。可以看出,由文档2承载的计算机可读数据27可以包括元数据3、元数据或文档散列4和文档id中的至少一者。

在实施例中,在计算机可读数据27内仅对元数据3编码,使得可以从元数据计算散列以用于验证。在其他实施例中,在计算机可读数据27内仅对散列4编码,使得可以从文档信息验证服务器19的数据库20或文档发布者(rto)服务器16的数据库17或区块链中检索元数据。

可以看出,客户终端25包括被配置为用于实现本文中描述的特征和功能的软件应用9。如上所述,在实施例中,客户终端25是移动通信设备,诸如智能电话设备等。本文中,客户终端25可以包括读取器8;在一些实施例中,读取器8可以采用手机摄像头的形式。

在使用中,客户终端25的操作可以下载软件应用9以供客户终端25执行,例如从诸如appleitunes商店等软件应用商店下载。

可以看出,软件应用9可以包括被配置为用于实现客户终端实现的用于文档信息验证的功能的验证模块6,并且还包括图形用户界面(gui)模块,图形用户界面(gui)模块呈现图形用户界面以显示给gui7,用于向客户终端用户显示各种信息的目的。

因此,为了验证文档的真实性,客户终端用户将使用读取器8扫描在文档上提供的2d条形码计算机可读数据27。在从文档2接收到计算机可读数据之后,客户终端25和文档信息验证服务器19中的至少一者被配置为用于标识元数据3和散列4中的至少一者。

在优选实施例中,元数据3在计算机可读数据27内被编码,使得客户终端25的gui7可以显示元数据。

在另外的优选实施例中,散列4和元数据3都在计算机可读数据27内被编码,使得客户终端25可以使用散列算法使用已编码的元数据3生成散列,以便至少验证已编码的散列4与元数据3相匹配。在实施例中,可以使用适当的散列算法,以便防止欺诈者使用已知的散列算法欺骗性地生成和编码散列。

此外,通过诸如因特网等数据网络与文档信息验证服务器19可操作地通信,客户终端25能够将元数据3和散列4中的至少一者发送到文档信息验证服务器19以用于验证。

文档信息验证服务器19被配置为将从客户终端25接收的散列(或者从由客户终端25读取的元数据3计算出的散列)与存储在区块链26内的散列值相比较。

如果发现匹配,则文档信息验证服务器19能够向客户终端25返回验证结果,以验证出文档信息是真实的。

可替代地,如果未发现匹配,则验证服务器19被配置为向客户终端25返回非验证结果,以指示文档信息可能是欺诈性的或已经被篡改。

在任一种情况下,gui7都被配置为用于向客户终端用户显示验证结果。另外,gui7可以显示相关联的元数据。

例如,现在转到图6,示出了由gui7显示的示例性界面28,其中文档已经被验证。可以看出,界面28包括各种元数据并且包括文档信息是真实的确认。

在实施例中,系统1被配置为用于实现进一步的验证,其中保持在rto服务器数据库17内的记录(在记录已经被更新或撤销的情况下)被进一步交叉参考。具体地,交叉参考可以使用散列和元数据中的至少一者来执行。可以看出,在实施例中,文档发布者(rto)服务器16的数据库17可以被配置为用于与元数据19相关地存储散列值24。如上所述,这样的散列值24可以从文档信息验证服务器19接收,或者可替代地由文档发布者(rto)服务器16自身计算。另外,如上所述,在实施例中,数据库17不一定包括散列值24,在这种情况下元数据18被交叉参考。

当元数据18被交叉参考时,客户终端25和文档信息验证服务器19中的至少一者可以向文档发布者(rto)服务器16的验证模块11发送另外的查询以验证存储在数据库17中的数据。例如,客户终端25可以将文档号发送到rto服务器16以验证文档号是真的。其他交叉参考可以在本文中描述的实施例的目的范围内完成。

系统1用于硬拷贝文档的示例性用途

现在将描述系统1用于硬拷贝文档的示例性用途。

具体地,如上所述,硬拷贝文档的问题可能包括文档的外观随时间变化,这种变化例如由影印像差等引起。

因此,在该示例性使用中,将描述系统1,尽管外观上有变化,但仍能够验证硬拷贝文档。

具体地,在该示例中,硬拷贝文档是已经由卖方、买方和证人签署的销售合同文档。硬拷贝文档进一步规定了由批号标识的正在出售的不动产。

因此,为了创建文档验证记录的目的,可以使用扫描仪扫描所执行的合同文档,并且其中系统1然后执行文档的ocr识别以从销售合同中标识相关元数据。在该示例中,相关元数据是卖方和买方的名称以及批号。

因此,系统1被配置为从文档中提取这样的元数据。例如,利用ocr,系统1可以被配置为利用字符串匹配等从数据中提取这些字段。

可替代地,可以在客户终端25上显示文档的图像扫描,使得律师能够划定要验证的元数据,诸如通过使用鼠标拖动相关联的文本周围的矩形。

另外,文档id可以由律师指定,其中文档id为文档系统生成的文档id。

在获取了相关元数据之后,系统1使元数据(以及实施例中的文档id)散列化并且在区块链内创建验证事务。

此外,系统1以2d条形码的形式生成计算机可读数据,计算机可读数据然后被打印到销售合同文档上。

2d条形码包括元数据散列4、文档id和元数据。

然后,影印销售合同,并且然后将影印件发送给传送者。

然而,在影印过程中会发生轻微的视觉偏差。

但是,为了验证销售合同,传送者利用传送者的移动通信设备25的摄像头捕捉文档的图像。

移动通信设备25包括应用9,应用9标识2d条形码并且从2d条形码中提取元数据散列、文档id和元数据。

然后,移动通信设备25通过因特网34向文档验证服务器19发送验证请求。验证请求包括散列,但是在一些实施例中,可以另外包括文档id。

然后,文档验证服务器19搜索区块链的验证事务,并且标识较早的所创建的验证事务。

然后,文档验证服务器19向移动通信设备25发送验证响应,使得移动通信设备25能够显示存在验证记录的指示。

现在,在一个实施例中,传送者的移动通信设备25可以显示从2d条形码中提取的元数据。这样,传送者可以在视觉上检查由移动通信设备25显示的文档上各方的名称和批号以确保它们的一致性。

应当注意,客户终端25可以使存储在2d条形码内的元数据重新散列化,以便确认所生成的散列是否与2d条形码的散列相匹配(以防止对条形码内的元数据的篡改)。

可替代地,在初始验证事务期间,元数据也可能已经存储在区块链内,使得元数据可以从文档验证服务器19发送到客户终端25以用于显示。

在替代实施例中,与显示元数据字段以用于由传送器进行视觉比较不同,移动通信设备可以执行光学字符识别以便从文档中读取文本(尽管存在影印像差)并且确认所识别的文本是否与元数据相匹配。

例如,对于存储在2d条形码或区块链内的元数据,客户终端25可以搜索ocr文本以标识这样的元数据。如果未标识出这样的情况,诸如扫描的文档中不包含相同的批号,则验证失败。

在实施例中,相关元数据在边界内划定,其中例如在上述实施例中,律师在显示在屏幕上的要验证的元数据上绘制矩形。例如,批号可以位于页面的中间顶部中央,而各方的名称可以分别位于文档的左、右下角。

因此,在验证期间,移动通信设备25被配置为用于仅在划定的边界内识别文本,并且然后将从这些划定的边界中提取的文本与元数据相比较。当使用摄像头时,移动通信设备25可以标识用于取向的页面角落,以便能够准确地放置划定的边界。

系统1架构用于验证登机牌的示例性用途

现在将描述系统用于验证登机牌的示例性用途。

具体地,现有登机牌系统存在的问题在于,其上打印的数据可能被篡改。另外,数据库条目可能被修改以匹配篡改的打印,使得在登记期间,登机人员可能不会注意到登机牌已经被篡改而与已修改的数据库条目相匹配。

因此,在该实施例中,当最初打印登机牌时,乘客记录计算系统将相关元数据发送到文档验证服务器19。

在该实施例中,相关元数据可以包括登机牌id、乘客姓名和登机口。

文档验证服务器19可以使元数据散列化并且在区块链内创建条目,并将2d条形码发送到乘客记录计算系统,2d条形码然后被打印到登机牌上。

现在,在出发之前,航班的重新调度可能会导致登机口号码的更新。因此,乘客记录计算系统标识所有受影响的乘客,并且对于所标识的受影响乘客,向文档验证服务器19发送更新通知。

例如,对于每个登机牌,乘客记录计算系统可以发送登机牌id和已更新的登机口号码。

对于每次更新,文档验证服务器19在区块链内创建新条目。

现在,在登记期间,扫描登机牌的2d条形码,并且从条形码中提取登机牌id和元数据(乘客姓名和登机口号码)。在底部,这样的信息也可以经由ocr从登机牌打印物中检索。

然后可以将这种提取的元数据发送到文档验证服务器19以用于验证。

在实施例中,登机口计算机可以保持区块链的副本,从而避免通过因特网向文档验证服务器19进行的耗时的查询。

现在,假定尝试使用另一名字替换乘客,登机牌可能已经被篡改以改变登机牌上打印的姓名以及乘客记录计算系统数据库内的相关条目。另外,可以修改存储在2d条形码内的元数据。

然而,对于这样的名称修改,文档验证服务器19的验证将失败,因为文档验证服务器19将无法将新名称的散列与存储在区块链内的散列相匹配。

现在,对于已更新的登机口号码,登机牌仍然可能表示旧的登机口号码。

这样,被编码在2d条形码内的散列将是过时的(因为它仍然表示旧的登机口号码)。

然而,在登记时,可以由乘客检查计算机将新登机口号码发送到文档验证服务器19,其中文档验证服务器19能够使用新的登机口号码来标识与登机牌id相关的另外的验证事务,并且因此通过登机牌的验证。关于这一点,应当注意,对于任何其他登机口号码,如果其与区块链内的登机口更新事务不匹配,则验证将失败。

释义

无线:

本发明可以使用符合其他网络标准的设备和其他应用的设备来实现,包括例如其他wlan标准和其他无线标准。可以适应的应用包括ieee802.11无线lan和链路以及无线以太网。

在本文档的上下文中,术语“无线”及其派生词可以用于描述可以通过使用调制的电磁辐射通过非固体介质来传送数据的电路、设备、系统、方法、技术、通信信道等。该术语并不暗示相关设备不包含任何线,尽管在一些实施例中它们可能不包含任何线。在本文档的上下文中,术语“有线”及其派生词可以用于描述可以通过使用调制的电磁辐射通过固体来传送数据的电路、设备、系统、方法、技术、通信信道等。该术语并不暗示相关设备通过导电线耦合。

过程:

除非另有特别说明,否则从以下讨论中可以明显看出,应当理解,在整个说明书中,利用诸如“处理”、“计算(computing)”、“估计(calculating)”、“确定”、“分析”等术语的讨论是指计算机或计算系统或类似的电子计算设备的将被表示为物理(诸如电子)量的数据操纵和/或转换成类似地表示为物理量的其他数据的动作和/或过程。

处理器:

以类似的方式,术语“处理器”可以是指处理例如来自寄存器和/或存储器的电子数据以将该电子数据转换成例如可以存储在寄存器和/或存储器中的其他电子数据的任何设备或设备的一部分。“计算机”或“计算设备”或“计算机器”或“计算平台”可以包括一个或多个处理器。

在一个实施例中,本文中描述的方法可以由接受包含一组指令的计算机可读(也称为机器可读)代码的一个或多个处理器执行,这些指令在由一个或多个处理器执行时执行本文中描述的方法中的至少一种。包括能够执行指定要采取的动作的一组(顺序的或其他方式的)指令的任何处理器。因此,一个示例是包括一个或多个处理器的典型处理系统。该处理系统还可以包括存储器子系统,存储器子系统包括主ram和/或静态ram和/或rom。

计算机可读介质:

此外,计算机可读载体介质可以形成计算机程序产品或被包括在计算机程序产品中。计算机程序产品可以存储在计算机可用载体介质上,计算机程序产品包括用于使处理器执行如本文中描述的方法的计算机可读程序装置。

网络或多个处理器:

在替代实施例中,一个或多个处理器作为独立设备操作,或者可以在联网部署中连接(例如,联网到其他处理器),所述一个或多个处理器可以以服务器客户终端网络环境中的服务器或客户终端机器的身份进行操作,或者作为对等或分布式网络环境中的对等机器进行操作。所述一个或多个处理器可以形成网络设备、网络路由器、交换机或网桥、或能够执行指定要由该机器采取的动作的一组(顺序的或其他方式的)指令的任何机器。

注意,虽然一些图仅示出了单个处理器和携带计算机可读代码的单个存储器,但是本领域技术人员将理解,还包括很多上述组件,但未明确示出或描述以免使本发明的各方面模糊不清。例如,虽然仅示出了单个机器,但术语“机器”还应当被视为包括单独或联合执行一组(或多组)指令以执行本文中讨论的方法中的任何一种或多种的任何机器集合。

附加实施例:

因此,本文中描述的每个方法的一个实施例都是携带一组指令的计算机可读载体介质的形式,这组指令例如是用于在一个或多个处理器上执行的计算机程序。因此,如本领域技术人员将理解的,本发明的实施例可以体现为方法、诸如专用设备等设备、诸如数据处理系统等设备、或计算机可读载体介质。计算机可读载体介质承载计算机可读代码,计算机可读代码包括一组指令,这组指令当在一个或多个处理器上执行时使一个或多个处理器实现方法。因此,本发明的各方面可以采用方法、完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。此外,本发明可以采用承载体现在介质中的计算机可读程序代码的载体介质(例如,计算机可读存储介质上的计算机程序产品)的形式。

载体介质:

还可以经由网络接口设备通过网络发送或接收软件。虽然载体介质在示例性实施例中被示出为单个介质,但是术语“载体介质”应当被视为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的高速缓存和服务器)。术语“载体介质”还应当被视为包括能够存储、编码或携带一组指令以供一个或多个处理器执行并且使所述一个或多个处理器执行本发明的方法中的任何一个或多个的任何介质。载体介质可以采用很多形式,包括但不限于非易失性介质、易失性介质和传输介质。

实现:

应当理解,所讨论的方法的步骤在一个实施例中由执行存储在存储装置中的指令(计算机可读代码)的处理(即,计算机)系统的适当的一个(或多个)处理器来执行。还应当理解,本发明不限于任何特定实现或编程技术,并且本发明可以使用用于实现本文中描述的功能的任何适当的技术来实现。本发明不限于任何特定的编程语言或操作系统。

用于执行方法或功能的装置

此外,一些实施例在本文中被描述为可以由处理器设备的处理器、计算机系统或通过执行该功能的其他装置实现的方法或方法要素的组合。因此,具有用于执行这种方法或方法要素的必要指令的处理器形成用于执行方法或方法要素的装置。此外,装置实施例的本文描述的元件是用于执行由元件执行的功能以实现本发明的装置的示例。

连接

类似地,应当注意,当在权利要求中使用时,术语“连接”不应当被解释为仅限于直接连接。因此,连接到设备b的设备a的表述的范围不应当限于设备a的输出直接连接到设备b的输入的设备或系统。其表示,在a的输出与b的输入之间存在路径,这个路径可以是包括其他设备或装置的路径。“连接”可以表示两个或更多个元件直接物理接触或电接触,或者两个或更多个元件彼此不直接接触但仍然彼此协作或交互。

实施例:

本说明书中对“一个实施例”或“实施例”的引用表示结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都指代同一实施例,而是可以指代同一实施例。此外,在一个或多个实施例中,特定特征、结构或特性可以以任何合适的方式组合,如本领域普通技术人员根据本公开将清楚的。

类似地,应当理解,在本发明的示例实施例的以上描述中,本发明的各种特征有时在单个实施例、附图或其描述中被组合在一起,以便简化本公开并且帮助理解各种创造性方面中的一个或多个。然而,本公开的该方法不应当被解释为反映所要求保护的发明需要比每个权利要求中明确记载的特征更多的特征这一意图。而是,如所附权利要求所反映的,本发明的方面在于少于单个前述公开实施例的所有特征。因此,在“具体实施方式”之后的权利要求在此明确地并入“具体实施方式”中,每个权利要求自身作为本发明的单独实施例。

此外,尽管本文中描述的一些实施例包括一些但不包括在其他实施例中包括的其他特征,但是不同实施例的特征的组合意在落入本发明的范围内,并且形成不同的实施例,如本领域技术人员将理解的。例如,在所附权利要求中,任何要求保护的实施例都可以以任何组合来使用。

不同的对象实例

如本文中使用的,除非另有说明,否则使用序数形容词“第一”、“第二”、“第三”等来描述共同对象仅表示引用相同对象的不同实例,并不意在暗示这样描述的对象必须处于给定的顺序,无论是在时间上,还是在空间上,在排名上或在任何其他方式上。

具体细节

在本文中提供的描述中,阐述了很多具体细节。然而,应当理解,可以在没有这些具体细节的情况下实践本发明的实施例。在其他情况下,没有详细示出公知的方法、结构和技术,以免使对本说明书的理解变得模糊不清。

术语

在描述附图中所示的本发明的优选实施例时,为了清楚起见,将采用特定术语。然而,本发明不限于如此选择的特定术语,并且应当理解,每个特定术语包括以类似方式操作以实现类似技术目的的所有技术等同物。诸如“向前”、“向后”、“径向”、“外围”、“向上”、“向下”等术语用作方便的词语以提供参考点,而不应当被解释为限制性术语。

包括(comprising)和包含(including)

在所附权利要求中和本发明的前述描述中,除非上下文由于明确的语言或必要的暗示而另有要求,否则词语“包括”或诸如“包括有”或“包括了”等变体用于包含性意义,即,用于指定所述特征的存在但不排除在本发明的各种实施例中存在或添加其他特征。

“包含”或“其包含”或“它包含”这些术语中的任何一个也是开放术语,也意指至少包含该术语之后的元件/特征,但不排除其他元件/特征。因此,“包含”与“包括”同义并且意指“包括”。

发明范围

因此,尽管已经描述了被认为是本发明的优选实施例的内容,但是本领域技术人员将认识到,在不脱离本发明的精神的情况下,可以对其进行其他和另外的修改,并且旨在要求保护落入本发明的范围内的所有这样的变化和修改。例如,上面给出的任何公式仅仅表示可以使用的过程。可以从框图中添加或删除功能,并且可以在功能块之间交换操作。在本发明的范围内,可以在所描述的方法中添加或删除步骤。

尽管已经参考具体示例描述了本发明,但是本领域技术人员将理解,本发明可以以很多其他形式来实施。

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