> ts_tool -s -init "乱数のための文字列"これにより,Signalerは秘密鍵, 公開鍵のペアを作成して クライアントからの鍵要求待ち状態に移行する. 本来なら放送したいがそれはできないのでこうなっている.
> ts_tool -e -init "サーバのip address"これにより, カレントディレクトリにtimecapsule.pubという 公開鍵ファイルが生成される.
> ts_tool -e -f "ファイル名" -t 復号許可時刻 -s 乱数これにより, "ファイル名"を暗号化した"ファイル名.tce"というファイルが生成される. 復号可能時刻にはYYYYMMDDhhmmssの形の秒単位の時刻を指定すること.
YYYY:西暦4桁 MM:月(01〜12) DD:日(01〜31) hh:24時間(00〜23) mm:分(00〜59) ss:秒(00〜59)
> ts_tool -d -f "ファイル名.mts" -a "サーバのip address"これにより, "ファイル名.mts.dec"という"ファイル名"と同一のファイルが生成される. Encoderが指定した復号可能時刻よりも前にこのコマンドを実行しても失敗する.
(G1, +), (G2, ×) をそれぞれ離散対数問題が困難な群とし,
e : G1 × G1 → G2
をペアリング写像 (e(nP, Q) = e(P, nQ) が成り立つ) とします.
(P, xP)
を公開鍵として公開します.e(1/(x + t)P, xP + tP) = e(P, P)
の成立をもって確認できます.s = e(rP, P)
を計算し, これをコンテンツの暗号化鍵(セッション鍵)として暗号化します. 暗号化されたコンテンツには(t0, r(t0 + x)P)
をヘッダとして付加しておきます.(r(t0 + x)P, 1/(x + t0)P) = s
を計算しコンテンツを復号します.p+1 = 2^512 - 2^384 + 2^160 - 2^128 - 2^64 = m × 2 ^ 64 × 4083347321136877 × 626211632945787132711495483863 × 296090721933842419838212125193885104528533 m = 960010107982557278263008018855396039340009821353 (about 160bits)を意味します. 楕円曲線は, 座標系, およびdistorsion写像としては
E : y^2 = 4x^3 - 12x Jacobi coordinate x = X/Z^2, y = Y/Z^3 e : E[m] × E[m] → F_(p^2) distorsion map E[m] : (x, y) → (-x, iy) (i^2 = -1)を利用しました.