Register | Sign In


Understanding through Discussion


EvC Forum active members: 65 (9162 total)
1 online now:
Newest Member: popoi
Post Volume: Total: 915,819 Year: 3,076/9,624 Month: 921/1,588 Week: 104/223 Day: 2/13 Hour: 0/1


Thread  Details

Email This Thread
Newer Topic | Older Topic
  
Author Topic:   The Minkowski's challenge
Albert Godwin
Inactive Member


Message 1 of 120 (352082)
09-25-2006 11:37 AM


Know computer viruses?
You know that the virus writers started using encryption in the late 80's to avoid detection. If you have a PC virus that mutates, can you force it to evolve an encrypted virus?
And if you can't, will you please stop saying that the whole of those creatures did evolve?
The argument is simple: Selective forces will trigger only minor improvements in a living organism.
I have came to all this stuff while reading about a program called Watching the Blind Watchmaker.
I stumbled on it while reviewing a novel,
Lulu Logo
It consists of two parts. the first part acts as a replicator and the second one act as a selector.
The program verified the occurrence of microevolution yet it totally stands against macroevolution.
I will contact the author and get his permission to publish the source code here. If he agrees, i will submit it. And evolutionists will have a practical challenge.
Bye.
Albert
Released from PNT using Message 1 of thread The Minkowski's challenge. The details of the underlying argument may be found in Message 4 and Message 5 of that thread. --Admin.

Replies to this message:
 Message 2 by Dr Adequate, posted 09-25-2006 11:45 AM Albert Godwin has not replied
 Message 3 by Dr Jack, posted 09-25-2006 12:07 PM Albert Godwin has not replied
 Message 4 by PaulK, posted 09-25-2006 12:07 PM Albert Godwin has not replied
 Message 5 by Percy, posted 09-25-2006 12:53 PM Albert Godwin has not replied
 Message 6 by Barbarian, posted 09-25-2006 2:13 PM Albert Godwin has not replied
 Message 16 by nwr, posted 09-26-2006 11:10 AM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 7 of 120 (352290)
09-26-2006 3:30 AM


You are all trying to convince me that forcing a small stupid self replicator to evolve encryption is harder than the whole evolution of men?
Dear Barbarian,
I am not assembly expert, but please notice that the least mutation in biological systems is disastrous as well. so this program is no difference.
But after all said and done,
Can i now conclude that you all failed to force this program to evolve encryption?

Replies to this message:
 Message 8 by PaulK, posted 09-26-2006 4:50 AM Albert Godwin has not replied
 Message 9 by Percy, posted 09-26-2006 8:10 AM Albert Godwin has not replied
 Message 10 by Barbarian, posted 09-26-2006 8:51 AM Albert Godwin has replied
 Message 15 by Dr Adequate, posted 09-26-2006 10:59 AM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 11 of 120 (352345)
09-26-2006 9:56 AM
Reply to: Message 10 by Barbarian
09-26-2006 8:51 AM


Dear Barbarian,
I am speaking to you, and only you because it seems that you are the only one here who understands programming.
Let's make a discount:
You can fully rewrite the replicator and insert all the features that you'd like.
If you think that the original program did anything that can prohibit evolution of encryption, remove that thing. and if you believe that there is any addition that is needed to be made, make it!
If you'd like to rewrite the whole repicator in assembly, do it! ( I guess i am damn fair now, no?)
just one rule: Don't put any encrypting/decrypting code.
If this thing (i.e. YOUR program) Evolves encryption then i will become an atheist tomorrow and believe in evolution.
IF you don't remember assembly then I PUT THIS CHALLENGE TO EVERY PRO-EVOL ASSEMBLY PROGRAMMER IN THE WORLD:
WRITE _YOUR_OWN_REPLICATOR in assembly and force it to evolve encryption by any selective pressure you would like to think about.
pretty damn fair, no?
But if you can't don't keep on writing theoritical posts here. Fine ?

This message is a reply to:
 Message 10 by Barbarian, posted 09-26-2006 8:51 AM Barbarian has replied

Replies to this message:
 Message 12 by RickJB, posted 09-26-2006 10:14 AM Albert Godwin has not replied
 Message 13 by Barbarian, posted 09-26-2006 10:48 AM Albert Godwin has replied
 Message 14 by Percy, posted 09-26-2006 10:53 AM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 20 of 120 (352753)
09-28-2006 6:03 AM
Reply to: Message 13 by Barbarian
09-26-2006 10:48 AM


quote:
(1) is the task to evolve a mechanism which helps eluding a selector looking at patterns of N bytes? What is N? (I could tell right away if I saw the QBASIC code.) Am I right in calling this a stealth mechanism and not an encryption one?
The Qbasic source is already present, please look back to the codes.
quote:
(2) do I get to change the selector too, to be more stochastic? Right now the selector goes and kills on sight all viruses (= programs containing a certain sequence of bytes). It should measure the difficulty of recognizing a virus and give them a chance of survival proportional to that difficulty.
Do whatever you'd like as long as it is in qbasic
quote:
(3) do I have to use Intel 8086 machine code in a PC BIOS + MS DOS environment, as the OP does? I could easily do that - all I have to do is break out the Norton Guides and feel young again -, but I think I could propose a simpler virtual machine code, which would allow me to do 4) below, do away with the fundamental DOSyness of the OP program and make us start from the same base, as both of us would be beginners for that kind of code.
(4) it may be that the evolution of a stealth mechanism becomes possible but not in human timeframes. If that is the case, would you accept a formal proof instead of a physical experiment? The proof would try to show that after a huge number of iterations the probability of having a working stealth code goes above 90%.
No, i am sorry. If you can evolve steath (which will not either happen, ny the way) that's not the challenge. the challenge is to evolve encryption. and do it in real programming, no virual simulations and no formal proofs. i want a practical responce.
by the way, if you have read the original Marcus Minkowski/Faust Amoyo discussion, the program indeed DID evolve. but that's just a minor evolution, not marcroevolution.
quote:
(5) is there anything to speed up the process of approval from the original author to publish the code again? I would want to keep the solution as close to the original one as possible.
I don't understand. the author, Fady Bahig has a storefront here:
Lulu Logo
he put his mail there, if you want to contact him, you can.
Hey? you didn't see the code? you will find it in the proposed new articles forum !
quote:
No, that is not fine at all. But I might of course reconsider if you told us what is your objection to making theoretical posts here.
I just said that because i didn't want to see stupid replies, just like the one Rick posted right after my last message.

This message is a reply to:
 Message 13 by Barbarian, posted 09-26-2006 10:48 AM Barbarian has replied

Replies to this message:
 Message 23 by RickJB, posted 09-28-2006 7:20 AM Albert Godwin has not replied
 Message 24 by Percy, posted 09-28-2006 9:40 AM Albert Godwin has not replied
 Message 28 by Barbarian, posted 09-29-2006 4:29 AM Albert Godwin has not replied
 Message 31 by Dr Jack, posted 09-29-2006 5:45 AM Albert Godwin has not replied
 Message 37 by Barbarian, posted 09-29-2006 9:49 AM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 21 of 120 (352755)
09-28-2006 6:05 AM


you can find the code and discussion here:
http://EvC Forum: The Minkowski's challenge -->EvC Forum: The Minkowski's challenge

Replies to this message:
 Message 22 by Barbarian, posted 09-28-2006 7:03 AM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 41 of 120 (353466)
10-01-2006 2:51 PM


Dear Barbarian,
Sorry for being late. I don't understand programming and i thought that it wouldn't be wise to contact Fady Bahig, seeing his last update in his blog:
lulu.com/fadybahig
> Adding 1 to each byte? XOR-ing it to a randomly chosen segment of the ROM BASIC code byte by byte and storing the start address of the chosen segment? Full-blown DES encryption?
Well, i don't understand this but as far as i understood, perhaps you should evolve a decryptor (XOR) that decrypts the bytes that are scanned. (the bytes that the basic program searches for)
> What is the function and size of the code which needs to be hidden this way? Can it be a single NOP? Must it contain all the file-writing code? And: must it be executable over the whole evolution pathway?
It needn't be the whole program, but it must include the bytes that are looked for by the selector.
> (7) a sequence of selectors may be used. I.e. we use one selector to evolve some trait, then when that is done we use another selector until the trait evolves into something else, and so on. Note that this is what happens in nature all the time: environments change. Real environment changes regardless if certain traits have already appeared, but we need to link the two because we want a certain result, we are reverse-engineering a teleological mechanism here.
You are on! Do it,as long as you provide the sources for you selectors. I will try to contact any friend who knows programming to see them.
> (8) we should remove the error generating mechanism from the code. Most of biological evolution happens over mechanisms which seem to try very hard to produce exact copies, so mutations are essentially errors of that mechanism. I propose that mutations happen after file writing, during the copying to the new directory or whatever corresponds to that step. It should not be possible for a program to evolve the capability of not mutating at all. (In a virtual machine, replacements of bytes would also happen as random mishaps during store operations, not under the control of the code.)
Incidentally, if I posted a solution, would you be able to verify it? You said you were no assembly expert. Virtual machine?
I don't understand. please clarify.
> A virtual simulation would have all the advantages we need here. It could manage the whole cycle - generate-select-verify - in a much shorter time. We could do away with dangerous things like one-byte interrupt calls which could easily damage the filesystem on your disk, or do damage to older harddisks or monitors. The particular machine code is complicated, and while that complexity is not a principial showstopper in any of the theoretical questions we try to tackle here, it could still make the effort practically unrealistic. Note that this does not mean that processes of similar character are unrealistic in nature, with more time and resources at its hands. If I understand your challenge correctly this time, I will insist on either the use of a virtual machine, or on a detailed explanation from your part about why do you think a virtual machine is a bad idea, because I don't really get it.
Ok man. YOU ARE ON ! (I guess i am quite confident that nobody will make that, no ? )Use virtual emulation, as long as you give us the code of the program that evolved finally.
> I saw it, but I never said the program could not evolve at all. I said there are severe limitations to what it could evolve to, considering the inherent size limitation and the very restrictive selector.
Things that are not present now. because you will write your own selector.
I'll add the reply to the other post within moments.

Replies to this message:
 Message 43 by Barbarian, posted 10-02-2006 9:56 AM Albert Godwin has replied

  
Albert Godwin
Inactive Member


Message 42 of 120 (353473)
10-01-2006 3:12 PM


>Why is encryption needed? The program could contain the encrypted portion and never execute it directly, only after decryption. Having only an encrypted portion and the corresponding decryptor is just as irreducibly complex, isn't it? If the decryptor runs on a non-encrypted code portion, it will create nonsense code, and if we have a non-functional decryptor, the encrypted code is useless. I propose to do away with the encryptor part and focus on breeding a program with an encrypted part and a decryptor.
OK! I am very kind, no? but wait? if the decryptor will decrypt the code, it will be unencrypted. But it needs to be RE-ENCRYPTED before the program makes a copy of itself. Otherwise, the decryptor of the offspring will run over non encrypted bytes and garble them, no? ( I am not a programmer but i understand logic )
> I propose that the code write one single offspring in one run. The selector must be in charge with running the program and applying the mutations, because it needs info about the program's behavior.
I don't understand. please clarify
>I feel I have explain my previous request that the mutator be separate: it would make possible to automate the verification that the children run correctly. namely: if they produce an exact copy of themselves with the mutator agent turned off and they finish running before a given number of machine cycles are spent then they will be deemed to be correct and only then will be considered for selection.
I don't totally understand this. I will tell you what i understood: You want to first give the program some free time for some generations and then start the mutations ? If that's what you want then you are ON ! ( but you'll never evolve encryption, i am sure )
> If we were using a virtual machine, I would propose to have a number of special instructions which are frowned upon by the selector if seen in the code, but which are required to be executed. These instructions do not need any particular function, as only their presence would matter - they could be glorified NOPs, NOP1 through NOPn. By demanding that all of them are executed from within the program, but also demanding that they do not show up in the code, we are basically forcing them into the encrypted part, and by their number we set a minimal size for the encrypted code too. I propose we define the presence of encryption in the program as the absence of these instruction codes together with proof that they are executed during a program run. Naturally, this will also give rise to pure generators, code snippets which write the new code without any input, but I would apply the kind of selector looking for these instructions only at the end, at which point the solutions with a proper, instruction-by-instruction decryptor would be at a relative advantage because their encrypted part would have an easier job at receiving mutations and develop all instructions than it would be the case for a pure generator.
I am not a programmer ! i don't understand !
> And finally: I haven't yet accepted your challenge
Hehe ! Wise move. Your first sign of defeat. You are consiously writing a program and taking all privilages to make it evolve and still you are not sure that it will. And you want me to believe that YOU yourself came into existence through chance? Your brilliant programming brain is a witness to the greatness of our beloved lord.
> (as a humble former script coder - javascript, actionscript, etc)
Oh, Nice Ricky. You like scripts? I am not a programmer, but as far as i know, those things are quite shameful to be said..
You like to write scripts baby? LOL

  
Albert Godwin
Inactive Member


Message 47 of 120 (354435)
10-05-2006 12:58 PM


Dear Barbarian
I am very sorry for being late. i will respond tomorrow at your last post.
i hope that you will try to work on the subject after that without much questions, because i will be busy those days.
sorry.

Replies to this message:
 Message 54 by Barbarian, posted 10-06-2006 3:31 AM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 55 of 120 (355154)
10-08-2006 8:26 AM
Reply to: Message 43 by Barbarian
10-02-2006 9:56 AM


Hi barbarian
sorry for being that late,
> I wanted to know if by 'encryption' you mean strong encryption, that is, an encryption that is difficult to break even if you know perfectly how it was done, or something simpler, like XORing or adding some constant to every byte etc. (In fact, inverting the sequence of bytes would also be sort of an encryption, because it would already hide the sequence from the selector even if it knew how to jump over inserted or altered bytes.)
Xoring is enough.
> I don't feel like even attempting to implement a selector based on the strength of the encryption (I would bet that this is impossible for the general scope), but checking whether certain bytes get executed but found nowhere in the code would be simple enough proof that they were, in fact, encrypted.
>I propose to have a number of special instructions which would be detected if executed by the program but which should not show up in the program code. This would prove that they were generated by the program before execution; it is a different task to select the program which does this by decryption.
For both i say: You are free to use whatever you'd like
> There is a question about whether the decryptor code must be correctly executable in all generations. I would, just to keep it realistic, propose that it does not need to be.
IF it is not correctly executable then the file will not work. Sorry but all the offspring from the first file to the goal must be executable.
> Naturally I would, in such a case, publish the entire source code, virtual machine, selectors and all. Actually, even if I don't accept the challenge in the end, I would probably still publish the code I have written so far, as it is a nice virtual machine and a good pedagogical demo of the O'Caml language.
Thank you. I hope that you will accept the challenge, because, as you see, nobody else here dared to.
>In the original example, the code subjected to evolution is providing its own mutation mechanism. I would move this part out from the program, for the following reasons:
One more time: OK, you are on.

This message is a reply to:
 Message 43 by Barbarian, posted 10-02-2006 9:56 AM Barbarian has replied

Replies to this message:
 Message 62 by Barbarian, posted 10-09-2006 2:54 AM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 56 of 120 (355160)
10-08-2006 8:36 AM
Reply to: Message 43 by Barbarian
10-02-2006 9:56 AM


>The OP example writes 676 copies of itself, which are ........ unnecessary goals.
OK! make the program make one copy. I am very flexible, no ?
> We are approaching this stuff from very different positions. The challenge is not yet entirely clear, e.g. see the discussion about encryption above. Depending on the clarifications, it could turn out to ask for the impossible or for the impractical.
So far, do you accept the challenge or think that it is fair enough?
> Well, yeah. Sort of. Make that chance operating in strict accord with uncompromising natural laws. But is the context of this challenge so far-reaching? I still try to see it as a mere exercise in trying to evolve some irreducibly complex structure.
Thats what the original author seems to think about it:
lulu.com/fadybahig
But to me, it is an excellent method to practically show the programmers how evolution is very unlikely to happen.
Cya

This message is a reply to:
 Message 43 by Barbarian, posted 10-02-2006 9:56 AM Barbarian has replied

Replies to this message:
 Message 57 by Admin, posted 10-08-2006 9:21 AM Albert Godwin has replied
 Message 63 by Barbarian, posted 10-09-2006 3:50 AM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 58 of 120 (355193)
10-08-2006 12:54 PM
Reply to: Message 57 by Admin
10-08-2006 9:21 AM


Hi Admin,
> Thank you. I hope that you will accept the challenge, because, as you see, nobody else here dared to.
I don't deny that this is a taunt. But it is a fact as well. Nobody did accept the challenge till this very moment.
> But to me, it is an excellent method to practically show the programmers how evolution is very unlikely to happen.
Honestly I don't see any taunt here at all, really !
> And the unwillingness to respond to rebuttals is against rule 4
I have stated that i am here for a practical challenge since the very first post. and I am keeping my word; When a man (Barbarian) agreed i responded to each and every reply that he wrote. But I stated also that i am not intersted in theoritical maneuvers to scatter the attention from the main PRACTICAL challenge.
I hope that you understand my position now.
Cya

This message is a reply to:
 Message 57 by Admin, posted 10-08-2006 9:21 AM Admin has replied

Replies to this message:
 Message 59 by Admin, posted 10-08-2006 2:32 PM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 60 of 120 (355222)
10-08-2006 3:03 PM


I see Admin's last post unexplainably offensive and personal. He is becoming irrationally offensive although I NEVER had the intention of getting myself into battles here.
Dear Barbarian,
I don't know if Admin will ban me or not. The only reason I hope that he doesn't is because I respect you and really wanted to keep this conversation with you till the end.
In case you still need any clarification, post it and if I don't answer I guess you will know that I was banned. In that case you can mail me at albrto211@yahoo.com
I don't think that I'd ban if I were in his shoes, I guess for a man who is not spreading the F-word around to the other members, banning will only mean a failure to cope with....
Good luck with the challenge (in case you agreed to take it) And if you come up with result, post it here and i will check it.
Cya ( perhaps Adieu )

Replies to this message:
 Message 61 by Admin, posted 10-08-2006 8:20 PM Albert Godwin has not replied
 Message 64 by Admin, posted 10-09-2006 12:27 PM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 65 of 120 (355527)
10-10-2006 4:21 AM


Dear Barbarian,
>My reading would be that the intermediate generations don't matter, and only the final result should have the mutually dependent and hence irreducibly complex structure of decryption + encrypted code.
Yes, sure. I am not asking you to evolve encryption from the first generation. As long as all intermediates are executable, it's all right with me. Sorry for misunderstanding that.
>See my previous post for a clarification request; apart from that, pretty much the only thing I still don't have a handle on is the required volume of the simulation. I have a few possible selector sequences which would lead to the irreducible complex setup we talk about here, but the system is complex enough to surprise me even before it is ready to run. Apart from the uncertainty regarding the necessary time, another nice problem is that in such a reverse-engineered situation, the winner of every 'geological period' must be the one I intended it to be, but it can always happen that the artificial world discovers a better solution to the constraints of the selector, and this better adapted program completely displaces the one I tried to evolve to serve as an intermediate step.
well, if there is any thing that you must add to solve that, just tell me and I will approve it.
>It could happen that the only selector for which encryption + decryption is the best solution is one similar to the WEASEL selector (measuring the distance of certain dead code from a prepared decryption + encrypted code structure - this would be cheating and of course I won't use it),
Yes, I object to using it, not because it is cheating, but because many intermediates will not be executable in this way.
> This is why I try to handle this as a programming challenge. The most severe constraint I see right now is that it has to happen within reasonable time. I do not intend to, nor can easily enlist anything beyond a machine with a 2400 MHz Intel processor
Well, definately you know better than me, but I don't know. I think that's too much to evolve encryption... It doesn't seem that complex after all...
Dear Admin,
I will fully respond to you after my discussion with Barbarian is over.
Cya

Replies to this message:
 Message 66 by Barbarian, posted 10-10-2006 8:09 AM Albert Godwin has replied
 Message 67 by Admin, posted 10-10-2006 9:09 AM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 68 of 120 (355911)
10-11-2006 1:50 PM
Reply to: Message 66 by Barbarian
10-10-2006 8:09 AM


>All else considered, I think we have touched on all the necessary basics here. I will summarize my understanding of the discussed details probably before Sunday this week and try to force it into the resource envelope of a usual hobby project. It could take a long time even if it proves to be doable on small machines, potentially lasting for months, since I can only work on it on weekends, although I expect the whole environment to be ready to run by the end of this week.
Dear Barbarian,
Take your time, I don't want to feel that I am distracting you from your work. Post the summary whenever you are free. Even if you can't make it, at least post how much you have done, this will help anybody later who would like to take the challenge to know more about its details.
Perhaps you should consider publishing it with your real name as well... its legal, why not?
One more time take your time and good luck (How can i put a flower in this forum ?)
Dear Admin,
I am afraid that you misunderstood my last post. I just wanted to tell you ( all the people here) about myself, how i came to know this thing and why I am that excited about it. Anyway, if that is not allowed here, it's ok.
Cya

This message is a reply to:
 Message 66 by Barbarian, posted 10-10-2006 8:09 AM Barbarian has replied

Replies to this message:
 Message 69 by Barbarian, posted 10-15-2006 4:03 PM Albert Godwin has not replied

  
Albert Godwin
Inactive Member


Message 72 of 120 (356993)
10-17-2006 5:16 AM
Reply to: Message 71 by Barbarian
10-17-2006 4:54 AM


That's enough
Dear Barbarian,
I have been trying to hold my nerves as much as I could with Mr. catlover to keep this discussion going on with you. But I am really getting sick of Percy (Admin)'s continuous personal attacks on me.
He has banned me for writing much less than what he wrote in his last post, and definitely I shouldn't expect justice to be done for the very reason that he seems to own this place.
I am willing to continue my discussion with you here:
http://www.youdebate.com/cgi-bin/scarecrow/topic.cgi?foru...
But I am not reading or writing a single post here any more.
Edited by Albert Godwin, : none

This message is a reply to:
 Message 71 by Barbarian, posted 10-17-2006 4:54 AM Barbarian has replied

Replies to this message:
 Message 73 by Barbarian, posted 10-17-2006 6:03 AM Albert Godwin has not replied
 Message 74 by Admin, posted 10-17-2006 10:10 AM Albert Godwin has not replied

  
Newer Topic | Older Topic
Jump to:


Copyright 2001-2023 by EvC Forum, All Rights Reserved

™ Version 4.2
Innovative software from Qwixotic © 2024