CN1910850B - 事件顺序证明方法 - Google Patents
事件顺序证明方法 Download PDFInfo
- Publication number
- CN1910850B CN1910850B CN200580002822.2A CN200580002822A CN1910850B CN 1910850 B CN1910850 B CN 1910850B CN 200580002822 A CN200580002822 A CN 200580002822A CN 1910850 B CN1910850 B CN 1910850B
- Authority
- CN
- China
- Prior art keywords
- certificate
- supervisory
- proof
- sequenced collection
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3297—Cryptographic 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 time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
事件顺序证明***100,具有:证明装置1、多个用户装置2i(i=a,b,...,n)、进行证明装置1发行的事件顺序受理证书的监查的监查装置、以及相互连接以上各装置的计算机网络4,证明装置1,响应来自用户装置2i的事件顺序证明请求,发行事件顺序受理证书,向用户装置2i返回,同时,在事件顺序受理证书中产生疑义的场合,用户装置2i通过证明装置1发表的数据或者监查装置3的监查结果来验证事件顺序受理证书。
Description
技术领域
本发明涉及证明伴随数字数据的生成的事件的发生顺序的事件顺序证明技术。
背景技术
事件顺序证明技术,是在证明伴随数字数据的生成的多个事件间的发生顺序的同时,证明伴随这样的事件生成的数字数据是什么的技术。
近年来,伴随因特网上电子商务的活跃、或者电子文档管理的使用扩大,需要第三方证明“谁何时生成、交付发送什么样的数据?”的电子公证的机构。电子公证,具有收发人的确定、到达确认、收发等的前后关系的证明、篡改的检测、电子文档保管等功能,而事件顺序证明技术是实现其中的前后关系的证明以及篡改的检测的功能的技术。
图1是说明使用这样的事件顺序证明技术的事件顺序证明***的图。该图中所示的事件顺序证明***900,当用户(请求者,验证者)30向事件顺序证明装置10发送事件顺序证明的对象数据时,事件顺序证明装置10,生成附以表示对于由用户30请求的对象数据接收的顺序的数据的事件顺序受理证书,向用户返回该事件顺序受理证书。然后,由事件顺序证明装置10发行的事件顺序受理证书,在PKI(Public Key Infrastructure)的基础上作为主要的防止伪造/证明手段采用数字签名的场合,一般,就成为包含对于在由用户30发送的对象数据上附以接收的顺序的签名对象数据的数字签名的事件顺序受理证书。
关于作为该事件顺序受理证书的真实性的主要的根据使用数字签名的事件顺序证明***,被指出了在事件顺序证明装置10的不正确、事件顺序受理证书的有效期间、以及***运用方面等中的问题。因此,也提出了作为事件顺序受理证书的真实性的主要的根据不使用数字签名的事件顺序证明的方法。例如,基于线性链接(Linear Linking Protocol)的方法(例如参照非专利文献1以及非专利文献2)是即使假定事件顺序证明装置10不可靠而作为***全体也能确保高的稳定性的方法。图2是说明基于不依赖PKI的线性链接的事件顺序证明***的图。该图中所示的事件顺序证明***910,生成相互关联多个用户30的事件顺序证明对象数据(Hash值)的链接信息Ln,返回包含链接信息Ln的事件顺序受理证书,各事件顺序受理证书,依存于此前生成的所有事件顺序受理证书。于是,因为定期在大众媒体等(例如报纸)上发表该链接信息的一部分(LM,LN),由此,就可以防止事件顺序证明装置10的不正确,其结果就能够提高***全体的可靠性。
关于该线性链接的方式,被指出有如下问题:即为检测事件顺序证明装置10的不正确需要用户30相互合作的问题,以及为验证用户30取得的事件顺序受理证书、亦即验证以规定的方式将发表的信息和该事件顺序受理证书关联起来,用户30需要从事件顺序证明装置10取得大量的数据这样的问题。
也提出了为解决这些问题的一部分的方法.例如,在非专利文献3以及非专利文献4中,提出了为计算在一定期间汇总发表由事件顺序证明装置处理的事件顺序证明请求的数据,代替在非专利文献1以及非专利文献2中使用的线性的列表,通过使用树结构,把用户30为进行事件顺序受理证书的验证所需要的数据的量,从与在该一定期间内所接收的事件顺序证明请求的数成比例的量,显著削减到与其对数(底为2)成比例的量的方法.
非专利文献1:S.Haber and W.Stornetta,How to Time-Stamp a DigitalDocument,Journal of Cryptology,Vol.3,No.2,pp.99_111,1991
非专利文献2:J.-J.Quisquater,H.Massias,J.S.Avila,B.Preneel,B.VanRompay:Specification and implementation of a timestamping system,TechnicalReport of Universite Catholique de Louvain,1999,URL:http://www.dice.uci.ac.be/crypto/TIMESEC/TR4.tgzl
非专利文献3:A.Buldas、H.Lipmaa and B.Schoenmakers,Optimallyefficient accountable time-stamping,in Proceedings of Public Key Cryptography2000(PKC2000),eds,Y.Zheng and H.Imai,pp.293_305,Springer-Verlag,January 2000
非专利文献4:No.3(A.Buldas,P.Land,H.Lipmma and J.Villemson:Time-stamping with binary linking schemes,in Proceedings of Advances onCryptology(CRYPTO’98),ed.H.Krawczyk,pp.486-501,Spriinger-Verlag,1998)
发明内容
但是,关于使用在非专利文献3以及非专利文献4中记载的树结构的方式,存在下面的问题。
在某一定期间内两个不同的用户分别向事件顺序证明装置发送事件顺序证明请求,在接收这些请求时,存在这样的问题:即在相应期间结束后汇总事件顺序证明请求的发表的数据被公开前不能证明第一用户对某顺序证明请求的接收在第二用户对某顺序证明请求的接收之前的事实的问题。亦即存在以规定的方式关联这两个顺序证明请求和发表数据的验证,在发表数据被公开前不能进行的问题。因此,存在对于事件顺序证明***的用户的方便性差,同时在事件顺序证明装置中发生故障时,不能进行事件顺序受理证书的验证的缺点。
本发明是为解决上述问题提出的,其目的是,提供在使用树结构证明事件顺序的事件顺序证明***中,即使不使用汇总发表事件顺序证明请求的数据,也能够进行由事件顺序证明机构发行的事件顺序受理证书的验证的事件顺序证明方法以及事件顺序证明监查方法、事件顺序证明***中的证明装置以及监查装置、以及事件顺序证明***、事件顺序证明监查程序、事件顺序证明验证程序以及事件时刻验证程序。
本发明的第一方面,是一种事件顺序证明方法,其用于通过通信网络相互连接在生成规定的数字信息的事件的时间序列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求的用户装置、制作对于来自所述用户装置的所述证明请求的证书的证明装置、监查所述证书的真假的监查装置的事件顺序证明***中,其特征在于,具有:所述证明装置接收来自所述用户装置的证明请求的顺序证明请求接收步骤;所述证明装置遵照预先决定的过程从在所述证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算步骤;所述证明装置,在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配、在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父分配值,计算可计算的节点的分配值、同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合步骤;所述证明装置制作证书的证书制作步骤,所述证书包含所述顺序分配数据、以及确定分配有所述顺序分配数据的顺序集合树以及该顺序集合树的叶的第一顺序集合树确定信息;所述证明装置向所述用户装置发送所述证书的证发送步骤;若把分配有所述证明请求的所述顺序集合树的叶作为登录点定义、把关于为从该登录点计算所述顺序集合树的根值所需要的节点的信息作为所述证书的补充信息定义、在该补充信息中把在给所述顺序集合树分配所述证明请求的时刻可取得的补充信息作为即时补充信息定义,则所述证明装置,在给所述顺序集合树分配所述证明请求后,给所述顺序集合树分配第一监查请求,通过和所述证书相同的制作方法,制作第一监查用证书,同时从所述顺序集合树取得在给所述顺序集合树分配所述监查请求的时刻的第一监查用即时补充信息,并包含在所述第一监查用证书中的监查用证书制作步骤;所述证明装置向所述监查装置发送所述第一监查用证书的监查用证书发送步骤;所述证明装置在给所述顺序集合树分配所述第一监查请求后,接收来自所述用户装置的所述证书的补充信息的请求的补充信息请求接收步骤;所述证明装置,从所述顺序集合树取得确定分配有所述补充信息的请求的所述顺序集合树以及所述顺序集合树的叶子的第二顺序集合树确定信息、以及在分配所述补充信息的请求的时刻可取得的补充信息,作为延迟补充信息的延迟补充信息制作步骤;和所述证明装置向所述用户装置发送所述证书的所述延迟补充信息的延迟补充信息发送步骤.
本发明的第二方面,是一种事件顺序证明监查方法,其用于通过通信网络相互连接在生成规定的数字信息的事件的时间序列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求的至少一个用户装置、制作对于来自用户装置的证明请求的证书的证明装置、监查所述证书的真假的监查装置的事件顺序证明***中,其特征在于,具有:所述证明装置从所述用户装置接收第一证明请求的顺序证明请求接收步骤;所述证明装置遵照预先决定的过程从在所述第一证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算步骤;所述证明装置,在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配而在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父的分配值,计算可计算的节点的分配值,同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合步骤;所述证明装置制作第一证书的证书制作步骤,所述第一证书包含所述顺序分配数据、以及确定分配有所述顺序分配数据的顺序集合树以及该顺序集合树的叶子的第一顺序集合树确定信息;所述证明装置向所述用户装置发送所述第一证书的证书发送步骤;若把分配有所述第一证明请求的所述顺序集合树的叶子定义为登录点、把关于为从该登录点计算所述顺序集合树的根值所需要的节点的信息定义为所述第一证书的补充信息,把该补充信息中、在给所述顺序集合树分配所述第一证明请求的时刻可取得的补充信息定义为即时补充信息,则所述证明装置,给所述顺序集合树分配多个监查请求后,使用和所述第一证书相同的制作方法,制作多个监查用证书,同时从所述顺序集合树取得在给所述顺序集合树分配各监查请求的时刻的监查用的即时补充信息,并包含在各监查用证书中的监查用证书制作步骤;所述证明装置向所述监查装置发送所述多个监查用证书的监查用证书发送步骤;所述证明装置,在发送所述第一证书后,接收来自所述用户装置的所述第一证书的补充信息的请求的补充信息请求接收步骤;所述证明装置,从所述顺序集合树取得确定分配有所述补充信息的请求的所述顺序集合树以及所述顺序集合树的叶子的第二顺序集合树确定信息、以及在分配所述补充信息的请求的时刻可取得的补充信息,作为延迟补充信息的延迟补充信息制作步骤;所述证明装置向所述用户装置发送所述第一证书的所述延迟补充信息的延迟补充信息发送步骤;所述监查装置,从所述证明装置接收所述多个监查用证书的监查用证书接收步骤;所述监查装置,从所述用户装置接收所述第一证书以及对于包含所述第一证书的所述延迟补充信息的所述第一证书的监查请求的监查请求接收步骤;所述监查装置,从所述多个监查用证书中,根据对于所述第一证书的监查请求的第一以及第二顺序集合树确定信息,选择通过所述第一证书生成的时间上的顺序之后、且通过所述延迟补充信息生成的时间上的顺序之前的监查用证书的第一监查用证书选择步骤;所述监查装置,对于所述顺序集合树的特定的节点,根据在所述第一监查用证书选择步骤中选择的监查用证书中包含的该节点的分配值和从对于所述第一证书的监查请求计算的该节点的分配值是否一致的验证,监查所述第一证书的正当性,证明所述第一证书的证明请求的接收时刻和在所述第一监查用证书选择步骤中选择的监查用证书的监查请求的接收时刻的前后关系的第一证书监查步骤;和所述监查装置向所述用户装置发送所述第一证书的监查结果的监查结果发送步骤.
本发明的第三方面,是一种事件顺序证明装置,它通过通信网络相互连接在生成规定的数字信息的事件的时间序列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求、敦促证书的制作的用户装置、监查该证书的真假的监查装置,制作所述证书,其特征在于,具有:从所述用户装置接收证明请求的顺序证明请求接收单元;遵照预先决定的过程从在所述证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算单元;在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配来在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接了给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父的分配值,计算可计算的节点的分配值,同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合单元;证书制作单元,其制作包含所述顺序分配数据、以及确定分配有所述顺序分配数据的顺序集合树以及该顺序集合树的叶子的第一顺序集合树确定信息的证书;向所述用户装置发送所述证书的证书发送单元;若把分配有所述证明请求的所述顺序集合树的叶子定义为登录点、把关于为从该登录点计算所述顺序集合树的根值所需要的节点的信息定义为所述证书的补充信息、把该补充信息中、在给所述顺序集合树分配所述证明请求的时刻可取得的补充信息定义为即时补充信息,则给所述顺序集合树分配了所述证明请求后,给所述顺序集合树分配第一监查请求,使用和所述证书相同的制造方法,制作第一监查用证书,同时从所述顺序集合树取得在给所述顺序集合树分配所述第一监查请求的时刻的第一监查用即时补充信息,包含在该第一监查用证书中的监查用证书制作单元;向所述监查装置发送所述第一监查用证书的监查用证书发送单元;在向所述顺序集合树分配分配所述第一监查请求后,接收来自所述用户装置的所述证书的补充信息的请求的补充信息请求接收单元;从所述顺序集合树取得确定分配有所述补充信息的请求的所述顺序集合树以及所述顺序集合树的叶子的第二顺序集合树确定信息、以及在分配所述补充信息的请求的时刻可取得的补充信息,作为延迟补充信息的延迟补充信息制作单元;和向所述用户装置发送所述证书的所述延迟补充信息的延迟补充信息发送单元.
本发明的第四方面,是一种事件顺序证明监查装置,它通过通信网络连接在生成规定的数字信息的事件的时间序列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求的至少一个用户装置、制作对于来自用户装置的证明请求的证书的证明装置,监查所述证书的真假,其特征在于,所述证明装置,具有:接收来自所述用户装置的第一证明请求的顺序证明请求接收单元;遵照预先决定的过程从在所述第一证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算单元;在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配、在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父的分配值,计算可计算的节点的分配值,同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合单元;证书制作单元,其制作包含所述顺序分配数据、以及确定分配有所述顺序分配数据的顺序集合树以及该顺序集合树的叶子的第一顺序集合树确定信息的证书;向所述用户装置发送所述第一证书的证书发送单元;若把分配有所述第一证明请求的所述顺序集合树的叶子定义为登录点、把关于为从该登录点计算所述顺序集合树的根值所需要的节点的信息定义为所述第一证书的补充信息、把该补充信息中、在给所述顺序集合树分配所述第一证明请求的时刻可取得的补充信息定义为即时补充信息,则给所述顺序集合树分配多个监查请求后,使用和所述第一证书相同的制作方法,制作多个监查用证书,同时从所述顺序集合树取得在给所述顺序集合树分配所述多个监查请求的时刻的监查用的所述即时补充信息,并包含在各监查用证书中的监查用证书制作单元;向所述监查装置发送所述多个监查用证书的监查用证书发送单元;在发送所述第一证书后,接收来自所述用户装置的所述第一证书的补充信息的请求的补充信息请求接收单元;从所述顺序集合树取得确定分配有所述补充信息的请求的所述顺序集合树以及所述顺序集合树的叶子的第二顺序集合树确定信息、以及在分配所述补充信息的请求的时刻可取得的补充信息,作为延迟补充信息的延迟补充信息制作单元;和向所述用户装置发送所述第一证书的所述延迟补充信息的延迟补充信息发送单元;所述事件顺序证明监查装置具有:从所述证明装置接收所述多个监查用证书的监查用证书接收单元;从所述用户装置接收对于包含所述第一证书以及所述延迟补充信息的所述第一证书的监查请求的监查请求接收单元;从所述多个监查用证书中,根据对于所述第一证书的监查请求的第一以及第二顺序集合树确定信息,选择通过所述第一证书生成的时间顺序之后、而且通过所述延迟补充信息生成的时间顺序之前的监查用证书的第一监查用证书选择单元;对于所述顺序集合树的特定的节点,根据由所述第一监查用证书选择单元选择的监查用证书中包含的该节点的分配值、和从对于所述第一证书的监查请求计算的该节点的分配值是否一致的验证,监查所述第一证书的正当性,证明所述第一证书的证明请求的接收时刻和通过所述第一监查用证书选择单元选择的监查用证书的监查请求的接收时刻的前后关系的第一证书监查单元;和向所述用户装置发送所述第一证书的监查结果的监查结果发送单元。
本发明的第五方面,是提供使所述证明装置执行上述事件顺序证明方法的各步骤的事件顺序证明程序.
本发明的第六方面,是提供使所述监查装置执行上述事件顺序证明监查方法的各步骤的事件顺序证明监查程序。
本发明的第七方面,是一种事件顺序证明验证程序,其用于通过通信网络相互连接在生成规定的数字信息的事件的时间序列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求的至少一个用户装置、制作对于来自用户装置的证明请求的证书的证明装置、监查所述证书的真假的监查装置的事件顺序证明验证***中的所述用户装置,其特征在于,所述证明装置具有:接收来自所述用户装置的第一证明请求的顺序证明请求接收单元;遵照预先决定的过程从在所述第一证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算单元;在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配、在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父的分配值计算可计算的节点的分配值,同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合单元;证书制作单元,其制作包含所述顺序分配数据、以及确定分配有所述顺序分配数据的顺序集合树以及该顺序集合树的叶子的第一顺序集合树确定信息的第一证书;向所述用户装置发送所述第一证书的证书发送单元;若把分配有所述第一证明请求的所述顺序集合树的叶子定义为登录点、把关于为从该登录点计算所述顺序集合树的根值所需要的节点的信息定义为所述第一证书的补充信息、把该补充信息中在给所述顺序集合树分配所述第一证明请求的时刻可取得的补充信息定义为即时补充信息,则给所述顺序集合树分配多个监查请求,使用和所述第一证书相同的制作方法制作多个监查用证书,同时从所述顺序集合树取得在给所述顺序集合树分配所述多个监查请求的时刻的各个的监查用的即时补充信息,并包含在所述多个监查用证书中的监查用证书制作单元;向所述监查装置发送所述多个监查用证书的监查用证书发送单元;在发送所述第一证书后,接收来自所述用户装置的所述第一证书的补充信息的请求的补充信息请求接收单元;从所述顺序集合树取得确定分配有所述补充信息的请求的所述顺序集合树以及所述顺序集合树的叶子的第二顺序集合树确定信息、以及在分配所述补充信息的请求的时刻可取得的补充信息,作为延迟补充信息的延迟补充信息制作单元;和向所述用户装置发送所述第一证书的所述延迟补充信息的延迟补充信息发送单元;所述监查装置,具有:从所述证明装置接收所述多个监查用证书的监查用证书接收单元;从所述用户装置接收对于包含所述第一证书以及所述延迟补充信息的所述第一证书的监查请求的监查请求接收单元;从所述多个监查用证书中,根据对于所述第一证书的监查请求的第一以及第二顺序集合树确定信息,选择通过所述第一证书生成的时间顺序之后、而且通过所述延迟补充信息生成的时间顺序之前的监查用证书的第一监查用证书选择单元;对于所述顺序集合树的特定的节点,根据由所述第一监查用证书选择单元选择的监查用证书中包含的该节点的分配值、和从对于所述第一证书的监查请求计算的该节点的分配值是否一致的验证,监查所述第一证书的正当性,证明所述第一证书的证明请求的接收时刻和通过所述第一监查用证书选择单元选择的监查用证书的监查请求的接收时刻的前后关系的第一证书监查单元;和向所述用户装置发送所述第一证书的监查结果的监查结果发送单元;使所述用户装置执行向所述证明装置发送所述第一证明请求的顺序证明请求发送步骤、从所述证明装置接收所述第一证书的证书接收步骤、向所述证明装置发送所述第一证书的所述补充信息的请求的补充信息请求发送步骤、从所述证明装置接收所述第一证书的所述补充信息的补充信息接收步骤、向所述监查装置发送所述监查请求的监查请求发送步骤、和接收所述第一证书的监查结果的监查结果接收步骤.
本发明的第八方面,是一种事件顺序证明验证程序,其使通过通信网络相互连接在生成规定的数字信息的事件的时间序列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求的第一以及第二用户装置、对于来自各用户装置的多个证明请求制作多个证书的事件顺序证明装置的计算机验证证书的正当性,其特征在于,所述事件顺序证明装置具有:从所述第一以及第二用户装置接收多个证明请求的顺序证明请求接收单元:遵照预先决定的过程从在各证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算单元;在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配、在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父的分配值,计算可计算的节点的分配值、同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合单元;存储关于由所述顺序证明请求集合单元生成的顺序集合树的信息的顺序集合树存储单元;把分配有从各证明请求制作的顺序分配数据的所述顺序集合树的叶子定义为登录点、把从该登录点计算所述顺序集合树的根值所需要的节点有关的信息定义为所述登录点的补充信息、把该补充信息中在给所述顺序集合树分配所述顺序分配数据的时刻可取得的补充信息定义为即时补充信息,把在给所述顺序集合树分配所述顺序分配数据的时刻以后可取得的补充信息定义为延迟补充信息,把在结束位于叶子a1右边的叶子a2的分配处理结束的时刻决定的所述叶子a1的延迟补充信息称为所述叶子a1的在所述叶子a2的延迟补充信息,进而把分配有从最新的所述请求制作好的顺序分配数据的所述顺序集合树的叶子作为新登录点时,对于每一用户装置存储关于所述多个证明请求的登录点的信息的登录点存储单元;从由各存储单元存储的信息,通过合并该新登录点的顺序分配数据、确定分配有该顺序分配数据的所述顺序集合树以及该顺序集合树的叶子的顺序集合树确定信息、所述新登录点的即时补充信息、和在各用户装置的过去所有的登录点的新登录点中的补充信息,制作对于所述新登录点的证书的证书制作单元;和向所述用户装置发送所述制作好的多个证书的证书发送单元;各用户装置具有:向所述事件顺序证明装置发送多个证明请求的证明请求发送单元;从所述事件顺序证明装置接收对于所述多个证明请求的所述多个证书的证书接收单元;存储所述接收的多个证书的证书存储单元;向验证所述接收存储的多个证书中、验证对象的证书的计算机发送的验证请求发送单元;和从所述计算机接收对于所述验证对象的证书的验证结果的验证结果接收单元;使所述计算机执行下述步骤:是一个一个地从所述第一以及第二用户装置接收验证对象的证书,或者是从所述第一所述用户装置接收两个验证对象的证书的证书接收步骤;根据所述接收的两个证书的顺序集合树确定信息,如把在所述两个证书中、被判断为发行顺序在时间上在前的证书作为第一证书、被判断为在后的证书作为第二证书,则对于发送所述第一证书的用户装置发送所述第二证书的顺序集合树确定信息的顺序集合树确定信息发送步骤;从发送所述第一证书的用户装置接收所述第一证书的、在所述第二证书发行后的登录点中的延迟补充信息的延迟补充信息接收步骤;对于所述顺序集合树的特定的节点,根据在所述第二证书中包含的节点的分配值、与从所述第一证书以及延迟补充信息计算的节点的分配值是否一致的验证,证明各证书的正当性以及所述第一证书的登录点时间上在所述第二证书的登录点之前的验证步骤;和向所述第一以及第二用户装置、或者向所述第一或者第二用户装置发送验证结果的验证结果发送步骤.
本发明的第九方面,是一种事件顺序证明验证程序,其使通过通信网络相互连接在生成规定的数字信息的事件的时间序列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求的第一以及第二用户装置、和对应来自各用户装置的多个证明请求制作多个证书的事件顺序证明装置的计算机验证证书的正当性,其特征在于,所述事件顺序证明装置具有:从所述第一以及第二用户装置接收多个证明请求的顺序证明请求接收单元:遵照预先决定的过程从在各证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算单元;在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配、在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向函数的结果值作为所述父的分配值,计算可计算的节点的分配值、同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合单元;存储关于由所述顺序证明请求集合单元生成的顺序集合树的信息的顺序集合树存储单元;把分配有从各证明请求制作的顺序分配数据的所述顺序集合树的叶子定义为登录点、把从该登录点计算所述顺序集合树的根值所需要的其他的节点的信息定义为所述登录点的补充信息、把该补充信息中在给所述顺序集合树分配所述顺序分配数据的时刻可取得的补充信息定义为即时补充信息、把在给所述顺序集合树分配所述顺序分配数据的时刻以后可取得的补充信息作为延迟补充信息定义,把在结束位于叶子a1右边的叶子a2的分配处理结束的时刻决定的所述叶子a1的延迟补充信息称为所述叶子a1的在所述叶子a2的延迟补充信息,进而把分配有从最新的所述请求制作好的顺序分配数据的所述顺序集合树的叶子作为新登录点时,则对于每一用户装置存储关于所述紧跟前的登录点的信息的登录点存储单元;从由各存储单元存储的信息,通过合并该新登录点的顺序分配数据、确定分配有该顺序分配数据的顺序集合树以及该顺序集合树的叶子的顺序集合树确定信息、新登录点的即时补充信息、和在所述用户装置的所述紧跟前的登录点的所述新登录点中的补充信息,制作对于所述新登录点的证书的证书制作单元;和向所述用户装置发送所述制作好的证明应答的证明应答发送单元;假定把各用户装置的各登录点中、给所述顺序集合树的最右边分配的登录点作为临时终端点,在该临时终端点的分配处理结束的时刻,计算规定的登录点可取得的补充信息全部这一事实,定义为对于所述规定的登录点的证书的增量完全化,各用户装置具有:向所述事件顺序证明装置发送多个证明请求的证明请求发送单元;从所述事件顺序证明装置接收对于所述多个证明请求的所述多个证书的证书接收单元;存储所述接收的多个证书的证书存储单元;在所述接收存储的多个证书中,对于验证对象的证书进行所述增量完全化的处理的增量完全化单元;向计算机发送验证所述增量完全化了的证书的验证请求的验证请求发送单元;和从所述计算机接收对于所述验证对象的所述证书的验证结果的验证结果接收单元;使所述计算机执行下述步骤:一个一个地从所述第一以及第二用户装置接收验证对象的证书或者从所述第一用户装置接收两个验证对象的证书的证书接收步骤;如根据所述接收的两个证书的顺序集合树确定信息,把所述两个证书中,被判断为发行顺序在时间上在前的证书作为第一证书、被判断为在后的证书作为第二证书,则对于发送所述第一证书的用户装置发送所述第二证书的顺序集合树确定信息的顺序集合树确定信息发送步骤;从发送所述第一证书的用户装置接收所述第一证书的、在所述第二证书发行后的登录点中的延迟补充信息的延迟补充信息接收步骤;对于所述顺序集合树的特定的节点,根据在所述第二证书中包含的节点的分配值、与从所述第一证书以及延迟补充信息计算的节点的分配值是否一致的验证,证明各证书的正当性以及所述第一证书的登录点时间上在所述第二证书的登录点之前的验证步骤;和向所述第一以及第二用户装置、或者向所述第一或者第二用户装置发送验证结果的验证结果发送步骤.
本发明的第十方面是提供一种事件时刻验证程序,它是验证执行上述事件顺序证明验证程序的用户装置给所述证明请求赋予的时刻的计算机可读取的。
附图说明
图1是说明事件顺序证明***的概念的图。
图2是说明使用线性链接的事件顺序证明***的概念的图。
图3是本发明的第一实施形态的事件顺序证明***的***结构图。
图4是本发明的第一实施形态的事件顺序证明***的别的***结构图。
图5是本发明中使用的顺序集合树的结构的说明图。
图6是本发明中的事件顺序受理证书的结构的说明图。
图7是本发明中使用的顺序集合树的认证路径的说明图。
图8是说明本发明的第一实施形态的事件顺序证明***的事件顺序证明方法的顺序图。
图9是说明本发明的第一实施形态的事件顺序证明***的事件顺序证明验证方法的顺序图。
图10是说明本发明的第一实施形态的事件顺序证明***的事件顺序证明验证方法的顺序图。
图11是说明本发明的第一实施形态的事件顺序证明***中的用户点和监查点的关系的图。
图12是说明本发明的第一实施形态的事件顺序证明***的事件顺序证明验证结果的图。
图13是本发明的第二实施形态的事件顺序证明***的***结构图。
图14是说明本发明的第二实施形态的事件顺序证明***中的用户点和监查点的关系的图。
图15是说明本发明的第二实施形态的事件顺序证明***的事件顺序证明验证方法的顺序图。
图16是说明本发明的第二实施形态的事件顺序证明***的事件顺序证明验证方法的顺序图。
图17是说明判定本发明的第二实施形态的事件顺序证明***的两个用户间的顺序的操作的流程图。
图18是说明基于本发明的第二实施形态的事件顺序证明***的复合完善化的根值验证的操作的流程图.
图19是说明本发明的第二实施形态的事件顺序证明***的补充数据完善化的图。
图20是说明本发明的第二实施形态的事件顺序证明***的补充数据完善化的图。
图21是本发明的第三实施形态的事件顺序证明***的***结构图。
图22是本发明的第三实施形态的事件顺序证明***的事件顺序证明方法的事件顺序证明请求步骤的顺序图。
图23是本发明的第三实施形态的事件顺序证明***的事件顺序证明方法的事件顺序证明请求步骤的顺序图。
图24是本发明的第三实施形态的事件顺序证明***的事件顺序证明方法的监查用受理证书接收步骤的顺序图。
图25是本发明的第三实施形态的事件顺序证明***的事件顺序证明验证方法的区间时刻证书步骤的顺序图。
图26是说明将深度的不同压在1以内、不产生虚节点的动态顺序集合树的构成方法的图。
图27是说明以增量方式构成顺序集合树的方法的算法的图。
图28是说明以增量方式构成顺序集合树的方法的算法的图。
图29是说明以增量方式构成顺序集合树的方法的图。
图30是说明在以增量方式构成顺序集合树的方法中给各节点分配值的定时的图。
图31是说明认证点的分配值是被包含在监查点的受理证书内补充数据内的图。
图32是说明比认证点的级低的认证路径节点是被包含在延迟补充数据或者受理证书内补充数据内的图。
图33是说明比认证点的级低的认证路径节点是被包含在延迟补充数据或者受理证书内补充数据内的图。
图34是本发明的第四实施形态的事件顺序证明***的***结构图。
图35是说明在本发明的第四实施形态的事件顺序证明***中使用的顺序集合树的结构的图。
图36是表示本发明的第四实施形态的事件顺序证明***的事件顺序受理证书的结构的图。
图37是说明本发明的第四实施形态的事件顺序证明***中各登录点及其补充数据的图。
图38是说明本发明的第四实施形态的事件顺序证明***的用户装置中的事件顺序的判定方法的图。
图39是说明本发明的第四实施形态的事件顺序证明***的事件顺序证明方法的顺序图。
图40是说明本发明的第四实施形态的事件顺序证明***的事件顺序证明验证方法的操作的顺序图。
图41是说明本发明的第四实施形态的事件顺序证明***的事件顺序证明验证方法的操作的顺序图。
图42是本发明的第五实施形态的事件顺序证明***的***结构图。
图43是表示本发明的第五实施形态的事件顺序证明***的事件顺序受理证书的结构的图。
图44是表示本发明的第五实施形态的事件顺序证明***中的完全化波及处理的图。
图45是表示在本发明的第五实施形态的事件顺序证明***中通过使用完全化波及处理能够从链补充方式的证明应答计算序列补充方式的证明应答的图。
图46是说明本发明的第五实施形态的事件顺序证明***中第一链补充方式的图。
图47是说明在本发明的第五实施形态的事件顺序证明***中基于第一链补充方式的证明应答制作的操作的流程图。
图48是说明本发明的第五实施形态的事件顺序证明***中第二链补充方式的图。
图49是说明在本发明的第五实施形态的事件顺序证明***中基于第二链补充方式的证明应答制作的操作的流程图。
图50是本发明的第五实施形态的事件顺序证明***的第二链补充方式中的数据结构的一例。
图51是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的即时补充数据以及延迟补充数据的计算过程的一例的流程图。
图52是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的节点值计算过程的一例的流程图。
图53是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的延迟数据设定过程的一例的流程图。
图54是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的顺序集合树的切换处理的一例的流程图。
图55是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的顺序集合树的终止、切换处理的子程序的一例的流程图。
图56是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的顺序集合树的切换处理的子程序的一例的流程图。
图57是具体说明图55的处理的图。
图58是说明顺序集合森林和顺序集合小树的图。
图59是说明顺序集合森林和现时刻的顺序集合树的图。
图60是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善个别化的操作的流程图。
图61是具体说明图60的处理的图。
图62是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善个别化的顺序集合小树决定的计算过程的一例的流程图。
图63是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善个别化的取得参照点决定的计算过程的一例的流程图。
图64是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善个别化的链补充数据储存用数据结构的一例。
图65是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善个别化的算法的图。
图66是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善个别化的认证路径节点的分配值的计算过程的一例的流程图。
图67是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善个别化的认证路径节点的个分配值的计算过程的一例的流程图。
图68是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量汇总个别化的过程的一例的流程图。
图69是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量汇总个别化的根据的图。
图70是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量汇总个别化的根据的图。
图71是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善化(一部分纳入到存储器,以多级执行的方式)的图。
图72是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善化(一部分纳入到存储器,以多级执行的方式)的图。
图73是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善化(一部分纳入到存储器,以多级执行的方式)的图。
图74是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善化(一部分纳入到存储器,以多级执行的方式)的图。
图75是说明本发明的第五实施形态的事件顺序证明***的链补充方式中的增量完善化(一部分纳入到存储器,以多级执行的方式)的图。
图76是表示使用完善认证路径数据的顺序集合树的根值的计算方法的流程图。
图77是说明作为某集合间隔的顺序集合树的一个叶子,在采用先前的集合间隔的顺序集合树的根值的场合的顺序集合树的图。
图78是说明作为某集合间隔的顺序集合树的一个叶子,在采用先前的集合间隔的顺序集合树的根值的场合的顺序集合树的图。
图79是说明作为某集合间隔的顺序集合树的一个叶子,在采用先前的集合间隔的顺序集合树的根值的场合的基于完全认证路径数据的顺序集合树的根值的计算方法的图。
图80是说明认证点的分配值是被包含在监查点的受理证书内补充数据中的图。
图81是说明认证点的分配值是被包含在监查点的受理证书内补充数据中的图。
图82是说明比认证点的级低的认证路径节点是被包含在延迟补充数据或者受理证书内补充数据中的图。
图83是说明比认证点的级低的认证路径节点是被包含在延迟补充数据或者受理证书内补充数据中的图.
图84是说明比认证点的级低的认证路径节点是被包含在延迟补充数据或者受理证书内补充数据中的图。
图85是说明比认证点的级低的认证路径节点是被包含在延迟补充数据或者受理证书内补充数据中的图。
具体实施方式
下面使用附图说明本发明的实施形态。
<第一实施形态>
(1-1.***结构)
图3是本发明的第一实施形态的事件顺序证明***100的***结构图。事件顺序证明***100具有:事件顺序证明装置(下面称证明装置)1、多个事件顺序证明用户装置(下面称用户装置)2i(i=a,b,…,n)、进行证明装置1发行的事件顺序受理证书(下面称受理证书)的监查的事件顺序证明监查装置(下面称监查装置)3、以及通过相互连接以上各装置的、例如因特网、电话线路网等构成的计算机网络4,证明装置1应来自用户装置2i的事件顺序证明请求(下面称证明请求),发行受理证书,向用户装置2i回送,同时在受理证书中产生疑义的场合,用户装置2i能够根据证明装置2发表的数据或者由监查装置得到的监查结果验证受理证书。
此外,事件顺序证明***100的***结构,只要功能相同则不管其形态,可以考虑各种物理结构。例如如图4所示,代替用户装置2i,可以由事件顺序证明用户验证装置(下面称用户验证装置)6i进行受理证书的验证,也可以代替证明装置1由电子信息发表装置5从证明装置1取得、公开发表数据。另外,计算机网络4也可以被置换为邮政等其他的通信设施。下面,以图3的***结构为基础说明结构以及操作。
证明装置1具有:通过计算机网络4和用户装置2i以及监查装置3进行数据收发的收发部11、使用顺序集合树汇总作为来自用户装置2i的证明请求发送的电子数据的事件顺序证明请求集合部12、制作受理证书的事件顺序证明制作部13、制作向监查装置3发送的监查信息的监查信息制作部14、对应来自用户装置2i的补充数据请求取得补充数据的补充数据取得部15、对于连结证明装置1在一定期间发行的多个受理证书的内容的数据进行高强度数字签名的数字签名制作部16、以电子方式发表高强度数字签名的数据的电子信息发表部17、以及存储关于以受理证书为首的事件顺序证明的信息的存储部18。
如上所述,事件顺序证明请求集合部12使用顺序集合树汇总事件顺序证明请求,关于该顺序集合树使用图5说明。图5所示的顺序集合树,是在一定期间(例如一周等证明装置1公开汇总数据的周期,下面称顺序集合期间)内完成的集合树,把从在来自用户装置2i的证明请求中包含的数字数据的全部或者一部分遵照规定的顺序分配数据计算过程生成的数字数据(将其称为顺序分配数据,例如证明请求中包含的数字数据的散列值)随时间顺序给叶子从左分配。
给顺序集合树的各节点(除叶子外)分配的值的计算方法如下.顺序集合树的父的分配值,通过连接左侧的子的分配值H’和右侧的子的分配值H”(比特列和比特列的结合),计算作为使用规定的抗冲突单向散列函数h的结果的散列值求得,将其表示为h(H’||H”).这样,从下级的分配值计算上级的分配值,最终求得最上级(根)的分配值(根值).
下面,如图5所示,说明具有16个叶子的顺序集合树的场合。此外,顺序集合树叶子的数目和高度,在顺序集合期间结束之前不确定。另外,在顺序集合树中,给叶子的值的分配从左顺序进行,对于级比0大的节点(即不是叶子的节点)的值的分配,在其可能时以增量方式进行。因此,对于图5的同一纵线上的多个节点,值的分配在同一处理单位中基本上同时进行。
这里,用(j,i)表示顺序集合树的级j、号码(也称指数)i的节点,用V(j,i)表示节点(j,i)的分配值,说明图5所示的具体例。
现在,在把顺序分配数据给节点(0,5)分配时、即给顺序集合树分配的散列值是V(0,5)时,为从该散列值V(0,5)求根值(=(4,0)),可以从左把V(0,4)连接到V(0,5),计算散列值h1’,从右侧把V(1,3)连接到该散列值h1’,计算散列值h2’,从左侧把V(2,0)连接到该散列值h2’,计算散列值h3’,进而从右侧把V(3,1)连接到该散列值h3’,计算散列值(=(4,0))。在能够通过这样的步骤从V(0,5)和补充它的数据(这里是V(0,4)、V(1,3)、V(2,0)、V(3,1))计算根值时,称V(0,5)通过散列函数h链接根值。另外,顺序集合树中的V(0,5)的补充数据(下面称顺序集合补充数据)成为[(V(0,4),L)、(V(1,3),R)、(V(2,0),L)、(V(3,1),R)]。这里,L以及R分别表示连接两个数字数据时是从左连接以及从右连接。
事件顺序证明制作部13制作图6所示那样的受理证书EOC(y),向用户装置2i发送。受理证书EOC(y),被构成为包含:从用户发送的数字数据y、能够通过上述顺序分配数据计算过程从数字数据y计算的顺序分配数据z、能够唯一确定分配有顺序分配数据z的顺序集合树的顺序集合树号码、能够唯一确定分配有顺序分配数据z的顺序集合树叶子的顺序集合树叶子号码、以及在该时刻能够取得的顺序集合补充数据的一部分(将其称为即时补充数据)HK。也可以省略其中的即时补充数据HK。
另外,在事件受理证书EOC(y),也可以使用证明装置1预先准备的公开密钥加密方式密钥对中的秘密密钥(用于签名的秘密密钥)附以电子签名发送。在这种场合,使用户装置2i能够使用公开密钥加密基础设施等访问该公开密钥加密方式键对中的公开密钥。
此外,把在相应受理证书EOC(y)发行后能够取得的顺序集合补充数据称为延迟补充数据。亦即在制作受理证书EOC(y)的阶段,仅把即时补充数据向用户装置2i发送,延迟补充数据,在相应受理证书EOC(y)发行后被请求的场合向用户装置2i发送。例如,在图5中,对于节点(0,5),节点分配值V(2,0)、节点分配值V(0,4)是即时补充数据,而节点分配值V(1,3)、节点分配值V(3,1)是在节点(0,15)被分配的时刻以后可取得的延迟补充数据。下面,对于顺序集合树叶子号码i,有时也把V(0,i)简记为V(i)。
补充数据取得部15,在从用户装置2i有上述延迟补充数据的请求时,向用户装置2i回送关于该时刻的信息(分配该请求的顺序集合树号码,顺序集合树叶子号码)、以及在该时刻确定的顺序集合补充数据(位置信息,分配值)的全部。
这里,参照图7,详细说明顺序集合补充数据的内容。
对于顺序集合树的一个叶子t,位于t右面的再一个叶子t’中的补充数据CToken(t,t’)如下定义。
把从叶子t到顺序集合树的根的路径称为t的根路径,把由属于t的根路径的根以外的节点的兄弟节点组成的节点的一行称为t的认证路径(认证路径的详细的定义在后面给出).将认证路径的要素内、在确定位于t右面的叶子t1的分配值时确定分配值的要素的列作为authPathD(t,t1),将其称为在t1的对t的认证路径.把给该列附加了分配值的信息的结果作为authPathDV(t,t1),将其称为在t1的对t的赋予值的认证路径.
从上述可知,authPathDV(t,t’)包含在受理证书EOC(y)中不包含的信息,构成补充数据CToken(t,t’)。
此外,即使t’是在t所属的顺序集合树SBT的生成期间(顺序集合期间)结束后生成的顺序集合树SBT’的叶子时,在authPathDV(t,t’)也仅包含关于顺序集合树SBT的信息。此时,CToken(t,t’),通过和在t时刻接收的事件受理证书EOC(y)组合,包含用于能计算在相应顺序集合期间中的顺序集合树的根值的充分的信息。
例如,在图7中,CToken(t,t4’)成为由a1的位置信息(0,3)及其分配值V(a1)的组((0,3),V(a1))、以及a2的位置信息(2,1)及其分配值V(a2)的组((2,1),V(a2))组成的列[((0,3),V(a1)),((2,1),V(a2))]。
下面,把通过和在受理证书中包含的顺序集合树的分配值的组合能够计算上述顺序集合树的根值那样的补充数据,定义为该受理证书的完全补充数据,把通过和上述分配值以及受理证书中包含的即时补充数据的组合能够计算上述顺序集合树的根值那样的补充数据,称为完全延迟补充数据。
监查信息制作部14,从顺序集合树取得监查信息,向监查装置3发送,更详细说,所谓监查信息,是在顺序集合树叶子中设置的监查点中由如在下面定义那样生成的监查用事件顺序受理证书(下面称监查用受理证书)构成。这里,所谓监查点,指分配有从监查装置3来的监查用事件顺序证明请求(下面称监查用证明请求)的顺序集合二分树的叶子。
此外,在图5中,仅设置一个监查点,当然,遵照规定的算法可以设置多个。另外,为对于对于证明请求的受理证书进行后述的监查,只要给等于对应该证明请求的叶子(在图3的具体例子中为节点(0,5))或者在其右侧的叶子(时间上在后)分配了,设置在任何地方都可以。
监查用受理证书的形式和向用户装置2i回送的受理证书相同。此外,成为用于计算顺序分配数据的基础的数字数据,可以作为监查用证明请求从监查装置3向证明装置1发送,也可以在该证明装置1中对于该监查装置3遵照预定的任何过程生成。另外,作为这样的过程,也可以采用遵照以前决定的任一过程制作成为监查用受理证书中的事件顺序证明的对象的数字文档,把作为对该数字文档使用以前决定的散列函数得到的结果的散列值作为成为用于计算顺序分配数据的基础的数字数据的方式。
用户装置2i,具有:通过计算机网络4和证明装置1以及监查装置3收发数据的收发部21、进行包含规定的数字数据的证明请求的事件顺序证明请求部22、请求对于在请求时刻可取得的受理证书的补充数据的补充数据请求部23、验证受理证书的事件顺序证明验证部24、以及存储关于以受理证书为首的事件顺序证明的信息的存储部25。
这里,事件顺序证明验证部24对于受理证书具有以下的验证功能。
首先,具有在受理证书中包含数字签名的场合进行对于该数字签名的数字签名认证的第零验证功能。
另外,具有验证受理证书中包含的顺序分配数据通过散列函数链接在通过由证明装置1赋予高强度电子签名等保证真实性发表的信息中这一事实的第一验证功能.
进而,如下所述,具有即使来自证明装置1的发表信息在公开前、通过使用监查装置3也能验证受理证书的正当性的第二验证功能。
监查装置3,具有:通过计算机网络和证明装置1以及用户装置2i进行数据收发的收发部31、在从用户装置2i接收某受理证书的监查请求时使用从用户装置2i发送的监查请求信息以及自己的监查信息进行受理证书的验证、向用户装置2i回送该结果的事件顺序证明监查部32、以及存储以监查用受理证书为主的监查信息的存储部33。
这里,使用图5说明事件顺序证明监查部32的功能。在图5中,因为(0,10)成为监查点,所以在该时刻监查接收的监查信息如上述是V(3,0)以及V(1,4)。另一方面,用户装置2i,作为监查请求信息,发送V(0,5)以及顺序集合补充数据的V(0,4)、V(1,3)以及V(2,0)。这点,因为在用户装置2i请求验证的时刻(即在作为比发行受理证书的时刻(0,5)后的监查点(0,10)的时刻以后)也可以从证明装置1取得不在即时补充数据中包含的V(1,3),所以用户装置2i从证明装置1取得V(1,3)作为延迟补充数据,并包含在监查请求信息中。于是,事件顺序证明监查部32验证自己具有的监查信息V(3,0)与从用户装置2i发送的监查请求信息计算的V(3,0)是否一致。
此外,以后把分配有从用户装置2i发送的证明请求制作的顺序分配数据的顺序集合树叶子称为用户点,把分配有从监查装置3发送的监查用证明请求制作的顺序分配数据的顺序集合树叶子称为监查点。
这里,把作为比较验证的对象的顺序集合树的节点(在图5中为(3,0))以后称为认证点。此外,一般,在某用户点的号码比监查点的号码小的场合,认证点的标号(分配值)被包含在监查信息中,另外,在位于监查点的事件顺序证明处理结束的时刻和以后,因为在能够从用户装置2i能够接收的延迟补充数据计算的标号中包含认证点的标号,所以在顺序集合树中,在用户点、监查点、请求延迟补充数据的点,从左按该顺序排列的场合,上述验证,总可实施,关于该理由后述(参照后述的顺序集合树的性质2的项目(3))。
亦即,为通过上述过程用户装置2i依赖监查装置3执行对于某受理证书的第2验证,需要在分配有该受理证书的证明请求的叶子τ和分配有对于该事件受理证书的延迟补充数据请求的叶子τ’之间(也包含τ和τ’)存在监查装置3的监查点。
此外,以上的各装置由至少具有:运算功能以及控制功能的中央处理装置(CPU:Central Processing Unit);由具有存放程序或数据的功能的RAM(Random Access Memory)等组成的主存储装置(存储器);和具有即使硬盘(HD)等的电源断时也能够继续存储数据的二次存储装置的电子装置。其中,证明装置1的事件顺序证明请求集合部12、事件顺序证明制作部13、监查信息制作部14、补充数据取得部15、数字签名制作部16以及电子信息发表部17、用户装置2i的事件顺序证明请求部22、补充数据请求部23以及事件顺序证明验证部24、以及监查装置3的事件顺序证明监查部32的处理,不外是具体表示出通过上述CPU执行的运算控制功能而已。另外,证明装置1的存储部18、用户装置2i的存储部25以及监查装置3的存储部33,具有上述主存储装置或者二次存储装置的功能。
另外,执行本实施形态的各种处理的程序,在上述主存储装置或者二次存储装置中存储。该程序,可以在硬盘、软盘、CD-ROM、MO、DVD-ROM等计算机可读的存储介质中记录,也可能通过通信网络配发。
(1-2.***操作)
下面使用图8到图10说明在具有以上结构的事件顺序证明***100中的事件顺序证明方法、以及事件顺序证明验证方法。这里,图8是说明在一个顺序集合期间中证明装置1制作受理证书以及监查用受理证书的操作的顺序图,图9是说明用户装置2i对于受理证书进行第一验证的操作的流程图,图10是说明用户装置2i对于受理证书进行第二验证的操作的顺序图。
首先,参照图8说明事件顺序证明方法。
用户装置2i对于证明装置1发送包含数字数据y的证明请求后,证明装置1通过收发部11接收包含该数字数据y的证明请求(步骤S10,S20)。
接着,事件顺序证明请求集合部12把数字数据y作为输入的一部分或者全部计算顺序分配数据z,把该顺序分配数据z给顺序集合树叶子分配,以增量方式构成顺序集合树,同时,事件顺序证明制作部13制作受理证书EOC(y),通过收发部11向用户装置2i发送受理证书EOC(y)(步骤S30,S40,S50)。
由此,用户装置2i能够取得受理证书EOC(y)(步骤S60)。此外,在受理证书EOC(y)中,可以包含在该时刻能够取得的即时补充数据,但是不包含延迟补充数据。
同样,监查装置3发送监查用证明请求后,证明装置1通过收发部11接收监查用证明请求步骤S70,S80)。
接着,事件顺序证明请求集合部12,给顺序集合树叶子分配从监查用证明请求中计算的监查用顺序分配数据,以增量方式构成顺序集合树,同时,监查信息制作部14制作监查用受理证书,通过收发部11项监查装置3发送监查用受理证书(步骤S90,S100,S110)。
由此,监查装置3能够取得监查用受理证书(步骤S120)。
接着,在用户装置2i向证明装置1发送对于取得的受理证明的延迟补充数据请求后,证明装置1通过收发部11接收该延迟补充数据请求(步骤S130,S140)。
接着,证明装置1的补充数据取得部15,取得对于在该时刻可取得的上述受理证书的补充数据,作为延迟补充数据通过收发部11向用户装置2i发送(步骤S150,S160)。
由此,用户装置2i能够取得监查必要的延迟补充数据(步骤S170)。
然后,在用于顺序集合的一定期间(顺序集合期间)中,重复上述证明装置1的操作,在顺序集合期间结束后,计算顺序集合树的根值,电子信息发表部17以电子方式发表该根值(步骤S180,S190,S200)。此时,为保证该信息的真实性,也可以使用高强度数字签名制作部16公开附有高强度的数字签名。
此外,在图8所示的事件顺序证明方法中,从监查装置3一方向证明装置1发送监查信息请求,与此对应证明装置1向监查装置3发送监查信息,但是与此不同,也可以由证明装置1自动地向监查装置3发送监查信息。
下面参照图9,说明以电子方式发表的发表信息的事件顺序证明验证方法。它相当于用户装置2i的第一验证功能。
首先,用户装置2i,从自己向证明装置1作为证明请求发送的数字数据y、接收的受理证书EOC(y)以及在延迟补充数据中包含的顺序集合补充数据(在该时刻可以取得所有的顺序集合补充数据),计算顺序集合树的根值Rhcal(步骤S310)。
接着,取得附有高强度的数字签名、以电子方式发表的同一顺序集合期间的根值RH,验证该根值RH与计算的根值Rhcal是否一致(步骤S320,S330)。
在以上的验证中,如验证成功,则可以确认受理证书未被篡改(步骤S340)。另一方面,如验证失败,则可以确认受理证书被篡改(步骤S350)。由此,通过赋予高强度的数字签名的方法在保证真实性的同时以电子方式发表后,使用发表的信息,能够确实验证:证明装置1发行的受理证书,在该顺序集合期间,对于在受理证书中包含的原来的数字数据,在以通过在受理证书中包含的顺序集合树叶子号码识别的顺序中发行了。
下面,参照图10,说明使用监查装置3的事件顺序证明验证方法。它相当于用户装置2i的第二验证功能。
用户装置2i在监查请求前向证明装置1请求成为验证对象的受理证书的延迟补充数据(步骤S410)。在该请求由证明装置1通过收发部11接收后,补充数据取得部15,在受理证书中包含即时补充数据的场合,从在该时刻可取得的全部延迟补充数据取得除即时补充数据以外的数据组成的延迟补充数据;在受理证书中不含即时补充数据的场合,取得在该时刻可取得的全部延迟补充数据,通过收发部11向用户装置2i发送(步骤S420,S430,S440)。由此,因为用户装置2i取得补充数据,所以事件顺序证明验证部24向监查装置3发送在这上面加上已经接收的受理证书的监查请求信息(步骤S450,S460)。
接着,在监查装置3通过收发部11接收监查请求信息后,事件顺序证明监查部32,在分配有自己已经接收的监查用受理证书的顺序集合树的叶子中,计算位于在分配有在已接收的监查请求信息中包含的受理证书的顺序集合树叶子τ和其延迟补充信息中包含的叶子τ’之间的监查点α(步骤S470,S480)。接着,从监查请求信息通过α计算τ的认证点,计算该认证点的分配值Acal(步骤S490)。另一方面,事件顺序证明监查部32,作为监查信息从存储部33取得已经接收的该认证点的分配值A。验证该认证点的分配值A与通过计算求得的认证点的分配值Acal是否一致(步骤S500,S510)。
在以上的认证中,如验证成功,则可以确认受理证书未被篡改(步骤S520)。另一方面,如验证失败,则可以确认受理证书已被篡改(步骤S530)。然后,事件顺序证明监查部32通过收发部11向用户装置2i发送该监查结果,用户装置2i接收该监查结果(步骤S540,S550)。
由此,即使在电子方式发表机构发表前,用户装置2i也能够确实验证:证明装置1发行的受理证书,在相应顺序集合期间,对于在受理证书中包含的原数字数据,在以受理证书中包含的顺序集合树叶子号码可识别的顺序中被发行了。此外,也可以在上述监察结果中包含监察点α的识别符。在这一场合,用户装置2i,能够确实得到:与请求上述监察的受理证书对应的证明请求的登录比与监察点α对应的监察用证明请求的登录在前的保证。
此外,在步骤S540发送监察结果时,监查装置3,也可以对于包含接收的补充数据的部分,使用证明监查装置3持有的签名用秘密密钥赋予数字签名,构成包含该数字签名的验证结果,向用户装置2i发送。由此,在信任通过监查装置3的数字签名的前提下,即使是不能得到对于顺序集合树的根值的有效的数字签名的场合,使用用户装置2i的用户,也能够客观地对第三方证明上述受理证书的事件顺序证明的正当性。
(1-3.事件顺序监察方法)
下面更详细说明使用作为上述第二验证的监查装置3的事件顺序证明验证方法。
此外,以下假定,作为时刻的原点,取事件顺序证明***100的服务开始时刻,作为计量事件的单位决定一个值(例如1秒、1毫秒等)、用离开上述原点以上述的时间单位计量的整数表现时刻。
这里给出用于说明事件顺序证明验证方法的几个预备定义。
在顺序集合树SBT中,用级j和级内的号码i识别一个节点p,节点p的级和号码分别记为level(p)、index(p)。
另外,把用顺序集合树叶子号码i识别的顺序集合树SBT的叶子称为leaf(SBT,i),把接收成为给leaf(SBT,i)分配顺序分配值的基础的证明请求后给该叶子分配的一系列的处理称为对于该叶子的处理回合,表示为round(SBT,i)。在从上下文明确是讨论哪个顺序集合树时,也简记为leaf(i)、round(i)。
在顺序集合树中,给生成的顺序赋予从0开始的识别号码,称其为顺序集合树号码。用N(n)表示第n号顺序集合树叶子的数目。
对于各受理证书,赋予顺序集合树号码n和顺序集合树叶子号码I,可以用这两个号码的组指定发行该受理证书的顺序集合树叶子。把这样的组称为扩张叶子识别符。使用字典式顺序定义两个扩张叶子识别符v1=(n1,i1)、v2=(n2,i2)间的顺序。即,所谓v1<v2,定义为n1<n2或n1=n2且i1<i2。另外,所谓v1≤v2,定义为v1<v2或者v1=v2。在把v=(n,i)作为扩张叶子识别符、有用该识别符识别的集合树叶子时,把该叶子表示为leav(v)=leaf(n,i)。有时把leav(v)简称为叶子v,在leav(v)是监查点(或用户点)时,有时也称为监查点v(或用户点v)。
另外,对于某顺序集合树SBT的叶子leav(SBT,i),把接收成为给该顺序集合树SBT的叶子分配顺序分配值的基础的证明请求的时刻称为与该叶子对应的时刻,将其用time(SBT,i)或者简单地用time(i)表示。同样,对于leav(v),用time(v)表示成为给该叶子分配顺序分配值的基础的证明请求的接收时刻。
为用户装置2i使用监查装置3执行对于某受理证书的第二验证,需要如上述在与该受理证书对应的顺序集合树叶子τ、和与对于该受理证书的延迟补充数据请求对应的顺序集合树叶子τ’(也包含τ和τ’)之间存在监查装置3的监查点α。为此,设T为某正整数,如以下的3个条件成立就足够了。
(1)监查装置3的最初的监察点的时刻比T小。
(2)设把由监查装置3的任意的一个监查点作为α、下一个监察点作为α’,则
time(α’)-time(α)≤T
成立。
(3)设用户装置2i,在扩张叶子识别符τ的顺序集合树叶子处接收受理证书后的某顺序集合树叶子处接收对于该受理证书的延迟补充数据,则
time(α’)-time(α)≥T
成立。
此外,关于这些条件的充分性的理由后述(参照后述的下一集合树的性质3的(1)和(2))。
设在属于图11所示那样某顺序集合树SBT的监查装置3的监查点α中,监查装置3接收监查用受理证书.在监查用受理证书中,包含在α处的即时补充信息.在该即时补充信息中,在顺序集合树SBT的任意的叶子τ处按照下面的意义结合位于α左面的叶子的分配值V(τ).亦即τ的通过α的认证点p2的分配值(V(p2))在上述的即时补充数据中包含,通过从V(τ)出发通过散列函数h链接属于authpath(τ)的几个节点的分配值,这样可以计算该认证点的分配值(关于其成立的理由,参照后述的顺序集合树的性质2的项目(1)).
由此,监查装置3,通过在监查点α接收的监查用受理证书内的即时数据中是否包含上述V(p2),能够验证成为用户在用户点取得的受理证书的基础的请求的发送以及证明装置1的请求接收比监查装置3在监查点α接收的监查用受理证书内的接收在时间上在前这一事实(将其作为验证结果1。参照图12)。
这里,说明证明装置1的可串联性。所谓证明装置的可串联性,定义为:在该证明装置接收处理任意多个顺序证明请求时,具有串联排列该多个请求的顺序,遵照该顺序顺序接收,返回作为对它的处理结果的受理证书,其后成为与进行下一请求的场合相同的结果。
证明装置的可串联性是重要的要求,在本实施形态中,假定具有保证可串联性的单元。作为这样的单元,也可以使用串联性监查装置,它监视证明装置在接收一个顺序证明请求时,仅在发送对该请求的受理证明后接收下一请求。
如果使用该可串联性,则对于用户点和监查点的顺序关系可以得到比验证结果1强的结论。例如,如假定顺序证明装置1的可串联性被保证到监查装置3在监查点α取得的受理证书的接收时,则通过上述验证,可以得出这样的结论,即与用户点τ对应的顺序证明请求的接收比与监查点α对应的监查用顺序证明请求的接收时间上在前(将其作为验证结果2。参照图12)。其原因在于,在串联化了的顺序证明请求的处理中,如果与α对应的监查用顺序证明请求的接收比与τ对应的监查用顺序证明请求的接收在前的话,则与α对应的受理证书EOC(α),就在与τ对应的监查用顺序证明请求EOR(τ)的接收前发送,在EOC(α)中不能包含这样的数据,即EOR(τ)包含的事件值通过散列函数结合的数据。从上可知,到接收监查装置3在监查点α取得的监查用受理证书前,在推认证明装置1的可串联性时,推认与用户点τ对应的顺序证明请求的接收,在时间上是在监查点α对应的监查用顺序证明请求的接收之前。以后,将此称为“用户点的未来侧的边界赋予”。
此外,需要注意,即使保证到接收监查装置3接收在监查点α取得的监查用受理证书前的证明装置1的可串联性,然而如果监查装置3不接收即时补充数据作为受理证明的一部分,则上述事项不成立。其原因在于,在监查装置3接收在监查点α取得的监查用受理证书后,不能排除证明装置改变τ处的分配值的可能性。
因此,通过第一实施形态的事件顺序证明***100,因为从用户装置2i接收证明请求的证明装置1,发行从在该请求中包含的数字数据计算的顺序分配值以及包含分配有上述顺序分配值的顺序集合树的位置信息的受理证书以及补充数据,通过对于补充信息顺序集合树的根值赋予高强度数字签名等手段保证真实性同时以电子方式发表,所以用户装置2i能够从发表数据以及补充数据简单地验证受理证书。另外,即使在以电子方式发表顺序集合树的根值前,因为监查装置3具有关于顺序集合树的监查点的监查信息,所以监查装置3能够接收来自用户装置2i的监查请求,进行受理证书的监查。
该结果,在能够验证受理证书的正当性时,能够证明证明装置1中作为监查对象的受理证书的证明请求接收在时间上在监查中使用的监查用受理证书的证明请求接收之前.
<第二实施形态>
(2-1.***结构)
图13是本发明的第二实施形态的事件顺序证明***200的***结构图。事件顺序证明***200具有:事件顺序证明装置(下面称证明装置)7;多个事件顺序证明用户装置(下面称用户装置)2i(i=a,b,…,n)、进行证明装置7发行的事件顺序受理证书(下面称受理证书)的监查的事件顺序证明监查装置(下面称监查装置)8;以及通过相互连接以上各装置的、例如因特网、电话线路网等构成的计算机网络4;证明装置7对应来自用户装置2i的事件顺序证明请求(下面称证明请求),发行受理证书,向用户装置2i回送,同时在受理证书中产生疑义的场合,用户装置2i能够根据证明装置7发表的数据或者由监查装置8得到的监查结果验证受理证书。
这里,第二实施形态,是和第一实施形态大体同样的***结构,但是,监查装置8在各顺序集合期间结束后,向证明装置7请求(或者根据事前的约定)取得在该顺序集合期间中取得的各监查用受理证书的完全延迟补充数据这点不同。此外,在本实施形态中,说明和第一实施形态不同的结构以及功能,关于其他的结构以及功能,给相同的部分赋予相同的符号,省略说明。
另外,和第一实施形态同样,在第二实施形态中,事件顺序证明***200的***结构,只要功能相同则不问其形态,其物理结构可以考虑各种各样的。例如,代替用户装置2i,也可以由如图4所示的用户验证装置6i进行受理证书的验证,代替证明装置7,也可以由图4所示的电子信息发表装置5从证明装置7取得、进行公开。另外,计算机网络4也可以被置换为邮政等其他的通信设施。
证明装置7具有:通过计算机网络4和用户装置2i以及监查装置8进行数据收发的收发部11;使用顺序集合树汇总作为来自用户装置2i的证明请求发送的电子数据的事件顺序证明请求集合部12;制作受理证书的事件顺序证明制作部13;制作向监查装置8发送的监查信息的监查信息制作部71;对应来自用户装置2i的补充数据请求取得补充数据的补充数据取得部15;对于连结证明装置7在一定期间发行的多个受理证书的内容的数据进行高强度数字签名的数字签名制作部16;以电子方式发表高强度数字签名的数据的电子信息发表部17;以及存储关于以受理证书为主的事件顺序证明的信息的存储部72。
监查信息制作部71,在从顺序集合树取得并制作在各监查点处的监查用受理证书之外,在各顺序集合期间结束后,取得并制作在该顺序集合期间取得的各监查用受理证书的完全延迟补充数据。
监查装置8,具有:通过计算机网络4和证明装置7以及用户装置2i进行数据收发的收发部31;对证明装置7进行个监查用受理证书的完全延迟补充数据的请求的补充数据请求部81;在从用户装置2i接收某受理证书的监查请求时,使用从用户装置2i发送的监查请求信息以及监查信息(在监查用受理证书之外也包含该监查用受理证书的完全延迟补充数据)进行受理证书的验证、向用户装置2i回送该结果的事件顺序证明监查部82;以及存储以监查用受理证书为主的监查信息的存储部83。
事件顺序证明监查部82,在第一实施形态的事件顺序证明监查部32的功能(“用户点的未来侧的边界赋予”)之外,具有能够验证后述的“用户点的过去侧的边界赋予”的功能.这点意味着,在某用户点位于某监查点左(即时间上在前)之外,可以监查某用户点位于某监查点右(即时间上在后).
下面参照图14,说明该“用户点的过去侧的边界赋予”。
此外,下面,把监查装置8在各顺序集合期间结束后取得在该顺序集合期间取得的各监查用受理证书的完全延迟补充数据称为监查装置8执行复合完全补充。
在本实施形态中,监查装置8,因为在顺序集合期间每次结束时,取得对于在该顺序集合期间接收的监查用受理证书的完全延迟补充数据,所以通过组合在监查用受理证书中包含的即时补充数据和该延迟补充数据,监查装置8,取得对于在该顺序集合期间接收的监查用事件受理证明的完全补充数据。
这里,假定用户装置2i和监查装置8满足第一实施形态中叙述的条件(1)~(3)。设τ是用户装置2i的用户点,满足T≤time(τ)。从T≤time(τ)这样的条件,根据上述条件(1),存在在比τ左(即时间上在前)的由监查装置8的监查点。设这样的监查点的一个为α1。作为α1,也可以在满足上述条件的监查点中取位于最右面的。监查根据下面的过程执行。
(1)用户装置2i向监查装置8发送在用户点τ取得的受理证书(顺序集合树叶子号码,即时补充数据)。
(2)监查装置8从用户装置2i取出在发送的受理证书中包含的顺序集合树叶子号码,确定对于该受理证书的顺序集合树叶子τ,从自己取得的监查用受理证书中,选择对应位于比τ左的顺序集合树叶子的那些。从这样的监查用受理证书中,也可以选择对应的顺序集合树叶子位于最右面的那些。把与这样选择的监查用受理证书对应的顺序集合树叶子作为α1。
(3)因为监查装置8执行复合完全补充,所以监查装置8取得与监查点α1对应的监查用受理证书的完全延迟补充数据。与该完全延迟补充数据对应的顺序集合树叶子位于等于τ或其右(时间上在后)。
(4)监查装置8,能够从与监查点α1对应的监查用受理证书和对于它的上述延迟补充数据,计算根据监查点α1的用户点τ的认证点p2的分配值。
(5)因此,监查装置8,通过验证在与从用户装置2i接收的顺序集合树叶子τ对应的受理证书内的即时数据中包含上述计算的根据监查点α1的用户点τ的认证点p2的分配值,能够监查α1位于τ左面。
从该验证结果首先可以说:设与监查点α1对应的监查装置8的监查用证明请求由证明装置7接收的时刻作为t1、与τ对应的用户装置2i的证明请求由证明装置7接收的时刻作为t2、与该请求对应的受理证书从证明装置7发送的时刻作为t2’,则有t1<t2’。
这里,在本实施形态中,也可以保证证明装置7的可串联性,亦即如果假定到t2’的时刻保证证明装置7的可串联性,则进而也可以得出t1<t2的结论。从上述可知,在证明装置7向用户装置2i发送与用户点τ对应的受理证书前推认证明装置7的可串联性时,可以推认与监查点α1对应的监查用证明请求的接收在时间上在用户点τ对应的用户装置2i的证明请求的接收之前。
此外,需要注意:即使保证到t2’时刻的证明装置7的可串联性,然而如果用户装置2i不接收即时补充信息作为受理证明的一部分,则上述结论不成立.其原因在于,在t2’时刻后,不能排除证明装置7改变在监查点α1的分配值的可能性.
此外,以上的各装置,由至少具有运算功能以及控制功能的中央处理装置(CPU:Central Processing Unit)、具有存放程序或数据的功能的RAM(Random Access Memory)等组成的主存储装置(存储器)、和具有硬盘(HD)等即使电源断时也能继续存储的二次存储装置的电子装置组成。其中,证明装置7的监查信息制作部71、监查装置8的补充数据请求部81以及事件顺序证明监查部82的处理,不外是具体表示出上述CPU执行的运算控制功能而已。另外,证明装置7的存储部72以及监查装置8的存储部83具有上述主存储装置或者二次存储装置的功能。
另外,执行本实施形态的各种处理的程序,在上述主存储装置或者二次存储装置中存储。该程序可以在硬盘、软盘、CD-ROM、MO、DVD-ROM等计算机可读的存储介质中记录,也可能通过通信网络配发。
(2-2.***操作)
下面使用图15以及图16说明具有以上结构的事件顺序证明***200中的事件顺序证明方法以及事件顺序证明验证方法。这里,图15是说明在一个顺序集合期间证明装置7制作事件受理证书以及监查用受理证书的操作的顺序图,图16是说明用户装置2i对于事件受理证书进行第二验证的操作的顺序图。
首先说明图15所示的事件顺序证明方法。此外,在本实施形态的事件顺序证明方法中,其操作几乎和第一实施形态相同,图8的步骤S10~S200,和图15的步骤S610~S800相同,新追加了其后的步骤S810~S850。因此,下面仅说明该追加的步骤。
在用于顺序集合的一定期间结束后,证明装置7的监查信息制作部71,对于来自监查装置8的完全延迟补充数据请求,取得在该集合期间内发行的各监查用受理证书的完全延迟补充数据,向监查装置8发送(步骤S810,S820,S830,S840)。
由此,监查装置8,接收各监查用受理证书的完全延迟补充数据(步骤S850)。
此外,在图15所示的事件顺序证明方法中,是从监查装置8一方向证明装置7发送完全延迟补充数据请求,与此对应,证明装置7向监查装置8发送完全延迟补充数据的方式,但是也可以与此不同,为证明装置7向监查装置8自动发送完全延迟补充数据的方式。
下面参照图16说明使用监查装置8的事件顺序证明验证方法。它相当于用户装置2i的第二验证功能。这里,关于用户装置2i的第二验证功能,是在第一实施形态的验证功能(“用户点的未来侧的边界赋予”)上,增加新的验证功能(“用户点的过去侧的边界赋予”),图16表示该新的功能的操作。亦即,关于本实施形态的“用户点的未来侧的边界赋予”的验证处理,因为和第一实施形态中所示的图10的操作完全相同,所以省略说明,说明关于“用户点的过去侧的边界赋予”的验证处理。另外,关于相当于用户装置2i的第一验证功能的验证方法,因为和第一实施形态中的验证方法相同,所以省略说明。
首先,用户装置2i向监查装置8发送包含成为监查的对象的受理证书(但是包含即时补充数据)的监查请求信息(步骤S910,S920)。
接着,在监查装置8通过收发部31接收监查请求信息后,事件顺序证明监查部82确定分配有在从用户装置2i发送的监查请求信息中包含的受理证书的顺序集合树的叶子τ,计算位于该叶子τ左的监查点α1(步骤S930,S940).然后,取得该监查点α1的监查用受理证书以及该监查用受理证书的完全延迟补充数据(步骤S950).
接着计算监查点α1的根据叶子τ的认证点,从监查点α1的监查用受理证书以及该监查用受理证书的完全延迟补充数据计算认证点的分配值Acal(步骤S960,S970)。另一方面,事件顺序证明监查部82作为监查请求信息从已经接收的受理证书的即时补充数据取得该认证点的分配值A,验证该认证点的分配值A与通过计算求得的认证点的分配值Acal是否一致(步骤S980,S990)。
在以上的验证中,如验证成功,则可以确认受理证书未被篡改(步骤S995)。另一方面,如验证失败,则可以确认受理证书被篡改(步骤S1000)。然后,事件顺序证明监查部82,通过收发部31向用户装置2i发送该监查结果,用户装置2i接收监查结果(步骤S1010,S1020)。
由此,用户装置2i,即使在通过电子发表机构发表前,能够确实验证,证明装置7发行的受理证书在相应的顺序集合期间,对于在受理证书中包含的原数字数据,以用在受理证书中包含的顺序集合树叶子号码识别的顺序发行,同时能够验证用户点的过去侧的边界赋予。此外,在上述监查结果中也可以包含监查点α1的识别符。在该场合,用户装置2i,能够从监查装置8确实保证与请求上述监查的受理证书对应的证明请求的登录在与监查点α1对应的监查用证明请求的登录后。
此外,上面说明了关于“用户点的过去侧的边界赋予”的验证处理的操作,但是也可以进行关于“用户点的未来侧的边界赋予”连同“用户点的过去侧的边界赋予”的验证处理。在这种场合,作为监查请求信息,需要第一实施形态中的受理证书以及延迟补充数据。
因此,根据第二实施形态的事件顺序证明***200,能够得到和第一实施形态相同的效果。另外,加之,在能够验证受理证书的正当性时,能够证明在证明装置7中作为监查对象的受理证书的证明请求接收在时间上在监查用的监查用受理证书的证明请求接收之后。
上面说明了第二实施形态,现在考虑第二实施形态中的各种变形例。下面说明第二实施形态的变形例。
(2-3.第二实施形态的第一变形例)
监查装置8,从上述“用户点的未来侧的边界赋予”以及“用户点的过去侧的边界赋予”的功能,也能够表示两个用户点间的顺序的判定。下面,参照图17说明在两个用户装置2a和2b分别在顺序集合树叶子τ和τ1取得受理证书时监查装置8监查τ和τ1的前后关系的方法。这里,图17是表示监查装置8监查τ和τ1的前后关系的操作的流程图。
下面,关于顺序集合树的叶子τ、τ1,所谓τ(或τ1)的时刻表示接收分配给τ(或τ1)的顺序证明请求的时刻,通过写成τ≤τ1,来表示τ1的时刻在τ之后。下面假定,把τ和τ1大的一方作为τ2,在发送对于在τ2接收的顺序证明请求的受理证明的时刻前保证证明装置7的可串联性。
此外,假定用户装置2a和2b和监查装置8分别满足在第一实施形态的“用户点的未来侧的边界赋予”的说明中叙述的条件(1)~(3)。
首先,在监查装置8,通过用户装置2a和2b接收各受理证书的用户点间的顺序判定请求后,决定把在τ处或位于其右的监查装置8的监查点中位于最左的作为α,把在τ1处或位于其右的监查装置8的监查点中位于最左的作为α1(步骤S1110,S1120,S1130).
接着,比较监查点α和α1的时间前后(步骤S1140)。这点从各监查点的监查用受理证书的顺序集合树号码以及顺序集合树叶子号码判断。
在α<α1时,通过在第一实施形态的“用户点的未来侧的边界赋予”以及上述“用户点的过去侧的边界赋予”中叙述的方法,如下表示τ<τ1(步骤S1150)。
这点,设把在τ1处或位于其左的监查装置8的监查点中位于最右的作为α2,则α1≤α2,另外,因为通过在“用户点的未来侧的边界赋予”中叙述的方法,表示τ≤α,同时通过在“用户点的过去侧的边界赋予”中叙述的方法,表示α2≤τ1,所以根据上述,则成为τ<α≤α2<τ1,导出τ<τ1。
同样,在α1<α时,表示τ1<τ(步骤S1180)。
在α=α1时,τ和τ1的前后关系的判定,遵照下面的过程(1)~(3)进行。
(1)通过从用户装置2a在τ及其延迟补充点τ’取得的信息计算用户点τ的监查点α的认证点的位置和分配值,在监查装置8在监查点α取得的监查用受理证书中包含的即时补充数据中包含上述认证点的分配值,监查装置8判定τ在α左边,进而判定τ在α左边几个点。这里,假定τ在α左边n个点(步骤S1160)。
(2)同样,通过从用户装置2b在τ1及其延迟补充点τ1’取得的信息计算τ1的监查点α的认证点的位置和分配值,在监查装置8在监查点α取得的监查用受理证书中包含的即时补充数据中包含上述认证点的分配值,监查装置8判定τ1在α左边,进而判定τ1在α左边几个点。这里,假定τ1在α左边n1个点(步骤S1160)。
(3)在n>n1时,监查装置8能够表示用户装置2a的用户点τ位于用户装置2b的用户点τ1左(步骤S1170)。另外,在n<n1时,监查装置8能够表示用户装置2a的用户点τ位于用户装置2b的用户点τ1右(步骤S1170)。
因此,根据第二实施形态的第一变形例,在第二实施形态的效果之外,能够判定多个受理证书的时间顺序。
(2-4.第二实施形态的第二变形例)
另外,监查装置8,在各顺序集合期间结束后,在取得在该顺序集合期间取得的监查用受理证书的完全延迟补充数据(进行复合完全补充)的同时,从各监查用受理证书及其完全补充数据计算顺序集合树的根值,能够验证计算的根值与发表的根值是否一致。将此称为通过监查装置8的“通过复合完全化的根值验证”。
这点,如图18所示,监查装置8计算顺序集合树的根值,通过验证计算的根值与由证明装置7发表的根值是否一致,验证未通过证明装置7进行不正当操作(步骤S1210,S1220,S1230,S1240,S1250)。
另外,监查装置8,通过该“通过复合完全化的根值验证”,能够验证在来自用户装置2i的监查请求中包含的监查请求信息的正当性。
例如,假定在某顺序集合树SBT构成结束后,用户装置2a把叶子(0,τ)的分配值从本来的分配值V(τ)改变为分配值v’,并主张分配值v’通过散列函数h与V(root(SBT))链接。此时,为使第三者承认该主张,用户装置2a,必须准备叶子(0,τ)的补充数据
[(v(0),LR(0)),(v(1),LR(1)),…,(v(k-1),LR(k-1))],进而必须表示通过使用散列函数h以规定方式组合v’和该补充数据,能够计算V(root(SBT)).在该计算的过程中,也计算用户点τ的监查点α的认证点(图11的p2)的分配值v2’.v2’通过散列函数的抗冲突性(除实用上可忽略的概率)在round(α)中与向监查装置8发送的p2的分配值V(p2)不同.另一方面,监查装置8,从V(α)出发,通过散列函数h链接属于authPath(α)的节点的分配值计算V(root(SBT)).因为p2属于authPath(α),所以V(p2)也是结合的值之一.这里(除实用上可忽略的概率),因为v2’≠V(p2),所以再次通过散列函数的抗冲突性,通过用户装置2a的计算表示的root(SBT)的分配值变得与在监查装置8通过复合完全化的根值验证中计算的root(SBT)的分配值不同(除实用上可忽略的概率)(关于这点的详情,参照后述的顺序集合树的性质4).因此,监查装置8能够检测用户装置2a的主张是错误的.
因此,根据第二实施形态的第二变形例,在第二实施形态的效果之外,能够验证电子信息发表机构发表的顺序集合树的根值的正当性。另外,通过监查装置8的根值验证功能,对于在证明装置1或用户装置2i中任何一个中有不正当操作,能够切除该不正当操作。
(2-5.第二实施形态的第三变形例)
另外,监查装置8可以具有向用户装置2i提供完全补充数据的功能。下面将其称为补充数据完全化。这是在证明装置7在故障等服务中断时有效作用的功能。另外,即使证明装置7不中断服务,在发表数据公开时,或者在补充数据请求临时大量发生时等也能起减轻证明装置7的负荷的作用。
参照图19说明补充数据完全化。
在图19中,如果监查装置8持有监查点a的完全补充数据,则通过组合该完全补充数据和在用户装置2i取得事件受理证书的用户点u和取得其延迟补充数据的点u’取得的信息,能够计算用户点u的完全补充数据(以下称性质P1)。
其原因在于,在图19中,ji是通过用户点u的监查点a的认证点的级,在用户点u的认证路径信息中,比级j1小的节点的信息由用户甲取得,在级j1或以上而比k小的节点的信息由监查装置8取得。其中,k是顺序集合树的高度。
例如,假定有公开间隔为一周、一日级的监查装置8(至少一日一次取得监查信息,取得各监查点的完全补充数据的机构)。用户装置2i通过在取得受理证书后,在经过一日或一日以上,取得延迟补充数据,通过用户装置2i取得的信息和监查装置8取得的信息,可以构成用户装置2i取得的受理证书的完全补充数据(根据上述性质P1)。
下面参照图20说明通过两个或两个以上的监查装置8i(i=a,b,n)用户装置2i取得完全补充数据的方法。此外假定,作为监查装置8i,有上述的一日级的监查装置8a(至少一日取得一次监查信息、取得各监查点的完全补充数据的机构)和依赖监查装置8a一小时级的监查装置8b(至少一小时取得一次监查信息、像夹持监查装置8a的监查点那样设定各监查点的延迟补充数据点的装置)。
此时,用户装置2i在得到受理证书后,在经过一小时或一小时以上后,通过取得延迟补充数据,通过组合用户装置2i取得的信息、监查装置8b取得的信息、以及监查装置8a取得的信息,可以构成用户点的完全补充数据。
这点通过重复使用上述性质P1表示.首先,通过组合监查装置8a取得的信息和监查装置8b取得的信息,得到监查点a2的认证路径信息.因此,和图17的场合的例子同样,能够得到用户点u的认证路径信息.
此外,关于上述的监查装置8a以及8b的监查点的条件,例如,依赖监查装置8a一小时级的监查装置8b,可以经过一日或一日以上后取得自己的各监查点的延迟补充数据,或者如果知道一日级的监查装置8a的监查点在一日的定时(例如正午前0时)取得,则也可以在该日结束后汇总取得每日的监查点的延迟补充数据。另外,在上述的例子中,使用两个级的监查装置8i,但是同样可以使用三个或者三个以上的监查装置8i。
<第三实施形态>
(3-1.***结构)
图21是本发明的第三实施形态的事件顺序证明***300的***结构图。事件顺序证明***300具有:事件顺序证明装置(下面称证明装置)1;时刻信息提供装置90;多个时刻证明用户装置(下面称用户装置)10j(j=a,b,…,n);多个事件顺序证明用户装置&时刻证明装置(下面称用户装置(时刻证明装置))20i(i=a,b,…,n);事件顺序证明监查装置&事件时刻监查装置(下面称监查装置)9;以及通过相互连接以上各装置的、例如因特网、电话线路网等构成的计算机网络4;成为在进行事件顺序证明的同时,进行时刻证明的计算机***。亦即,用户装置(时刻证明装置)20i,在上述实施形态的用户装置2i的功能之外,还具有进行时刻证明的时刻证明装置,对应来自用户装置10i的时刻证明请求,发行时刻受理证书,向用户装置10i回送。另外,在用户装置20i向证明装置1发送包含上述时刻受理证书的摘要的事件顺序证明请求(下面称证明请求)后,证明装置1,对应该证明请求,发行事件顺序受理证书(下面称受理证书),向用户装置20i回送。然后,在该受理证书中产生疑义的场合,用户装置20i能够根据证明装置1发表的数据或者通过监查装置9得到的监查结果验证受理证书,同时因为受理证书和时刻受理证书被对应起来,所以能够取得区间时刻证书。
此外,在本实施形态中,说明和上述实施形态不同的结构以及功能,关于其他的结构以及功能给相同的部分赋予相同的符号,省略说明。
另外,和上述实施形态同样,在第三实施形态中,事件顺序证明***300的***结构,只要功能相同,则不管其形态,可以考虑其各种各样的物理结构。例如,代替用户装置(时刻证明装置)20i,可以是用户验证装置(时刻证明装置)60i进行受理证书的验证,或者代替证明装置1,也可以由电子信息发表装置5从证明装置1取得发表数据,进行公开。另外,计算机网络4,也可以置换为邮政等其他通信手段。
再有,在本实施形态中和第一实施形态同样也假定保证了证明装置1的可串联性。作为保证的手段,和第一实施形态中同样,也可以使用可串联性监查装置。
时刻信息提供装置90,保持正确的时刻信息,向用户装置(时刻证明装置)20i以及监查装置9提供时刻信息。
用户装置10j,对于用户装置(时刻证明装置)20i进行包含规定的数字数据的时刻证明请求,作为其应答从用户装置(时刻证明装置)20i取得加上时刻信息的时刻受理证书。
用户装置(时刻证明装置)20i,是上述那样在用户装置2i的功能上附加时刻证明装置的功能的装置,具有:通过计算机网络的证明装置1;监查装置9;用户装置10j以及时刻信息提供装置90和收发数据的收发部21;接收来自用户装置10j的时刻证明请求制作时刻受理证书的时刻证明制作部201;进行包含时刻受理证书摘要的证明请求的事件顺序证明请求部202;请求对现时刻可取得的受理证书的补充数据的补充数据请求部23;验证受理证书的事件顺序证明验证部203和存储关于以受理证书为主的事件顺序证明的信息以及关于以时刻受理证书为主的时刻证明的信息的存储部204.此外,在本实施形态中,作为事件顺序证明用户装置,采用兼任时刻证明装置的用户装置,但是也可以存在不兼任时刻证明装置的用户装置,也可以构成用户装置(时刻证明装置)20i和用户装置2i混存那样的***.
详细说,时刻证明制作部201,接收包含从用户装置10j发送的规定的数字数据的时刻证明请求,制作在该数字数据上加上从时刻信息提供装置90取得的时刻信息的时刻受理证书。
事件顺序证明请求部202,使在事件顺序请求中包含作为对于来自用户装置10j的时刻证明请求制作的时刻受理证书的散列值的时刻受理证书摘要(用户装置(时刻证明装置)20i对于时刻受理证明使用预先准备的抗冲突单向散列函数的结果)。因此,用户装置(时刻证明装置)20i,从证明装置1接收的受理证书,其结构如图6所示,但是原数字数据y,如上所述,包含时刻受理证书摘要。
监查装置9,在第一实施形态的监查装置3的功能之外,具有作为时刻监查装置的功能。详细说,具有:通过计算机网络4和证明装置1、用户装置(时刻证明装置)20i以及时刻信息提供装置90进行数据收发的收发部31;在从用户装置20i接收某受理证书的监查请求时使用从用户装置20i发送的监查请求信息以及监查信息进行受理证书的验证、向用户装置20i回送该监查结果的事件顺序证明监查部32;以及制作证明在对应验证后的受理证书的时刻受理证书上附的包含时刻的时间区间的区间时刻证明证书的区间时刻证明证书制作部91;存储以监查用受理证书、区间时刻证明证书为主的监查信息的存储部92。此外,在本实施形态中,作为事件顺序证明监查装置,采用兼任事件时刻监查装置的监查装置,但是也可以存在不兼任事件时刻监查装置的监查装置,也可以是监查装置9和监查装置3混存那样的***结构。
区间时刻证明证书制作部91,从时刻信息提供装置30取得从证明装置1接收监查用受理证书时的时刻,附在区间时刻证明证书上。因此,在用区间时刻证明证书制作部91制作的区间时刻证明证书中,在本实施形态中,附有未来侧的边界的时刻印记。这点,如第一实施形态所述,因为通过使用监查装置3的事件顺序证明验证(用户装置2i的第二验证),能够证明分配有事件顺序请求的顺序集合树的叶子在时间上在监查点的叶子前,所以证明来自成为事件顺序证明请求的源头的用户装置10i的时刻证明请求的接收在时间上在监查装置9接收监查用受理证书的时刻前。这里,把本实施形态中的该区间时刻证明证书称为“第一种区间时刻证明证书”。
此外,以上的各装置,由至少具有运算功能以及控制功能的中央处理装置(CPU:Central Processing Unit)、由具有存放程序或数据的功能的RAM(Random Access Memory)等组成的主存储装置(存储器)、具有即使硬盘(HD)等的电源断时也能够继续存储数据的二次存储装置的电子装置构成.其中.用户装置(时刻证明装置)20i的时刻证明制作部201、事件顺序证明请求部202、补充数据请求部23以及事件顺序证明验证部203、以及监查装置9的区间时刻证明证书制作部91的处理不外是具体表示的通过上述CPU执行的运算控制功能.另外,用户装置(时刻证明装置)20i的存储部204以及监查装置9的存储部92,具有上述主存储装置或者二次存储装置的功能.
另外,执行本实施形态的各种处理的程序,在上述主存储装置或者二次存储装置中存储。该程序,可以在硬盘、软盘、CD-ROM、MO、DVD-ROM等计算机可读的存储介质中记录,也可能通过通信网络配发。
(3-2.***操作)
下面使用图22到25说明具有以上结构的事件顺序证明***300中的事件顺序证明方法以及事件顺序证明验证方法。
此外,在事件顺序证明方法中,因为如果把用户装置(时刻证明装置)20i作为用户装置2i、把监查装置9座位监查装置3,则全体操作和图8所示的操作几乎相同,所以中心说明成为不同的操作的把用户装置(时刻证明装置)20i和用户装置10j之间的交互。这里,图20以及图23是详细说明相当于图8的步骤S10的发送事件顺序证明请求的发送步骤S10’的序列图(在图22中,也包含相当于图8的步骤S60的接收受理证书的步骤S60’)。另外,图24是详细说明相当于图8的步骤S120的接收监查用受理证书的步骤S120’的序列图。
另外,在事件顺序证明验证方法的第一验证中,如果把用户装置20i作为用户装置2i,则因为和图9所示操作相同,所以省略说明。另外,在事件顺序证明验证方法的第二验证中,如果把监查装置9作为监查装置3,则因为和图10所示操作大体相同,所以说明成为不同的操作的监查装置9的区间时刻证书的制作。这里,图25是详细说明相当于图10的步骤S520的事件受理证书的验证成功时的步骤S520’的序列图。
首先参照图22说明发送事件顺序证明方法的事件顺序证明请求的步骤S10’。
在用户装置10j向用户装置(时刻证明装置)20i发送包含数字数据的时刻证明请求后,用户装置(时刻证明装置)20i通过收发部21接收包含该数字数据的时刻证明请求(步骤S11’,S12’)。接着,用户装置(时刻证明装置)20的时刻证明制作部201,从时刻信息提供装置90取得接收时刻证明请求的时刻,制作在数字数据上加上该时刻的时刻受理证书,向发送用户装置10j发送(步骤S13’,S14’,S15’)。由此,用户装置10j,因为接收时刻受理证书,所以能够取得时刻受理证书(步骤S16’)。
接着,用户装置(时刻证明装置)20i的事件顺序证明请求部202,生成时刻受理证书的摘要,制作包含时刻受理证书摘要的证明请求,向证明装置1发送(步骤S17’,S18’)。其结果,证明装置1通过收发部11,接收证明请求(步骤S20’)。
此外,在上述方法中,对用户装置10j仅返回时刻受理证书,但是如图23所示,可以考虑对于用户装置10j,在时刻受理证书之外返回受理证书的方法。
在图23中,在步骤S10’的事件顺序证明请求步骤中,不返回时刻受理证书,在相当于图8的步骤S60的步骤S60’的事件受理证书接收步骤中,返回时刻受理证书以及受理证书。亦即,用户装置(时刻证明装置)20i,在从证明装置1接收受理证书后,向用户装置10j发送受理证书以及与该受理证书对应的时刻受理证书(步骤S61’,S62’)。由此,用户装置10j接收受理证书以及时刻受理证书双方(步骤S63’)。
下面参照图24说明接收监查用受理证书的步骤S120’。
监查装置9,在通过收发部31从证明装置1接收监查用受理证书后,从时刻信息提供装置30取得接收监查用受理证书的时刻,与监查用受理证书对应起来在存储部93中存储(步骤S121’,S122’,S123’).
下面参照图25,说明通过监查装置9对事件受理证书的验证成功时的步骤S520’。
监查装置9的事件顺序证明监查部32,响应来自用户装置(时刻证明装置)20i的监查请求进行受理证书的监查,在监查结果是OK时,进而从赋予监查用受理证书的时刻发行第一种区间时刻证明证书,把该区间时刻证明证书包含在监查结果中(步骤S511’,S512’,S513’)。
因此,根据第三实施形态的事件顺序证明***300,可以得到和第一实施形态相同的效果。另外,在这之外,通过第一种区间时刻证明证书的发行,可以给予未来侧的边界的时间印记。
(3-3.第三实施形态的变形例)
在第三实施形态中,使用具有作为时刻监查装置的功能的监查装置9代替第一实施形态的监查装置3,但是也可以使用具有作为时刻监查装置的功能的监查装置9’代替第一实施形态的监查装置8做成第三实施形态的变形例。
在该第三实施形态的变形例中,区间时刻证明证书制作部91’,从时刻信息提供装置取得向证明装置7发送监查用证明请求时的时刻,加在区间时刻证明证书上。因此,在第三实施形态的变形例中,在由区间时刻证明证书制作部91’制作的区间时刻证明证书中加上过去侧的边界的时刻印记。
这点,如在第二实施形态中所述,因为通过使用监查装置8的事件顺序证明验证(用户装置2i的验证),能够证明分配有事件顺序证明请求的的顺序集合树的叶子在时间上在某监查点的叶子之后,所以证明通过用户装置(时刻证明装置)20i对于来自作为事件顺序证明请求的源头的装置10j的时刻证明请求的时刻受理证书的发送,在时间上在通过监查装置9’的监查用事件顺序证明请求的发送之后。这里,把该区间时刻证明证书称为“第二种区间时刻证明证书”。
另外,在第三实施形态的变形例中,因为监查装置9’当然具有发行“第一种区间时刻证明证书”的功能,所以能够发行作为加上未来以及过去侧的边界的时刻印记的区间时刻证明证书的“第三种区间时刻证明证书”。这点,证明对于来自成为事件顺序证明请求的源头的用户装置10j的时刻证明请求的接收,在时间上在监查装置9接收监查用受理证书的时刻之前,同时,证明通过用户装置(时刻证明装置)20i对于来自作为事件顺序证明请求的源头的装置10i的时刻证明请求的时刻受理证书的发送,在时间上在通过监查装置9’的监查用事件顺序证明请求的发送之后。
进而,作为第三实施形态的变形例,事件顺序证明***300’,也可以是具有事件时刻验证装置(图19中未示出)的***结构,该事件时刻验证装置取得用户装置(时刻证明装置)20i发行的时刻受理证书、和一个或者多个区间时刻证明证书,其用于证明对该时刻受理证书加上的时刻的时间前、后或者双方的边界。据此,判定在时刻受理证书上加上的时刻的正当性。在这种场合,在时刻受理证书上加上的时刻,在事先确定的规定的允许误差之内落入上述区间时刻证明证书证明的时间区间的比例,比事先确定的规定的值大,根据这一事实,事件时刻验证装置,判定在时刻受理证书上加上的时刻的正当性。
上述实施形态中未特别详细叙述证明装置1以及7的电子信息发表部17,不过,更可取的是,电子化社会中的信息发表要求满足以下那样的要求.
(1)多个独立的实体发表相同的信息。
(2)任何人可以在任何时候访问上述多个实体的任何一个。
(3)在上述多个实体的每一个取得发表的信息时,提供信息提供源的实体认证,而且保证提供的信息的完全性。
在上述要求中,关于要求(1),可以通过多个服务机构关于某范围的信息作为业务提供来实现。在上述实施形态中,通过证明装置和多个监查装置关于顺序集合树的根值等作为业务进行信息提供,满足这一要求。
关于要求(2),可以通过使用现在非常普及的WWW进行信息提供实现。
关于要求(3),可以通过对于提供的信息赋予基于公开密钥加密方式的数字签名实现。此时,需要数字签名的强度足够强,以及在数字签名中使用的签名用秘密密钥以及与其成对的公开密钥在该时刻的有效性通过使用公开密钥证书、CRL(Certificate Revocation List)、OCSP服务(Online CertificateStatus Protocol)等公开密钥基础设施(PKI:Public Key Infrastructure)保证。上述密钥对,只要在信息的请求者取得信息的时刻有效就足够,可以随时更新密钥对,继续保持密钥对的有效性。此时,在把某密钥对KP1=(SK1,PK1)置换为新的密钥对KP2=(SK2,PK2)时,在KP1有效期间,不一定需要生成通过KP2的签名用秘密密钥SK2的数字签名,在用户访问时,要求在该时刻使用有效的密钥对生成数字签名。
迄今,作为信息发表手段,在报纸等大众媒体上进行信息的发表,但是该方法例如在10年后访问在特定的大众媒体上发表的信息不容易所以会难于满足上述要求(2),进而,即时能够访问,然而由于以满足上述要求(3)的形式取得信息困难等理由,所以作为电子化社会中的信息发表的手段不一定合适。
<顺序集合树的构成及性质>
这里,说明上述各实施形态中使用的顺序集合树的动态构成方法以及性质,作为其前提,说明顺序集合树的构成中所需要的基本函数。
(基本函数)
高度k的顺序集合树,用从级0到级k的节点构成,因为级j(户0,1,…,k)的节点数为2(k-j),所以如果把级j、号码i的节点表示为(j,i),则i=0,1,…,2(k-j)-1。
下面,对于实数x,把celling(x)作为大于等于x的最小的整数、floor(x)作为小于等于x的最大的整数进行说明。
节点(j,i)(其中j<k)的父,因为是(j+1,floor(i/2)),所以定义为:
parent(j,i)=(j+1,floor(i/2))。
另外,因为节点(j,i)(其中0<j)的左侧的子是(j-1,2·i),右侧的子是(j-1,2·i+1),所以定义为:
leftChild(j,i)=(j-1,2·i)
right Child(j,i)=(j-1,2·i+1)。
此时,高度k的顺序集合树的节点(j,i)(0≤i<2(k-j))的根路径rtPathk(j,i)(指从节点(j,i)到根的节点的列)可以表示为:
rtPathk(j,i)=[(j,r(j)),…,(k,r(k))]
式中,r(j)=I,r(j’+1)=floor(r(j’)/2)(设j’<k,r(j’)已经决定)。此外,(k,r(k)),在r(k)=0的条件下表示顺序集合树的根。
V(j,i)是节点(j,i)的分配值。把V(0,i)写为V(i)。在把L作为L≤k的非负整数、把SBT作为某顺序集合树时,所谓SBT的子图是级L的部分树,定义为有属于SBT的级L的某节点p,B成为由p以及p的子孙组成的SBT的子图。
假定B是SBT的部分树时,leafs(B)是B的叶子的集合。另外在把X作为由SBT的叶子组成的非空集合时,通过first(X)表示X中位于最左的叶子,通过last(X)表示X中位于最右的叶子。
关于两个整数i1、i2,[i1…i2]表示由作为i1≤i≤i2的整数i组成的集合(区间),(i1…i2)表示由作为i1<i≤i2的整数i组成的集合(区间),[i1…i2]表示由作为i1≤i<i2的整数i组成的集合(区间),(i1…i2)表示由作为i1<i<i2的整数i组成的集合(区间)。
(顺序集合树的构成方法)
·顺序集合树的第一构成方法
根据上述的基本函数的定义,说明动态构成集合树的第一方法。该集合树的构成方法,是把深度的不同抑制到1以内,不制作虚节点的方法。
假定在集合期间(例如一周间)接收的事件顺序证明请求的数在事前通过某一方法确定,其数为n。此时,集合树的高度k,k=ceiling(log2(n))。因为高度k的顺序集合树叶子数最大为2k,所以如果取d=2k-n,从级0的节点中消去2d个的话,则能够把事件顺序证明请求的数n无虚节点地分配给叶子。这是由于,因为如果级0的叶子减去2d个,则级1的叶子能够新产生d个,合计减少d个,结果,叶子数成为2k-d=n。
下面,假定L1W=2(k-1)(级1的节点的个数)、L1L=2(k-1)-d(有子的级1的节点的个数)、L0L=2(2(k-1)-d)(级0的节点的个数),在n个事件顺序证明请求中,在级0配置开始的L0L个,其余的在级1配置时,则表示第i号事件顺序证明请求的配置目的地的函数place(i)可用下式表示。
place(i)=(0,i) (0≤i<L0L)
place(i)=(1,L1L+i-L0L) (L0L<i≤n)
这里,place(i)=(级,号码)。
图26表示动态构成集合树的第一构成方法的n=10的场合的具体例。在该场合中,如图26所示,k=ceiling(log2(10))=4,高度为4。然后,因为d=24-10=6,所以消去6×2=12个级0的叶子。其结果,L1W=23=8,L1L=8-6=2,L0L=2×2=4。因此,级0的叶子有4个,级1的叶子有6个,叶子的合计数为10。其结果,可以动态制作图24所示的集合树。对于级比0大的节点(即不是叶子的节点)的值的分配,在可能时其以增量方式进行。
·顺序集合树的第二构成方法
下面说明动态构成顺序集合树的第二方法。该方法在以增量方式构成集合树这点与第一方法相同,但是假定不能预先设想事先确定的在时间间隔(顺序集合期间)中接收的事件顺序证明请求的数目这点与第一方法不同。
这里,所谓增量,意味着在每次接收事件顺序证明请求时,计算从那里能够计算的顺序集合树的部分.下面,虽然不能预想接收的事件顺序证明请求的数目,但是假定其上限能够估计进行说明.在该方法中,假定事件顺序证明请求都给级0分配,为计算二分树的根值,使用虚节点的方法.
在用该方法构成顺序集合树时,如果把在规定的集合期间(例如一周间)接收的事件顺序证明请求的数作为N,则顺序集合树的高度k为k=ceiling(log2(N))。因为高度k的顺序集合树叶子数最大为2k,所以把擦0到n-1的n个事件顺序证明请求分配给级0的节点(0,0)到节点(0,n-1)。
对于给级0分配的、最右的节点(0,n-1),根路径rtPathk(0,n-1)表现为:
rtPathk(j,i)=[(j,r(j)),…,(k,r(k))]。
(一般,rtPathk(j,i)被表现为rtPathk(j,i)=[(j,r(j)),…,(k,r(k))]。但是对于j1∈[j…k],设r(j1)=floor(i/2(j1-j))。)此时,在各级j(j=0,…,k-1)中,下述成立。
在r(j)是偶数时,节点(j,r(j)+1)成为虚节点,对于成为r(j)+1<i<2(k-j)的各i,消去节点(j,i)。
在r(j)是奇数时,对于成为r(j)+1<i<2(k-j)的各i,消去节点(j,i)。
根据以上的方法构成的顺序集合树,具有仅在各级的右端出现虚节点、且制作好的虚节点数为k以下这样的性质。
图27以及图28表示顺序集合树时的第二构成方法的算法,是根据该算法,以增量方式构成顺序集合树。这里作为前提进行下面的定义。
·设K=ceilling(log2(N))。
·设n是表示接收的事件顺序证明请求的数的整数变量。初始值为0。
·k是表示在规定的时间间隔结束时的顺序集合树的高度的变量。
·把(K+1)个计数器的行作为i0,…,iK。这里,ij的初始值为0(j=0,…,K)。ij在级j中,表示已经生成的节点数的,同时表示在下一级中制作的节点的号码。
·把(K+1)个布尔变量的行作为b0,…,bK。,这里,bj的初始值为false(j=0,…,K)。bj表示级j中有无虚节点。
·把(K+1)个排列的行作为A0,…,AK。各排列,以2(k-j)的长度为基础,保持要给级j的节点分配的值(j=0,…,K)。
·r是保存给虚节点分配的虚拟值的变量。
·R(j,i)是对于两个参数i、j计算要给节点(j,i)分配的虚拟值的函数。
·x、x0、x1、x2是表示给节点分配的值的变量。
·x1||x2,是用比特列表示的两个值的连接。
·h(x)是计算x的散列值的抗冲突单向散列函数。
以这样的定义为基础,在图27的处理过程1结束后(亦即规定的顺序集合期间结束后),n表示接收的时刻处理请求数,k表示生成的顺序集合树的高度,ij表示级j的节点数,bj表示级j中有无虚节点,Aj表示由分配给级j的节点的值组成的排列。
图29是表示动态构成顺序集合树时的第二方法中n=9的场合的具体例的图。亦即,假定在决定的顺序集合期间结束时,n=9。此时,k=ceilling(log2(9))=4,构成高度为4的顺序集合树.此外,从0到n-1的n个顺序证明请求,通过处理过程1已经分配给节点(0,0)、…,(0,n-1).另外,通过处理过程1,得到j0=9,j1=4,j2=2,j3=1,j4=0.
此时,从处理过程2的(2,2),得到节点(0,8)的根路径rtPath4(0,8)为:
rtPath4(0,8)=[(0,8),(1,4),(2,2),(3,1),(4,0)]
。由此,各级的过程如下。
在级0中,通过步骤(2.3.2.1),节点(0,9)成为虚节点。在级1中,通过步骤(2.3.3.1.5),给节点(1,4)分配值,(1,5)成为虚节点。在级2中,通过步骤(2.3.3.1.5),给节点(0,2)分配值,(0,3)成为虚节点。在级3中,通过步骤(2.3.3.1),给节点(3,1)分配值。在级4中,通过步骤(2.3.3.1),给节点(4,0)分配值。
其结果,可以以增量方式构成图29所示的顺序集合树。虚节点在各级中最高为1。对于虚节点需要遵照先前决定的任何过程分配虚拟标号(虚拟分配值)。作为这样的过程的简单的定义,有作为级的函数定义虚拟标号的方法,也可以采用该方法。
图30是表示在上述顺序集合树的增量式构成方法中给各节点分配值的定时的图。
上述第一到第三实施形态的前提是,如图30所示,在信息发表的阶段,使用虚节点最终构成顺序集合树。但是,作为顺序集合树的具体的构成法,也可以采用这以外的方法。
亦即上述实施形态中的事件顺序证明***100、200以及300,可以采用上述动态构成集合树的方法中的任何一种,由此,因为能够灵活对应来自用户装置的事件顺序证明请求的量的变化,所以能够构建缩放性高的事件顺序证明***。
(认证路径的定义和通过它的根值的计算法)
对于不预先决定高度以增量方式构成的顺序集合树的节点,能够如下定义某时刻的根路径或认证路径。该定义在第一到第三实施形态中可以适用于事前不能预想在规定的顺序集合期间中接收的请求数的场合。
假定在现时刻的叶子号码的最大值为m(≥0)(因此叶子数为m+1)时,为:
k(m)=min{h|m+1≤2h}。
设高度为k(m)的顺序集合树为curSBT(m)。
设p=(j,i)∈curSBT(m),而从p到curSBT(m)的根的节点的行根路径记为rtPath(p,m)。
rtPath(p,m)是在属于rtPath(p,m)的节点中在决定第m号叶子的分配值的时刻决定分配值的节点的行。
在rtPath(p,m)=[(0,i(0)),…,(k,i(k))]时,可知存在满足0≤k1≤k的k1,满足
rtPath(p,m)=[(0,i(0)),…,(k1,i(k1))]。
rtPathDV(p,m)是给rtPathD(p,m)的各节点分配了分配值。
在rtPathD(p,m)=[(0,i(0)),…,(k1,i(k1))]时,rtPathDV(p,m)成为下面的形式。
rtPathDV(p,m)=[(0,i(0),v(0)),…,(k1,i(k1),v(k1))]。
把在curSBT(m)中的、为从节点p=(j,i)计算curSBT(m)的根值所需要的节点p’=(j’,i’)的集合称为该节点的认证路径,表示为authPathT(p,m).但是,假定对于属于认证路径的各节点,作为标签也包含关于连接该节点的方向(左或右)的信息.
在k(m)=k,和
rtPath(p,m)=[(j,r(j)),…,(k,r(k))]
时,authPathT(p,m)可以使用rtPath(p,m)如下表示。
authPathT(p,m)=
[((j,a(j)),LR(j)),…,((k-1,a(k-1)),LR(k-1))]
这里,在a(j’)=r(j’)+1、r(j’)是奇数的场合,为a(j’)=r(j’)-1,另外,在r(j’)是偶数的场合,LR(j’)=R;在r(j’)是奇数的场合,LR(j’)=L(式中,j’∈[j,…,k-1])。
于是,对于authPathT(p,m)的要素((j,a(j)),LR(j)),把LR(j)的部分称为LR标签。进而,对于rtPath(p,m)的要素(j,r(j)),在r(j)为偶数时,把(j,r(j)+1)称为(j,r(j))的右补充点,在r(j)为奇数时,把(j,r(j)-1)称为(j,r(j))的左补充点。
此时,authPathT(p,m)由rtPath(p,m)的根以外的点的右补充点或左补充点组成。
另外,把从authPathT(p,m)中除去LR标记的信息的authPathT(p,m)记为authPath(p,m),即在
authPathT(p,m)=
[((j,a(j)),LR(j)),…,((k-1,a(k-1)),LR(k-1))]
时,
authPath(p,m)=[(j,a(j)),…,(k-1,a(k-1))]。
反之,如果给定
authPath(p,m)=[(j,a(j)),…,(k-1,a(k-1))],
则可以如下计算authPathT(p,m)。因为对于j1∈[j…k),rtPath(p,m)的级j1的节点成为
(j1,floor(i/2(j1-j))),
所以设floor(i/2(j1-j))为偶数时LR(j1)=R、奇数时LR(j1)=L,则有
authPathT(p,m)=
[((j,a(j)),LR(j)),…,((k-1,a(k-1)),LR(k-1))]。
因此,可以从authPathT(p,m)和authPath(p,m)的一方计算另一方。
在authPath(p,m)以及authPathT(p,m)中,把在决定第m号叶子的分配值的时刻决定分配值的节点的集合分别定义为authPathD(p,m)以及authPathTD(p,m)。在如上表现authPath(p,m)以及authPathT(p,m)时,如果k满足
k1≤k-j,
则有成为
j≤j(0)<…<j(k-1)
的非负整数j(0),…,j(k-1),表现为:
authPathD(p,m)=[(j(0),a(j(0))),…,
(j(k1-1),a(j(k1-1)))],
authPathTD(p,m)=[((j(0),a(j(0))),LR(j(0)))…,
((j(k1-1),a(j(k1-1))),LR(j(k1-1)))]。
进而,在authPathD(p,m)以及authPathTD(p,m)中,把加上属于它们的节点的分配值的,分别设为authPathDV(p,m)以及authPathTDV(p,m)。具体说,在如上表现authPathD(p,m)以及authPathTD(p,m)时,有
authPathDV(p,m)=
[((j(0),a(j(0))),v(j(0)),…,
((j(k1-1),a(j(k1-1))),v(j(k1-1)))],
authPathTDV(p,m)=
[((j(0),a(j(0))),LR(j(0)),v(j(0)),…,
((j(k1-1),a(j(k1-1))),LR(j(k1-1)),v(j(k1-1)))]。
式中,对于各j’∈{j(0),…,j(k1-1)},有v(j’)=V(j’,a(j’))。
通过上述顺序集合树的构成法的任何一种方法,在给叶子号码m的叶子顺序分配分配值的阶段该顺序集合树的构成结束且如上表示authPathTDV(p,m)时,可以从节点p=(j,i)的分配值V(p)和authPathTDV(p,m)如下计算集合树的根值。对于j1∈[j..k],通过以下(1)、(2)递归定义v’(j1)。此时,v’(k)成为集合树的根值。
(1)v’(j)=V(j,i)
(2)假定对于j1∈[j..k],定义v’(j1),定义在LR(j1)=L时,
v’(j1+1)=h(v(j1)||v’(j1)),
LR(j1)=R时,
v’(j1+1)=h(v’(j1)||v(j1))。
设m1、m2为顺序集合树叶子号码,m1≤m2。此时有,
设p=(j,i)∈curSBT(m1)。此时,下面的(1)、(2)、(3)成立。
<顺序集合树的诸性质>
下面,对于以增量方式构成的顺序集合树,设现时刻的叶子号码的最大值为m,有时把
rtPath((0,i),m)、rtPathD((0,i),m)、rtPathDV((0,i),m)
分别简写为
rtPath(i,m)、rtPathD(i,m)、rtPathDV(i,m)。
同样,有时把
authPath((0,i),m)、authPathT((0,i),m)、authPathD((0,i),m)、
authPathTD((0,i),m)、authPathDV((0,i),m)、authPathTDV((0,i),m)
分别简写为
authPath(i,m)、authPathT(i,m)、authPathD(i,m)、
authPathTD(i,m)、authPathDV(i,m)、authPathTDV(i,m)。
下面说明在顺序集合树中通过监查点计算用户点的认证点的算法。作为前提,设顺序集合树的高度为k,用户点的识别号码为i0,监查点的识别号码为i1,i0<i1。一般,对于顺序集合树的节点(0,i),可以如下计算rtPath((0,i),m)。
rtPath((0,i),m)=[(0,r(0)),...,(k,r(k))]
式中,k=k(m),和对于j∈[0..k],r(j)=floor(i/2j)。
通过该过程,计算节点(0,i0)的根路径rtPath((0,i0),m)和节点(0,i1)的根路径rtPath((0,i1),m)。于是,rtPath((0,i0),m)和rtPath((0,i1),m)在某要素后一致。此时,把最初一致的要素,称为(0,i0)和节点(0,i1)的合流点(confluent point)。然后,把合流点的左子节点称为节点(0,i0)(用户点)的通过节点(0,i1)(监查点)的认证点(authenticationpoint)。
以上是用户点和监查点属于同一顺序集合树的场合中的认证点的定义,但是在该用户点所属的顺序集合树SBT之后生成包含该监查点的另一个顺序集合树所属的顺序集合树的场合,把SBT的根定义为该用户点的通过该监查点的认证点。
(顺序集合树的性质1)
设B是某顺序集合树的部分顺序集合树,在某时刻,与last(leafs(B))对应的回合的处理结束。此时,计算在该时刻属于B的各节点的分配值进行分配。
·性质1的证明
通过图27以及图28所示的增量式顺序集合树的构成法,在各回合结束时,全部计算通过到该回合能够取得的叶子的分配值能够计算的叶子以外的节点的分配值进行分配。
在与last(leafs(B))对应的回合的处理结束时,已经决定属于leafs(B)的各叶子的分配值,因此能够计算B的各节点的分配值。因此,在该阶段,计算B的各节点的分配值,给各节点分配。
对于未预先决定高度的以增量方式构成的顺序集合树,有下面的性质2。
(顺序集合树的性质2)
设C是用户装置,乙是监查装置,i0和i1是在i0<i1时的两个顺序集合树叶子号码,在round(i0)中,C接收受理证书,乙在round(i1)中,接收监查用受理证书。此时,通过i0和i1的认证点具有下面的性质。
(1)认证点的分配值被包含在监查点亦即节点(0,i1)的受理证书内补充数据内。
(2)设上述认证点为(j’,i’),在属于authPath((0,i0),i1)的节点,对于级比j小的分配值,在与节点(0,i1)对应的回合中受理受理证书的用户,在与节点(0,i1)对应的回合以后能够接收的延迟补充数据或者接收的受理证书内补充数据中被包含。
亦即,设i1≤i2,在属于authPath((0,i0),i1)的节点,对于级比j小的分配值,在EOC(i0)或者CToken(i0,i2)中包含。
(3)上述认证点的分配值以及在属于rtPath((0,i0),i2)的节点处级比该认证点的级小的节点的分配值,能够由在节点(0,i0)接收受理证书的用户从在与节点(0,i1)对应的回合以后接收的延迟补充数据以及在节点(0,i0)接收的受理证书(包含受理证书内补充数据)计算。
·性质2的证明
下面说明在交付给用户的受理证书中包含受理证书内补充数据(即时补充数据)的场合。即使在交付给用户的受理证书中不包含受理证书内补充数据、而在延迟补充数据中包含该信息的场合通过同样的讨论也可以得到相同的结论。
(1)首先,使用图31说明项目(1)。这里,设合流点为(j,i)、作为其左子节点的认证点为(j’,i’)。把在节点(0,i1)的curSBT(i1)中的根路径rtPath((0,i1),i1)中,从(0,i1)出发,到合流点跟前的节点作为(j”,i”)。此时,认证点是(j”,i”)的左补充点。因此,从认证路径authPath(i1,i1)的定义,((j’,i’),L)被包含在节点(0,i1)的curSBT(i1)中的认证路径中。另外,对于节点(j’,i’)的值的分配,在round(i1)前结束。因此,((j’,i’),L,V(j’,i’))在对于(0,i1)的受理证书内补充数据被包含。
(2)使用图32以及图33说明项目(2)。
设k=k(i1)。
认证点(j’,i’)在节点(0,i0)的根路径rtPath((0,i0),i1)中包含。这里设
rtPath((0,i0),i1=
[(0,r(0)),...,(j’,r(j’)),(j’+1,r(j’+1)),...,(k,r(k))]。
另外,在authPath((0,i0),i1)的要素中,把级比j’小的节点的行作为
[(0,s(0)),...,(j’-1,s(j’-1))]。
对于各j1∈[0..j’-1],只要表示V(j1,r(j1))在EOC(i0)或者CToken(i0,i2)中被包含即可。
根据authPath((0,i0),i1)的级j 1的定义,authPath((0,i0),i1)的级j1的要素p2=(j1,s(j1))是rtPath((0,i0),i1)的级j1+1的要素p3=(j1+1,r(j1+1))的右子节点或左子节点。通过是哪个分为下述情况。
(情况1)p2是p3的右子节点时,如图32所示,p2的分配值V(p2),在满足i1≤i2的i2中,C在可接收的延迟补充数据CToken(i0,i2)中包含。其原因在于,根据顺序集合树的性质1,在与叶子(0,i1)对应的回合的事件顺序证明处理结束的时刻,用图30的B表示的curSBT(i1)的部分树的分配值可以计算,且被计算并分配完毕。因此,在该时刻以后发行的延迟补充数据中包含B的根p2的分配值V(p2)。
(情况2)p2是p3的左子节点时,如图33所示,节点p2的分配值V(p2),在对于round(i0)的事件顺序证明请求者的受理证书内补充数据中包含。其原因在于,对于把图33的p2作为根的部分树B,有
因此,在且用i0可识别的回合开始时已经确定∈leafs(B)的分配值。于是,根据顺序集合树的性质1,p2=root(B)的分配值,在用i0可识别的回合中确定。因此,p2被包含在authPathD((0,i0),i0)中。
(3)从认证路径的定义以及项目(2),对于各j1∈[0..j’],可以如下递归计算V(j1,r(j1))。
首先,设V(0,r(0))是在事件受理证书中包含的节点(0,i0)的分配值。
接着,对于j1∈[0..j’-1],假定已经计算V(j1,r(j1)),如下计算V(j1+1,r(j1+1))。在r(j1)<s(j1)时,
V(j1+1,r(j1+1))=h(V(j1,r(j1))||V(j1,s(j1))),
在s(j1)<r(j1)时,
V(j1+1,r(j1+1))=h(V(j1,s(j1))||V(j1,r(j1)))。
下面假定,作为时刻的原点,取事件顺序证明***的服务开始点,作为计时单位取1秒、1毫秒等,用从上述原点开始以上述时间单位计的整数表示时刻。另外假定,各监查装置乙,在各顺序集合期间T的最初的监查点,在T结束的监查信息之外,还接收前面的顺序集合根值(紧跟前的顺序集合期间T’的根的分配值V(root(T’))。
对于未预先决定高度的以增量方式构成的顺序集合树成立下面的性质3。
(顺序集合树的性质3)
下面设T是正整数,α、α0、τ、τ’表示扩展叶子识别符。设乙是监查装置,在顺序集合期间T的监查点α0,满足下面的条件。
(*1)time(α0)∈[0..T)
进而设通过乙的任意的一个监查点为α、其次的一个通过乙的监查点为α’,成立下面的条件(*2)。
(*2)time(α’)-time(α)≤T。
另外,设用户甲发送某事件顺序证明请求,把与该请求对应的顺序集合树叶子作为τ,其后发送对该事件受理证书的延迟补充数据请求,把与该请求对应的顺序集合树叶子作为τ’,则成立下面的条件(*3)。
(*3)time(τ’)-time(τ)≥T。
进而,假定监查装置乙在属于第二或以后的各顺序集合期间的由乙引起的最初的监查点从事件顺序证明机构接收紧跟前的顺序集合期间的根值。
此时成立以下的(1)~(4)。
(1)存在满足α∈[τ..τ’]的由乙引起的某监查点α。
(2)在满足α∈[τ..τ’]的由乙引起的监查点α中,τ的通过α的认证点的分配值(标签),在α以后的某顺序集合树叶子(例如τ’)处乙接收的监查用受理证书中包含。
(3)对于任意的顺序集合树叶子τ,存在由乙引起的监查点α’,成立下面的条件(*4)。
(*4)time(τ)≤time(α’)<time(τ)+T
(4)对于满足T≤time(τ)的任意的用户点,存在满足α<τ的乙的监查点α。
·性质3的证明
假定不存在满足α∈[τ..τ’]那样的由乙引起的某监查点α。根据是否存在位于τ左的由乙引起的监查点来分不同情况。
(情况1)考虑存在位于τ左的由乙引起的监查点的场合。设位于τ左、最接近τ的由乙引起的监查点为α1,位于τ’右且最接近τ’的由乙引起的监查点为α2。通过α1和α2的取法,成立
time(α1)<time(τ)以及time(τ’)<time(α2)。
通过time(α1)<time(τ),得到-time(α1)>-time(τ)
因此,
time(α2)-time(α1)>time(τ’)-time(τ)≥T。
另一方面,因为不存在满足time(α)∈[time(τ)..time(τ)]的乙引起的监查点为α,所以α2是α1的下一个监察点。因此根据上述条件(*2),必须有
time(α2)-time(α1)≤T。
从上面导出
time(α2)-time(α1)>T且time(α2)-time(α1)≤T,互相矛盾。因此,不存在满足time(α)∈[time(τ)..time(τ’)]的由乙引起的监查点α这样的假定是错误的,存在满足time(α)∈[time(τ)..time(τ’)]的由乙引起的监查点α。
(情况2)考虑不存在位于τ左的由乙引起的监查点的场合。此时,对于满足time(α0)∈[0..T]的监查点α0,表示满足
α0∈[τ..τ’]
(2)从上述的顺序集合树的性质2和项目(1)直接导出。
(3)根据是否存在位于τ前的乙的监查点区分不同情况。
(情况1)考虑存在位于τ前的乙的监查点的情况。把在τ前、位于最后的监查点作为α,把其次的监查点的时刻作为α’。此时,
time(α)<time(τ)≤time(α’),
根据条件(*2),得到
time(α’)-time(τ)<time(α’)-time(α)≤T,
因此,
time(α’)<time(τ)+T。
从上述,得到(*4)。
(情况2)考虑不存在位于τ前的乙的监查点的情况。根据性质3的前提,在乙的监查点α0,time(α0)<T。
time(τ)≤time(α0)<T
从而
time(α0)-time(τ)<T-time(τ)≤T
故
time(α0)<time(τ)+T。
从上述,令α’=α0,则得到(*4)。
(4)从存在在乙的监查点α0,满足time(α0)[0..T)的监查点的上述假定(*1)直接导出。
(顺序集合树的性质4)
设SBT为高度为k的顺序集合树,i是SBT的顺序集合树叶子号码,k1≤k,authPathTk1(i)为authPathT(i)的最初的k1个要素的行。
设
authPathTk1(i)=[((0,i(0),LR(0)),...,((k1-1,i(k1-1)),LR()k1-1))。
进而这里设v1、v2为两个不同的散列值,AP1、AP2给出如下。
AP1=
[(LR(0),v1’(0)),(LR(1),v1’(1)),...,(LR(k1-1),v1’(k1-1))]
AP2=
[(LR(0),v2’(0)),(LR(1),v2’(1)),...,(LR(k1-1),v2’(k1-1))]。
此时,从v1和AP1如以下的(*1)计算的v1”(k1)和从v2和AP2如以下的(*2)计算的v2”(k1)(除实用上可忽略的概率)不一致。
(*1)对于各j’∈[0..k1],如下递归决定v1”(j’)。
V1”(0)=v1。
在j’>0和LR(j’-1)=L时,
v1”(j’)=h(v1’(j’-1)||v1”(j’-1))
在j’>0和LR(j’-1)=R时,
v1”(j’)=h(v1”(j’-1)||v1’(j’-1))
(*2)对于各j’∈[0..k],如下递归决定v2”(j’)。
V2”(0)=v2。
在j’>0和LR(j’-1)=L时,
v2”(j’)=h(v2’(j’-1)||v2”(j’-1))
在j’>0和LR(j’-1)=R时,
v2”(j’)=h(v2”(j’-1)||v2’(j’-1))
·性质4的证明
假定v1”(k1)=v2”(k1)。设在j’∈[0..k]中满足v1”(j’)=v2”(j’)的最小的j’为j。因为v1≠v2,即v1(0)≠v2”(0),所以j1>0。设j0=j1-1。根据LR(j0)是L还是R区分不同情况。
(情况1)在LR(j0)=L时,取决于设定j1、j0,有
v1”(j0)≠v2”(j0)
因此,满足
v1’(j0)||v1”(j0)≠v2’(j0)||v2”(j0)
另一方面,从上述(*1)、(*2),有
v1”(j1)=h(v1’(j0)||v1”(j0))
v2”(j1)=h(v2’(j0)||v2”(j0))。
因此,满足
h(v1’(j0)||v1”(j0))=h(v2’(j0)||v2”(j0))。
因此,v1’(j0)||v1”(j0)和v2’(j0)||v2”(j0),成为抗冲突散列函数h的冲突。
(情况2)在LR(j0)=R时,和情况1中同样,可以导出
v1”(j0)||v1’(j0)和v2”(j0)||v2’(j0),成为抗冲突散列函数h的冲突。
从上可知,无论在何种情况,都表现出抗冲突散列函数h的冲突。这样的事情不可能存在(除实用上可忽略的概率)。因此,v1”(k)=v2”(k)也不可能存在(除实用上可忽略的概率)。
下面,关于上述第一到第三实施形态的事件顺序证明***以及事件顺序证明监查***,在构成***的各装置的资源和性能、以及连接装置之间的网络的资源和性能的各种条件下,说明作为更加实用的实施形态.具体说,在使用树结构等非循环有向图进行顺序证明的场合,为即使在计算机的存储器中不能容纳非循环有向图的场合,也能具有可缩放性实现,要求任何装置(事件顺序证明装置以及使用它的用户装置)都以不需要在存储器上展开非循环有向图那样的方法实现.另外,从相同的可缩放性的观点出发,即使非循环有向图变大,也要求事件顺序证明装置与其用户装置之间的通信量不能变得过大,如果能够把装置间的通信量抑制到该非循环有向图节点数的对数的量级则可以满足该要求.一般,为通过用网络连接的计算机***实现规定的功能所需要的存储器数量以及装置间的通信量、和各个装置中的处理量有折衷关系,为使具有规定功能的***在关于存储器容量、装置的处理能力、以及网络的传送容量等各种状况下能够实用,提供在处理量在实用的范围内使存储器容量以及通信量减小的实现方式、以及反过来在存储器容量以及通信量在实用的范围内使处理量减小的实现方式是有用的.
<第四实施形态>
(4-1.***结构)
图34是本发明的第四实施形态的事件顺序证明***100a的***结构图。事件顺序证明***100a具有:事件顺序证明装置(下面称证明装置)1a;多个事件顺序证明用户装置(下面称用户装置)2I(I=A,B,…,N);以及通过相互连接以上各装置的、例如因特网、电话线路网等构成的计算机网络3a;证明装置1a响应来自用户装置2I的事件顺序证明请求(下面称证明请求),向用户装置2I返回包含事件顺序受理证书(下面称受理证书)的事件顺序证明应答(下面称证明应答)。然后,用户装置2I能够从证明装置1a接收的该多个证明应答验证受理证书。
证明装置1a具有:通过计算机网络3a和用户装置2I进行数据收发的收发部11a;使用顺序集合树汇总作为来自用户装置2I的证明请求发送的电子数据的事件顺序证明请求集合部12a;制作包含受理证书的证明应答的事件顺序证明应答制作部13a;对于证明装置1a在一定期间发行的受理证书的内容的数据进行高强度数字签名;制作发表数据的数字签名制作部14a;以电子方式发表附加高强度数字签名的发表数据的电子信息发表部15a;以及存储关于以受理证书为主的事件顺序证明的信息的存储部16a。
如上所述,事件顺序证明请求集合部12a使用顺序集合树汇总事件顺序证明请求,关于该顺序集合树使用图35说明。图35表示顺序集合树的一个具体例,其中,在一定期间(例如一周等证明装置1a公开汇总数据的周期,称顺序集合期间),把作为遵照规定的顺序分配数据计算过程计算在从来自用户装置2i的证明请求中包含的数字数据的全部或者一部分的结果的数字数据(将其称为顺序分配数据,例如在证明请求中包含的数字数据的散列值)随时间顺序从左分配。此外,分配有来自用户装置2I的各证明请求的顺序集合树的叶子也称为登录点。
给顺序集合树的各节点(除叶子外)分配的值的计算方法如下。顺序集合树的父的分配值,通过连接(位列和位列的结合)左侧的孩子的分配值H’和右侧的子的分配值H”,计算作为使用规定的抗冲突单向散列函数h的结果的散列值求得,将其表示为h(H’||H”)。这样,从下级的分配值计算上级的分配值,最终求得最上级(根)的分配值(根值)。
下面,如图35所示,说明具有16个叶子的顺序集合树的场合.此外,顺序集合树叶子的数目和高度,在顺序集合期间结束之前不确定.另外,在顺序集合树中,给叶子的值的分配从左顺序进行,对于级比0大的节点(即不是叶子的节点)的值的分配,在其可能时以增量方式进行.因此,对于图35的同一纵线上的多个节点,值的分配在同一处理单位中几乎同时进行.
这里,用(j,i)表示顺序集合树的级j、号码i的节点,用V(j,i)表示节点(j,i)的分配值,说明图35所示的具体例。
现在,在分配给顺序集合树叶子的散列值是(0,5)时(登录点是(0,5)时),为从该散列值V(0,5)求根值H(=(4,0)),可以从左把V(0,4)连接到V(0,5),计算散列值h1’,从右侧把V(1,3)连接到该散列值h1’,计算散列值h2’,从左侧把V(2,0)连接到该散列值h2’,计算散列值h3’,进而从右侧把V(3,1)连接到该散列值h3’,计算散列值H(=(4,0))。在能够通过这样的步骤从V(0,5)和补充它的数据(这里是V(0,4)、V(1,3)、V(2,0)、V(3,1))计算根值H时,称V(0,5)通过散列函数h链接根值H。另外,顺序集合树中的V(0,5)的补充数据(下面称顺序集合补充数据)成为
[(V(0,4),L)、(V(1,3),R)、(V(2,0),L)、(V(3,1),R)]。这里,L以及R分别表示连接两个数字数据时是从左连接以及从右连接。
事件顺序证明应答制作部13a制作包含图36所示那样的受理证书EOC(y)的证明应答,向用户装置2I发送。受理证书EOC(y)包含从用户发送的数字数据y、能够通过上述顺序分配数据计算过程从数字数据y计算的顺序分配数据z、能够唯一确定分配有顺序分配数据z的顺序集合树的顺序集合树号码、能够唯一确定分配有顺序分配数据z的顺序集合树叶子的顺序集合树叶子号码、以及在该时刻能够取得的顺序集合补充数据的一部分(其称为登录点的即时补充数据)SK的位置信息以及分配值构成。
另外,在证明应答中,构成为也包含用户装置2I的过去的各登录点的延迟补充数据TK的位置信息以及分配值。此外,所谓延迟补充数据TK,指在相应证明应答发行后可取得的顺序集合补充数据,例如,在图35中,对于V(0,5),V(2,0)、V(0,4)是即时补充数据,而V(1,3)、V(3,1)是分配V(0,15)的时刻以后可取得的延迟补充数据。另外,一般,在某叶子a1和位于其右的另一个叶子a2中,把在叶子a2的分配处理结束的时刻决定的叶子a1的延迟补充数据称为a1的在a2中的延迟补充数据。在图35中,节点(0,5)的在节点(0,10)中的延迟补充数据是节点(1,3)。
这里,使用图37说明本实施形态中的证明应答的具体例。此外,在下面,把本实施形态中的证明应答的形式称为“顺序补充方式”。现在,假定从某用户装置2I来的登录点是X1(节点(0,2))、X2(节点(0,11))、X3(节点(0,18))、X4(节点(0,21))、X5(节点(0,29))、X6(节点(0,31))。
在顺序补充方式中在各登录点向用户装置2I返回以下那样的数据。
(1)在点X1的证明应答中,返回点X1的即时补充数据(具体说,节点(1,0)的分配值)。
(2)在点X2的证明应答中,返回点X2的即时补充数据、以及点X1的在点X2的延迟补充数据(具体说,作为点X2的即时补充数据:节点(3,0)、节点(1,4)、节点(0,10)的分配值;作为点X1的在点X2的延迟补充数据:节点(0,3)、节点(2,1)的分配值)。
(3)在点X3的证明应答中,返回点X3的即时补充数据、以及点X1和点X2的在点X3的延迟补充数据(具体说,作为点X3的即时补充数据:节点(4,0)、节点(1,8)的分配值;作为点X1的在点X3的延迟补充数据:节点(0,3)、节点(2,1)、节点(3,1)的分配值;作为点X2的在点X3的延迟补充数据:节点(2,3)的分配值)。
(4)在点X4的证明应答中,返回点X4的即时补充数据、以及点X1、点X2和点X3的在点X4的延迟补充数据(具体说,作为点X4的即时补充数据:节点(4,0)、节点(2,4)、节点(0,20)的分配值;作为点X1的在点X4的延迟补充数据:节点(0,3)、节点(2,1)、节点(3,1)的分配值;作为点X2的在点X4的延迟补充数据:节点(2,3)的分配值;作为点X3的在点X4的延迟补充数据:节点(0,19)的分配值)。
下面,在X5以及X6中也同样。这样,在顺序补充方式中,作为证明应答,关于某登录点,包含该登录点的即时补充数据以及在某登录点前登录的各登录点的该登录点的延迟补充数据。此外,各证明应答,是对于每一用户装置2I来管理。
用户装置2I,具有:通过计算机网络3a和证明装置1a收发数据的收发部21a、多次进行包含规定的数字数据的证明请求的事件顺序证明请求部22a、验证在对于证明请求的证明应答中包含的受理证书的事件顺序证明验证部23a、以及存储关于以包含受理证书的证明应答为主的事件顺序证明的信息的存储部24a。
这里,事件顺序证明验证部23a,对于受理证书具有下面的验证功能。
作为第一验证功能,对于通过证明装置1a的数字签名制作部14a以及电子信息发表部15a发表的发表信息,验证通过散列函数链接在受理证书中包含的顺序分配数据。具体说,验证作为顺序集合树的根值发表的值是否与用用户装置2I计算的根值一致。
作为第二验证功能,即使发表信息是在公开前,但是通过用户装置2I的后述的操作,也能验证在用户装置2I间的受理证书发行的前后。
下面使用图38说明第二验证功能,在这之前进行合流点以及认证点的说明。
对于某顺序集合树的叶子a,把从a到根的路径称为a的根路径,记为rtPath(a)。另外,把由属于rtPath(a)的节点的根以外的兄弟节点(sibling node)组成的节点的队列称为认证路径,记为authPath(a)。
此时,对于某顺序集合树的两个叶子a1和a2,在a2位于a1右时,把从a1到根的路径和从a2到根的路径的合流的点称为a1和a2的合流点,合流点的左子节点(左侧的子)称为a1的通过a2的认证点。例如,在图37中,登录点X1的在登录点X2的认证点是(3,0),登录点X2的在登录点X3的认证点是(4,0)。
现在,假定两个用户装置2A以及2B分别通过顺序补充方式取得各登录点的证明应答,把图38所示的a、a1、a2、af作为用户装置2A的登录点,把b作为用户装置2B的登录点。此外,把af称为暂定终端点,是在用户装置2A的登录点中位于最右的登录点。在图38中,有用户装置2A的一个登录点a,有位于其右的用户装置2B的登录点b,进而有位于其右的用户装置2A的登录点af。
这里,在顺序补充方式中,一般,在登录点a位于登录点b左的场合,认证点的标号(分配值)包含登录点b的证明应答(即时补充数据),另外,因为在登录点b的事件顺序证明处理结束的时刻或其后(例如登录点af的时刻),在能够从登录点a的延迟补充数据中计算的标签中包含认证点的标签,所以通过验证在登录点a的在登录点af的延迟补充数据计算的认证点的分配值与在登录点b的即时补充数据中包含的认证点的分配值是否一致,能够验证登录点a和登录点b的时间前后(详情参照后述的顺序集合树的性质的项目(3))。
因此,在图38的场合,如果在把登录点af作为现时刻时的现时刻顺序集合树中的、登录点a的通过登录点b的分配值V(o)一致,则能够客观地证明登录点a的登录在登录点b的登录之前发生.事件顺序证明验证部23a,通过后述的操作验证这一点.
此外,以上的各装置,至少由具有运算功能以及控制功能的中央处理装置(CPU:Central Processing Unit)、由具有存放程序或数据的功能的RAM(Random Access Memory)等组成的主存储装置(存储器)、具有即使硬盘(HD)等的电源断时也能够继续存储数据的二次存储装置的电子装置构成。其中,证明装置1a的事件顺序证明请求集合部12a、事件顺序证明应答制作部13a、数字签名制作部14a以及电子信息发表部15a、以及用户装置2I的事件顺序证明请求部22a和事件顺序证明验证部23a的处理,不外是具体表示的通过上述CPU执行的运算控制功能而已。另外,证明装置1a的存储部16a以及用户装置2I的存储部24a,具有上述主存储装置或者二次存储装置的功能。
(4-2.***操作)
下面使用图39到图41说明在具有以上结构的事件顺序证明***100a中的事件顺序证明方法、以及事件顺序证明验证方法。这里,图39是说明在一个顺序集合期间中证明装置1a制作包含受理证书的的证明应答的操作的顺序图,图40以及41是说明用户装置2I对于受理证书进行第二验证的操作的顺序图。
首先,参照图39说明事件顺序证明方法。
用户装置2I对于证明装置1a发送包含数字数据y的证明请求后,证明装置1a通过收发部11a接收包含该数字数据y的证明请求(步骤S10a,S20a)。
接着,事件顺序证明请求集合部12a把数字数据y作为输入的一部分或者全部计算顺序分配数据z,把该顺序分配数据z给顺序集合树叶子分配,以增量方式构成顺序集合树,同时,事件顺序证明制作部13a制作包含受理证书的证明应答(顺序补充方式;登录点的即时补充数据以及在登录点前登录的各登录点的在该登录点的延迟补充数据),通过收发部11a向用户装置2I发送证明应答(步骤S30a,S40a,S50a)。
由此,用户装置2I能够取得包含受理证书的证明应答(步骤S60a)。然后,用户装置2I重复该步骤S10a以及S60a的证明请求发送以及证明应答接收。
然后,证明装置1a,在用于顺序集合的一定期间(顺序集合期间)中,重复上述证明装置1a的操作,在顺序集合期间结束后,电子信息发表部17a,计算顺序集合树的根值,以电子方式发表该根值(步骤S70a,S80a,S90a)。
下面参照图40说明事件顺序证明验证方法。它相当于用户装置2I的第二验证功能。此外,图40表示在用户装置2A和2B间的数据的交换,以及用户装置2A对用户装置2B进行后置点判定请求(用户装置2A向用户装置2B请求对于在时间上比接收的受理证书的登录点后的受理证书的顺序判定)。
首先,用户装置2A,附加想验证的受理证书EOC(a)(在登录点a的受理证书)后向用户装置2B发送后置点判定请求(步骤S110a)。接收后置点判定请求的用户装置2B从接收的受理证书EOC(a)中抽出叶子号码n(a),从用户装置2B的登录点中检索比叶子号码n(a)大的叶子号码(步骤S120a,S130a)。在用户装置2B的登录点中有比叶子号码n(a)大的叶子号码的场合,选择该登录点的一个b,向用户装置2A发送该叶子号码n(b)(步骤S140a,S150a)。与此相对,在用户装置2B的登录点中没有比叶子号码n(a)大的叶子号码的场合,向用户装置2A发送没有可比较的数据的意思的消息(步骤S142a)。
从用户装置2B接收叶子号码n(a)的用户装置2A,选择具有比叶子号码n(b)大的叶子号码的用户装置2A的暂定登录点,取得在登录点a的暂定终端点af的延迟补充数据lateData(a,af),向用户装置2B发送(步骤S160a,S170a,S180a,S190a)。此外,在从用户装置2B接收没有可比较的数据的意思的消息时,结束验证(步骤S144a)。
从用户装置2A接收延迟补充数据lateData(a,af)的用户装置2B,从叶子识别号码n(a)和n(b)计算登录点a的对于登录点b的认证点o,从接收的受理证书EOC(a)和延迟补充数据lateData(a,af)计算认证点的分配值(步骤S210a)。接着,验证在登录点b的受理证书EOC(b)中包含的即时补充数据是否在用上述计算求得的认证点的分配值中包含,在包含认证点的分配值时,向用户装置2A发送登录点a在时间上比登录点b在前登录这样的判定结果(步骤S220a,S230a)。另一方面,在不包含认证点的分配值时,不能证明登录点a在时间上比登录点b在前登录,向用户装置2A发送存在某种错误这样的判定结果(步骤S220a,S240a)。
其结果,用户装置2A因为接收、取得判定结果,所以能够在两用户间进行受理证书发行的时间前后的验证(步骤S250a,S260a)。
此外,上述的事件顺序证明验证方法,是用户装置2A向用户装置2B进行后置点判定请求,但是也可以进行前置点判定请求(用户装置2A向用户装置2B请求对于在时间上比接收的受理证书的登录点前的受理证书的顺序判定)。图41是表示用户装置2A向用户装置2B请求进行前置点判定的场合在用户装置2A和2B之间的数据交换的顺序图。
首先,用户装置2A,附加想验证的受理证书EOC(a)(在登录点a的受理证书)后向用户装置2B发送前置点判定请求(步骤S310a)。接收前置点判定请求的用户装置2B从接收的受理证书EOC(a)中抽出叶子号码n(a),从用户装置2B的登录点中检索比叶子号码n(a)小的叶子号码、以及比叶子号码n(a)大的叶子号码(步骤S320a,S330a)。在用户装置2B的登录点中有比叶子号码n(a)小的叶子号码、以及比叶子号码n(a)大的叶子号码的场合,选择比叶子号码n(a)小的叶子号码的登录点b,同时选择比叶子号码n(a)大的叶子号码的暂定登录点bf(步骤S340a,S350a)。此外,在相应登录点不存在的场合,向用户装置2A发送没有可比较的数据的意思的消息(步骤S342a)。然后,用户装置2A,在从用户装置2B接收没有可比较的数据的意思的消息时,结束验证(步骤S344a)。
接着,用户装置2B取得登录点b的在暂定登录点bf的延迟补充数据lateData(b,bf),从受理证书EOC(b)和延迟补充数据lateData(b,bf)计算认证点的分配值(步骤S360a,S370a)。接着,验证在登录点a的受理证书EOC(a)中包含的即时补充数据是否在用上述计算求得的认证点的分配值中包含,在包含认证点的分配值时,向用户装置2A发送登录点a在时间上比登录点b在后登录这样的判定结果(步骤S380a,S390a)。另一方面,在不包含认证点的分配值时,不能证明登录点a在时间上比登录点b在后登录,向用户装置2A发送存在某种错误这样的判定结果(步骤S380a,S400a)。
其结果,因为用户装置2A接收、取得判定结果,所以能够在两用户间进行受理证书发行的时间前后的验证(步骤S410a,S420a)。
此外,上述事件顺序证明验证方法,是用户装置2A以及用户装置2B验证发行受理证书的时间的前后,但是本发明不限于此,也可以当事者以外的第三方机构(例如,在上述第一到第三实施形态中事件顺序证明监查装置3)进行验证.在这一场合,用户装置2A以及用户装置2B向第三方机构发送验证所需要的信息,由第三方机构(事件顺序证明监查装置3)进行验证.
因此,根据第四实施形态的事件顺序证明***100a,在使用树结构证明事件顺序的事件顺序证明***中,因为从用户装置2I接收证明请求的证明装置1a,对于该证明请求发行包含受理证书的通过顺序补充方式(关于登录点,在证明应答中包含该登录点的即时补充信息以及比该登录点在前登录的各登录点的该登录点中的延迟补充数据)的证明应答,用户装置2I使用该证明应答,能够验证在用户装置2I间的受理证书发行的时间的前后,所以即使在以电子方式发表汇总证明请求的发表数据,也能够验证受理证书的正当性。
<第五实施形态>
(5-1.***结构)
图42是本发明的第五实施形态的事件顺序证明***200a的***结构图。事件顺序证明***200a具有:证明装置4a;多个事件用户装置5I(I=A,B,…,N);以及通过相互连接以上各装置的、例如因特网、电话线路网等构成的计算机网络3a;证明装置4a响应来自用户装置5I的证明请求,向用户装置5I返回包含受理证书的证明应答。然后,用户装置5I能够从证明装置4a接收的该多个证明应答验证受理证书。
这里,本实施形态和第四实施形态,证明应答的形式不同,在本实施形态中,通过和“顺序补充方式”不同的后述的“链补充方式”制作证明应答。这点,在上述的顺序补充方式中,因为必须在各用户装置2I的各登录点,对于该用户装置2I的过去的登录点全体向该该用户装置2I返回其延迟补充信息,所以与过去的登录点的增加成比例,证明应答的数据量增加,但是在本实施形态的连锁补充方式中,能够抑制证明应答的数据量。此外,在本实施形态中,说明和上述实施形态不同的结构及功能,关于其他的结构及功能,给相同的部分加上相同的符号,省略说明。
证明装置4a具有:通过计算机网络3a和用户装置5I进行数据收发的收发部11a、使用顺序集合树汇总作为来自用户装置5I的证明请求发送的电子数据的事件顺序证明请求集合部12a、制作包含受理证书的证明应答的事件顺序证明应答制作部41a、对于集合证明装置4a在一定期间发行的受理证书的内容的数据进行高强度数字签名、制作发表数据的数字签名制作部14a、以电子方式发表附加高强度数字签名的发表数据的电子信息发表部15a、以及存储关于以受理证书为主的事件顺序证明的信息的存储部42a。
事件顺序证明应答制作部41a制作包含图43所示那样的受理证书EOC(y)的证明应答,向用户装置5I发送。受理证书EOC(y)包含从用户发送的数字数据y、能够通过上述顺序分配数据计算过程从数字数据y计算的顺序分配数据z、能够唯一确定分配有顺序分配数据z的顺序集合树的顺序集合树号码、能够唯一确定分配有顺序分配数据z的顺序集合树叶子的顺序集合树叶子号码、以及在该时刻能够取得的顺序集合补充数据的一部分(将其称为登录点的即时补充数据)SK的位置信息以及分配值构成。
另外,在证明应答中,构成为也包含用户装置52I的紧跟前的登录点的延迟补充数据TK2的位置信息以及分配值。
这里使用图37说明本实施形态中的证明应答。此外,如上述,把该证明应答的形式称为“链补充方式”。现在,假定来自某用户装置5I的登录点有X1(节点(0,2))、X2(节点(0,11))、X3(节点(0,18))、X4(节点(0,21))、X5(节点(0,29))、X6(节点(0,31))。
在链补充方式中在各登录点向用户装置5I返回以下那样的数据。
(1)在点X1的证明应答中,返回点X1的即时补充数据(具体说,节点(1,0)的分配值)。
(2)在点X2的证明应答中,返回点X2的即时补充数据、以及点X1的在点X2的延迟补充数据(具体说,作为点X2的即时补充数据:节点(3,0)、节点(1,4)、节点(0,10)的分配值;作为点X1的在点X2的延迟补充数据:节点(0,3)、节点(2,1)的分配值)。
(3)在点X3的证明应答中,返回点X3的即时补充数据、以及点X2的在点X3的延迟补充数据(具体说,作为点X3的即时补充数据:节点(4,0)、节点(1,8)的分配值;作为点X2的在点X3的延迟补充数据:节点(2,3)的分配值)。
(4)在点X4的证明应答中,返回点X4的即时补充数据、以及点X3的在点X4的延迟补充数据(具体说,作为点X4的即时补充数据:节点(4,0)、节点(2,4)、节点(0,20)的分配值;作为点X3的在点X4的延迟补充数据:节点(0,19)的分配值)。
下面,在X5以及X6中也同样。这样,在链补充方式中,作为证明应答,关于某登录点,包含该登录点的即时补充数据以及在该登录点的紧跟前的登录点的该登录点中的延迟补充数据。由此,在链补充方式中,因为即使过去的登录点增加,对于证明请求的证明应答的数据量也不成比例增加,所以能够抑制证明装置4a和用户装置5I间的通信数据量。此外,各证明应答,对于每一用户装置5I管理。
下面参照图44以及图45说明即使是链补充方式的证明应答,用户装置5I能够得到实质上和顺序补充方式的证明应答相同的数据。
如图44所示,假定顺序集合树ST2的3个叶子a1、a2、a3从左以该顺序排列,则从点a2的在点a3的延迟补充数据、点a2的即时补充数据、以及点a1的在点a2的延迟补充数据如下计算点a1的在点a3的延迟补充数据。
首先,设在点a2的在点a3的延迟补充数据中把级最高的节点的级为j2。另外,把a1的通过a2的认证点记为AP(a1,a2),把其兄弟节点记为AP’(a1,a2),设AP(a1,a2),的级为j1。
此时,第一,在点a1的在点a3的延迟补充数据中包含的认证路径节点中级比j1小的节点的分配值,包含在点a1的在点a2的延迟补充数据中。
第二,在点a1的在点a3的延迟补充数据中包含的认证路径节点中级等于j1的节点的分配值,能够从点a2的在点a3的延迟补充数据以及点a2的即时补充数据计算。
进而,在点a1的在点a3的延迟补充数据中包含的认证路径节点中级比j1大的节点的集合,等于在点a2的在点a3的延迟补充数据中包含的认证路径节点中级比j1大的节点的集合。因此,在点a1的在点a3的延迟补充数据中包含的认证路径节点中级比j1大的节点的分配值,可以从点a2的在点a3的延迟补充数据计算。
从上述,点a1的在点a3的延迟补充数据,可以从下面的3个数据计算。
(1)点a2的在点a3的延迟补充数据
(2)点a2的即时补充数据
(3)点a1的在点a2的延迟补充数据
此外,把从上述(1)~(3)计算点a1的在点a3的延迟补充数据的处理称为完全化波及处理。
通过使用该完全化波及处理,用户装置5I能够从链补充方式的证明应答计算顺序补充方式的证明应答。图45是表示该计算方法的表。这里,图45表示在顺序补充方式以及链补充方式中各登录点所需要的即时补充数据以及延迟补充数据。此外,链补充方式中的证明应答的即时补充数据以及延迟补充数据,是在双线中围起来的部分的数据。另外,图45中所示的箭头表示计算的方向。例如,根据图45,表示可以从a2的在a3的延迟补充数据(P1)、a2的即时补充数据(P2)、以及a1的在a2的延迟补充数据(P3)计算a1的在a3的延迟补充数据(P4)。
同样,可以从a3的在a4的延迟补充数据(P5)、a2的即时补充数据(P6)、以及a2的在a3的延迟补充数据(P1)计算a2的在a4的延迟补充数据(P7)。于是,通过反复这点,即使是链补充方式,最终,也能够计算图45所示的延迟补充数据全部,这不外是顺序补充方式的证明应答中的延迟补充数据。
因此,即使是本实施形态的链补充方式,在用户装置5I中,通过图45所示的完全化波及处理,能够进行和第一实施形态同样的验证。此外,关于该完全化波及处理,作为后述的“增量完全化”的处理,详细说明。
用户装置5I,具有通过计算机网络3a和证明装置4a收发数据的收发部21a、多次进行包含规定的数字数据的证明请求的事件顺序证明请求部22a、验证在对于证明请求的证明应答中包含的受理证书的事件顺序证明验证部51a、以及存储关于以包含受理证书的证明应答为主的事件顺序证明的信息的存储部52a。
这里,事件顺序证明验证部51a,因为在第四实施形态的事件顺序证明验证部23a的功能之外,具有进行后述的增量完全化的处理的功能,所以对于受理证书具有下面的验证功能。
作为第一验证功能,验证在通过证明装置4a的数字签名制作部14a以及电子信息发表部15a发表的发表信息中通过散列函数链接在受理证书中包含的顺序分配数据。具体说,验证作为顺序集合树的根值发表的值与用用户装置5I计算的根值是否一致。
作为第二验证功能,在公开发表信息前,也验证在用户装置5I之间的受理证书的发行的时间的前后。
下面使用图39说明第二验证功能。
现在,假定两个用户装置5A以及5B分别通过链补充方式取得各登录点的证明应答,把图39所示的a、a1、a2、af作为用户装置5A的登录点,把b作为用户装置5B的登录点。此外,af是暂定终端点。在图39中,有用户装置5A的一个登录点a,有位于其右的用户装置5B的登录点b,进而有位于其右的用户装置5A的登录点af。
在本实施形态中,首先,对于用户装置5A的登录点a,把af作为暂定终端点,进行图45所示完全化波及处理。由此,因为能够得到和顺序补充方式相同的证明应答,所以其后通过实施和第四实施形态相同的方法,能够验证登录点a和登录点b的时间的前后。亦即,即使在本实施形态中,如果把登录点af作为现时刻时的现时刻顺序集合树中的、登录点a通过登录点b的认证点o的分配值V(o)一致,则能够客观地证明登录点a的登录在登录点b的登录前发生。
此外,以上的各装置,至少由具有运算功能以及控制功能的中央处理装置(CPU:Central Processing Unit)、由具有存放程序或数据的功能的RAM(Random Access Memory)等组成的主存储装置(存储器)、具有即使硬盘(HD)等的电源断时也能够继续存储数据的二次存储装置的电子装置构成.其中,证明装置4a的事件顺序证明应答制作部41a以及用户装置5I的事件顺序证明验证部51a的处理,不外是具体表示的通过上述CPU执行的运算控制功能.另外,证明装置4a的存储部42a以及用户装置5I的存储部52a,具有上述主存储装置或者二次存储装置的功能.
(5-2.***操作)
这里,关于具有以上结构的事件顺序证明***200a中的事件顺序证明方法,因为是和把图39中的证明装置1a以及用户装置2I置换成证明装置4a以及用户装置5I的***相同,所以省略说明。另外,关于事件顺序证明验证方法,是把图40以及图41中的用户装置2A以及2B分别置换为用户装置5A以及5B,同时作为事前步骤,在用户装置5A以及5B的每一个中,如果执行后述的增量完全化处理,则因为其后的操作与图40以及图41的操作相同,所以省略说明。
<2-3.证明装置4a的数据存储方法>
(第一方法)
下面,更详细说明链补充方式中的证明装置4a的数据存储方法。首先,第一方法,是通过证明装置4a在存储器上构成顺序集合树实现上述的链补充方式的方法(下面称为方法A)。
图46是表示在采用方法A时的存储部42a中存储的数据的概略结构的图。如图46所示,在存储部42a中,存储顺序集合树自身,亦即分配有证明请求的节点、可计算的节点的位置信息以及分配值,同时对于每一用户装置5I存储紧前面登录点的位置信息。
在该方法A中,证明装置4a每次接收证明请求时,在存储部42a上存储的顺序集合树中,加上级为0的节点,对于能够在级为1或以上的节点计算分配值的节点,在顺序集合树上追加该节点,附加其分配值,在存储部42a上构建顺序集合树。
下面使用图47说明方式A中的证明装置4a的操作。这里,图47是表示证明装置4a的事件顺序证明请求集合部12a以及事件顺序证明应答制作部41a的功能的流程图。
首先,证明装置4a从用户装置5I接收证明请求后,从证明请求生成顺序分配数据,给顺序集合树的新叶子分配,作为新登录点,同时,存储该登录点的节点信息(位置信息以及分配值)(步骤S1101a,S1103a)。
接着,遵照即时补充数据的定义,从在存储部42a中存储的顺序集合树取得新登录点的即时补充数据(步骤S1105a)。
接着,通过新登录点的追加,对于能够在级为1或以上的节点计算分配值的节点计算分配值,在存储部42a中存储该节点的位置信息以及分配值(步骤S1107a)。
接着,遵照即时补充数据的定义,从在存储部42a中存储的每一用户装置5I紧前面登录点以及顺序集合树取得紧前面登录点的延迟补充数据(步骤S1109a)。
接着,把新登录点作为紧前面登录点,作为该用户装置5I的紧前面登录点存储,同时制作包含在步骤S1105a以及S1109a取得的即时补充数据以及延迟补充数据的证明应答,向用户装置5I发送(步骤S1111a,S1113a,S1115a)。
(第二方法)
下面,第二方法,是证明装置4a不是在存储部42a上构成顺序集合树,而是在存储部42a上构成堆栈结构,由此来实现上述的链补充的方式的方法(下面称为方法B).方法B进一步改善与顺序集合树的大小几乎成比例而增加必要存储量的方法A,因为使用堆栈结构计算顺序集合树的节点分配值、对于各顺序证明请求的即时补充数据、以及延迟补充数据,所以可以减少必要存储量,能够使在证明装置4a的存储部42a中不能容纳的大小的顺序集合树的处理成为可能.
图48是表示采用方法B时在存储部42a中存储的数据的概略结构的图。如图48所示,在存储部42a中,具有存储即时补充数据(位置信息以及分配值)的第一堆栈421a和对于每一用户装置5I存储延迟补充数据的存储部422a,对于每一用户装置5I存储延迟补充数据的存储部422a用紧前面登录点(位置信息)423a以及存储延迟补充数据(位置信息以及分配值)的第二堆栈424a构成。此外,把成为第一或者第二堆栈的要素那样的数据称为堆栈帧。
这里,上述两种堆栈中的第一堆栈,为迄今使用的数据结构。例如,在R.Merkle:Secrecy,Authentication,and Public Key Systems,UMI Research Press,1982.的第36页中记载了用于计算二分树的根节点的分配值的递归过程H(a,b),在使用一个堆栈标准安装该递归过程时,该堆栈以与上述第一堆栈同样的方式处理。
下面使用图49说明方式B中的证明装置4a的操作。这里,图49是表示证明装置4a的事件顺序证明请求集合部12a以及事件顺序证明应答制作部41a的功能的流程图。
首先,证明装置4a从用户装置5I接收证明请求后,从证明请求生成顺序分配数据,给顺序集合树的新叶子分配,作为新登录点(步骤S1121a,S1123a)。
接着,从第一堆栈421a取得新登录点的即时补充数据(步骤S1125a)。
接着,在第一堆栈中追加包含新登录点的位置信息以及分配值的堆栈帧(步骤S1127a)。此时,在第一堆栈中新追加的堆栈帧,在其他的用户装置5I中,是与紧前面登录点的补充数据对应的时,在该用户装置5I的第二堆栈中追加该堆栈帧(步骤S1129a,S1131a)。
接着,只要在第一堆栈中存在与作为兄弟节点的两个节点对应的两个堆栈帧,就生成包含关于该两个节点的父节点的节点的位置信息和分配值的堆栈帧,从第一堆栈中除去与该两个节点对应的堆栈帧,在第一堆栈中追加上述新生成的堆栈帧(步骤S1133a,S1135a,S1137a,S1139a)。此时,在第一堆栈中新追加的堆栈帧,在其他的用户装置5I中,是与紧前面登录点的补充数据对应的时,在该用户装置5I的第二堆栈中追加该堆栈帧(步骤S1141a,S1143a)。
接着,从对于相应用户装置5I的第二堆栈取得紧前面登录点的新登录点中的延迟补充数据,清空对于该用户装置5I的第二堆栈(步骤S1145a)。
接着,把新登录点作为紧前面登录点,作为该用户装置5I的紧前面登录点存储,制作包含在步骤S1125a以及S1145a取得的即时补充数据以及延迟补充数据的证明应答,向用户装置5I发送(步骤S1147a,S1149a,S1151a)。
使用图37所示的具体例说明上述操作。此外,把新登录点作为X4说明。
首先,证明装置4a从用户装置5I接收证明请求后,从证明请求生成顺序分配数据,给作为顺序集合树的新叶子的登录点X4分配,作为新登录点(步骤S1121a,S1123a)。
接着,从第一堆栈421a的堆栈帧0取得作为新登录点X4的即时补充数据的节点(3,0)的分配值,从第一堆栈421a的堆栈帧1取得节点(2,4)的分配值,从第一堆栈421a的堆栈帧2取得节点(0,20)的分配值(步骤S1125a).
接着,在第一堆栈中追加包含新登录点(0,21)的位置信息以及分配值的堆栈帧3(步骤S1127a)。此时,在第一堆栈中新追加的堆栈帧,在其他的用户装置5I中,是与紧前面登录点的补充数据对应的时,在该用户装置5I的第二堆栈中追加该堆栈帧(步骤S1129a,S1131a)。
接着,因为在第一堆栈中存在与兄弟节点对应的两个堆栈帧(堆栈帧2和3),所以新生成包含关于该两个节点的父节点的节点(1,10)的位置信息和分配值的堆栈帧,从第一堆栈中除去与该兄弟节点对应的堆栈帧(堆栈帧2和3),作为新的堆栈帧2a在第一堆栈中追加上述新生成的堆栈帧(步骤S1133a,S1135a,S1137a,S1139a)。此时,在第一堆栈中新追加的堆栈帧,在其他的用户装置5I中,是与紧前面登录点的补充数据对应的时,在该用户装置5I的第二堆栈中追加该堆栈帧(步骤S1141a,S1143a)。
接着,从对于该用户装置5I的第二堆栈424a的堆栈帧0取得节点(0,19)的分配值,其为紧前面登录点X3的在新登录点X4的延迟补充数据,清空对于该用户装置5I的第二堆栈(步骤S1145a)。
接着,把新登录点X4作为紧前面登录点X3,作为该用户装置5I的紧前面登录点423a存储,同时制作包含在步骤S1125a以及S1145a取得的即时补充数据以及延迟补充数据的证明应答,向用户装置5I发送(步骤S1147a,S1149a,S1151a)。
(第二方法的安装例)
下面说明使用上述方法B的证明装置4a的证明应答制作的一个安装例。
图50是表示证明装置4a的存储部42a的结构的图。如图50所示,具有计算顺序集合树的节点的分配值的节点分配值计算用堆栈(下面称stack)以及延迟补充用数据结构的数组(下面称chain_comple_data_vec)。Stack的要素是由堆栈帧组成的堆栈结构,各堆栈帧由place部和value部组成。其中place部保持表示顺序集合树的节点位置的帧,由表示该节点的级的level部和表示级内的号码的index部组成。value部保持该节点的分配值。chain_comple_data_vec是数据结构chain_comple_data的数组,chain_comple_daa由late_ccomple_stack部、prev_point部、prev_point_old部、以及old_tree_id部组成。其中,late_ccomple_stack部和stack部同样是由堆栈帧组成的堆栈结构,prev_point部表示用于表示紧前面的登录点的识别号码(非负整数或nil),prev_point_old部表示用于表示比现在的顺序集合树前生成的顺序集合树中的紧前面的登录点的识别号码(非负整数或nil),old_tree_id部是在prev_point_old部非nil时表示prev_point_old部的登录点属于的集合树的识别号码(非负整数或nil)。
图51表示证明装置4a中的链补充的过程GET_REQ。该过程中使用的变量以及函数如下。
·v0是保持数字数据(通常为散列值)的变量。
·idx0是保持表示用户识别号码的整数的变量。
·_lev0_ptr是保持分配下一接收的事件顺序证明请求的叶子的识别号码的变量,初始值为0。
·place0是保持表示顺序集合树的节点位置的帧的变量。
·sflm0是保持堆栈帧的变量。
·Fv(0)表示把在事件顺序证明请求中包含的v0数字数据变换为给顺序集合树分配的数据的函数。可以设Fv(0)等于0,也可以作为对v0使用规定的散列函数(例如SHAI)的结果。
·_tree_id是保持顺序集合树的识别号码的变量。
·make-stackflm(place0,v0)是把位置place和数字数据v0作为参数、返回把place0作为place部持有、把V0作为value部持有的堆栈帧的函数。
·stack_buf是保持某瞬间的堆栈的状态的变量。
·handle_chain_comple(id0,tree_id0,idx0,V0,
prev_point0,immed_stack_data0,late_stack_data0)
表示制作由顺序集合树的识别符tree_id0、叶子的识别符idx0、分配数据V0、即时补充数据immed_stack_data0、延迟补充数据late_stack_data0组成的受理证书,向持有用户识别号码id0的用户装置5i发送的函数。
在证明装置4a每次接收证明请求时,把从请求者接收的数字数据作为v0、把请求者的识别号码作为id0,由该过程调用(步骤ST101a~ST117a)。
图52表示从图51的过程GET_REQ调用的、节点值计算处理的过程COMP_NODE_VALS。在该过程中使用的变量以及函数如下。
·sflm1b是保持堆栈帧的变量。
·place1b是保持帧的变量。
·idx1b是保持整数的变量。
·lev1b是保持整数的变量。
·val1b是保持数字数据(通常为散列值)的变量。
·sflm0b是保持堆栈帧的变量。
·place0b是保持帧的变量。
·lev0b是保持整数的变量。
·place1b是保持帧的变量。
·lev_nw以及idx_nw是保持整数的变量。
·floor(x)是把实数x作为参数,返回不超过x的最大的整数的函数。进而,对于y≠0,写floor(x,y)=floor(x/y)。亦即floor(x,y)是用y除x时的整商。
·hash_comb2(val0,val1)是把用比特列表示的两个数字数据val0和val1作为参数、连接val0和val1、返回使用规定的散列函数(SHAI等)的结果的函数。
图53表示从图51的过程GET_REQ以及图52的过程COMP_NIDE_VALS调用的、延迟数据设定处理的过程REGISTER_COMPLE_DATA。在该过程中使用的变量以及函数如下。
·place是保持帧的变量,sflm是保持堆栈帧的变量。
·id是保持表示用户识别号码的整数的变量。
·N是保持已登录的用户的总数的变量。
·auth_node_p1(prev_point,place)是把顺序叶子的识别号码的prev_point和位置place作为参数、在prev_point的延迟补充数据中包含place的分配值时返回true、不包含时返回false的函数.在设place=(j,i)时,为使auth_node_p1(prev_point,place)成为true的必要充分条件是floor(prev_point,2j)是偶数,i=floor(prev_point,2j)+1。
下面参照图54到图56,说明一个集合间隔结束、结束对于该集合间隔的顺序集合树、初始化对于下一集合间隔的下一顺序集合树的顺序集合树切换处理。
图54表示顺序集合树切换处理的主程序。在该程序中,在执行在图55中记述的子程序TERMINATE_STREE_SUB1和在图56中记述的子程序TERMINATE_STREE_SUB2后,给全局变量_tree_id加1,初始化两个全局变量_lev0_ptr和_stack后结束。这些全局变量在图51中记述的过程GET_REQ中使用。
在图55中记述的TERMINATE_STREE_SUB1记述根据在其集合间隔结束的时刻构成的顺序集合树根据需要追加节点,给这些节点根据事先决定的过程分配规定的散列值,定义该顺序集合树的根值的处理。
参照图57,具体说明响应特定的情况TERMINATE_STREE_SUB1的操作。考虑叶子识别号码9的处理结束后,在进入叶子识别号码10的处理前集合间隔结束,调用TERMINATE_STREE_SUB1的状况。在开始的时刻,_stack的状态,从项部看包含[(1,4),V(1,4)]和[(3,0),V(3,0)]。通过过程TERMINATE_STREE_SUB1,给节点(1,5)和(2,3)分配虚拟的节点值,决定该顺序集合树的根值,同时定义各登录点的完全认证路径数据(能够计算根值的认证路径节点的集合),可以如以下(1)~(4)所示进行。
(1)通过步骤ST1211a,在局部变量sflm_xb中设定[(1,4),V(1,4)],变成_stack仅包含[(3,0),V(3,0)]。接着通过步骤ST1212a,在局部变量place_xb中设定(1,4),在idx_xb中设定4。
在步骤ST1213a,判定idx_xb是否是偶数,但是因为现在的idx_xb的值4是偶数,所以前进到步骤ST1214a。
在步骤ST1214a,判定_stack是否是nil。因为_stack不是nil,所以前进到步骤ST1215a。
在步骤ST1215a,在局部变量lev_xb中设定V(1,4),在idx_xb中设定1+4=5。进而,在place_1b中设定(lev_xb,idx_1b)=(1,5)。该位置信息(1,5)表示最初的虚拟节点。调用计算给该最初的虚拟节点分配的散列值的函数dummy_hash,在dum_val_1b中设定其返回值。进而在sflm_1b中设定bmake-stackflm(place_1b,dum_val_1b)=[(1,5),dum_val_1b]。这里,make-stackflm是把节点的位置信息和散列值作为参数生成堆栈帧的函数。这里,把place_1b和sflm_1b作为参数调用REGISTER_COMPLE_DATA(图53中定义的)。
接着,在步骤ST1216a,在lev_nw中设定2,在idx_nw中设定floor(idx_xb,2)=floor(4,2)=2,进而,在place_nw中设定(2,2)。接着,在val_nw中设定hash_comb2(val_xb,dum_val_1b)。hash_comb2是把两个散列值作为 参数,连接它们,返回使用规定的散列函数的结果的函数。在sflm_nw中设定make-stackflm(place_nw,val_nw),把sflm_nw推到_stack中。由此,_stack变成包含[(2,2),V(2,2)]、[(3,0),V(3,0)]的结构。进而把place_nw和sflm_nw作为参数调用REGISTER_COMPLE_DATA。这里返回步骤ST1211a。
(2)在步骤ST1211a中弹出一个_stack,在sflm_xb中设定[(2,2),V(2,2)].(这里,_stack的状态成为[(3,0),V(3,0)].)进而在place_xb中设定(2,2),在idx_xb中设定2.
在步骤ST1213a,判定idx_xb的值2为偶数,前进到步骤ST1214a,因为_stack不是nil,所以进一步前进到步骤ST1215a。在lev_xb中设定2,在val_xb中设定V(2,2),在idx_1b中设定3,在place_1b中设定(2,3),在dum_val_1b中设定dummy_hash的返回值,把该值表示为V(2,3)。进而在sflm_1b中设定make-stackflm(place_1b,dum_val_1b)=[(2,3),V(2,3)]。把place_1b和sflm_1b作为参数调用REGISTER_COMPLE_DATA。
接着,在步骤ST1216a,在lev_nw中设定3,在idx_nw中设定floor(idx_xb,2)=floor(2,2)=1,进而,在place_nw中设定(3,1)。接着,在val_nw中设定hash_comb2(val_xb,dum_val_1b),将该值记为V(3,1)。在sflm_nw中设定make-stackflm((3,1),V(3,1)),把sflm_nw推到_stack中。由此,_stack变成包含[(3,1),V(3,1)]、[(3,0),V(3,0)]的结构。进而把place_nw和sflm_nw作为参数调用REGISTER_COMPLE_DATA。这里返回步骤ST1211a。
(3)在步骤ST1211a中弹出一个_stack,在sflm_xb中设定[(3,1),V(3,1)]。(_stack的状态成为[(3,0),V(3,0)]。)进而在place_xb中设定(3,1),在idx_xb中设定1。
在步骤ST1213a,判定idx_xb的值1为奇数,前进到步骤ST1217a,在lev_xb中设定3,在val_xb中设定V(3,1)。弹出一个_stack在sflm0b中设定弹出的[(3,0),V(3,0)]。进而在place_0b中设定(3,0),在lev_0b中设定3,在val_1b中设定V(3,0)。
在步骤ST1218a,在lev_nw中设定4,在idx_nw中设定floor(1,2)=0,在place_nw中设定(4,0),在val_nw中设定hash_comb2(V(3,0),V(3,1)),将该值设为V(4,0)。在sflm_nw中设定make-stackflm((4,0),V(4,0)),把sflm_nw推到_stack中。由此,_stack变成包含[(4,0),V(4,0)]的结构。进而把place_nw和sflm_nw作为参数调用REGISTER_COMPLE_DATA。这里返回步骤ST2111a。
(4)在步骤SR1211a,弹出一个_stack,在sflm_xb中设定[(4,0),V(4,0)]。(_stack的状态成为nil。)进而,在place_xb中设定(4,0),在idx_xb中设定0。在步骤ST1213a,判断idx_xb的值0为偶数,前进到步骤ST1214a,因为_stack为nil,所以前进到步骤ST1219a,在返回值中设定V(4,0)后结束。
以上的结果,该过程的返回值成为作为该顺序集合树的根值的V(4,0)。下面,说明在图56中记述的子例行程序TERMINATE_STREE_SUB2。
首先,使用以下的变量以及常数。
·保持作为用户装置的识别符的非负整数的变量id
·表示用户装置的总数的常数N
·具有和图50的延迟补充用堆栈的数组_chain_comple_data_vec的各要素相同结构的chain_comple_data2
·保持非负整数或者nil的变量prev_chain_poimt2
下面说明TERMINATE_STREE_SUB2的动作。
对于id=0,...,N-1执行图56的框1。
在框1中执行以下的动作。
在chain_comple_data2中设定_chain_comple_data_vec[id],在prev_chain_point2中设定chain_comple_data2的prev_point部(步骤ST1222a)。
如果prev_chain_point2是nil,则结束该框(步骤ST1223a)。
如果不是,则在prev_chain_point2中设定chain_comple_data2的prev_point_old部,在nil中设定prev_point部,在old_tree部中设定现在的集合树识别符,接着在_chain_comple_data_vec[id]中设定chain_comple_data2(步骤ST1224a)。
<5-4.用户装置5I中的增量完全化>
下面详细说明用户装置5I中的增量完全化的处理。这里,在增量完全化中,大体分为(1)增量个别完全化和(2)增量综合完全化这两种处理,两者都在用户装置5I中执行。此外,上述“完全化波及处理”,说明增量综合完全化中的一种功能。
(增量个别完全化)
假定属于用户装置5A的某集合间隔I的或者作为其次的集合间隔的最初的登录点的登录点af作为暂定终端点。
在af是某集合间隔I的其次的集合间隔的最初的登录点时,称为对于相应集合间隔I的后记点。
设在集合间隔I之间,到该暂定终端点af登录的集合为a(0),a(1),...,a(n)。(通常,a(n)=af,但是af是后记点时此点不成立。)此时,从登录点的集合,构成在把af作为暂定终端点时的一个或者多个顺序集合小树,把构成的顺序集合小树的集合,称为把af作为暂定终端点时的顺序集合森林。
参照图58,具体说明顺序集合森林和顺序集合小树。
在af在该集合间隔中时,af表示叶子号码(非负整数),在af的二进制表示中设在k(1),k(2),...,k(m)位中为1(此处设最小位为0位)。在图58中,取m=4。这里,k(m)可以是0,必须有k(1)>k(2)>k(3)>...>k(m)。此时,属于上述顺序集合森林的第n号的顺序集合小树的叶子数为2k(n)。在图58中,ST2(1),...,ST2(4)表示顺序集合小树。
所谓增量个别完全化是对于指定的a∈{a(0),a(1),...,a(n)}进行以下的计算(1)~(3)。
(1)计算a所属的顺序集合小树ST(唯一决定)。
(2)从在a(0),a(1),...,a(n)(以及af)取得的补充数据计算在顺序集合森林中位于上述ST左的一个或者多个顺序集合小树的根值的分配值。
(3)设ST中的认证路径为authPathST(a),从在a(0),a(1),...,a(n)(以及af)取得的补充数据计算authPathST(a)所属的节点的分配值。
此外,增量个别完全化的定义,也可以使用以下定义的现时刻顺序集合树进行。这里,所谓现时刻顺序集合树,称包含把af作为暂定终端点时的顺序集合树那样的最小二分树为把af作为暂定终端点时的现时刻顺序集合树。
图59用实线以及虚线表示现时刻顺序集合树的枝。其中,虚线表示的枝是在顺序集合森林中不包含但是为构成现时刻顺序集合树而追加的枝。另外涂黑的小圆是在顺序集合森林中包含的节点,未涂黑的小圆是为构成现时刻顺序集合树而追加的节点。把现时刻顺序集合树表示为CST,设CST中a的认证路径为authPathCST(a)。此时,所谓增量个别完全化,与对于指定的a∈{a(0),a(1),...,a(n)},从a(0),a(1),...,a(n)(以及af)取得的补充数据计算属于authPathCST(a)、已经决定了分配值的节点的分配值等值。
此外,在把顺序集合森林的叶子数的总数作为N时,现时刻顺序集合树的高度h为成为N≤2k的最小的非负整数。
在上述的基础上,返回到说明第二验证功能的图38后,如果对于登录点把af作为暂定终端点进行增量个别完全化,则可以计算认证点o的分配值V(o)。由此,在把登录点af作为现时刻时的现时刻顺序集合树中的、登录点a的通过登录点b的认证点o的计算的分配值V(o),如果包含在在登录点b取得的即时补充数据中,则能够客观地证明登录点a的登录在登录点b的登录前发生。
下面,参照图60以及图61,说明增量完全个别化的动作。图60是表示增量完全个别化的动作的流程图。
首先,在比暂定终端点af前的登录点指定一个属于集合间隔I的登录点a(步骤S510a)。在图61所示的顺序集合森林中,把指数18的叶子(节点(0,18))作为a。
接着,计算登录点a属于的顺序集合小树ST(步骤S520a)。在图61所示的顺序集合森林中,构建毕顺序集合小树中从左第二号ST2(2)为ST。
接着,计算在登录点a的ST中的各延迟认证路径节点s(步骤S530a)。在图61所示的顺序集合森林中,指数19的叶子(节点(0,19))和级2的指数5的节点(节点(2,5))成为延迟认证路径节点。
接着,分别决定各延迟认证路径节点s的取得参照点(步骤S540a)。这里,说明取得参照点以及取得虚拟点。此外,下面把某登录点a的即时补充数据和a的在下一登录点a1取得的a的延迟补充数据的合并称为登录点a的链补充数据。
在已给登录点a0时,把为计算在其authPath(a0)中级j的节点(j,s(j))的分配值V(j,s(j))而能够从补充数据直接取得充分的信息或者根据该数据通过计算能够取得的请求登录点,称为V(j,s(j))的取得参照点。于是,把接收上述必要的补充数据的登录点称为取得虚拟点。
例如,在图37所示的顺序集合树中,在已给登录点X3时,作为延迟补充数据之一的节点(0,19)的取得参照点为登录点X3(节点(0,18)),取得虚拟点为登录点X4(节点(0,21))。另外,在已给登录点X3时,作为即时补充数据之一的节点(4,0)的取得参照点以及取得虚拟点,为登录点X3(节点(0,18))。一般,关于即时补充数据,取得参照点和取得虚拟点一致。
接着,以在步骤S540a决定的取得参照点为基础,计算各认证路径节点s的分配值(步骤S550a)。
根据上述,结束在登录点a的增量完全化的处理,使用该计算结果,对包含登录点a的分配值的输入使用抗冲突散列函数,能够计算V(root(ST))。此外,上述计算是可能的这点,是由于s的分配值的取得参照点以及取得虚拟点都位于暂定登录点af以前。
(增量个别完全化的安装例)
下面说明上述的增量个别完全化的一个安装例。
首先,图62表示决定顺序集合小树ST的计算过程FOREST_SST。它相当于图60的步骤S520a。
在该过程中使用的变量以及函数如下。
·作为输入,叶子识别符a(非负整数),暂定终端点的识别符fin(非负整数)
·作为输出,a所属的顺序集合小树的最左边的叶子识别符start(非负整数)、和a所属的顺序集合小树的最右边的叶子识别符last(非负整数)
·作为变量,保持非负整数的变量rest、ht、leaf_num
·作为可使用的函数,log2(x):log2(x)以下的最大的整数;expt(x,y):x和y的乘积。
该算法,把叶子识别符a(非负整数)和暂定终端点的识别符fin(非负整数)作为输入,在属于在该暂定终端点的登录结束的时刻的顺序集合森林的顺序集合小树中,把a所属的顺序集合小树作为ST时,输出ST的位于最左的叶子的识别符start(非负整数)和位于最右的叶子的识别符last(非负整数)的组合。该顺序集合小树ST的叶子的数为last-start+1,该顺序集合小树ST的高度,为log2(last-start+1)。
对于图61所示的具体例,如使用图62的过程则如下述。设叶子识别符a为18,暂定终端点的识别符fin为26。此时,遵照图62的过程计算的话,作为start返回16,作为last返回23。从该输出,可知a所属的顺序集合小树是图61的ST2(2)。
下面,图63表示增量完全化中的认证路径节点分配值的取得参照点决定过程DECIDE_GET_POINT_A。该过程用于决定指定的请求登录点的指定的级的认证路径节点的分配值可以从哪个请求登录点的即时补充数据或者延迟补充数据得到,相等于图60的步骤S540a。
图64表示在过程DECIDE_GET_POINT_A中使用的数据结构和变量的一部分。数据结构chaindata是由leaf_index部、rgt_balue部、immediate部、late部组成的结构。设M是一个用户装置5I在一个集合间隔内送出的顺序证明请求的最大数。
在该过程中使用的其他的变量以及函数如下。
·变量chaindata_store是要素数是M的数组,数组的各要素保持数据结构chaindata(参照图64)。
·chaindata0是保持数据结构chaindata的变量。
·a0是保持表示顺序集合树的叶子识别符的整数的变量。
·对于顺序集合树的节点(j,i),subTree(j,i)表示以(j,i)为根的顺序集合树的子树。
·对于顺序集合树的子树ST,leafs(ST)表示ST的叶子的集合。例如,leafs(subTree(j,i))是子树subTree(j,i)的叶子的集合。另外,height(ST)表示ST的高度。
下面根据图65说明图63所示的增量完全化的认证路径节点分配值的取得参照点决定过程(DECIDE_GET_POINT_A)的算法的根据。
这里,设以af为暂定终端点构成完毕的森林内的顺序集合小树中a0属于的顺序集合小树为ST(a0∈leafs(ST))。
另外,设ST内的a0的认证路径为authPathST(a0),设
authPathST(a0)=[(0,s(0)),(1,s(1)),...,(k-1,s(k-1))]。
(式中k为构成完毕的森林内的a0属于的顺序集合小树ST的高度,即k=height(ST))下面,对于非负整数n、m,用[n...m]表示大于等于n小于等于m的整数的集合。
对于各j∈[0...k-1],下面表示决定能够从哪个登录点的补充数据计算(j,s(j))的算法。
设rtPathST(a0)为ST中的a0的根路径,设
rtPathST(a0)=[(0,r(0)),(1,r(1)),...,(k-1,r(k-1)),(k,r(k))]。r(0)=a0,root(ST)=(k,r(k))。设j∈[0...k-1]。
(1)(j,r(j))是(j+1,r(j+1))的left-child时,
s(j)=r(j)+1,(j,s(j))是(j+1,r(j+1))的right-child。在属于leafs(subTree(j,r(j)))的请求登录点中,计算位于最右的点,设为a1。
(1-1)a1≠af时,假定a1的下一请求登录点为a2(因为a1≠af,所以存在这样的a2。a2≤af)。
(1-1-1)在a2∈leafs(subTree(j,s(j)))时,设在属于leafs(subTree(j,r(j)))的请求登录点中位于最右面的请求登录点为a3。
(1-1-1-1)在a3=last(leafs(subTree(j,s(j))))时(参照图65(a)),即时补充数据immedData(a3)包含subTree(j,s(j)中的a3的完全补充数据cmpltData(subTree(j,s(j),a3)。因此,
此时,V(j,s(j)的取得参照点以及取得虚拟点都可设为a3。
(1-1-1-2)在a3≠last(leafs(subTree(j,s(j))))时,
(1-1-1-2-1)在a3≠af时(参照图65(b)),设a3的下一请求登录点为a4。(因为a3≠af,所以存在这样的a4。a4≤af。有a4为后记点的可能性)
设a3的通过a4的认证点的级为j,则j’≥j+1。
因此,根据顺序集合树的性质,V(j,s(j))可以从在a3取得的即时补充数据和在a4取得的(对于a3的)延迟补充数据计算。即
(此外,如果设a是a3通过a4的认证点,则在immedData(a4)中包含V(a),但是要注意这不限于V(j,s(j))。
此时,也可以设V(j,s(j))的取得参照点为a3,取得虚拟点为a4。a3≤af且a4≤af。
(1-1-1-2-2)在a3=af时(参照图65(c))
此时,在把af作为暂定终端点的构成完毕的森林中没有包含(j,s(j))的顺序集合小树。
因此,不存在ST包含(j,s(j))。因此不可能得到这样的情况。
(1-1-2)在不是a2∈leafs(subTree(j,s(j)))时(参照图65(d)),V(j,s(j))∈latedata(a1,a2)。
也可以设V(j,s(j))的取得参照点为a1,V(j,s(j))的取得虚拟点为a2。
a1≤af且a2≤af。
(1-2)a1=af时(参照图65(e))
此时,在把af作为暂定终端点的构成完毕的森林内没有包含(j,s(j))的顺序集合小树。
因此,不存在ST包含(j,s(j))。因此不可能得到这样的情况。
(2)(j,r(j))是(j+1,r(j+1))的right-child时(参照图65(f)),
r(j)=s(j)+1,(j,s(j))是(j+1,r(j+1))的left-child。
V(j,s(j))∈immedData(a)
可以把V(j,s(j))的取得参照点以及取得虚拟点都设为a0。a0≤af。
从上述可知,图63所示的增量完全化的认证路径节点分配值的取得参照点决定过程(DECIDE_GET_POINT_A),因为是考虑了所有的情况,所以图63所示的算法是正确的。
下面,图66表示在给定请求登录点a时计算在其authPath(a)中包含的级j的节点(j,a(j))的分配值V(j,a(j))的过程COMPLETION_SUB1(式中,0≤j<k,k是顺序集合树的高度)。它是中心说明图70的步骤S550a的流程图。
在该过程中使用的变量以及函数如下。
·chaindata0以及chaindata1是保持数据结构chaindata的变量。
·immedData1以及lateData1是保持数据结构stackflm的线性列表的变量。
·chaindata_store是存储在相应集合期间中的、在各登录点作为证明应答接收的数据的数组。数组的各要素,具有图64中定义的chaindata的结构。该数组的第i号要素包含在该集合间隔中的第i号登录点的即时补充数据和在其后的登录点取得的第i号登录点的延迟补充数据。
(1)本过程以两个参数(输入)为基础,设第一参数为表示数组chaindata_store的index的整数i0,第二参数为表示顺序集合树的级的整数j(步骤S5501a)。
(2)在局部变量chaindata0中设定chaindata_store[i0](步骤S5502a),把局部变量a0作为chaindata1的leaf_index部(步骤S5503a),在变量a1中设定authPath(a0)的级j的节点的index(步骤S5504a)。
(3)通过在图63中记述的认证路径节点分配值决定过程DECIDE_GET_POINT_A决定V(j,a(j))的取得参照点a2(请求登录点之一,从在该点取得的链补充数据可以计算V(j,a(j)))(步骤S5505a)。
(4)检索数组chaindata_store,决定成为数组要素的index的整数i1使leaf_index部为a2(步骤S5506a)。
(5)在变量chaindata1中设定chaindata_store[i1](步骤S5507a)。
(6)在变量rgt_Val1中设定chaindata1的rgt_val部,在变量immedDtata1中设定chaindata1的immediate部,在变量lateData1中设定chaindata1的late部(步骤S5508a)。
(7)判定rgt_val1、immedData1、或者lateData1是否包含place部成为(j,a1)的堆栈帧(步骤S5509a)。
(7-1)如果包含,则返回该值(步骤S5510a)。
(7-2)在不包含时,从immedData1和lateData1,从级0到级j顺序计算通过散列函数可计算的节点的分配值(步骤S5511a).
(7-2-1)判定在上述顺序计算的分配值中是否包含V(j,a(j))(步骤S5512a)。
(7-2-1-1)如果包含,则返回该值(步骤S5513a)。
(7-2-1-2)如果不包含,则输出错误(步骤S5514a)。
图67表示在给定登录点a时计算在其authPath(a)中包含的级j的节点(j,a(j))的分配值V(j,a(j))的列表
[V(0,a(0)),V(1,a(1)),...,V(k-11,a(k-11))]
的过程COMPLETION_SUB1(式中,0≤j<k,k是顺序集合树的高度)
该过程中使用的变量以及函数如下。
·设k是顺序集合树的高度。
·设auth_node_vals是长度为k的数组,各数组要素保持散列值。
首先,对于各j使用图66的COMPLETION_SUB1,计算属于authPath(a)的各节点的分配值,在auth_node_vals[i]中存储计算结果(步骤S5523a,S5524a)。
接着,把auth_node_vals作为返回值,结束(步骤S5525a)。
(增量“整体”完全化)
上述的增量完全化方法,是指定成为完全化的对象的受理证书、进行该指定的受理证书的个别完全化的方法。下面叙述的增量完全化的方法,是综合某用户装置5I连续取得的一系列的受理证书,计算与通过上述的增量个别完全化计算的数据同样的数据的方法。将这种增量完全化称为增量“整体”完全化。亦即,把对于一系列的登录点a(0),a(1),...,a(n)全体综合计算和通过上述的增量个别完全化计算的数据同样的数据,称为增量“整体”完全化。
增量“整体”完全化,通过使用上述完全化波及处理的下面的过程执行。
(1)设a(0),...,a(n)为属于某集合间隔I的、通过某用户装置5I的一系列的登录点。
(2)设通过用户装置5I的a(n)的下一登录点为af。也可以把af称为后记点。
(3)通过在图68中记述的过程COMPLETION_BULK_BACKWARD1,对于各a=a(n),...,a(0)以该顺序进行增量完全化。
通过该过程,对于各登录点a(n-i)(其中i=0,...n)可以实现把af作为暂定终端点的场合的增量个别完全化,但是,可通过如下所示的数学归纳法表示(参照图69以及图70)。下面,为简单起见,考虑a(0),...,a(n)属于共同的顺序集合小树ST2,af位于ST2的各叶子右面的场合。此外,一般的场合也同样。
对于i=0,...,n,包含通过过程COMPLETION_BULK_BACKWARD1追加的a(n-i)的延迟补充数据、和在a(n-i)接收的即时补充数据的组合,可以表示为包含a(n-i)的在ST2中的全部的认证路径节点的分配值。
(1)归纳法的基础,
考虑i=0的情况.此时,a(n-i)=a(n).通过过程COMPLETION_BULK_BACKWARD1,对于a(n),追加了af的在af的登录处理的结束时刻的a(n)的延迟补充数据(图68的步骤S5003a).这里,因为在af的登录处理的结束时刻顺序集合小树的根值是确定的,所以包含通过过程COMPLETION_BULK_BACKWARD1追加的数据的a(n)的延迟补充数据、和在a(n)接收的即时补充数据的组合,包含a(n)的在ST2的全部认证路径节点的分配值.
(2)归纳步骤
设i1∈{0,...,n-1},在i=i1时,假定包含通过过程COMPLETION_BULK_BACKWARD1追加的数据的a(n-i)的延迟补充数据、和在a(n-i)接收的即时补充数据的组合,包含a(n-i)的在ST2的全部认证路径节点的分配值。只要证明对于i=i1+1,同样的事情也成立即可。通过如下使用完全化传播处理可以证明这点。
在a2=a(n-i1)、a1=a(n-(i1+1))时,设a1的通过a2的认证点为AP(a1,a2)、其兄弟节点为AP’(a1,a2)、再有AP(a1,a2)的级为j1(参照图70)。
通过以下叙述的顺序集合树的性质,顺序集合小树ST2中的a1的在ST2中的认证路径节点中级比j1小的节点的分配值,被包含在在图68的步骤S5004a中追加的数据中。
a1的在ST2中的认证路径节点中级等于j1的节点的分配值,被包含在在图68的步骤S5007a中追加的数据中。
a1的在ST2中的认证路径节点中级比j1大的节点的分配值,被包含在在图68的步骤S5008a中追加的数据中。
通过上述,可以导出包含通过过程COMPLETION_BULK_BACKWARD1追加的数据的a1=a(n-(i1+1))的延迟补充数据、和在a(n-(i1+1))接收的即时补充数据的组合,包含a(n-(i1+1))的在ST2的全部认证路径节点的分配值。
通过以上的(1)以及(2),对于i=i=0,...,n,表示通过过程COMPLETION_BULK_BACKWARD1追加的数据的a(n-i)的延迟补充数据、和在a(n-i)接收的即时补充数据的组合,包含a(n-i)的在ST2的全部认证路径节点的分配值。
此外,通过同样的归纳法,也表示出在图68的步骤S5006a,不会有判定结果成为NO、判定错误的事情。
(存储器的效率化)
上述是在一个集合间隔中通过链补充方式用户装置5I能够把作为事件顺序证明应答取得的数据读入计算机的存储器的场合的处理方式。在集合间隔中通过用户装置5I的登录点增加许多、上述的取得数据不能读入计算机的存储器的场合,通过以下的方式把取得数据的一部分读入存储器,通过分阶段计算完全认证路径数据,能够计算该集合间隔中的全部登录点的完全认证路径数据。
上述的计算,通过下面的步骤(1)~(5)进行。
(1)从在某集合间隔中某用户装置5I接收的补充数据,只抽出登录点的指数满足特定条件的补充数据,构成间拔抽出数据。
作为用于间拔抽出的条件,可以指定作为间拔间隔的正整数m,只抽出登录点的指数能用m整除的补充数据。在图71所示的具体例中,从具有指数从0到10的登录点(用黑点表示的),取间拔间隔为5,抽出具有用5整除的指数亦即5、10的登录点,构成间拔抽出数据。
(2)构成由登录点的指数由相邻的间拔抽出数据的指数夹持的登录点的登录值以及补充数据组成的局部数据,。这样的局部数据,一般构成多个。
在图72所示的具体例中,集合具有在间拔抽出数据的第一号的指数0和第二号的指数5中夹着的指数的登录点,构成第一局部数据.在图73所示的具体例中,集合具有在间拔抽出数据的第二号的指数5和第三号的指数10中夹着的指数的登录点,构成第二局部数据.
(3)对于在上述(2)中构成的各局部数据,把其局部数据位于最右的登录点作为暂定终端点对待,进行上述的增量完全化的处理。把该处理称为局部数据的局部完全化。
使用通过该处理计算的延迟补充数据,在把属于该局部数据的登录点中位于最右面的作为a1时,对于属于该局部数据的各登录点a,在把a的通过a1的认证点作为AP(a,a1)时,在a的认证路径节点中,对于比level(AP(a,a1))低的级的,可以计算其分配值。进而,这里能够计算分配值的a的认证路径节点的分配值,包含在a的认证路径节点中在a1的处理结束的时刻决定分配值的数据的全部。亦即包含登录点a的在a1时刻的延迟补充数据。
在图72所示的具体例中,通过该局部数据的局部完全化的处理,作为指数0的登录点的延迟补充数据,计算节点(1,0)、(2,1)的分配值,作为指数1的登录点的延迟补充数据,计算节点(2,1)的分配值,作为指数3的登录点的延迟补充数据,计算节点(1,5)的分配值
属于该局部数据的登录点中位于最右面的是指数为5的登录点,如设其为a1,则对于属于该局部数据的各登录点a,能够计算比level(AP(a,a1))小的级的认证路径节点的分配值。例如,如设a是指数0的登录点,则AP(a,a1)是(3,0),可以计算a的认证路径节点中级比3小的(0,0)、(1,0)、(2,0)的分配值。因为a的在a1的延迟补充数据是(1,0)、(2,1)的分配值,所以可知能够计算在a1时刻的延迟补充数据。关于属于该局部数据的其他的登录点也同样。
(4)上述(3)的处理结果,对于间拔抽出数据的相邻的两个登录点a1和a2,可以取得在a1和a2时刻的延迟补充数据。使用该数据使用上述的证书完全化的主程序COMPLETION_MAIN1,能够计算在间拔抽出数据中包含的、在各登录点取得的证书的完全化、即该登录点的全部认证路径节点的分配值。把该处理称为间拔抽出数据的全局完全化。
在图74所示的具体例中,能够进行间拔抽出数据的指数0、1、2的登录点,即叶子号码1、11、31的登录点的证书的完全化,计算该3个登录点的全部认证路径节点的分配值。例如,间拔抽出数据的指数0的登录点的认证路径节点是(0,0)、(1,1)、(2,1)、(3,1)、(4,1),可以计算这些全部的分配值。
(5)使用在(3)中构成的局部完全化了的局部数据的每一个、和在上述(4)中构成的全局完全化了的间拔抽出数据,进行在该局部数据中包含的、在各登录点取得的证书的完全化。把该处理称为局部数据的全局完全化。
局部数据的全局完全化的过程,详细如下。
(5-1)在设某局部数据的登录点为a(0),a(1),...,a(n)=a1时,a1的全部认证路径节点的分配值,已用步骤(4)计算完毕。将其设为V(0),V(1),...,V(k-1)。
(5-2)因此,也能计算属于a1的路径节点的各节点的值。将其设为V’(0),V’(1),...,V’(k-1),V’(k)。
(5-3)对于各a=a(0),...,a(n-1),设a的通过a1的认证点为AP(a,a1),k1=lavel(AP(a,a1))。
(5-4)通过步骤(3),已计算完毕在a的认证路径节点中、级比k1小的认证路径节点.
(5-5)另外,级为k1的a的认证路径节点和在属于a1的根路径的节点中级为k1的节点一致。因此,这样的认证路径节点的分配值,成为在上述(5-2)中计算的V’(k1)。
(5-6)对于满足k1<j<k的j,a的认证路径节点中级为j的认证路径节点与a1的认证路径节点中级为j的认证路径节点一致。因此,其认证路径节点的分配值,为在上述(5-1)中计算的V’(j)。
以上,通过(5-1)~(5-6),对于a=a(0),...,a(n-1),可以计算a的全部认证路径节点的分配值。
至于图72所示的具体例,指数2的登录点(叶子识别号码5)的认证路径节点,是(0,4)、(1,3)、(2,0)、(3,1)、(4,1)。另外,如设a1是指数5的登录点(叶子识别号码11),则AP(a,a1)=(3,0),k1=level(AP(a,a1))=3。对于a的认证路径节点中级比k1=3小的(0,4)、(1,3)、(2,0)它们的分配值,可以用上述步骤(5-3)计算(参照图72,图75)。另外,级为k1=3的认证路径节点(3,1)的分配值可以用(5-2)计算(参照图74,图75)。另外,对于级比k1=3大的(4,1)可以用步骤(5-1)计算(参照图74,图75)。
为通过以上的步骤(1)~(5)的过程,进行取得的证书的完全化,在存储器上同时保存的必要的某数据,仅是间拔抽出数据和一个局部数据。如设登录点的总数为N、在上述步骤(1)中使用的间拔间隔为m,则需要在存储器上同时保存的登录点的数成为(N/m)+m。如设m=√N,则(N/m)+m=2·√N,能够把存储器容量的量级从N削减到√N。
<5-5.基于用户装置5I的补充数据的根值计算>
接着,说明基于用户装置5I的补充数据的根值计算。这关于用户装置5I的第一验证功能中的根值计算详细进行说明。
在某集合间隔I1结束时,用户装置5I,通过用上述方法执行对于在集合间隔I1期间发送的一个证明请求RQ的受理证书的个别完全化,能够计算完全认证路径数据。从完全认证路径数据,通过在下面所示的(1)~(5)中表示的过程,能够计算该集合间隔的顺序集合树的根的分配值。
首先,完全认证路径数据由即时补充数据和延迟补充数据组成。假定即时补充数据和延迟补充数据,以(位置信息,LR标签,分配值(散列值))表示的形式的补充数据要素组成。此外,LR标签取L这样的标记或者R这样的标签任何一值。这里,假定上述位置信息包含级信息。假定在级信息之间定义以下这样的2项关系“<<”。
对于任意的登录点,设在其完全认证路径数据中包含的补充数据要素为(位置信息P(i),LR标签T(i),分配值H(i))(其中,i=1,...,n),如设在位置信息P(i)中包含的级信息为levelP(i),则2项关系“<<”在
level(P(1)),...,level(P(n))
间定义线性顺序。
假定位置信息为在一个集合树中的级(用非负整数表示)和级内的指数的组合,如设位置信息中级信息为组合的第一要素,则作为上述2项关系“<<”,也可以取整数的大小关系“<”。
图76是表示通过完全认证路径数据的顺序集合树的根值的计算方法的流程图.根据该图,在确认完全认证路径数据的检查后,亦即,即时补充数据是否有L标签、延迟补充数据是否有R标签的检查、以及是否没有与完全认证路径数据相重的信息的检查,以级信息的顺序排序,与LR标签吻合连接各分配值,计算根值(步骤S3101a,S3102a,S3103a,S3104a,S3105a,S3106a).
下面,如图77以及图78所示,作为某集合间隔的顺序集合树的叶子之一,说明采用先前的集合间隔的顺序集合树的根值的场合。在这样的场合,具有能够简单地验证不同顺序集合树间的受理证书发行的时间的前后。例如,在图78中,在用户装置2A的登录点a分配给顺序集合树ST(5)的部分树ST1(5)的叶子,另外,用户装置2B的登录点b分配给顺序集合树ST(6)的部分树ST1(6)的叶子时,因为a和b的合流点是节点R(6)、a的通过b的认证点成为节点R(5),所以如果从登录点a计算的认证点R(5)的值在登录点b的即时补充数据中包含,则可以验证登录点a的登录在时间上比登录点b的登录在前。
图77是表示如图78在链接多个顺序集合树的状况下抽出一个顺序集合树ST(n)的图。
这里,根R(n-1)是顺序集合树ST(n-1)和顺序集合树ST(n)中共同的节点,有
级信息(L,TID(n-1),k(n-1))
级内index 0
位置信息((L,TID(n-1),k(n-1)),0)。此外,上述的级信息用(LR标签,非负整数的集合树号码,非负整数的集合树内的级信息)表现,LR标签取L这样的标签和R这样的标签中任何一个。
另外,部分树ST1(n)的根R1(n)有
级信息(R,TID(n-1),k1(n))
级内index 1
位置信息((R,TID(n-1),k1(n)),1),这里,k1(n)是ST1(n)的高度。
另外,关于部分树ST1(n),对于根R1(n)以外的节点,是级信息(R,TID(n),j),根R1(n)以外的节点的位置信息是((R,TID(n),j),i)。
这里,j、i是非负整数leafs(ST1(n))的各要素的位置信息可以表示为((R,TID(n),0),i)。
另外,R(n)在顺序集合树ST(n)和ST(n+1)中是共同的节点,有
级信息(L,TID(n),k(n))
级内index 0
位置信息((L,TID(n),k(n)),0)(其中,设k(n)=k1(n)=1)
分配值V(R(n))=h(V(R(n-1))||V(R1(n)))。
另外,把顺序集合小树ST1(n)和由根R(n-1)和根R(n)组成的二分树记为ST(n)。即
root(ST(n))=R(n),
leftChild(R(n))=R(n-1),
rightChild(R(n))=R1(n)的。
与第n号集合期间对应的顺序集合树是ST(n)。
但是,对于n=0,代替R(n-1),使用具有规定的分配值的节点IR(参照图78)。IR的位置信息是((L,-1,0),0)。
此时,如下定义两个扩张级信息之间的顺序“<<”。
通过这样的定义,可以导出二项关系“<<”在任意的登录点的认证路基节点的集合中决定线性顺序。
图79表示使用该定义的2项关系“<<”计算通过补充数据的集合树根值的一例,如下进行计算。
对于位置信息((R,10,0),0)的节点,即时补充数据成为
[(((L,9,k(9)),0),L,V(R(9))),
(((R,10,2),0),L,V((R,10,2),0)),
(((R,10,0),4),L,V((R,10,0),4))]。
这里,(R,10,2)<<(L,9,10)。
延迟补充数据,为[(((R,10,1),3),R,V((R,10,1),3))]。
遵照图76的流程进行从补充数据的根值的计算。
(1)检查即时补充数据的各要素具有L标签→合格
(2)检查延迟补充数据的各要素具有R标签→合格
(3)合并即时补充数据和延迟补充数据
合并结果成为
[(((L,9,k(9)),0),L,V(R(9))),
(((R,10,2),0),L,V((R,10,2),0)),
(((R,10,0),4),L,V((R,10,0),4)),
(((R,10,1),3),R,V((R,10,1),3))]。
(4)在合并结果中,确认无重合的级信息→合格
(5)把合并结果以级信息的顺序<<基准分类
分类结果,成为
[(((R,10,0),4),L,V((R,10,0),4)),
(((R,10,1),3),R,V((R,10,1),3)),
(((R,10,2),0),L,V((R,10,2),0)),
(((L,9,k(9)),0),L,V(R(9)))]。
(6)设步骤(5)的分类结果为
(j(0),LR(0),V(0),...,(j(k-1),LR(k-1),V(k-1))),设该登录点的登录值为V(0),如下递归定义
W(0),W(1),...,W(k-1),W(k)。
(i)W(0)=V(0)
(ii)在LR(j)=L时,W(j+1)=h(V(j)||W(j))
在LR(j)=R时,W(j+1)=h(W(j)||V(j))
据此计算,则k=4,W(j)可以如下计算。得到
W(0)=V((R,10,0),5),
W(1)=h(V((R,10,0),4)||V((R,10,0),5)),
W(2)=h(W(1)||V((R,10,1),3)),
W(3)=h(V((R,10,2),0)||W(2)),
W(4)=h(V(R(9))||W(3))。
W(3)=V(R1(10)),W(4)=V(R(10))。
因此,根据第五实施形态的事件顺序证明***200a,可以得到和第四实施形态同样的效果。亦即在使用树结构证明事件顺序的事件顺序证明***中,从用户装置5I接收证明请求的证明装置4a,即使在对于该证明请求发行通过包含受理证书的链补充方式(关于登录点,在证明应答数据中包含登录点的即时补充数据以及前一个登录点的登录点处的延迟补充数据)的证明应答时,因为用户装置5I使用该证明应答进行增量完全化后能够验证用户装置5I间受理证书发行的时间的前后,所以即使在以电子方式发表汇总证明请求的发表数据之前,也能够验证受理证书的正当性。
另外,在链补充方式中,比之顺序补充方式,具有用少的证明应答数据量完成的效果。再有,即使在链补充方式中,因为证明装置4a,不用说可以使用在存储器中存储顺序集合树自身的方法,也能使用堆栈结构的存储方法,所以也能够大幅度减少证明装置4a的必要存储容量。
另外,即使在用户装置5I中的增量完全化处理中,因为具有个别完全化以及综合完全化两者,所以通过根据状况进行最合适的增量完全化,能够验证受理证书的正当性。再有,因为即使是不在用户装置5I的存储器上存储证明应答数据全部、而只存储部分局部数据的方式,也能进行增量完全化,所以能够大幅度减少用户装置5I的必要存储容量。
另外,在顺序集合期间结束后,用户装置5I,因为通过增量完全化的处理能够取得完全补充数据,所以能够计算顺序集合树的根值。再有,在把前一集合间隔的顺序集合树的根值作为下一顺序集合树的叶子的分配值的场合,能够简单地验证桥接顺序集合树的受理证书的发行的时间的前后。
上面说明了本发明的实施例,但是在不脱离本发明的要义的范围内可以对于本发明的实施例施行各种变形或变更。例如,在上述实施形态中,作为顺序集合树使用二分树,但是本发明不限于二分树,只要是一个父节点具有多个子节点的有向树即可。
另外,用户装置2I或5I也可以具有用户侧电子信息发表装置。在一定时间间隔结束前,在证明装置1a或者4a中断运用,或者为计算顺序集合树的根值所需要的数据消失时,所述用户侧电子信息发表装置,从到证明装置1a或者4a中断运用或者数据消失的时刻接收存储的顺序证明应答,以电子方式发表具有可计算的分配值的顺序集合树的节点中不能计算其父节点的分配值的一个或者多个节点的位置信息和分配值。然后,在这种场合,规定的验证机构,也可以验证该发表信息是否矛盾。
<顺序集合树的性质>
详细说明在第四以及第五实施形态中使用的顺序集合树的性质。
对于顺序集合树的叶子号码i,把接收成为给可用i识别的顺序集合树的叶子分配顺序分配值的源的证明请求、给该叶子分配分配值的一系列的处理称为对该叶子的处理回合,记为round(i)。
现在,设甲是用户装置,乙是监查装置,i0和i1是成为i0<i1的两个顺序集合树叶子号码,在round(i0)中甲接收受理证书,乙在round(i1)中接收监查用受理证书。此时,i0的通过i1的认证点具有下面的性质。
(1)认证点的分配值,在监查点即节点(0,i1)的即使补充数据中包含。
(2)在设上述认证点为(j’,i’)、在round(j1)结束时叶子(0,i0)所属的顺序集合小树为ST2、在(0,i0)的ST2中的认证路径为authPathST2(0,i0)时,在属于authPathST2(0,i0)的节点中对于级比j’小的节点的分配值包含在与节点(0,i0)对应的回合中接收受理证书的用户在与节点(0,il)对应的回合或以后能够接收的延迟补充数据或者已经接收的即时补充数据内。
亦即,如设i1≤i2,则在属于authPathST2(0,i0)的节点中,对于与级比j’小的节点的分配值,包含在immedData(i0)或者lataData(i0,i2)中。
(3)在设ST2中的叶子(0,i0)的节点路径为PathST2(0,i0)时,上述认证点的分配值以及在属于PathST2(0,i0)的节点中级比该认证点的级小的节点的分配值,可以从在节点(0,i0)接收受理证明的用户在与节点(0,i1)对应的回合或以后接收的接收的延迟补充数据以及在节点(0,i0)接收的受理证书(包含即时补充数据)计算。
(性质的证明)
下面说明在交给用户的受理证书中包含即时补充数据的场合。在交给用户的受理证书中不包含即时补充数据、代之为在延迟补充数据中包含该信息的场合,通过同样的讨论也可以得出同样的结论
(1)首先,使用图80、图81说明项目(1)。
(场合1)最初,参照图80,考虑i0和i1属于i1时刻的顺序集合森林内的一个顺序集合小树ST2的场合。这里,设合流点为(j,i),作为其左子节点的认证点为(j’,i’)。在节点(0,i1)的顺序集合小树ST2中的根路径rtPathST2(0,i1)中,设从(0,i1)出发,到合流点前的节点为(j”,i”)。此时,认证点是(j”,i”)的左补充点。因此,从认证路径authPathST2(i1)的定义,((j’,i’),L)包含在节点(0,i1)的ST2中的认证路径中。另外,给节点(j’,i’)的值的分配,在round(i1)之前结束。因此,((j’,i’),L,V(j’,i’))包含在对于(0,i1)的即时补充数据中。
(场合2)其次,参照图81,考虑i0和i1不同时属于i1时刻的顺序集合森林内的任何一个顺序集合小树的场合。此时,i0属于i1时刻的顺序集合森林内的某顺序集合小树ST2’中。此时,通过对于登录点(0,i1)的即时补充数据的定义,V(root(ST2’))包含在对于登录点(0,i1)的即时补充数据中。
(2)使用图82到85说明下一项目(2)。
(场合1)最初,参照图82以及83,考虑i0和i1属于i1时刻的顺序集合森林内的一个顺序集合小树ST2的场合。
设k=height(ST2)。
认证点(j’,i’)包含在节点(0,i0)的根路径rtPathST2(0,i0)中。这里,设
rtPathST2(0,i0)=[(0,r(0)),...,(j’,r(j’)),(j’+1,r(j’+1))...,(k,r(k))]。另外,在rtPathST2(0,i0)要素中,设级比j’小的节点的行为
[(0,s(0)),...,(j’-1,s(j’-1))]。对于各j 1∈[0..j’-1],可以证明V(j1,r(j1))包含在immedData(i0)或者lateData(i0,i2)中.
根据authPathST2(0,i0)的定义,authPathST2(0,i0)的级j1的要素p2=(j1,s(j1))是rtPathST2(0,i0)的级j1+1的要素p3=(j1+1,s(j1+1))的右子节点或左子节点。根据是哪一个区分下述场合。
(场合1-1)在p2是p3的右子节点时,如图82所示,p2的分配值V(p2),在满足i1≤i2的i2,包含在甲能够接收的延迟补充数据lateData(i0,i2)中。其原因在于,在与叶子(0,i1)对应的回合的事件顺序证明处理结束的时刻,图82的B表示的ST2的部分树的分配值为可计算的,且已被计算且分配完毕。因此,在该时刻或以后发行的对于登录点i0的延迟补充数据中包含B的根p2的分配值V(p2)。
(场合1-2)在p2是p3的左子节点时,如图83所示,节点p2的分配值V(p2),包含在对于登录点i0的即时补充数据中。其原因在于,对于把图83的p1作为根的部分树B,有
因此,在用i0可识别的回合开始时,leafs(B)的分配值已经确定了。因此,p2=root(B)的分配值,在用i0可识别的回合中确定,因此,p2包含在i0时刻值确定的i0的认证路径节点的集合中。
(场合2)其次,参照图84以及85,考虑i0和i1不同时属于i1时刻的顺序集合森林内的任何一个顺序集合小树的场合。此时,i0属于i1时刻的顺序集合森林内的某一个顺序集合小树ST3,root(ST3)成为i0的通过i1的认证点。设k=height(ST3)。认证点(j’,i’)包含在节点(0,i0)的根路径rtPathST3(0,i0)中。这里,设
rtPathST3(0,i0)=[(0,r(0)),...,(j’,r(j’)),(j’+1,r(j’+1))...,(k,r(k))]。另外,在rtPathST3(0,i0)要素中,设级比j’小的节点的行为
[(0,s(0)),...,(j’-1,s(j’-1))]。对于各j1∈[0..j’-1],可以证明V(j1,r(j1))包含在immedData(i0)或者lateData(i0,i2)中。
根据authPathST3(0,i0)的定义,authPathST3(0,i0)的级j1的要素p2=(j1,s(j1))是rtPathST3(0,i0)的级j1+1的要素p3=(j1+1,s(j1+1))的右子节点或左子节点。根据是哪一个区分下述场合。
(场合2-1)在p2是p3的右子节点时,如图84所示,p2的分配值V(p2),在满足i1≤i2的i2,包含在甲能够接收的延迟补充数据lateData(i0,i2)中。其原因在于,在与叶子(0,i1)对应的回合的事件顺序证明处理结束的时刻,图84的B表示的SB3的部分树的分配值为可计算的,且已被计算并分配完毕。因此,在该时刻或以后发行的对于登录点i0的延迟补充数据中包含B的根p2的分配值V(p2)。
(场合2-2)在p2是p3的左子节点时,如图85所示,节点p2的分配值V(p2),包含在对于登录点i0的即时补充数据中。其原因在于,对于把图85的p1作为根的部分树B,有
(3)从认证路径的定义以及项目(2),对于j1∈[0..j’],能够如下递归计算V(j1,(j1))。
首先,设V(j1,r(j1))为在受理证书中包含的节点(0,i0)的分配值。
接着,对于j1∈[0..j’-1],假定可以计算V(j1,r(j1)),如下计算V(j1+1,r(j1+1))。
在r(j1)<s(j1)时,取
V(j1+1,r(j1+1))=h(V(j1,r(j1))||V(j1,s(j1))),
在s(j1)<r(j1)时,取
V(j1+1,r(j1+1))=h(V(j1,s(j1))||V(j1,r(j1)))。
根据本发明,在使用树结构的证明事件顺序的事件顺序证明***中,即使不使用汇总事件顺序证明请求的发表数据,也能进行从事件顺序证明机构发行的事件顺序受理证书的验证。
结果,即使在发表期间中途,也能验证所接收的事件顺序受理证书的正当性,能够提高用户的方便性。另外,即时在事件顺序证明机构内发生故障,也能构建抗故障的事件顺序证明***。
Claims (52)
1.一种事件顺序证明方法,其用于通过通信网络相互连接在生成规定的数字信息的事件的时间序列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求的用户装置、制作对于来自所述用户装置的所述证明请求的证书的证明装置、监查所述证书的真假的监查装置的事件顺序证明***中,其特征在于,具有:
所述证明装置接收来自所述用户装置的证明请求的顺序证明请求接收步骤;
所述证明装置遵照预先决定的过程从在所述证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算步骤;
所述证明装置,在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配、在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父分配值,计算可计算的节点的分配值、同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合步骤;
所述证明装置制作证书的证书制作步骤,所述证书包含所述顺序分配数据、以及第一顺序集合树确定信息,后者确定分配有所述顺序分配数据的顺序集合树以及该顺序集合树的叶子;
所述证明装置向所述用户装置发送所述证书的证书发送步骤;
当把分配有所述证明请求的所述顺序集合树的叶子定义为登录点、把关于为从该登录点计算所述顺序集合树的根值所需要的节点的信息定义为所述证书的补充信息、在该补充信息中把在给所述顺序集合树分配所述证明请求的时刻可取得的补充信息定义为即时补充信息时,
所述证明装置,在给所述顺序集合树分配所述证明请求后,给所述顺序集合树分配第一监查请求,通过和所述证书相同的制作方法,制作第一监查用证书,同时从所述顺序集合树取得在给所述顺序集合树分配所述监查请求的时刻的第一监查用即时补充信息,并包含在所述第一监查用证书中的监查用证书制作步骤;
所述证明装置向所述监查装置发送所述第一监查用证书的监查用证书发送步骤;
所述证明装置在给所述顺序集合树分配所述第一监查请求后,接收来自所述用户装置的所述证书的补充信息的请求的补充信息请求接收步骤;
所述证明装置,从所述顺序集合树取得确定分配有所述补充信息的请求的所述顺序集合树以及所述顺序集合树的叶子的第二顺序集合树确定信息、以及在分配所述补充信息的请求的时刻可取得的补充信息,作为延迟补充信息的延迟补充信息制作步骤;和
所述证明装置向所述用户装置发送所述证书的所述延迟补充信息的延迟补充信息发送步骤。
2.根据权利要求1所述的事件顺序证明方法,其特征在于,在所述证书制作步骤中,所述证明装置,在所述第一顺序集合树确定信息中包含所述证书的即时补充信息。
3.根据权利要求1所述的事件顺序证明方法,其特征在于,
所述监查用证书制作步骤,进而具有下述步骤:所述证明装置,在给所述顺序集合树分配所述证明请求前,给所述顺序集合树分配第二监查请求,通过和所述证书同样的制作方法,制作第二监查用证书,同时,从所述顺序集合树取得在给所述顺序集合树分配所述第二监查请求的时刻的第二监查用即时补充信息,并包含在所述第二监查用证书中;
所述事件顺序证明方法,进一步包含下述步骤:
所述证明装置,在所述一定时间间隔结束后从所述顺序集合树取得在所述监查用证书制作步骤中制作好的各监查用证书的补充信息全部,作为各监查用证书的延迟补充信息的监查用延迟补充信息制作步骤;和
所述证明装置向所述监查装置发送所述第一以及第二监查用证书的所述延迟补充信息的监查用延迟补充信息发送步骤。
4.根据权利要求1所述的事件顺序证明方法,其特征在于,
在所述顺序分配数据计算步骤中,所述证明装置把对于在所述证明请求中包含的所述数字信息使用规定的抗冲突单向散列函数的结果值作为所述顺序分配数据计算。
5.根据权利要求1所述的事件顺序证明方法,其特征在于,
在所述证书制作步骤中,所述证明装置在所述证书上施加数字签名。
6.根据权利要求1所述的事件顺序证明方法,其特征在于,
进一步包括所述证明装置在所述一定时间间隔结束后以电子方式发表所述顺序集合树的所述根值的电子信息发表步骤。
7.根据权利要求1所述的事件顺序证明方法,其特征在于,
在从所述用户装置形成了多个证明请求时,所述证书发送步骤,进一步包括:所述证明装置,以向所述顺序集合树分配各证明请求的时间的顺序发送对于各证明请求的证书的步骤。
8.根据权利要求2所述的事件顺序证明方法,其特征在于,在从所述用户装置形成了多个证明请求时,进一步包括下述步骤:
所述证明装置存储在所述顺序证明请求集合步骤中生成的关于所述顺序集合树的信息的顺序集合树存储步骤;和
假定:在所述顺序集合树中,称在位于叶子a1右面的叶子a2的分配处理结束的时刻决定的所述叶子a1的延迟补充信息为所述叶子a1的在所述叶子a2处的延迟补充信息,进而,把分配有从最新的证明请求制作的顺序分配数据的顺序集合树的叶子作为新登录点,
所述证明装置存储关于所述多个证明请求的登录点的信息的登录点存储步骤;
在所述证书制作步骤中,所述证明装置,从在各存储步骤中存储的信息,通过合并该新登录点的顺序分配数据、确定分配有该顺序分配数据的所述顺序集合树以及该顺序集合树的叶子的第一顺序集合树确定信息、所述新登录点的即时补充信息、和所述用户装置过去的所有登录点的在所述新登录点处的延迟补充信息,制作对于所述新登录点的证书。
9.根据权利要求2所述的事件顺序证明方法,其特征在于,在从所述用户装置形成了多个证明请求时,进一步包括下述步骤:
所述证明装置存储关于在所述顺序证明请求集合步骤中生成的所述顺序集合树的信息的顺序集合树存储步骤;
假定:在所述顺序集合树中,称在位于叶子a1右面的叶子a2的分配处理结束的时刻决定的所述叶子a1的延迟补充信息为所述叶子a1的在所述叶子a2处的延迟补充信息,进而,把分配有从最新的证明请求制作的顺序分配数据的所述顺序集合树的叶子作为新登录点,
所述证明装置存储关于对于所述新登录点紧前面的登录点的信息的登录点存储步骤;
在所述证书制作步骤中,所述证明装置,从在各存储步骤中存储的信息,通过合并该新登录点的顺序分配数据、确定分配有该顺序分配数据的所述顺序集合树以及该顺序集合树的叶子的顺序集合树确定信息、所述新登录点的即时补充信息、和所述用户装置的所述紧前面的登录点的在所述新登录点处的延迟补充信息,制作对于所述新登录点的证书。
10.根据权利要求9所述的事件顺序证明方法,其特征在于,
在顺序集合树存储步骤,作为关于顺序集合树的信息,证明装置存储已经分配的顺序集合树中节点的各自位置和对于这些节点的各自的分配值。
11.根据权利要求9所述的事件顺序证明方法,其特征在于,
进一步包括在一定时间间隔结束后证明装置以电子方式发表顺序集合树的根值的电子信息发表步骤。
12.根据权利要求9所述的事件顺序证明方法,其特征在于,
进一步包括用户侧电子信息发表步骤,该步骤,在所述一定时间间隔结束前,在所述证明装置中断运用、或者为计算所述顺序集合树的根值所需要的数据消失时,所述用户装置,从直到所述证明装置中断运用或者数据消失的时刻接收并存储的证书中,以电子方式发表具有可计算的分配值而其父节点的分配值不能计算那样的一个或者多个节点的位置信息和分配值。
13.根据权利要求9所述的事件顺序证明方法,其特征在于,
在顺序证明请求集合步骤,在一定时间间隔结束后,证明装置把顺序集合树的根值分配给下一顺序集合树的叶子,以便形成关于分配给该下一顺序集合树的叶子的新登录点的即时补充信息。
14.根据权利要求8所述的事件顺序证明方法,其特征在于,
在所述顺序集合树存储步骤中,所述证明装置,作为关于所述顺序集合树的信息,存储在所述顺序集合树中进行了分配处理的各节点的位置以及分配值。
15.根据权利要求9所述的事件顺序证明方法,其特征在于,
所述证明装置,分别以堆栈方式存储所述新登录点的所述即时补充数据和所述用户装置的所述紧前面的登录点的在所述新登录点处的所述延迟补充信息。
16.根据权利要求8所述的事件顺序证明方法,其特征在于,
进一步具有所述证明装置在所述一定时间间隔结束后以电子方式发表所述顺序集合树的所述根值的电子信息发表步骤。
17.根据权利要求8所述的事件顺序证明方法,其特征在于,
进一步具有用户侧电子信息发表步骤,该步骤,在所述一定时间间隔结束前,在所述证明装置中断运用、或者为计算所述顺序集合树的根值所需要的数据消失时,所述用户装置,从直到所述证明装置中断运用或者数据消失的时刻接收并存储的证书中,以电子方式发表在具有可计算的分配值的所述顺序集合树的节点中、其父节点的分配值不能计算那样的一个或者多个节点的位置信息和分配值。
18.根据权利要求8所述的事件顺序证明方法,其特征在于,
在所述顺序证明请求集合步骤中,所述证明装置,在所述一定时间间隔结束后,把所述顺序集合树的所述根值,向所述下一顺序集合树的叶子分配,以使成为向下一顺序集合树的叶子分配的新的登录点的即时补充信息.
19.一种事件顺序证明监查方法,其用于通过通信网络相互连接在生成规定的数字信息的事件的时间序列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求的至少一个用户装置、制作对于来自用户装置的证明请求的证书的证明装置、监查所述证书的真假的监查装置的事件顺序证明***中,其特征在于,具有下述步骤:
所述证明装置从所述用户装置接收第一证明请求的顺序证明请求接收步骤;
所述证明装置遵照预先决定的过程从在所述第一证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算步骤;
所述证明装置,在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配、在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父分配值,计算可计算的节点的分配值、同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合步骤;
所述证明装置制作第一证书的证书制作步骤,所述第一证书包含所述顺序分配数据、以及第一顺序集合树确定信息,后者确定分配有所述顺序分配数据的顺序集合树以及该顺序集合树的叶子;
所述证明装置向所述用户装置发送所述第一证书的证书发送步骤,
当把分配有所述第一证明请求的所述顺序集合树的叶子定义为登录点、把关于为从该登录点计算所述顺序集合树的根值所需要的节点的信息定义为所述第一证书的补充信息、把在该补充信息中在给所述顺序集合树分配所述第一证明请求的时刻可取得的补充信息定义为即时补充信息时,
所述证明装置,给所述顺序集合树分配多个监查请求,使用和所述第一证书相同的制作方法制作多个监查用证书,同时从所述顺序集合树取得在给所述顺序集合树分配各监查请求的时刻的监查用的即时补充信息,并包含在各监查用证书中的监查用证书制作步骤;
所述证明装置,向所述监查装置发送所述多个监查用证书的监查用证书发送步骤;
所述证明装置,在发送所述第一证书后,接收来自所述用户装置的所述第一证书的补充信息的请求的补充信息请求接收步骤;
所述证明装置,从所述顺序集合树取得确定分配有所述补充信息的请求的所述顺序集合树以及所述顺序集合树的叶子的第二顺序集合树确定信息、以及在分配所述补充信息的请求的时刻可取得的补充信息,作为延迟补充信息的延迟补充信息制作步骤;
所述证明装置向所述用户装置发送所述第一证书的所述延迟补充信息的延迟补充信息发送步骤;
所述监查装置,从所述证明装置接收所述多个监查用证书的监查用证书接收步骤;
所述监查装置,从所述用户装置接收包含所述第一证书以及所述第一证书的所述延迟补充信息的对于所述第一证书的监查请求的监查请求接收步骤;
所述监查装置,从所述多个监查用证书中,根据对于所述第一证书的监查请求的第一以及第二顺序集合树确定信息,选择通过所述第一证书生成的时间顺序之后、而且通过所述延迟补充信息生成的时间顺序之前的监查用证书的第一监查用证书选择步骤;
所述监查装置,对于所述顺序集合树的特定的节点,根据在所述第一监查用证书选择步骤中选择的监查用证书中包含的该节点的分配值、和从对于所述第一证书的监查请求计算的该节点的分配值是否一致的验证,监查所述第一证书的正当性,证明所述第一证书的证明请求的接收时刻和在所述第一监查用证书选择步骤中选择的监查用证书的监查请求的接收时刻的前后关系的第一证书监查步骤;和
所述监查装置向所述用户装置发送所述第一证书的监查结果的监查结果发送步骤。
20.根据权利要求19所述的事件顺序证明监查方法,其特征在于,
所述监查用证书接收步骤,进一步具有从时刻提供装置取得所述监查装置接收在所述第一监查用证书选择步骤中选择的监查用证书的第一时刻的步骤;
在所述第一证书监查步骤中,所述监查装置,在所述监查结果中包含表示所述第一证书的所述证明请求的所述接收时刻在时间上在所述第一时刻前的区间时刻证书。
21.根据权利要求19所述的事件顺序证明监查方法,其特征在于,进一步具有下述步骤:
所述证明装置,在所述一定时间间隔结束后从所述顺序集合树取得在所述监查用证书制作步骤中制作好的所述多个监查用证书的所述补充信息全部,作为各监查用证书的延迟补充信息的监查用延迟补充信息制作步骤;
所述证明装置向所述监查装置发送所述多个监查用证书的所述延迟补充信息的监查用延迟补充信息发送步骤;
所述监查装置,从所述多个监查用证书中,根据对于所述第一证书的监查请求的第一顺序集合树确定信息,选择比所述第一证书时间顺序在前的监查用证书的第二监查用证书选择步骤;
所述监查装置,对于所述顺序集合树的特定的节点,根据在对于所述第一证书的监查请求中包含的该节点的分配值与从在所述第二监查用证书选择步骤中选择的监查用证书以及该监查用证书的所述延迟补充数据中计算的该节点的分配值是否一致的验证,监查所述第一证书的正当性,证明所述第一证书的所述证明请求的所述接收时刻和在所述第二监查用证书选择步骤中选择的监查用证书的监查请求的接收时刻的前后关系的第二证书监查步骤。
22.根据权利要求21所述的事件顺序证明监查方法,其特征在于,进一步具有下述步骤:
在从所述用户装置或者其他用户装置形成了第二证明请求时,所述监查装置,根据对于对于所述第二证明请求制作的第二证书的监查结果、和所述第一以及第二证书的顺序集合树确定信息,判定所述第一以及第二证书间的证明请求的接收时刻的前后关系的证书间顺序判定步骤;
在所述监查结果发送步骤中,所述监查装置,在所述监查结果中包含所述多个证书间的请求接收的时间的顺序。
23.根据权利要求21所述的事件顺序证明监查方法,其特征在于,进一步具有下述步骤:
所述监查装置,从所述多个监查用证书以及所述多个监查用证书的延迟补充信息计算所述顺序集合树的根值的根值计算步骤;
所述监查装置,进行以电子方式发表的所述顺序集合树的根值与所述计算的根值是否一致的验证的根值验证步骤.
24.根据权利要求21所述的事件顺序证明监查方法,其特征在于,进一步具有下述步骤:
所述监查装置向所述用户装置发送在所述第一监查用证书选择步骤中选择的监查用证书以及该监查用证书的延迟补充信息的监查用补充信息发送步骤。
25.根据权利要求21所述的事件顺序证明监查方法,其特征在于,
所述监查用证书接收步骤,进一步具有从时刻提供装置取得所述监查装置向所述证明装置发送在所述第二监查用证书选择步骤中选择的监查请求的第二时刻的步骤;
在所述第二证书监查步骤中,所述监查装置,在监查结果中包含表示所述第一证书的所述证明请求的所述接收时刻在时间上在所述第二时刻之后的区间时刻证书。
26.根据权利要求19所述的事件顺序证明监查方法,其特征在于,
在所述第一证明监查步骤中,所述监查装置在所述监查结果中施加数字签名。
27.一种事件顺序证明装置,它通过通信网络相互连接在生成规定的数字信息的事件的时间系列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求、敦促证书的制作的用户装置、监查该证书的真假的监查装置,制作所述证书,其特征在于,具有:
从所述用户装置接收证明请求的顺序证明请求接收单元;
遵照预先决定的过程,从在所述证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算单元;
在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配、在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父分配值,计算可计算的节点的分配值、同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合单元;
制作证书的证书制作单元,所述证书包含所述顺序分配数据、以及第一顺序集合树确定信息,后者确定分配有所述顺序分配数据的顺序集合树以及该顺序集合树的叶子;
向所述用户装置发送所述证书的证书发送单元,
当把分配有所述证明请求的所述顺序集合树的叶子定义为登录点、把关于为从该登录点计算所述顺序集合树的根值所需要的节点的信息定义为所述证书的补充信息、把在该补充信息中在给所述顺序集合树分配所述证明请求的时刻可取得的补充信息定义为即时补充信息时,
给所述顺序集合树分配所述证明请求后,给所述顺序集合树分配第一监查请求,使用和所述证书相同的制作方法,制作第一监查用证书,同时从所述顺序集合树取得在给所述顺序集合树分配所述第一监查请求的时刻的第一监查用即时补充信息,并包含在该第一监查用证书中的监查用证书制作单元;
向所述监查装置发送所述第一监查用证书的监查用证书发送单元;
在向所述顺序集合树分配分配所述第一监查后,接收来自所述用户装置的所述证书的补充信息的请求的补充信息请求接收单元;
从所述顺序集合树取得确定分配有所述补充信息的请求的所述顺序集合树以及所述顺序集合树的叶子的第二顺序集合树确定信息、以及在分配所述补充信息的请求的时刻可取得的补充信息,作为延迟补充信息的延迟补充信息制作单元;和
向所述用户装置发送所述证书的所述延迟补充信息的延迟补充信息发送单元。
28.根据权利要求27所述的事件顺序证明装置,其特征在于,
所述证书制作单元在所述第一顺序集合树确定信息中包含所述第一证书的即时补充信息。
29.根据权利要求27所述的事件顺序证明装置,其特征在于,
所述监查用证书制作单元,进而具有下述单元:在给所述顺序集合树分配所述证明请求前,给所述顺序集合树分配第二监查请求,通过和所述证书同样的制作方法,制作第二监查用证书,同时,从所述顺序集合树取得在给所述顺序集合树分配所述第二监查请求的时刻的第二监查用即时补充信息,并包含在所述第二监查用证书中;
所述事件顺序证明装置进一步包含下述单元:
在所述一定时间间隔结束后从所述顺序集合树取得用所述监查用证书制作单元制作好的所述第一以及第二监查用证书的补充信息全部,作为各监查用证书的延迟补充信息的监查用延迟补充信息制作单元;和
向所述监查装置发送所述第一以及第二监查用证书的所述延迟补充信息的监查用延迟补充信息发送单元。
30.根据权利要求27所述的事件顺序证明装置,其特征在于,
所述顺序分配数据计算单元,把对于在所述证明请求中包含的所述数字信息使用规定的抗冲突单向散列函数的结果值作为所述顺序分配数据计算。
31.根据权利要求27所述的事件顺序证明装置,其特征在于,
所述证书制作单元在所述证书上施加数字签名。
32.根据权利要求27所述的事件顺序证明装置,其特征在于,
进一步包括在所述一定时间间隔结束后以电子方式发表所述顺序集合树的所述根值的电子信息发表单元。
33.根据权利要求27所述的事件顺序证明装置,其特征在于,
在从所述用户装置形成了多个证明请求时,具有以向所述顺序集合树分配各证明请求的时间的顺序发送对于各证明请求的证书的单元。
34.根据权利要求28所述的事件顺序证明装置,其特征在于,在从所述用户装置形成了多个证明请求时,具有:
存储通过所述顺序证明请求集合单元生成的关于所述顺序集合树的信息的顺序集合树存储单元;
假定:在所述顺序集合树中,称在位于叶子a1右面的叶子a2的分配处理结束的时刻决定的所述叶子a1的延迟补充信息为所述叶子a1的在所述叶子a2处的延迟补充信息,进而,把分配有从最新的证明请求制作的顺序分配数据的顺序集合树的叶子作为新登录点,
存储关于所述多个证明请求的登录点的信息的登录点存储单元;
所述证书制作单元,从通过各存储单元存储的信息,通过合并该新登录点的顺序分配数据、确定分配有该顺序分配数据的所述顺序集合树以及该顺序集合树的叶子的第一顺序集合树确定信息、所述新登录点的即时补充信息、和所述用户装置过去的所有登录点的在所述新登录点处的延迟补充信息,制作对于所述新登录点的证书。
35.根据权利要求28所述的事件顺序证明装置,其特征在于,在从所述用户装置形成了多个证明请求时,进一步具有:
存储关于使用所述顺序证明请求集合单元生成的所述顺序集合树的信息的顺序集合树存储单元;
假定:在所述顺序集合树中,称在位于叶子a1右面的叶子a2的分配处理结束的时刻决定的所述叶子a1的延迟补充信息为所述叶子a1的在所述叶子a2处的延迟补充信息,进而,把分配有从最新的证明请求制作的顺序分配数据的所述顺序集合树的叶子作为新登录点,
在所述存储部中存储关于所述紧前面的登录点的信息的登录点存储单元;
所述证书制作单元,从通过各存储单元存储的信息,通过合并:该新登录点的顺序分配数据、确定分配有该顺序分配数据的所述顺序集合树以及该顺序集合树的叶子的顺序集合树确定信息、该新登录点的即时补充信息和所述用户装置的所述紧前面的登录点的在所述新登录点处的延迟补充信息,制作对于所述新登录点的证书。
36.根据权利要求35所述的事件顺序证明装置,其特征在于,
作为关于顺序集合树的信息,顺序集合树存储单元,存储在所述顺序集合树中分配处理的各节点的位置以及分配值。
37.根据权利要求35所述的事件顺序证明装置,其特征在于,
进一步包括在一定时间间隔结束后以电子方式发表顺序集合树的根值的电子信息发表单元。
38.根据权利要求35所述的事件顺序证明装置,其特征在于,
用户装置进一步包括用户侧电子信息发表单元,该单元,在所述一定时间间隔结束前,在所述证明装置中断运用、或者为计算所述顺序集合树的根值所需要的数据消失时,所述用户侧电子信息发表单元从直到所述证明装置中断运用或者数据消失的时刻接收并存储的证书中,以电子方式发表具有可计算的分配值而其父节点的分配值不能计算那样的一个或者多个节点的位置信息和分配值。
39.根据权利要求35所述的事件顺序证明装置,其特征在于,
在一定时间间隔结束后,顺序证明请求集合单元,把顺序集合树的根值分配给下一顺序集合树的叶子,以便形成关于分配给该下一顺序集合树的叶子的新登录点的即时补充信息。
40.根据权利要求34所述的事件顺序证明装置,其特征在于,
所述顺序集合树存储单元,作为关于所述顺序集合树的信息,存储在所述顺序集合树中分配处理的各节点的位置以及分配值。
41.根据权利要求35所述的事件顺序证明装置,其特征在于,
所述顺序集合树存储单元,具有存储所述新登录点的所述即时补充信息的第一堆栈,和存储所述用户装置的所述紧前面的登录点的在所述新登录点处的所述延迟补充信息的第二堆栈。
42.根据权利要求34所述的事件顺序证明装置,其特征在于,
进一步具有在所述一定时间间隔结束后以电子方式发表所述顺序集合树的所述根值的电子信息发表单元。
43.根据权利要求34所述的事件顺序证明装置,其特征在于,
所述用户装置,进一步具有用户侧电子信息发表单元,该单元在所述一定时间间隔结束前,在所述事件顺序证明装置中断运用、或者为计算所述顺序集合树的根值所需要的数据消失时,从直到所述证明装置中断运用或者数据消失的时刻接收并存储的证书中,以电子方式发表在具有可计算的分配值的所述顺序集合树的节点中、其父节点的分配值不能计算那样的一个或者多个节点的位置信息和分配值。
44.根据权利要求34所述的事件顺序证明装置,其特征在于,
所述顺序证明请求集合单元,在所述一定时间间隔结束后,把所述顺序集合树的所述根值向所述下一顺序集合树的叶子分配,以使成为向下一顺序集合树的叶子分配的新的登录点的即时补充信息。
45.一种事件顺序证明监查装置,它通过通信网络连接在生成规定的数字信息的事件的时间系列中进行证明生成某事件的相对的时刻即时间的顺序的证明请求的至少一个用户装置、制作对于来自用户装置的证明请求的证书的证明装置,监查所述证书的真假,其特征在于,
所述证明装置具有:
接收来自所述用户装置的第一证明请求的顺序证明请求接收单元;
遵照预先决定的过程从在所述第一证明请求中包含的数字信息制作顺序分配数据的顺序分配数据计算单元;
在通过把一系列顺序分配数据按时刻顺序给有向树的叶子从左顺序分配、在每一一定时间间隔生成一个集合树的顺序集合树中,通过这样的计算方法、即把对于连接给具有相同父的多个子分配的各个的分配值的连接值使用规定的抗冲突单向散列函数的结果值作为所述父分配值,计算可计算的节点的分配值、同时在所述一定时间间隔结束后计算给所述顺序集合树的根分配的根值的顺序证明请求集合单元;
制作第一证书的证书制作单元,所述第一证书包含所述顺序分配数据、以及第一顺序集合树确定信息,后者确定分配有所述顺序分配数据的顺序集合树以及该顺序集合树的叶子;
向所述用户装置发送所述第一证书的证书发送单元;
当把分配有所述第一证明请求的所述顺序集合树的叶子定义为登录点、把关于为从该登录点计算所述顺序集合树的根值所需要的节点的信息定义为所述第一证书的补充信息、把在该补充信息中在给所述顺序集合树分配所述第一证明请求的时刻可取得的补充信息定义为即时补充信息时,
给所述顺序集合树分配多个监查请求,使用和所述第一证书相同的制作方法,制作多个监查用证书,同时从所述顺序集合树取得在给所述顺序集合树分配所述多个监查请求的时刻的监查用的所述即时补充信息,并包含在各监查用证书中的监查用证书制作单元;
向所述监查装置发送所述多个监查用证书的监查用证书发送单元;
在发送所述第一证书后,接收来自所述用户装置的所述第一证书的补充信息的请求的补充信息请求接收单元;
从所述顺序集合树取得确定分配有所述补充信息的请求的所述顺序集合树以及所述顺序集合树的叶子的第二顺序集合树确定信息、以及在分配所述补充信息的请求的时刻可取得的补充信息,作为延迟补充信息的延迟补充信息制作单元;
向所述用户装置发送所述第一证书的所述延迟补充信息的延迟补充信息发送单元;
所述事件顺序证明监查装置具有:
从所述证明装置接收所述多个监查用证书的监查用证书接收单元;
从所述用户装置接收包含所述第一证书以及所述延迟补充信息的对于所述第一证书的监查请求的监查请求接收单元;
从所述多个监查用证书中,根据对于所述第一证书的监查请求的第一以及第二顺序集合树确定信息,选择通过所述第一证书生成的时间顺序之后、而且通过所述延迟补充信息生成的时间顺序之前的监查用证书的第一监查用证书选择单元;
对于所述顺序集合树的特定的节点,根据由所述第一监查用证书选择单元选择的监查用证书中包含的该节点的分配值、和从对于所述第一证书的监查请求计算的该节点的分配值是否一致的验证,监查所述第一证书的正当性,证明所述第一证书的证明请求的接收时刻和通过所述第一监查用证书选择单元选择的监查用证书的监查请求的接收时刻的前后关系的第一证书监查单元;和
向所述用户装置发送所述第一证书的监查结果的监查结果发送单元。
46.根据权利要求45所述的事件顺序证明监查装置,其特征在于,
所述监查用证书接收单元,进一步具有从时刻提供装置取得接收由所述第一监查用证书选择单元选择的监查用证书的第一时刻的单元;
所述第一证书监查单元,在所述监查结果中包含表示所述第一证书的所述证明请求的所述接收时刻在时间上在所述第一时刻前的区间时刻证书。
47.根据权利要求45所述的事件顺序证明监查装置,其特征在于,
所述证明装置进一步具有:
在所述一定时间间隔结束后从所述顺序集合树取得由所述监查用证书制作单元制作好的所述多个监查用证书的补充信息全部,作为各监查用证书的延迟补充信息的监查用延迟补充信息制作单元;
向所述监查装置发送所述多个监查用证书的所述延迟补充信息的监查用延迟补充信息发送单元;
所述事件顺序证明监查装置,进一步具有:
从所述多个监查用证书中,根据对于所述第一证书的监查请求的第一顺序集合树确定信息,选择比所述第一证书时间顺序在前的监查用证书的第二监查用证书选择单元;
对于所述顺序集合树的特定的节点,根据在对于所述第一证书的监查请求中包含的该节点的分配值、与从由所述第二监查用证书选择单元选择的监查用证书以及该监查用证书的所述延迟补充数据中计算的该节点的分配值是否一致的验证,监查所述第一证书的正当性,证明所述第一证书的所述证明请求的所述接收时刻和由所述第二监查用证书选择单元选择的监查用证书的监查请求的接收时刻的前后关系的第二证书监查单元;
48.根据权利要求47所述的事件顺序证明监查装置,其特征在于,进一步具有:
在从所述用户装置或者其他用户装置形成了第二证明请求时,根据对于对于所述第二证明请求制作的第二证书的监查结果、和所述第一以及第二证书的第一顺序集合树确定信息,判定所述第一以及第二证书间的证明请求的接收时刻的前后关系的证书间顺序判定单元;
所述监查结果发送单元,在所述监查结果中包含所述多个证书间的请求接收的时间的顺序。
49.根据权利要求47所述的事件顺序证明监查装置,其特征在于,进一步具有:
从所述多个监查用证书以及该多个监查用证书的延迟补充信息计算所述顺序集合树的根值的根值计算单元;和
进行以电子方式发表的所述顺序集合树的根值与所述计算的根值是否一致的验证的根值验证单元。
50.根据权利要求47所述的事件顺序证明监查装置,其特征在于,进一步具有:
向所述用户装置发送由所述第一监查用证书选择单元选择的监查用证书以及该监查用证书的延迟补充信息的监查用补充信息发送单元。
51.根据权利要求47所述的事件顺序证明监查装置,其特征在于,
所述监查用证书接收单元,进一步具有:从时刻提供装置取得向所述证明装置发送由所述第二监查用证书选择单元选择的监查请求的第二时刻的单元;
所述第二证书监查单元,在监查结果中包含表示所述第一证书的所述证明请求的所述接收时刻在时间上在所述第二时刻之后的区间时刻证书。
52.根据权利要求47所述的事件顺序证明监查装置,其特征在于,
所述第一证明监查单元,在所述监查结果中施加数字签名。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004239465 | 2004-08-19 | ||
JP239465/2004 | 2004-08-19 | ||
JP2004244178 | 2004-08-24 | ||
JP244178/2004 | 2004-08-24 | ||
PCT/JP2005/015085 WO2006019143A1 (ja) | 2004-08-19 | 2005-08-18 | イベント順序証明方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1910850A CN1910850A (zh) | 2007-02-07 |
CN1910850B true CN1910850B (zh) | 2010-05-12 |
Family
ID=35907526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580002822.2A Expired - Fee Related CN1910850B (zh) | 2004-08-19 | 2005-08-18 | 事件顺序证明方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7634653B2 (zh) |
EP (1) | EP1699163A4 (zh) |
JP (1) | JP4390805B2 (zh) |
CN (1) | CN1910850B (zh) |
WO (1) | WO2006019143A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162035B1 (en) | 2000-05-24 | 2007-01-09 | Tracer Detection Technology Corp. | Authentication method and system |
US8171567B1 (en) | 2002-09-04 | 2012-05-01 | Tracer Detection Technology Corp. | Authentication method and system |
US7725728B2 (en) * | 2005-03-23 | 2010-05-25 | Business Objects Data Integration, Inc. | Apparatus and method for dynamically auditing data migration to produce metadata |
US8122087B2 (en) * | 2006-03-21 | 2012-02-21 | Aol Inc. | Matching engine for comparing data feeds with user profile criteria |
IL178488A0 (en) * | 2006-10-05 | 2008-01-20 | Nds Ltd | Improved key production system |
DE102007061312A1 (de) | 2007-12-19 | 2009-06-25 | Siemens Aktiengesellschaft | Verfahren und Empfangseinrichtung zum Synchronisieren eines paketorientiert empfangenen mit einem gebildeten Tonsignal |
US7995196B1 (en) | 2008-04-23 | 2011-08-09 | Tracer Detection Technology Corp. | Authentication method and system |
US10554662B2 (en) * | 2015-06-30 | 2020-02-04 | Mcafee, Llc | Security service for an unmanaged device |
US10303887B2 (en) | 2015-09-14 | 2019-05-28 | T0.Com, Inc. | Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree |
US11032756B2 (en) * | 2017-03-24 | 2021-06-08 | Qualcomm Incorporated | Binary tree based PDCCH search space design |
AU2019253110B2 (en) * | 2018-04-13 | 2022-09-01 | Plaid Inc. | Secure permissioning of access to user accounts, including secure distribution of aggregated user account data |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001095078A1 (en) * | 2000-06-06 | 2001-12-13 | Ingeo Systems, Inc. | Creating and verifying electronic documents |
CN1439982A (zh) * | 2002-02-20 | 2003-09-03 | 安时乐公司 | 用于电子文档的时间标记***和用于相同目的的程序媒体 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760752B1 (en) * | 1999-06-28 | 2004-07-06 | Zix Corporation | Secure transmission system |
US7694330B2 (en) * | 2003-05-23 | 2010-04-06 | Industrial Technology Research Institute | Personal authentication device and system and method thereof |
US20050076201A1 (en) * | 2003-08-15 | 2005-04-07 | Imcentric, Inc. | System for discovering SSL-enabled network devices and certificates |
JP4451253B2 (ja) | 2003-09-08 | 2010-04-14 | 日本電信電話株式会社 | 時刻証明方法、時刻証明監査方法、時刻証明装置、監査装置、時刻証明プログラム、時刻証明監査プログラム、時刻証明検証プログラム、およびプログラム記録媒体 |
JP4602729B2 (ja) | 2003-10-03 | 2010-12-22 | 日本電信電話株式会社 | 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体 |
-
2005
- 2005-08-18 CN CN200580002822.2A patent/CN1910850B/zh not_active Expired - Fee Related
- 2005-08-18 EP EP05772742.2A patent/EP1699163A4/en not_active Withdrawn
- 2005-08-18 US US10/587,132 patent/US7634653B2/en not_active Expired - Fee Related
- 2005-08-18 WO PCT/JP2005/015085 patent/WO2006019143A1/ja active Application Filing
- 2005-08-18 JP JP2006525004A patent/JP4390805B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001095078A1 (en) * | 2000-06-06 | 2001-12-13 | Ingeo Systems, Inc. | Creating and verifying electronic documents |
CN1439982A (zh) * | 2002-02-20 | 2003-09-03 | 安时乐公司 | 用于电子文档的时间标记***和用于相同目的的程序媒体 |
Non-Patent Citations (4)
Title |
---|
吴蒙.一种基于时间流的安全多播密钥更新机制的研究.电子与信息学报 7.2004,(7),1045-1052. |
潘志铂 |
潘志铂;郑宝玉;吴蒙.一种基于时间流的安全多播密钥更新机制的研究.电子与信息学报 7.2004,(7),1045-1052. * |
郑宝玉 |
Also Published As
Publication number | Publication date |
---|---|
US20080307221A1 (en) | 2008-12-11 |
US7634653B2 (en) | 2009-12-15 |
WO2006019143A1 (ja) | 2006-02-23 |
CN1910850A (zh) | 2007-02-07 |
JPWO2006019143A1 (ja) | 2008-05-08 |
EP1699163A4 (en) | 2014-03-26 |
JP4390805B2 (ja) | 2009-12-24 |
EP1699163A1 (en) | 2006-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1910850B (zh) | 事件顺序证明方法 | |
Yun et al. | DQN-based optimization framework for secure sharded blockchain systems | |
Franklin et al. | Fair exchange with a semi-trusted third party | |
Zhang | Key management scheme for secure channel establishment in fog computing | |
Nakanishi et al. | Unlinkable divisible electronic cash | |
US20090089575A1 (en) | Service Providing System, Outsourcer Apparatus, Service Providing Method, and Program | |
JP5574402B2 (ja) | 分散型秘匿化データ統合装置、分散型秘匿化データ統合方法および分散型秘匿化データ統合用プログラム | |
CN112069550B (zh) | 一种基于智能合约方式的电子合同存证*** | |
CN102301643B (zh) | 数据处理***中的密码证书的管理方法和*** | |
Küpçü | Official arbitration with secure cloud storage application | |
Zheng et al. | A practical quantum designated verifier signature scheme for E-voting applications | |
Yan et al. | Cheating identifiable (k, n) threshold quantum secret sharing scheme | |
Gao et al. | Quantum election protocol based on quantum public key cryptosystem | |
EP1986146A1 (en) | Transaction method between two entities providing anonymity revocation for tree-based schemes without trusted party | |
Shao-hui et al. | Public auditing for ensuring cloud data storage security with zero knowledge Privacy | |
CN114598477B (zh) | 一种基于器件无关量子随机数的共识***及其方法 | |
CN114386072A (zh) | 数据共享方法、装置和*** | |
Mamageishvili et al. | Mechanism design and blockchains | |
CN102301644A (zh) | 数据处理***中的数据项的验证 | |
Rashid et al. | Cryptographic framework for role control remedy: A secure role engineering mechanism for single authority organizations | |
CN114598717B (zh) | 分布式云存储数据访问方法及数据服务*** | |
CN113301118B (zh) | 区块链共识节点的确定方法、共识方法、***及设备 | |
WO2024146179A1 (zh) | 跨区块链事务处理方法、相关设备、存储介质和产品 | |
Wu | Efficient and Traceable Anonymous Credentials on Smart Cards | |
Nakanishi et al. | An unlinkable divisible electronic cash with user’s less computations using active trustees |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100512 Termination date: 20160818 |
|
CF01 | Termination of patent right due to non-payment of annual fee |