Je hebt een private en een public key nodig, de public wordt uit de private gegenereerd, vervolgens encrypt je bestanden met de public key en zijn ze alleen te decrypten met de private key.
De private key zal niet in de virus zitten (is ook niet nodig), anders is het een fluitje van een cent om te reverse engineeren.
Het is ook uiterst onwaarschijnlijk dat de private key on-the-fly wordt gegenereerd en vervolgens gelijk na encryptie gewist, dan kan je de data nauwelijks terughalen, dus kan je net zo goed gelijk random data over het bestand schrijven (puur destructief dus). Of je algoritme voor het genereren moet een manier bevatten om die private key weer te regenereren, maar daarmee zou het per definitie zwak zijn.
Of de gebruikte encryptie zelf kent een zwakte waardoor anti-virus makers de private key helemaal niet nodig hebben om op redelijke termijn de data terug te halen, of de keyspace is klein genoeg om net als bij de RSA RC5 challenges op basis van een bekend stuk het aantal te berekenen mogelijkheden tot redelijke aantallen in te perken.
Ik gok op het eerste, ondanks dat doorsnee bestanden op een desktop PC - executables, Word, PDF documenten etc. (geldt ook voor ASCII tekst (woord/grammatica/letterfrequentie gebaseerde waarschijnlijkheden), zeker als je nog een vroegere versie als backup hebt of woorden/zinnen weet te herinneren die erin voorkwamen.) - allemaal grote lappen makkelijk te voorspellen headers en filler kennen zou het te lang duren om bij gebruik van een goede encryptie/grote keyspace die te kraken.
Zo ja dan zullen de virusmakers op den duur overstappen naar een beter algoritme, zo niet dan naar steeds grotere keyspaces, of zich bijvoorbeeld toeleggen op al gecrypte bestanden die onnoemelijk veel moeilijker zijn (en wellicht meer waardevol, anders zou je ze niet crypten). Of b.v. op private keys van de gebruiker zelf
Als er weinig private keys zijn (b.v. 1 per virus versie) dan kan een successvolle brute force aanval alsnog de hele generatie onschadelijk maken, met ingebouwde downloadmogelijkheden nieuwe keys binnenhalen van een gehackte webserver b.v. zal dat moeilijker maken, maar biedt weer een mogelijke spoor richting de maker.
De enige mogelijkheid om dit te voorkomen is veelvuldige backups, veiligere netwerken en software (mensen leren nooit dus educatie geef ik weinig kans). Of de makers opsporen en flink straffen als voorbeeld, maar dan kunnen ze beter met spammers beginnen, die veroorzaken veel meer overlast.
BTW, 660 bits zegt niks, het gaat om de combinatie van algoritme en keyspace. 660 bits kan ook een simpele zin zijn die je XOR-t met de data, dat is in no time gekraakt.
Edit: na het artikel gelezen te hebben heeft de auteur inderdaad de weg bewandeld van simpel te kraken eigen algoritmes richting RSA dit jaar, eerst met kleine keylengte's (56, 67 bits) en in juni 260, 330 en vervolgens 660 bits. Hoe Kaspersky dat laatste heeft kunnen kraken is het meest interessante. Misschien is RSA toch niet zo veilig als we dachten? Of heeft een TLA al ergens een leuke quantum computer staan? Of ze hebben hem/haar (terug)gepakt?