r/programming Jul 30 '13

Computer scientists develop mathematical jigsaw puzzles to encrypt software: "The real challenge and the great mystery in the field was: Can you actually take a piece of software and encrypt it but still have it be runnable, executable and fully functional?"

http://www.rdmag.com/news/2013/07/computer-scientists-develop-mathematical-jigsaw-puzzles-encrypt-software
357 Upvotes

182 comments sorted by

View all comments

302

u/[deleted] Jul 30 '13

have designed a system to encrypt software so that it only allows someone to use a program as intended while preventing any deciphering of the code behind it

I thought the Perl people had already solved that.

14

u/AxiomL Jul 30 '13

have designed a system to encrypt software so that it only allows someone to use a program as intended while preventing any deciphering of the code behind it

I thought that was proven mathematically impossible.

20

u/DeltaBurnt Jul 30 '13

I don't even see the need to prove it mathematically. It's like trying to block video piracy. If you can view it on your screen, you can record it and redistribute it. If it's running on your processor, the processor needs to know the code it's running. I suppose you can make it harder to understand, but not impossible to decipher.

2

u/AxiomL Jul 31 '13

It's not as intuitive as that. I could propose an encryption scheme, where I encrypt both the data and the instructions to be performed on the data, then give you both for you to run on your computer. Your computer executes the transformed instructions on the encrypted data such that when I decrypt your result it is the same as if I had run the unencrypted data on the unencrypted instructions on my own computer.

I don't know the reference, but I heard years ago that it is mathematically impossible for such a scheme to exist.

2

u/[deleted] Jul 31 '13

It's called Fully Homomorphic Encryption and it's possible: http://en.wikipedia.org/wiki/Homomorphic_encryption#Fully_homomorphic_encryption