Code obfuscation, 'Wind Talkers'-style

239 views Asked by At

Back in World War II (and WWI apparently), encryption schemes used by the warring parties kept getting cracked. Then some genius who understood language realized that sending messages in an esoteric natural language would be better than any cipher, due to the enormous differences that languages can bear to one another in terms of syntax--e.g. Navajo vs. Japanese. Codes based on Navajo went uncracked. The title is a movie reference.

So you can see where this is going. What's a good language, with an available native compiler, that few people know yet is powerful enough in which to write, say, a key authentication module? I thought of Cobol but couldn't find a native compiler, by which I mean a compiler that compiles directly into machine language and not by first translating into C or some other standard language and then compiling the C.

I realize that at the assembly level it's probably all the same, but I still think being able to write unreadable high-level code might help in some situations.

2

There are 2 answers

0
Matt Phillips On BEST ANSWER

I'm going to go with @birryree's suggestion of Prolog, at least pending further investigation. It has a native compiler and is actively maintained, but only by a small academic community. So the likelihood of an 'average joe' programmer knowing it is relatively small. But the tradeoff of it being somewhat less obscure, for its power, is probably ok.

1
ctrlc-root On

Well, I think you answered your own question in a way.

I realize that at the assembly level it's probably all the same [...]

The same algorithm programmed in different languages will be equally difficult to crack. Because its the same algorithm. Unless there is some particular vulnerability in the language's standard libraries or maybe the compiler makes a mistake when compiling the program. As far as esoteric languages with compilers, brainfuck is the only one I can think of off the top of my head. http://home.arcor.de/partusch/html_en/bfd.html