1

We learned a lot about cryptography in class already, like encoding messages or signing them, creating shared secrets between network nodes, symmetric and asymmetric encryption methods...

I am wondering: Is it possible, with the given algorithms and concepts of encryption, to prove that a given data set has a given age?

I want to have a little chunk of meta information (like when signing data -> the datas hash encrypted with the private key) that allows anyone to verify that the data they are viewing is still the same as it was e.g. 5 days ago. Think of age verified security camera recordings for example.

Is this currently possible? If not, what are the problems that prevent such systems from working? Could it be possible somehow? Share your wild ideas please.

Erik Brendel
  • 113
  • 3
  • 1
    You mean that you want to sign a timestamp or make the timestamp part of the digital signature? – schroeder Oct 07 '18 at 22:28
  • 1
    *"signing data -> the datas hash encrypted with the private key"* This is a dangerous simplification in some signature schemes, and not at all valid in other signature schemes. Please do not rely on it, and I encourage you to do your best to get it out of your mind. For the specific case of RSA, see [Is RSA encryption with a private key the same as signature generation?](https://crypto.stackexchange.com/q/15997/1142) on [crypto.se]. – user Oct 08 '18 at 09:58

2 Answers2

1

Yes, you could do that with a block chain https://en.m.wikipedia.org/wiki/Blockchain

Block chain acts as a distributed ledger, that ledger could contain hashes of video files. Block chain entries are time-stamped and as long as you trust the blockchains current state you could verify the previous hashes haven't changed by verifying app the entries since then.

Here's a research paper talking about storing video hash in the Bitcoin block chain transaction history SECURING VIDEO INTEGRITY USING DECENTRALIZED TRUSTED TIMESTAMPING ON THE BITCOIN BLOCKCHAIN

Pang
  • 185
  • 6
Daisetsu
  • 5,110
  • 1
  • 14
  • 24
  • 1
    So, the idea is simply to take a hash of the data and store the hash on a blockchain and use the built-in timestamping (and timestamping integrity) controls to ensure the integrity of the timestamp? – schroeder Oct 07 '18 at 22:53
  • That's the plan, there's a lot more to actually implementing this system, but it sounded like Erik was asking about the concept, so I didn't go further. – Daisetsu Oct 07 '18 at 22:58
1

Common Encryption, Signing, Encoding etc algorithms themselves do not not have a concept of time. Thus with these techniques alone it is not possible to create what you want. And while it would be easy to include a timestamp together with the encrypted data it would be also easy to include some fake timestamp, i.e. something on the past or in the future depending on what should be achieved.

The situation changes if you add the concept of trusted timestamping, i.e. something which others will trust to provide both the accurate time and to combine this time with some data in a way which can not be manipulated later to change the time or data.

One possible implementation for such a trusted timestamping is to use a Trusted Stamping Authority (TSA) where a hash of the original data is submitted and which then combines this hash and a timestamp and digitally signs this combination. Everybody who trusts this TSA can verify the signature and check the timestamp and thus validate that the (hashed) data are at least as old as the timestamp says. It is not possible this way to guarantee that the data are not older because the creator of the data might just submit the data for timestamping any time he wants.

For more information about this see various questions in this site, like Trusted Timestamping Scope and Real-World Uses or How to prove a picture was taken before a certain date?. See also the article on Wikipedia about Trusted timestamping which in addition to a description of the TSA includes information about decentralized timestamping using a blockchain and which contains many useful links for further information.

Steffen Ullrich
  • 184,332
  • 29
  • 363
  • 424