Guaranteed Delayed Message Delivery

Hello, this article is more an outline for reflection than a full-fledged article and its purpose is to discuss one interesting and irrelevant topic.

Formulation of the problem

Send a message to the interlocutor, quickly check the delivery, guarantee the ability to read no earlier than after a specified time, and only guarantee the readability itself, and not directly read.

Scope of application

  1. Testament for great-great-grandchildren? - incorrect statement of the problem, if they have not yet been born, because delivery is not guaranteed.
  2. Holy copywriters who care about the audience make a film and simultaneously launch it a) in theaters, b) officially in the torrent. The torrent uploads the video in excellent quality, but with the possibility of opening in N months.
  3. Uncle Vasya wrote a book exposing classified materials and is not sure that after this he will be able to survive, but he wants to take time and promote it. He can upload one chapter of his book a week, and together with the first chapter put out the whole book in open access, but with a reading delayed for a couple of months, as a result, the nonrandom death of the author is an impetus for even more promotion of information that can no longer be localized and intercept.
  4. Flashmob The all-seeing general is planning an attack on the virtual state in the virtual world [/ me winks]. It sends instructions with deferred reading to all its virtual subordinates and issues an order to read the instructions as early as possible, for example, everyone will succeed in 5 days.
  5. The fight against spam. Mr. X is not opposed to receiving letters from strangers, but wants to torture spammers, then he puts an asymmetric lock on his mailbox and, upon the first request, gives the public key with a delayed reading of 10 minutes. In this case, it is assumed that this is a computational overload of spammers task, and not about simple expectation, i.e. This is a special case of implementation.

Implementation methods

  1. Cryptographic. We will postpone reading the description of this method while reading the next ten methods, if you still do not like goto.
  2. Astronomical. The use of a global clock, such as the planet’s exit from the sun. It will be possible and useful in those near times when any person can discover guaranteed previously unknown planets, i.e. approximately when the number of undetected planets available for detection will be slightly less than the number of all possible 128-bit UIDs of the 21st century. It is assumed that the information necessary for opening a packet of data will be removed from the planet itself.
  3. Logistic. Delayed postmen, bank cells. In this terribly outdated method, timely delivery control suffers.
  4. Logistic 2. Send a message to the moon, it is reflected and returns to Earth in a second. Beautiful, but not suitable - it’s bad that again we can’t check the delivery in advance.
  5. Biological. If we need to transfer only a couple of bits, we can give the recipient a pack of flower seeds, and he will have to grow them until mid-summer, when he learns the color of the petals - and this will be a decisive moment. DNA scanners can ruin this promising primitive method.
  6. Biological 2. We transfer our gene through conception and thus identify ourselves - we can assume that this was a message.
  7. A hardware solution with an alarm clock giving a message at a given time.
  8. Technological. We give the message in an unobvious form, for example, on an undeveloped film and then the recipient is forced to spend some time guaranteed to go to the darkroom.
  9. Networked. We give the encrypted message right away, and the cron'y will give the password from 10 of some provided servers. It will be more beautiful if only the target recipient of our message knows about these servers, and it would be better if he did not know them, but was only ready to receive an email from someone.
  10. Corporatocratic. (Idea for European business). In objective reality, there should be at least one intergalactic alien-protected disinterested office that will lay out a trillion public keys for encryption for the next million years, and private keys for decryption will be published in the public domain one per second for this million years. At the children's level, it is realizable as two fingers, but for some reason I have never heard of such laboratories before.
  11. Composite Well, yes, where is an engineer without such an obvious advanced proposal ...

Additionally. If you need to protect yourself from the Inquisition brute force, you need to provide a way to replace the message, for example, if we are talking about hiding the decryption key for a couple of months, then it would not be bad that, when opening the message with a fake key, when decrypting, you get something digestible - similar to the truth.

And now to the first method (see method 1) - cryptographic methods. The bottom line: we encrypt so that nobody can decrypt quickly. Here we will talk about algorithms that cannot be parallelized. I want to give thought to the development of such methods. Here are examples of sequential non-parallelizing (hopefully) decryption functions:
  1. Like a Fibonacci series, only backward (backfibonacci-my method).
  2. Calculation of the inverse function for f (f (f (... (f (message) ..)))

Fibonacci series
It is defined as x n = x n-1 + x n-2 , respectively, we can calculate x n-2 = x n - x n-1 to the end where x 0 = x 2 - x 1 .
Then, when performing calculations, we need to constantly store only two operands. Of course, we are not talking about the arithmetic sum, but about the reversible binary operator.

The inverse function to f (f (... f (message) ...))
The encryption algorithm:
  1. We take the initial message of any length or just a password.
  2. We generate a key for, for example, symmetric encryption.
  3. We encrypt the message (password) with the key and add the key to the encrypted message (concatenation).
  4. (1-3) Generate a new similar key, encrypt and concatenate. Repeat this many times.

The decryption algorithm is obvious - at each iteration of the decryption we see the next key you need.

I suppose that the transition to partial decryption of intermediate values ​​will not allow you to read the beginning of the message, but, in general, you can use the appropriate encryption mode that is appropriate for you. Also, for the sake of humor, you can initially lengthen the original message with garbage. For symmetric encryption, the encryption time will be commensurate with the decryption time, which, for example, does not bother me, for example, if I am the owner of a modern processor, which is faster to find.

The error of the cryptographic method.
From the explanations it can be seen that the recovery time depends on the processor architecture and its clock frequency. To avoid this, you can objectively stamp fast processors to calculate this one single function, then each person will have the fastest processor for a negligible price. Of course, such consumer goods may not be suitable for strategic purposes, but then you can think a little and use the composite method (see method 11).

See also method 10. The topic of cryptographic services, if you think about them, provides a number of business ideas and network protocols that the world has never seen before. So far, implemented in practice, I only know certification, but, for sure, I just know very little; and storing rainbow tables is, in my opinion, not a very healthy topic, although modern.

Also popular now: