FBHF«höf'B Vitame Vas v programu KRYPTIK ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Vitejte v programu KRYPTIK (Kryptograficky pomocnik). Omluvte program ( a autora ) za to ze na vas mluvi jeste cestinou , ktera postrada hacky a carky. Je to proto, ze autor odmital resit problemy, ktere s tim souvisi - jako jsou ruzne kody cestiny, obtizne zavadeni cestiny. 3
 Jak pouzivat napovedu ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
±Okno helpu bezi ve vyhranenem rezimu. To znamena, ze vsechny udalosti a povely od uzivatele, ktere se tykají vecí mimo okno, jsou IGNOROVANY. (stavovy radek je vyjimka-funguje) Pro praci s helpovym oknem muzete pouzit tyto funkcni klavesy : H
 ENTER na barevne zvyraznene polozce :
          Prechod na dany odkaz
Z
 TAB    : Prechod mezi barevne zvyraznenymi
          polozkami (odkazi na dalsi temata)
G
 kurzorove sipky (,,,) :
          Posun (scrolling) textu v okne
6
 ESC nebo Alt-F3 :
          Zruseni (zavreni) helpu
.
 Alt-F1 : Prechod na predchozi tema napovedy
<
 F5     : Zvetseni na maximum/zmenseni na puvodni velikost
'
 Ctrl-F5: Zmena velikosti a polohy :
           kurzorove sipky - presun okna
           SHIFT a sipky - zmena velikosti
           ENTER - potvrzeni , ze nastavena
                   velikost ma byt akceptovana
           ESC   - zruseni operace a vraceni
                   puvodni velikosti
'(Co lezes do helpu, kdyz tu nic neni !!! '┴    ┌────────
 ┌──┤ Sifry  █ ───(Alt+I)───
 │  └▄▄▄▄▄▄▄▄█              █
 │                          █
 │ Afinni sifra             █
 │ Vignerovska sifra        █
 └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
h
Pro obe sifrovaci funkce plati nastaveni Rozlisovat mala/velka pismena a Zachovat mezery a konce radku kë$∞%'  Sifry│Afinni ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
åJe otevreny a aktivni soubor, ktery obsahuje obycejny text. V menu Sifry se vybere polozka Afinni, nebo se znackne F4. Objevi se okno _
 ╔═[■]═══ Afinni Sifra ══════════╗
 ║                               ║
 ║  Multiplikator: █████         ║
 ║  Posun:         █████         ║
 ║                               ║
 ║  [ ] Inverzni transformace    ║
 ║                               ║
 ║          Ok  ▄      Zrusit ▄  ║
 ║        ▀▀▀▀▀▀▀       ▀▀▀▀▀▀▀  ║
 ╚═══════════════════════════════╝
L
Zde se nastavi Multiplikator (cislo od 0 do 30 nesoudelne s 26 = pocet znaku anglicke abecedy) a Posun (cislo od 0 do 30) (viz Afinni Sifra) a klikne se na OK. Objevi se (pripadne vytvori nove) okno, ve kterem se zobrazuji informace o tom, ktery soubor byl zpracovan, kolik znaku bylo na vstupu a kolik na vystupu. Pri sifrovani se pracuje s pevnou znakovou sadu (zatim) -- pismena anglicke abecedy. Vytvori se editacni okno (nepojmenovany soubor), ve kterem je zobrazen zasifrovany text. Toto okno je schovany v pozadi (je prekryto oknem s vystupnimi zpravami). Soubor je mozne ulozit. 
 Rozsifrovani
╤Predpokladem je ze u zasifrovaneho textu vime, ze byl zasifrovan afinni sifrou a zname hodnoty multiplikatoru a posunu (= sifrovaci klic). V pripade, ze to nezname, pouzijeme metody obsazene v menu Analyza. Je otevreny a aktivni soubor, ktery obsahuje zasifrovany text. V menu Sifry se vybere polozka Afinni, nebo se znackne F4. Objevi se stejny dialog jako pri sifrovani. Nastavi se Multiplikator i Posun. Zaskrtne se volba Inverzni transformace. klikne se na OK. E
Prace s programem Vignerovska sifra Teorie sifrovani Zakladni sifry 
'J3E=W@h'7  Sifry│Vignerovska ▄
   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
 Sifrovani
ÆJe otevreny a aktivni soubor, ktery obsahuje obycejny text. V menu Sifry se vybere polozka Vignerovska, nebo se znackne Alt+F4. Objevi se dialog: }
 ╔═[■]═══ Vignerovske Sifry ════════╗
 ║                                  ║
 ║  Sifrovaci klic (heslo):         ║
 ║  ██████████████████████████      ║
 ║                                  ║
 ║  [ ] Inverzni transformace       ║
 ║                                  ║
 ║          Ok  ▄      Zrusit ▄     ║
 ║        ▀▀▀▀▀▀▀       ▀▀▀▀▀▀▀     ║
 ╚══════════════════════════════════╝
σ
Zada se heslo (viz Vignerovska sifra) a klikne se na OK. Objevi se (pripadne vytvori nove) okno, ve kterem se zobrazuji informace o tom, ktery soubor byl zpracovan, kolik znaku bylo na vstupu a kolik na vystupu. Pri sifrovani se pracuje s pevnou znakovou sadu (zatim) -- pismena anglicke abecedy. Vytvori se editacni okno (nepojmenovany soubor), ve kterem je zobrazen zasifrovany text. Toto okno je schovany v pozadi (je prekryto oknem s vystupnimi zpravami). Soubor je mozne ulozit. @
Prace s programem Afinni Sifra Teorie sifrovani Zakladni sifry @[J-?=L@]'í    ┌─────────
 ┌──┤ Analyza █ ───(Alt+A)───
 │  └▄▄▄▄▄▄▄▄▄█              █
 │                           █
 │ Index koincidence         █
 │ Separace samohlasek       █
 │ Klic-Kasiskeho met.       █
 │ Klic-Met. koincidence     █
 │ Separace skupin           █
 │ Tabulka ASCII znaku       █
 │ Jednoduchy kalkulator     █
 │ Puzzle - logicka hra      █
 │ Kalendar na mnoho let     █
 └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
j
Funkce vypisuji ruzna hlaseni a nektere vysledky do specialniho okna - toto okno se bohuzel zatim nelisi od ostatnich oken (stejna barva, titulek Untitled, ...), ale na pracovni plose je v kazdy okamzik pouze jedno -- pokud neni jeste vytvoreno, funkce ho vytvori. Toto okno pouzivaji vsechny v programu naprogramovane kryptograficke a kryptoanalyticke funkce. 	oÄ¡╠δ
)Hg'
: Analyza│Index koincidence ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Funkce pro aktualni okno vypocita cetnosti zkoumanych znaku (viz obecne nastaveni:Obecne} v textu vyjadrene v procentech a take index koincidence. Tato metoda slouzi k zjisteni jestli byl text zasifrovany pomoci monoalfabeticke sifry nebo polyalfabeticke. Φ
Je otevreny a aktivni editacni okno, ktere obsahuje zasifrovany text. V menu Analyza se vybere polozka Index Koincidence, nebo se znackne F7. Do okna s vystupnimi zpravami se zapise vypocteny index koencidence. Vypada napr. takto: █
 [08:11:46]    - cas zpracovani
 Zpracovavam okno: C:\KOS\PROGRAM\SIFRA.TXT (4)
 - zkoumane znaky :
  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
 - celkem 171 znaku, z toho 169 zkoumanych znaku,  cetnosti:
    a:    4   b:    9   c:    6   d:    3   f:    5   g:    5   h:    5
    i:    8   j:   17   k:    9   l:    2   n:    5   o:   20   p:    2
    q:   26   r:    9   s:   11   u:    6   v:    6   x:    1   y:    7
    z:    3
 - index koincidence:0.073282
ú
Vysledny index koincidence se porovna z tabulkou indexu, kterou naleznete v menu Help, polozka Tabulky, nebo zmacknutim Ctrl+F1. Na zaklade porovnani ze znamymi indexi koencidence se urci, zda se jedna o polyalfabetickou sifru, to znamena jestli je index koencidence blizky indexu nahodne generovaneho jazyka, nebo zda se jedna o monoalfabetickou sifru a v tom pripade se index blizi nejakemu z indexu znamych jazyku. *
Vysledkem vyse uvedeneho prikladu je, ze se jedna o text zasifrovany monoalfabetickou sifrou. Text je kratky a tak se z nej neda urcit v jakem jazyku je. Obecne je to problem nejen kratkych textu, ale i textu odborne nejak zamerenych. Proto se da stezi odhadnout v jakem jazyce se zprava nachazi. U
Jedna-li se o monoalfabetickou sifru -- dale se pouzije metoda Separace samohlasek. &
Jedna-li se o polyalfabetickou sifru ï - nejdriv se musi urcit delka hesla(klice),
   napriklad pomoci  Kasiskeho metody
 - potom se urci heslo -- pomoci metody Separace skupin

 Prace s Programem
  Separace Samohlasek
  Kasiskeho metoda
  Separace Skupin
 Teorie okolo indexu koincidence.
 menu Analyza

B╗
ëC'4Pê┴J╙τ²B!
H'	> Analyza│Separace samohlasek ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╬Tato metoda se pouzije pouze v pripade, ze se jedna o monoalfabetickou sifru, tedy v pripade, ze vysel index koincidence blizky indexu nejakeho jazyka. V opacnem pripade, by vysledek nebyl dale vyuzitelny. P
Po spusteni funkce se objevi vystupni okno, ktere obsahuje udaje o zpracovani.  Napr.:
í
 [09:53:35]  - cas zpracovani
 Zpracovavam okno: C:\KOS\PROGRAM\SIFRA.TXT (4)
 - 169 zkoumanych znaku, nasleduje prehled cetnosti znaku a jejich predchudcu a nasledovniku:
   znak, vyskytu, vyskyty predchudcu a nasledovniku
   A:4  G(1)J(1)N(1)V(1)
        C(1)H(1)J(2)
   B:9  G(1)H(1)I(1)J(1)O(2)Q(2)S(1)
        C(1)G(1)O(1)Q(5)U(1)
   C:6  A(1)B(1)L(1)O(1)Q(1)Y(1)
        I(2)L(1)Q(2)S(1)
   D:3  P(1)S(1)V(1)
        O(2)Q(1)
   F:5  I(1)Q(3)S(1)
        O(4)S(1)
   G:5  B(1)H(1)K(1)O(2)
        A(1)B(1)J(1)K(1)O(1)
   H:5  A(1)Q(1)R(1)S(1)U(1)
        B(1)G(1)Q(2)S(1)
   I:8  C(2)J(3)P(1)R(1)V(1)
        B(1)F(1)K(2)U(1)V(1)Y(1)
   J:17  A(2)G(1)O(5)Q(5)U(1)Y(3)
        A(1)B(1)I(3)O(1)Q(6)S(4)Y(1)
   K:9  G(1)I(2)O(1)Q(2)R(1)Y(1)
        G(1)P(1)Q(6)S(1)
   L:2  C(1)Q(1)
        C(1)Q(1)
   N:5  O(1)Q(3)R(1)
        A(1)O(3)Q(1)
   O:20  B(1)D(2)F(4)G(1)J(1)N(3)R(2)U(2)X(1)Z(2)
        B(2)C(1)G(2)J(5)K(1)N(1)R(4)U(1)V(2)Y(1)
   P:2  K(1)Y(1)
        D(1)I(1)
   Q:26  B(5)C(2)D(1)H(2)J(6)K(6)L(1)N(1)R(2)
        B(2)C(1)F(3)H(1)J(5)K(2)L(1)N(3)R(2)U(2)V(2)Z(2)
   R:9  O(4)Q(2)S(3)
        H(1)I(1)K(1)N(1)O(2)Q(2)S(1)
   S:11  C(1)F(1)H(1)J(4)K(1)R(1)U(1)Z(1)
        B(1)D(1)F(1)H(1)R(3)U(1)V(1)
   U:6  B(1)I(1)O(1)Q(2)S(1)
        H(1)J(1)O(2)S(1)Y(1)
   V:6  I(1)O(2)Q(2)S(1)
        A(1)D(1)I(1)Y(3)
   X:1  Y(1)
        O(1)
   Y:7  I(1)J(1)O(1)U(1)V(3)
        C(1)J(3)K(1)P(1)X(1)
   Z:3  Q(2)
        O(2)S(1)
J
 Mnozina souhlasek: AFLPRUXZ
 Mnozina moznych samohlasek: BCDGHIJKNOQSVY
Ö
 Levy sousedi souhlasek (predchudci):  B1 C1 G1 I2 J1 K1 N1 O5 Q10 S5 V1 Y2
 Pravy sousedi souhlasek (nasledovnici):  C2 D1 H3 I2 J3 K1 N1 O11 Q3 S4 Y1
╢
Vysledkem je tedy mnozina souhlasek a samohlasek (respektive znaku podezrelych, ze nalezi mezi souhlasky ci samohlasky). Nyni se pokousime odhadnout transformacni klic. Viz teorie. 6
 Prace s programem
  Index Koincidence
 menu Analyza
EùJí╡
═'W Analyza│Klic-Kasisky ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
 Kasiskeho metoda zjisteni delky klice
ñTato metoda se pouzije pouze v pripade, ze se jedna o polyalfabetickou sifru, tedy v pripade, ze vysel index koincidence blizky indexu nahodne generovaneho jazyka. ª
Mame aktivni okno, ktere obsahuje zasifrovany text. V menu Analyza se vybere polozka Klic-Kasiskeho met. Objevi se vystupni okno, ktere obsahuje udaje o zpracovani.  Napr.:
¥
 [10:30:45] - cas zpracovani
 Zpracovavam okno: C:\KOS\PROGRAM\SIFRA.TXT (5)
  Pismena,  Delka (delka s mezerami), 1. vyskyt, Vzdalenost
  fdoa 4(4)  39 70
h
Z tohoto se dale urci delka klice, zpusobem, ktery je popsan v Zjisteni delky klice Kasiskeho metodou. H
 Prace s Programem
  Index Koincidence
  Separace Skupin
 menu Analyza
Fç&J▒┼┘
∩'0 Analyza│Klic-Koincid ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╢Slouzi k overeni delky klice zjistene napriklad Kasiskeho metodou. Pri pouziti funkce je treba zadat v uvodnim dialogu delku klice a kolik nasobku teto delky klice se ma "testovat". 
Priklad vystupniho okna: α
 [12:32:02]
 Zpracovavam okno: D:\KOS\KRYPTIK\VIGNER3.TXT (4)
  Delka klice (pocet znaku), Index koincidence (puvodni a posunuty text o delku klice)
  5:  0.02166
  10:  0.07581
  15:  0.06137
  20:  0.08303
  25:  0.03610

Bylo zadano: $ delka klice = 5
 pocet nasobku = 5
?
 Prace s Programem
 Teorie o metode koincidence
 menu Analyza
a	¿ ╝JF(
J'6 Analyza│Separace skupin ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╛Tato metoda se pouzije pouze v pripade, ze se jedna o polyalfabetickou sifru, tedy v pripade, ze vysel index koincidence blizky indexu nahodne generovaneho jazyka a ze uz zname delku klice. σ
Mame aktivni okno, ktere obsahuje zasifrovany text. V menu Analyza se vybere polozka Separace Skupin. Objevi se dialog se zadosti o zadani delky klice. Po jejim zadani se objevi vystupni okno, ktere obsahuje udaje o zpracovani.  Napr.:
Σ
 [10:43:06]
 Zpracovavam okno: E:\SKOLA\KOS\PROGRAM\VIGNER.TXT (5)
 Nejcastejsi znaky 1. casti: mkltenqrvw
  E: ighpajmnrs
  A: mkltenqrvw
  I: ecdlwfijno
  O: ywxfqzcdhi
 Nejcastejsi znaky 2. casti: aijuvbknwz
  E: wefqrxgjsv
  A: aijuvbknwz
  I: sabmntcfor
  O: muvghnwzil
 Nejcastejsi znaky 3. casti: hobfklrsai
  E: dkxbghnowe
  A: hobfklrsai
  I: zgtxcdjksa
  O: tanrwxdemu
 Nejcastejsi znaky 4. casti: foanpvcdeh
  E: bkwjlryzad
  A: foanpvcdeh
  I: xgsfhnuvwz
  O: ramzbhopqt
H
Z tohoto se na zaklade znalosti metody urci heslo. Viz Zjisteni klice. "
 Prace s Programem
 menu Analyza
F■J
('" Analyza│Makra ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ΩProgram umoznuje definovat casto pouzivane sekvence znaku (jsou vyvolany pomoci klavesnice) , ktere pak vyvolate stiskem tzv. horkych klaves. Horkou klavesu (angl. Shortcut) si vyberete z nabizeneho seznamu dostupnych horkych klaves. ] Popis : Definovani (nahrani) makra
         Vyvolani (prehrani) makra
         menu Analyza
:
]'$ Analyza│Puzzle ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
<Polozka menu otevre malou logickou hru - SKLADANKA (PUZZLE)  viz  menu Analyza
N	
g'( Analyza│Kalendar ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
1Otevre se maly, ale uzitecny , mesicni kalendar.  viz  menu Analyza
P
`'2 Analyza│Ascii tabulka ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
EASCII Tabulka ukazuje znakovou sadu pouzivanou na pocitacich IBM PC.  viz  menu Analyza
3

~'2 Analyza│Makra│Nahrani ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
iPokud chcete definovat nove makro, postupujte nasledovne : - zvolte v menu polozku Analyza│Makra│Nahrani 3  (po zvoleni se vsak na prvni pohled nic nestane)
.- zadejte sekvenci znaku pomoci stisku klaves   na klavesnici
a- opet zvolte v menu polozku Analyza│Makra│Nahrani _ v dialogu zvolte jeste nepouzitou kombinaci S  horkych klaves (nebo jiz zaplnenou, pokud ji chcete
  prepsat) a pak jmeno makra
t
Priklad definovani makra, ktere nam zobrazi na pracovni plose okno s logickou hrou - Puzzle (~U~tility│~P~uzzle) : ╛ Zvolime polozku v menu Nahravani.
 Natukame na klavesnici tuto sekvenci
 stisku klaves :   Alt-U  │   P
            ┌─────────┘       └─────┐
  hlavniho menu ~U~tility     polozka ~P~uzzle
ï
 Zvolime opetovne polozku v menu Nahravani.
 V dialogu vybereme volno kombinaci horkych klaves
  Ctrl-Alt-F2 :
 ╔═[■]═══════ Makra ══════════════╗
 ║ ( ) Ctrl-Alt-F1  : Moje makro  ║ ─ nadefinovane makro s nazvem Moje makro
 ║ () Ctrl-Alt-F2  :             ║ ─ zvolime tuto kombinaci
 ║ ( ) Ctrl-Alt-F3  :             ║ ─┐
 ║ ( ) Ctrl-Alt-F4  :             ║  │
 ║ ( ) Ctrl-Alt-F5  :             ║  │
 ║ ( ) Ctrl-Alt-F6  :             ║  ├─ volne kombinace
 ║ ( ) Ctrl-Alt-F7  :             ║  │
 ║ ( ) Ctrl-Alt-F8  :             ║  │
 ║ ( ) Ctrl-Alt-F9  :             ║  │
 ║ ( ) Ctrl-Alt-F10 :             ║ ─┘
 ╚════════════════════════════════╝

 ... a zadame jmeno makra :
 ╔═[■]═══ Jmeno makra ════════╗
 ║                            ║
 ║  Jmeno : ████████████████  ║
 ║                            ║
 ║     Ok  ▄      Zrusit ▄    ║
 ║   ▀▀▀▀▀▀▀       ▀▀▀▀▀▀▀    ║
 ╚════════════════════════════╝
 A to je cela ta veda!
'
 viz menu Analyza
     Vyvolani makra

ÿ¬'4 Analyza│Makra│Prehrani ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
QZobrazi se seznam , ze ktereho si vybereme podle nazvu makro , ktere se provede. ( viz menu Analyza
     Definovani makra

ï¥'l Analyza│Kalkulator ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
 kalkulator,kalkulacka
 viz menu Analyza
     Kalkulator - okno

I[
' Puzzle ▄
  ▀▀▀▀▀▀▀
oSKLADANKA  je  mala logicka hra. Ukolem je seradit znaky podle abcedy, abychom dostali nasledujici rozlozeni : :
    A  B  C  D
    E  F  G  H
    I  J  K  L
    M  N  O
G
Kliknutim mysi na pismenku , vedle ktereho je prazdne misto , se toto pismenko presune do prazdneho policka. Stiskem nektere z kurzorovych sipek (   ) se presune  do  prazdneho policka pismenko ve smeru , ktery nam ukazuje stisknuta kurzorova  klavesa.  Po  kazdem  presunuti  pismenka  se  scitac tahu zvetsi o jednicku. 
 viz Analyza│Puzzle
' Kalkulator ▄
  ▀▀▀▀▀▀▀▀▀▀▀
Kalkulator ovlada 4 pocetni operace ( + , - , * , / ). K pocitani na kalkulatoru je mozno pouzit numerickou klavesnici , anebo mys. Klavesa  <C> smaze obsah vstupniho radku kalkulatoru a klavesa <> (BackSpace) zrusi posledni napsanou cislici. Ekvivalentem tlacitka '±' je klavesa <_> . 
 viz Analyza│Kalkulator
B' Kalendar ▄
  ▀▀▀▀▀▀▀▀▀
Kalendar  zobrazuje  aktualni  mesic  s  vyrazne zbarvenym dnesnim dnem. Dalsi mesic muzeme zobrazit stiskem klavesy <+> nebo kurzorove sipky <> , predchozi pomoci  klaves  <->  nebo <> . Mys muzeme pouzit ke zmene mesice kliknutim na ikony  ''  nebo  '' . 
 viz Analyza│Kalendar
$'[  ASCII Tabulka ▄   (American Standart Code for Information Interchange)
   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.Tabulka  ukazuje  aktualni znakovou sadu pouzivanou na IBM PC. Vybrany znak je oznacen  blikajicim  blokovym  kurzorem  a  pod  tabulkou sviti jeho hodnoty v hexadecimalnim  a  dekadickem  tvaru.  Znak  vybereme  stisknutim odpovidajici klavesy , kliknutim mysi na nem  nebo pohybem kurzorovych sipek. 
 viz Analyza│ASCII Tabulka
É'1
 Informace o programu ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╡Obdobi vzniku, autori tohoto programu. Program vznikl jako semestralni prace z predmetu Kodovani a sifrovani, ktery vyucuje katedra Inzenyrske informatiky na stavebni fakulte CVUT. 'iV nasledujicim dialogu se zadavaji vstupni parametry pro funkci Overeni delky klice metodou koincidence. !
 ╔═[■]═══ Kontrola odhadu klice ══╗
 ║                                ║
 ║  Odhad delky klice :      ███  ║
 ║  Pocet nasobku pro test : ███  ║
 ║                                ║
 ║          Ok  ▄      Zrusit ▄   ║
 ║        ▀▀▀▀▀▀▀       ▀▀▀▀▀▀▀   ║
 ╚════════════════════════════════╝
╛
Odhad delky klice je cele cislo > 1, vyjadrujici pocet znaku klice pouziteho pro zakodovani zkoumaneho textu (text v aktualnim okne). Tento odhad ziskame napriklad pomoci Kasiskeho metody. ( napr. heslo (klic)  KNIHA  ma delku 5.
"
Pocet nasobku pro test je opet cele cislo > 1. Pri testu se zkoumany text posouva o nasobky delky klice a pro takto posunuty text se pocita index koincidence. Posunutim text rozumime to, ze kazdy znak textu zamenime za znak, jehoz poradive cislo v anglicke abecede je vetsi o delku klice. à napr. mam text  AHOJ  a klic  HA  delky 2
       posunuty text o 2: CJQL
                       4: ELSN
                        ...
C
 viz Vignerovska sifra
     Kryptoanalyza polyalfabetickych sifer
A7	@F5%'Nastaveni separace skupin ...   Delka klice - cislo od 1 do 30
'
*  Nastaveni│Obecne █
   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
hPred zacatkem je take dulezite zkontrolovat obecne nastaveni. V menu Nastaveni polozka Obecne, nebo F9. 
 Objevi se okno:
ß
 ╔═[■]═══ Obecne nastaveni ═══════════╗
 ║                                    ║
 ║  Pouzite znaky abecedy             ║
 ║  ███████████████████████████       ║
 ║                                    ║
 ║  Pri sifrovani:                    ║
 ║  [ ] Rozlisovat mala/velka pismena ║
 ║  [ ] Zachovat mezery a konce radku ║
 ║                                    ║
 ║          Ok  ▄      Zrusit ▄       ║
 ║        ▀▀▀▀▀▀▀       ▀▀▀▀▀▀▀       ║
 ╚════════════════════════════════════╝
≥
 Pouzite znaky abecedy
 znaky abecedy mimo ridicich znaku (0..13)
        znak "-" ma specialni vyznam ... naznacuje rozsah
        znak mezera nezadavat na konci - byl by ignorovan
        znaky se neodelujou zadny dalsim specialnim znakem
»
Zde se zadava znakova sada, ktera je pouzita v kryptoanalytickych metodach (konkretne zatim jen ve funkci Index Koincidence). Znaky, ktere chceme pouzivat se zadavaji vyctem, tesne za sebe bez oddelovaciho znaku. Mezera by se mela uvest na zacatku, na konci neni uvazovana jako znak. Vycet po sobe jdoucich znaku lze zkracene zadava uvedenim prvniho znaku, hned za nej se napise znak spojovnik (-) a potom se uvede znak posledni. ░ Napriklad (znaky uvozovek se nezadavaji):
 ' a-z'       ... mezera + vsechna mala pismena od a do z.
 ' a-zA-Z.,'  ... mezera + vsechna pismena od a/A do z/Z + tecka + carka.
Ü
Pri sifrovani - zde jsou moznosti vztahujici se na transformace textu (tedy z jednoho textu se vytvari jiny) pri sifrovani a metode Separace samohlasek. ╨ ■ Rozlisovat mala a velka pismena
   Jestli chceme znakovou sadu od a-z a A-Z, tak oznacime
   pomoci klavesy space radek Rozlisovat mala a velka pismena.
   (pozn: Je-li vyplneno [X] - potom je tato volba aktivni.)
 ■ Zachovat mezery a konce radku
   Neni-li volba aktivni, nebudou se do vytvareneho textu pri
   transformaci vkladat znaky mezer (#32) a konce radku (#10#13).
   Text bude bez mezer a bude zarovnan na pevnou sirku (zhruba 75
   znaku na radku).
,
 menu Nastaveni
 Prace s programem KRYPTIK
π+H	JS'6 Tlacitka  OK  a  ZRUSIT ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
T
Tyto tlacitka se pouzivaji v mnoha dialozich a tak je vhodne vedet jejich vyznam : * ┌──────────┐
 │  [ Ok ]  │
 └──────────┘
╣Uzavre dialog. Obecne jeho stlacenim odpovidate na otazku kladne nebo zmeny, ktere jste provedli v dialogu chcete akceptovat anebo berete na vedomi zpravu, kterou vam program zobrazil. +
 ┌──────────┐
 │[ Zrusit ]│
 └──────────┘
╛Uzavre take dialog. Jeho pouzitim davate obecne negativni odpoved, neakcepujete zmeny, ktere jste mohli udelat treba z nepozornosti. V dialogu ma tlacitko stejny vyznam jako klavesa <ESC> . 
 viz Prace s dialogy
<]']    ┌────────
 ┌──┤ Soubor █ ──(Alt+S)──
 │  └▄▄▄▄▄▄▄▄█            █
 │                        █
 │ Novy                   █
 │ Otevrit                █
 │ Ulozit                 █
 │ Zapsat jako            █
 │ Ulozit vse             █
 │ Zmen adresar           █
 │ DOS Shell              █
 │ Konec                  █
 └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
 e ü ¥ ╣ ╒
 ± 
	 )' Soubor│Novy ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀
»Na obrazovce otevre nove okno editoru a k nemu priradi nazev souboru Untitled = Nepojmenovany. Funkci Zapsat jako lze obsah editoru ulozit do souboru pod Vami zadanym jmenem. 
 viz menu Soubor
 à'╘'* Soubor│Otevrit... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ƒOtevre soubor, nacte ho do editoru a zobrazi okno s prislusnym obsahem editoru. Predpoklada se, ze soubor bude mit format ASCII textu (prosty textovy soubor). 
 viz menu Soubor
'╨'2 Soubor│Zapsat jako... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
IUlozi obsah editoru pod drive zadanym jmenem - viz titulek okna editoru. 3
 Soubor│Zapsat jako... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
3Ulozi obsah editoru do souboru pod zadanym jmenem. +
 Soubor│Ulozit vse ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

 viz menu Soubor
''. Soubor│Zmena adr... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
=Na obrazovce se objevi dialog pro zmenu pracovniho adresare.  viz menu Soubor
'q'. Zmena adr. - Dialog ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
_Dialog pro zmenu adresare se sklada ze vstupniho radku , seznamu adresaru a nekolika tlacitek. { ┌ Nazev adresare ─────────────────────┐
 │                                     │
 └─────────────────────────────────────┘
3Do vstupniho radku muzete napsat cestu k adresari. ≈
 ┌ Strom adresaru ─────────────────────┐
 │   Disky                             │
 │   └─┬C:\                            │
 │     └─┬APLIKACE                     │
 │       └──KRYPTIK                    │
 └─────────────────────────────────────┘
₧Seznam  adresaru  vam  umoznuje  se  pohybovat  v obsahu vaseho disku ve forme stromu. Pri zmene adresare staci vybrat prislusny adresar a stisknout <ENTER>. ?
 vyznamy tlacitek :
 ┌──────────┐
 │  [ Ok ]  │
 └──────────┘
7Potvrdi Vas vyber pracovniho adresare a uzavre dialog. .
 ┌───────────┐
 │ [ZmenAdr] │
 └───────────┘
æPomoci tohoto tlacitka se dostanete do vami vybraneho adresare (je predvolene). Taktez muzete pouzit dvojite kliknuti mysi na vybranem adresari. * ┌──────────┐
 │ [Navrat] │
 └──────────┘
~pokud se zamotate ve spleti adresaru, pouzijte toto tlacitko a vrati Vas do puvodni adresare, odkud jste delali utok na disk. '( Soubor│DOS Shell ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
uUmoznuje uzivateli odskokcit si do DOS Shellu. Navrat zpet je proveden po napsani prikazu : Exit  v DOSovem promptu.  viz menu Soubor
'ú' Konec ▄
  ▀▀▀▀▀▀
gUkonci chod programu a vrati se zpet do MS-DOSu. pozn. Tuto funkci pouzivejte jen ve smrtelne posteli.  viz menu Soubor
''üNastroje pro praci obsahem editacniho okna (bufferem) -- kopirovani, presun smazani textu. Vse se dejem pres takzvanou schranku. '╤      ┌───────────────────────────
 ┌────┤ Utility pro praci s okny  █ ────(Alt+O)──────
 │    └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█                  █                          █
 │                                                   █
 │Usporadat okna do kaskady                          █
 │Usporadat okna do podoby dlazdic                   █
 │Zmenit velikost\presun okna                        █
 │Zmena okna na maximalni nebo puvodni velikost      █
 │Prechod do dalsiho okna                            █
 │Prechod do predchoziho okna                        █
 │Zavreni okna                                       █
 │Zavreni vsech oken na pracovni plose               █
 └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
! σ   # S$ è-% ┴& °' /" f$'& Okno│Zavrit vse ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
lUzavre vsechny okna na pracovni plose, ktera se timto "vycisti" a na obrazovce zustane jen rastrove pozadi.  viz menu Okno
*ÿ	'6 Okno│Zavrit ▄                (Alt+F3)
  ▀▀▀▀▀▀▀▀▀▀▀▀
#Zavre jakekoliv okno na obrazovce.  viz menu Okno
*_	'B Okno│Presun/velikost ▄         (Ctrl+F5)
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
3Presovani oken pomoci kurzorovych sipek. Pokud drzite pritom stisknutou klavesu <SHIFT> nebude se okno pohybovat, ale bude menit svoji velikost. Ramecek okolo aktualni okna je pri teto operaci jednoduchy. Klavesou <ENTER> potvrdime zmenu okna , <ESC> rusi zmeny okna a vraci puvudni umisteni a polohu okna.  viz menu Okno
*{	'= Okno│Maxim./puvodni ▄           (F5)
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
sZvetseni okna na maximalni velikost/vraceni okna do puvodni velikosti. No ZOOM! proste ZOOM , copak to nechapete ?  viz menu Okno
*╢	'2 Okno│Dalsi ▄                  (F6)
  ▀▀▀▀▀▀▀▀▀▀▀
8Zobrazi nasledujici okno, ktere se tak stane aktualnim.  viz menu Okno
*p	'$ Okno│Predchozi ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
6Zobrazi predchozi okno, ktere se tak stane aktualnim.  viz menu Okno
*`	'" Okno│Dlazdice ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
BProvede usporadani vsech oken do podoby dlazdic na praovni plose. >  ┌────────────────────────────────────┐
  │ ╔════════════1══╗┌────────────2──┐ │
  │ ║               ║│               │ │
  │ ║               ║│               │ │
  │ ║               ║│               │ │
  │ ║               ║│               │ │
  │ ╚═══════════════╝└───────────────┘ │
  │ ┌────────────3──┐┌────────────4──┐ │
  │ │               ││               │ │
  │ │               ││               │ │
  │ │               ││               │ │
  │ │               ││               │ │
  │ └───────────────┘└───────────────┘ │
  └────────────────────────────────────┘

 viz menu Okno
*⌐	'  Okno│Kaskada ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
6Provede usporadani oken do kaskady na pracovni plose. @ ┌──────────────────────────1─┐
 │┌─────────────────────────2─┐
 ││┌────────────────────────3─┐
 │││╔═══════════════════════4═╗
 │││║                         ║
 │││║                         ║
 │││║                         ║
 │││║                         ║
 │││║                         ║
 └└└╚═════════════════════════╝

 viz menu Okno
*¥	'u      ┌──────────────────────
 ┌────┤ Nastaveni|Prostredi █ ───────────
 │    └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█            █
 │                                       █
 │ Obecne                                █
 │ Nastaveni prostredi programu          █
 │ Ulozeni vsech nastaveni               █
 │ Obnoveni nastaveni ze souboru         █
 └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
"ó,═0°1#'b Nastaveni│Prostredi ▄      (F7)
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
      ┌───────────
 ┌────┤ Nastaveni █ ───(Alt-V)────────
 │    └▄▄▄▄▄▄▄▄▄▄▄█                   █
 │                                    █
 │ Nastaveni mysi                     █
 │ Definovani vlastnich barev         █
 │ Prepinani modu zobrazovani         █
 └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█


 viz menu Nastaveni
-╞.ε/+o	'" Nastaveni│Mys ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
>Zobrazi na pracovni plose dialog pro nastaveni ovladani mysi. j Lze nastavit :
 ■ jak rychly ma byt dvojklik
 ■ jake z tlacitek mysi (leve nebo prave) ma
   byt aktivni

 viz menu Nastaveni
3[+╓	', Nastaveni│Barvy... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Nastaveni barev. 2 viz Nastaveni barev dialog.
      menu Nastaveni
2C+f	': Nastaveni│Video mod ▄        (F8)
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
sZvolenim  teto polozky menu nastaveni se prepne obrazovka do jineho rezimu zobrazeni. Lze prepinat mezi 2 rezimy : ò ■ Normalni barevny rezim s 25 radky.
 ■ Barevny rezim s 43 radky, pokud pouzivate
   adapter EGA , nebo s 50 radky, pokud vlastnite
   adapter VGA.
e
Tato funkce je dostupna pouze na grafickych adapterech, ktere jsou kompatibilni s VGA/EGA adaptery. +W	'8 Nastaveni│Uloz nastaveni ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
PFunkce zatim neni implementovana !!! Nastaveni│Uloz nastaveni v menu Nastaveni. 1^+~	': Nastaveni│Obnov nastaveni ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
%Funkce zatim neni implementovana !!! 
Menu Nastaveni. +f	'4 Nastaveni barev dialog ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
<V tomto dialogu muzete zmenit barvy ruznych casti programu. ╪ ┌─ Skupina ──────────┐
 │   Pracovni plocha  
 │   Menu             ■
 │   Dialogy/Kalk     ▒
 │   Puzzle           ▒
 │   Kalendar         ▒
 │   Ascii tab.       ▒
 │   Napoveda         
 └────────────────────┘
VSeznam  obsahuje  rozdilne  casti programu, u ktrerych muzete nastavit vlastni barvy. I
 ┌─ Item ─────────────┐
 │   Color            
 │                    ■
sKdyz  zvolite  v  seznamu  skupin nekterou oblast programu, zobrazi se v tomto seznamu nazvy pohledu teto skupiny. í
 ┌── Popredi ─┐  ┌── Pozadi ──┐
 │ ░▒▓░▒▓░▒▓░ │  │ ░▒▓░▒▓░▒▓░ │
 │ ▓░▒▓░▒▓░▒▓ │  │ ▓░▒▓░▒▓░▒▓ │
 │ ▒▓░▒▓░▒▓░▒ │  │ ▒▓░▒▓░▒▓░▒ │
 └────────────┘  └────────────┘
;Pouzij palety popredi a pozadi ke zmene barevne kombinace. =
 ┌────────────────┐
 │ Text Text Text │
 └────────────────┘
:Zobrazeny text ukazuje prave zvolenou barevnou kombinaci. 
 viz Nastaveni│Barvy
.┤'╚ Nastaveni mysi dialog ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
 ┌──────────────────────────┐
 │ Dvojklik mysi            │
 │ Pomalu  Stredne   Rychle │
 │ ▒▒▒▒▒▒▒▒▒▒▒■▒▒▒▒▒▒▒▒▒▒ │
 └──────────────────────────┘
╞Vodorovny posuvnik umoznuje nastaveni rychlosti dvojkliku mysi. Pro otestovani nastavene rychlosti dvojkliku pouzijte radek 'Pomalu  Stredne  Rychle' . Pokud na nem dvojkliknete , zmeni svou barvu. [
 ┌──────────────────────────┐
 │ [X] Zamen tlacitka mysi  │
 └──────────────────────────┘
dZaskrtnuti  teto  volby  ziska  prave  tlacitko vsechny normalni funkce leveho tlacitka a obracene. 
 viz Nastaveni│Mys
-T
'.    ┌──────────
 ┌──┤ Napoveda █──────────────
 │  └▄▄▄▄▄▄▄▄▄▄█              █
 │                            █
 │ Obsah                      █
 │ Ovladani programu          █
 │ Prace s programem         █
 │ Kodovani a sifrovani       █
 │ Tabulky                    █
 └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
5s6ôJ│=╥C≥'Γ Obsah ▄
  ▀▀▀▀▀▀
 ASCII tabulka
 Afinni sifra -- desifrovani
 Afinni sifra
 Dekodovani
 Index koincidence-teorie
 Index koincidence
 Infomace o programu
 Jak pouzivat napovedu
 Jak pracovat s programem
 Kalendar
 Kalkulator
 Kasiskeho metoda
 Kodovani
 Kryptoanalyza polyalfabetickych sifer
 Kryptoanalyza
 Menusystem
 Metoda koincidence
 Nabidka Analyza v hlavnim menu
 Nabidka Editovat v hlavnim menu
 Nabidka Help v hlavnim menu
 Nabidka Nastaveni v hlavnim menu
 Nabidka Okna v hlavnim menu
 Nabidka Sifry v hlavnim menu
 Nabidka Soubor v hlavnim menu
 Nastaveni barev
 Nastaveni modu obrazovky
 Nastaveni mysi
 Obecna nastaveni
 Obnov nastaveni
 Ovladani programu
 Prace s oknama
 Pracovni plocha
 Priklady nekolika kodu
 Puzzle
 Separace samohlasek-teorie
 Separace samohlasek
 Separace skupin
 Stavovy radek
 Teorie kodovani a sifrovani
 Tlacitko [  Ok  ]
 Tlacitko [Zrusit]
 Uloz nastaveni
 Vignerovska sifra
 Vstupni data pro Afinii sifru
 Vstupni data pro Vignerovskou sifru
 Vstupni data pro metodu koincidence
 Vstupni data pro separaci skupin
 Zakladni pojmy kryptografie
 Zakladni sifry klasicke kryptografie
 Zakldy teorie cisel
 Zavreni okna
 Zavreni vsech oken
 Zmena adresare
 Zobrazeni oken v dlazdicich
 Zobrazeni oken v kaskade
7
#@IN
BZtç£J│═╫
πG⌡F %A&
85
A
U)u4û+│ *╒≥'2//@3Z"j1|6ì;á:░H┴┘Eß²9#
=2&O&b0uà	ÿ╖#▄#! ?#@@$>f' {" ë(¥  ¡! ╩'* Ovladani programu ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
⌡Ovladani programu je pomerne snadne, protoze se nejedna o zadny veliky program ani nijak narocny. Hned ale musim pripomenout, ze se jedna zatim o prvotni vezi programu a musite to brat na vedomi. Popis ovladani jsem rozdelil do nekolik okruhu : m
 Obecne zaklady
 Menu
 Stavovy radek
 Pracovni plocha
 Prace s okny
 Prace s dialogy
 Jak pouzivat napovedu
7"8298
:G;X<fw'$Kde nic tu nic , tak i kure nebere. 
 Ovladani programu
6'' Menusystem ▄
  ▀▀▀▀▀▀▀▀▀▀▀
 
Hlavni nabidka a dilci nabidky m
Hlavni nabidka  se sklada z  polozek, kterymi jsou  nazvy dilcivh nabidek,  ktere se  mohou  postupne  otevirat. Hlavni  nabidka je aktivni, pokud  je nektera z  jejich polozek zvyraznena  (aktivni polozka). Pokud  je polozka  dilci  nabidky  ukoncena tremi  teckami (...), znamena  to,  ze  po  zvoleni  teto  polozky  se objevi dialogove okenko. Pokud za polozkou nasleduje sipka (»), volba teto polozky zpusobi  otevreni dalsi  dilci  nabidky.  Pokud neni  za polozkou uveden  zadny  z  techto  symbolu,  bude  ihned  po jejim zvoleni provedena pozaovana akce. Postupnemu  vyberu polozky  z hlani  a pak  dilci nabidky  budeme rikat volba.  Budeme pouzivat zapis,  napr. Matice│Nacteni, ktery znamena:  "Z  hlavni  nabidky  zvolte  polozku  Matice  a  z dilci nabidky, ktera se pote objevi, polozku Nacteni." Volby z nabidek muzete vybrat nekterym z nasledujicich zpusobu: ╫
Z klavesnice: 1. Stisknete <F10> a hlavni nabidka se stane aktivni. 2. Pomoci klaves  <Sipky>  zvolte  dilci nabidku,  kterou chcete zobrazit, a stisknete <Enter>. Nebo stisknete  klavesu se zvyraznenym  pismenem pozadovane dilci nabidky (napr. po stisknuti <M> se zobrazi nabidka Matice). 3. Odkudkoli  z  integrovaneho   prostredi  lze  zobrazit  primo pozadovanou dilci nabidku stiskem <ALT> a zvyrazneneho pismena. 4. Polozku z dilci nabidky vyberete jako v bode 2. Q
Pomoci mysi: 1. Stisknete tlacitko mysi na nazvu pozadovane dilci nabidky a ta se zobrazi. 2. Pak  stisknete tlacitko  mysi  na  pozadovane polozce  v dilci nabidce. 3. Take  muzete  stisknout  tlacitko  na  nazvu  pozadovane dilci nabidky, tlacitko  drzet a pritom  potahnout mysi na  pozadovanou polozku, teprve zde tlacitko uvolnit. ┘
Popsane zpusoby vyberu z nabidek je mozne libovolne kombinovat. V dilcich nabidkach je u  nekterych polozek (vpravo) uvedena tzv. horka  klavesa. Jsou  to klavesa  nebo kombinace  klaves, jejichz stiskem lze volbu vyvolat odkudkoli z integrovaneho prostredi. V urcite  fazi  prace  v  integrovanem  prostredi  nelze  nektere polozky dilcich nabidek zvolit,  protoze by jejich pouziti nemelo smysl.  Tyto polozky  se poznaji  tak, ze  v nich neni zvyrazneno zadne pismeno. 

 Ovladani programu
6«'" Stavovy radek ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╝Stavovy radek je umisten uplne dole, na posledni lince na obrazovce. Ma dve zakladni vlastnosti - je promenlivy a stale funguje (to znamena, ze vzdy reaguje na uzivatele a posila prikazy programu, ale prikazy nekdy zustanou bez odezvy, protoze prave nemaji zadny vliv). Stavovy radek se sklada z cervene vyznacenych zkratkovych klaves a z nazvu operace, kterou provadeji. Pokud je operace podsvicena (je sediva), pak nemuze byt v tuto chvili vyuzita. Jak uz jsme rekli, stav. radek muze vice podob. Jedna zvlastni vypada tak, ze je rozdelena na dve casti pomoci svisle cary, prvni cast jsme jiz popisovali vyse a v druhe casti se objevuje kratka napoveda, ktera zalezi na tom, kde se prave nalezate. 
 Ovladani programu
6ß'² Pracovni plocha ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                                                 Ukazatel volne
                   Menusystem                    vyuzitelne pameti    Hodiny
  ┌────────────────────┴──────────────────────┐   ┌────┴─────┐  ┌──────┬┘
Ä
  Soubor Edit Sifra Analyza Nastaveni Okna Help    Free 125616  11:05:24
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 ░░░░░░░░░░░░░░Pracovni░plocha░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 ░░░▒░░░░░▒░░░░▒▒▒▒▒░░░░▒░░░░░░░▒░░░░░▒▒▒▒▒░░░░░▒▒▒▒▒▒▒░░░░▒░░░░▒░░░░░▒░░░
 ░░░▒░░░▒░░░░░▒░░░░░░▒░░░░▒░░░▒░░░░░░▒░░░░░░▒░░░░░░▒░░░░░░░▒░░░░▒░░░▒░░░░░
 ░░░▒░▒░░░░░░░▒░░░░░░▒░░░░░▒▒▒░░░░░░░▒░░░░░░▒░░░░░░▒░░░░░░░▒░░░░▒░▒░░░░░░░
 ░░░▒▒░░░░░░░░▒▒▒▒▒▒░░░░░░░░▒░░░░░░░░▒▒▒▒▒▒░░░░░░░░▒░░░░░░░▒░░░░▒▒░░░░░░░░
 ░░░▒░▒░░░░░░░▒░░▒░░░░░░░░░░▒░░░░░░░░▒░░░░░░░░░░░░░▒░░░░░░░▒░░░░▒░▒░░░░░░░
 ░░░▒░░░▒░░░░░▒░░░░▒░░░░░░░░▒░░░░░░░░▒░░░░░░░░░░░░░▒░░░░░░░▒░░░░▒░░░▒░░░░░
 ░░░▒░░░░░▒░░░▒░░░░░░▒░░░░░░▒░░░░░░░░▒░░░░░░░░░░░░░▒░░░░░░░▒░░░░▒░░░░░▒░░░
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
 F1 Help F2 Uloz F3 Nacti Alt-F3 Zavri F4 Afinni F6 Koincidence F10 Menu
l
 └─────────────────────┬────────────────────────────────────────────────┘
                   Stavovy radek
'$ Prace s oknama ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
⌐Okenko (Okno) je cast obrazovky,kterou  muzete presouvat, menit jeji velikost a nazev, prekryvat, uzavirat a otevirat. Techto okenek muze byt najednou otevreno nekolik. ▐
    ┌ Ikona pro zavreni (po kliknuti mysi na tomto miste dojde k uzavreni
    │                    okna)
    │          ┌ Stisknutim leveho tlacitka na ramecku a naslednym presunem
    │          │ mysi se cele okno presune
    │          │                ┌─ Nazev okna
    │          │                │         Maximalizace/puvodni velikost okna
                                                                 
 ╔═[■]═══════════════ C:\KRYPTIK\DATA\ZPRAVA.TXT ══════════════════[]═╗
 ║ [09:30:24]                                                          
 ║ Zpracovavam okno: F:\ALES\PROGRAMY\PASCAL\KRYPTIK\CEZAR2.TXT (1)    ▒
 ║ - zkoumane znaky :                                                  ▒
 ║ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz                ▒
 ║ - celkem 50 znaku, z toho 41 zkoumanych znaku,  cetnosti:           ■
 ║ a:    2   b:    2   c:    7   d:    1   f:    2   g:    2   j:    1 ▒
 ║ k:    2   m:    1   n:    2   o:    2   p:    2   q:    4   r:    1 ▒
 ║ t:    3   u:    2   v:    3   w:    2                               ▒
 ║ - index koincidence:0.075550                                        ▒
 ║                                                                     ▒
 ║                                          Posuvnik textu ───────────▒
 ║                                                │                    ▒
 ║                                                │                    ▒
 ║                                                                    
 ╚═════════════■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒─┘
                                                                       
 Uchopenim (stisknuti mysi a jeji drzeni) tohoto rohu a presunem dojde ┘
 ke zmene velikosti okna.
G
KRYPTIK  umoznuje  otevreni  libovolneho  poctu  okenek na pracovni plose (je omezen pouze velikosti  volne pameti), ale v danem case muze  byt  pouze  jedno  okenko  aktivni,  Aktivni  okenko je to, ve kterem prave  pracujete. Jakakoli volba,  kterou zvolite, nebo text, ktery napisete, se vztahuje pouze k aktivnimu okenku. 
Vetsina okenek ma tyto casti: é     - nazev okenka
     - ikona pro uzavreni       umoznuje rychle uzavrit okenko;
     - rolovaci pasy         umoznuji posouvat text v okenku;
     - symbol rohu          umoznuje zvetsovat/zmensovat okenko;
     - ikona pro zoom           umoznuje zvetsit  okenko na maximum,
                             nebo   naopak  zobrazit   v  puvodni
                             velikosti;
▌
Aktivni okenko je vzdy oramovano na obrazovce dvojitou carou a ma ikona pro uzavreni, ikona pro zoom, symbol rohu a rolovaci pasy. Pokud se  okenka prekryvaji,  aktivni okenko  je vzdy  to, ktere je nad vsemi ostatnimi. I
 ╔════════════════════╗
 ║ Ikona pro uzavreni ║
 ╚════════════════════╝

Ikona pro  uzavreni je ctverecek v leve casti horniho okraje okenka. Tato ikona muzete pouzit pro  rychle uzavreni okenka tak, ze na nem stisknete tlacitko mysi. (Alternativne lze zvolit Okno│Zavrit nebo  stisknout <Alt+F3>).  Okenko Napoveda  muzete navic uzavrit stiskem <ESC>. 
Nazev okenka p
Nazev  okenka  je  umisten  uprostred  horniho vodorovneho okraje okenka. Kdyz  na nazvu  okenka (nebo  jinde na  hornim vodorovnem  okraji okenka, krome ikony pro uzavreni a zoom) stisknete dvakrat tlacitko mysi,  provede  se  totez  jako  pri  zvoleni ikona pro zoom. Pokud tlacitko mysi  podrzite, muzete okenko posouvat  (tak dlouho, nez tlacitko mysi uvolnite). =
 ╔════════════════╗
 ║ Ikona pro zoom ║
 ╚════════════════╝
Ç
Ikona pro zoom  se  nachazi  v  prave  casti  horniho okraje okenka (vpravo). Na ikone pro zoom muzeme tisknout tlacitko mysi: ─
 - Pokud  je ikona pro zoom sipka
   nahoru, okenko  se zvetsi na
   nejvetsi moznou velikost.
 - Pokud je  ikona pro zoom obousmerna
   svisla sipka, okenko  se
   zobrazi v  puvodni velikosti.
X
Pro prepinani velikosti okenka  z klavesnice zvolte Okno│Velikost nebo stisknete <F5>. :
 ╔═══════════════╗
 ║ Rolovaci pasy ║
 ╚═══════════════╝
¢
Rolovaci  pasy  jsou  vodorovne  (na  spodnim  okraji okenka nebo svisle (na pravem okraji okenka). Jedna  se o  pas ukonceny  na obou  koncich sipkami.  Mezi temito sipkami se nachazi obdelnicek  - indikator rolovani, jehoz pozice pozici kurzoru  v seznamu polozek,  ktery je v  okenku zobrazen v horni  polovine  okenka.  Symboly  rolovaciho  pasu  se pouzivaji pomoci mysi pro rolovani obsahu okenka takto: ╨
 - Stisknete  tlacitko  mysi  na  sipce
   na  nekterem konci a kurzor se bude
   posouvat odpovidajicim smerem.
 - Stisknete tlacitko  mysi na pasu
   mimo indikatoru rolovani mezi  sipkami.
   Kurzor  se  bude  pohybovat  po  strankach smerem
   odpovidajicim poloze indikatoru.
 - Podrzte tlacitko  mysi na indikatoru
   rolovani a potahnete jej na  urcite misto,
   ktere relativne  odpovida pozadovane poloze
   v seznamu, teprve pak tlacitko mysi uvolnete.
4
 ╔═════════════╗
 ║ Symbol rohu ║
 ╚═════════════╝
$
Symbol rohu je pravy spodni roh okraje okenka. Kdyz na  tomto rohu podrzite tlacitko  mysi, muzete posunem mysi okenko  zmensovat  nebo  zvetsovat   (tak  dlouho,  nez  tlacitko uvolnite).  Pro  zmenu  velikosti   okenka  z  klavesnice  zvolte Okno│Presun/velikost nebo stisknete <Ctrl+F5>. 
 Ovladani programu
6)'& Prace s dialogy ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Dialogove okenko ╖
Pokud je  polozka v dilci  nabidce ukoncena tremi  teckami (...), otevre se po jejim zvoleni  dialogove okenko. Dialogove okenko se pouziva ke zobrazeni a nastaveni mnoha parametru. X
V dialogovem  okenku  lze  zobrazit  pet  zakladnich  typu polozek (ovladacich prvku): ½
 - tlacitka predvolby ( nazyvane tez jako vyberova pole )
 - tlacitka nastaveni ( nazyvane tez jako zaskrtavaci pole )
 - tlacitka akce
 - vstupni pole
 - seznam polozek
┬
Klavesy <Tab> nebo <Shift+Tab> zpusobi v dialogovem okenku presun na nasledujici nebo predchozi polozku nebo skupinu polozek. Pokud je polozka zvyraznena, stava se aktivni a lze s ni pracovat. :
 ╔═══════════════╗
 ║ Tlacitka akce ║
 ╚═══════════════╝
y
V dialogovem  okenku   se  zpravidla  vyskytuji   tri  standardni tlacitka akce OK, Zrusit a Napoveda, ktera znamenaji: ï
 ┌────────┐
 │   OK   │  Akce  bude  provedena  s
 └────────┘  ohledem  na  nastaveni ostatnich
             polozek v dialogovem okenku.
¿
 ┌────────┐
 │ Zrusit │  Nebude  provedena  zadna
 └────────┘  zmena  ani  akce,  ale
             dialogove  okenko  zmizi;
             totez  zpusobi  stisk <ESC>.
Ç
 ┌────────┐
 │Napoveda│  Otevre   okenko  Napoveda,
 └────────┘  ktere  se  vztahuje k
             tomuto dialogovemu okenku.
^
Pokud pouzivate  mys, stisknete tlacitko  mysi na tlacitku  akce, ktere chcete zvolit. Z  klavesnice Stisknete zvyraznene pismeno v nazvu tlacitka akce; napr. stiskem  <O> zvolite OK. Tlacitko akce OK byva v dialogovem okenku nastaveno implicitne. Implicitni tlacitko akce je na monochromatickem monitoru oznaceno sipkou; na barevnem je zvyrazneno. I
 ╔════════════════════╗
 ║ Tlacitka nastaveni ║
 ╚════════════════════╝
[( nazyvane tez jako zaskrtavaci pole ) Tlacitka nastaveni se objevi v  dialogovem okenku tehdy, pokud se provadeni volby (po jejimz  zvoleni se dialogove okenko otevrelo) ma  ridit  parametrem,  ktery  muze  byt  bud vypnut nebo zapnut. Tlacitka nastaveni byvaki ve skupine,  ve ktere muze byt nastaven libovolny pocet techto tlacitek. Pred  kazdym tlacitkem  nastaveni jsou  umisteny hranate zavorky. Kdyz tlacitko nastaveni vyberete, objevi se v techto zavorkach X, coz indikuje zapnuti parametru, nebo  budou zavorky prazdne, a to znamena vypnutiparametru. Nastaveni tlacitka nastaveni muzete menit: \
 - Stiskem tlacitka mysi na pozadovanem tlacitku nebo
 - klavesou <Tab>  se presunout na  skupinu
   tlacitek, kde  je pozadovane tlacitko
   nastaveni  umisteno, ve skupine pomoci
   klaves  <Sipky>  presunout  zvyrazneni
   na  tlacitko a pak stisknout <Mezernik> nebo
 - stisknout pismeno zvyraznene v nazvu
   pozadovaneho tlacitka nastaveni.
I
 ╔════════════════════╗
 ║ Tlacitka predvolby ║
 ╚════════════════════╝
$( nazyvane tez jako vyberova pole ) 
Tlacitka nastaveni se objevi v  dialogovem okenku tehdy, pokud se provadeni volby (po jejimz  zvoleni se dialogove okenko otevrelo) ma  ridit parametrem,  ktery muze  byt nastaven  na prave jednu z vice moznych hodnot. Nekolik tlacitek predvolby vzdy tvori  skupinu, ve ktere muze byt nastaveno ("stisknuto") prave jedno  tlacitko (ne vice, ne mene). Pred  kazdym tlacitkem  predvolby jsou  umisteny kulate  zavorky. Nastavene tlacitko predvolby je oznaceno v zavorkach teckou, tedy (.). Nastaveni tlacitka predvolby muzete menit: *
 - Stiskem  tlacitka mysi  na pozadovanem
   tlacitku predvolby nebo
 - z klavesnice stiskem pismena zvyrazneneho
   v nazvu tlacitka predvolby nebo
 - se  presunout pomoci  klaves <Tab>
   na pozadovanou skupinu tlacitek a  pak
   pomoci klaves  <Sipky> nastavit
   pozadovane tlacitko predvolby
[
Skupinu s nove nastavenou predvolbou pak opustite stiskem klavesy <Tab> nebo <Shift+Tab>. 7
 ╔══════════════╗
 ║ Vstupni pole ║
 ╚══════════════╝
$( nazyvane tez jako vstupni radek ) ¼
Vstupni  pole se  v dialogovem  okenku objevi,  pokud ma  zvolena volba pracovat s urcitym zadanym textem. Do vstupniho  pole lze tedy zapisovat  text. Pritom muzete pouzit vetsinu ze zakladnich klaves  pro editaci textu (<Sipky>, <Home>, <End>, <Ins>).  Kdyz praveho okraje pole,  obsah bude automaticky rolovat. Je-li v poli vice textu nez je mozne zobrazit, objevi se na  konci sipka  ukazujici smerem,  kmpokracuje nezobrazeny text. Kdyz stisknete tlacitko mysi na nektere z techto sipek, text bude rolovat. Kdyz tlacitko na sipce podrzite, text se bude posouvat. Je-li vpravo od vstupniho pole zobrazena sipka dolu, lze klavesou <Sipka  dolu>  pouzit  seznam  drive  pouzitych textovych polozek (tj. polozek odpovidajiciho  tvaru, ktere byly  do vstupniho pole zadany  pri  nekterem  z  predchozich  pouziti  volby,  po niz se dialogove okenko  zobrazilo) a stiskem <Enter>  vybrat nekterou z nich. Na   zobrazene  sipce   muzetetake  stisknout   tlacitko  mysi  a pozadovanou polozku pakzvyraznit stiskem tlacitka mysi nebo primo vybrat  dvojim stisknutim.  Text, ktery  se prepise  do vstupniho pole, muzete libovolne editovat. Stiskem Klavesy <ESC> opustite seznam bez provedeni vyberu. ä
Poznamka: Pokud  potrebujete  zadat  ve  vstupnim  poli  nektery z ridicich znaku (napr ^L nebo ^M), zadejte pred timto znakem ^P. =
 ╔════════════════╗
 ║ Seznam polozek ║
 ╚════════════════╝
█
Seznam polozek  se v dialogovem okenku  objevi tehdy, pokud volba pracuje  s  nejakou  polozkou,   kterou  lze  zvolit  v  seznamu, stanoveneho v integrovanem prostredi podle urcitych kriterii. Seznam  polozek  lze  prohledavat  a  vybrat  z  nej  polozku bez opusteni dialogoveho okenka. Pokud  se v seznamu objevi blikajici radek a vy vite, jakou polozku hledate, muzete napsat slovo (nebo nekolik  pocatecnich pismen  slova) a  odpovidajici polozka  se v seznamu vyhleda. Seznam bude  aktivni, kdyz na nem  stisknete tlacitko mysi zadate pismeno  zviraznene v  nazvu  seznamu  (nebo jej  vyberete pomoci <Tab> nebo klaves <Sipky>). Kdyz se seznam zobrazi, muzete k jeho prohledavani pouzit klavesy <Sipky>, <PgUp>, <PgDn> atd. 
 Ovladani programu
6#'d  Kodovani a sifrovani ▄
   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
 Zaklady teorie cisel
 Zakladni pojmy kryptografie
 Sifry klasicke kryptografie (Cezarovska, Afinni, Abeceda
 promichana heslem, ...)
 Dalsi poznamky k monoalfabetickym sifram
 Zaklady kryptoanalyzy
 Index koincidence
 Tabulka indexu koincidence
 Separace samohlasek
 Kryptoanalyza polyalfabetickych sifer
>
 Zaklady teorie kodovani
 Priklady nekolika kodu
 Dekodovani
ï
 Texty poskytl RNDr.Ing.Tomas Vanicek, ktery uci
 na Stavebni fakulte CVUT, katedre Inzenyrske informatiky
 predmet Kodovani a Sifrovani.
>4?J@gD║(AΣB√CE*F?%GgHÇIÿ
'Y ╔══════════════════════╗
 ║ Zaklady teorie cisel ║
 ╚══════════════════════╝
 Prvocislo
ñje prirozene cislo p, ktere ma za delitele jen 1 a sebe sama. Kazde prirozene cislo n vetsi nez 1 se da jednoznacne zapsat ve tvaru n = p1^a1 * p2^a2 * ... * pn^an 
 Nejvetsi spolecny delitel
Ecisel a a b (NSD(a,b)) je nejvetsi takove cislo d, ktere deli a i b. 
 Nejmensi spolecny nasobek
Lcisel a a b (NSN(a,b)) je nejmensi takove cislo n, ktere je nasobkem a i b. 
 Eulerova funkce fi
Öudava pocet prirozenych cisel mensich nez n a nesoudelnych s n Hodnoty funkce fi pro cisla 1..1e jsou 1 1 2 2 4 2 6 4 6 4. Pro prvocislo p je fi(p)=p-1. 

 Kongurence
¡Cisla a a b nazveme kongurentni modulo m, pokud je rozdil a-b delitelny m. a a b jsou kongurentni, pokud davaji pri deleni m stejny zbytek. Kongurence lze scitat a nasobit. 8
 Mala Fermatova veta │
 ────────────────────┘
 Tvrzeni
ΘPokud je p prvocislo, pak je kazdy binomicky koefincient p nad a pro 0 < a < p kongurentni s 0 modulo p. (Dukaz je zrejmy, v rozvoji binomickeho koeficientu se v citateli objevuje clen p, ktery nelze vykratit s nicim ve jmenovateli. 

 Tvrzeni
éPokud je p prvocislo, pak pro kazda dve cisla a a b plati (a+b)^p je kongurentni s a^p+b^p modulo p (plyne z predchoziho tvrzeni. 
 Mala fermatova veta
rPro kazde prvocislo p a pro kazde prirozene cislo c plati c^p je kongurentni s c modulo p. (Dukaz indukci dle c). 
 Jiny tvar Fermatovy vety
_Pro kazde prvocislo p a pro kazde prirozene cislo c plati c^(p-1) je kongurentni s 1 modulo p. 
 Jeste jiny dusledek
║Pokud k cislu N existuje cislo c takove, ze c^(N-1) neni kongurentni s 1 modulo N, pak je N cislo slozene. (Poznamka: obracene tvrzeni neplati, 37*73 je slozene cislo, ale splnuje MFV). 
 ╔════════════════════════════════╗
 ║ Zakladni algebraicke struktury ║
 ╚════════════════════════════════╝
 Grupa
 Mnozina M s operaci + tvori grupu, pokud
 - je uzavrena na vysledky operace +.
 - operace + je asociativni
 - operace + ma neutralni prvek
 - operace + ma inverzni prvek

 Komutativni grupa
.je grupa, kde je navic operace + komutativni. 
 Okruh
Kje mnozina M se dvema operacemi + a *, ktere splnuji nasledujici podminky: Æ - Vzhledem k operaci + je mnozina M grupou.
 - Operace * je uzavrena, asociativni a ma jednotkovy prvek.
 - Operace jsou navzajem distributivni.

 Faktor okruhy celych cisel
.Na mnozina Zn=(0,1,...,n-1) definujeme scitani a nasobeni modulo n. Vzhledem k teto operaci je mnozina Zn okruh. Inverzni prvek vzhledem k nasobeni existuje pro cislo a ze Zn prave tehdy, kdyz je a nesoudelne s n. Je-li n prvocilo, existuje inverzni prvek pro kazdy prvek mnoziny Zn a Zn tvori teleso. $

 Eulerova veta │
 ──────────────┘
çPro kazde prirozene cislo n a cislo c nesoudelne z n plati c^fi(n) je kongurentni s 1 modulo n. (je to zobecneni Male Fermatovy vety). ,
 zpet Prehled temat z kodovani a sifrovani
='	Klasicka kryptografie r ╔═════════════════════════════╗
 ║ Zakladni pojmy kryptografie ║
 ╚═════════════════════════════╝
 Abeceda textu
╡Text lze zapsat v ruznych abecedach a v ruznych kodovanich. Bez ujmy na obecnosti ovsem lze predpokladat, ze text je zapsan pomoci cisel 0,1,...,n-1, tedy pomoci prvku okruhu Zn-1. 
 Kryptograficka transformace
4Je proste zobrazeni mnoziny m-tic prvku Zn do sebe. 
 Kryptograficky system
ZJe parametricky system kryptografickych transformaci Tk, kde k je klic dane transformace. 
 Poznamky
 - Vstupni i vystupni text je nad stejnou abecedou.
 - Vstupni i vystupni text ma stejnou delku.
 - Sifrovanim jednoho textu pomoci jednoho klice
   je jednoznacne dany zasifrovany text.
 - Zasifrovanym textem a klicem je jednoznacne
   dany puvodni text.
D
 viz Zakladni typy sifer
     Prehled temat z kodovani a sifrovani
@=<' Cezarovske sifry
µKlicem je cislo k, N je velikost vstupni a vystupni abecedy. Ck(m) je m + k modulo N. Jedna se o posunuti pismen v urcity pocet znaku v abecede pro abecedu ABCDEFGHIJKLMNOPQRSTUVWXYZ klic 4 a vstupni slovo TOMAS, dostaneme XSQEW. 
 Afinni sifry
╣Klicem je dvojice celych cisel a a k, kde a je nesoudelne s N Ca,k(m) je a*m+k modulo N. Pro k rovno 0 se tato sifra nazyva m,ultiplikativni. Pro a rovno 1 dostavame Cezarovskou sifru. (
 Obecny system monoalfabetickych sifer
╗Kryptograficky system tvori vsechna prosta zobrazeni mnoziny Zn na sebe. Klicem je v tomto pripade predpis celeho zobrazeni, tedy navod, ktery znak se nahrazuje jakym znakem. Vzdy se ovsem jeden a tentyz znak nahrazuje stejnym znakem. Cezarovske a afinni sifry jsou specielnim pripadem monoalfabetickych sifer. Celkem pro N prvkovou abecedu existuje N! monoalfabetickych sifer. Vyhodou obecne monoalfabeticke sifry je, ze odbourava jakoukoli pravidelnost v "michani" pismen. Nevyhodou je ovsem slozitost zapisu a zapamatovani algoritmu pro generovani prosteho zobrazeni. Nasledujici dva priklady ukazuji monoalfabeticke sifry, u nichz je mozne kryptografickou transformaci odvodit na zaklade hesla. 
 Abeceda pomichana heslem
ïKlic tvori pismeno (napriklad X) a heslo napriklad TOMAS VANICEK. Heslo napiseme bez mezer za sebe a vynechame druhe a dalsi vyskyty opakujicich se pismen TOMASVNICEK. Kryptografickou transformaci pak vytvorime tak, ze pismenu X priradime prvni pismeno hesla, stejne postupujeme u dalsich pismen abecedy a po skonceni hesla doplnime kodovy radek zbyvajicimi pismeny abecedy neobsazenymi v heslu l ┌────┬────┐
 │  A │ A  │
 │  B │ S  │
 │  C │ V  │
 │  D │ N  │
 │  E │ I  │
 │  F │ C  │
 │  G │ E  │
 │  H │ K  │
 │  I │ B  │
 │  J │ D  │
 │  K │ F  │
 │  L │ G  │
 │  M │ H  │
 │  N │ J  │
 │  O │ K  │
 │  P │ L  │
 │  Q │ P  │
 │  R │ Q  │
 │  S │ R  │
 │  T │ U  │
 │  U │ V  │
 │  V │ W  │
 │  W │ Z  │
 │  X │ T  │
 │  Y │ O  │
 │  Z │ M  │
 └────┴────┘
'
 Transponovana abeceda michana heslem
█V predchazejicim pripade zustava znacna cast abecedy ve svem prirozenem poradi. Abychom tomu predesli, napiseme (po vynechani hesla) zbyvajici pismena do nekolika radek a vysledne abecede je pak pridelime po sloupcich. ╘  T O M A S V N I C E K
  B D F G H J K L P Q R
  U V W Z
 ┌────┬────┐
 │  A │ T  │
 │  B │ B  │
 │  C │ U  │
 │  D │ O  │
 │  E │ D  │
 │  F │ V  │
 │  G │ M  │
 │  H │ F  │
 │  I │ W  │
 │  J │ A  │
 │  K │ G  │
 │  L │ Z  │
 │  M │ S  │
 │  N │ H  │
 │  O │ V  │
 │  P │ J  │
 │  Q │ N  │
 │  R │ K  │
 │  S │ I  │
 │  T │ L  │
 │  U │ C  │
 │  V │ P  │
 │  W │ E  │
 │  X │ Q  │
 │  Y │ K  │
 │  Z │ R  │
 └────┴────┘
 viz Dalsi poznamky k monoalfabetickym sifram
(
 Obecny system polyalfabetickych sifer
;Klicem je posloupnost (konecna nebo nekonecna) monoalfabetickych kryptografickych transformaci T1,T2, ..., Tn, nebo T1,T2,... . Pro zasifrovani i-te znaku se oak pouzije i-ta kryptograficka transformace (v pripade konecne posloupnosti klicovych kryptografickych transformaci delky n pak i mod n - ta transformace). 
 System vigenerovskych sifer
▒Je specielni pripad polyalfabetickych sifer. Tvori ho konecne posloupnosti Cezarovskych transformaci. Klicem je posloupnost cisel (k1,k2,...,kn), kde ki jsou klice jednotlivych Cezarovskych transformaci a tedy C(xi) = xi + Ki mod N. Klice Ki si lze zapamatovat pomoci hesla. Napriklad pri pouziti hesla AHOJ (1,8,15,10) se slovo TOMAS zasifruje jako UWBKT. Praktickou pomukou pro relizaci takovych sifer je tzv. vignerovsky ctverec. ,
 zpet Prehled temat z kodovani a sifrovani
Dc
(=╒
'
T ╔════════════════════════╗
 ║ Zaklady kryptoanalyzy  ║
 ╚════════════════════════╝
╕Zakladni ulohou kryptoanalyzy je odhaleni inverzniho zobrazeni ke kryptograficke transofrmaci, tedy k zobrazeni Tk n-tic prvku okruhu Zm do sebe. Existuje tri zakladni typy teto ulohy 
 Ciphertext only attack
aDesifrovani na zaklade znalosti zasifrovaneho textu --- to je nejklasictejsi uloha kryptoanalyzy 
 Known plaintext attack
╗Desifrovani s castecnou znalosti primeho textu (a uplnou znalosti textu zasifrovaneho). Protivnik ma k dispozici nejakym zpusobem ziskane nektere prime texty a veskere texty zasifrovane. 
 Chosen plaintext attack
■Desifrovani s neomezenou znalosti zasifrovaneho textu. Protivnik ma k dispozici libovolny jim zvoleny primy text a jeho zasifrovanou verzi. Napriklad spravce systemu muze vyrobit libovolneho uzivatele a jeho heslo prohlizet v prime i zasifrovane podobe. (
 Kryptoanalyza monoalfabetickych sifer
ΣMetody kryptoanalyzy monoalfabetickych sifer jsou v zasade statisticke. Pro ruzne jazyky existuji tabulky udavajici pravdepodobnost vyskytu jednotlivych znaku. Napriklad pro ceskou abecedu s mezerou vypada takova tabulka takto: ╗ ┌───────┬─────────┐
 │ A     │  5.4%   │
 │ A     │  2.1%   │ (dlouhe A)
 │ B     │  1.4%   │
 │ C     │  1.9%   │
 │ C     │  0.8%   │ (s hackem)
 │ D     │  2.6%   │
 │ D     │  0.5%   │ (s hackem)
 │ E     │  7.3%   │
 │ E     │  1.0%   │
 │ E     │  0.7%   │
 │ F     │  0.2%   │
 │ G     │  0.2%   │
 │ H     │  2.0%   │
 │ I     │  3.4%   │
 │ I     │  2.5%   │
 │ J     │  2.2%   │
 │ K     │  3.3%   │
 │ L     │  3.4%   │
 │ M     │  2.9%   │
 │ N     │  4.0%   │
 │ N     │  1.5%   │
 │ O     │  6.8%   │
 │ P     │  2.7%   │
 │ Q     │  0.0%   │ (po zaokrouhleni )
 │ R     │  2.9%   │
 │ R     │  0.9%   │
 │ S     │  4.0%   │
 │ S     │  0.8%   │
 │ T     │  3.9%   │
 │ T     │  0.7%   │
 │ U     │  3.0%   │
 │ U,    │  U 0.5% │ (s krouzkem, carkou)
 │ V     │  3.9%   │
 │ W     │  0.0%   │
 │ X     │  0.1%   │
 │ Y     │  1.6%   │
 │ Y     │  0.8%   │
 │ Z     │  1.9%   │
 │ Z     │  0.9%   │
 │ mezera│ 16.3%   │
 └───────┴─────────┘
░
Tato tabulka byla ovsem ziskana analyzou velkeho mnozstvi ceskych textu ruzneho charakteru. V textech nejakym smerem zamerenym lze ocekavat vyssi frekvenci nekterych slov a tim padem mirne jine rozlozeni frekvence jednotlivych znaku. Ani u monoalfabeticke sifry tedy nelze postupovat prostym prirazenim ekvivalentu zasifrovanym znakum. Dalsim krokem muze byt pouziti tabulky vyskytu dvojic, ci trojic za sebou nasledujicich znaku. B
 viz Index koincidence
     Prehled temat z kodovani a sifrovani
B≡	=
'H ╔════════════════════╗
 ║ Index koincidence  ║
 ╚════════════════════╝
ìIndex koincidence je hodnota, ktera muze pomoci rozhodnout, zda byla pro zasifrovani textu pouzita monoalfabeticka ci polyalfabeticka sifra. Æ
Index koincidence pro dany jazyk je roven sume p(c)^2 pres vsechny znaky c dane abecedy. Pritom p(c) je pravdepodobnost vyskytu znaku c v textu. 

 Pozorovani
TNecht n je velikost nejake abecedy a I index koincidence jazyka nad touto abecedou. ä Plati I-1/n = suma p(c)^2 - 1/n =
             = suma (p(c)^2 - 1/n^2) =
             = suma (p(c) - 1/n)^2,
 nebot suma p(c) = 0.
y
 Plati tedy
 I >= 1/n
 1/n je stredni hodnota nahodne veliciny p(c)
 I-1/n je smerodatna odchylka nahodne veliciny p(c)
!
 viz Tabulka indexu koincidence

 Jak vyuzit index koincidence

Je-li text zasifrovan monoalfabetickou sifrou, mel by se jeho index koincidence blizit indexu koincidence jazyka, ve kterem byl napsan. Je-li text zasifrovan polyalfabetickou sifrou, bude se jeho index koincidence blizit indexu koincidence nahodne generovaneho jazyka. -
  zpet Prehled temat z kodovani a sifrovani
C╠=+'rTabulka indexu koincidence pro nektere jazyky prevedene do anglicke abecedy (26 znaku ABCDEFGHIJKLMNOPQRSTUVWXYZ) v ┌─────────────────────────────────────────┐
 │ nahodne generovana slova 1/26 = 0.03846 │
 ├───────────────────────────────┬─────────┤
 │ cestina/slovenstina           │ 0.06027 │
 │ anglictina                    │ 0.06689 │
 │ danstina                      │ 0.07073 │
 │ finstina                      │ 0.07380 │
 │ francouzstina                 │ 0.07460 │
 │ holandstina                   │ 0.07981 │
 │ nemcina                       │ 0.07667 │
 │ italstina                     │ 0.07329 │
 │ rustina                       │ 0.05607 │
 │ spanelstina                   │ 0.07661 │
 └───────────────────────────────┴─────────┘
¥
Pro ruzne jazyky existuji tabulky udavajici pravdepodobnost vyskytu jednotlivych znaku. Napriklad pro ceskou abecedu s mezerou vypada takova tabulka takto: ╤ ┌───────┬─────────┐
 │ A     │  5.4%   │
 │ A     │  2.1%   │ (dlouhe A)
 │ B     │  1.4%   │
 │ C     │  1.9%   │
 │ C     │  0.8%   │ (s hackem)
 │ D     │  2.6%   │
 │ D     │  0.5%   │ (s hackem)
 │ E     │  7.3%   │
 │ E     │  1.0%   │ (dlouhe E)
 │ E     │  0.7%   │ (s hackem)
 │ F     │  0.2%   │
 │ G     │  0.2%   │
 │ H     │  2.0%   │
 │ I     │  3.4%   │
 │ I     │  2.5%   │
 │ J     │  2.2%   │
 │ K     │  3.3%   │
 │ L     │  3.4%   │
 │ M     │  2.9%   │
 │ N     │  4.0%   │
 │ N     │  1.5%   │
 │ O     │  6.8%   │
 │ P     │  2.7%   │
 │ Q     │  0.0%   │ (po zaokrouhleni )
 │ R     │  2.9%   │
 │ R     │  0.9%   │
 │ S     │  4.0%   │
 │ S     │  0.8%   │
 │ T     │  3.9%   │
 │ T     │  0.7%   │
 │ U     │  3.0%   │
 │ U,    │  U 0.5% │ (s krouzkem, carkou)
 │ V     │  3.9%   │
 │ W     │  0.0%   │
 │ X     │  0.1%   │
 │ Y     │  1.6%   │
 │ Y     │  0.8%   │
 │ Z     │  1.9%   │
 │ Z     │  0.9%   │
 │ mezera│ 16.3%   │
 └───────┴─────────┘
]
Tato tabulka byla ovsem ziskana analyzou velkeho mnozstvi ceskych textu ruzneho charakteru. '
 Prehled temat z kodovani a sifrovani
=╞'è ╔══════════════════════════════════════════╗
 ║ Dalsi poznamky k monoalfabetickym sifram ║
 ╚══════════════════════════════════════════╝

Multiplikativni sifry patri do skupiny monoalfabetickych a afinnich sifer. Multiplikativni sifra s klicem a pro abecedu s N znaky ma tvar Ck(n) = a*n modulo N. Aby se jednalo o kryptografickou transformaci (proste zobrazeni mnoziny Zn do sebe, musi byt cisla a a N nesoudelna (viz Zakladni poznatky teorie cisel ). Pokud pracuji s anglickou telegrafni abecedou (26 znaku), je moznych 12 klicu (1,3,5,7,9,11,15,17,19,21,23,25). Pro anglickou telegrafni abecedu s mezerou (27 znaku) je k dispozici 18 klicu (1,2,4,5,7,8,10,11,13,14,16,17,19,20,22,23,25,26). Kombinaci multiplikativni a cezarovske sifry lze dostat obecnou Afinni sifru . Pro desifrovani multiplikativnich i afinnich sifer lze pouzit obecne statisticke metody pro kryptoanalyzu monoalfabetickych sifer . 
 Bayesovske desifrovani
7Bayesovske (statisticke) metody desifrovani lze pouzit pro kryptoanalyzu textu zasifrovanych monoalfabetickou sifrou (to lze zjistit pomoci indexu koincidence ) s omezenou, pokud mozno malou mnozinou moznych klicu. Prikladem mohou byt Cezarovske sifry (26 klicu), ci multiplikativni sifry (12, resp. 18 klicu). ¥
Definujeme funkci dvou promennych -- klic k a delka zkoumaneho textu n. Hodnotou funkce je pravdepodobnost shody teoretickeho rozlozeni pravdepodobnosti jednotlivych pismen v textu pro dany jazyk a jejich skutecneho vyskytu v danem useku textu. S rostoucim n se vsechny hodnoty blizi k 0, pouze hodnota pro skutecne pouzity klic k k 1. Pro desifrovani Cezarovskych sifer je potreba pouzit n zhruba mezi 10 a 20. i
 viz Pouziti metody Seperace samohlasek
     pri desifrovani.
     Prehled temat z kodovani a sifrovani
Eì=╠'N ╔══════════════════════╗
 ║ Separace samohlasek  ║
 ╚══════════════════════╝
Metodu separace samohlasek je mozne pouzit pro monoalfabeticke sifry pred jejich dalsim statistickym vyhodnocenim. Metoda je zalozena na faktu, ze v beznych jazycich maji samohlasky tendenci sousedit se souhlaskami a naopak. Priklad pouziti separace samohlasek. Mejme nasledujici text: 6
 Zemrela matka a do hrobu dana siroty po ni zustaly.
,
Zasifrovany Cezarovskou sifrou k klicem 2: 6
 bgotgnc ocvmc c fq jtqdw fcpc uktqva rq pk bwuvcna.
|
Nasledujici tabulka udava pocet vyskytu jednotlivych pismen v zasifrovanem textu a pocet jejich nasledovniku a predchudcu. { ┌─┬───┬──────────────────────────────────┬──────────────────────────────────┐
 │ │poc│predchudci                        │nasledovnici                      │
 │a│ 2 │n(1) v(1)                         │r(1)                              │
 │b│ 2 │k(1)                              │g(1) w(1)                         │
 │c│ 7 │c(1) f(1) m(1) n(1) o(1) p(1) v(1)│c(1) f(1) o(1) n(1) p(1) u(1) v(1)│
 │d│ 1 │q(1)                              │w(1)                              │
 │f│ 2 │c(1) w(1)                         │c(1) q(1)                         │
 │g│ 2 │b(1) t(1)                         │n(1) o(1)                         │
 │j│ 1 │q(1)                              │t(1)                              │
 │k│ 2 │p(1) u(1)                         │b(1) t(1)                         │
 │m│ 1 │v(1)                              │c(1)                              │
 │n│ 2 │c(1) g(1)                         │a(1) c(1)                         │
 │o│ 2 │c(1) g(1)                         │c(1) t(1)                         │
 │p│ 2 │c(1) q(1)                         │c(1) k(1)                         │
 │q│ 4 │t(2) f(1) r(1)                    │d(1) j(1) p(1) v(1)               │
 │r│ 1 │a(1)                              │q(1)                              │
 │t│ 3 │j(1) k(1) o(1)                    │g(1) q(1)                         │
 │u│ 2 │c(1) w(1)                         │k(1) v(1)                         │
 │v│ 3 │c(1) q(1) u(1)                    │a(1) c(1) m(1)                    │
 │w│ 2 │b(1) d(1)                         │f(1) u(1)                         │
 └─┴───┴──────────────────────────────────┴──────────────────────────────────┘
╬
Do mnoziny A (mnozina potencionalnich souhlasek) vlozime nektere pismeno s nejmensim pocet vyskytu - napriklad D. Jeho leve sousedy vlozime do seznamu L, prave sousedy do seznamu P. V seznamech L a P povedeme i evidenici o poctech vyskytu pismen jako le ych a pravych sousedu. Dale vezmeme dalsi pismena podle poctu vyskytu. Pokud se pismeno vyskytuje v nekterem seznamu L nebo P, zaradime jej do mnoziny B (nerozhodnuta pismena) a pokracujeme dale. Pokud pismeno neni seznamu L ani P, zaradime jej do mnozi y a a zpracujeme jeho sousedy. Takto postupujeme az do vycerpani vsech pismen. Nasledujici tabulka udava postup algoritmu ve vyse uvedenem priklade. zpracovavany znak  mnozina A  mnozina B  seznam L  seznam P { ┌─────────────────────────┬────────────────────────┬────────────────────────┐
 │    mnozina A   mnoz. B  │seznam L                │seznam P                │
 │ D  D           --       │Q1                      │W1                      │
 │ J  DJ          --       │Q(2)                    │T1 W1                   │
 │ M  DJM         --       │Q2 V1                   │C1 T1 W1                │
 │ R  DJMR        --       │Q2 A1 V1                │C1 Q1 T1 W1             │
 │ A  ADJMR       --       │Q2 V2 A1 N1             │C1 Q1 R1 T1 W1          │
 │ B  ABDJMR      --       │Q2 V2 A1 K1 N1          │C1 G1 Q1 R1 T1 W1       │
 │ F  ABDFJMR     --       │Q2 V2 A1 C1 K1 N1 W1    │C2 Q2 G1 R1 T1 W1       │
 │ G  ABDFJMR     G        │Q2 V2 A1 C1 K1 N1 W1    │C2 Q2 G1 R1 T1 W1       │
 │ K  ABDFJMR     GK       │Q2 V2 A1 C1 K1 N1 W1    │C2 Q2 G1 R1 T1 W1       │
 │ N  ABDFJMR     GKN      │Q2 V2 A1 C1 K1 N1 W1    │C2 Q2 G1 R1 T1 W1       │
 │ O  ABDFJMOR    GKN      │Q2 V2 C2 A1 G1 K1 N1 W1 │C3 T2 Q2 G1 R1 W1       │
 │ P  ABDFJMOPR   GKN      │C3 Q3 V2 A1 G1 K1 N1 W1 │C4 T2 Q2 G1 K1 R1 W1    │
 │ U  ABDFJMOPRU  GKN      │C4 Q3 V2 W2 A1 G1 K1 N1 │C4 K2 T2 Q2 G1 R1 V2 W1 │
 │ W  ABDFJMOPRU  GKNW     │C4 Q3 V2 W2 A1 G1 K1 N1 │C4 K2 T2 Q2 G1 R1 V2 W1 │
 │ T  ABDFJMOPRU  GKNTW    │C4 Q3 V2 W2 A1 G1 K1 N1 │C4 K2 T2 Q2 G1 R1 V2 W1 │
 │ V  ABDFJMOPRU  GKNTVW   │C4 Q3 V2 W2 A1 G1 K1 N1 │C4 K2 T2 Q2 G1 R1 V2 W1 │
 │ Q  ABDFJMOPRU  GKNQTVW  │C4 Q3 V2 W2 A1 G1 K1 N1 │C4 K2 T2 Q2 G1 R1 V2 W1 │
 │ C  ABDFJMOPRU  CGKNQTVW │C4 Q3 V2 W2 A1 G1 K1 N1 │C4 K2 T2 Q2 G1 R1 V2 W1 │
 └─────────────────────────┴────────────────────────┴────────────────────────┘
ìPismena v mnozine A budou s nejvetsi pravdepodobnosti souhlasky. V nasem pripade to jsou pismena ABDFJMOPRU, tedy po desifrovani YZBDHKMNPS. B
Z pismen v mnozine B vybereme ta, ktera se nejcasteji vyskytuji v seznamech L a P. V nasem pripade je pocet vyskytu v seznamech nasledujici C(8) Q(5) K(3) T(2) V(2) G(2) N(1) W(1). S velkou pravdepodobnosti tedy budou pismena CQK (tj. AOI) samohlasky a totez lze s mensi pravdepodobnosti ocekavat u pismen TVG (tj. RTE). s
Algoritmus se v uvedenem priklade dopustil nekolika chyb, coz je dano kratkym usekem textu, ktery byl analyzovan. 

 Polygraficka sifra
dPolygraficka sifra je monoalfabetickou sifrou nad abecedou n-tic pismen bezne abecedy. Kazdemu useku n po sobe nasledujicich pismen je tedy urcitym zpusobem (tabulkou, algoritmem) prirazen stejne dlouhy usek zasifrovaneho textu. Nevyhodou obecne polygraficke sifry je velka narocnost na velikost kodove tabulky (pro n=2 je potreba 26*26=676 poli tabulky). 
 Obecna Hillovska sifra
AObecna Hillovska sifra je specielnim pripadem polygraficke sifry. Klicem je regularni matice A velikosti nxn nad telesem Zn. Sifra je dana predpisem CA(x1..xn) = A.(x1..xn). Pokud je matice A regularni, existuje k ni inverzni matice A'. Desifrovani je pak provedeno vynasobenim zasifrovaneho textu touto inverzni matici. *
 Involutorni kryptograficke transformace
ÇInvolutorni kryptograficka transformace je Hillovska sifra, prokterou plati A=A'. Tedy zasifrovani i desifrovani se deje pomoci prenasobeni stejnou matici A. Diky tomu odpada vypocet inverzni matice. Matice involutorni transformace musi splnovat rovnost A=A' a tedy jeji determinant musi byt roven 1, nebo -1 (v telese Zn). Pro abecedu s 26 znaky existuje 7 involutornich matic: 1  0 h 0    1
 1    0
 13   1
 1   13
 0    1
 14  13
 13  14
 25   0
 0   25
 25  13
 0   25
 25   0
 13  25
I
Pro abecedu s 27 znaky (anglicka abeceda s mezerou) pouhe 2 matice 1  0  0   1
 26  0
 0   26
w
Pritom prvni z uvedenych matic vzdy reprezentuje identickou kryptografickou transformaci (text neni nijak zasifrovan) -
  zpet Prehled temat z kodovani a sifrovani
=['╝ ╔═══════════════════════════════════════╗
 ║ Kryptoanalyza polyalfabetickych sifer ║
 ╚═══════════════════════════════════════╝
 Kryptoanalyza polyalfabetickych sifer
 Vignerovskeho typu
╤
Polyalfabeticke sifry Vignerovskeho typu jsou sifry s dekou klice a radove mensi nez je delka zpravy. Jedna se tedy o posloupnost konecne mnoha monoalfabetickych sifer. Prvnim ukolem je nalezeni delky klice. U
 Zjisteni delky klice Kasiskeho metodou │
 ───────────────────────────────────────┘
^Kasiskeho metoda je zalozena na myslence, ze delsi skupiny pismen se v zasifrovanem textu budou objevovat s periodou, ktera je nasobkem delky klice. Vypiseme tedy vsechny skupiny pismen delky alespon 3, ktere se v zasifrovanem textu opakuji, zjistime vzdalenost mezi jejich dvema vyskyty a pak najdeme nejmensiho spolecneho delitele techto vzdalenosti. Zjistovani nejvetsiho spolecneho delitele je treba brat statisticky, nebot kazda opakujici se skupina znaku v zasifrovanem textu jeste nemusi vzniknout ze stejne skupiny znaku v textu puvodnim. Vetsi vahu pritom maji delsi skupiny opakujicich se znaku. 1
  Metoda koincidence  │
  ────────────────────┘
₧Pravdepodobnost, ze ve dvou ruznych textech se na jednom miste objevi stejny znak je rovna sume pres vsechny znaky c abecedy p^2(c), kde p(c) je pravdepodobnost vyskytu znaku c v textu psanem v danem jazyce. Je to tedy index koincidence, ktery ma pro bezne jazyky hodnotu mezi 0.06 a 0.08. Budou-li oba dva texty zasifrovane stejnou monoalfabetickou sifrou, zustane tato pravdepodobnost blizka indexu koincidence. ¡
Naopak pro dva texty zasifrovane ruznymi monoalfabetickymi siframi je tato pravdepodobnost blizka cislu 1/N, kde N je pocet znku abecedy. Pro N=26 dostaneme hodnotu 0.038. P
Vezmeme zasifrovany text a posuneme ho vzdy o 1,2,3,... pismen vpravo. Pro takto posunuty a puvodni text spocitame podil znaku, ktere jsou v obou textech na stejnem miste. Pokud byl text posunut o nasobek periody klice, mel by byt tento podil blizky indexu koincidence daneho jazyka, v ostatnich pripadech bymel byt blizky podilu 1/N. '
  Metoda pokusu  │
  ───────────────┘
Tato metoda slouzi spise pro potvrzeni hypotezy o spraanosti odhadnute delky klice. Pokud jsme (napriklad jednou z vyse uvedenych metod) si vytvorili hypotezu, ze delka klice je m, rozdelime text na m casti tak, ze beru vzdy kazde m-te pismeno. Kazda tato cast pak sice nedava smyslupny text, je ale zasifrovana monoalfabetickou sifrou a podil vyskytu jednotlivych pismen by mel byt podobny jako v celem textu. Spocitame index koincidence pro vsechny tyto casti. Hodnota by se mela blizit teoreticke hodnote indexu koincidence pro dany jazyk. '
  Zjisteni klice │
  ───────────────┘
₧Pokud je zprava zasifrovana klasuckou Vignerovskou sifrou (tedy posloupnosti konecne mnoha Cezarovskych sifer, lze pro zjisteni klice pouzit nasledujici postup: Nejprve se pokusim odhadnout delku klice m nekterou z predchazejicich metod. Pote zpavu rozdelim na m casti jako u metody pokusu. V kazde teto casti najdu posloupnost nekolika (rekneme 10ti) nejcasteji se vyskytujicich pismen. Lze predpokladat, ze 4 nejcasteji se vyskytujici pismena (samohlasky E,A,I,O) budou mit vzory mezi temito deseti pismeny. Odectenim techto 4 samohlasek od nejcasteji se vyskytujicich 10ti pismen dostanu 4 desetice potencionalnich klicu. Pokud se nejake pismeno vyskytuje mezi vsemi J 4mi deseticemi, bude to z nejvetsi pravdepodobnosti prvni pismeno klice.
û
Podobny postup pouziji i pro dalsich m-1 casti textu. Nektere znaky klice lze tez odvodit uvahou --- klic bude pravdepodobne smysluplne ceske slovo. >
 Priklad (podle knihy S.Porubsky Sifrovanie)
 Zdrojovy text:
>Jednou z fundamentalnych uloh kryptoanalytika po obdrzani zasifrovaneho textu je rozhodnut, aky typ sifry bol pouzity. Jedno z dolezitych uvodnych rozhodnuti je posudenie ci bola pouzita monoalfabeticka alebo polyalfabeticka kryptograficka transformacia. V predchazajucej casti sme sa venovali monoalfabetickym sifram 8
byl zasifrovan Vignerovskou sifrou pomoci hesla KNIHA. 
 Zasifrovany text:
Otrluo emnbn nnuln dntuy musco rxzfp dbiua vlbpk kcwvb nehhn smizi pewca xrpvt okbbj oewgh yqvbt kxgay zfqmr iowsp yhhpt iwmkn ymlvl omqay mucco nagjh bbhoo nacai trxvs eqmui opqio vnxvu jvbhm yawhl pnjlt spsha vrjvp yyghl pnjlt spshk blxao qeimi mxiar ka amo bziji kixye npphd jnrbc owkhs dvate cndln yiisi wbvva vsiie dvkry wfqmr kz. c
 Pomoci Kasiskeho testu najdeme tyto opakujici se skupiny pismen:
 ┌────────────┬───────┬─────────┬─────────────┐
 │ pismena    │ delka │1. vyskyt│ vzdalenost  │
 │ hlpnjltspsh│ 11    │ 163     │   20        │
 │ ymuc       │ 4     │ 19      │   95        │
 │ fqmr       │ 4     │ 87      │  185        │
 └────────────┴───────┴─────────┴─────────────┘
`
Nejvetsi spolecny delitel uvedenych vzdalenosti je 5, mame tedy hypotezu, ze delka klice je 5. 
Metoda koincidence nam da nasledujici hodnoty: posun 5  10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 podil vyskytu stejnych pismen 0.022 0.071  0.064  0.089  0.039  0.056  0.049  0.037  0.047  0.035  0.045 0.064  0.056  0.058  0.049  0.056  0.057  0.064  0.071 ñ
Tyto hodnoty jsou viditelne vyssi, nez je podil 1/N=0.03846 a blizi se indexu koincidence slovenstiny 0.06027. Hypoteza o delce klice 5 je tedy podruhe potvrzena. ±
Po rozdeleni textu na 5 casti dostanu nasledujici indexy koincidence: 0.054 0.051 0.049 0.062 0.050. Tato cisla se sice uplne neblizi indexu koincidence slovenstiny, jsou ale vyrazne vyssi nez index koincidence nahodne generovaneho jazyka. :
V prvni casti zasifrovaneho textu najdu 10 nejcastejsich znaku. Jsou to znaky yknodvbmps . Po odecteni samohlasek E,A,I,O dostanu nasledujici desetice ugjkzrxilo, yknodvbmps, qcfgvntehk, kwzaphnybe . Spolecnym znakem v techto 4 deseticich je pismeno K. Muzeme tedy vytvorit hypotezu, ze prvnim znakem klice je K. π
Podobne zjistime v druhe casti spolecne pismeno N a v pate casti spolecne pismeno A. V treti a ctvrte casti zadne spolecne pismeno pro vsechny 4 desetice neexistuje, pismena I,C,T, resp. H,M se vsak vyskytuji ve 3 deseticich. ╣
Heslo tedy pravdepodobne zni KN(ICT)(HM)A. Jelikoz heslo je pravdepodobne tvoreno srozumitelnym slovenskym slovem, bude znit KNIHA. Desifrovanim textu potvrdime spravnost teto teorie. ,
 zpet Prehled temat z kodovani a sifrovani
@ä=c'u ╔══════════════════════════╗
 ║ Zaklady teorie kodovani  ║
 ╚══════════════════════════╝
 Uzivatelska definice kodu
₧Kodovanim zpravy rozumime jeji zmenu, ktera obvykle zpravu prodlouzi a zajisti jeji prenos bezpecnejsim zpusobem (oproti naruseni vnejsimi vlivy - sum atp.). 
 Obecne schema prenosu zpravy
Yzdroj zpravy -> kodovani -> vysilac -> sum -> prijimac -> dekodovani -> prijemce zpravy. 
 Algerbraicka definice kodu
OPro jednoduchost budeme uvazovat kody nad dvouprvkovou abecedou 0,1. Podobne definice a uvahy se daji provadet pro libovolnou abecedu, nad jejimiz prvky lze definovat operace nasobeni a scitani tak, aby vysledna struktura tvorila teleso. Netrivialni algerbaicky vysledek rika, ze takova abeceda musi mit p^n prvku, kde p je prvocislo. 
 Blokovy kod
TBlokovym kodem stupne n nazveme libovolnou mnozinu n-tic prvku vstupni abecedy 0,1. 
 Linearni kod
WLinearnim (n,k)-kodem nazveme linearni podprostor K dimenze k prostoru (0,1)^n. Prvky tohoto prostoru chapeme jako "povolena" kodova slova (je jich 2^k). Kazde toto slovo je posloupnost n nul a jednicek. Ukolem dekoderu je pro libovolny prvek prostoru (0,1)^n predstavujici zasumene prijate slovo najit nejblizsi prvek kodoveho podprostoru K. 
 Prenosovy pomer
║je pomer delky nezakodovane zpravy a zpravy zakodovane. U linearnich (n-k)-kodu je na zakodovani informace delky k potreba vyslat posloupnost n znaku a prenosovy pomer kodu je tedy k/n. 
 Vaha kodu
^Vaha slova je pocet jeho nenulovych slozek. Vaha kodu je minimalni vaha jeho nenulovych slov. 
 Hammingova vzdalenost
àHammingovou vzdalenosti dvou slov u a v rozumime vahu slova u-v, tedy pocet mist, na kterych se slova u a v lisi. Hammingova vzdalenost splnuje axiomy metriky. Uloha dekodovani zni nalezt pro dane slovo u z (0,1)^n prvek v z kodoveho podprostoru K, ktery ma od u nejmensi Hammingovu vzdalenost. Pokud je takovy prvek urcen jednoznacne, rikame, ze chyba vznikla pri prenosu je opravitelna. 
 Opravovani chyb
╘Rikame, ze linearni kod je schopen opravovat t chyb, pokud pro kazdy prvek prostoru u (0,1)^n, ktery ma od nejakeho kodoveho slova v kodu K Hammingovu vzdalenost mensi nebo rovnu t, neexistuje jine kodove slovo v' z K, ktere by od u melo Hammingovu vzdalenost tez mensi nebo rovnu t. Jinymi slovy, dekodovani slov, u kterych doslo pri prenosu k maximalne t chybam je jednoznacne. Plati, ze pokud je d vaha kodu K a t<2d, pak kod K je schopen opravovat alespon t chyb. 
 Generujici matice
┌Necht K je (n,k)-linearni kod. u1, u2, ..., uk je libovolna baze tohoto kodu. Pak matice A velikosti n krat k, kde jsou v jednotlivych radcich pod sebou napsany vektory u1,u2, ..., un se nazyvy generujici matice kodu. 
 Proverkova matice
╣Necht K je (n,k)-linearni kod. Matice B velikosti (n-k,n) takova, ze jeji radky jsou linearne nezavisle a ze pro kazde kodove slovo v z K plati Bv=0 se nazyva proverkova matice kodu K. 

 Syndrom
╘Necht K je (n,k)-linearni kod, B jeho proverkova matice a u libovolne slovo z (0,1)^n. Slovo B.u (jeho delka je n-k) se nazyva syndrom slova u pro kod K. Slova s nulovym syndromem jsou prave kodova slova kodu K. 

 Dualni kod
°Necht K je (n,k)-linearni kod, A jeho generujici matice a B jeho proverkova matice. Kod K', ktery ma B za generujici matici a A za proverkovou matici se nazyva dualni kod ke kodu K. Jedna se skutecne o dualitu, dualni kod ke kodu K' je opet kod K. W
 viz Priklady nekolika kodu
     Dekodovani
     Prehled temat z kodovani a sifrovani
H
I9
=Y
'n ╔═════════════════════════╗
 ║ Priklady nekolika kodu  ║
 ╚═════════════════════════╝
 Opakovaci binarni kod
ÑOpakovaci kod radu 3 ma obsahuje slova (0,0,0) a (1,1,1). Je to (3,1)-linearni kod. Jeho generujici matice je velikosti 3x1 1 1 1 proverkova matice je velikosti 3x2  1 0 1
 1 1 0
HVaha kodu je 3, kod je schopen opravovat 1 chybu. Kapacita kodu je 1/3. à
Opakovaci kod radu 5 ma obsahuje slova (0,0,0,0,0) a (1,1,1,1,1). Je to (5,1)-linearni kod. Jeho generujici matice je velikosti 5x1  1 1 1 1 1
lproverkova matice je velikosti 5x4. Vaha kodu je 5, kod je schopen opravovat 2 chyby. Kapacita kodu je 1/5. 
 Dalsi priklad
)Priklad (6,3)-kodu. Generujici matice je ' 1 1 1 0 0 0
 1 0 0 1 1 0
 0 1 0 1 0 1

Proverkova matice je ' 1 1 0 1 0 0
 1 0 1 0 1 0
 0 1 1 0 0 1
ƒ
Vaha kodu je 3, kod opravuje jednu chybu, prenosovy pomer je 1/2. Dualni kod ma stejne vlastnosti ((6,3)-kod, vaha 3, opravuje 1 chybu, prenosovy pomer 1/2). 
 Hammingovy kody
Hamminguv kd radu n je (2^n-1,2^n-n-1) kod, jehoz proverkova matice vznikne tak, ze se do sloupcu napisou nenulove vektory delky n. Takovych vektoru je 2^n-1, proverkova metice ma tedy n radku a 2^n-1 sloupcu. Generujici matice ma 2^n-1 sloupcu a 2^n-1-n radku. r
Hammingovy kody maji vahu 3 a opravuji 1 chybu (bez dukazu - plyne to z obecnych algebraickych vet). Jejich prenosovy pomer je rovna (2^n-1-n)/2^n-1 a se zvysujicim n se tedy zvysuje k 1. Timto zpusobem je tedy mozne sestrojit kod s libovolnym prenosovym pomerem (mensi nez 1), ktery opravuje 1 chybu. Ovsem za cenu velmi sloziteho kodovani a dekodovani pri vysokem n. /
Hamminguv kod radu 2 je opakovaci kod radu 3. :
Hamminguv kod radu 3 ma proverkovou matici velikosti 7x3 d ┌────────────────┐
 │ 1 1 1 0  1 0 0 │
 │ 1 1 0 1  0 1 0 │
 │ 1 0 1 1  0 0 1 │
 └────────────────┘
.Generujici matice je velikosti 7x4, napriklad x ┌────────────────┐
 │ 1 1 0 0  0 0 1 │
 │ 1 0 1 0  0 1 0 │
 │ 1 0 0 1  1 0 0 │
 │ 0 1 1 1  0 0 0 │
 └────────────────┘
M
Je to (7,4)-kod, ktery ma vahu 3, opravuje 1 chybu a ma prenosovy pomer 4/7 =
  viz Dekodovani
      Prehled temat z kodovani a sifrovani
I≤
='!0 ╔════════════╗
 ║ Dekodovani ║
 ╚════════════╝
-
  Nulovy algoritmus │
  ──────────────────┘
▓Nulovy algoritmus lze obecne pouzit pro jakykoliv linearni kod, u ktereho zname jeho proverkovou matici B. Predpokladejme, ze bylo prijato slovo u z (0,1)^n. Spocitame soucin Bu. Pokud je tento soucin roven 0, bylo u primo kodove slovo a muze hat beze zmeny. V opacnem pripade doslo pri prenosu k chybe a slovo bude nechano jako nedekodovatelne. Nulovy algoritmus pouze upozorni na (nektere) chyby pri prenosu, ale sam je neopravuje. 
  Parita │
  ───────┘
DPrikladem vyhodneho pouziti nuloveho algoritmu je paritni kodovani. H
Proverkova matice tohoto kodu ma rozmery n krat 1 a vypada nasledovne: 
 1 1 1 ... 1
\
Generujici matici muze byt napriklad nasledujici matice velikosti n krat n-1 1 0 0 ... 0 1 « ┌─────────────────────────┐
 │  0   1   0  ...  0   1  │
 │  0   0   1  ...  0   1  │
 │ ... ... ... ... ... ... │
 │  0   0   0  ...  1   1  │
 └─────────────────────────┘

Kodova slova jsou prave ta slova delky n, ktera obsahuji sudy pocet jednicek. Paritni kodovani ma tedy vahu 2 a neopravuje zadnou chybu. Pomoci nuloveho algoritmu vsak muze na nektere chyby vznikle pri prenosu upozornit. Prenosovy pomer paritniho kodovani je n-1/n. ┴
V praxi se paritni kodovani snadno realizuje pridanim 1 bitu ke zprave dlouhe n-1 bitu. Tento bit je roven 0 v pripade, ze zprava obsahovala sudy pocet jednicek, v opacnem pripade je roven 1. 
 Dekodovani pomoci syndromu
ûTakzvany vycerpavajici algoritmus funguje nasledovne: Predpokladam, ze znam proverkovou matici B kodu K. Dale mame sestavenou tabulku, ktera pro kazdemu syndrom s prirazuje slovo e z (0,1)^n s minimalni vahou (takove slovo neni bohuzel obecne jednoznacne urceno). Pro prijate slovo u z (0,1)^n spocitame jeho syndrom s = Bu. V tabulce najdeme odpovidajici slovo e k syndromu s a slovo dekodujeme jako u-e. &
u-e musi byt skutecne kodove slovo, nebot jeho syndrom je B(u-e)=Bu-Be=s-s=0. Jelikoz e ma je jedno ze slov se syndromem s minimalni vahu, musi byt u-e mezi kodovymi slovy jedno ze slov s nejmensi Hammingovou vzdalenosti od u. Vektor e lze chapat jako vektor chyb, ke kterym doslo priprenosu. ¢
Pokud kod K opravuje t chyb, budou slova e a u-e urcena jednoznacne, vaha slova e bude maximalne t a Hammingova vzdalenost slov u a u-e bude maximalne t. ≈
Nevyhodou vycerpavajiciho algoritmu je jeho exponencielne narustajici slozitost pro vzrustajici delku kodu n. Pro linearni (n-k) kod totiz existuje 2^(n-k) ruznych syndromu, ktere je potreba mit ulozene v tabulce a tuto tabulku pote prohledavat. /
 Priklad na pouziti vycerpavajiciho algoritmu
ôPouzijeme kod z tohoto prikladu . (6-3)-kod obsahuje 2^3=* kodovych slov a to sice 000000, 100111, 010101, 001011, 110010, 101100, 011110, 111001. ■
Proverkova matice B ma rozmery 6 krat 3 a syndromy slov z (0,1)^6 budou tedy vektory delky 3. Takovych vektoru existuje 8: 000, 001, 010, 011, 100, 101, 110, 111. Vzdy 8 slov z (0,1)^6 ma stejny syndrom. Kod rozpoznava 1 chybu a tudiz mezi temito skupinami vzdy existuje jednoznacne urcene slovo s minimalni vahou. V nasledujici tabulce jsou uvedeny syndromy s, slovo u s minimalni vahou, pro ktere Bu=s a ostatnich 7 slov, pro ktere Bu=s. V prvnim radku jsou slova se syndromem 0, tedy kodova slova. 000 000 Γ
 000 100111 010101 001011 110010 101100 011110 111001
 001 000100 100011 010001 001111 110110 101000 011010 111101
 010 000010 100101 010111 001001 110000 101110 011100 111011
 011 011000 111111 001101 010011 101010 110100 000110 100001
 100 000001 100110 010100 001010 110011 101101 011111 111000
 101 010000 110111 000101 011011 100010 111100 001110 101001
 110 001000 101111 011101 000011 111010 100100 010110 110001
 111 100000 000111 110101 101011 010010 001100 111110 011001
┤
Prijmeme napriklad slovo u=010111. Jeho syndrom Bu=010. V tabulce najdeme odpovidajici chybove slovo e=000010 a urcime puvodne vyslane kodove slovo jako u-e=010111-000010=010101. ç
Z tabulky vidime, ze v nekterych vyjimecnych pripadech je nas kod schopen opravit i dve chyby (pokud syndrom prijateho slova je 011). 
 Dekodovani Hammingovych kodu
≈Predpokladejme, ze proverkova matice Hammingova kodu byla sestavena tak, aby sloupce byly zapisy binarnich cisel pocinaje 1 a konce 2^(n-1) v inverznim tvaru. Takto vypada napriklad proverkova matice Hammingova kodu radu 3 z predchoziho prikladu. 0 1 0 1 0 1 0  1
 0 1 1 0 0 1  1
 0 0 0 1 1 1  1
σ
Doslo-li potom pri prenosu k jedne chybe na i-tem miste, bude syndrom prijateho slova roven i-temu sloupci proverkove matice Hammingova kodu. Teto skutecnosti muzeme vyuzit k rychlemu a efektivnimu dekodovani Hammingovych kodu. ┬
Pro prijate slovo u spocitame jeho syndrom s=Bu. Najdeme v proverkove matici i-ty sloupec, odpovidajici tomuto syndromu. Chybove slovo e pak bude mit na i-tem miste 1 a na ostatnich mistech 0. 
Priklad pro vyse uvedeny Hamminguv kod radu 3. Prijato bylo slovo 1101101. Syndrom tohoto slova je 101. 101 je 5.sloupec proverkove matice B. K chybe pri prenosu tedy doslo na 5.miste slova, chybove slovo e=0000100 a vyslane kodove slovo bylo 1101101-000 
 0100=1101001.

 Cyklicke a BCH kody
Kod K se nazyva cyklicky, pokud s kazdym svym slovem u1u2u3...un obsahuje i jeho cyklicky posuv u2u3...unu1 (a tedy i vsechny ostatni cyklicke posuvy). Cyklicke kody maji urcite pekne vlastnosti, ktere umoznuji jejich dekodovani postupy podobnymi jako u dekodovani Hammingovych kodu. 
BCH kody jsou urcitym konkretnim prikladem cyklickych kodu, ktere se daji snadno sestrojit na zaklade teoretickych algebraickych znalosti o rozkladech polynomu. BCH kody maji limitne prenosovy pomer 1 (stejne jako Hammingovy kody) a mohou opravovat libovolne predem dane mnozstvi chyb. 9
 viz Kodovani
     Prehled temat z kodovani a sifrovani
G2=P': Prace s programem KRYPTIK ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ÆVetsina polozek menu je zpristupnena az po otevreni, nebo vytvoreni souboru. Soubor slouzi jako zdroj dat (zdrojovy text), se kterymi se pracuje. V
Program umi sifrovat a rozsifrovat texty za pouziti dvou zakladnich metod sifrovani: M Afinni sifra
 Vignerovska sifra
 (prislusne funkce lze nalezt v menu Sifry)
╠Je zrejme, ze se jedna o jednoduche metody nevyhovujici pozadavkum dnesni kryptografie. Musime vsak pripomenout, ze tento program byl vytvoren pro studijni ucely a ne pro prakticke pouziti k utajeni dat. &
Pro kryptografickou analyzu textu zasifrovanych vyse zminenymi metodami slouzi menu Analyza. Jednotlive metody prinaseji prostredky k rozsifrovani textu, u ktereho nezname sifrovaci klic (heslo), ale predpokladame, ze byly zasifrovany bud Afinni nebo Vignerovskou sifrou. Metody lze rozdelit: ╤ Obecne metody:
 ■ Index koencidence
 Metody souvisejici s afinni sifrou
 ■ Separace Samohlasek
 Metody souvisejici s vignerovskou sifrou
 ■ Klic-Kasiskeho metoda
 ■ Klic-Metoda koincidence
 ■ Separace Skupin
K
Nektere vlastnosti lze nastavit v menu Nastaveni polozka Obecne Nastaveni $2i
æu«∩#+[	"m'XZ	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ          ! " # $ % & '     ]]Ä╫╫╫╫ü
ü
^'E*╧,(1»2;3└3c4O;<ö<╟>/@wA0C"D"D½H⌡H⌡H⌡H⌡HöQ T`Yù_!`Olßmyotpⁿp║rXs▄s╦wFzû{öüRâ¢âzîÇÅåû
¼Ü├╞Å╤
╒6πÿφ≥ ∙└¢4nBδJ┬a«UªVòWòWòW╨X7^∙^╔gÆj#cTd∞e┐fLg╪c        