4 タイムスタンプに関連した仕様と標準化動向
4.3 ISO/IEC FCD 18014-3 Part 3 :リンクトークンを生成するメカニズム
4.3.2 リンクの方法
4.3 ISO/IEC FCD 18014-3 Part 3:リンクトークンを生成するメカニズム
作ったハッシュ値(L)を結合し、新しいリンク値(Rt)を作る方法である。(Merkle の2分木:階層型リンキングなど)。集約の目的は計算効率を高め、TSAのスケー ラビリティを向上させるためであり、幾つかのアルゴリズムが提案されている。
TSAは過去のリンク値およびリンクへの入力値であるTSTInfoのハッシュ値を すべてリポジトリに保存しておく。集約があれば集約のトップのハッシュ値も後 の検証のために保存しておく。TSAはこのリポジトリを完全性を保って保管しな ければならない。
図 4.3-1リンクの生成
複数入力の集約の方式の1つにMerkleの2分木がある。これを図 4.3-2に示す。
Rt-1 Rt Rt+1
a
Rt-1 Rt Rt+1
a b c d
L
集約
A:単一の入力 B:複数入力の集約
リンク リンク
同一の時刻t 時刻t
図 4.3-2集約Merkleの2分木
Merkleの2分木アルゴリズムでは、集約の演算が入力の数をnとすると、log2
nで済み計算効率が高められる。
ISO/IEC 18014-3の規定では定義していないが、集約したトップのL6をスーパ ーハッシュ、生成されたリンクをルートハッシュと言うことがある。
その他の集約のアルゴリズムとしてはRSA演算を適用する方法などがある。
4.3.2.1 リンク操作(Linking)
TSAは以前に生成した他のトークンに、タイムスタンプ・トークンのハッシュ 値を結合してハッシュ関数の入力とし新しいトークンを生成する。最新のトーク ンは過去にリンクに参加したすべてのタイムスタンプの暗号学的な合成となって いる。生成されたハッシュ値はハッシュ関数の非衝突性によって検証可能な暗号 学的リンクとなる。
4.3.2.2 集約(Aggregation)
TSAは計算効率やスケーラビリティを向上させるために、一つ一つのタイムス
L6
L4 L5
L2
L1
L0
a b c d e f g
リンクへの入力
L0 = H(a, b) L1 = H(c, d) L2 = H(e, f) L4 = H(L0, L1) L5 = H(L2, g) L6 = H(L4, L5)
Rt = H(Rt-1, L6)
H(x, y): xとyを結合 させたハッシュ値 Rt
Rt-1
集約
ープに対してリンク操作を行うことができる。複数のイベントを一度にリンクさ せることを「集約」という。この集約されたイベントのすべてのタイムスタンプ は同じ時刻とみなす。集約の一般的な方式にはMerkleのハッシュ2分木がある。
4.3.2.3 公開(Publish)
TSAによって生成されたリンクは「広い証人」を得るために公開される。この 公開によってデータが公開以前に存在していたことを示すことになる。トークン を「広い証人」を得たイベントとリンクさせることで、TSAは、それぞれのトー クンが何時生成されたかの検証可能な表明を行うことができる。
TSAはこのようなトークンの公開を、例えば週に1度、リンク値のトークンを 新聞などに発表する、あるいは信頼されるWebページに公開する、広くメールに よって知らせるなどの方法で実現する。