NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

Diskuze – Lekce 3 - Ukázka jednoduché šifrace textu Caesarova šifra

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Kristýna Janoušková:8.11.2016 11:36

Zdravím, zajímalo by mě, jak by kód vypadal, kdyby na začátku uživatel zadal např 1 z 5 možných vět, která už je zašifrovaná ale nevíme o jaký posun a úkolem je vypsat právě hodnotu toho posunu? :)

 
Odpovědět
8.11.2016 11:36
Avatar
Odpovídá na Kristýna Janoušková
Libor Šimo (libcosenior):8.11.2016 11:57

Správne chápem, že tých 5 možných viet by bolo zadaných nezašifrovaných a tá jedna vybratá by bola aj zašifrovaná?

Odpovědět
8.11.2016 11:57
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Kristýna Janoušková:8.11.2016 12:21

Ano, přesně tak :) měla jsem to lépe popsat.

 
Odpovědět
8.11.2016 12:21
Avatar
Odpovídá na Libor Šimo (libcosenior)
Kristýna Janoušková:8.11.2016 12:43

A ještě dodatek, ani to nemusí být přímo v kódu klidně jen pseudokód.

Editováno 8.11.2016 12:43
 
Odpovědět
8.11.2016 12:43
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Kristýna Janoušková
Martin Dráb:8.11.2016 13:50

Nenapíšu pseudokód, ale...

Počet možných posunů je poměrně malý (řekněme 26), takže se dají bez problémů na "zašifrovaný" text všechny vyzkoušet. Pak jde jen o to poznat, která z variant je správná. Pokud znáš jazyk otevřeného textu, můžeš použít heuristiku pro jeho detekci – například se dívat na dvojice po sobě jdoucích písmen a přiřazovat danému textu skóre podle toho, jak moc obvykle jednotlivé dvojice v jazyce jsou (třeba QX asi v češtině moc nenajdeš). To samé lze použít i pro jednotlivá písmena.

Obecnější postup je provést frekvenční analžzu: zjistit si četnosti jednotlivých písmen v textu a namapovat je na relativní četnosti písmen v daném jazyce (tzn. pokud víme, že v našem jazyce je nejčastější E a v "šifrovaném" textu je to H, pravděpodobně H by se mělo dešifrovat na E). Tento postup pořeší nejen Caesara, ale i obecnější variantu – monoalfabetickou substituční šifru (nedělá e posun, ale máš tabulku (permutaci) překládající jednotlivá písmena na jiná).

Pro oba postupy platí: čím delší text, tím lepší výsledky.

Odpovědět
8.11.2016 13:50
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na Kristýna Janoušková
Libor Šimo (libcosenior):8.11.2016 20:26

Takze je to jednoduche. Budes porovnavat dekodovany text s jednotlivymi vetami a pri zhode vypises posun.
Nehnevaj sa, ale kod ti nenapisem. To by si sa nic nenaucila. ;-)

Odpovědět
8.11.2016 20:26
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Kristýna Janoušková:8.11.2016 20:38

Jo děkuji, v průběhu dne na to tak nějak krok po kroku vymíšlím. Je mi jasné že nějak se to naučit musím :)

 
Odpovědět
8.11.2016 20:38
Avatar
Odpovídá na Kristýna Janoušková
Libor Šimo (libcosenior):8.11.2016 20:39

Nepises v akom jazyku to mas napisat.

Odpovědět
8.11.2016 20:39
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Daniel Kysilka:21.1.2017 20:36

Co kdybych chtěl v každém dalším přepsání znaku přepsat i všechny už přepsané? Tedy z "ahoj" udělat postupně bhoj -> cioj -> djpj -> ekqk..? :)

 
Odpovědět
21.1.2017 20:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.