Kirjautuminen

Haku

Tehtävät

Kilpailu

Putka Open 2025
5. kierros:
28.11. klo 18 – 30.11. klo 23

Keskustelu: Ohjelmointiputka: Putkaposti 20v

Sivun loppuun

jlaire [14.11.2025 08:12:25]

#

Ensimmäinen Putkaposti julkaistiin vuonna 2005. Viisi vuotta myöhemmin ongelmia oli jo 42 (plus kolme b-tehtävää) ja Antti listasi Putkapostin avoimia ongelmia. Jotkut ratkovat näitä vielä tänäkin päivänä ja päätin tehdä 20v-juhlavuoden kunniaksi päivitetyn listan, jossa on Antin listaamien ongelmien nykyinen tilanne (omien tietojeni mukaan) ja muutama aiemman listan jälkeen julkaistu tehtävä.

15: Kielitiedettä (avoin)

Ennätystä pystynee vielä parantamaan.

19: Älykäs robotti (ratkaistu)

Tuloksen 29 voi osoittaa optimaaliseksi yllättävän pienellä laskentamäärällä. Ratkaisin muistaakseni myös 4x5-ruudukon, mutta 5x5 oli vanhalle koodilleni liian vaikea.

29: Käänteislauseke (avoin)

Nykyinen 111 tuskin on paras mahdollinen.

Algoritmi-ideoita voi testata ratkomalla helpompia versioita. SL-haasteen tehtävä 5.8 on samantapainen ja isashkar ja zebraze paransivat sen ennätystä ihan hiljattain!

30b: Ahdas ruudukko 2 (avoin)

Hakuavaruus on valtava eikä ole mitään syytä olettaa, että 112 olisi viimeinen sana.

Avoin kysymys on myös, onko 116 = 4x29 mahdollinen.

35: Peilauskomento (ratkaistu)

Tämän voi varmaan ratkaista alle sekunnissa. Paras tietämäni aikakompleksisuus on O(N * log(N) * 2^N).

37: Kaulaketju (ratkaistu)

Tulosta 72 ei voi parantaa ja oleellisesti erilaisia ratkaisuja on 5.

Jos kaulaketjun pituus olisi 50 merkkiä, optimaalinen tulos olisi 90 sanaa.
Jos kaulaketjun pituus olisi 56 merkkiä, siihen mahtuisi jo 100 sanaa.

Seuraavat tehtävät julkaistiin vasta Antin listan jälkeen:

45: Lottovoitto (avoin?)

En tiedä, tai ainakaan en osaa itse todistaa, onko tulos optimaalinen.

47: Lukulauseke (avoin)

Yllättyisin, jos tätä voisi parantaa, mutta regexit ovat yllättäneet ennenkin.

48: Triplatulkinta (avoin)

Käytin heuristista hakualgoritmia.

wy5vn [14.11.2025 15:25:15]

#

Lupaan tarjota pullakahvit sille joka ratkaisee MD5 tehtävän 20merkkisen sanan.

Grez [15.11.2025 08:55:26]

#

wy5vn kirjoitti:

Lupaan tarjota pullakahvit sille joka ratkaisee MD5 tehtävän 20merkkisen sanan.

Aika riskitön lupaus :D

Itse laskeskelin niitä silloin 2011 silloisen tietokoneeni GPU:lla (joka oli ajan nopein kuluttaja-GPU tiivisteiden laskentaan), ja 11 merkin salasanassa kesti 40 tuntia. Eli jos ajatellaan että nykyiset näytönohjaimet (tai muut käytössä olevat välineet) olisi 26 kertaa nopeampia niin 12 merkkisen murtamiseen menisi 40 tuntia ja 20 merkkisen murtamiseen n. miljardi vuotta.

Toki jos keksisi bruteforcausta tehokkaamman algoritmin, niin tilanne voisi muuttua, mutta tällaista ei tietääkseni ole ainakaan julkisesti tunnettu.

wy5vn [15.11.2025 11:27:24]

#

Kyllä. Tiedettävästi edes kvanttitietokoneella tuota ei alle 100miljoonassa vuodessa saisi ratkaistua. Sen perusteella mitä niiden laskentatehosta tällä hetkellä tiedetään.

Antti Laaksonen [16.11.2025 18:42:11]

#

Kiitos raportista! Näissä riittää vielä ratkomista ja kiinnostavaa nähdä, miten tehtävien tilanne kehittyy tulevaisuudessa.

jlaire kirjoitti:

Algoritmi-ideoita voi testata ratkomalla helpompia versioita. SL-haasteen tehtävä 5.8 on samantapainen ja isashkar ja zebraze paransivat sen ennätystä ihan hiljattain!

Kiinnostavaa, en ollut huomannut tätä. Hienoa, että myös SL-haasteen tuloksissa tapahtuu kehitystä.

wy5vn kirjoitti:

Lupaan tarjota pullakahvit sille joka ratkaisee MD5 tehtävän 20merkkisen sanan.

Tässä tehtävässä kehitys on ollut hidasta. Voin parantaa tarjousta ja tarjota pullakahvit sille, joka saa ensimmäisenä tuloksen 12.

Jaska [20.11.2025 08:09:47]

#

jlaire kirjoitti:

30b: Ahdas ruudukko 2 (avoin)

Hakuavaruus on valtava eikä ole mitään syytä olettaa, että 112 olisi viimeinen sana.

Avoin kysymys on myös, onko 116 = 4x29 mahdollinen.

En ole näitä enää jaksanut miettiä. Mitenkähän toimisi, jos tuosta tekisi sopivan SAT-ongelman ja koettaisi pistää sen johonkin ratkaisijaan? Sätkäpeten mukaan tämän voisi ratkaista viikossa tai kuukausista, jos optimoisi rajoitteita ja laittaisi tehokkaan ratkaisijan jauhamaan.

jlaire [21.11.2025 19:00:09]

#

Pienempi tapaus, esimerkiksi lukujen 1–25 neliöiden pakkaaminen, onnistuu SAT- tai SMT-ratkaisijalta helposti. Omien kokeilujeni mukaan 1–100 on kuitenkin aivan liian suuri ongelma sellaisenaan SMT-ratkojalle syötettäväksi, mutta ehkäpä en osannut optimoida rajoitteita tarpeeksi hyvin.

Parhaatkaan kielimallit eivät kuulemma osaa ratkaista edes Kaulaketjua, vaikka se on huomattavasti helpompi tehtävä kuin Ahdas ruudukko 2.

TapaniS [24.11.2025 07:11:04]

#

MD5 -tehtävä on kestänyt hyvin ajan kulun. Jopa tekoäly kieltäytyy auttamasta tässä tehtävässä. Sain siltä c++ koodin, joka kuitenkin osottautui huomattavasti hitaammaksi kuin vastaava Java -koodi! Hashcat -ohjelmaa en saanut pelaamaan, mistäköhän löytyy manuaali oikeiden parametrien keksimiseksi?

wy5vn [24.11.2025 16:22:07]

#

Itse testasin John the Ripperiä ja hashcattia. Toki c++ toimii kanssa mutta vaatisi hiukan opettelua että saisi sen bruteforce algoritmin pyörimään näytönohjaimella. Nuo edellämainitut ohjelmat toimivat hyvin, hascatilla tosin oli ainakin ongelmia ääkkösten kanssa. toisaalta niitä ei ainakaan 0-7 merkkisissä salasanoissa ollut niin ehkä laitain sen jauhamaan tuota 12merkkistä jossain vaiheessa kun sähkö on halpaa.

Metabolix [24.11.2025 18:00:42]

#

Tehtävään md5h oikea hashcat-komento on:

hashcat --potfile-path=md5h-tulokset.txt -m0 -O -a3 tiiviste kaava

Tässä tiiviste on yksittäinen tiiviste tiedostosta (ei kannata hakea kaikkia tiivisteitä samaan aikaan, koska niissä on tunnetusti eripituiset salasanat), ja kaavassa ?l tarkoittaa yhtä merkkiä a-z, eli kaava on ratkaistavan salasanan pituuden mukaan ?l?l?l?l?l...

Netistä löytyy, että esimerkiksi GeForce RTX 4090 laskee noin 150 miljardia tiivistettä sekunnissa, jolloin 12-merkkinen salasana (merkeistä a-z) löytyy alle 8 päivässä. Jos siis sattuu omistamaan hyvän pelikoneen ja lämmittämään kotia muutenkin sähköpattereilla, tuon 12-merkkisen voi ratkaista talvipakkasilla käytännössä ilmaiseksi. NVIDIA L40S on aika samoissa nopeuksissa, joten pilvipalvelussa 12 pisteen ratkaisu maksaa keskimäärin 200 euroa ja huonolla tuurilla 400 euroa, riippuen, missä kohti hakua osuma tulee.

wy5vn [24.11.2025 18:59:46]

#

Metabolix kirjoitti:

kaavassa ?l tarkoittaa yhtä merkkiä a-z, eli kaava on ratkaistavan salasanan pituuden mukaan ?l?l?l?l?l...

Sillä olettamalla ettei ole ääkkösiä. Ei nyt liity tähän välttämättä mutta ihan mielenkiinnosta, onko tuossa hascatissa mahdollista ottaa ääkköset mukaan?

Grez [24.11.2025 19:23:05]

#

wy5vn kirjoitti:

ihan mielenkiinnosta, onko tuossa hascatissa mahdollista ottaa ääkköset mukaan?

Siinä on mahdollista määritellä ihan mikä tahansa haluttu merkkijoukko haettavaksi.

Grez [24.11.2025 19:35:54]

#

Metabolix kirjoitti:

Netistä löytyy, että esimerkiksi GeForce RTX 4090 laskee noin 150 miljardia tiivistettä sekunnissa, jolloin 12-merkkinen salasana (merkeistä a-z) löytyy alle 8 päivässä. Jos siis sattuu omistamaan hyvän pelikoneen ja lämmittämään kotia muutenkin sähköpattereilla, tuon 12-merkkisen voi ratkaista talvipakkasilla käytännössä ilmaiseksi. NVIDIA L40S on aika samoissa nopeuksissa, joten pilvipalvelussa 12 pisteen ratkaisu maksaa keskimäärin 200 euroa ja huonolla tuurilla 400 euroa, riippuen, missä kohti hakua osuma tulee.

Hämmentävän kallista toi pilvilaskenta.

Geforce RTX 4090:llä menisi siis noin 115 kWh eli parin kympin edestä sähköä (siirrot ja verot mukana) niin miksi pilvilaskenta maksaa 10 kertaa enemmän :o

Itsellä meni 14vuotta sitten siloisella näytönohjaimella noin 12 kWh sähköä eli noin 2 euroa 11 pisteen ratkaisuun, eli eipä oo Hash/W hirveästi kasvanut noin 12 vuodessa, jos kerran vain n. 2,5 kertaiseksi.

Metabolix [24.11.2025 20:02:46]

#

wy5vn kirjoitti:

(24.11.2025 18:59:46): ”– –” Sillä olettamalla ettei ole ääkkösiä. Ei nyt...

Se on hyvä oletus tehtävänannon huomioiden. Ääkkösissä on merkistökysymyksiä ja näyttää, että hashcat ei käsittele niitä kaikissa muodoissaan ainakaan ihan helposti.

Metabolix [24.11.2025 20:06:38]

#

Grez kirjoitti:

Hämmentävän kallista toi pilvilaskenta.

Pilvessä hintaan sisältyy myös massiivisesti muistia ja levytilaa. Ainakaan omalta tarjoajalta ei löydy "pelkkää" GPU:ta.

wy5vn [24.11.2025 21:24:01]

#

Metabolix kirjoitti:

(24.11.2025 20:02:46): ”– –” Se on hyvä oletus tehtä­vä­nannon huomi­oi­den...

Vahvistaa käsitystä siitä että kannattaa laittaa niitä salasanoihin🤔

Metabolix [24.11.2025 21:52:59]

#

wy5vn kirjoitti:

Vahvistaa käsitystä siitä että kannattaa laittaa niitä salasanoihin🤔

Hashcatin käytölle on tosielämässä tehokkaampia ja edullisempia vaihtoehtoja, joihin salasanan pituus tai merkistö ei auta.

TapaniS [24.11.2025 22:37:13]

#

Metabolix kirjoitti:

Tehtävään md5h oikea hashcat-komento on:

hashcat --potfile-path=md5h-tulokset.txt -m0 -O -a3 tiiviste kaava

...

Kiitokset! Nyt lähti pelittämään! 8 merkin pituinen salasana ratkesi brutal forcella 7:ssä sekunnissa. Ja minulla on vaan GeForce RTX 3050 Mobile käytössä. Lämpötila vaan alkaa kohoamaan (63°C -> 68°C tämän ajon aikana).


Sivun alkuun

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta