KIRJELDUS

This is a set of cryptography related challenges for targaltinternetis.ee.

They are all interactive and, because of hosting constraints, implemented in client-side javascript. To prevent people from simply reading the source code, the javascript was obfuscated.

Koodlukk

Sisesta õige viienumbriline kood, et saada lipp.

Kood


VIHJED

Proovi läbi kõik kümme esimest numbrit.

LAHENDUS

Koodi kontrollitakse ühe numbri haaval vasakult paremale ning hetkel, kui leitakse esimene vale number, väljastatakse kohe "VALE".

Et leida koodi esimene number, võib proovida läbi kõik kümme võimalikku numbrit ja vaadata, mis numbri puhul kontrollimine võtab kõige rohkem aega.
Ülejäänud numbrid on leitavad samal viisil.

Krüpteerimismasin

Krüpteeritud lipp: P3N{ma}1F4rglttny0ul_0
Sisend:

Krüpteeritud väljend:

VIHJED

Proovi mõned lihtsad sisendid nagu "AAAA", "AAAB", "AAAC", "AAACA" ja vaata tulemust.

LAHENDUS

Ainus asi, mis see "krüpteerimismasin" teeb, on tähtede ümberpaigutamine (kusjuures ümberpaigutus sõltub sisendi pikkusest).


Et dekrüpteerida lipp, on meil vaja teada, kuidas täpselt olid lippu tähed ümber paigutatud. Lihtsaim viis selle tegemiseks on anda masinale sisend, kus kõik tähed on erinevad, näiteks "abcdefghijklmnopqrstuv". Väljendiks saame "fgseicvnalhdbmkpurjtqo" ja seega saab järeldada, et esimene täht (st a) tõsteti 9. kohale, teine täht (st b) 13. kohale jne.


Et taastada lipp, tõstame "P3N{ma}1F4rglttny0ul_0" tähed tagasi oma kohtadele: 9. täht (st F) tagasi esimesele, 13. täht (st l) tagasi teisele jne.


abcdefghijklmnopqrstuv
fgseicvnalhdbmkpurjtqo
P3N{ma}1F4rglttny0ul_0

Täring

Korja kokku 20000€, et saada lipp.
Sinu raha: 100

Panus:   100


VIHJED

Anyone who attempts to generate random numbers by deterministic means is, of course, living in a state of sin.
— John von Neumann

LAHENDUS

Selliste mängude puhul on tähtis, et täringuvisked, segatud kaardipakid jms oleksid tõesti juhuslikud ning mängijad ei saaks neid ette arvata.


Kui täringuviskeid pisut vaadelda, siis on näha, et järgimine vise on kahe eelmise summa kaks viimast numbrit. Seega me saame ette arvata, kas me võidame, ja panustada vastavalt.

Alternatiivne lahendus

Mängu kood tegelikult ei kontrolli, sa ei panustaks rohkem kui sul raha on. Seega saab HTML elemendi #game_slider atribuuti max muuta ülisuureks arvuks ja ühe mänguga 50% tõenäosusega võita ülipalju raha.


KONTROLL