Encode a message so it can't be read until a certain time?

For the serious discussion of weighty matters and worldly issues. No off-topic posts allowed.

Moderators: Azrael, Moderators General, Prelates

Cervisiae Amatorem
Posts: 57
Joined: Mon Aug 29, 2011 5:47 pm UTC

Encode a message so it can't be read until a certain time?

Postby Cervisiae Amatorem » Fri Sep 06, 2013 5:26 pm UTC

I apologize for not knowing the right words for this, so I don't even know what I would search for. Let's say I had a message that I wanted to send to the world (or anyone who cared) but I don't want anyone to read it before tomorrow morning.

GMail, Yahoo, Hotmail have delayed email, but then I'm relying on their security to not be compromised, and we know they are porous to the NSA and probably bored interns.

I can't just send it to my lawyer with instructions not to release it early, because then I have to trust a lawyer. His office could be broken into, his kids could get kidnapped, he might be blackmailed. Plus he might lose the message or forget to send it out. I could split the message up between several lawyers, but the problem remains.

Is there some technology that can do this?

Роберт
Posts: 4285
Joined: Wed May 14, 2008 1:56 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby Роберт » Fri Sep 06, 2013 5:34 pm UTC

That seems pretty paranoid.
The Great Hippo wrote:[T]he way we treat suspected terrorists genuinely terrifies me.

User avatar
Qaanol
The Cheshirest Catamount
Posts: 3031
Joined: Sat May 09, 2009 11:55 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby Qaanol » Fri Sep 06, 2013 5:43 pm UTC

The keyword you want to search for is "dead man's switch".
wee free kings

Bsob
Posts: 119
Joined: Tue Mar 27, 2012 12:44 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby Bsob » Fri Sep 06, 2013 5:53 pm UTC

Send VIA courier with a delivery date.

Sometimes the sneakernet is the best solution.

User avatar
JBJ
Posts: 1263
Joined: Fri Dec 12, 2008 6:20 pm UTC
Location: a point or extent in space

Re: Encode a message so it can't be read until a certain tim

Postby JBJ » Fri Sep 06, 2013 6:46 pm UTC

If the issue is absolute trust in the system, where it can't be compromised without breaking the laws of physics? Not really... no. If someone can think of a way to secure something, someone else can think of a way to un-secure it.

If you want physics on your side, you could send the message on a coherent beam into space to a waiting satellite 12 light hours away for relay back. But that satellite would already have to be in position out past the Kuiper belt. And it assumes that the NSA doesn't have other satellites waiting along the transmission path to intercept the message.

A more feasible option would be to put the message in a watertight box with a recovery system attached to a timer. Sink to a respectable depth. Timer goes off, it floats back to the surface. If the desire is to broadcast the message instead of waiting for someone to find it, I'm sure something could be rigged with a satellite phone or Pactor modem or something. Of course, the paranoid counter to this method is that the CIA has a trained squid ready to recover it.
So, you sacked the cocky khaki Kicky Sack sock plucker?
The second cocky khaki Kicky Sack sock plucker I've sacked since the sixth sitting sheet slitter got sick.

Heisenberg
Posts: 3789
Joined: Wed May 14, 2008 8:48 pm UTC
Location: Uncertain

Re: Encode a message so it can't be read until a certain tim

Postby Heisenberg » Fri Sep 06, 2013 7:43 pm UTC

I think the answer can be summed up as: hide it somewhere it is likely to be found.

If you're going to recover it, you can hide it anywhere. If you want it revealed when you die, buy a burial plot and hide it there. If you want it revealed in a year, hide it in a smoke alarm. Something like that?

If you want to actually encrypt it, you'd need access to future information. If you use a simple date from the future, anyone can decrypt it by trying lots of dates. If you have some measure of prescience, and know, say, the opening value of the Dow and Randall's exact GPS coordinates on 08:00:00 year 2020, then you could use an amalgamation of those to encode the data, share the file and the conditions needed to generate the key, and it couldn't be cracked until that exact time. But again, you'd need to be prescient, so good luck with that.

Tyndmyr
Posts: 10119
Joined: Wed Jul 25, 2012 8:38 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby Tyndmyr » Fri Sep 06, 2013 10:35 pm UTC

Cervisiae Amatorem wrote:I apologize for not knowing the right words for this, so I don't even know what I would search for. Let's say I had a message that I wanted to send to the world (or anyone who cared) but I don't want anyone to read it before tomorrow morning.

GMail, Yahoo, Hotmail have delayed email, but then I'm relying on their security to not be compromised, and we know they are porous to the NSA and probably bored interns.

I can't just send it to my lawyer with instructions not to release it early, because then I have to trust a lawyer. His office could be broken into, his kids could get kidnapped, he might be blackmailed. Plus he might lose the message or forget to send it out. I could split the message up between several lawyers, but the problem remains.

Is there some technology that can do this?


Sure, have the message sent at a given time. This is fairly easily scheduled in many ways. People can't read what they don't have.

Also, I suspect that if you are seriously worried about a lawyer being blackmailed, his kids kidnapped, etc, you MIGHT be a wee bit paranoid. That's mostly Tv crap.

User avatar
snowyowl
Posts: 464
Joined: Tue Jun 23, 2009 7:36 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby snowyowl » Fri Sep 06, 2013 11:34 pm UTC

All the methods posted so far are pretty air-tight. But if you're somehow not satisfied with any individual one, combine them all. First, encode your message with a one-time pad. Encode the one-time pad with another one-time pad. Continue this until you have 7 coded messages.

Give one to your lawyer, send two using scheduled email from different services, send one via courier, one via normal post, toss one in the ocean with a GPS beacon on a timer, and buy ad space in your newspaper for the last one.

Once someone collects them all, they only need to be XORed together to recover the original message. But if even one goes missing, the rest are worthless.
The preceding comment is an automated response.

User avatar
Azrael
CATS. CATS ARE NICE.
Posts: 6491
Joined: Thu Apr 26, 2007 1:16 am UTC
Location: Boston

Re: Encode a message so it can't be read until a certain tim

Postby Azrael » Fri Sep 06, 2013 11:39 pm UTC

Some company somewhere must make a small, consumer safe or lockbox with a time delay opening, right?

User avatar
Djehutynakht
Posts: 1546
Joined: Thu Feb 10, 2011 1:37 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby Djehutynakht » Fri Sep 06, 2013 11:55 pm UTC

Azrael wrote:Some company somewhere must make a small, consumer safe or lockbox with a time delay opening, right?



But someone could cut into it with a laser beam!


Although, in honesty, such a device would probably work, although if you wanted to make it absolutely safe, there would have to be a self-destruct function if an attempt to force was made.
Last edited by Djehutynakht on Sat Sep 07, 2013 12:03 am UTC, edited 1 time in total.

Tyndmyr
Posts: 10119
Joined: Wed Jul 25, 2012 8:38 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby Tyndmyr » Fri Sep 06, 2013 11:57 pm UTC

Djehutynakht wrote:
Azrael wrote:Some company somewhere must make a small, consumer safe or lockbox with a time delay opening, right?



But someone could cut into it with a laser beam!


At some point, I have to question how much security is actually needed. What is this info, the cure to cancer or something?

User avatar
WibblyWobbly
Can't Get No
Posts: 505
Joined: Fri Apr 05, 2013 1:03 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby WibblyWobbly » Sat Sep 07, 2013 12:10 am UTC

Tyndmyr wrote:
Djehutynakht wrote:
Azrael wrote:Some company somewhere must make a small, consumer safe or lockbox with a time delay opening, right?



But someone could cut into it with a laser beam!


At some point, I have to question how much security is actually needed. What is this info, the cure to cancer or something?

Recipe for flan, I'll bet. Really, really good flan should be a highly guarded secret, though, IMO.

As far as absolute security goes, the idea using one-time pads is pretty good, as a correctly used one-time pad is unbreakable. But then again, you have to trust whoever you give the other halves of the OTPs to, and if time is more essential than security, you can't trust that they'll all assemble the necessary pieces and use them in time, nor that whoever ends up with the last piece is truly trustworthy. No system made that can't be broken by the sufficiently motivated.

If releasing the information at a specified time is most essential, I like Qaanol's solution: if it's something like blackmail (for protection, not for personal gain, because we wouldn't be extortionists around here, right?) it should be possible to encode the information in an innocuous form, leave it on a server (or several, or many) along with a piece of code designed to disseminate it wildly unless someone with a code or password or token disables it every so often.

User avatar
Thesh
Made to Fuck Dinosaurs
Posts: 5268
Joined: Tue Jan 12, 2010 1:55 am UTC
Location: Colorado

Re: Encode a message so it can't be read until a certain tim

Postby Thesh » Sat Sep 07, 2013 12:23 am UTC

What do you need secured that is both not so secret that people can't know about it a week from now, and so secret that you can't trust a law firm (or two, or three, if you want to hand out one-time pads) and you are at risk of you or your family being kidnapped? There is no secret that cannot be retrieved. Signals to space? Intercept them before they get there. At the bottom of the sea? Intercept with a submarine. At some point you either have to trust yourself and/or someone else to keep something secret.
Honesty replaced by greed, they gave us the reason to fight and bleed
They try to torch our faith and hope, spit at our presence and detest our goals

Derek
Posts: 2099
Joined: Wed Aug 18, 2010 4:15 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby Derek » Sat Sep 07, 2013 5:08 am UTC

He probably doesn't actually have something he wants to secure, he is probably just curious about the hypothetical.

User avatar
LaserGuy
Posts: 4318
Joined: Thu Jan 15, 2009 5:33 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby LaserGuy » Sat Sep 07, 2013 5:23 am UTC

Encrypt the message, send it immediately to the specific people who you want to receive it through whatever method (email, say, doesn't matter).

Send the key to the same people with a delay. Use a different method of sending it. Snail mail is probably good enough--it'll arrive a couple days later.

User avatar
Thesh
Made to Fuck Dinosaurs
Posts: 5268
Joined: Tue Jan 12, 2010 1:55 am UTC
Location: Colorado

Re: Encode a message so it can't be read until a certain tim

Postby Thesh » Sat Sep 07, 2013 11:08 am UTC

Derek wrote:He probably doesn't actually have something he wants to secure, he is probably just curious about the hypothetical.

I realize that, I'm just curious what hypothetical scenario that could apply to. Cryptographic protocols solve problems; designing a cryptographic protocol without a problem to solve is like writing saefty regulations for logging on the moon.
Honesty replaced by greed, they gave us the reason to fight and bleed
They try to torch our faith and hope, spit at our presence and detest our goals

User avatar
gmalivuk
GNU Terry Pratchett
Posts: 25454
Joined: Wed Feb 28, 2007 6:02 pm UTC
Location: Here and There
Contact:

Re: Encode a message so it can't be read until a certain tim

Postby gmalivuk » Sat Sep 07, 2013 1:15 pm UTC

It's not without a problem to solve. There are many situations in which someone might want to be sure a person receives a message, but not just yet. The only difference is wanting a more secure way of doing that than trusting intermediaries.
Unless stated otherwise, I do not care whether a statement, by itself, constitutes a persuasive political argument. I care whether it's true.
---
If this post has math that doesn't work for you, use TeX the World for Firefox or Chrome

(he/him/his)

elasto
Posts: 3052
Joined: Mon May 10, 2010 1:53 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby elasto » Sat Sep 07, 2013 2:12 pm UTC

gmalivuk wrote:It's not without a problem to solve. There are many situations in which someone might want to be sure a person receives a message, but not just yet. The only difference is wanting a more secure way of doing that than trusting intermediaries.

I think more specificity would still help.

For example, if he's well known, he could take care of the problem of the message itself being captured and suppressed the same way Wikileaks did: By releasing it as an encrypted bittorrent and having thousands of people download it. If he's just Joe Bloggs that option isn't nearly so easy.

As another example, does he mean literally that he wants to create the message today and have it read tomorrow, or does he have more preparation time than that?

It would also help to know if there's just some ordinary criminal gang after him or if he's Jason Bourne and has the whole might of a Black Ops government agency hunting him down. If it's the former, he'll probably be safe merely by flying to another country, going to a random internet cafe, and setting up a number of email accounts under random names with the capability to send delayed emails - the contents of which are encrypted and which can only be decoded by the people receiving all the emails simultaneously (so no issue with 'bored interns' or, realistically, the NSA). If he's Jason Bourne that's probably not enough because there will be local agents waiting by the phone in every city in the world, ready to jump him and engage in a shaky-cam fight to the death.

[Realistically, if he's saying he doesn't trust technology (because it could be hacked) and he doesn't trust intermediaries (because they could be unreliable or intercepted) and he can't do it himself, that doesn't leave him with a whole lot of options.

There are still options - many of which have been listed here - but which one would have the greatest chance of success rather depends on the specifics of his situation.]

Derek
Posts: 2099
Joined: Wed Aug 18, 2010 4:15 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby Derek » Sat Sep 07, 2013 4:50 pm UTC

One option is to make the decryption step sufficiently expensive that it takes a sufficiently long amount of time to decode, even with the correct key. The problem here of course is that if you don't know the exact computational resources of the receiver(s), you don't know exactly how long it will take them to decrypt. Also, the encryption step will probably take about as long as the decryption step, so you'll need set up time proportional to the delay.

morriswalters
Posts: 6553
Joined: Thu Jun 03, 2010 12:21 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby morriswalters » Sat Sep 07, 2013 6:05 pm UTC

The only way this seems to make sense is if you want to be gone for a period of time before someone is triggered to look. If so, then use a timer to turn on your computer 24 hours after you walk away and have the mail client set to sync automatically. Disconnect the network, send the message and shutdown the computer. Write a simple script to start your mail client when the computer boots, put it in your start up folder, before disconnecting. After 24 hours the computer boots, the message is sent and you are 24 hours away. Assuming no one boots the computer you are good. Low tech, the timer is cheap and the script is easy.

NM020110
Posts: 17
Joined: Mon Mar 19, 2012 5:03 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby NM020110 » Sun Sep 08, 2013 1:25 am UTC

Hmmm...one could encrypt a message with a random password of sufficient strength that the average time to brute force it for the recipient's computer is about equal to how long you want the delay to be. A rapid and unexpected advance or poor information on the target's resources might pose a problem, and sheer bad luck could see the time to delivery vary significantly, but otherwise this method should be secure enough.

User avatar
sardia
Posts: 5562
Joined: Sat Apr 03, 2010 3:39 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby sardia » Sun Sep 08, 2013 3:20 am UTC

Bury a nuclear bomb with a timer outside city AAA. Set the timer to when you want the message to be sent. Tell the recipient that someone is out to get you and that he'll know what to do if anything happened in city AAA at x o'clock. Hide the message in your house, addressed to the recipient.

dii
Posts: 164
Joined: Fri Feb 22, 2013 2:42 am UTC
Location: 60.17°N 24.94°E

Re: Encode a message so it can't be read until a certain tim

Postby dii » Sun Sep 08, 2013 6:51 am UTC

JBJ wrote:A more feasible option would be to put the message in a watertight box with a recovery system attached to a timer. Sink to a respectable depth. Timer goes off, it floats back to the surface. If the desire is to broadcast the message instead of waiting for someone to find it, I'm sure something could be rigged with a satellite phone or Pactor modem or something. Of course, the paranoid counter to this method is that the CIA has a trained squid ready to recover it.


The solution is, that the watertight box only contains the key required to unencrypt the message. The message itself has been in plain sight, on a public website, all the time, but encrypted with 4096-bit RSA. Once the box surfaces, it transmits the key, allowing people to read the message on that website.

Alternatively, you could also just create a tamper-proof computer (something simple, maybe an ARC chip running a linux kernel) that accepts no type of input, and is pre-programmed to count a certain time, then to broadcast the key in its volatile memory. Any attempt to tamper with the computer would cause it to switch off, which would empty the volatile memory, destroying the key, making it so the message can never be read (unless you have a backup key somewhere). To make the system more robust, there could be several of these types of computers in different locations.

Nem
Posts: 335
Joined: Fri Aug 14, 2009 12:19 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby Nem » Sun Sep 08, 2013 9:59 pm UTC

About the closest I can think of is taking a seed, hashing it repeatedly for a certain length of time and then using the output as a key. That would establish a certain amount of energy that someone had to spend - and if you can estimate the capabilities of your attackers reliably - or have very inexact bounds on when you want people to be able to read it (in which case you can design for a worst case) - then you can tie that to time. But time itself? No, I can't think of anything.

Edit: Needless to say you publish the seed and not the key :P

User avatar
Djehutynakht
Posts: 1546
Joined: Thu Feb 10, 2011 1:37 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby Djehutynakht » Sun Sep 08, 2013 10:55 pm UTC

Hm... a solar device might work well, or a celestial one, now that I think about it. Downside is I'm pretty sure it would have to remain in place, or at least come with coordinates.

And you might need a way to offset the weather.

User avatar
Zamfir
I built a novelty castle, the irony was lost on some.
Posts: 7220
Joined: Wed Aug 27, 2008 2:43 pm UTC
Location: Nederland

Re: Encode a message so it can't be read until a certain tim

Postby Zamfir » Sun Sep 08, 2013 11:24 pm UTC

I was thinking on a similar track as Nem's hashing: take a symmetric encryption method, and spend the required amount of time on the encoding. AES with a zillion rounds. Then hand out the cipher text and the key.

The trick is that you have to force an adversary to a strictly sequential process. If there is no efficient way to parallelize the decoding, then the cracking time will be fairly insensitive to the resources available. I am no expert, but it might be useful to look at an encryption scheme that is intended for dedicated hardware, and is also used widely enough that the hardware has already been fairly optimized. In that case there is good chance that an overclocked, high-end COTS unit is simply the fastest available process to decrypt the message, and even millions of dollars won't buy anything better.

Perhaps I am overly optimistic, but I think it should be possible to get within 10% bounds or so, perhaps even better. At least on a time scale of days or months, when you do not yet have to plan for improved technology.

User avatar
Djehutynakht
Posts: 1546
Joined: Thu Feb 10, 2011 1:37 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby Djehutynakht » Mon Sep 09, 2013 12:22 am UTC

With relations to secrecy/nondetection, I just came across this article (in the light of the NSA) that might be interesting.

You still have the time problem, though: http://www.forbes.com/sites/josephstein ... r=yahootix

User avatar
Thesh
Made to Fuck Dinosaurs
Posts: 5268
Joined: Tue Jan 12, 2010 1:55 am UTC
Location: Colorado

Re: Encode a message so it can't be read until a certain tim

Postby Thesh » Mon Sep 09, 2013 1:20 am UTC

Zamfir wrote:I am no expert, but it might be useful to look at an encryption scheme that is intended for dedicated hardware, and is also used widely enough that the hardware has already been fairly optimized. In that case there is good chance that an overclocked, high-end COTS unit is simply the fastest available process to decrypt the message, and even millions of dollars won't buy anything better.


I wouldn't go for dedicated hardware, as there is the possibility that someone has a more efficient implementation. I would go for the opposite, something that can't really make use of dedicated hardware. Use scrypt, and the fastest server you can get, with 256 GB of memory. Make it take up almost all of that memory, and it will be incredibly difficult to get a system that can break it faster. Alternatively, since scrypt uses existing hash-functions that are designed for efficiency, you can simply write a hash function yourself that uses all of your systems memory and can't really be optimized.

Spoiler:

Code: Select all

//function completely untested
//in_length and out_length must be less than or equal to internal_length
//internal_length must be a multiple of 2 and at least 4
size_t ultra_hash(const uint64_t *in, size_t in_length, uint64_t *out, size_t out_length, size_t internal_length, uint64_t iterations) {size_t ultra_hash(const uint64_t *in, size_t in_length, uint64_t *out, size_t out_length, size_t internal_length, uint64_t iterations) {
   uint64_t temp, i, j, last, count;
   uint64_t *buffer = (uint64_t *)malloc(sizeof(uint64_t) * internal_length);
   if (buffer == NULL)
      return 0;

   memcpy(buffer, in, in_length * sizeof(uint64_t));

   i=0;
   temp = in_length;
   while(in_length < internal_length) {
      temp += i++ ^ 0xB7E151628AED2A6A;
      temp = (temp >> 61) | (temp << 3);
      buffer[in_length++] = temp;
   }
   for (count=0; count<iterations; count++) {
      last = internal_length - 1;
      temp = buffer[last];
      for (i=0 ; i<internal_length; i++) {
         temp += buffer[i];
         j = (i+1) % internal_length;
         do {
            temp ^= buffer[j];
            temp = (temp << 59) | (temp >> 5);

            j = (j+1) % internal_length;
            temp += buffer[j];
            j = (j+1) % internal_length;

         } while (j != last);

         buffer[i] = temp;
         last = i;
      }
   }
   memcpy(out, buffer+(internal_length-out_length), out_length*sizeof(uint64_t));
   free(buffer);
   return out_length;
}


Remember the rule: It's easy to make a strong encryption function. It's difficult to make a strong encryption function that performs well. Since we want it to perform poorly, we don't have to worry about security. As long as the iterations are ridiculously high, there is no way that someone can break it.

EDIT: With the posted function, the complexity is O(n^2), which means it won't really work well if you want to fill the memory of a 256 GB server (where you would be doing on the order of 10^21 operations per iteration). In that case, I recommend breaking it into blocks. The first block is encrypted in place with the above function using the same memory for input, output, and internal state, then now-encrypted first block XORd to the next block, which then gets encrypted in place, and so on and so forth. Except for on the final iteration, the last block gets XORd to the first block. I recommend a minimum of 4 internal and 4 external iterations to ensure complete diffusion.

Zero will always hash to zero, but either function is invertible if the input length is known and the output length is equal to the internal length. Because of this, as long as the blocks aren't all initially zero, then the internal state will never be all zero.
Honesty replaced by greed, they gave us the reason to fight and bleed
They try to torch our faith and hope, spit at our presence and detest our goals

User avatar
Zamfir
I built a novelty castle, the irony was lost on some.
Posts: 7220
Joined: Wed Aug 27, 2008 2:43 pm UTC
Location: Nederland

Re: Encode a message so it can't be read until a certain tim

Postby Zamfir » Mon Sep 09, 2013 6:29 am UTC

Thesh, I might be missing something, but I don't see the advantage of scrypt for this particular purpose. If I understand it right, its purpose is to be extremely memory-intensive, which in turn is intended to exclude FPGAs and the likes from a parallelized key-finding effort.

But that's not really necessary here, is it? We can probably protect ourselves from parallelization simply by choice of algorithm. As long as we are willing to invest as much calculation effort in the encryption as we want others to spend in the decryption. The risk we then face is that some adversary manages to build 1 significantly faster sequential machine than we expected, while scrypt is meant to protect against the possibility that they buy significantly more parallel capacity per dollar than we expected.


What we might really need is an algorithm where encryption can be massively parallelized, but decryption (not key-finding) has to run sequentially. For example(not sure if watertight): we generate 101 keys for a symmetric code. We use 1 key to encrypt the other 100 keys. Let's call them k0 and k1 to k100. We do this in parallel, and we keep adding rounds to the encryption process until this takes us N hours on each machine. This gives us encrypted keys e1 to e100.

Then we take our message and encrypt it with k100 to get m100. This can be done normally, no need to stretch time for than needed for security. We combine m100 and e100, and encrypt them together using k99 to get m99. Add e99, encrypt with k98, etc. By the end we have m1, which contains m2 and e2 and has been encrypted with k1.

Then we publish m1, e1 and k0. Other people can now decrypt e1 using k0, which will take roughly N hours as well assuming we used a fast machine to do the encryption. Then they can go on to decrypt e2, etc.

This way you postpone a message by roughly MN hours, assuming you have M top of the range processors and N hours of time for yourself. Or alternatively, MN/k hours if you use cheap machines that are k times slower than the fastest sequential machine in existence, but more than k times cheaper. Yo u could use something like those Bit coin mining arrays to make this feasible.

User avatar
Thesh
Made to Fuck Dinosaurs
Posts: 5268
Joined: Tue Jan 12, 2010 1:55 am UTC
Location: Colorado

Re: Encode a message so it can't be read until a certain tim

Postby Thesh » Mon Sep 09, 2013 6:54 am UTC

I just feel it's significantly more predictable as to how quickly you can compute it if memory is your bottleneck, rather than CPU. Hardware implementations of processor-intensive algorithms can get significantly faster than implementation on a generic CPU. Within a very short time, someone might find a more efficient way to implement it in hardware, or get better cooling and overclocking, which could increase performance significantly. If you use a memory-bound function, while there are still ways to optimize it, it's significantly more difficult to do.

And yeah, if you have to release it quickly, an algorithm that is parallelizable to encrypt is probably ideal.
Honesty replaced by greed, they gave us the reason to fight and bleed
They try to torch our faith and hope, spit at our presence and detest our goals

aoeu
Posts: 325
Joined: Fri Dec 31, 2010 4:58 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby aoeu » Mon Sep 09, 2013 8:09 am UTC

This is common software and easyish to set up.

You give the receiver a secret decryption key and a Tor (or some other anonymization network) address in advance. Then you put the encrypted message behind Tor or some other anonymization network and have it become available on a timer. You don't necessarily even need cryptography (a password would suffice) if you trust the hosting servers won't be snooped on. Although with Tor the big spies probably can track down your server with a timing attack or something else, if you are willing to have a lot of latency then the anonymization can be a lot stronger.

Either you put the servers on your own hardware (limited reliability for the cash) or you launder the cash you use to buy VPSs (bitcoin?)

What this relies on is that nobody will be able to figure out where to look for the data early (and if they do with luck the decryption key remains secret to them)

User avatar
omgryebread
Posts: 1392
Joined: Wed Dec 15, 2010 3:03 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby omgryebread » Mon Sep 09, 2013 2:21 pm UTC

If it's just to one person or a group of people, and you can trust your final recipients not to reveal an encryption key (but cannot trust them to not read the message early), and you can set this up beforehand, this is pretty easy.

-Have two one-time pads.
-Encrypt the message with OTP#1, and give it to the recipient, along with the key for OTP#2.
-Encrypt the key for OTP#1 with OTP#2.
-Deliver the encrypted key with the delayed delivery system of your choice.
-The recipient then uses their key to get the key to decode the message.

That first step has to be pre-established though. If your enemy can intercept it, this doesn't work.
avatar from Nononono by Lynn Okamoto.

Nem
Posts: 335
Joined: Fri Aug 14, 2009 12:19 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby Nem » Mon Sep 09, 2013 2:22 pm UTC

Zamfir wrote:I was thinking on a similar track as Nem's hashing: take a symmetric encryption method, and spend the required amount of time on the encoding. AES with a zillion rounds. Then hand out the cipher text and the key.

The trick is that you have to force an adversary to a strictly sequential process. If there is no efficient way to parallelize the decoding, then the cracking time will be fairly insensitive to the resources available. I am no expert, but it might be useful to look at an encryption scheme that is intended for dedicated hardware, and is also used widely enough that the hardware has already been fairly optimized. In that case there is good chance that an overclocked, high-end COTS unit is simply the fastest available process to decrypt the message, and even millions of dollars won't buy anything better.

Perhaps I am overly optimistic, but I think it should be possible to get within 10% bounds or so, perhaps even better. At least on a time scale of days or months, when you do not yet have to plan for improved technology.


IIRC, a good hashing algorithm ought to produce outputs at each step that are highly dependent on the results of the previous iteration. Ideally, however, you'd want to run your own hashing operation in parallel. So, perhaps you can do something like Zamfir recommended - take a large number of seeds, hash them on different processors, and encrypt each seed with the results of other hashing operations as their keys - then release the encrypted seeds. You'd be able to run them all at the same time, but an attacker would have to run them in sequence.

User avatar
Moose Anus
Posts: 377
Joined: Fri Oct 14, 2011 10:12 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby Moose Anus » Wed Sep 11, 2013 6:49 pm UTC

Can you trust your own computer? Disconnect it from the internet. Set a chron job to connect it again and send the message out. Get a generator in case the power goes out.
Lemonade? ...Aww, ok.

User avatar
learsfool
Posts: 239
Joined: Sat Sep 14, 2013 3:29 am UTC
Location: Madison, WI

Re: Encode a message so it can't be read until a certain tim

Postby learsfool » Sun Sep 15, 2013 2:53 am UTC

Heisenberg wrote:I think the answer can be summed up as: hide it somewhere it is likely to be found.

If you're going to recover it, you can hide it anywhere. If you want it revealed when you die, buy a burial plot and hide it there. If you want it revealed in a year, hide it in a smoke alarm. Something like that?


You know, I think sometimes we go high tech and miss some great low tech options, don't we?

No matter what, a huge part of the problem is 'how to get the information to X person at the right time without making it available and obvious to everyone else'

So why not combine things together?

You set up a reminder service with several reminders, things like 'John's Birthday!' or 'Don't forget anniversary flowers!' and such, and include at least one message that includes an instruction (like 'Change batteries in smoke alarm').

Then, in the smoke alarm behind the batteries you have the key, it could either be obvious or, if the person in question knew what sort of code to watch for, then it could be very well hidden (for example with a replaced bar code behind the battery or a micro-SD card that would be less obvious to a casual glance)

Connect that with higher tech encryption and you've created an annoyingly difficult trail to predict in advance.

Brickmack
Posts: 58
Joined: Wed Sep 01, 2010 1:48 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby Brickmack » Fri Nov 01, 2013 11:49 am UTC

Probably the best way to do it that I can think of is to have multiple email servers, one of which sends an encrypted email and at least one other sends a key needed to decrypt it, set to send them at a particular time. The chances of multiple servers being compromised (especially if you own them) is very low

User avatar
davidstarlingm
Posts: 1255
Joined: Mon Jun 01, 2009 4:33 am UTC

Re: Encode a message so it can't be read until a certain tim

Postby davidstarlingm » Fri Nov 01, 2013 2:05 pm UTC

Depending on how much time and money you're working with....why not launch a satellite that is programmed to broadcast the message (or the encryption key) at a certain time? Trying to read that message ahead of time would probably be tricky even for black hat guy. Intact recovery of a satellite is not an easy thing to do.

Or, if that's not good enough for you, launch the satellite on a highly elliptical low earth orbit that will decay and re-enter the atmosphere at the exact time you want the broadcast to happen.

User avatar
ManaUser
Posts: 276
Joined: Mon Jun 09, 2008 9:28 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby ManaUser » Sat Nov 02, 2013 3:01 am UTC

Or better yet, send your probe further away and use the speed of light as your delay mechanism. Now that is security. Somewhat impractical though.

sweeneyrod
Posts: 8
Joined: Sat Nov 02, 2013 5:39 pm UTC

Re: Encode a message so it can't be read until a certain tim

Postby sweeneyrod » Sat Nov 02, 2013 9:27 pm UTC

Practically, I think the best thing to do would be send the message at the certain time! If you care about someone recieving the message at a given time, I think it's implied you anticipate being alive at that time, or else you probably aren't too bothered about what's happening, and if you are alive at that time and currently have the capability to send the message then it is reasonable to assume that you will still have that capability.

Failing that, encrypt it with a key of a certain time and instruct the recipient that the time a certain event occurs is the key.

User avatar
eternauta3k
Posts: 517
Joined: Thu May 10, 2007 12:19 am UTC
Location: Buenos Aires, Argentina

Re: Encode a message so it can't be read until a certain tim

Postby eternauta3k » Mon Nov 11, 2013 5:22 pm UTC

I bet there's some funky way to do this involving a betting pool. Make your secret the XOR of a million bit sequences. Choose a million people and let them bet on the time that the secret is revealed, but first place your bet on the time you want the message out. If each participant is perfectly greedy and perfectly rational, they'll join their sequences at the time you chose (???).
VectorZero wrote:It takes a real man to impact his own radius

That's right, slash your emo-wrists and spill all your emo-globin


Return to “Serious Business”

Who is online

Users browsing this forum: Exabot [Bot] and 9 guests