The analogy helped me understand things a bit, but I have a question coming from what I think is an oversimplification in the explanation of Thompson's Trusting Trust concept.
In the Trusting Trust attack, not only you change the compiler to miscompile the "login" program, but you change the compiler to miscompile the compiler itself so the "login" miscompilation persists even if you later revert all changes to the compiler source (as long as you use the new binary once, of course). Does this part of the attack have a gene drive analogy?
That part of the analogy does persist. It is the feature. The gene drive doesn't just insert the change you want - it inserts the change, and the code to make the change:
Wild type mosquito DNA: =================
Desired change to DNA: =============XX==
DNA encoding Cas9 and XX-Payload: =C9(XX)=
Gene Drivered Mosquito (before activation) (change to compiler): ====C9(XX)=============
Gene Drivered Mosquito (after activation) (change to login code): ====C9(XX)========XX===
------------------------------
A normal mosquito mating with a XX mutant mosquito:
Mother Gamete: -----------------
Father Gamete: -------------XX--
Mendelian fraction of children (and grandchildren) are either --, --/XX,, or XX/XX (if two chromosomal copies)
A normal mosquito mating with a Gene Drivered mosquito:
Mother Gamete: -----------------
Father Gamete: ---C9(XX)----XX--
All children: ====C9(XX)========XX=== (for all 'N' chromosomal copies)
In the Trusting Trust attack, not only you change the compiler to miscompile the "login" program, but you change the compiler to miscompile the compiler itself so the "login" miscompilation persists even if you later revert all changes to the compiler source (as long as you use the new binary once, of course). Does this part of the attack have a gene drive analogy?