3 May 2013 19:40
Timestamping
Peter Todd <pete <at> petertodd.org>
2013-05-03 17:40:15 GMT
2013-05-03 17:40:15 GMT
I've been working on and off on a open-source timestamping package called OpenTimestamps (https://github.com/opentimestamps) It's based on hashing, usually by combining many digests into a merkle tree, with the tip digest being timestamped by some method. To date it's been used with the Bitcoin blockchain as the timestamping method, but the architecture is notary agnostic - RFC3161 support is on my TODO list for instance. The actual structure of a timestamp consists of a set of operations, generally hash algorithms, forming a DAG. The operations are computed, and provided the path from the input digest to the notarized timestamp(s) is valid one can prove that the data existed before the time. Nothing very exciting really in terms of actual crypto, but as far as I know my project is the first to attempt a flexible, general solution based on hashing that can, in principle, support a variety of notary methods. Timestamping came up on the GnuPG mailing list, and Werner Koch suggested I look into adding timestamps to OpenPGP signatures as Signature Notation Data. In short the timestamp would apply to the digest of the data being signed proving that it existed before some particular time; the timestamp would act to prove the Signature Creation Time field was correct, at least in one direction.(1) Timestamps on data is one obvious applications. Timestamping PGP keys is another, although actually doing so usefully is tricky. Lets look at data first. Signature Notation Data can either be signed or unsigned. A timestamp should be stand-alone - its validity must depend on the notary rather than the user - so there really isn't any need to(Continue reading)
.
RSS Feed