3 ms·
I had heard of this paper but reading a summary now makes me link the idea with secure verifiable computing [1]. This is basically the same base idea where A wa
by yoha 13y ago
I had heard of this paper but reading a summary now makes me link the idea with secure verifiable computing [1]. This is basically the same base idea where A wants to send a program to B so that B can use the program but not know what it does. In the case of the original article, you want B to get back the results by himself (like in a conventional application).
However, there is another approach where B is just an untrusted third party where you want to outsource the computation. In other words, A wants to get back the result and check it, without B knowing anything of it. There is actually a(n almost) generic construction that allows that [2]. In short, you consider the boolean circuit of what you want to compute and transform it so that the inputs are keys necessary to unroll the computation, until getting the encrypted result. More specifically, step 1 gets the input keys and compute some new key (amongst several possible); step 2 use this key for next computation and so on.
On the one hand, this constructions are very neat because they give us a better understanding of what we can do with cryptography. On the other hand, they can be a little frightening because they are the theoretical grail for DRMs and such.
[1] https://en.wikipedia.org/wiki/Verifiable_computing https://en.wikipedia.org/wiki/Verifiable_computing
[2] Part 1 of A Proof of Security of Yao's Protocol for Two-Party Computation, http://eprint.iacr.org/2004/175.pdf http://eprint.iacr.org/2004/175.pdf
- userbinator 13y ago> On the other hand, they can be a little frightening because they are the theoretical grail for DRMs and such. Definitely. I can't help thinking that the ones who will end up using this sort of technology are corporations who want to control their users, and malware writers. The phrase "Those who give up freedom for security deserve neither" and http://www.gnu.org/philosophy/right-to-read.html http://www.gnu.org/philosophy/right-to-read.html also come to mind... it's scary, security is a double-edged sword.
- asgard1024 13y agoActually, I think there could be an application in gaming for this. Imagine a game that cannot be beaten with hacking or cheating (reading the code); you would have to play it correctly in order to win. For example, an adventure game could use this to great extent. There simply wouldn't be a way to know the story until someone would actually managed to go through it and tell you. There could be hidden levels or easter eggs and no one would ever know. (I came up with this when I was thinking of a Minecraft clone, where you would have to discover the recipes to build stuff on your own. Although I was thinking about simply using hashed input into recipe routine for obfuscation.)
- whatshisface 13y agoWhy is it good to stop people from cheating on a single player game?
- asgard1024 13y agoYou can consider it an "artist's statement", something comparable to Kryptos statue. Nothing evil in that, I believe.
- Already__Taken 13y agoReading the code doesn't mean you can cheat or hack. I don't see why you'd engineer out of the game every social element that makes them fun. The only category that would work for is if you procedurally generate every run through of the game and randomise all the mixes so 2 people talking to each other on computers next to each other literally don't have the same game to mix the same items together.
- drdeca 13y agoThey aren't saying the game would work differently. Rather, things would not be known until at least one person got that far. One couldn't, as soon as the game came out, look at the executable or source file, and determine how it ends, way before anyone else who was playing legitimately. So people wouldn't be able to spoil the twist until someone actually got to it. I think this would actually make people more likely to play it together, because there would be real discovery, and people wouldn't know for sure if they REALLY found everything yet. People could tell each other what they found, but they would only be able to find it by playing, not because one guy looked at the program and just made a complete list. (I have also thought about a similar problem before, but the result ended up being really slow, and I don't know how to make a text adventure actually fun. Mostly it was just really slow though.)
- userbinator 13y ago> One couldn't, as soon as the game came out, look at the executable or source file, and determine how it ends, way before anyone else who was playing legitimately. ...or until someone writes a bot to brute-force their way through the game, because computers are really good at trying lots of possibilities really really quickly, many orders of magnitude more quickly than a human player could.
- kabouseng 13y agoIsn't that concept also close to homeomorphic encryption? http://en.wikipedia.org/wiki/Homomorphic_encryption http://en.wikipedia.org/wiki/Homomorphic_encryption
- yoha 13y agoHomomorphic encryption is one the primitives which is used for this kind of construction, but it is not sufficient per se.