用于提供对文件的公证服务并通过公证服务验证记录文件的方法和服务器与流程

文档序号:15575601发布日期:2018-09-29 05:27阅读:278来源:国知局

本发明涉及一种用于提供对文件的公证服务并通过公证服务验证记录文件的方法;更具体地说,涉及提供对文件的公证服务并且使用公证服务验证记录文件的方法以及使用该方法的服务器,所述方法包括下面的“公证处理”以及“验证处理”,所述公证处理是:如果取得对文件的公证服务请求,则通过使用哈希函数生成或支持另一装置使用哈希函数生成文件的特定消息摘要,并且如果满足锚定条件(anchoringconditions)中的一个锚定条件,则登记或支持另一装置登记第一代表性哈希值或其处理值到数据库中,其中,通过使用特定哈希值和其对应的至少一个相邻哈希值来生成代表性哈希值,并且其中,所述特定哈希值是通过利用特定用户的私钥和服务器的私钥对特定消息摘要进行编码而取得的结果的哈希值,所述“验证处理”是:如果取得对文件的验证请求,并且如果通过使用所述验证请求中包括的输入数据生成的第二代表性哈希值或其处理值对应于在所述数据库中登记的第一代表性哈希值或其处理值,则确定或支持另一装置确定文件验证已完成。



背景技术:

认证是公开证明特定事实或特定法律关系的存在或内容的行为。当要求对特定法律关系进行认证时,认证官员通常在认证办公室中书写、签署和密封并保存文档。

然而,由于在以往的认证中客户带着要认证的文档实际访问认证办公室并将其证书保存在认证办公室中,因此具有时间和空间上的限制以及遗失、伪制和伪造认证文档的可能性。

在本文中,本发明的发明人开发了一种对文件的认证系统,通过在虚拟货币的区块链中记录认证信息,实时进行认证,不存在伪制和伪造的可能性并且没有空间限制,并且提交了韩国专利申请no.2015-0188978。

然而,存在以下缺点,例如,由于使用区块链的文件认证系统为每个文件生成op消息并将其记录在区块链中,因此存在由于事务数量增加造成提供服务中的瓶颈,并且,由于必须每次都支付事务费,因此服务管理的成本很高。

因此,需要一种能够弥补这些缺点的技术方案,从而保证快速服务并降低成本,同时利用文件认证系统实时进行认证,而不存在伪造和篡改的可能性并且没有空间限制。



技术实现要素:

本发明的目的是解决所有的上述问题。

本发明的另一个目的是通过在虚拟货币的区块链中记录认证信息,提供对文件的公证服务以实时进行认证和验证时,保证快速服务速度并降低事务成本。

本发明的又一个目的是通过使用关于公证服务的信息配置默克尔树并仅将默克尔树的根值登记在区块链中而不将关于公证服务的所有信息登记在区块链中,来提高服务速度并降低事务成本。

本发明的又一个目的是通过使用响应于对文件的验证请求而生成的默克尔树执行验证,来提供数据库的可靠的完整性。

根据本发明的一个方面,提供一种用于提供对文件的公证服务的方法,所述方法包括以下步骤:(a)如果取得对文件的公证服务请求,则所述服务器通过使用哈希函数生成或支持另一装置使用哈希函数生成文件的特定消息摘要;以及(b)如果满足锚定条件中的一个锚定条件,则所述服务器登记或支持另一装置登记代表性哈希值或其处理值到数据库中,其中,通过使用特定哈希值及其对应的至少一个相邻哈希值来生成代表性哈希值,并且其中,所述特定哈希值是通过利用特定用户的私钥和服务器的私钥对特定消息摘要进行编码而取得的结果的哈希值。

根据本发明的另一方面,提供一种使用公证服务验证记录文件的方法,所述方法包括以下步骤:(a)在服务器已经取得对文件的公证服务请求并且随后已经将第一代表性哈希值或其处理值登记在数据库中的条件下,服务器取得或支持另一装置取得对文件的验证请求,其中,在锚定条件中的一个锚定条件下通过使用第一特定哈希值及其对应的至少一个相邻哈希值来生成第一代表性哈希值,并且其中,第一特定哈希值是通过利用特定用户的私钥和服务器的私钥对文件的特定消息摘要进行编码而取得的结果的哈希值;并且(b)如果通过使用验证请求中包括的输入数据生成的第二代表性哈希值或其处理值对应于登记在数据库中的第一代表性哈希值或其处理值,则确定或支持另一装置确定所述文件的验证完成。

根据本发明的另一个方面,提供一种用于提供对文件的公证服务的服务器,所述服务器包括:通信部,用于取得或支持另一装置取得对文件的公证服务请求;以及处理器,(i)如果取得对文件的公证服务请求,则所述处理器通过使用哈希函数生成或支持另一装置使用哈希函数生成文件的特定消息摘要,并且(ii)如果满足锚定条件中的一个锚定条件,则登记或支持另一装置登记代表性哈希值或其处理值到数据库中,其中,通过使用特定哈希值及其对应的至少一个相邻哈希值来生成代表性哈希值,并且其中,所述特定哈希值是通过利用特定用户的私钥和服务器的私钥对特定消息摘要进行编码而取得的结果的哈希值。

根据本发明的又一方面,提供一种使用公证服务验证记录文件的服务器,所述服务器包括:通信部,用于取得或支持另一装置取得对文件的验证请求;以及处理器,在以下条件下:在服务器已经取得对文件的公证服务请求并且随后已经将第一代表性哈希值或其处理值登记在数据库中,其中,在锚定条件中的一个锚定条件下通过使用第一特定哈希值及其对应的至少一个相邻哈希值来生成第一代表性哈希值,并且其中,第一特定哈希值是通过利用特定用户的私钥和服务器的私钥对文件的特定消息摘要进行编码而取得的结果的哈希值,如果通过使用所述验证请求中包括的输入数据生成的第二代表性哈希值或其处理值对应于登记在数据库中的第一代表性哈希值或其处理值,则确定或支持另一装置确定文件的验证完成。

附图说明

用于说明本发明的示例实施例的下面的附图仅是本发明的示例实施例的一部分,并且可以基于附图得到其他附图而无需本领域技术人员的创造性工作:

图1是示出根据本发明的一个示例实施例的服务器的配置的框图,该服务器为文件提供公证服务并通过使用公证服务验证记录文件。

图2是示出响应于来自单个用户的请求执行对文件的公证服务的处理的时序图。

图3和4是示出根据本发明的一个示例实施例生成的默克尔树的实例的图。

图5是示出响应于来自单个用户的请求而执行对文件的验证服务的处理的时序图。

图6是示出响应于来自多个用户的公证服务请求并行执行公证服务的并行签署处理的时序图。

图7是示出响应于来自多个用户的公证服务请求依次执行公证服务的串行签署处理的时序图。

图8是示出对利用多个用户的签署认证的文件执行验证的处理的时序图。

具体实施方式

在以下的详细描述中,参照附图,附图以示例的方式示出了可实施本发明的具体实施例。这些实施例被充分详细地描述以使本领域技术人员能够实施本发明。应该理解的是,本发明的各种实施例虽然不同,但并不一定是相互排斥。例如,在不背离本发明的精神和范围的情况下,本文结合一个实施例描述的特定特征、结构或特性可以在其他实施例内实现。此外,应该理解的是,在不背离本发明的精神和范围的情况下,可以改变所公开的每个实施例中的各个元件的位置或配置。因此,下面的详细描述不以限制的意义来理解,本发明的范围仅由所附权利要求以及权利要求所赋予权利的等同物的全部范围限定、适当地解释。在附图中,在几个图中,相同的附图标记指代相同或相似的功能性。

图1是示出根据本发明的一个示例实施例的服务器的配置的框图,该服务器提供对文件的公证服务并通过使用公证服务验证记录文件。图2是示出响应于来自单个用户的请求执行对文件的公证服务的处理的时序图。

在说明每个示例实施例之前,以下是本说明书中使用的表达的定义。’:’的左边是表达式,右边是表达式的定义。

<表达式的定义>

privx:x的私钥

pubx:x的公钥

aesx:x的aes密钥

encprivx(y):使用privx的y的加密的输出

decpubx(y):使用pubx的y的解密的输出

encaesx(y):使用aesx的y的aes加密的输出

decaesx(y):使用aesx的y的aes解密的输出

hash(y):y的哈希值

首先,参照图1和2说明响应于来自单个用户的请求执行对文件的公证服务的处理。

通过参照图1,根据本发明的所述一个示例实施例的执行对文件的公证服务的服务器100可以包括通信部110和处理器120。每个示例实施例中的服务器可以是单独的服务器,但是为了方便,对服务通过单个服务器100执行进行说明。

通信部110可以设置为向用户或用户装置以及数据库200发送数据、以及从用户或用户装置以及数据库200接收数据。首先,通信部110可以在步骤s210取得或支持另一装置取得对文件的公证服务请求。如图2所示,如果取得对文件的公证服务请求,则可以取得文件和pubu,所述pubu是请求公证服务的用户的公钥。通信部110可以在步骤s220响应该请求,在步骤s220,可以在一个tcp会话期间执行请求及其相应的响应。

如果取得对文件的公证服务请求,则在步骤s215,处理器120可以使用哈希函数、即、md=hash(file)生成或支持另一装置使用哈希函数生成文件的消息摘要。在本文中,哈希函数的类型可以变化。例如,哈希函数可以是三重sha256。此外,本说明书中的哈希函数通常表示转换原文件的函数,但是可以包括在极端情况下仅存储文件而没有任何修改的函数。在这种情况下,通过使用哈希函数生成的消息摘要可以与文件相同。

在步骤s220响应于对文件的公证服务请求而生成的消息摘要可以被发送给请求对文件的公证服务的用户。如果用户通过图中未示出的用户装置请求公证服务,则生成的消息摘要可以被发送到用户设备。

接下来,通信部110可以在步骤s225从用户取得通过利用用户的私钥privu对消息摘要进行编码而计算的encprivu(md)。在这种情况下,由于tcp会话可以在步骤s220的响应之后断开,因此消息摘要和pubu也可以从用户接收。作为参考,尽管通过使用利用私钥和公钥对消息摘要进行编码的表达式encpriv(md)和encpub(md)说明本说明书,但是可以用sigpriv(file)和sigpub(file)替换表达式。另外,在消息摘要被生成多于一次的情况下,可以使用表达式sigpriv(md)和sigpub(md)。

此外,如果取得通过使用privu对消息摘要进行编码而计算的encprivu(md),并且如果生成的消息摘要b对应于信息a、即、在步骤s230-2利用pubu对encprivu(md)进行解码而取得的decpubu(encprivu(md)),则处理器120可以在步骤s240生成或支持另一装置生成通过利用privu和服务器100的私钥privc对消息摘要进行编码而生成的第一编码消息摘要的哈希值,并且可以在步骤s250登记或支持另一装置登记所生成的哈希值到数据库200中。将消息摘要以哈希值的形式登记到数据库200中的原因在于,由于对数据库200的存储容量的限制,需要减小数据的大小。在本文中,数据库200可以是虚拟货币的区块链。例如,其可能是比特币区块链。

作为参考,在图2中,使用表达式’decpubu(encprivu(md))==md’表示a对应于b,但是本发明的表达式不限于此。例如,’true==verpubu(sigprivu(file))’也可以表示相同的关系。另外,在消息摘要被生成多于一次的情况下,可以使用表达式’true==verpubu(sigprivu(md))’。

此外,如果a对应于b,则处理器120可以登记或支持另一装置登记hash[encprivc(encprivu(md))]到数据库200中,hash[encprivc(encprivu(md))]是通过利用privu和privc按顺序对消息摘要进行编码而生成的第一编码消息摘要的哈希值。换言之,在作为客户的用户首先使用privu签署消息摘要,然后作为认证官的服务器100利用privc签署消息摘要之后,第一编码消息摘要的哈希值可以登记到数据库200中。但是,签署顺序可以与此不同。特别地,如果用户和服务器100之间的会话被维持,则服务器100可以先签署然后用户可以签署。

在通过利用privu和privc对消息摘要进行编码所生成的第一编码消息摘要的哈希值被登记在数据库200中的情况下,通信部110可以在步骤s255从数据库200取得事务id、即txid,其中txid表示登记在数据库200中的第一编码消息摘要的哈希值的位置。

另一方面,如果在步骤230-1中a不对应于b,则在步骤s235,处理器120可以由于用户不是与文件相关的人、例如办理人向用户发送未成功登记的消息。

另外,如果a对应于b,则处理器120可以在步骤s245存储或支持另一装置存储文件。这里,文件可以利用对称密钥加密算法、例如aes、即高级加密标准进行加密。在这种情况下,密钥可以是由用户的公钥处理后的特定密钥,但是本发明的范围不限于此。

处理器120可以存储或支持另一装置存储pubu、消息摘要md、encprivu(md)和txid。此外,处理器120可以进一步存储或支持另一装置存储encprivc(encprivu(md)),这是通过利用privu和privc按顺序对md进行编码而生成的第一编码消息摘要及其哈希值hash[encprivc(encprivu(md))]。

如果认证信息如上所述被登记在数据库200中,则通信部110可以在步骤s260向用户发送成功登记的消息。

然而,在前述示例实施例的情况下,存在以下缺点,例如,由于op消息对每个文件生成并记录在区块链中,因此存在由于事务数量增加造成提供服务中的瓶颈,并且,由于必须每次都支付事务费,因此服务管理的成本很高。

在下文中,说明了认证系统,该认证系统可以利用并进一步补充文件认证系统以实时执行认证而没有伪造和伪造篡改的可能性,从而保证快速服务同时降低成本。与上述示例实施例不同,这种认证系统使用通过服务器100管理的不同数据结构。

如果通过通信部110取得对文件的公证服务请求,则上述处理器120可以使用哈希函数生成或支持另一装置使用哈希函数生成文件的特定消息摘要。因为其类似于前述的示例实施例,因此省略重复说明。这里,与上述示例实施例不同,对文件的公证服务可以是文件认证服务或文件撤销服务。

此外,如果满足锚定条件中的一个锚定条件,则处理器120可以登记或支持另一装置登记代表性哈希值或其处理值到数据库中,其中,通过使用特定哈希值及其对应的至少一个相邻哈希值来生成代表性哈希值,并且其中,特定哈希值是通过利用特定用户的私钥和服务器100的私钥对特定消息摘要进行编码而取得的结果的哈希值。换言之,如果满足锚定条件中的所指的一个锚定条件,则处理器120可以通过计算利用特定用户的私钥privu和服务器100的私钥privc对特定消息摘要进行编码而取得的、结果的哈希值及其对应的至少一个相邻哈希值来生成或支持另一装置生成代表性哈希值或其处理值,并且登记或支持另一装置登记所生成的代表性哈希值或其处理值到数据库中,而不是如上所述在s240的步骤中登记通过利用privu和privc对特定消息摘要进行编码而取得的结果的哈希值。在本文中,数据库可以不像上述数据库200、例如虚拟货币的区块链那样通过服务器100管理,而也可以由服务器100管理。本说明书中的说明集中于不通过服务器100管理的数据库200,但是本发明的技术思想可以应用于通过服务器100管理的数据库。

特定哈希值及其对应的至少一个相邻哈希值的计算可以由各种函数执行。假设要输入的特定哈希值及相邻哈希值为x1,x2,...和xn,则代表性哈希值t可以表示为下式。

<式>

t=hash(function(input,x1,x2,…,xn))

这里,服务器100可以以某种形式的数据结构存储或支持另一装置存储特定哈希值及其对应的至少一个相邻哈希值并管理它们。在这方面,数据结构可以变化,并且其一个示例可以是默克尔树的结构。在这种情况下,特定哈希值及其对应的至少一个相邻哈希值的计算可以通过使用默克尔树来执行。

换言之,处理器120可以生成或支持另一装置生成包括被分配特定哈希值的特定叶节点的至少一个默克尔树,如果满足锚定条件中的所指的一个锚定条件,则可以登记或支持另一装置登记代表性哈希值或其处理值到数据库200中,该代表性哈希值是由特定哈希值或分配给至少一个其他叶节点的至少一个哈希值计算的,至少一个其他叶节点具有与默克尔树中的特定叶节点相同的深度。

更具体地,(x1)处理器120可以计算或支持另一装置计算:(i)特定哈希值和(ii)分配给被分配特定哈希值到的特定叶节点的兄弟节点的哈希值,从而取得结果值,然后分配或支持另一装置分配结果值的哈希值给特定叶节点的父节点。(x2)如果父节点是默克尔树的根节点,则可以将分配给父节点的结果值的哈希值视为代表性哈希值。(x3)另一方面,如果父节点不是默克尔树的根节点,则处理器120可以通过使用分配给父节点的哈希值作为特定哈希值重复或支持另一装置重复步骤(x1)至(x3)。

另外,处理器120可以登记或支持另一装置登记最终分配给默克尔树的根节点的哈希值到数据库200中作为代表性哈希值。在本文中,可以登记代表性哈希值的处理值。例如,可以登记对代表性哈希值进行十六进制操作产生的值。

如果服务器100将特定哈希值和至少一个相邻哈希值存储在第一数据结构中,然后将第二数据结构以与第一数据结构相同的形式存储并管理,则第一数据结构和第二数据结构可以以链的形式链接。

特别地,如上所述,如果第一数据结构和第二数据结构是默克尔树,则第一数据结构的根值或根值的哈希值可以分配给第二数据结构的第一叶节点。

此外,可以通过在生成第二数据结构时验证第一数据结构,进一步确保数据完整性。下面将说明第二数据结构的验证。

此外,在以链的形式链接的两个或更多个默克尔树中的第一默克尔树的情况下,由文本、数字或符号组成的特定消息数据的哈希值或其处理值可以被分配给第一默克尔树的第一叶节点。例如,可以分配在生成默克尔树时由服务器100提供的第一输入消息的哈希值。

图3和4是示出根据本发明的所述一个示例实施例生成的默克尔树的示例的图。

图3示出了具有四个(22)叶节点的默克尔树。由于图示的默克尔树是tree_id为零的第一默克尔树,所以特定消息数据“coinplug2016-01-01”的哈希值triplesha256digest(coinplug_unique_message)被分配给节点h0、即第一叶节点。在取得对文件的公证服务请求的情况下,处理器120可以生成或支持另一装置生成与当前所设置的默克尔树的最后叶节点相邻的叶节点,并分配或支持另一装置分配特定哈希值或其处理值给生成的叶节点。例如,如果在前一步骤分配完成至节点h1、即图3中的默克尔树的第二叶节点,则可以生成节点h2、即下一个叶节点,并且特定哈希值或其处理值triplesha256digest(input2)可以分配给节点h2。进一步,处理器120可以计算或支持另一装置计算(i)特定哈希值和(ii)分配给节点h2的兄弟节点h3的哈希值、即被分配特定哈希值的第三叶节点,从而取得结果值。结果值的哈希值可以分配给节点h2和节点h3的父节点h23。由于父节点h23不是默克尔树的根节点,因此处理器110可以通过使用分配给节点h23的哈希值作为特定哈希值来重复或支持另一装置重复上述处理。换言之,可以使用分配给节点h23的哈希值和分配给节点h01的哈希值生成分配给节点h0123、即节点h23和节点h01的父节点的计算值。这里,由于节点h0123是默克尔树的根节点,因此处理器120可以登记或支持另一装置登记分配给节点h0123的哈希值的处理值hex(h{node_index})到数据库200中。

另一方面,上述的锚定条件可以包括以下中的至少一者:(i)响应于各公证服务请求取得包括特定消息摘要的特定数量的消息摘要;(ii)特定时间的流逝;(iii)在区块链中生成块;以及(iv)请求公证服务的用户的一个或多个特征。

例如,如果响应于各公证服务请求取得与默克尔树的叶节点的数量相同的消息摘要,则利用每个用户的私钥和服务器100的私钥对每个消息摘要进行编码而取得的结果的哈希值可以是默克尔树的输入,即,分配给叶节点的值。

此外,处理器120可以以如上面的条件(ii)的特定时间生成或支持另一装置生成默克尔树的根值。在这种情况下,如果经过了特定时间,则处理器120可以使用特定时间的输入生成或支持另一装置生成默克尔树,并且可以登记或支持另一装置登记默克尔树的根值到数据库200中。

然而,在这种情况下,尽管经过了特定时间,但是可能没有值分配给被分配特定哈希值的特定叶节点的兄弟节点。在尽管经过了特定时间也没有哈希值被分配给特定叶节点的兄弟节点的情况下,处理器120可以分配或支持另一装置分配特定哈希值给兄弟节点,从而以上述方式产生默克尔树的根值。例如,处理器120可以复制并分配特定哈希值给兄弟节点。

请求公证服务的用户的特征可以是关于请求公证服务的用户支付的费用的信息、关于执行公证服务的时区的信息、关于执行公证服务的位置的信息、以及关于请求公证服务的用户的类型的信息的至少一部分。但是,本发明的范围不限于此。

另一方面,如果开始生成新的默克尔树,并且如果满足锚定条件中的所指的一个锚定条件而没有任何公证服务请求,则处理器120可以生成或支持另一装置生成具有分别被分配特定消息数据的第一和第二叶节点的新的默克尔树,并且可以登记或支持另一装置登记新的默克尔树的根值或其处理值到数据库200中。在这种情况下,可以用两个叶节点生成默克尔树。

然而,如果服务器100将特定哈希值和至少一个相邻哈希值存储在第一数据结构中,然后以与上述第一数据结构相同的形式存储并管理第二数据结构,则第一数据结构和第二数据结构可以以链的形式被链接。特别地,如果第一数据结构和第二数据结构是默克尔树,则第一数据结构的根值或根值的哈希值可以分配给第二数据结构的第一叶节点。

图4是示出根据本发明的所述一个示例实施例的作为第二数据结构生成的新的默克尔树的示例的图。

参照图4可知,图3中tree_id为零的默克尔树的根值hex(h0123)以triplesha256digest(input4)被分配给节点h4,节点h4是新的默克尔树的第一叶。以这种方式,即使在伪造数据的情况下,追踪也变得更容易,因此本发明通过链接在事务发生时创建的多个数据结构,具有提高数据完整性的优点。

接下来,说明用于响应于来自单个用户的请求来验证文件的处理。

本说明书中的验证可以由交易者或第三方来请求,并且可以分成使用由服务器100管理的不同数据结构的情况和不使用不同数据结构的情况。可以使用“审计”和“验证”两个术语。首先,说明不使用由服务器100管理的不同数据结构执行的验证。

该文件可以由可参照关于上述服务器100的信息的单独的装置验证或者由上述服务器100验证。在下文中,为了方便,基于由上述服务器100对文件的验证进行说明。

图5是示出响应于来自单个用户的请求而执行对文件的验证服务的处理的时序图。

参照图5,类似于前述示例,通信部110可以在步骤s510取得对文件的验证请求。如图5所示,如果取得文件验证请求,则可以取得文件和pubu,所述pubu是请求验证的用户的公钥。通信部110可以响应该请求,并且可以在一个tcp会话内执行请求及其相应的响应。

如上所述,在以下条件下:服务器100响应于对文件的公证服务请求而已经确定请求对文件的公证服务的用户为与文件相关,并因此服务器100已经存储利用privu和privc对文件的消息摘要进行编码而生成的第一编码消息摘要的哈希值到数据库200中,并且已经管理其相应的事务id的条件下,如果取得对文件的验证请求,则处理器120可以取得或支持另一装置取得与pubu和文件的消息摘要中的至少一者相对应的事务id。在这种情况下,事务id、即txid可以已经存储在服务器100中或服务器100可以参照的装置中。

在通信部110在步骤s510接收到对文件的验证请求的情况下,如果取得文件用于验证,则处理器120可以在步骤s515使用哈希函数(即md=hash(file))生成或支持另一装置使用哈希函数生成文件的原始消息摘要。在这种情况下,处理器120可以参照与pubu和所生成的文件的原始消息摘要中的至少一者相对应的事务id。

如果在s520-1的步骤中尽管有验证请求但是没有找到与原始消息摘要相对应的信息,则通信部110可以在步骤s525向用户发送未成功验证的消息。

此外,如果在步骤s520-2中找到作为与原始消息摘要相对应的事务id的信息,则通信部110可以在步骤s525使用txid向数据库200发送查询(query),并且在步骤s530从数据库200取得op消息,该op消息包括通过利用privu和privc对消息摘要进行编码而生成的第一编码消息摘要的哈希值。

此外,如果通过利用privc和privu对原始消息摘要进行编码而生成的第二编码消息摘要的哈希值与op消息中的第一编码消息摘要的哈希值相对应,则处理器120可以在s535的步骤确定或支持另一装置确定文件为已验证。

在本文中,通过利用privc和privu对原始消息摘要进行编码而生成的第二编码消息摘要可以是通过利用privu和privc按顺序对原始消息摘要进行编码而生成的encprivc(encprivu(md))。

然而,即使在作为第二编码消息摘要的x的哈希值对应于op消息中的第一编码消息摘要的哈希值的情况下,如果通过利用服务器100的公钥pubc和pubu对x进行解码而取得的结果值decpubu(decpubcc(encprivu(md))))对应于文件的消息摘要,则处理器120可以在步骤s540进一步确定或支持另一装置确定文件已验证。换言之,可以利用两个进一步的步骤完成文件验证。这是因为可能存在用户的私钥、公钥等变化的可能性。

上述验证的三个步骤可以表示为以下表达式。

<表达式1>

op_message==hash[encprivc(encprivu(md))]

encprivu(md)==decpubc[encprivc(encprivu(md))]

md(=hash[file])==decpubu[encprivu(md)]

如果文件的验证成功,则通信部110可以在步骤s545向用户发送成功验证的消息。

另外,如果文件被确定为已验证,则处理器120可以允许文件的下载。在这种情况下,用户可以通过用户装置等下载文件。

接下来,说明通过使用由服务器100管理的不同数据结构执行的验证。

首先,如上所述,在以下的条件下:服务器100已取得对文件的公证服务请求,然后已经登记上述代表性哈希值(为方便,这里称之为第一代表性哈希值)或其处理值到数据库200中,其中,通过在所述一个锚固条件下使用上述特定哈希值(为方便,这里称之为第一特定哈希值)及其对应的至少一个相邻哈希值来生成第一代表性哈希值,并且其中,第一特定哈希值是通过利用特定用户的私钥和服务器100的私钥对文件的特定消息摘要进行编码而取得的结果的哈希值,如果取得对文件的验证请求,并且如果通过使用验证请求中包括的输入数据生成的第二代表性哈希值或其处理值与登记在数据库200中的第一代表性哈希值或其处理值相对应,则处理器120可以确定或支持另一装置确定文件验证完成。

在这方面,可以通过计算第二特定哈希值及其对应的至少一个相邻哈希值来生成第二代表性哈希值,其中,第二特定哈希值是通过利用特定用户的私钥和服务器的私钥对从验证请求中包括的输入数据中提取的文件的特定消息摘要进行编码而取得的结果的哈希值。

这里,验证请求中包括的输入数据可以具有以下的至少一者:(i)文件;(ii)文件的特定消息摘要;或(iii)在对文件的公证服务期间发出的id。

如果输入数据包括文件,则可以通过上述方法生成文件的特定消息摘要,并且可以基于此生成第二特定哈希值。进一步,可以通过计算第二特定哈希值及其对应的至少一个相邻哈希值来生成第二代表性哈希值。

如果输入数据包括在公证服务期间发出的id,则第二特定哈希值可以设定为分配给与之前生成的默克尔树中的id相对应的叶节点的值。在图3和4所示的示例中,id可以是唯一id。

对上述第一特定哈希值的同样的说明可应用于第二特定哈希值。也就是说,第二特定哈希值及其对应的至少一个相邻哈希值的计算可以由各种函数执行。因此,其说明参考以上内容而被省略。

在这种情况下,第二特定哈希值及其对应的至少一个相邻哈希值的计算可以通过使用默克尔树来执行。如果取得验证请求,则处理器120可以识别或支持另一装置识别有关与输入数据相关的默克尔树以及有关其叶节点的信息。

进一步,可以通过使用分配给默克尔树的特定叶节点的第二特定哈希值以及分配给具有与默克尔树中的特定叶节点相同的深度的至少一个其他叶节点的哈希值来计算第二代表性哈希值。

在通过使用不由服务器100管理的数据库、例如虚拟货币的区块链执行服务的情况下,处理器120可以参照或支持另一装置参照与关于所识别的默克尔树的信息相对应的特定事务id。

在这种情况下,如果取得对文件的验证请求,则处理器120可以参照或支持另一装置参照特定事务id,并且通过参照特定事务id来从数据库200取得或支持另一装置从数据库200取得op消息。此外,如果通过使用验证请求中包括的输入数据生成的第二代表性哈希值或其处理值对应于op消息中包括的第一代表性哈希值或其处理值,则文件验证可被确定为完成。

另一方面,特定事务id可以设置为包含在输入数据中。换言之,响应于验证请求,用户除了发送(i)文件、(ii)文件的特定消息摘要、或(iii)在对文件的公证服务的期间发出的id中的至少一者以外,还可以发送或支持另一装置发送特定事务id到服务器100。

在验证的计算处理中,处理器120可以生成或支持另一装置生成新的默克尔树。在该处理中,可以使用在上述公证服务期间生成的默克尔树。换言之,(x1)处理器120可以计算或支持另一装置计算:(i)第二特定哈希值和(ii)分配给在之前生成的默克尔树中被分配第二特定哈希值的特定叶节点的兄弟节点的哈希值,从而取得结果值,然后分配或支持另一装置分配结果值的哈希值给新的默克尔树中的特定叶节点的父节点。进一步,(x2)如果父节点是新的默克尔树的根节点,则处理器120可以比较或支持另一装置比较作为第二代表性哈希值的分配给父节点的哈希值与op消息中包括的第一代表性哈希值或其处理值,(x3)如果父节点不是默克尔树的根节点,则可以通过使用分配给父节点的哈希值作为第二特定哈希值来重复或支持另一装置重复步骤(x1)至(x3)。

如果在默克尔树中最终生成的根值或其处理值与op消息中的第一代表性哈希值或其处理值相对应,则处理器120可以确定或支持另一装置确定文件的验证完成。

在本发明中,如果在公证服务期间生成具有nm(=n)个叶节点的默克尔树,则因为能够通过仅计算与默克尔树的高度、即lognn=m一样多进行文件的验证,因此可以快速地确认事务的完整性。

另一方面,如果取得输入数据,则处理器120可以通过参照与输入数据相关的时间信息来识别或支持另一装置识别关于与输入数据有关的默克尔树以及关于其叶节点的至少一部分信息。

在下文中,通过采用图3中所示的示例来说明验证处理。

再次参照图3,如果请求输入2的验证,则处理器120可以通过参照关于输入数据的信息来识别或支持另一装置识别关于之前生成的默克尔树以及关于其叶节点的信息,并且通过将与关于tree_id为零的所识别的默克尔树的信息相对应的特定事务id发送到数据库200来从数据库200取得或支持另一装置从数据库200取得op消息。然后,处理器120可以通过使用输入2来生成或支持另一装置使用输入2生成新的默克尔树。当输入2的哈希值、即triplesha256digest(input2)被分配给节点h2时,处理器120可以计算或支持另一装置计算在之前生成的默克尔树中被分配给节点h2的哈希值和分配给节点2的兄弟节点h3的哈希值,由此取得结果值。结果值的哈希值可以分配给节点h2和节点h3的父节点h23。由于节点h23不是新的默克尔树的根节点,所以处理器120可以通过使用分配给节点23的哈希值作为第二特定哈希值来重复或支持另一装置重复上述处理。换言之,通过使用分配给节点h23的哈希值作为第二特定哈希值,之前生成的默克尔树中被分配给节点h23的哈希值和分配给节点h01的哈希值可以被计算,然后被分配给节点h0123、即节点h23和节点h01的父节点。这里,由于节点h0123是默克尔树的根节点,因此处理器120可以比较或支持另一装置比较分配给节点h0123的哈希值的处理值hex(h{node_index})与op消息中包括的第一代表性哈希值或其处理值。

接下来,说明根据本发明的另一示例实施例的响应于来自多个用户的请求执行对文件的公证服务的处理。然而,省略重复说明。此外,相同的数字表示在本发明的之前实施例中的相同装置。首先,说明不使用由服务器100管理的不同数据结构的认证系统。

图6表示并行执行公证服务的并行签署处理,图7表示响应于来自多个用户的至少一部分的公证服务请求按照顺序执行公证服务的串行签署处理。

首先,参照图6,如果在s610和s620的步骤中从多个用户中的至少两个用户取得至少两个对文件的公证服务请求,则处理器120可以在s612和s622的每个步骤中使用哈希函数来生成或支持另一装置使用哈希函数生成文件的消息摘要、即md=hash(file)。此外,如果在步骤s640和s650中取得通过利用第一用户的私钥privu1对消息摘要进行编码而生成的第一消息摘要以及通过利用第二用户的私钥privu2对消息摘要进行编码而生成的第二消息摘要,并且如果在步骤s640-3中(i)信息a’、即通过利用第一用户的公钥pubu1对第一消息摘要进行解码而取得的decpubu1(encprivu1(md))以及(ii)信息b’、即通过利用第二用户的公钥pubu2对第二消息摘要进行解码而取得的decpubu2(encprivu2(md))中的每一者对应于所生成的消息摘要c’、即md,则处理器120可以在步骤s675中登记或支持另一装置登记通过利用privu1、privu2和privc对md进行编码而生成的第三消息摘要的哈希值到数据库200中。

接下来,在步骤s680,通信部110可以取得指示在数据库200中第三消息摘要的登记的哈希值的位置的事务id。

而且,如果a’和b’中的每一个对应于c’,则处理器120可以登记或支持另一装置登记通过用privc对数据组进行编码而取得的encprivc(encprivu1(md)+encprivu2(md))到数据库200中,其中,数据组由通过利用privu1对md进行编码而生成的第一消息摘要以及通过利用privu2对md进行编码而生成的第二消息摘要组成。

接下来,参照图7,如果在s710和s735的每个步骤中取得对文件的公证服务请求,则处理器120可以在每个步骤s712和s737中使用哈希函数生成或支持另一装置使用哈希函数生成文件的消息摘要、即md=hash(file)。在这种情况下,如图7所示,可以一起取得pubu1、pubu2和文件。

如果(i)在步骤s720取得通过利用privu1对消息摘要进行编码而生成的第一消息摘要encprivu1(md),并且信息a”、即通过利用pubu1对第一个消息摘要进行而取得的decpubu1(encprivu1(md))与生成的消息摘要b”、即md相对应,并且如果(ii)在步骤s745取得通过利用privu1和privu2对消息摘要进行编码而生成的encprivu2(encprivu1(md)),并且在步骤s760中信息c”、即通过利用pubu2对encprivu2(encprivu1(md))进行编码而取得的decpubu2(encprivu2(encprivu1(md)))与信息d”、即第一消息摘要encprivu1(md)相对应,则处理器120可以在s775的步骤登记或支持另一装置登记通过利用privu1、privu2和privc对消息摘要进行编码而生成的第三消息摘要的哈希值到数据库200中。

而且,如果a”对应于b”,并且如果c”对应于d”,则处理器120可以登记或支持另一装置登记通过利用privu1、privu2和privc按顺序对消息摘要进行编码而生成的so=encprivc(encprivu2(encprivu1(md)))到数据库200中。

在此,通信部110可以在步骤s780取得指示在数据库200中第三消息摘要的登记的哈希值的位置的事务id、即txid。

接下来,进一步说明在使用由服务器100管理的不同数据结构的认证系统中响应来自多个用户的公证服务请求的所述另一示例实施例。

(i)如果取得对文件的公证服务请求,则处理器120可以通过使用哈希函数生成或支持另一装置使用哈希函数生成文件的特定消息摘要,并且(ii)如果满足多个锚定条件中的一个锚定条件,则处理器可以登记或支持另一装置登记代表性哈希值或其处理值到数据库200中,其中,通过使用特定哈希值及其对应的至少一个相邻哈希值来生成代表性哈希值,其中,特定哈希值是通过利用第一用户的私钥、第二用户的私钥和服务器100的私钥对特定消息摘要进行编码而取得的结果的哈希值。

在此,在并行签署处理中,特定哈希值可以是通过利用服务器100的私钥对数据组进行编码而取得的encprivc(encprivu1(md)+encprivu2(md))的哈希值,其中,数据组由通过利用第一用户的私钥对特定消息摘要进行编码而生成的第一编码消息摘要以及通过利用第二用户的私钥对特定消息摘要进行编码而生成的第二编码消息摘要组成。

另一方面,在串行签署处理中,特定哈希值可以是通过利用第一用户的私钥、第二用户的私钥和服务器100的私钥按照顺序对特定消息摘要进行编码而取得的encprivc(encprivu2(encprivu1(md)))的哈希值。

接下来,说明响应于来自多个用户的请求验证已认证的文件的处理。首先,参照图8说明不使用由服务器100管理的不同数据结构执行的验证。然而,省略重复说明。

图8是示出验证利用多个用户的签署所认证的文件的处理的时序图。

作为参考,步骤s825至s850表示响应于来自多个用户中的至少一部分用户的验证请求,按照顺序验证文件的串行签署处理,并且步骤s860至s885表示响应于来自多个用户中的至少一部分用户的验证请求,并行验证文件的并行签署处理。串行签署处理和并行签署处理都可应用于本发明提供的服务。

参照图8,如上所述,在以下条件下:服务器100响应于对文件的公证服务请求已经确定第一用户和第二用户与文件相关,并且其结果,服务器100已经将通过利用privu1、privu2和privc对文件的md进行编码而生成的第三消息摘要的哈希值存储在数据库200中,并且服务器100已经管理其相应的事务id、即txid,如果在步骤s810中取得至少一个对文件的验证请求,则处理器120可以取得与文件的原始消息摘要、即md=hash(文件)以及请求验证文件的用户的公钥中的至少一者相对应的txid。

此外,通信部110可以在s835和s870的每个步骤中通过参照txid从数据库200取得包括第三消息摘要的哈希值的op消息。

进一步,如果通过利用privc、privu1和privu2对原始消息摘要进行编码而生成的第四消息摘要的哈希值与op消息中的第三消息摘要的哈希值相对应,则处理器120可以在s840和s875的每个步骤中确定或支持另一装置确定文件已验证。

在并行签署处理中,处理器120可以根据hash[encprivc(encprivu1(md)+encprivu2(md))]、即通过利用privc对数据组进行编码而取得的第一编码值的哈希值是否与op消息中的第三消息摘要的哈希值相对应,来确定或支持另一装置确定文件已验证,其中,数据组由通过利用privu1对原始消息摘要进行编码而生成的第五消息摘要以及通过利用privu2对原始消息摘要进行编码而生成的第六消息摘要组成。

然而,即使在y的哈希值hash[encprivc(encprivu1(md)+encprivu2(md))]、即通过利用privc对由第五消息摘要和第六消息摘要组成的数据组进行编码而取得的第一编码值对应于op消息中的通过利用privu1、privu2和privc对消息摘要进行编码而生成的第三消息摘要的哈希值的情况下,如果(i)通过利用pubu1对通过利用pubc对y进行解码而取得的第五消息摘要进行解码而取得的第一解码值对应于md,并且如果(ii)通过利用pubu2对通过利用pubc对y进行解码而取得的第六消息摘要进行解码而取得的第二解码值对应于md,则处理器120可以确定或支持另一装置确定文件已验证。换言之,可以利用三个进一步的步骤完成文件的验证。

上述验证的四个步骤可以表示为以下表达式。

<表达式2>

op_message==hash[encprivc(encprivu1(md)+encprivu2(md))]

encprivu1(md)+encprivu2(md)==decpubc[encprivc(encprivu1(md)+encprivu2(md))]

md(=hash[file])==decpubu1[encprivu1(md)]

md(=hash[file])==decpubu2[encprivu2(md)]

另一方面,在串行签署处理中,处理器120可以根据hash[encprivc(encprivu2(encprivu1(md)))]、即通过利用privu1、privu2和privc按照顺序对原始消息摘要进行编码而取得的第二编码值的哈希值是否对应于op消息中的第三消息摘要的哈希值,确定或支持另一装置确定文件已验证。

然而,即使在z的哈希值hash[encprivc(encprivu2(encprivu1(md)))]、即通过利用privu1、privu2和privc按照顺序对原始消息摘要进行编码而获得的第二编码值对应于op消息中的第三消息摘要的哈希值的情况下,如果通过利用pubc、pubu2和pubu1按照顺序对z进行编码而获得的decpubu1(decpubu2(decpubc(encprivc(encprivu2(encprivu1(md))))))对应于md,则处理器120可以确定或支持另一装置确定文件已验证。换言之,可以利用三个进一步的步骤完成文件的验证。

上述验证的四个步骤可以表示为以下表达式。

<表达式3>

op_message==hash[encprivc(encprivu2(encprivu1(md)))]

encprivu2(encprivu1(md))==decpubc[encprivc(encprivu2(encprivu1(md)))]

encprivu1(md)==decpubu2[encprivu2(encprivu1(md))]

md(=hash[file])==decpubu1[encprivu1(md)]

接下来,进一步说明使用由服务器100管理的不同数据结构的认证系统中响应验证请求的所述另一示例实施例。

在以下条件下:服务器100已取得文件公证请求,然后已经登记第一代表性哈希值或其处理值到数据库中,其中,第一代表性哈希值通过在多个锚固条件中的一个锚固条件下使用第一特定哈希值及其对应的至少一个相邻哈希值生成,并且其中,第一特定哈希值是通过利用第一用户的私钥、第二用户的私钥和服务器的私钥对文件的特定消息摘要进行编码而取得的结果的哈希值,如果取得对文件的验证请求,并且如果通过使用验证请求中包括的输入数据生成的第二代表性哈希值或其处理值对应于登记在数据库中的第一代表性哈希值或其处理值,则处理器120可以确定或支持另一装置确定文件的验证已完成。

这里,在并行签署处理中,第一特定哈希值可以是通过利用服务器的私钥对数据组进行编码而取得的encprivc(encprivu1(md)+encprivu2(md))的哈希值,其中,数据组由通过利用第一用户的私钥对特定消息摘要进行编码而生成的第一编码消息摘要以及通过利用第二用户的私钥对特定消息摘要进行编码而生成的第二编码消息摘要组成。

在串行签署处理中,第一特定哈希值可以是通过利用第一用户的私钥、第二用户的私钥和服务器的私钥按照顺序对特定消息摘要进行编码而取得的encprivc(encprivu2(encprivu1(md)))的哈希值。

本发明通过将认证信息记录在虚拟货币的区块链中,具有在提供对文件的公证服务以实时进行认证和验证时保证快速服务速度并降低事务成本的效果。

本发明通过使用关于公证服务的信息配置默克尔树并利用区块链仅登记默克尔树的根值,而不是利用区块链登记关于公证服务的所有信息,具有提高服务速度并降低事务成本的另一效果。

本发明通过使用响应于对文件的验证请求而生成的默克尔树执行验证,具有提供数据库的可靠的完整性的又一效果。

另一方面,处理器120可以控制通信部110和其他部件之中的数据流。也就是说,处理器120可以通过控制服务器100内的每个部件之中的数据流来控制通信部110和其他部件以执行它们的独特的功能。

处理器120可以包括mpu(微处理单元)或cpu(中央处理器)、高速缓存存储器、数据总线等的硬件配置。另外,可以进一步包括实现特定目的的应用的os和软件配置。

如上所述的本发明的实施例可以通过可记录到计算机可读介质的各种计算机装置以可执行的程序命令的形式来实现。计算机可读介质可以单独地或组合地包括程序命令、数据文件和数据结构。记录到介质的程序命令可以是为本发明专门设计的部件,或者可以对计算机软件领域的技术人员可用。计算机可读记录介质包括:磁介质,例如硬盘、软盘和磁带;光介质,例如cd-rom和dvd;磁光介质,例如软光盘、以及诸如rom、ram和专门设计成存储并执行程序的闪存的硬件装置。程序命令不仅包括由编译器产生的机器语言代码,还包括可由解释器等使用的高级代码,解释器由计算机执行。上述硬件装置能够超出软件模块进行工作以执行本发明的动作,并且在相反的情况下它们能够进行同样的工作。硬件装置可以与诸如rom和ram的存储器组合以存储程序命令,并且包括构成为执行存储在存储器中的命令的诸如cpu或gpu的处理器,并且还包括用于与外部设备发送和接收信号的通信部。

如上所述,已经通过诸如详细的部件、有限的实施例和附图、具体的事项说明了本发明。虽然已经参照优选实施例示出并说明了本发明,但是本领域技术人员将理解的是,在不背离由所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和变更。

因此,本发明的思想不局限于所说明的实施例,并且以下专利权利要求以及包括与专利权利要求相同或等同的变型的所有内容都属于本发明的思想范畴。

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