Reverse engineering algorithms?

KeskusteluPurely Programmers

Liity LibraryThingin jäseneksi, niin voit kirjoittaa viestin.

Reverse engineering algorithms?

Tämä viestiketju on "uinuva" —viimeisin viesti on vanhempi kuin 90 päivää. Ryhmä "virkoaa", kun lähetät vastauksen.

1timspalding
heinäkuu 16, 2015, 1:46 am

Does anyone know the state of reverse-engineering algorithms?

I mean, if you had a simple page with an input and a submit button, and it produced an output based on the input in some simple way, and you could run a program against this page a billion times, what algorithms could you write to make good guesses at what it was doing?

Or expand it and look at a complex algorithm--hit a forum site, or, say, Twitter. Obviously a black box can contain anything--maybe if you submit a tweet with six @ signs, Twitter turns into a video of Cthulhu eating you. But can you write an algorithm that makes good guesses at it?

2prosfilaes
heinäkuu 16, 2015, 2:31 am

In the most general case, that includes known-plaintext attacks on cyphers. Other examples are translation systems and object recognition systems, where you have inputs and outputs and the magic of connection is unknown. It seems a very broad subject at the least best narrowed down by human before handing it to an algorithm, and needing an algorithm specific to the problem.

3KeyMasterOfGozer
heinäkuu 23, 2015, 11:45 am

I think with something like a chip(silicon), where you have limited, numeric inputs and outputs, you could reverse engineer it by putting all sets of numbers through and plotting curves that become emergent in the data, but that really doesn't lend itself to all black box problems. Your twitter easter egg problem would be easy, since there are only 144 characters per tweet, an algorithm could just execute all possible tweets and see what happens with each.

prosfilaes is right, though. It would require something like strong AI (or maybe I should say Strong I, since a human can do this as well. :) ) to create a new algorithm for each black box you encountered.

4prosfilaes
heinäkuu 23, 2015, 6:00 pm

"Only 144 characters per tweet"? Actually 140, but only looking at ASCII (94 visible characters + space), at one per microsecond, that's 10262 billion years. Just exhaustively testing a binary operation on two 32-bit values at one per microsecond would take a half-million years.

5daschaich
elokuu 8, 2015, 1:03 pm

Even though it's a digression, I'm mildly surprised
http://what-if.xkcd.com/34/
hasn't yet been mentioned.

6timspalding
elokuu 11, 2015, 1:56 am

Thanks. I'd never seen that.