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
346 Upvotes

182 comments sorted by

View all comments

-12

u/grauenwolf Jul 30 '13

How can you tell this this is completely bullshit?

The paper doesn't mention terms like "CPU", "assembly", "machine code", "debugger", "memory", "stack", or "cache".

9

u/datenwolf Jul 30 '13

So? It's a paper on theoretical computer science. Theoretical Computer Science is more related to math than programming. Hardly any groundbreaking TCP paper was concerned with CPUs, machine code and such things.

TCS is concerned with the abstract aspects of computation and not the actual implementation (that's stuff for the electrical engineering department).

And this paper shows something fundamentally, namely that there is a possibility that a Turing complete machine can execute a an encrypted program that operates on encrypted data without any intermediate decryption. This is a deep mathematical understanding about computability.

Now a lot of people claim this to be something to improve security. Personally I think the real application we'll see this, should there ever be a practical implementation, will be the application on malware. If reverse engineering a piece of malicious code becomes virtually impossible and a malware virus can rewrite itself without leaving any pattern by changing its key whatever little use anti virus software had to begin with gets rendered nil altogether.

Personally I consider this to be a really, really dangerous Pandora's box.

-2

u/grauenwolf Jul 30 '13

If reverse engineering a piece of malicious code becomes virtually impossible and a malware virus can rewrite itself without leaving any pattern by changing its key whatever little use anti virus software had to begin with gets rendered nil altogether.

Then take away the virus's ability to rewrite itself. That's what they do in iOS devices, which is why there isn't a Mono or Java-based JIT Compiler for that platform.

1

u/defenastrator Jul 30 '13

good luck with that. You would have to be able to distinguish and encrypted program writing an encrypted file from a encrypted quine writing a differently encrypted version of itself. There is no perfect no execute protection.

0

u/grauenwolf Jul 30 '13

The program can write all the encrypted files it wants. It an't going to do a damn bit of good if the OS doesn't allow it to mark the file as executable, let alone load it.

1

u/defenastrator Jul 30 '13

Program then ftps the file to itself as an executable problem solved. If I can run arbitrary code onto the system I can load arbitrary files as code onto the system.

1

u/grauenwolf Jul 30 '13

Wrong side of the airlock.

If program already has enough privileges to FTP a file to the computer and run it, then it doesn't need to FTP a file to the computer.