CN108604336B - 提供对文件的公证服务并验证记录文件的方法和服务器 - Google Patents

提供对文件的公证服务并验证记录文件的方法和服务器 Download PDF

Info

Publication number
CN108604336B
CN108604336B CN201780009680.5A CN201780009680A CN108604336B CN 108604336 B CN108604336 B CN 108604336B CN 201780009680 A CN201780009680 A CN 201780009680A CN 108604336 B CN108604336 B CN 108604336B
Authority
CN
China
Prior art keywords
hash value
server
specific
private key
message digest
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.)
Active
Application number
CN201780009680.5A
Other languages
English (en)
Other versions
CN108604336A (zh
Inventor
鱼浚善
洪载佑
宋周翰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cp Laboratory Co ltd
Original Assignee
Coinplug Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Coinplug Inc filed Critical Coinplug Inc
Publication of CN108604336A publication Critical patent/CN108604336A/zh
Application granted granted Critical
Publication of CN108604336B publication Critical patent/CN108604336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Finance (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Databases & Information Systems (AREA)

Abstract

根据本发明的一个方面,提供一种用于提供对文件的公证服务的方法,所述方法包括以下步骤:(a)当取得对特定文件的公证服务请求时,服务器通过使用哈希函数生成或支持生成特定文件的消息摘要;以及(b)如果满足预定条件,则服务器登记或支持代表性哈希值或通过处理代表性哈希值取得的值登记在数据库中,代表性哈希值通过计算与特定哈希值匹配的至少一个相邻哈希值来生成,其中,特定哈希值是利用第一用户的私钥、第二用户的私钥以及服务器的私钥对消息摘要进行加密的结果的哈希值。

Description

提供对文件的公证服务并验证记录文件的方法和服务器
技术领域
本发明涉及一种用于提供对文件的公证服务并通过公证服务验证记录文件的方法;更具体地说,涉及提供对文件的公证服务并且使用公证服务验证记录文件的方法以及使用该方法的服务器,所述方法包括下面的“***理”以及“验证处理”,所述***理是:如果取得对文件的公证服务请求,则通过使用哈希函数生成或支持另一装置使用哈希函数生成文件的特定消息摘要,并且如果满足锚定条件(anchoring conditions)中的一个锚定条件,则登记或支持另一装置登记第一代表性哈希值或其处理值到数据库中,其中,通过使用特定哈希值和其对应的至少一个相邻哈希值来生成代表性哈希值,并且其中,所述特定哈希值是通过利用特定用户的私钥和服务器的私钥对特定消息摘要进行编码而取得的结果的哈希值,所述“验证处理”是:如果取得对文件的验证请求,并且如果通过使用所述验证请求中包括的输入数据生成的第二代表性哈希值或其处理值对应于在所述数据库中登记的第一代表性哈希值或其处理值,则确定或支持另一装置确定文件验证已完成。
背景技术
认证是公开证明特定事实或特定法律关系的存在或内容的行为。当要求对特定法律关系进行认证时,认证官员通常在认证办公室中书写、签署和密封并保存文档。
然而,由于在以往的认证中客户带着要认证的文档实际访问认证办公室并将其证书保存在认证办公室中,因此具有时间和空间上的限制以及遗失、伪制和伪造认证文档的可能性。
在本文中,本发明的发明人开发了一种对文件的认证***,通过在虚拟货币的区块链中记录认证信息,实时进行认证,不存在伪制和伪造的可能性并且没有空间限制,并且提交了韩国专利申请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 为零的第一默克尔树,所以特定消息数据“ Coinplug 2016-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 的处理器,并且还包括用于与外部设备发送和接收信号的通信部。
如上所述,已经通过诸如详细的部件、有限的实施例和附图、具体的事项说明了本发明。虽然已经参照优选实施例示出并说明了本发明,但是本领域技术人员将理解的是,在不背离由所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和变更。
因此,本发明的思想不局限于所说明的实施例,并且以下专利权利要求以及包括与专利权利要求相同或等同的变型的所有内容都属于本发明的思想范畴。

Claims (30)

1.一种用于提供对文件的公证服务的方法,包括以下步骤:
(a)如果取得对文件的公证服务请求,则服务器通过使用哈希函数生成或支持另一装置使用哈希函数生成所述文件的特定消息摘要;以及
(b)如果满足锚定条件中的一个锚定条件,则所述服务器登记或支持另一装置登记代表性哈希值或其处理值到数据库中,其中,所述代表性哈希值通过使用分配给默克尔树的特定叶节点的特定哈希值及其对应的分配给所述默克尔树的至少一个其他叶节点的至少一个相邻哈希值来生成,并且其中,所述特定哈希值是通过利用第一用户的私钥、第二用户的私钥以及所述服务器的私钥对所述特定消息摘要进行编码而取得的结果的哈希值。
2.根据权利要求1所述的方法,其中,所述特定哈希值是通过利用所述服务器的私钥对数据组进行编码而获取的结果的哈希值,并且其中,所述数据组包括:通过利用所述第一用户的私钥对所述特定消息摘要进行编码而生成的第一编码消息摘要以及通过利用所述第二用户的私钥对所述特定消息摘要进行编码而生成的第二编码消息摘要。
3.根据权利要求1所述的方法,其中,所述特定哈希值是通过利用所述第一用户的私钥、所述第二用户的私钥以及所述服务器的私钥按照顺序对所述特定消息摘要进行编码而生成的结果的哈希值。
4.根据权利要求1所述的方法,其中,在步骤(b)中,所述锚定条件包括以下中的至少一者:(i)响应于各公证服务请求取得包括所述特定消息摘要的一定数量的消息摘要;(ii)经过特定时间;(iii)在区块链中生成块;以及(iv)请求公证服务的用户的一个或多个特征。
5.根据权利要求1所述的方法,其中,在步骤(b)中,所述服务器执行或支持另一装置执行:(i)生成包括被分配所述特定哈希值的所述特定叶节点的所述默克尔树的处理;以及(ii)如果满足锚定条件中的所述一个锚定条件,则将所述代表性哈希值或其处理值登记在所述数据库中的处理,所述代表性哈希值通过使用所述特定哈希值和分配给至少一个其他叶节点的至少一个哈希值计算,所述至少一个其他叶节点具有与所述默克尔树中的特定叶节点相同的深度。
6.根据权利要求5所述的方法,其中,如果满足锚定条件中的所述一个锚定条件,
(x1)所述服务器计算或支持另一装置计算(i)所述特定哈希值和(ii)分配给所述特定叶节点的兄弟节点的哈希值,从而取得结果值,然后分配或支持另一装置分配所述结果值的哈希值给所述特定叶节点的父节点;
(x2)如果所述父节点是所述默克尔树的根节点,则所述服务器登记或支持另一装置登记分配给所述父节点的所述结果值的哈希值到所述数据库中作为所述代表性哈希值;并且
(x3)如果所述父节点不是所述默克尔树的根节点,则所述服务器通过使用分配给所述父节点的所述结果值的哈希值作为所述特定哈希值来重复或支持另一装置重复步骤(x1)至(x3)。
7.根据权利要求6所述的方法,其中,在步骤(x1)中,如果即使满足锚定条件中的所述一个锚定条件也没有哈希值被分配给所述特定叶节点的所述兄弟节点,则所述服务器分配或支持另一装置分配特定哈希值给所述兄弟节点,然后执行或支持另一装置执行步骤(x1)至(x3)。
8.根据权利要求1所述的方法,其中,如果在步骤(a)没有取得公证服务请求,并且如果在步骤(b)满足锚定条件中的所述一个锚定条件,则所述服务器执行或支持另一装置执行生成具有分别被分配特定消息数据的第一叶节点和第二叶节点的所述默克尔树的处理、以及将所述默克尔树的根值或其处理值登记在所述数据库中的处理。
9.根据权利要求1所述的方法,其中,所述对文件的公证服务包括文件认证服务和文件撤销服务中的至少一者。
10.根据权利要求1所述的方法,其中,所述数据库是虚拟货币的区块链,或者所述数据库通过所述服务器管理。
11.一种使用公证服务验证记录文件的方法,包括以下步骤:
(a)在服务器已经取得对文件的公证服务请求并且随后已经登记第一代表性哈希值或其处理值到数据库中的条件下,所述服务器取得或支持另一装置取得对文件的验证请求,其中,所述第一代表性哈希值在锚定条件中的一个锚定条件下通过使用分配给默克尔树的特定叶节点的第一特定哈希值及其对应的分配给所述默克尔树的至少一个其他叶节点的至少一个相邻哈希值来生成,并且其中,所述第一特定哈希值是通过利用第一用户的私钥、第二用户的私钥以及所述服务器的私钥对所述文件的特定消息摘要进行编码而取得的结果的哈希值;以及
(b)如果通过使用所述验证请求中包括的输入数据生成的第二代表性哈希值或其处理值对应于登记在所述数据库中的所述第一代表性哈希值或其处理值,则所述服务器确定或支持另一装置确定所述文件的验证完成。
12.根据权利要求11所述的方法,其中,所述第一特定哈希值是通过利用所述服务器的私钥对数据组进行编码而取得的结果的哈希值,并且其中,所述数据组包括:通过利用所述第一用户的私钥对所述特定消息摘要进行编码而生成的第一编码消息摘要、以及通过利用所述第二用户的私钥对所述特定消息摘要进行编码而生成的第二编码消息摘要。
13.根据权利要求11所述的方法,其中,所述第一特定哈希值是通过利用所述第一用户的私钥、所述第二用户的私钥和所述服务器的私钥按照顺序对所述特定消息摘要进行编码而取得的结果的哈希值。
14.根据权利要求11所述的方法,其中,步骤(a)包括:
(a1)如果取得所述验证请求,则所述服务器参照或支持另一装置参照与所述文件相关的特定事务ID;以及
(a2)所述服务器通过参照所述特定事务ID从所述数据库中取得或支持另一装置取得OP消息,
其中,在步骤(b)中,如果通过使用所述验证请求中包括的输入数据生成的所述第二代表性哈希值或其处理值对应于所述OP消息中包括的所述第一代表性哈希值或其处理值,则所述服务器确定或支持另一装置确定验证完成。
15.根据权利要求14所述的方法,其中,在步骤(a1)中,如果取得所述验证请求,则所述服务器执行或支持另一装置执行识别关于与所述输入数据有关的所述默克尔树以及关于其叶节点的信息的处理、以及参照与关于所识别的默克尔树的信息相对应的所述特定事务ID的处理。
16.根据权利要求11所述的方法,其中,在步骤(a)中,所述输入数据包括以下的至少一者:(i)所述文件;(ii)所述文件的所述特定消息摘要;以及(iii)在对所述文件的公证服务的期间发出的ID。
17.根据权利要求14所述的方法,其中,所述第二代表性哈希值通过使用第二特定哈希值及其对应的所述至少一个相邻哈希值来生成,并且其中,所述第二特定哈希值是通过利用特定用户的私钥和所述服务器的私钥对从所述验证请求中包括的所述输入数据中提取的所述文件的所述特定消息摘要进行编码而取得的结果的哈希值。
18.根据权利要求17所述的方法,其中,通过使用分配给所述默克尔树的所述特定叶节点的所述第二特定哈希值以及分配给至少一个其他叶节点的哈希值来计算所述第二代表性哈希值,所述至少一个其他叶节点与所述默克尔树的所述特定叶节点相对应。
19.根据权利要求18所述的方法,其中,
(x1)所述服务器计算或支持另一装置计算(i)所述第二特定哈希值和(ii)分配给被分配所述第二特定哈希值的所述特定叶节点的兄弟节点的哈希值,从而取得结果值,然后分配或支持另一装置分配所述结果值的哈希值给所述特定叶节点的父节点;
(x2)如果所述父节点是所述默克尔树的根节点,则所述服务器比较或支持另一装置比较分配给所述父节点的、作为所述第二代表性哈希值的哈希值或其处理值与从所述数据库中获取的OP消息中包括的所述第一代表性哈希值或其处理值;并且
(x3)如果所述父节点不是所述默克尔树的根节点,则所述服务器通过使用分配给所述父节点的哈希值或其处理值作为所述第二特定哈希值来重复或支持另一装置重复步骤(x1)至(x3)。
20.根据权利要求11所述的方法,其中,所述数据库是虚拟货币的区块链,或者所述数据库通过所述服务器管理。
21.一种用于提供对文件的公证服务的服务器,包括:
通信部,用于取得或支持另一装置取得公证服务请求;以及
处理器,(I)如果取得对所述文件的所述公证服务请求,则所述处理器通过使用哈希函数生成或支持另一装置使用哈希函数生成所述文件的特定消息摘要,并且(II)如果满足锚定条件中的一个锚定条件,则所述处理器登记或支持另一装置登记代表性哈希值或其处理值到数据库中,其中,所述代表性哈希值通过使用分配给默克尔树的特定叶节点的特定哈希值及其对应的分配给所述默克尔树的至少一个其他叶节点的至少一个相邻哈希值来生成,并且其中,所述特定哈希值是通过利用第一用户的私钥、第二用户的私钥以及所述服务器的私钥对所述特定消息摘要进行编码而取得的结果的哈希值。
22.根据权利要求21所述的服务器,其中,所述特定哈希值是通过利用所述服务器的私钥对数据组进行编码而取得的结果的哈希值,并且其中,所述数据组包括:通过利用所述第一用户的私钥对所述特定消息摘要进行编码而生成的第一编码消息摘要以及通过利用所述第二用户的私钥对所述特定消息摘要进行编码而生成的第二编码消息摘要。
23.根据权利要求21所述的服务器,其中,所述特定哈希值是通过利用所述第一用户的私钥、所述第二用户的私钥和所述服务器的私钥按照顺序对所述特定消息摘要进行编码而生成的结果的哈希值。
24.根据权利要求21所述的服务器,其中,所述锚定条件包括以下中的至少一者:(i)响应于各公证服务请求取得包括所述特定消息摘要的一定数量的消息摘要;(ii)经过特定时间;(iii)在区块链中生成块;以及(iv)请求公证服务的用户的一个或多个特征。
25.根据权利要求21所述的服务器,其中,所述处理器执行或支持另一装置执行:(I)生成包括被分配所述特定哈希值的所述特定叶节点的所述默克尔树的处理;以及(II)如果满足锚定条件中的所述一个锚定条件,则将所述代表性哈希值或其处理值登记在所述数据库中的处理,所述代表性哈希值通过使用所述特定哈希值和分配给至少一个其他叶节点的至少一个哈希值计算,所述至少一个其他叶节点具有与所述默克尔树中的所述特定叶节点相同的深度。
26.一种使用公证服务验证记录文件的服务器,包括:
通信部,用于取得或支持另一装置取得对文件的验证请求;以及
处理器,在以下条件下:在所述服务器已经取得对所述文件的公证服务请求并且随后已经将第一代表性哈希值或其处理值登记在数据库中,其中,所述第一代表性哈希值在锚定条件中的一个锚定条件下通过使用分配给默克尔树的特定叶节点的第一特定哈希值及其对应的分配给所述默克尔树的至少一个其他叶节点的至少一个相邻哈希值来生成,并且其中,所述第一特定哈希值是通过利用第一用户的私钥、第二用户的私钥以及所述服务器的私钥对所述文件的特定消息摘要进行编码而取得的结果的哈希值,如果取得所述验证请求,并且如果通过使用所述验证请求中包括的输入数据生成的第二代表性哈希值或其处理值对应于登记在所述数据库中的所述第一代表性哈希值或其处理值,则所述处理器确定或支持另一装置确定所述文件的验证完成。
27.根据权利要求26所述的服务器,其中,所述第一特定哈希值是通过利用所述服务器的私钥对数据组进行编码而取得的结果的哈希值,并且其中,所述数据组包括通过利用所述第一用户的私钥对所述特定消息摘要进行编码而生成的第一编码消息摘要以及通过利用所述第二用户的私钥对所述特定消息摘要进行编码而生成的第二编码消息摘要。
28.根据权利要求26所述的服务器,其中,所述第一特定哈希值是通过利用所述第一用户的私钥、所述第二用户的私钥以及所述服务器的私钥按照顺序对所述特定消息摘要进行编码而取得的结果的哈希值。
29.根据权利要求26所述的服务器,其中,如果取得所述验证请求,则所述处理器参照或支持另一装置参照与所述文件相关的特定事务ID,并且通过参照所述特定事务ID来从所述数据库中取得或支持另一装置取得OP消息,并且其中,如果通过使用所述验证请求中包括的所述输入数据生成的所述第二代表性哈希值或其处理值对应于所述OP消息中包括的所述第一代表性哈希值或其处理值,则所述服务器确定或支持另一装置确定验证完成。
30.根据权利要求26所述的服务器,其中,所述输入数据包括以下中的至少一者:(i)所述文件;(ii)所述文件的所述特定消息摘要;以及(iii)在对所述文件的公证服务的期间发出的ID。
CN201780009680.5A 2016-02-02 2017-02-01 提供对文件的公证服务并验证记录文件的方法和服务器 Active CN108604336B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2016-0012763 2016-02-02
KR1020160012763A KR101735708B1 (ko) 2016-02-02 2016-02-02 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버
PCT/KR2017/001072 WO2017135670A1 (ko) 2016-02-02 2017-02-01 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버

Publications (2)

Publication Number Publication Date
CN108604336A CN108604336A (zh) 2018-09-28
CN108604336B true CN108604336B (zh) 2022-01-28

Family

ID=58739709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780009680.5A Active CN108604336B (zh) 2016-02-02 2017-02-01 提供对文件的公证服务并验证记录文件的方法和服务器

Country Status (6)

Country Link
US (4) US10491396B2 (zh)
EP (1) EP3413252B1 (zh)
KR (1) KR101735708B1 (zh)
CN (1) CN108604336B (zh)
CA (1) CA3012311C (zh)
WO (1) WO2017135670A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671712B1 (en) 2017-03-01 2020-06-02 United Services Automobile Association (Usaa) Virtual notarization using cryptographic techniques and biometric information
KR101919590B1 (ko) 2017-05-10 2019-02-08 주식회사 코인플러그 블록체인 데이터베이스 및 이와 연동하는 머클 트리 구조를 통해 사물 인터넷 기기에 대한 비용을 결제하는 방법, 이를 이용한 서버, 서비스 제공 단말, 및 사용자 전자 지갑
KR101919586B1 (ko) 2017-05-10 2018-11-16 주식회사 코인플러그 블록체인 기반의 사물 인터넷 기기에 대한 비용을 결제하는 방법, 이를 이용한 서버, 서비스 제공 단말, 및 사용자 전자 지갑
SG11201910769WA (en) * 2017-06-20 2020-01-30 Nchain Holdings Ltd System and method of multi-round token distribution using a blockchain network
WO2019046880A1 (en) 2017-09-08 2019-03-14 FTR Labs Pty Ltd METHOD AND SYSTEM FOR VERIFYING A RECORD
US11316696B2 (en) * 2017-09-29 2022-04-26 R3 Ltd. Hash subtrees for grouping components by component type
KR101925463B1 (ko) * 2017-12-27 2018-12-05 주식회사 뷰노 영상 해시값 등록 및 검증 방법, 및 이를 이용한 장치
CN109033875A (zh) * 2018-08-01 2018-12-18 长沙龙生光启新材料科技有限公司 一种区块链中离线发布执行认证方法
CN109347935B (zh) * 2018-09-30 2021-08-03 珠海信达九州科技有限公司 一种基于区块链实现实时通讯消息同步的方法
US11849047B2 (en) * 2018-10-09 2023-12-19 International Business Machines Corporation Certifying authenticity of data modifications
CN109409889B (zh) * 2018-11-13 2021-11-12 杭州秘猿科技有限公司 一种区块链中的区块确定方法、装置及电子设备
PL3571825T3 (pl) * 2018-12-21 2021-08-16 Advanced New Technologies Co., Ltd. Weryfikacja integralności danych przechowywanych w łańcuchu bloków konsorcjum przy użyciu publicznego łańcucha bocznego
CA3055108C (en) 2019-03-28 2021-10-05 Alibaba Group Holding Limited System and method for parallel-processing blockchain transactions
CN110311782B (zh) * 2019-04-29 2020-04-14 山东工商学院 个人信息的零知识证明方法、***及存储介质
CN110492989B (zh) * 2019-08-23 2020-11-13 广州华多网络科技有限公司 私钥的处理方法、访问方法和对应方法的介质、装置
US20220253546A1 (en) * 2021-02-10 2022-08-11 Microsoft Technology Licensing, Llc System and method for representing and verifying a data set using a tree-based data structure
AU2022215281B2 (en) * 2021-03-31 2024-02-15 Intuit Inc. Securing hash chains via hybrid consensus
US11949774B2 (en) * 2021-03-31 2024-04-02 Intuit Inc. Securing hash chains via hybrid consensus
JP2023094838A (ja) * 2021-12-24 2023-07-06 キヤノン株式会社 プログラム、情報処理装置、情報処理装置の制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838140A (zh) * 2005-03-25 2006-09-27 威盛电子股份有限公司 运用加密功能以产生信息摘要的设备及方法
CN103268460A (zh) * 2013-06-20 2013-08-28 北京航空航天大学 一种云存储数据完整性验证方法
CN103281193A (zh) * 2013-06-03 2013-09-04 中国科学院微电子研究所 身份认证方法、***及基于其的数据传输方法、装置
JP2014042214A (ja) * 2012-08-23 2014-03-06 Seiko Instruments Inc データ証明システムおよびデータ証明サーバ
CN105164971A (zh) * 2013-02-22 2015-12-16 保时知识产权控股有限公司 具有额外安全性的用于低熵输入记录的核验***和方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250408A (ja) * 1999-03-01 2000-09-14 Ntt Data Corp ファイル認証システム、署名システム及び署名方法、認証システム及び認証方法、及び記録媒体
WO2001011843A1 (en) * 1999-08-06 2001-02-15 Sudia Frank W Blocked tree authorization and status systems
JP2002093680A (ja) 2000-09-13 2002-03-29 Tdk Corp フォトレジスト塗布方法及び塗布装置
KR100646948B1 (ko) * 2002-10-17 2006-11-17 주식회사 로마켓아시아 전자문서의 공증 및 검증 처리가 가능한 공증 센터 서버 및 그 방법
GB0229894D0 (en) * 2002-12-21 2003-01-29 Ibm Methods, apparatus and computer programs for generating and/or using conditional electronic signatures and/or for reporting status changes
KR100725414B1 (ko) * 2006-02-07 2007-06-07 삼성전자주식회사 디지털 컨텐츠 동기화를 위한 동기화 식별자 생성 방법 및장치
US8140843B2 (en) * 2006-07-07 2012-03-20 Sandisk Technologies Inc. Content control method using certificate chains
WO2010149333A1 (en) * 2009-06-26 2010-12-29 Trusted Logic Data verification method
US8510566B1 (en) * 2009-09-29 2013-08-13 Emc Corporation Authentic time-stamping for archival storage
US9721071B2 (en) * 2011-06-29 2017-08-01 Sonic Ip, Inc. Binding of cryptographic content using unique device characteristics with server heuristics
US20140173287A1 (en) * 2011-07-11 2014-06-19 Takeshi Mizunuma Identifier management method and system
US9686079B2 (en) * 2013-07-16 2017-06-20 Eingot Llc Electronic document notarization
US9270758B2 (en) * 2014-03-31 2016-02-23 Cellco Partnership System for mobile application notary service
CA2985040A1 (en) * 2014-05-06 2015-12-03 Case Wallet, Inc. Cryptocurrency virtual wallet system and method
US10963881B2 (en) * 2015-05-21 2021-03-30 Mastercard International Incorporated Method and system for fraud control of blockchain-based transactions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838140A (zh) * 2005-03-25 2006-09-27 威盛电子股份有限公司 运用加密功能以产生信息摘要的设备及方法
JP2014042214A (ja) * 2012-08-23 2014-03-06 Seiko Instruments Inc データ証明システムおよびデータ証明サーバ
CN105164971A (zh) * 2013-02-22 2015-12-16 保时知识产权控股有限公司 具有额外安全性的用于低熵输入记录的核验***和方法
CN103281193A (zh) * 2013-06-03 2013-09-04 中国科学院微电子研究所 身份认证方法、***及基于其的数据传输方法、装置
CN103268460A (zh) * 2013-06-20 2013-08-28 北京航空航天大学 一种云存储数据完整性验证方法

Also Published As

Publication number Publication date
US10491396B2 (en) 2019-11-26
KR101735708B1 (ko) 2017-05-15
CA3012311C (en) 2021-07-13
US20210167966A1 (en) 2021-06-03
EP3413252A1 (en) 2018-12-12
US10944570B2 (en) 2021-03-09
CA3012311A1 (en) 2017-08-10
CN108604336A (zh) 2018-09-28
US20200059367A1 (en) 2020-02-20
US11438167B2 (en) 2022-09-06
US20180337787A1 (en) 2018-11-22
US20200059366A1 (en) 2020-02-20
EP3413252A4 (en) 2018-12-12
WO2017135670A1 (ko) 2017-08-10
EP3413252B1 (en) 2021-01-20
US10924285B2 (en) 2021-02-16

Similar Documents

Publication Publication Date Title
CN108604336B (zh) 提供对文件的公证服务并验证记录文件的方法和服务器
CN108604335B (zh) 提供对文件的公证服务并验证记录文件的方法和服务器
US11205014B2 (en) Method and server for authenticating and verifying file
JP6877448B2 (ja) 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム
CN109074434B (zh) 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和***
JP6756041B2 (ja) 情報保護用のシステム及び方法
US10469264B2 (en) Method and server for authenticating and verifying file
KR20170099154A (ko) 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버
KR101829731B1 (ko) 주주명부를 등록하고 주식 소유권 이전을 기록하는 방법 및 서버

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Gyeonggi Do, South Korea

Patentee after: CP Laboratory Co.,Ltd.

Country or region after: Republic of Korea

Address before: Gyeonggi Do, South Korea

Patentee before: COINPLUG, Inc.

Country or region before: Republic of Korea