„Nikdy se nesměji nejlépe. Bojím se, že by to mohlo být naposledy.“ Jan Werich






Francúzsky spisovateľ Jules Verne žil v rokoch 1828 až 1905 a napísal vyše 60 dobrodružných románov, ktoré si obľúbilo už mnoho generácií nielen mládeže, ale aj dospelých. Verneho knihy sú už vyše sto rokov stále dobre známe, obľúbené, vydávané a čítané, stali sa predmetom zberateľstva, priaznivci jeho románov sa združujú do klubov. Verneho diela sú aj na internete, napríklad:
   https://www.digibooks.sk/show.php?id=233
   http://ld.johanesville.net/verne

Príťažlivej tajomnosti šifrovania a tajných zpráv, ktoré sú detstvu a mladosti vlastné, neodolal ani Jules Verne.
Šifrovanie priamo a veľmi konkrétne použil vo svojich románoch:
   Matej Šándor nový gróf Monte Christo (1885) - je tam mriežková (transpozičná) šifra
   800 míľ po Amazonke čiže Tajomstvo pralesa čiže Jangada (1881) - je tam substitučná šifra.

Verne ukázal spôsoby šifrovania, ktoré boli v jeho dobe známe práve tak, ako aj spôsoby "prelomenia" týchto šifier, ktoré vo svojich románoch tiež ukazuje.
Spôsoby šifrovania aj lúštenia šifier, ktoré Verne popisuje, sú verejne známe vyše 100 rokov, teda nie sú to žiadne tajnosti. Nie je to ani žiadna veda, je to jednoduché, len sa nepomýliť. Pozrime sa, ako Jules Verne šifroval pred vyše sto rokmi, vyskúšajme si to v tejto interaktívnej besede. Stačí nám papier, tužka, a hlavne: rozum do hrsti - a ak to zvládneme, potom môžeme porozmýšľať, ako si to zjednodušiť či zdokonaliť.

Tieto študijné texty a pomôcky sú podporou a doplnkom k interaktívnym besedám "Šifrujeme s Julesom Vernom" vo verejnej knižnici v Trenčíne a v Gymnáziu v Dubnici nad Váhom, v roku 2016.


OBSAH:
   Úvod
   Substitúcia
      Podstata odolnosti substitučného šifrovania
   Transpozícia
   Kľúč
   Charakter zprávy
   Heslo
   Spoľahlivosť a programy
     Konkrétny a praktický príklad šifrovania substitúciou

   POKROČILEJŠIE ŠIFROVANIE
   NÁROČNEJŠIE ŠIFROVANIE
   KOMPLEXNEJŠIE ŠIFROVANIE
   KOMFORTNEJŠIE ŠIFROVANIE
      Odkaz@.html
   PREDLŽOVANIE KĽÚČA
      Kombinovanie kľúčov
      Opakovanie kombinovaných kľúčov
      Voľba dĺžky kombinovaných kľúčov pri ich opakovaní
      Spôsoby výberu kombinovaných kľúčov

   Ako šifroval odboj 1940
   Úvaha


ZOZNAM POMÔCOK: zobraziť zoznam
Programy na šifrovanie:
   Šifra Beaufort (1) - 26 znakov = len medzinárodná abeceda
   Šifra Beaufort (2) - 36 znakov = mezinárodná abeceda + číslice
   Šifra Vigenere - 26 znakov = len medzinárodná abeceda; zašifrovanie a odšifrovanie sa robí každé samostatným postupom
   Šifra Beaufort (3) - s vlastnou sadou znakov (predvolená a...z-0...9)
   Šifra Beaufort (3) s pevnou sadou znakov: a...z_0...9
   Modulárna príprava kľúčov a šifra Beaufort (3) - úprava a kombinácia 3 kľúčov v rôznych moduloch; šifrovanie Beaufort (3) s pevnou sadou znakov: a0b1c2d3e4f5g6h7i8j9k_lmnopqrstuvwxyz
   Komfortnejšia príprava kľúča a šifra Beaufort (3) - výber znakov (z predvoleného (ale pozmeniteľného) reťazca 1.000.000 znakov do Kľúča 1, jeho kombinácia s Kľúčom 2 a s Kľúčom 3; šifrovanie Beaufort (3) s pevnou sadou znakov: ab0cd1ef2gh3ij4kl5mn6op7qr8st9uv_wxyz, jediné okno pre text otvorený aj zašifrovaný
   Odkaz@ - veľmi jednoduchá stránka: zapísať dohodnutý kľúč, stlačiť tlačidlo a čítať rozšifrovaný odkaz
   Kombinácia kľúčov - program len pre prípravu veľmi dlhého výsledného kľúča kombináciou až deviatich základných kľúčov ich spočítaním postupne po jednotlivých písmenách a cyklovaním, k čomu sa samočinne ku každému písmenu výsledného kľúča pripočítavajú všetky(!) predošlé (už vytvorené) písmená výsledného kľúča; šifrovanie tu nie je (na to je vyššie dostatok iných programov), avšak s výhodou sa môže použiť aj na tvorbu dlhých nezapamätateľných hesiel pomocou niekoľkých dobre zapamätateľných slov.
   Šifra Beaufort s mnohorakým kombinovaním až 9 kľúčov = súčet kľúčov s predlžovaním+všetky(!) predošlé písmená -> posun a skok (program JS16); dĺžka konečného kľúča sa samočinne vytvára zhodne s dĺžkou textu.

Programy pomocné:
    Frekvenčná analýza
    Odstránenie diakritiky (slovenskej aj českej)
    Odstránenie diakritiky (Sk+Cz) + interpunkcie + medzier
    Text odzadu

Obrázky:
   Šifrovacia tabuľka so sadou riadkov, v každom tá riadku je tá istá abeceda, len inak posunutá.
   Šifrovacia tabuľka Porta na jednoduchšie, ale menej odolné šifrovanie.
   Pomôcka pre návrh šifrovacej mriežky
   Šifrovacia mriežka - príklad vyhotovenia
   Šifrovací kotúč

Reťazce znakov:
   01 = Chaos z 26 znakov medzinárodnej abecedy - verzia 01 spolu 10.000 znakov
   02 = Chaos z 26 znakov medzinárodnej abecedy - verzia 02 spolu 11.111 znakov
   03 = Chaos z 26 znakov medzinárodnej abecedy - verzia 03 spolu 21.249 znakov
   04 = Chaos z 26 znakov medzinárodnej abecedy - verzia 04 spolu 25.299 znakov
   05 = Chaos z 26 znakov medzinárodnej abecedy - verzia 05 spolu 38.496 znakov
   06 = Chaos z 26 znakov medzinárodnej abecedy - verzia 06 spolu 120.551 znakov
   07 = Chaos z 26 znakov medzinárodnej abecedy - verzia 07 spolu 1 033 312 znakov
   08 = "voda kalná"   chaotický dlhý reťazec nedefinovanej dĺžky (okolo 300.000 znakov)
   09 = Milión znakov medzinárodnej abecedy - verzia 09    chaotický dlhý reťazec, nie sú tam žiadne zdvojené znaky
   10 = "Trigo"     = trigramy organizované = všetky možné trigramy (skupiny troch písmen) znakov medzinárodnej abecedy, usporiadné podľa abecedy! = žiaden chaos, žiadna náhodnosť (počet písmen teda musí byť 3x(26x26x26)x3 = 158.184)
   11 = "voda pramenitá"    reťazec pozostávajúci z troch rôznych za sebou idúcich náhodne usporiadaných postupností všetkých možných trigramov (skupín troch písmen) medzinárodnej abecedy (počet písmen teda musí byť 3x(26x26x26)x3 = 158.184)
   12 = "voda prečistená"    reťazec pozostávajúci z troch rôznych za sebou idúcich náhodne usporiadaných postupností všetkých možných trigramov (skupín troch písmen) medzinárodnej abecedy, z ktorého sú vynechané všetky monotónne trigramy (skupiny troch rovnakých písmen), takže rovnaké písmená sa za sebou vyskytujú najviac dvakrát (vynechaných písmen je čo do množstva málo nad poldruha promile)
   21 = Biblia, slovensky, len text, bez členenia je to vyše 3 MB
   22 = Biblia, slovensky, len text ASCII = písmená bez dĺžňov a mäkkčeňov, ale zachované sú interpunkčné znamienka a medzery, je to vyše 3 MB
   23 = Biblia, slovensky, len znaky ASCII = písmená bez dĺžňov a mäkkčeňov, tiež bez interpunkčných znamienok a bez medzier, je to vyše 3 MB
   24 = Biblia, slovensky, znaky ASCII ale v opačnom poradí (odzadu písané), písmená bez dĺžňov a mäkkčeňov, tiež bez interpunkčných znamienok a bez medzier, je to vyše 3 MB

Príklady:
   konkrétny a praktický príklad šifrovania substitúciou

(Koniec zoznamu pomôcok)





Úvod

Táto stránka a jej pripojené aj odkazované súčasti obsahujú zábavné šifrovanie bez akýchkoľvek záruk, obsah nemusí byť v úplnosti preskúšaný (chyby sú možné), podstatou je spôsob popísaný už Julesom Vernom pred vyše sto rokmi.

Kto potrebuje teóriu, alebo históriu či prehľad rôznych druhov šifrovania, pozrie si to inde. Tu v zásade nejde o šifrovanie elektronických dát (napr. digitálnych fotografií, a pod.), ale o šifrovanie napísaných zpráv. Šifrujeme zprávu, aby bola nezrozumiteľná každému okrem určených osôb. Šifrovanie = zašifrovanie + odšifrovanie. Spôsobov šifrovania je mnoho. Tu sú použité len niektoré - čo najúčinnejšie, čo najjednoduchšie, čo najlepšie zapamätateľné a reprodukovateľné, čo najmenej náročné na pomôcky. Šifrujeme zprávu, teda najmä text.

Pre toto šifrovanie nie je potrebné pripojenie na internet.

Toto šifrovanie je symetrické (súmerné) = odšifruje sa opačným postupom ako sa zašifrovalo. (Asymetrické šifrovanie tu nie je, robí sa pomocou počítača.)
Toto šifrovanie je prúdové (nie blokové) = šifruje sa od začiatku ku koncu jeden znak za druhým bez zmeny ich poradia, každý znak samostatne.
Toto šifrovanie je vždy možné robiť ručne (papier, tužka, hlava), ale môžu (nemusia) sa použiť mechanické pomôcky, prípadne aj počítač.
Tu nejde o rozlúštenie cudzích šifier. Tu ide o dobré zašifrovanie vlastných zpráv, aby ich (ideálne) nemohli rozlúštiť nepovolaní. Použijeme to na naše skautské hry, ale aj v občianskom živote, napríklad na heslá; dnes už šifruje každý, aj gógle, tak prečo nie aj my.

Šifrujeme tak, že znaky tvoriace zprávu nahradíme inými tak, aby to nebolo čitateľné (napr. korbdpg) = substitúcia (náhrada).
Šifrujeme tiež tak, že znaky tvoriace zprávu poprehadzujeme tak, aby to nebolo čitateľné (napr. bleich = chlieb) = transpozícia (premiestnenie).
Ak sa nepoužije aj substitúcia aj transpozícia (teda ak je použitá len jedna z nich), je šifrovanie menej odolné proti (nežiadúcemu) rozlúšteniu. Toto obzvlášť platí pri použití krátkeho kľúča, a ešte viac, ak je kľúčom slovo.
Substitúcia je v popredí šifrovania a ak sa použije dlhý chaotický kľúč, niekedy býva substitúcia použitá samotná.
Na šifrovanie zprávy treba spôsob (metódu) a utajený kľúč.
Spôsob nemusí byť nutne utajený. Spôsob šifrovania obvykle nemeníme. Pre úspešné odšifrovanie je nevyhnutné použiť presne ten istý spôsob šifrovania a presne tú istú sadu znakov, ktorými bola zpráva zašifrovaná!
Kľúč musí byť utajený. Opakované použitie toho istého kľúča znižuje odolnosť šifrovania voči (nežiadúcemu) rozlúšteniu.

Nestačí prečítať si a povedať "aha, to už viem" - treba prax: opakovane zašifrovávať aj odšifrovávať. To, čo som neurobil, neviem.

Použité názvoslovie si nerobí nárok na jedinečnosť ani na rýdzo odbornú správnosť.

Pre lepšie porozumenie uveďme hneď spočiatku, že kľúč, heslo a kód sú tri rozdielne veci:
     Kľúč je utajený rad znakov (reťazec), obvykle písmen, prípadne aj číslic, ktorý sa priamo použije v procese šifrovania (=zašifrovania aj odšifrovania).
     Heslo je utajený rad znakov (reťazec), obvykle písmen a číslic, ktorým sa potvrdzuje oprávnený prístup (obvykle k službám alebo zariadeniam), obvykle sa heslo používa opakovane, ale nepoužíva sa priamo v procese šifrovania.
     Kód alebo Kódovanie je (obojstranne) jednoznačný konkrétny a neutajovaný (verejný) spôsob prevodu čísel (v dvojkovej alebo inej sústave) na znaky (a naopak: znakov na čísla), ktorý sa používa v oblasti počítačov (historicky sa používal aj telegrafii (Morse kód), a pod.)  Kód sa v inej súvislosti rozumie tiež obsah počítačového programu (postupnosť príkazov).

Číslice sú znaky, ktorými zapisujeme čísla.
Znaková sada = sada znakov = (abeceda).




Substitúcia (náhrada znakov)
- jej slabinou je neskryté poradie znakov, z čoho pri nedodržaní tu uvedených zásad možno usudzovať na obsah až do takej miery, že (najmä ak je kľúč kratší než zpráva, použitý opakovane a netvoria ho náhodé znaky) sa šifra niekedy dá rozlúštiť. Výhodou substitúcie je, že pozmeňuje charakteristiky jazyka, najmä častosť (frekvenciu) výskytu jednotlivých písmen.
Pri substitúcii sa obvykle ako základ používa abeceda (vo všeobecnosti sada znakov), ktorá môže mať poradie znakov (písmen) obvyklé (="zrovnaná abeceda") alebo rozhádzané (obvykle podľa nejakého kľúča; zvláštnym prípadom je "reciproká abeceda" = znaky v obrátenom poradí). Tu používame len zrovnanú medzinárodnú abecedu. Pre odolnosť substitučnej šifry je oveľa dôležitejší kvalitný kľúč než poradie písmen v použitej abecede.

Podstatou substitúcie je náhrada každého jednoho znaku (písmena) iným znakom (písmenom), ale nie stále tým istým; náhradu určuje kľúč. Kľúč určuje, o koľko miest v poradí je náhradné písmeno posunuté voči pôvodnému (=aditívne šifrovanie). Môžeme to vnímať napr. ako pripočítanie (alebo odpočítanie) poradových čísel znakov. (Boli by možné aj iné operácie modulárnej aritmetiky nad poradovými číslami písmen abecedy.) Pre odolnosť substitučnej šifry nie je podstatné, čo od čoho (kľúč, text) pripočítame alebo odpočítame, ale podľa toho sa od seba odlišujú niektoré spôsoby šifrovania (Beaufort, Vigenere). Zvláštnym prípadom substitúcie je taký spôsob (Beaufort), že pre zašifrovanie aj odšifrovanie sa použije presne rovnaký postup (teda nie opačný).

Ak označíme:
   A = otvorený text (tiež "OT" alebo "T", zrozumiteľný text, vstupuje do zašifrovania)
   K = kľúč (pre zašifrovanie aj pre odšifrovanie, tiež "C")  Pozor!-nie "heslo"-to je čosi iné-pozrieť nižšie.
   Z = zašifrovaný text (tiež "V" = výsledok, výstup zo zašifrovania, teda šifrový text, tiež "ŠT")
potom princíp jednotlivých spôsobov šifrovania je:
   Beaufort: K - A = Z  (rovnaký postup na zašifrovanie aj na odšifrovanie)
   Vigenere: A + K = Z  (odšifrovanie opačným postupom: A = Z - K )
   Beaufort - varianta: A - K = Z  (odšifrovanie opačným postupom: A = Z + K )

Počítačom zašifrovať alebo odšifrovať substitúciou je možné samočinne s použitím niektorého počítačového programu, ktorý podľa zadaného kľúča posúva jednotlivé znaky otvoreného textu (t. j. písmená abecedy a prípadne použité iné znaky). Jestvuje mnoho programov na šifrovanie.
Tu nižšie sú dostupné niektoré šifrovacie programy, ktoré pre svoju činnosť potrebujú len internetový prehliadač (internet však môže byť odpojený!), teda ani nie sú závislé na operačnom systéme, sú už v svojom princípe "multiplatformné"; sú napísané v programovacom jazyku Java script a "bežia" len vo vašom počítači na (internetovej) stránke html. Ešte raz zdôrazňujem: nie je potrebné pripojenie na internet, teda ak si príslušnú internetovú (html) stránku stiahnete do vášho počítača (obvykle je to možné súčasným stlačením kláves "Ctrl" a "S", ponúkne sa jej uloženie - záleží na vašom použitom internetovom prehliadači.
Tieto šifrovacie programy sa líšia spôsobom šifrovania (Beaufort, Vigenere = vysvetlené vyššie) a sadou použiteľných znakov, ktorá je na začiatku uvedená; tiež je tam vysvetlená podstata použitého šifrovania a postup šifrovania spolu s použitou šifrovacou tabuľkou tak, aby použité samočinné šifrovanie bolo možné v prípade potreby urobiť aj ručne s rovnakým výsledkom.
Programy sa líšia tiež tým, že v niektorých je pre šifrovanie vložených znakov potrebné ťuknúť na tlačidlo, v iných tlačidla niet a šifrovanie prebieha priebežne hneď po vložení znakov; programy sa tiež líšia spôsobom naprogramovania, to všetko však pre použitie programu nie je podstatné.

   Šifra Beaufort, 26 znakov = len medzinárodná abeceda

   Šifra Beaufort, 36 znakov = mezinárodná abeceda + číslice

   Šifra Vigenere, 26 znakov = len medzinárodná abeceda zašifrovanie a odšifrovanie sa robí každé samostatným postupom



Ručne zašifrovať alebo odšifrovať substitúciou je možné s použitím niektorej z týchto pomôcok:
   Šifrovacia tabuľka so sadou riadkov, v každom tá riadku je tá istá abeceda, len inak posunutá
   Šifrovacia tabuľka Porta na jednoduchšie, ale menej odolné šifrovanie


Podstata odolnosti substitučného šifrovania s použitím ideálne dokonalého kľúča (dlhý ako zpráva, náhodné znaky) spočíva v tom, že poskytuje ľubovoľné množstvo možností odšifrovania a teda aj variant otvoreného textu, pričom niet podkladu pre rozhodnutie, ktorá varianta je tá správna.
Ukážeme to na príkladoch nižšie; použijeme šifru Beaufort 26 znakov (K=A+Z). Ukážeme, že zašifrovaný text môže skrývať ľubovoľný text, podľa toho, aký je zvolený kľúč. Keďže nemáme kritérium, podľa ktorého by sme určili, ktorá z možností otvoreného textu je správna, uvidíme, že hlavným problémom pre "nepriateľa" nie je rozlúštiť šifru, ale z veľkého počtu možností rozlúštenia určiť tú správnu možnosť, napríklad:

Zašifrovaný text:
   aopnrvmhkubpdkgfmxlsjhakmbz
môže napríklad skrývať zprávu:
   vsetkojeprezradeneujdidousa
(ak je kľúč  vgtgbjvlzlfoukjjzbfbmpdygtz )

ale:
ten istý zašifrovaný text:
   aopnrvmhkubpdkgfmxlsjhakmbz
tiež môže ukrývať celkom inú zprávu:
   vyhralsommilionpridzapijeme
(ak je kľúč  vmwergevwgjalytudforjwitqnd )

alebo v tom istom zašifrovanom texte
môže byť ukrytá ľubovoľná iná zpráva,
ak sa použije iný kľúč...

Dokonca zašifrovaný text môže vyzerať ako otvorený:
   horelalipkahorelapodnoupana
z čoho pri použití kľúča:
   kcjxlldwbnemsbxarxrpvdibopt
dostávame celkom iný (skutočný) otvorený text:
   dostalsomdefektpridmipomoct

Z uvedeného vidíme okrem iného, že aj keď písmená kľúča trebárs nie sú dokonale náhodne vybraté, predsa to v tomto prípade "nepriateľovi" pri lúštení nepomôže, pretože nebude mať podľa čoho rozhodnúť, ktorý kľúč je ten jediný správny zo všetkých, ktorý dáva ten správny otvorený text (a ostatné možné otvorené texty nie sú tie správne).


Transpozícia (premiestnenie znakov)
sama osebe nie príliš ukrýva obsah zprávy, pretože neraz z použitých znakov, bárs poprehadzovaných, možno usúdiť na obsah zprávy, najmä z číslic.
Okrem toho málo zakrýva charakteristiky jazyka.
Transpozícia sa obvykle robí pomocou tabuľky zostavenej na základe dohodnutého hesla.

Transpozíciu možno urobiť aj šifrovacou mriežkou.
   Pomôcka pre návrh šifrovacej mriežky je tu.
   Šifrovacia mriežka - príklad vyhotovenia mriežky 6x6 - jeden štvorček je pre jeden znak; bledosivé okraje dookola v šírke jednoho štvorčeka sú použité iba pre lepšiu mechanickú pevnosť papierovej mriežky a nie sú podmienkou; bodka hore je pomôcka pre orientáciu mriežky, lebo mriežka sa otáča postupne do 4 polôh. Mriežku možno použiť dvomi spôsobmi: buď vpisovaním, alebo čítaním písmen.


Kľúč
Kľúč musí byť utajený. Opakované použitie toho istého kľúča znižuje odolnosť šifrovania voči (nežiadúcemu) rozlúšteniu. Najmä na kľúč použitý pri substitúcii sú vysoké nároky:
- kľúč nesmie byť kratší než zpráva
- poradie znakov kľúča musí byť úplne náhodné (nepredvídateľné) z čoho vyplýva, že aj početnosť výskytu jednotlivých znakov v kľúči bude rovnaká, a nepriamo tiež, že sada znakov použitých v kľúči musí zodpovedať spôsobu šifrovania a teda aj znakovej sade otvoreného textu (obvykle to znamená, že obidve sady sú zhodné)
- kľúč musí byť utajený všetkým okrem oprávnených používateľov
- kľúč musí byť oprávneným používateľom k dispozícii len na čas, kedy s ním pracujú - to znamená, že (1) zatiaľ nepoužité kľúče musia byť ochránené aj pred ich prečítaním, a (2) všetky vyhotovenia použitých kľúčov treba po ich použití (aj u odosielateľa aj u príjemcu) ihneď zničiť (zničiť ako kľúč, čo nie nutne znamená napr. vytrhnúť stránku z knihy a spáliť ju a popol rozmrviť - mohlo by postačovať zničiť adresu kľúča, čo napríklad môže byť identifikácia knihy a strany; v prípade elektronického nosiča znaky (reťazec) kľúča prepísať ľubovoľnými inými znakmi, potom prípadne aj vymazať (samotné vymazanie nestačí)).

Ak kľúč výnimočne nie je taký dlhý ako šifrovaný text, musí sa kľúč predĺžiť na dĺžku šifrovaného textu, čo sa obvykle robí najjednoduchšie: viacnásobným opakovaním kľúča (sú možné aj iné, zložitejšie spôsoby). Počtom opakovaní (krátkeho) kľúča však klesá odolnosť šifrovania proti (nežiadúcemu) rozlúšteniu. Ideálny kľúč obsahuje náhodne vybraté znaky, lebo ak z predošlej časti kľúča možno usudzovať na jeho nasledujúcu časť, znižuje to odolnosť šifrovania proti (nežiadúcemu) rozlúšteniu (takže kľúč nesmie obsahovať zrozumiteľné slovo).

Kľúče sa dajú vytvárať generátorom náhodných znakov; ťažkosti sú s ich utajením, dopravou, uschovaním, zničením po použití.
Je možný aj iný spôsob: dlhé a quasináhodné kľúče je možné odvodzovať od bežných, ľubovoľne dlhých otvorených textov, z bežných zdrojov (kníh, časopisov, ... - či už papierových, alebo elektronických) na ktorých sa dohodne, s pomocou dohodnutých pravidiel (napríklad: ktorá kniha, ktorá strana, ako vyberať - napr. brať z textu každé druhé (alebo tretie, štvrté, ... tridsiate...) písmeno); toto možno naviac prešifrovať (trebárs aj kratším, príp. aj jednoduchším) druhým (prípadne aj tretím, štvrtým...) kľúčom, na čo je obzvlášť výhodné použiť samočinné šifrovanie (program). Pri takomto spôsobe sa kľúč vytvorí bezprostredne pred jeho použitím dohodnutým spôsobom s dohodnutými premenlivými parametrami, pre ktorých utajenie platia pochopiteľne tie isté zásady ako pre kľúč; výhodou je ich menšia veľkosť a menšia nápadnosť s lepšou možnosťou ukrytia.
Platí, že zrozumiteľné zašifrované nezrozumiteľným (kľúčom) je nezrozumiteľné - toto je s výhodou možné použiť pre vytváranie kľúčov.
Jestvuje aj množstvo spôsobov na predlžovanie krátkeho kľúča, nie je ťažké si nejaký vymyslieť (napr. opakovanie, opakovanie čiastočné, opakovanie so zmenou dĺžky, opakovanie s posunom, pripočítanie, autokláv OT, ...).
Zvláštnym prípadom je vytvorenie kľúča dlhého ako zpráva, zo samotného textu zprávy prešifrovaním (nie nutne veľmi dlhým) (quasi)náhodným kľúčom, čo však vyžaduje zvláštny spôsob odšifrovania, ktorým sa tu teraz nejdeme zaoberať.
Pre vytvorenie kľúča sú taktiež možné (v časti o substitúcii už vyššie spomenuté) iné matematické operácie, to však je už tiež nad rámec tohoto textu.
Pravdaže, toto všetko má do (ideálnej) náhodnosti znakov ďaleko, ale znemožňuje to slovníkový útok a iné pokusy o rozlúštenie to sťažuje až prakticky znemožňuje, ako je prakticky ukázané príkladmi uvedenými vyššie na konci textu o substitúcii.

Na zistenie početnosti (častosti) výskytu jednotlivých znakov medzinárodnej abecedy v ľubovoľnom texte, teda aj v kľúči, možno použiť tento počítačový program:
    Frekvenčná analýza

Na rôzne šifrovacie pokusy alebo na odvodenie vlastného kľúča možno napríklad použiť aj tieto chaotické reťazce znakov - iste, ideálna náhodnosť tam v postupnosti asi nie je, rozdelenie znakov však je pomerne vyrovnané, nie je tam významnejšia zákonitosť:
   01 = Chaos z 26 znakov medzinárodnej abecedy - verzia 01 spolu 10.000 znakov
   02 = Chaos z 26 znakov medzinárodnej abecedy - verzia 02 spolu 11.111 znakov
   03 = Chaos z 26 znakov medzinárodnej abecedy - verzia 03 spolu 21.249 znakov
   04 = Chaos z 26 znakov medzinárodnej abecedy - verzia 04 spolu 25.299 znakov
   05 = Chaos z 26 znakov medzinárodnej abecedy - verzia 05 spolu 38.496 znakov
   06 = Chaos z 26 znakov medzinárodnej abecedy - verzia 06 spolu 120.551 znakov
   07 = Chaos z 26 znakov medzinárodnej abecedy - verzia 07 spolu 1 033 312 znakov

alebo:
   08 = "voda kalná"   chaotický dlhý reťazec nedefinovanej dĺžky (okolo 300.000 znakov)
   09 = Milión znakov medzinárodnej abecedy - verzia 09    chaotický dlhý reťazec, nie sú tam žiadne zdvojené znaky
   10 = "Trigo"     = trigramy organizované = všetky možné trigramy (skupiny troch písmen) znakov medzinárodnej abecedy, usporiadné podľa abecedy! = žiaden chaos, žiadna náhodnosť (počet písmen teda musí byť 3x(26x26x26)x3 = 158.184)
   11 = "voda pramenitá"    reťazec pozostávajúci z troch rôznych za sebou idúcich náhodne usporiadaných postupností všetkých možných trigramov (skupín troch písmen) medzinárodnej abecedy (počet písmen teda musí byť 3x(26x26x26)x3 = 158.184)
   12 = "voda prečistená"    reťazec pozostávajúci z troch rôznych za sebou idúcich náhodne usporiadaných postupností všetkých možných trigramov (skupín troch písmen) medzinárodnej abecedy, z ktorého sú vynechané všetky monotónne trigramy (skupiny troch rovnakých písmen), takže rovnaké písmená sa za sebou vyskytujú najviac dvakrát (vynechaných písmen je čo do množstva málo nad poldruha promile):




Charakter zprávy
Zpráva je text. Ak šifrujeme len jej písmená - čo s ostatným?
Veľké či malé písmená sa dovtípime - ani telegrafia ich nerozlišovala.
Bodka za vetou - možno použiť slovo "stop".
Medzery medzi slovami: buď vynechať (text bude neprerušovaný) alebo medzeru nahradiť písmenom čo najmenej používaným - napríklad "x". Ak chcem mať "x" výnimočne v texte, napíšem ho pre rozlíšenie dvakrát za sebou, napr. "texxt".
Číslice: buď vypísať slovom, alebo použiť spôsob používaný kedysi (-40r.) vo výpočtovej technike = ako znak písmenovo-číslicovej zmeny použiť písmeno čo najmenej používané - napríklad "Q" (nepárny výskyt je zmena z písmen na číslice, následný párny výskyt je zmena z číslic na písmená), a písmená použité medzi nepárnym a párnym "Q" interpretovať ako číslice vyjadrujúce ich poradové číslo v práve používanej abecede - napríklad 2016 by sme takto zapísali "QBJAFQ". Ak chcem mať "Q" výnimočne v texte, napíšem ho pre rozlíšenie dvakrát za sebou, napr. "qquasimodo".

Pre užívateľa subjektívne azda najviac vnímanou vlastnosťou textu (okrem písmen) sú medzery medzi slovami, až potom diakritika (dĺžne, mäkkčene, ...) a ostatná interpunkcia (bodky, čiarky) ako aj odlíšenie veľkosti písmen. Tieto vlastnosti textu sú pre počítačové spracovanie podstatné, pretože počítač v svojom najhlbšom základe spracúva a ukladá len dva stavy, ktoré sa interpretujú ako dvojkové číslice, ktorými zapisuje čísla vyjadriteľné v ľubovoľnej číselnej sústave (najčastejšie dvojkovej, osmičkovej, desiatkovej, šesťnástkovej), a tie potom užívateľovi interpretuje, v prípade textu cez použité kódovanie (=prevod medzi číslami a znakmi) ako znaky textu. Používa sa však viacero kódovaní, obvykle sa nelíšia v znakoch medzinárodnej abecedy, ale často sa líšia v znakoch iných. Pre našu jazykovú oblasť sú to najmä kódovania CP 852, Win1250, UTF-8, ISO 8859-2. Aby komplexnosť veci bola čitateľovi ešte viac priblížená, uveďme ešte, že číslice sa cez použité kódovanie niekedy síce interpretujú ako znaky, ale v iných prípadoch aj ako príkazy (typicky LF + CR, a iné ...) alebo môžu mať prázdny význam, a toto všetko sa čitateľovi nezobrazuje ako znak, teda to priamo nevidí, takže by sa to v zašifrovanom texte ani nemuselo preniesť (záleží od spôsobu prenosu).
Ďalšia okolnosť je, že rôzne programy podľa svojho určenia spracúvajú znaky nie celkom rovnako, obvykle inak spracujú znak "písmeno", ale inak znak "medzera", a podobne (nehovoriac o už zmienených príkazoch).
Spomenuté odlišné kódovanie a odlišné spracovanie znakov vnáša do celého procesu šifrovania rôznosti, ktoré z princípu nemožno spracovať rovnako.
Keďže pri klasickom súmernom prúdovom šifrovaní posúvame znaky, mohlo by sa stať, že pri použití celej sady niektorého z obvyklých kódovaní by sa niektoré písmeno zašifrovalo do niečoho, čo by bolo pre čitateľa prinajmenej čudné (napríklad čierny štvorček), alebo dokonca neviditeľné. Takto zašifrovaná zpráva by sa pri prenose mohla ľahko skresliť a tým sa stať príjemcovi nerozlúštiteľnou.
Nezabudnime tiež, že v rôznych rečových oblastiach sa často používa iná znaková sada, teda aj klávesnica počítača v zahraničí nemusí umožniť napísanie niektorých znakov nám obvyklých.

Východiskom z ťažkostí v našom (klasickom, teda aj ručnom) šifrovaní je použitie obmedzenej znakovej sady - len medzinárodnej abecedy, prípadne rozšírenej o číslice, a to aj za cenu zníženia pohodlia pri čítaní (vynechanie medzier medzi písmenami, ...). Na tom sú založené aj programy dostupné z tejto stránky.
Inou možnosťou je šifrovať znaky (písmená, ...) do čísel, čo však už je nad rámec tejto stránky.

Ak je zpráva príliš krátka, síce to sťažuje jej rozlúštenie, ale z dĺžky krátkej zprávy niekedy možno usudzovať na jej obsah.
Tiež sú citlivé začiatky a konce zpráv, kde možno usudzovať na určitý opakovaný obsah (napr. oslovenie, datum, označenie odosielateľa).
V obidvoch prípadoch (ale aj v iných fázach a prvkoch šifrovania) je namieste použiť "klamače" - pridané písmená ktoré nenesú informačný obsah (tzv. "soľ"), pričom treba v konkrétnom prípade jednoznačne určiť identifikáciu klamačov - buď budú mať pevné miesto a dĺžku alebo budú zrejmé z toho, že budú bezvýznamné a ohraničené dohodnutými znakmi, napríklad "YYRSTZYY".
Ďalšia možnosť ukrytia začiatku a konca zprávy je transpozícia (premiestnenie znakov) - pozrieť vyššie.

Akákoľvek pravidelnosť (teda aj opakovanie) v kľúči alebo aj v texte(!) v zásade znižuje odolnosť proti rozlúšteniu.


Heslo
Heslo nie je kľúč.
Kľúč sa priamo používa v šifrovacom postupe a ideálne sa použije len raz na zašifrovanie a raz na odšifrovanie, potom sa všetky vyhotovenia kľúča zničia.
Heslom sa potvrdzuje oprávnený prístup (obvykle k službám alebo zariadeniam), obvykle sa heslo používa opakovane, ale nepoužíva sa priamo v šifrovacom postupe. Požiadavky na heslo:
- veľa kombinácií - ich počet závisí na súčine (počet znakov hesla x počet znakov v použitej znakovej sade), často sa udáva požiadavka na dĺžku hesla medzi 12 až 24 znakov čo najširšej znakovej sady, ale:
- heslo sa musí dať napísať na "ľubovoľnej" klávesnici
- heslo nesmie obsahovať známe slovo
- znenie hesla sa nedá ľahko zapamätať (netýka sa utajenej pamäťovej pomôcky)

Šifrovanie sa dá použiť aj na vytváranie rady hesiel (napr. k rôznym internetovým službám) tak, že heslá sa vytvoria z neskrývaných zdrojov zašifrovaním každého tým istým utajeným univerzálnym kľúčom, ktorý sa zapamätá (buď priamo, alebo zapamätaným postupom z ľahko zapamätateľného textu). Pre heslá primerane platia zásady pre kľúče.

Príklad vytvorenia hesla zašifrovaním z utajeného univerzálneho kľúča a (nie nutne utajovaného) kľúčového slova:
Chcem vytvoriť prístupové heslo do schránky elektronickej pošty "snehulienka@centrum.sk". S výhodou použijem názov schránky "snehulienka" ako kľúčové slovo, ktoré neskrývam. To, čo skrývam len v mojej hlave, je univerzálna kľúčová veta: "Mor ho detvo môjho rodu kto kradmou rukou siahne na tvoju slobodu" a postup, ktorým z tej vety ktorej vyberiem písmená - napríklad posledné písmeno každého slova, čím vytvorím univerzálny (v tomto prípade opakovane používaný) kľúč: "rooououueauu". Z univerzálneho kľúča sa však uplatní toľko písmen, koľko má kľúčové slovo - teda buď sa skráti (ako v tomto príklade), alebo sa zopakuje. Heslo vznikne z textu "snehulienka" substitučným zašifrovaním (podľa tejto stránky) s použitím univerzálneho kľúča "rooououueauu", teda heslo je "zbkhadmqrqu".
V prípade potreby možno upraviť dĺžku alebo skladbu hesla, napr. na koniec ešte pridám (zopakujem) prvé písmeno, aby som zvýšil dĺžku na 12 znakov, teda "zbkhadmqrquz". Ak sa vyžadujú malé aj veľké písmená, napríklad každý nepárny znak (alebo každú samohlásku, ...a pod.) napíšem ako veľké písmeno, teda bude "ZbKhAdMqRqUz". Ak sa požadujú (aj) číslice, napríklad posledné tri znaky nahradím ich poradovým číslom v medzinárodnej abecede, teda heslo bude "ZbKhAdMqR172126".
V prípade potreby(!) možno aj ďalej rôzne odvodzovať, ale obvykle je lepšie zbytočne nekomplikovať; napríklad ak zo spomenutého poradového čísla použijem ciferný súčet, heslo by bolo "ZbKhAdMqR838"; tiež možno nahrádzať doplnkami, alebo nahrádzať reciprokou hodnotou, a pod... ale načo? - čím viac zásad na zapamätanie, tým väčšie riziko omylu či zabudnutia, takže nepreháňať nad rozumnú mieru (každý môže mať inú).


Spoľahlivosť a programy
Pri vlastnom ručnom zašifrovaní aj odšifrovaní (bez počítača), najmä pri dodržaní zásad pre kľúče, sa nemusí objaviť otázka prípadného úniku zpráv "zadnými dvierkami". Táto pochybnosť je však vždy plne namieste pri počítačovom šifrovaní, otázka však je, kto každý má od "zadných dvierok" kľúč; výnimky, pri ktorých azda pochybovať netreba, sú:
1. keď si môžeme a vieme preskúmať zdrojový kód počítačového programu, a urobíme to s uspokojivým výsledkom
2. keď dĺžka ovoreného textu a dĺžka naším kľúčom zašifrovaného textu sú zhodné, pretože logika symetrického šifrovania hovorí, že (aspoň v prípade nekomprimovaných zpráv, čo z princípu budú zprávy nie dlhé) tu nie je miesto pre zadné dvierka.
3. keď počítač (trvale - lebo dataloggery a keyloggery) nie je nikde datove pripojený (žiaden internet) ani inak pripojiteľný (EMG tienenie)

Pre naše hravé šifrovanie by mohlo postačovať: preskúmať zdrojový kód použitého programu, uistiť sa o zhodnej dĺžke otvoreného aj zašifrovaného textu, mať počítač (ideálne trvale) nepripojený na internet (napríklad druhý, trvale odpojený starší počítač) a nepoužívať nedôveryhodné operačné systémy (určite nie Win 10, radšej ani Win 8 ani 7, ba ani neskoršími úpravami pozmenené XP; najlepšie azda niektorý z linuxov; táto otázka operačného systému môže ísť bokom v prípade počítača trvale! odpojeného od internetu).

Dnes všetci šifrujú, len taký fukot, hlavne gógel, nuž zašifrujme si aj my - nikdy nie je neskoro mať šťastné detstvo, a chalani pri svojich hrách vždy radi širovali. V dvoch verneovkách našej mladosti sme sa naučili (ručnú) transpozičnú mriežkovú šifru (Matej Šándor - druhý gróf Monte Christo) aj (ručnú) substitučnú šifru typu Vigenere (800 míľ po Amazonke (Torres)). Spomínam, že aj bulharský detektív Avakum Zachov v knihe Polnočné dobrodružstvo od Andreja Guľaškiho šifruje s použitím kľúča, ktorého nositeľom je nenápadná váza. Na internete je veľa stránok venovaných šifrovaniu, napríklad aj od veterána šifrovej služby pána Janečku, on je aj autor poučnej knihy Odhalená tajemství šifrovacích klíču minulosti.
Pre vážne zašifrovanie zprávy kľúčom kratším než zpráva je po substitučnej šifre potrebné ešte prešifrovanie transpozičnou šifrou (poprehadzuje písmená) - takéto (ručné) šifrovanie (substitúcia + transpozícia) používal odboj počas druhej svetovej vojny.

Na internete je viacero stránok so samočinným šifrovaním, tiež pozoruhodné množstvo (aj bezplatných) počítačových šifrovacích programov. Mnohé z programov šifrujú blokovo a asymetricky - to je spôsob, ktorý vykonávať ručne nie je mysliteľné. K tým programom používajúcim symetrické šifrovanie podľa mojej vedomosti nie je známy (ručný) presný (reprodukovateľný) postup - to bráni ich preskúmateľnosti aj prípadnej náhrade (či už ručnej, alebo naprogramovanej) pre prípad vzdialenejšej budúcnosti, keď by v dôsledku vývoja počítačov sa staršie programy stali nepoužiteľnými, a tým by boli stratené nimi zašifrované texty.

Kto by chcel siahnúť po inom programe, odporúčam do pozornosti:

Textový editor T602, dnes už nepoužívaný program, ktorého niektoré neskoršie verzie (... v.3.00 +) majú aj funkciu šifrovania, i keď čiastočne skrytú: prístup je v bežiacom "t602.exe" takto: Menu(F10) - Súbor - Manažér - F4(=šifruj); toto šifrovanie je obmedzené dĺžkou: zakóduje súbor dlhý max. 32770 byte - ak je dlhší, zvyšok súboru zostane nezašifrovaný; heslo sa nedá zadať dlhšie než 39 znakov - pozor, ak sa zadáva dlhšie, už sa len prepisuje posledný znak, čo ale vidno; zašifrovaný súbor má rovnakú dĺžku ako nezašifrovaný; nerozlišuje zašifrovanie a odšifrovanie = rovnaký proces. Ak by tento program niekto chcel použiť a nefungoval by v niektorom operačnom systéme, je možné skúsiť spustiť ho v prostredí simulačného programu DOSbox, ktorý je voľne dostupný na internete.

Komprimačný program, napríklad "RAR" od Eugena Rošala (Евгений Лазаревич Рошал) od r. 1993. Viaceré komprimačné programy umožňujú prístup obmedziť heslom či šifrovaním užívateľovým kľúčom. V prípade RAR sú to verzie od RAR v.2.9 a WinRAR v.3.00 - uvádza sa originálna reťazová bloková šifra, neskôr AES 128, potom 256 bit). Je to program, kde sa dĺžka voči pôvodnému textu mení, takže sa nedá usudzovať na prípadnú neexistenciu zadných dvierok. Pravdaže, vždy možno očakávať, že program má zadné dvierka, ale ak zvážime, že prípadný kľúč k nim mohol byť pôvodne v Čeľjabinsku a my sme malé ryby, nemusí to niekedy vadiť; druhá vec je, že neskôr Rošal osobne a aj jeho program sa dostali do západnej cudziny...

Oba zmienené programy, T602 aj RAR, sú peknou ukážkou obmedzenej časovej platnosti počítačových šifrovacích programov, pretože niektoré staršie verzie nefungujú pod novšími operačnými systémami; niečo sa dá vyriešiť spustením programov v "DOSbox", čím však o niečo klesne pohodlie pri používaní tých programov.

Jeden z najviac uznávaných a dlhšie nadšencami vyvíjaných voľných (asymetrických) šifrovacích programov (True crypt) pred časom bez prijateľného vysvetlenia náhle zmizol z internetu a namiesto všetkých jeho dovtedajších verzií sa zrazu objavila len jeho jediná nová náhrada; veci znalých to vedie k presvedčeniu, že azda bol posledný čo nemal "zadné vrátka", a zostávajúce dostupné ich majú všetky. (Viac vyhľadať na internete, napr. na stránkach http://truecrypt.ch, http://andryou.com/truecrypt/docs/index.php, tiež údajná náhrada "VeraCrypt".)

Starostlivo zvažovať treba zabezpečenie spoľahlivej časovej dostupnosti zašifrovaného obsahu, do čoho patrí aj posúdenie časovej použiteľnosti prípadne použitých počítačových programov, a možnosti ich prípadnej náhrady na základe 100% znalosti a samostatného úspešného overenia nimi používaných postupov.

Spoľahlivé uloženie a spoľahlivá doprava zašifrovaných zpráv sú samostatnou otázkou, ktorá už je mimo cieľa tohoto textu. Uveďme však aspoň jednoduchú možnosť, ak chceme aspoň jednoducho skryť existenciu zašifrovaného textu, je možné ho umiestniť do niektorého formátu, ktorý môže mať obsah chránený (čo i jednoduchým) heslom, to sú napríklad formáty *.pdf, tiež komprimačné formáty napr. *.zip, *.rar.



Tu je konkrétny a praktický Príklad šifrovania substitúciou




POKROČILEJŠIE ŠIFROVANIE
Prax pokročilejšieho šifrovania



Nadväzujeme na predošlú časť "Šifrovanie".
V nej sme úplne vysvetlili a ukázali základné spôsoby praktického ručného šifrovania. Tiež sme poskytli jednoduché ale postačujúce počítačové programy, ktoré ručné substitučné šifrovanie mechanizujú, majú otvorenú a preskúmateľnú krátku postupnosť pomerne zrozumiteľných príkazov bez zadných dvierok a sú použiteľné v prostredí internetového prehliadača, nezávisle na operačnom systéme počítača a nepotrebujú pripojenie na internet.
Uvedené šifrovanie v zásade nahrádza jeden znak iným znakom, nie však číslom. Sada použiteľných znakov je obmedzená na písmená medzinárodnej abecedy, prípadne aj číslice. Konštatovali sme niektoré úskalia, ktoré sa môžu vynoriť, ak použijeme aj ďalšie znaky.

Pre užívateľa subjektívne azda najviac vnímanou vlastnosťou textu (okrem písmen) sú medzery medzi slovami, až potom diakritika (dĺžne, mäkkčene, ...) a interpunkcia (bodky, čiarky) ako aj odlíšenie veľkosti písmen.
Tieto vlastnosti textu sú pre počítačové spracovanie podstatné, pretože počítač v svojom najhlbšom základe spracúva a ukladá len dva stavy (0, 1) a tie sa interpretujú ako dvojkové číslice, ktorými zapisuje čísla vyjadriteľné v ľubovoľnej číselnej sústave (najčastejšie dvojkovej, osmičkovej, desiatkovej, šesťnástkovej), a tie potom v prípade textu interpretuje užívateľovi ako znaky textu, a to cez použité kódovanie, čo je zaužívaný a široko používaný prevod čísel na znaky (a naopak).

Úskalie prvé.
Keďže pri klasickom súmernom prúdovom substitučnom šifrovaní posúvame znaky, mohlo by sa stať, že pri použití celej sady znakov niektorého z obvyklých kódovaní by sa niektoré písmeno zašifrovalo do niečoho, čo by bolo pre čitateľa prinajmenej čudné (napríklad čierny štvorček), alebo dokonca neviditeľné. Takto zašifrovaná zpráva by sa pri prenose mohla ľahko skresliť a tým sa stať príjemcovi nerozlúštiteľnou.
Totiž vo všeobecnosti sa používa viacero kódovaní znakov, obvykle sa našťastie nelíšia v znakoch medzinárodnej abecedy, ale často sa žiaľ líšia v znakoch iných. Aby komplexnosť veci bola čitateľovi ešte viac priblížená, uveďme ešte, že čísla sa cez použité konkrétne kódovanie niekedy síce interpretujú ako nám známe znaky, ale niektoré nie sú ani nám známe písmená, ani číslice, ale neznáme znaky, ba až jednoduché obrázky, ktoré čítať je prinajmenej rozpačité až nemožné, iné čísla sa interpretujú ako príkazy (typicky EOL, CR, EOF, ...) alebo môžu mať prázdny význam, a toto všetko sa čitateľovi v počítači nezobrazuje ako známy znak, ba v niektorých prípadoch to ani priamo nevidí, takže by sa to v zašifrovanom texte ani nemuselo preniesť (záleží od spôsobu prenosu).
Pre lepšie pochopenie uvedených tvrdení si čitateľ môže prezrieť rozmanité druhy kódovania, sú voľne dostupné na internete.
Toto sa týka substitučného šifrovania s použitím niektorého zaužívaného kódovania, a to aj ručne, aj na počítači.
Nezabudnime tiež, že v rôznych rečových oblastiach sa často používa iná znaková sada, teda aj klávesnica počítača v zahraničí nemusí umožniť napísanie niektorých znakov nám obvyklých.

Úskalie druhé.
Ďalšia okolnosť je, že rôzne počítačové programy, ktoré spracúvajú text, podľa svojho určenia spracúvajú znaky nie celkom rovnako, obvykle inak spracujú znak "písmeno", ale inak znak "medzera", a podobne (nehovoriac o už zmienených príkazoch).
Na dokreslenie uveďme, že samotný koniec riadku v takýchto programoch môže byť aj "tvrdý aj "mäkký", pričom "tvrdý" sa zapisuje dvomi znakmi "EOL" a "CR", niekedy len jedným z nich, ba navyše spôsob "odriadkovania" sa v jednom a tom istom programe môže meniť.


Spomenuté úskalia (odlišné kódovania a odlišné spracovanie znakov) vnášajú do celého procesu šifrovania rôznosti, ktoré z princípu nemožno spracovať rovnako.
Uvedené platí pre počítačové programy, ktoré spracúvajú text, teda aj internetové prehliadače. Keďže naše programy sú v nich prevádzkované, platí táto okolnosť aj pre ne; to je dôvod, prečo v týchto našich programoch nemožno použiť úplnú sadu znakov (napríklad ani UTF-8, ktorá je pre internet predvolená), pretože program síce funguje, ale zašifrovanú zprávu už nemožno odšifrovať do pôvodného čitateľného stavu (to je odskúšané).

Jedným východiskom z uvedených ťažkostí v našom (klasickom, teda aj ručnom) šifrovaní je použitie obmedzenej sady znakov - len medzinárodnej abecedy, prípadne rozšírenej o číslice (teda nie zaužívaného kódovania), a to aj za cenu zníženia pohodlia pri čítaní (vynechanie medzier medzi písmenami, ...), tak ako to je v predošlej časti "Šifrovanie" a na tom sú založené aj programy dostupné tam na uvedenej stránke.

Ďalším východiskom z uvedených ťažkostí je použiť vlastnú znakovú sadu, pričom je namieste mať na mysli vyššie uvedené úskalia. V prípade použitia vlastnej sady znakovej pre zašifrovanie je pre odšifrovanie nevyhnutnou podmienkou jej presná znalosť.
Ručné šifrovanie s vlastnou sadou znakov je možné spôsobom vysvetleným na predošlej stránke "Šifrovanie" vrátane popisov pri jednotlivých programoch, šifrovacia tabuľka bude obdobná, ale bude obsahovať vlastnú sadu znakov.
Počítačové šifrovanie s vlastnou sadou znakov je možné tu nižšie dostupným šifrovacím programom:
   Šifra Beaufort s vlastnou sadou znakov - tu je predvolená malá medzinárodná abeceda doplnená číslicami a jediným ďalším znakom - pomlčkou, ktorá je jedným z možných oddeľovačov slov a je zároveň dobre viditeľná (na rozdiel od medzery) a prenositeľná; je to jedna z možností znakovej sady, ktorú si ale môžete ľubovoľne zmeniť (aj skrátiť, predĺžiť...).

Iným východiskom z uvedených ťažkostí je šifrovať znaky zprávy (písmená, ...) do čísel. Na to však treba použiť programy, ktoré nespracúvajú interpretované znaky (to sú všetky naše programy používané v prostredí internetového prehliadača) ale spracúvajú priamo číslelné kódy. To sú však celkom iné programy, ktoré sú spomenuté v predošlej časti "Šifrovanie".



NÁROČNEJŠIE ŠIFROVANIE
Prax náročnejšieho šifrovania



Nadväzujeme na predošlú časť "Pokročilejšie šifrovanie". V nej sme ukázali úskalia, na ktoré môžeme naraziť, ak chceme šifrovať pohodlne čitateľný text. Tam sme poskytli program, v ktorom je možné definovať vlastnú sadu znakov (abecedu), čo záujemcovi umožní zvoliť si individuálne prijateľný kompromis medzi pohodlným textom a istotou šifrovania (môže si napr. pridať diakritiku, interpunkciu, rozlíšiť veľkosť písmen). Pri tomto spôsobe počítačového šifrovania (=spracovanie textu, najmä javascript na html stránke) nemožno použiť medzery medzi slovami, ani tvorenie odstavcov ("Enter"); ručne by to síce v zásade išlo, ale použitie medzery (keďže je neviditeľná) by mohlo zapríčiniť ťažkosti pri prenose.
Zmienený program s možnosťou definovania vlastnej znakovej sady (abecedy) sa pre praktické použitie asi príliš neujme, je skôr vhodný na získanie vlastných skúseností s predkladanými tvrdeniami.
V tejto časti postytneme náročnejšie riešenie - program so šifrovaním Beaufort, v ktorom sa pri zašifrovaní vkladá slovenský text, program text upraví aj zašifruje, a po odšifrovaní dostaneme zjednodušený, ale plynule čitateľný text. Vlastnosti programu:
- vkladaný otvorený text musí byť v slovenskom jazyku, ale nesmie obsahovať "koniec riadku" (="Enter"),
- program odstráni slovenskú diakritiku a veľké písmená prevedie na malé,
- interpunkciu (čiarky, bodky, a pod.) nahradí podčiarkami, tiež
- medzery medzi slovami nahradí podčiarkami, a
- niektoré zvláštne znaky (%, §) tiež nahradí podčiarkami,
tým všetkým text prevedie do znakovej sady uvedenej nižšie, potom text zašifruje.
Kľúč sa v programe neupravuje, musí obsahovať znaky zo znakovej sady uvedenej nižšie.
Použitá znaková sada je:
   abcdefghijklmnopqrstuvwxyz_0123456789
Vyskúšajte si - to je najlepšie.
Keďže, ako sme už predtým vysvetlili, ponechanie medzier nie je dobré, ale bez nich je text zle čitateľný, je otázka, čím medzery nahradiť. V prvom príklade šifrovania sme ich nahradili malým písmenom, ktoré sa takmer nepoužíva ("x"), čo však čitateľnosti textu príliš nepomáha. Bolo by treba drobnejší ale neprehliadnuteľný znak. V medzinárodnej abecede takého niet a rozširovanie znakovej sady treba čo najviac obmedziť. Prichádzajú do úvahy podčiarka a pomlčka. Programy spracúvajú podčiarku ako iné znaky, čo je pre šifrovanie žiadúce; pomlčku spracúvajú inak, často za ňu pridávajú mäkký koniec riadku, čo môže priniesť komplikácie. Preto je tu zvolená podčiarka, hoci pomlčka by bola azda inak vhodnejšia pre vzhľad textu.
V prípade iného náhľadu na náhradu medzery je poľahky možné náhradný znak zmeniť, takéto drobné zmeny v zdrojovom kóde programu sú nenáročné a čo len trochu zbehlý užívateľ si ich môže vyskúšať urobiť aj sám.
   Program je tu.



KOMPLEXNEJŠIE ŠIFROVANIE
Prax komplexnejšieho šifrovania


Viac možností týkajúcich sa kľúča.
Program je usporiadaný do modulov, z ktorých každý sa používa samostatne. V jednotlivých moduloch sú tieto možnosti úpravy kľúča:
  • AA = Odstránenie zdvojených znakov
  • A = Výber písmen z textu s voleným počiatočným posunutím a volenou dĺžkou skokov
  • B = Orezanie reťazca písmen
  • C = Kombinovanie kľúčov: základný kľúč sa kombinuje s jedným alebo dvomi ďalšími kľúčmi (spôsob: Vigenere)
  • D = Šifrovanie Beaufort (= zašifrovanie, tiež odšifrovanie) s použitím abecedy 26znakov + číslice + podčiarka
Vysvetlivky sú v programe v textoch, ale treba si ich otvoriť (= ťuknúť na "zobraziť ďalší text") - s ich znalosťou a predchádzajúcim preštudovaním a precvičením predošlých častí interaktívnej besedy "Šifrujeme s Julesom Vernom" by každému malo byť všetko jasné.
Program je tu


KOMFORTNEJŠIE ŠIFROVANIE
Prax komfortnejšieho šifrovania



V predošlom sme poskytli, ukázali a vysvetlili viacero konkrétnych možností šifrovania textu a predovšetkým rôzne spôsoby prípravy kľúča. Program v časti "Komplexnejšie šifrovanie" umožňuje z jednotlivých modulov programu zostaviť si veľa vlastných možností konkrétneho šifrovacieho postupu.

Pre opakované časté použitie to však môže byť nepohodlné tým, že treba kombinovať jednotlivé moduly a prechádzať od jednoho k druhému, prenášajúc medziúdaje medzi modulmi pomocou schránky (Zwischenablage, clipboard, klávesy Ctrl+C - Ctrl+V). Preto môže byť užitočné, po naučení jednoduchých základov html jazyka a javascriptu, z programov (najmä (ale nie výlučne) z programu Komplexnejšie šifrovanie) vybrať si časti (moduly) a skombinovať ich do vlastnej, dobre premyslenej, konkrétnej a nemennej pohodlne použiteľnej zostavy s pevnou postupnosťou krokov, ktorá splňuje zamýšľaný cieľ, najmä čo sa týka prípravy kľúča, pretože v tom sa ukazuje dosť veľký rozsah možností, a z nich si vybrať spôsob jediný, v konkrétnych parametroch použitia majúci tak obrovské množstvo možností, aby používateľ vnímal záruku neprelomenia svojho šifrovania.

Jedna z takýchto možných zostáv šifrovania podľa voľby autora je v programe na ďalšej samostatnej šifrovacej stránke: Program je tu. Kľúč sa tu vytvára spôsobom, ktorý je kompromisom medzi (na jednej strane) jednorazovým (neopakovaným) kľúčom z náhodných znakov, ktorý nie je kratší než zpráva, a (na druhej strane) potrebou splniť tieto požiadavky pohodlnejším spôsobom. Výsledný kľúč sa vytvára (už vyššie uvedenou) kombináciou troch kľúčov (Kľúč 1, Kľúč 2, Kľúč 3). Vysvetlivky sú v programe v textoch, ale treba si ich otvoriť (= ťuknúť na "zobraziť ďalší text") - s ich znalosťou a predchádzajúcim preštudovaním a precvičením predošlých častí interaktívnej besedy "Šifrujeme s Julesom Vernom" by každému malo byť všetko jasné.

ODKAZ@.html
je ďalšou možnosťou individuálnej a do krajnosti dovedenej zvláštnej šifrovacej zostavy na internetovej stránke "html". Stránka Odkaz@.html je tu.  a je v nej už vložený odkaz ako príklad; kľúč pre jeho otvorenie sú prvé písmená slov Štúrovho hesla: "Veľa tvoriť, málo troviť a učiť sa" - teda je to šesť písmen - vyskúšajte, ale pozor! - pre vážne použitie je kľúč príliš krátky voči dĺžke zprávy!, ale pre pohodlie pri vyskúšaní bol zvolený krátky. Táto stránka je odvodená od šifrovacej stránky Komfortnejšie šifrovanie jej zjednodušením a konkretizáciou.
Šifrovacia internetová stránka Odkaz@.html má tieto vlastnosti:
  • nesúmerné použitie: jednoduchosť pre príjemcu je dosiahnutá nutnosťou vložiť zašifrovaný text do zdrojového html kódu stránky Odkaz@.html u odosielateľa odkazu
  • obsahuje jedno malé okno na vloženie kľúča (pre lepšie pochopenie nezasväteného príjemcu odkazu je tam aj neprimerané, ale navyknuté slovo "heslo"), a:
  • obsahuje jedno väčšie okno pre odkaz (zašifrovaný aj otvorený, striedavo za sebou)
  • obsahuje jedno tlačidlo "Ukáž odkaz", ktorého stlačením sa striedajú funkcie odšifrovania (pre ukázanie odkazu) aj zašifrovania (pre prípravu odkazu zašifrovaním)
  • odkaz je v zašifrovanom stave zapísaný priamo v stránke *.html (pre prípravu odkazu treba stránku otvoriť v textovom editore a zašifrovaný odkaz vložiť do zdrojového textu html stránky namiesto raťazca, ktorý sa užívateľovi ukazuje vo väčšom okne)
  • príprava odkazu (jeho zašifrovanie) sa urobí s priamym použitím tej istej stránky, lebo:
  • zašifrovaný aj odšifrovaný odkaz sa ukazujú v tom istom okne (v tom väčšom) striedavo, postupným opakovaným stláčaním (jediného prítomného) tlačidla
  • vysvetlivky sa príjemcovi nezobrazujú, na jeho činnosť postačia tam prítomné krátke texty k oknu kľúča a k tlačidlu
  • datový obsah stránky je neveľký - stránka je malá (povedzme okolo 5 kilobyte), rýchlo sa načíta (neberúc do úvahy prípadnú závažnú veľkosť odkazu, ktorú nepredpokladám)
  • možnosť ďalšieho zjednodušenia stránky je vynechaním tlačidla, pričom na strane príjemcu postupným zapisovaním písmen kľúča by sa menil nezrozumiteľný obsah okna odkazu, čo by mohlo príjemcu zneistiť - až po vložení posledného písmena kľúča by sa odkaz ukázal správne; preto je tlačidlo ponechané, aby príjemca nebol zneistený
  • možnosť v okne neukazovať príjemcovi zašifrovaný odkaz, ale až otvorený odkaz, tá nebola použitá, aby sa odosielateľovi zachovala jednoduchá príprava odkazu zašifrovaním na tej istej stránke

Odkaz@.html súbor ako príloha ele pošty medzi dvomi užívateľmi poštovej služby @gmail.com má tieto vlastnosti:
1. Keď sa príloha stiahne do počítača a následne odtiaľ otvorí v internetovom prehliadači ako *.html súbor, funguje to; či je to tak otvorené, vidíme podľa toho, že v adresnom riadku prehliadača musí byť na konci názov toho súboru, vrátane koncovky "html".
2. Ak sa v prijatom "e-maili" otvorí ako "príloha" e-mailu, zobrazuje sa nie ako html súbor (t.j. v adresnom riadku nie je na konci názov toho súboru, vrátane koncovky "html"), ale ako "attachment" čo sa aj zobrazuje v adresnom riadku. V tomto prípade to nie je otvorené ako "html" súbor, teda sa nevykoná javascript v súbore obsiahnutý, ktorý zabezpečuje zamýšľanú funkčnosť, a teda odkaz sa neukáže v otvorenom stave. Toto je vlastnosť schránky elektronickej pošty.
3. Čo robiť? Použiť spôsob popísaný v bode 1 - ale pozrieť nižšie v bode 4, ako. Jedna z ďalších možností je e-mailom poslať iba hypertextový odkaz (nie súbor samotný), ktorý si príjemca stiahne alebo otvorí (pozrieť nižšie v bode 4) alebo prípadne ťuknutím na odkaz; pre lepšie pochopenie príklad odkazu: Odkaz@.html
4. Bezpečnostný rozdiel:
A.) Spôsob podľa bodu 1, v prípade ak sa z internetu (buď z prílohy e-mailu, alebo z hypertextového odkazu) stiahnutý súbor prenesie do iného počítača trvale odpojeného od internetu (žiadne fyzické pripojenie ani káblové, ani "wireless", ani emg. vyžarovaním), v ktorom sa v internetovom prehliadači otvorí ako "html" súbor, je bezpečný spôsob.
B.) Spôsob podľa bodu 3 by bol bezpečný len v prípade, že by operačný systém počítača internetovým pripojením neposkytoval smerom von žiadne údaje, o ktorých obsahu by užívateľ nič nevedel - s tým sa však vo všeobecnosti nedá počítať (prinajmenej od Win XP SP3 počnúc).
Záver: Pre bezpečné použitie takéhoto odkazu (Odkaz@.html) ako prílohy "e-mailu", napríklad pre prenos údajov do internetového bankovníctva, z hľadiska bezpečného prenosu (bezpečnosť použitého kľúča je vec iná, preberaná už predým) je bezpečný iba prípad popísaný v bode 4A.

PREDLŽOVANIE KĽÚČA


Vyššie v časti " Kľúč " sme vysvetlili, že ak kľúč výnimočne nie je taký dlhý ako šifrovaný text, musí sa pri šifrovaní (ručne alebo programom) kratší kľúč použiť viacnásobne opakovane na dĺžku šifrovaného textu, čím však však klesá odolnosť šifrovania proti (nežiadúcemu) rozlúšteniu. Tomu sa v našom procese súmerného prúdového šifrovania nedá vyhnúť.

Hľadáme možnosť mať výhodu dlhého kľúča (odolnosť), ale tak, aby bol použiteľný pohodlne, teda s týmito vlastnosťami:
  • dlhý kľúč (ideálne) nie kratší než zpráva (ak nejde o život, osobne by som použil aj kľúč nie kratší než tretina zprávy, ale to je len subjektívne presvedčenie),
  • z predošlej časti kľúča nemožno usudzovať na jeho nasledujúcu časť,
  • čo najmenej pomôcok na zostavenie kľúča - ideálne žiadne písané, aby sa dali zapamätať.

Nižšie ukazujeme niektoré možnosti, ako sa ku splneniu týchto požiadaviek priblížiť.



Kombinovanie kľúčov:

Môže byť výhodným kompromisom, ako sa k niektorým uvedeným vlastnostiam kľúča priblížiť, rôznymi spôsobmi kombinovať (niekoľko - tu uvedieme tri) rôzne kľúče K1, K2, K3, z ktorých sa zostaví výsledný kľúč K, ktorý sa už priamo použije pri šifrovaní.
Kombinovať kľúče je možné napríklad spočítaním kľúčov (šifra Vigenere, napr. K1 + K2 + K3 = K), čo znamená spočítať ich poradové čísla v (medzinárodnej, 26 znakovej) abecede, čo je (povedané rečou matematikov) operačná sústava s konečným počtom prvkov a definovanou operáciou (aj) spočítavania patriacou do metód konečnej (finitnej) aritmetiky, teda spočítavame modulárnym spôsobom (ako čas na ručičkových hodinkách - s cyklovaním dookola) - o to isté stále ide v celom tomto súmernom substitučnom prúdovom šifrovaní.

Tým však dĺžku kľúča nezväčšíme. Potrebujeme kľúč (okrem iného) ideálne taký dlhý ako šifrovaná zpráva. Preto hľadáme možnosti predĺženia kľúča. Isté možnosti ukazujeme nižšie:



Opakovanie kombinovaných kľúčov:

Pri prúdovom (postupnom) šifrovaní, ktorým sa tu výlučne zaoberáme, sa vždy v otvorenom texte, v kľúči aj v zašifrovanom texte spracúvajú postupne znaky s rovnakým poradím, a ak je kľúč kratší než zpráva, nezostáva iné, než kľúč v procese šifrovania používať opakovane viacnásobne.
Prirodzene nás to vedie k použitiu tejto podstaty aj pri kombinovaní kľúčov tým, že by sme kombinované kľúče predĺžili opakovaním, a potom skombinovali do výsledného kľúča. Zistíme, že tým vzniká opakovanie rovnakých (alebo posunutých) zhlukov (skupín) písmen, podobne ako pri fotografii zloženej z obrazových bodov, v ktorej sú dva rôzne obrazové rastre, vzniká opakovanie rovnakých zhlukov (skupín) obrazových bodov = moiré. Podobné moiré môže vzniknúť aj z písmen - ukážeme to tu na príklade kombinácie (spočítania) dvoch kľúčov:
K1 = "voda", K2 = "zub". Napíšme ich pod seba s opakovaním a skombinujme ich - spočítajme ich poradové čísla v abecede a súčet preveďme späť na písmená výsledného kľúča K, takto:

vodavodavodavodavodavodavodavodavodavodavodavoda
zubzubzubzubzubzubzubzubzubzubzubzubzubzubzubzub

21;14;03;00;21;14;03;00;21;14;03;00;21;14;03;00;21;14;03;00;21;14;03;00;...
...21;14;03;00;21;14;03;00;21;14;03;00;21;14;03;00;21;14;03;00;21;14;03;00;

25;20;01;25;20;01;25;20;01;25;20;01;25;20;01;25;20;01;25;20;01;25;20;01;...
...25;20;01;25;20;01;25;20;01;25;20;01;25;20;01;25;20;01;25;20;01;25;20;01;

súčet je (modulo 26):
20;08;04;25;15;15;02;20;22;13;23;01;20;08;04;25;15;15;02;20;22;13;23;01;20;... ...08;04;25;15;15;02;20;22;13;23;01;20;08;04;25;15;15;02;20;22;13;23;01;

prevedené späť na písmená výsledného kľúča K (= K1 + K2) dostávame:
uiezppcuwnxbuiezppcuwnxbuiezppcuwnxbuiezppcuwnxb

kde bezpečne vidíme, že sa opakuje skupina prvých dvanástich znakov:
uiezppcuwnxb
a to spolu 4x za sebou - ďalším takýmto predlžovaním kľúča by sa len zvyšoval počet opakovaných dvanásťpísmenových skupín.
Každá pravidelnosť pri šifrovaní znižuje jeho odolnosť, preto aj takéto opakovanie skupín písmen je riziko, ktorému sa chceme vyhnúť čo najviac.

Dôležité:
Počet znakov v opakovanej skupine je najmenším spoločným násobkom počtu znakov jednotlivých kľúčov.
V príklade vyššie je to počet 4 a 3 s najmenším spoločným násobkom 12 - to je počet opakovaných písmen.



Voľba dĺžky kombinovaných kľúčov pri ich opakovaní:

Z uvedeného príkladu vidíme, že pri kombinácii opakovaných kľúčov je výhodné použiť také dĺžky kombinovaných opakovaných kľúčov (K1, K2, K3), aby ich spoločný násobok bol čo najväčší.
Pri takomto opakovaní kombinovaných kľúčov sa opakovaniu skupín písmen nedá úplne vyhnúť, preto je žiadúce, aby skupina opakovaných znakov bola čo najdlhšia.
Úvahou ľahko prídeme k tomu, že:
najväčšiu neopakovateľnú dĺžku vytvoríme, keď kľúč K1 bude (čo najvyššie) prvočíslo, a kľúč K2 bude o jeden znak kratší než K1.

Napríklad:
ak K1 bude mať 13 znakov a K2 bude mať 12 (=13-1) znakov, dĺžka opakovania bude 156 (=13 x 12) znakov (najmenší spoločný násobok čísel 13 a 12), čo je celkom slušné číslo.
Keby sme mali K1 s 15 znakmi, a K2 s 10 znakmi (čo je spolu tiež 25 ako v predošlej vete), bola by dĺžka opakovania 30 znakov (=najmanší spoločný násobok čísel 15 a 10), teda menej než 20% predošlého, pritom na zapamätanie sú obidva prípady rovnako dlhé!
Z toho vidíme, aké je dôležité voliť správnu dĺžku kombinovaných kľúčov.

Jedna z možností je zvoliť jeden kľúč, čiastočným(!) opakovaním ho predĺžiť na najbližšie vyššie prvočíslo - to bude K1. Z tohoto K1 odvodíme K2 tak, že z neho vynecháme prvý znak. Potom K1 aj K2 kombinujeme (spočítame). Príklad:
Zvolím prvé písmená prvej slohy štátnej hymny Slovenskej republiky: "ntsbhdb" (= 7 znakov(tiež prvočíslo)) a čiastočným opakovaním predĺžim na najbližšie prvočíslo 11, teda K1=ntsbhdbntsb, z toho vynechaním prvého písmena vytvorím K2=tsbhdbntsb. Ich kombináciou (sčítaním K1 + K2 = K) dostávam výsledný kľúč K=
gltikeogltufuzeiqufultoavcuwtomkcuwtoavcgltiqufuzeufuzeogltiwtoavcamkcavcuwtogltuzeiqufufultikeogltomkcogcamkc
ktorý má dĺžku opakovania 110 znakov (=11 x 10) čo nie je zlý výsledok z takého ľahko zapamätateľného postupu. Pravda, ideálny nie je, lebo sa tam napríklad 3x opakuje reťazec "glti".



Spôsoby výberu a kombinácie kľúčov:

Pri kombinácii kľúčov uvedeným opakovaním (spočítaním, spôsobom Vigenere) sú (nie výlučne) tieto možnosti:
  •   Prvý dlhý nezapamätateľný kľúč (K1) sa kombinuje s ďalšími, nie dlhými zapamätateľnými kľúčmi (K2, K3, príp. aj viac) - to má tieto možnosti:
  •   K1 sú náhodné znaky; nevýhoda je: treba zapísať, odovzdávať, skrývať; príklad: je možné použiť tento program.
  •   K1 sú znaky (dohodnutým spôsobom) vyberané trebárs z dohodnutého textu; výhoda je: možno použiť napr. aj verejne dostupný (dostatočne rozľahlý) text, napríklad knihu; príklad: je možné použiť tento program.
  •   K1 sa vytvorí dohodnutým zapamätateľným spôsobom z kratšieho základu (napr. kľúčovej vety); nevýhoda je: vedie to viac či menej k cyklovaniu, teda opakovaniu skupín znakov, čo znižuje odolnosť; variantou tohoto spôsobu je:
  •   K1 sa vytvorí dohodnutým zapamätateľným spôsobom z kratšieho základu (napr. kľúčovej vety) ako v predošlom bode, ale s pridaním necyklovanej (nemodulárnej) operácie.

Aj keď zvolíme nepríliš krátke kombinované kľúče (napr. v príklade vyššie je to 11 a 10 znakov), síce ich kombináciou môžeme získať zaujímavú dĺžku kľúča (v tom príklade je to 11 x 10 = 110 znakov), ale stále to môže mať ďaleko k dĺžke porovnateľnej s dĺžkou rozsiahlejšieho textu, ktorý chceme zašifrovať.
Preto hľadáme možnosť zásadného predĺženia výsledného kľúča, pri zachovaní výhod kombinovaných kľúčov.
Pritom narážame na ťažkosť, ktorú spôsobuje cyklovanie pri kombinovaní kľúčov, ktoré, takisto ako samotné naše šifrovanie, používa operácie v uzavretom operačnom systéme písmen abecedy, má modulárny charakter, čo zákonite vedie k opakovaniu (bárs i s dlhou periódou). Dôjdeme preto k myšlienke, že do predĺženia kľúča treba zaviesť premennú definovanú mimo modulárneho operačného systému abecedy. Najjednoduchšie by bolo použiť poradové číslo znaku, s ktorým by sa vykonala operácia (najjednoduchšia je sčítanie) taká, aby sa nedala jednoducho vyeliminovať. Mohli by sme zaviesť poradové číslo znaku plus posun a skok, ktoré vnášajú ľubovoľné množstvo možností a v dôsledku toho vysokú odolnosť voči prelomeniu šifrovania s takto predĺženým kľúčom.

Program len pre prípravu veľmi dlhého výsledného kľúča kombináciou až deviatich základných kľúčov ich spočítaním postupne po jednotlivých písmenách, k čomu sa samočinne ku každému písmenu výsledného kľúča pripočítavajú všetky(!) predošlé (už vytvorené) písmená výsledného kľúča, je tu.
Tento program je len pre prípravu kľúča a s výhodou sa môže použiť aj na tvorbu dlhých nezapamätateľných hesiel pomocou niekoľkých dobre zapamätateľných slov.

Ďalší program je aj pre šifrovanie aj pre prípravu veľmi dlhého konečného kľúča, kombináciou až deviatich základných kľúčov ich spočítaním postupne po jednotlivých písmenách, k čomu sa samočinne ku každému písmenu výsledného kľúča pripočítavajú všetky(!) predošlé (už vytvorené) písmená výsledného kľúča, ďalej s následným posunom a skokom, čo vytvára veľmi veľa možností konečného kľúča, pričom dĺžka konečného kľúča sa samočinne vytvára zhodne s dĺžkou textu, program je tu. Lepší spôsob pre predlžovanie kľúča nepoznám. Šifrovanie poskytuje (bežné, ale klasicky dokonalé a jednoduché) Beaufort (K=A+Z). Odporúčam oboznámiť sa a vyskúšať, bližšie vysvetlenie je v záhlaví stránky programu.



Ako šifroval odboj 1940

Toto je odlišné šifrovanie: jeden znak sa šifruje do dvoch číslic, takže zašifrovaná zpráva má dvojnásobný počet znakov ako otvorený text.
Rukopisné neupravené (zle čitateľné) výpisky z knihy o odboji - vypísané azda kolo r. 1980:




Úvaha

Pochybujem o tom, že by za súčasných okolností niekto naplno využil to, čo poskytujú tieto internetové Študijné texty a pomôcky pre interaktívnu besedu Šifrujeme s Julesom Vernom. Dôvody vidím dva:
  • Ľudia spohodlneli, menej si zabezpečujú vlastnou činnosťou, viac používajú výsledky cudzej práce (= aj počítač, internet,...),
  • Procesormi riadená časť sveta (teda aj internet) je dnes plná nesúmerného šifrovania.

Zväčša sme na nesúmerné šifrovanie odkázaní pri šifrovaní počítačových súborov, ale v prípade šifrovania textov nie sme na ne odkázaní.
Nesúmerným šifrovaním textov sa nezaoberám z dvoch dôvodov:
  • ponúkané programy spravidla nie sú jednoduché, niektoré vyžadujú inštaláciu, nie sú "multiplatformné", nemajú zdrojový kód dostupný a je zložitejší než tu použitý jednoduchý javascript, teda málo užívateľov ich môže preskúmať, preto sa na ne nedá plne spoľahnúť, najmä že neobsahujú užívateľovi skrytú funkčnosť
  • kľúče asymetrického šifrovania (podľa mojich vedomostí) prakticky nie je možné uschovať v inej než digitálnej forme (žiaden nenápadný alebo skrytý zápis na papier, žiadna možnosť zapamätania, žiadna možnosť vlastného zadania - vytvára ich program). Digitálna forma je citlivá na zničenie aj na okopírovanie.

Opak nevýhod nesúmerného šifrovania je výhodou šifrovania súmerného:
  • kód programov môže byť krátky, preskúmateľný, ľahko upraviteľný
  • je veľa možností ohľadne kľúča.

Keď som na internete hľadal praktické použitie súmerného šifrovania (programy), najprv som nenašiel nič, potom odkazy na to čo bolo vytvorené kedysi a už nejestvovalo, a funkčné som našiel tuším dve stránky. Pravda, použitý jazyk zužuje možnosti. Tak to bolo aj v tom nájdenom a tak je aj tu: porozumenie slovenčine je v neveľkom okruhu ľudí, i keď veľa sa dá pochopiť s univerzálne zrozmiteľného zdrojového textu samotného, takých osôb však z viacerých príčin (najmä nedostatok vôle) bude len veľmi málo.




Autor: Ing. Vojtech Brabenec, Trenčín, 2016-2017.
Autor poskytuje obsah svojho diela podľa svojho subjektívneho najlepšieho vedomia a svedomia, ale nemôže zaručiť jeho bezchybnosť ani správnosť, nedáva žiadne záruky ani nemá možnosť ovplyvniť použitie diela na strane príjemcu či iné okolnosti použitia diela, preto sa autor zrieka zodpovednosti za použitie svojho diela, a je vecou rozhodnutia každého príjemcu diela či a za akých okolností použije autorove dielo ale vždy je povinný dodržať právo najmä Autorský zákon.
V prípade zistenia nesprávností autor prosí o ich oznámenie.
Toto dielo chráni Autorský zákon. Toto dielo zahrnuje aj hypertextovými odkazmi prepojené podstránky.
Autorovi patria práva hlavne podľa autorského zákona (618/2003 v aktuálnom znení), najmä
označenie autorstva, nepozmeňovanie diela, udeľovanie súhlasu na verejný prenos a iné rozširovanie, a právo na odmenu za využitie diela.
(Koniec diela.)




Nižšie je prípadná reklama poskytovateľa: