Tahle stránka obsahuje skryté heslo. Pošlete přes POST HTTP výsledek na tuto stránku v proměnné "result". Použít můžete například knihovnu requests (requests.post("http://krypto.ptera.cz/vigenere.php", data={"result": result})). Kdybyste měli nějaký problém s odevzdáním řešení, pak mi pošlete název do e-mailu.


Ve starém archivu BBC se našlo několik šifrovaných spisů. Spisy byly nalezeny u šifrovacího zařízení značky MP Vigenere, které je známé tím, že místo rotace abecedy používá operaci XOR (exclusive or). Návod přiložený k přístroji uvádí, že je schopen pracovat s 32 znakovou abecedou (!',.;?ABCDEFGHIJKLMNOPQRSTUVWXYZ); interně si tyto znaky reprezentuje pořadovým číslem v abecedě (0-31) a operace XOR probíhá právě na těchto číslech. Kdybychom tedy zašifrovali zprávu "ZPRAVA" klíčem "KLIC", pak dostaneme šifrový text "J;TIFR".
Bohužel se historikům nepodařilo některé texty dešifrovat, a proto se rozhodli tento úkol svěřit studentům Kryptografických systémů za domácí úkol. Níže je zpráva, kterou máte za úkol dešifrovat. Zdroj textu (název v angličtině) je výsledkem této úlohy, který budete posílat zpátky.

NHKHY;''DKGAC!ZW'MH!.TWSZXTCGAOM,RDSE.HPYU';!HY;X'JB'XXNGNNBLQXNJ!HYUEXE.BER;GNIYTG.'GH.TG.'JNGFHDSDNYF.Q;BYYE.UA;FNTTDSE.GYC'GQHI!RMNHKHY;.JGYY;UVGNNWBO.GKESF.Q;BYYE.BZOUZBOBHNZ?ERX';E!EA;JH!Q!UBZK!TTTS';EHE.;JB?!L;HXOGHXXWGNZHE.;JBOY!VB'QNYUR;GNIYTHVV?NUFTYTN!!DRN'HLYE.UA;FNTTDSDNYLDUVHPHY;DSKIX!O,MOIQO;BZSLTTBMGNNB,URMO'HE.;JBOEYU'FNZBU,BZHZXTUVNH!UBAXGE?M;BCGNHISUUR,O!O;YAMEMD,XG!RB'KCVMOHLQXNJCG!OVYK!RM

Pozn.: Texty jsou psané v anglickém jazyce, relativní frekvence znaků ve zdrojovém textu jsou:
!",.;?ABCDE
0.0150.010.0210.0220.00.0050.0750.0160.0220.0340.106
FGHIJKLMNOP
0.0140.0270.060.0610.0010.0120.0440.0220.060.0760.013
QRSTUVWXYZ
0.0020.0540.0530.0790.0370.0090.0230.0010.0250
Slovník: {'U': 0.037, 'B': 0.016, 'D': 0.034, 'M': 0.022, 'T': 0.079, 'K': 0.012, 'I': 0.061, 'R': 0.054, 'O': 0.076, 'L': 0.044, 'V': 0.009, 'H': 0.06, '.': 0.022, "'": 0.01, '?': 0.005, 'Y': 0.025, '!': 0.015, 'C': 0.022, 'N': 0.06, 'E': 0.106, 'S': 0.053, ',': 0.021, 'F': 0.014, 'Q': 0.002, 'P': 0.013, 'J': 0.001, 'A': 0.075, 'G': 0.027, 'Z': 0.0, ';': 0.0, 'W': 0.023, 'X': 0.001}
Pole četností (dle pořadí v abecedě): [0.015, 0.01, 0.021, 0.022, 0.0, 0.005, 0.075, 0.016, 0.022, 0.034, 0.106, 0.014, 0.027, 0.06, 0.061, 0.001, 0.012, 0.044, 0.022, 0.06, 0.076, 0.013, 0.002, 0.054, 0.053, 0.079, 0.037, 0.009, 0.023, 0.001, 0.025, 0.0]