时间戳的工作原理与法律适用

  作者:王运嘉

  前言

  我想从法律人的视角就Proof-of-Existence(“存在证明”,按法律术语,也就是与证据三性中的“真实性”相关的“完整性”、“一致性”、或“在后证明”,或者说是,形式上的“真实性”),这个时下相当热门的议题,和大家聊聊我的心得与看法,希望能对大家有所助益,谬误之处也请大家多多指正。之所以选择存在证明这个议题,是由于“举证责任之所在乃败诉风险之所在”,处于电子信息无处不在并且在逐渐取代传统纸质文书的今天,如何证明电子信息的真实性是法律人当下安身立命的重中之重。而存在证明,按法律人的术语,简单讲,就是证明电子信息的”完整性”,或者说是形式上的真实性。选择以时间戳作为讨论存在证明的开端之作,主要由于它在电子证据里扮演着一个基础性的核心技术角色,因为时间戳也是区块链的基础,区块链是电子记账凭证(当然也是存在证明的一种)的发展趋势,尤其在电子金融领域里,各大国际巨头已经投入大量的人力物力财力来挖掘区块链的潜力。想必大家都听说过“比特币”,虽然比特币广受争议,但区块链却大放异彩。比特币的核心技术就是区块链,而区块链的核心技术之一就是时间戳,所以,时间戳的重要性可见一斑。

  最近有关数据电文、电子合同、电子证据、电子认证、电子签名、和时间戳的文章与讨论不断冲击着法律人的眼球与刺激着法律人的神经,其中前面几个名词对法律人而言还相对熟悉些,至少可以望文生义,但一看到“时间戳”这个相对技术性较强的名词,就有点吃不准了,再加上时不时与时间戳同时出现的“哈希值”,就更就有点吃不准了。最近许多报道开始介绍时间戳这个名词,似乎有些作者不断强调时间戳可以作为电子证据或电子证据保全的代名词,同时不断举出一些例子来告诉你时间戳已经被法官所接受了、有些公证处开始使用时间戳了、有些判决也开始接受经过加盖时间戳的数据电文作为有效证据,但是,时间戳到底是个啥?有那么神奇吗?能证明些什么呢?法律人与一般公众一样,都处于互联网与物联网的信息爆炸时代,几乎所有的信息都能电子化,眼看着数据电文的应用愈来愈广泛,当事人现在会提交许多数据电文(或更广义些,电子信息或电子化信息,常见的有:电子邮件、QQ聊天记录、微信聊天记录、电话录音、现场录音、甚至于视频录像等等),期待着你能够告诉他,这些都能成为有效的合法的有证明力的证据,但是,你心里却打鼓不已,因为你心里明白,是否能成为有效证据还真没谱。所以,无论你接受与否,电子信息承载的内容不可避免的在争议解决中是否能成为有效证据变的非常关键,时间戳真能化腐朽为神奇吗,作为法律人的我们虽然是技术领域的门外汉,但却必须与时俱进,都不想被时代淘汰,于是乎大家都睁大了眼睛竖起了耳朵想一探究竟。 我在美国研究所里学习计算机科学的时候,算法和密码学曾是我的专业,数十年后,在中国学习法学,博士论文也是与计算机软件相关的,对与计算机相关的法律或法学问题有着天然的兴趣与关注,今天我试着为大家揭开存在证明里的第一层迷雾 — 时间戳的工作原理和法律适用。只要明白了时间戳的工作原理,很多疑惑就拨云见日,很多法律适用的问题就迎刃而解了。顺带的,时下有关时间戳的文章大都是商家所撰写的,商业气息比较浓厚,有失偏颇,甚至于有误导之嫌。所以,我会顺带为各位澄清一个关键的技术重点,时间戳里的“时间”并不是必须直接由国家授时中心直接调取,这与一些商家所强调的向左。尔后在续篇中,我也会适时的指出时间戳在目前司法适用上的几个误区。

  这个系列的讨论,我刻意的用浅白通俗的词语,是希望能提高非工科背景法律人的可读性,同时也不引用或尽量少引用法条,有双重目的,一是让大家注意力集中在问题的本质而不是法条的表述,二是“法律源于经验”,其中经验也包括了技术的应用。其实计算机就是计算机,只不过是个工具,除了少数特例(例如,随机数产生器“Random Number Generator”等)一切都是Deterministic (可预测的,也就是说,同样的inputs,就会产生同样outputs),没那么神奇,关键是要了解问题的本质与解决问题的方法。如果因为法条的表述不当而在法律解释或法律适用上出了问题,那只能怪立法者或裁判者没搞清楚(典型的例子就是《计算机软件保护条例》,以后有机会也可以聊聊),而不能怪问题不清或技术不当,关键是立法者与裁判者是人不是神,总会有知识盲区,希望本文也能对立法者与裁判者有所助益。

  我以二张图(如下)来介绍时间戳的工作原理,图一是时间戳的生成,图二是时间戳的验证。在正式介绍之前,先得明确下图里的“数据”(也就是,数据电文或电子信息)的涵义。在这里,数据指的是由一连串的“0”和“1”比特(Bit)所组成的序列(本文中称之为“比特序列”),至于这个比特序列的所代表的内容、含义、或意思则在所不问,换言之,这个比特序列可以是个WORD文档、一个PPT文档、一个音频文档、一个视频文档等任何有意义的文档,也可以是人们看不懂的密码,或者,甚至于可以是毫无意义的乱码。我们的目的就是利用时间戳来证明这个数据在某个“时间点”曾经存在过,并且至今未被篡改过,所以有人称之为“在后证明”。严格意义讲,时间戳所能证明的,并不是数据的真实性,而是数据的“完整性”(或“一致性”、“未篡改性”),或者是形式上的真实性。至于这个数据实质上是否真实,或这个数据所表达的内容、意思或含义就不是时间戳所能解决的问题了,而是当事人之间的博弈与裁判者的认定,尤其希望裁判者对时间戳有广泛而深入的认识,因为这是电子证据的起点,否则轻则误判某个案件,重则误导整个行业或社会,绝非危言耸听。

  进入主题之前,得明确下何谓哈希函数与哈希值(在这里,我们只做简单的介绍,详细的介绍请容尔后另撰专文),哈希函数是一种数学算法(Algorithm),简单讲,就是将一个比特序列经过特殊的数学计算后产生一个唯一的数值,称之为“哈希值(Hash Value)”,也称为“哈希碼(Hash Code)”、“哈希摘要(Hash Digest)、或“哈希指纹(Hash Fingerprint)”。这个数值是唯一的,也就是说,一个数据经由哈希函数所计算出来的哈希值具有唯一性,不同的数据所产生出来的哈希值是不同的,一个哈希值只能对应到一个数据,不同的哈希值所对应的数据是不同的,所以,数据与哈希值之间具有一对一的映射关系。另外,哈希值具有不可逆性,也就是说,一个数据可以计算出一个哈希值,但是一个哈希值不能倒过来计算出原来的数据,换言之,数据不能经由哈希值而被还原。

 时间戳的工作原理与法律适用 【图一】时间戳的生成

  时间戳的生成(请参照图一),包含了下列步骤:

  (1)申请人自己使用TSSC(Time Stamp Service Center,时间戳服务中心,是个第三方机构,提供时间戳的生成与认证服务)所提供的哈希函数软件(简称为“时间戳软件”),以需要加盖时间戳的数据作为输入,从而由该软件计算出一个哈希值,此处标示为哈希值A。这个操作可以由申请人自己完成,原因是为了保护数据的机密性或隐秘性,如果申请人不在乎这个保护,当然也可以将数据提供给TSSC,由TSSC代为操作。

  (2)申请人将哈希值A经由时间戳软件发送给TSSC。这个软件应当保证发送过程中的安全性与完整性。

  (3)TSSC收到哈希值A时记录下收到的时间点,并结合哈希值A与该时间点形成一个新的数据,并以该新的数据作为哈希函数的输入,从而计算出哈希值B。

  (4)TSSC以自己的私钥对哈希值进行加密处理以保证哈希值的完整性与机密性,从而形成一个加密后的哈希值,然后与时间点绑定封装,生成相应的时间戳。

  (5)TSSC将时间戳返回给申请人。同样的,得保证传输中的安全性与完整性。

  (6)申请人收到时间戳后立即与相应的数据进行绑定封装,也就是,形成对应关系并且储存在同一文件夹下,以方便未来验证时使用。当然,这个不是必须的,关键是只要申请人在验证时能够提供原来的数据与时间戳即可,至于如何绑定与储存可基于自身情况另行制订管理体系。

时间戳的工作原理与法律适用

  【图二】时间戳的验证

  一旦了解了时间戳的生成,时间戳的验证(请参照图二),就相对简单多了,以下操作可以由申请人或TSSC完成:

  (1)首先,以原来的数据(简称为“原数据”)作为输入,经由时间戳软件计算出哈希值A。

  (2)其次,结合哈希值A与时间点作为输入,经由时间戳软件计算出哈希值B。

  (3)接着,用TSSC的公钥对原先加密后的哈希值进行解密,产生另一个哈希值B’。

  (4)将哈希值B与哈希值B’进行对比,如果二者相同,则证明了原数据自TSCC生成时间戳的时间点至今都没有被篡改过。否则,有可能是原数据被篡改,或时间点被篡改,或者是时间戳不是由同一TSSC所生成的,至于到底是哪一种,如果没有进一步的证据,只能推定是原数据被篡改过,或者说,原数据在那个时间点未曾存在过。

  以上就是时间戳的工作原理,相对来说,并不复杂,挺简单的。但是,如果仔细探究,这里面有三个关键词,一是哈希函数,二是时间点,三是密钥系统(PKI,Public Key Infrastructure)。其中,相哈希函数与密钥系统,都是属于算法范畴,并且有许多不同的算法,各有利弊,在这里先一笔带过,暂时避而不谈,往后再另行撰文专门讨论。至于时间点,我倒是要在这里特别解释一下,因为这个“时间点”,严格意义讲,并不像一些商家宣传所说的必须要从中科院国家授时中心直接调取,事实上,完全可以从任何一个客观的相对准确与稳定一致的第三方时间源调取即可,例如,GPS或北斗星定位系统的时间源、CCTV电视信号的时间源、互联网的时间源、或者是国家授时中心经由不同方式(如:卫星授时、长波授时、短波授时、网络授时、与语音报时等)所提供的各种时间源。其中,每种方式都有不同的精度,但是,除了极少数的特例(例如,航天、航空、天文、通讯等)外,在法律适用的领域里,绝大部分的时间精度只要在秒或分的级别就足够了,例如,一般经由公证处所做的证据保全其时间精度往往是在日的级别。所以,所谓“可信时间戳”中的“可信”是建立在哈希函数与密钥系统的数学理论基础之上,是经由数学理论来保证数据的完整性,从而保证形式上的真实性。换言之,”可信”的核心在于哈希函数与密钥系统,而不在于时间源,就TSSC而言,只要有一个客观的相对准确稳定一致的时间源即可。

  顺带一提,时间就物理与天文研究而言,是门大学问,许多科学家穷毕生精力想解开时间的奥秘,但就一般老百姓而言,就是居家过日子习以为常的计时刻度。每个国家都有一个标准时间,中国现代时间标准是中科院国家授时中心(英文缩写为NTSC)建立并保持的原子时标准,民用时间标准也是由该中心建立并保持的协调世界时UTC(Universal Time Coordinated)。所以,中国标准时间,就是协调世界时,也就是与世界保持同步的时间。中科院国家授时中心利用一组原子钟(目前为19台铯原子钟,4台氢原子钟),通过测量比对和算法设计,建立并保持着高精度中国原子时标准TA(Time Atomic)和协调世界时标准,并通过卫星与世界上主要时间实验室保持定期时间对比从而保持同步。总的来说,我国的民用标准时间是与国家标准时间同步的,而我国的国家标准时间是与世界协调时间保持同步的,换言之,我国的民用标准时间不但和国家标准时间保持同步,同时也和世界协调时间也保持同步,只不过精度有所不同。就一些需要高精度时间标准的技术与科学领域,是有必要经过特殊的设备和仪器从国家授时中心直接调取时间源,可是作为存在证明的时间戳而言,实在无此必要,仅须分秒级别的时间精度已经足够,关键是必须保证时间源的客观性以及相对准确稳定与一致性。

  综上,单靠时间戳是证明不了证据三性里的真实性的,而只能在后证明某一数据(数据电文或电子信息)自先前的某一时间点至今都没被篡改过,也就是,数据的“完整性”、“一致性”、“未篡改性”、或,形式上的真实性。此外,形成时间戳所需的时间点并不需要从国家授时中心直接调取,任何客观的相对准确稳定一致的时间源均可作为时间点的时间来源。

 

相关文章:

1、时间戳在著作权纠纷案件中的认定

2、时间戳保护版权管用吗?

3、北京首例使用时间戳固定证据案件一审宣判

4、知识产权判决中的时间戳证据