How to encrypt a file in such a way that it cannot be read until a certain time in the future?

How to encrypt a file in such a way that it cannot be read until a certain time in the future?

Attached: animated.gif (500x362, 1.71M)

Other urls found in this thread:

chain.link/
smartcontract.com/link
twitter.com/SFWRedditVideos

Interesting concept. Can it be done?

unless you make it so its impossible to spoof the current date it would be impossible

decrypt only if current machine date = that from a pre-designated internet based time server perhaps??

So you need a trusted server and a means of transmission?

There must be a way around it.

Yes. The answer is a smart contract (e.g. stinky linky). There. I've said it! BLOOOCKCCHAIN.

Attached: no-toilette.jpg (525x525, 29K)

email the private key at that time

Alternatively just fuck tech and go to your local notary. As simple as it gets. Fucking brainlets in here.

Attached: 1517421813902.png (449x493, 387K)

>encrypt it normally
>safe until some time in the future when some supercomputer cracks it or someone finds a hole
>???????
>profit


I suppose it'd be a "certain time" that you'd set though.

How does that implementation not suffer from needing a trusted server and a means of transmission (also secure)

What is this precisely?

chain.link/
smartcontract.com/link
or just head over to Jow Forums, they fucking love stinky linkies.

Attached: 67456784657865472.jpg (1008x864, 133K)

1. Pick a bunch of random numbers x0 ... xn
2. In parallel, compute H0 = hash(hash(hash(...(x0)))), H1 = hash(hash(hash(...(x1)))), etc. Set n and the number of nested hash calls based on how long you want decryption to take.
3. Publish x0 and the results of encrypt(x1, key=H0), encrypt(x2, key=H1), etc.
Disclaimer: this isn't my idea, I read about it somewhere, and I may have fucked up the explanation.

The basic idea is that you can compute all those hashes in parallel, but the receiver must compute them sequentially because they need H0 to obtain x1, H1 to obtain x2, and so on.

the power of blockchain

I aint clicking that while I am at work :(

Release the key after a certain date.

>encrypt with rsa
>have cron decrypt the file using ./private_key at some point in the future
>make sure ./private_key doesn't exist in present day, present time
>set up external server to email private key at future date
>have a python script execute (with cron) at future date to download the email and save to ./private_key
>original cron script decrypts
>???
>profit

Attached: 1416173262463.gif (480x320, 1.38M)

>make sure ./private_key doesn't exist in present day, present time
How? I don't even see why that step is necessary desu, did you just want to make the epic meme reference?

Make, say, ten keys and entrust them to different entities, all to be published on the date you want. Make it so that any seven of the keys can be used to find the private key, but less than that provides no useful information.

Now you've got redundancy: if a couple of your trusted entities turn out not to be trustworthy, they still can't get in with just two keys. If a couple of them lose the keys before the date comes, the file can still be decrypted.

>Make it so that any seven of the keys can be used to find the private key, but less than that provides no useful information.
I tried to write something in python that could do this as my first programming project but gave up on coding completely. I understood the theory behind the maths and had a grasp of the code workings I just didn't have the motivation.

Maybe that's what I need right now, some motivation.

How do you get yours?

epic meme references aside, OP said that he doesn't want the file to be encrypted before said date. If the private key exists on the machine, in theory the file could be decrypted by an attacker before the specified time. My method ensures that the file cannot possibly be encrypted before the scheduled time unless the external server is also compromised.

Attached: 9860374ff5952764c9a25440437d1553f0806520a506984d993e076923555519.jpg (213x255, 8K)

For the record I am op and I have been criticising ideas in this thread.
I do not think that it is possible to encrypt a file without a private key being generated. You could have it be random data that is never taken off the RAM and is expunged, and therefore has to be reached through trial and error, but that does not solve the problem.

I am also open to anyone proving that it is impossible.

Motivation comes from the interplay of two factors: success, and expectations.

If you don't have a feeling that you're getting anywhere, it's almost impossible to find the motivation to carry on. And if you expected to do something easily, you set yourself a higher bar for success.

So break it down into small tasks, and you'll get the sensation of progress, which gives you a lift and inspires you to keep going.

This brings with it two further benefits. First, if you're implementing your idea piece by piece then you can spot problems as they arise. It wasn't broken last time you tried it, and it's broken now, so that means the key to finding out what went wrong must be in the little bit you just did - the search space is far more limited. (The mistake might be somewhere else, but you can track it from your last few minutes' work)

And (mainly a benefit in the professional world), this can allow you to make freakishly accurate estimates for how long something is going to take. You know all the bits you'll have to do, you know from experience how long each of those takes, so instead of "Yeah I reckon I'll be finishing it up sometime after lunch", you're able to say "I'll have this finished in four hours and twenty minutes", and be within a minute or two most of the time. When you're working as part of a team, that can really help your colleagues out.

sorry i should clarify. the private key /is/ generated, but it is sent to the external server immediately and not stored on the local machine.

Attached: 1416129576841.jpg (480x480, 14K)

So we still rely on a trusted server and a means of transmission again.
>Motivation comes from the interplay of two factors: success, and expectations.
I suppose I'm on Jow Forums and this is what I should expect, a cold and methodical mathematical relationship between factors. One that I know to be true. I may as well confess that I'm a neet.

As for the professional world, I have a job lined up in data analysis, so I don't really need python, I wonder if there is a way to prepare myself?

>I wonder if there is a way to prepare myself?
lube

Oh right, I forgot the last step, where you generate a key, encrypt the file with the key, encrypt the key with Hn, and destroy the original key. Now it's guaranteed that anyone wanting to read the file needs to run n*m sequential iterations of the hash function, where m is the number of times you apply hash() for computing each of the H0...Hn