I want to create a Server S1, that publish a different value every 10 minutes on the internet. The value looks something like f7826da6-4fa2-4e98-8024-bc5b71e0893e.

I want a create another server, S2 able to verify at anytime if a value is generated by S1 or not.

Everyone on the internet can see and collect the values generated by S1 so the rotation/encryption function has to be more or less secure and for example not increasing the original value by 1 every 10 minutes.

maybe sharing a key between the two servers and than use it to encrypt the value at each time is one solution but I have a very basic knowledge in cryptography and don't know how to start. Is there a name for the mechanism I want to do ? Do you know what are the different mechanism to achieve it ?

  • 2
    $\begingroup$ How many bytes do you need per value? Anyways you could just share a static 256-bit key $K$ between the servers and publish $\operatorname{HMAC-SHA256}_K(\text{CTR})$ with CTR being a shared counter. $\endgroup$ – SEJPM May 10 '16 at 19:34
  • $\begingroup$ To clarify: Do you need successive values of the information published by S1 to be both unpredictable and verifiable? Additionally, do all potential verifiers (S2) have access to mutual shared secret information with S1? Or should S2 not require any secret information? Does the "shape" of the data matter? (i.e. the '-' symbols in it). Hashing or regular encryption would not preserve them, if so. $\endgroup$ – Ella Rose May 11 '16 at 0:56
  • $\begingroup$ Yes the values has to be unpredictable and verifiable but also the time matters, as I described, the value change every 10 minutes so S2 should be able to verify that this is the value published by S1 at this time. There is only one S1 verifier that can have access to shared keys. The shape matter, the value should look like f7826da6-xxxx-xxxx-xxxx-xxxxxxxxxxxx, but if the last 12 characters are enough I could just use them and generate random values in the others $\endgroup$ – user567 May 11 '16 at 9:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.