Sifrovaci algoritmy (Cryptography)

  1. Vysvetleni a informace
  2. MonoAlfaBeticke
  3. PolyAlfaBeticke
  4. Transpozicni
  5. Dalsi algoritmy
  6. funkce XOR
  7. dvojkova soustava BIN

Top

Algoritmy monoAlfaBeticke

Jedno pismeno abecedy nahrazuje jeden znak kodu (substituce).

1. Morzeovka

	International Morse code 1844
	A ·-    I ··    Q --·-  1 ·----     ···/---/··· S-O-S
	B -···  J ·---  R ·-·   2 ··---     (signal nouze, volani o pomoc, zachrante mne)
	C -·-·  K -·-   S ···   3 ···--
	D -··   L ·-··  T -     4 ····-     CH ---- (nebo pouzijte C+H)
	E ·     M --    U ··-   5 ·····
	F ··-·  N -·    V ···-  6 -····
	G --·   O ---   W ·---  7 --···
	H ····  P ·--·  X -··-  8 ---··
	                Y -·--  9 ----·
	                Z --··  0 -----

	-- --- ·-· ··· ·       -·-· --- -·· ·
	M   O   R   S  E        C   O   D   E

	Zpusoby nauceni

	https://cs.wikipedia.org/wiki/Morseova_abeceda
	https://en.wikipedia.org/wiki/Morse_code_mnemonics
	Pomoci slov s dlouhymi a kratkymi slabikami zacinajici pismenem pro kod.
	Pomoci obrazkove tabulky.
	Pomoci cetnosti znaku (asi starsi nebo mezinarodni rozdeleni)
		T- M-  O-   Ch-   
		            Ö·    
		       G·   Q-    
		            Z·    
		   N·  K-   Y-    
		            C·     C = -(T)·(N)-(K)·(C) = -·-·
		       D·   X-    
		            B·     B = -(T)·(N)·(D)·(B) = -···
		E· A-  W-   J-     A = ·(E)-(A) = ·-
		            P·    
		       R·   Ä- 
		            L· 
		   I·  U-   Ü- 
		            F· 
		       S·   V- 
		            H· 
2. Brailovo pismo pro nevidome
A/1B/2C/3D/4E/5F/6G/7H/8I/9J/0 KLMNOPQRST UVWXYZ
3. Prstova abeceda
finger alphabet
4. Semaforova signalizace praporky / baterkami
semaforova-signalizace semaforova-signalizace
5. Namorni signalizace praporky (International marine signal flags)
naval signals
6. Panackova abecedu ze Sherlocka Holmese
sherlock holmes dancing man
7. Zamena pismen

	ABCDEFGHIJKLMNOPQRSTUVWXYZ
	IPEBTLXRDKVZFAQMWHOCJSGYUN

        AHOJ = IRQD

8. Posun pismen +2 (Julius Caesar code)

	ABCDEFGHIJKLMNOPQRSTUVWXYZ	(26)
	yzABCDEFGHIJKLMNOPQRSTUVWXYZ

	AHOJ = YFMH

9. Posun pismen +-5 (tabulka s posuvnym prouzkem a otvory)

	+---------------------+
	|  ABC..._______   _  |   
	| |             | | | |   | t vuyzabcdefghchijklmnop |
	| |_____________| | | |   | 5 432101234505 432101234 |
	|                 | | |	+ |                          |
	|  LMN..._______  | | |	  |                          |
	| |             | | | |   | hchijklmnoprst vuyzabcde |
	| |_____________| |_| |   | 5 432101234505 432101234 |
	+---------------------+

	 ABCDE.....  _
	|uyzabc...| |.|
	|         | |3|   klic = -3
	 LMNOP..... |.|
	|ijklmn...| |.|
	|         | |_|

	MONOPOL (-3) = jlklmli

	Otvory navic na mrizce nebo cisla a pismena navic na karticce slouzi ke zmateni nepritele.
	Je dobre drzet obe casti zvlast, aby samostatne nedavali smysl.
	Take to muzete resit jako rotujici kruhy. A pripadne otocit po kazdem pismenu o cislo
	v tabulce (podobne pracuje Enigma).

10. Zamena pismene za cisla a zlomky

	1     2      3     4     5
	12345 123 45 12345 12345 12345 
	ABCDE FGHchI JKLMN OPRST UVWYZ	(25 znaku, bez QX, navic Ch)

	AHOJ = 1/1 2/3 4/1 3/1

	1    2    3    4    5    6    7
	ABCD EFGH IJKL MNOP QRST UVWX YZ

	AHOJ = 1/1 2/4 4/3 3/2
	       1/1/2/4/4/3/3/2 = ·/./-·/--·-/·---/-··/---/-·
	Primo se nabizi prepsat to na morse kod s nahodnym stridanim tecek a carek o stejnem poctu.

	Polybiuv ctverec

	Bez Qx   Bez Q     I/J jako jedno pismeno (wiki)
	 1 2345    12345    12345
	1A FJOU   1ABCDE   1ABCDE
	2B GKPV   2FGHIJ   2FGHIK (I/J)
	3C HLRW   3KLMNO   3LMNOP
	4DchMSY   4PRSTU   4QRSTU
	5E INTZ   5VWXYZ   5VWXYZ

	AHOJ = 1/1 2/3 4/1 3/1 (zlomky)
	AHOJ = 11  23  41  31  (xy, Polybiuv ctverec, prvni tabulka, bez QX s Ch, pismena ve sloupcich)

11. Mrizka s teckami

	Poloha tecky udava pozici v bunce, tvar okraje udava polohu bunky.

	ABC|DEF|GHch    		  +--- ---+
	---+---+----    AHOJ =	.  | | .  |.    . |
	IJK|LMN|OPQ     	---+ +--- +--- ---+
	---+---+----    	
	RST|UVW|XYZ     	A    H    O    J

	(bez Ch)      Dvojity (bez QW)
	ABC|DEF|GHI   AB|CD||EF|GH                     ___  ___
	---+---+---   --+--++--+--     .  ||  ||  .  ||.      .||
	JKL|MNO|PQR   IJ|KL||MN|OP     ___||  ||___  ||___  ___||
	---+---+---   --+--++--+--
	STU|VWX|YZ    RS|TU||VX|YZ     A      H      O      J
	            
	Pocet tecek udava tabulku, tvar okraje pak polohu bunky.

	A|B|C   I|J|K   R|S|T          ___   ___
	-+-+--	-+-+-	-+-+-      |  |   |    .|  |.  |
	D|E|F   L|M|N   U|V|W   ___|  |   |     |  |___|
	-+-+--	-+-+-	-+-+-
	G|H|Ch  O|P|Q   X|Y|Z   A     H      O     J

	Deleny kriz (Freemason code)
	                                 /            +-- +--    
	A|B|C   J.|K.|L.  \S /   \W./   <      | |  | |.  |.  /.\
	-+-+-   --+--+--  V\/T   Z\/X    \   --+ +--+ +--        
	D|E|F   M.|N.|O.   /\    ./\.
	-+-+-   --+--+--  /U \   /Y.\   T    A   B    O   R   Y
	G|H|I   P.|Q.|R.
Top

Algoritmy PolyAlfaBeticke

Jedno pismeno abecedy nahrazuje pokazde jiny znak kodu (podle pravidel algoritmu).

1. Posun podle pozice predchoziho pismene zpravy / kodu

	ABCDEFGHI JKLMNOPQR STUVWXYZ
	123456789 123456789 12345678

	(0)                 (0)
	A+0 = A (A=1)       A+0 = A (A=1)
	H+1 = I (H=8)       H+1 = I (I=9)
	O+8 = W (O=6)       O+9 = X (X=6)
	J+6 = P             J+6 = P

	AHOJ -> AIWP     AHOJ -> AIXP

	Upravy:
	- jednou plus, podruhe minus
	- plus jednou podle predchoziho pismene, podruhe podle predchoziho kodu
	- plus pro kazdou samohlasku, minus pro kazdou souhlasku
	- +1 pro pismeno za samohlaskou, -1 za souhlaskou (predchoziho kodu, usnadni desifrovani)
	- plus pro suda cisla, minus pro licha

2. Posun podle poradi v textu (Vigener code)

	a) posunuti +1   b) nahodne posunuti s nahodnym poradim

	  ABCDE...         ABCDE     ABCDE
	1 ABCDE...       1 CEBDA   1 ....A
	2 BCDEA...       2 BDAEC   2 ..A..
	3 CDEAB...       3 ECDAB   3 ...A.
	4 DEABC...       4 ABDCE   4 A....
	5 EABCD...       5 DACBD   5 .A...

	1234512   pos   1234512
	ABECEDA   inp   ABECEDA
	ACBADDB   out   CDBEDDB

	pos(A) = 1                                      a)| b)
	code(line(pos(A)), pos(A)) = code(line(1), 1) = A | C
	pos(B) = 2
	code(line(pos(B)), pos(B)) = code(line(2), 2) = C | D
	pos(E) = 3
	code(line(pos(E)), pos(E)) = code(line(3), 3) = B | B
Top

Transpozicni

Zmena pozice pismen.

Ruzna premisteni

	a) Pozpatku
	AHOJ = JOHA
	AHOJ ADELKO = JOHA OKLEDA

	b) Prvni a posledni pismena
	AHOJ ADELKO
	A         H
	 O       J
	  A     D
	   E   L
	    K O
	AOAEK OLDJH

	c) Spojovani dvou radku

	S l a N a h o d o u U J e z
	 i r k a K o l e m S k a l
	SilrakNaaKhooldeomuSUkJaelz

	Mame tyc / hranol stejneho prumeru. Omotame ji prouzkem papiru. Pak podel tyce napiseme
	zpravu. Pak to lze prouzek poslat ptaci postou.	(Scytale code, Aulus Gellius, 500–400 prnl.).

	d) Listy   e) Sloupce   f) Had        g) Zig-zag    h) Spirala (Snek)
	                                           __  __       ____ 
	|O|A       AO | /|      AJ    _   _   AH  / / /     JO |  _ |     
	|J|H       HJ |/ |      HO |_| |_|    OJ / / /      AH | |__|     
	                                         |/ /          |____
	Listy - zapiseme do sloupcu a rozstrihame papir na prouzky.
	Snek - zapiseme od stredu po spirale.
	Psani pozpatku vylepsi sifru.

	i) Sachove figurky - sachovy zapis polohy dalsiho pismene
		K král D dáma  V věž  S střelec J jezdec (P) pěšec | 1-8,a-h
		K king Q queen R rook B bishop  N knight (P) pawn
		Kg7 h6 - kral na policko g-7, pesec na h6

	j) Algoritmus Knight Tour pro vyplneni sachove plochy skakanim kone (pro plochu 8x8 existuje
	asi 2*10^16 reseni).
	Jine obrazky jednim tahem, treba hvezdy 3x3, pohyb kone, prvni pismeno ve stredu. Lze si
	pripravit tabulku pro premisteni.

	147 147602385 - poradi pro premisteni pismen podle pohybu kone v poli 3x3
	602
	385

	SlaNahodo uUJezirka kolem skal...
	012345678 012345678...
	147602385 147602385
	ladoSaNoh

	Knight Tour obrazky
8x8
8x8
8x8
3x3, 3x3, 4x4 a 5x4
Osmismerky, krizovky

	Osmismerka - tvorba: vypiseme nahodila slova do ruznych smeru, ruzne se krizici. A na zbyla
	volna policka doplnime text zpravy. Obrys muze tvorit obrazek, jablko, smajlik.

	LROAJ   LROAJ LROAJ \ROAJ \ROA| \RO|| \RO|| 
	ŽIDLE   ----- ----- ----- ----| ---|| |--|| 
	ÍHŠOH   ÍHŠOH ÍH/OH ÍH\OH ÍH\O| ÍH\|| |H\|| 
	ŘYLKL   ŘYLKL Ř/LKL Ř/L\L Ř/L\| Ř/L|| |/L|| 
	MÍKŠA   MÍKŠA /ÍKŠA /ÍKŠ\ /ÍKŠ| /ÍK|| |ÍK||   ROHLÍK

                ŽIDLE MYŠ   LIŠKA JEHLA ŠKOLA MŘÍŽ

Kazde treti pismenko je zprava

	..A ..H..O. . J......
	Sla nahodou u jezirka kolem skal...

	Upravy:
	- stridam vzdalenost 3 2 3 2...
	  ..A.H..O.J......
	  SlaZHorO Jedenacte
	- stridam vzdalenost 333 222 333 222...
	  ..A..H..O.J.T.O..J..S.E.M.x.
	  SlaNahodouJitrocejemSlevMalo
	- stridam vzdalenost 333 22 4444 333 22 4444...

Otocna mrizka (Fleissner)

	Pozn.: Cardanova mrizka - Obdelnik s nahodne vystrizenymi otvory ruzne delky pro cteni

	Tvorba

	0123|C840	0.23|C.40	x.xx|x.xx
	4567|D951	45.7|D9.1	xx.x|xx.x
	89AB|EA62	89AB|EA62	xxxx|xxxx
	CDEF|FB73	C.EF|F.7.	x.xx|x.x.
	----+----	----+----	----+----
	37BF|FEDC	3.B.|F.DC	x.x.|x.xx
	26AE|BA98	.6.E|BA.8	.x.x|xx.x
	159D|7654	159D|765.	xxxx|xxx.
	048C*3210	048.*321.	xxx.*xxx.

	* urcuje natoceni sifrovaci mrizky
	0-9A-F jsou policka. Policko 1 v prvnim ctverci vybarvim (pozdeji vystrihnu), v ostatnich
	ctvercich preskrtnu. Atd...

	Sifrovani

	1. * je dole	2. +90 st	3. 4.
	xAxx|xHxx	xxIx|xxxx	.AI. .H..
	xxOx|xxJx	xxxL|OxxV	..OL O.JV
	xxxx|xxxx	xxAx|xxNx	..A. ..N.
	xAxx|xDxE	Axx.|xxxx	AA.. .D.E
	----+----	*---+----	         
	xLxK|xOxx	xxxx|xxxx	.L.K .O..
	MxOx|xxJx	xxx.|.xx.	M.O. ..J.
	xxxx|xxxE	xxVx|xx.x	.... ...E
	xxxM*xxxI	..xx|.xxx	...M ...I

	AHOJ ADELKO	LOVANA
	MOJE MI

	1. natocim mrizku * dolu, doplnim cast zpravy
	2. otocim mrizku o +90 stupnu, doplnim dalsi cast zpravy
	3. viz 2.
	4. viz 2.
	5. na volna mista doplnim nahodna pismena (pozor na neumyslnou zmenu stylu psani)
	(nebo natacim mrizku nahodile nebo ji preklopim podel hrany)

Poradi pismen pomoci barev duhy

	Kazdy 7 pismen obarvime sedmi barvami duhy ve spravnem poradi a pak techto 7 pismen nahodne
	promichame.
	Pro dekodovani je treba kazdych 7 pismen seradit podle barvy duhy.

	Nebo to sestavime jako RLE kod, obrazek.
	AHOJ
	A1H2O3J4   - dopiseme poradi
	O3J4H2A1   - a) nahodne promichame a prepiseme na pismena
	xxx....xx. - b) cisla pixelujeme na cernou, bilou, plus binarni kod pismen
	OOOJJJJHHA - c) nebo jen opakovani pismen, ale to je prilis pruhledne
	
	O3J4H2A1   - nahodne promichame
	OCJDHBAA   - cisla nahradime pismeny ABCD... (na konec je dobre dat nahodile lichy znak)
	           - cisla nahradime zdanlive nahodnymi pismeny (promichane a prirazene pro 1,2,3)
	OEJCHDAA   - nebo pro poradi samohlasky a souhlasky pro suda a licha (135 = aei, 246=bcd)
	O3J4H2A1 = OJHA 3421 = OJHA + -.-/----/.-/. d) morse kod, pocet znaku odpovida poradi
	O3J4H2A1   - e) prevedeme na morse kod a falesny morse kod, zachovame poradi

Digitalni displej (7-segmentovy, 7-bitovy kod)
	 _     _  _       _   _  _   _   _ 
	| | |  _| _| |_| |_  |_   | |_| |_|
	|_| | |_  _|   |  _| |_|  | |_|  _|

	a) Digit znaky vyuzijeme jako smer kodovani.

	Sla Nahodou U Jezirka Kolem Skal...
	 _       _   _       _ 
	| |   |  _|  _| |_| |_ 
	|_|   | |_   _|   |  _|

	 S   .   o   z   .   m     1 
	l a . o . u . i k o s .   2 3 213
         .   .   u   r   l   k     4 
	n a . d j . . k . e . a   5 6 546
	 h   .   e   a   .   l     7  7   2135467

	Tecky doplnim nahodnymi pismeny.

	b) Poradi pro premisteni pismen podle digitu

	Sla Nahodou U Jez...

	2135467 2135467
	lSaaNho odujUez
Top

Dalsi algoritmy

Pro kodovani je mozne pouzit i kompresni algoritmy nebo transformace.

Morzeovka jinak

	a) doplneni falesnym morse
	AE
	  /  .  -  /  -  = AE   - puvodni zprava je kazdy treti znak
	.-/..../---/.--- = AHOJ - doplneno
	AHOJ
	
	b) velikost pismen/cisel
	- = AZ    . = az
	      .-/..../---/.---       = AHOJ
	JeNdA_sI_mezi_NAS_lEHA_vecER do poslete, protoze je maly.

	c) - = 123   . = 456   / = 789
	      .-/..../---/.---       = AHOJ
	       3      232  313       (pro tecky nahodne vyberu cisla z 1 2 3)
              5  6565     4          (pro carky nahodne vyberu cisla z 4 5 6)
	      5396565823284313       (a ostani 7 8 9 jsou lomitka)

	d) - = 267   . = 139   / = 458 (nebo, abych to zkomplikoval, namicham to jinak)
	      .-/..../---/.---       = AHOJ
	      3789391572253662      

	e) Morzeovka pomoci barev duhy na pismenech

	f) Pouziti hudebnich not jako morzeovku.

	g) Digitalni displej (7-segmentovy, 7-bitovy kod)
	 _     _  _       _   _  _   _   _ 
	| | |  _| _| |_| |_  |_   | |_| |_|
	|_| | |_  _|   |  _| |_|  | |_|  _|
	7-bit kod muzeme zobrazit jako morse kod, lomitko davame nahodile po 1-5 bitech.

	h) Pismena na 5-bit kod a pak zapsat jako morse, lomitka davame nahodile po 1-5 bitech.

Posun pomoci kodoveho klice

	ABCDEFGHI JKLMNOPQRS TUVWXYZ
	          1111111111 2222222
	123456789 0123456789 0123456 (1-26)
	123456789 1234567891 2345678 (1-9,1-9,1-9) - nebo to muzete ocislovat takto

	text = AHOJADELKO (klic+sifra)
	klic = AHOJ = +1 +8 +15 +10

	text = AHOJADELKO
	klic = AHOJAHOJAHOJ
	kod  = BPDTBLTVLW
	B = A + A
	P = H + H
	D = O + O
	T = J + J
	B = A + A
	L = D + H
	T = E + O
	V = L + J
	L = K + A
	W = O + H

3. BWT funkce (Burrows-Wheeler transformace)

	Je to transformace vyuzivajici serazovani znaku stabilnim serazovacim algoritmem.
	Viz kompresni algoritmy - BWT.


		ABCDEFG		AG	A2G2 i = serazeno podle A
	INP	1423422		12	 1 2 1
	rot+1	2142342 	22	 2 2 2
	rot+2	2214234 	24	 2 4 3
	rot+3	4221423 	43	 2 4 6
	rot+4	3422142 	32	 3 2 5
	rot+5	2342214 	24	 4 3 4
	rot+6	4234221 	41	 4 1 7 (i G2 = A1[0])

	INP = 1423422
	A1  = AGFEDCB = 1 224324
	G1  = GFEDCBA =   224324 1 (pozpatku INP)
	A2  = 1222344 (serazenim sloupce A1, G1 stabilnim serazovacim algoritmem podle hodnot v A1)
	G2  = 2244231
	i   = 7 (pozice prvniho cisla z A1 po serazeni ve sloupci G2)
	OUT = G2 + i = 2244231 + 7

	Vysvetleni je slozitejsi. Jakymsi serazovacim zpusobem preusporadam znaky. K preusporadani
	zpet je treba inxexu (i).
	Pozn.: Pozor, BWT pracuje se serazovanim tak, ze je mozne kousicky zpravy precist. Neni
	primo urcene k sifrovani.

Pridani falesneho bitu po 4 bitech

	Prevod na dvojkovou soustavu BIN
	A:00000 E:00100 I:01000 M:01100 Q:10000 U:10100 Y:11000
	B:00001 F:00101 J:01001 N:01101 R:10001 V:10101 Z:11001
	C:00010 G:00110 K:01010 O:01110 S:10010 W:10110
	D:00011 H:00111 L:01011 P:01111 T:10011 X:10111

	text(A) = AHOJ
	A (bin) = 00000 00111 01110 01001
	5na4    =  0000  0001  1101  1100  1001 (spojim 5-bit a rozdelim po 4 bitech)
	B (bin) = 10000 10001 01101 01100 11001 (pridam falesny nahodny bit, abychom ziskali pismena)
	text(B) = QRNMZ

	Binarni kod rozdelim po 4 bitech. Doplnim nahodnymi bity na 5 bitu, abych to mohl prevest
	zpet na pismena.
	Cili, pri dekodovani odstranim kazdy paty bit.

XOR funkce

	Funkce XOR pracuje s binarnim kodem, takze je nutne prevest pismena na binarni kod.

	A B | C     C = A xor B (A = C xor B, B = C xor A)
	0 0 | 0
	0 1 | 1
	1 0 | 1
	1 1 | 0

	Prevod na dvojkovou soustavu BIN
	A:00000 E:00100 I:01000 M:01100 Q:10000 U:10100 Y:11000 2:11100
	B:00001 F:00101 J:01001 N:01101 R:10001 V:10101 Z:11001 3:11101
	C:00010 G:00110 K:01010 O:01110 S:10010 W:10110 0:11010 4:11110
	D:00011 H:00111 L:01011 P:01111 T:10011 X:10111 1:11011 5:11111

	Pouzijeme xor s predchozim bitem zpravy.
	text(A) = AHOJ
	A = 0 0000001110111001001
	B = 0 00000001110111001001 (0 + A)
	C = 0 0000001001100101101 = C = A xor B
	text(B) = AEZN

	Prevod zpet

	text(A): AEZN
	A = 000000001001100101101 (C z predchoziho)
	B = 0
	C = 0 = C = A xor B (B(n+1) = C[n])

	A = 000000001001100101101
	B = .0     .   .
	C = .0     .   .
	B = ..0    .   . (posledni C byla 0)
	C = ..0    .   .
	B = ...0   .   .
	C = ...0   .   .
	B = ....0  .   .
	C = ....0  .   .
	B = .....0 .   .
	C = .....0 .   .
	C = 000000 .   . (0 + 'A')
	B = ......0.   .
	C = ......0.   .
	B = .......0   .
	C = .......0   .
	B = ........0  . (posledni C byla 0)
	C = ........1  .
	B = .........1 . (posledni C byla 1)
	C = .........1 .
	B = ..........1. (posledni C byla 1)
	C = ..........1.
	C = ......00111. ('H')
	B = ...........1 (posledni C byla 1)
	C = ...........0
	B = ............0 (posledni C byla 0)
	C = ............1
	B = .............1
	C = .............1
	B = ..............1
	C = ..............1
	B = ...............1
	C = ...............0
	C = ...........01110 ('0')
	B = ................0
	C = ................0
	B = .................0
	C = .................1
	B = ..................1
	C = ..................0
	B = ...................0
	C = ...................0
	B = ....................0
	C = ....................1
	C = ................01001 ('J')
	text(C): 0 + AHOJ (pri kodovani jsme do B pridali nulu)

XOR + klic (mozna i nebo OR + klic)

	Funkce XOR 
	A B | C     C = A xor B (A = C xor B, B = C xor A)
	0 0 | 0
	0 1 | 1
	1 0 | 1
	1 1 | 0

	Prevod na dvojkovou soustavu BIN
	A:00000 E:00100 I:01000 M:01100 Q:10000 U:10100 Y:11000 2:11100
	B:00001 F:00101 J:01001 N:01101 R:10001 V:10101 Z:11001 3:11101
	C:00010 G:00110 K:01010 O:01110 S:10010 W:10110 0:11010 4:11110
	D:00011 H:00111 L:01011 P:01111 T:10011 X:10111 1:11011 5:11111

	text(A) = AHOJ
	klic(B) = EZEZ (klic = EZ, EZEZ...)
	A (bin) = 00000001110111001001
	B (bin) = 00100110010010011001
	C       = 00100111100101010000   C = A xor B
	text(C) = E4KQ
	C[0] = A[0] xor B[0] = 0 xor 0 = 0
	C[1] = A[1] xor B[1] = 0 xor 0 = 0
	C[2] = A[2] xor B[2] = 0 xor 1 = 1
	C[3] = A[3] xor B[3] = 0 xor 0 = 0

	zpet

	text(C) = E4KQ
	C (bin) = 00100111100101010000
	B (bin) = 00100110010010011001   (klic = EZ, EZEZ...)
	A       = 00000001110111001001   A = C xor B
	A[0] = C[0] xor B[0] = 0 xor 0 = 0
	A[1] = C[1] xor B[1] = 0 xor 0 = 0
	A[2] = C[2] xor B[2] = 1 xor 1 = 0
	A[3] = C[3] xor B[3] = 0 xor 0 = 0

Sifrovani s promennym klicem

	11.04.1998 05:00	klic = 110419980500
	11.04.1998 06:00	klic = 110419980600
	11.04.1998 07:00	klic = 110419980700

	if date=12.1.2010 then klic = Pravoslav (svatek 12.1.) = 9 (9 pismen ve slove Pravoslav)
	Pozn.: Pozor, jmena u svatku v kalendari se obcas meni, prizpusobuji!

	if time=5:00 then klic = 1
	if time=6:00 then klic = 4

	if time=5:00 then algoritmus = 1
	if time=6:00 then algoritmus = 4

	if zprava=prvni then klic = 4   poradi zpravy jako klic
	if zprava=druha then klic = 9

Symetricke sifrovani DES, 3DES, AES, RC4 (viz Wiki)

	Pouziva k sifrovani a desifrovani jediny klic.
	Nevyhodou je, ze pri zcizeni nebo rozlusteni klice, muzete sifrovat i desifrovat jako
	odesilatel i prijemce.
	Vyhodou je, ze sifrovani a desifrovani je rychle.

	AES (Rijmen-Daemen, Advanced Encryption Standard) (viz wiki)

Asymetricke sifrovani

	Pro sifrovani a desifrovani se pouzivaji rozdilne klice.

	Princip: (viz Wiki)

	A mod B = C     5 mod 3 = 2     (5/3 = 1 + 2/3)
	D mod B = C     2 mod 3 = 2     (2/3 = 0 + 2/3)

	Dvema ruznymi klici A a D s pomoci klice B dostanu jeden klic C.
	Klic A a B mam ja. Klic D a B dam druhe strane.

	Tvorba klicu:
	C = 17 => z cisla 17 mame primitivni koren 3, generator g = 3
	g^x mod p
	3^15 mod 17 =  6 (A1 = 15, A2 = 6)
	3^13 mod 17 = 12 (B1 = 13, B2 = 12)
	C = spolecny klic, zvolene prvocislo
	A1 = klic odesilatele pro sifrovani, zvolene prvocislo
	A2 = klic odesilatele pro prijemci
	B1 = klic prijemce pro sifrovani, zvolene prvocislo
	B2 = klic prijmce pro odesilatele
	mod = operade celociselneho deleni

	Sifrovani:
	- Odesilatel vygeneruje A1, A2, C. A2 odesle prijemci, C zverejni.
	- Prijemce si vyhleda C klic odesilatele a vytvori si vlastni B1, B2, C. B2 odesle
          odesilateli.
	- Odesilatel zasifruje zpravu pres A1, B2 a C (B2^A1 mod C = 12^15 mod 17 = 10)
	- Prijemce   desifruje zpravu pres A2, B2 a C.
	- Prijemce   zasifruje zpravu pres B1, A2 a C.(A2^B1 mod C = 12^15 mod 17 = 10)
	- Odesilatel desifruje zpravu pres B2, A2 a C.

Asymetricke sifrovani RSA (Rivest-Shamir-Adleman) (viz wiki)

	Tvorba klicu:
	- Zvolí dvě různá velká náhodná prvočísla p a q.
	- Spočítá jejich součin n = p * q.
	- Spočítá hodnotu Eulerovy funkce phi(n) = (p − 1) * (q − 1).
	- Zvolí celé číslo 'e' menší než phi(n), které je s phi(n) nesoudělné.
	- Nalezne číslo 'd' tak, aby platilo de ≡ 1 (mod phi(n)), kde symbol ≡ značí kongruenci
	  zbytkových tříd.
	- Pokud je 'e' prvočíslo tak d = (1+r*phi(n))/e, kde r = [(e-1)*phi(n)^(e-2)]

	Veřejným klíčem je dvojice (n, e), přičemž n se označuje jako modul, e jako (šifrovací,
	příp. 'veřejný') exponent.
	Soukromým klíčem je dvojice (n, d), kde d se označuje jako dešifrovací či soukromý.
	(V praxi se klíče uchovávají v mírně upravené formě, která umožňuje rychlejší zpracování.)

	Sifrovani:
	Zprava se prevede na dohodnutym postupem na cislo m (m<n).
	c = m^e mod n
	Desifrovani:
	m = c^d mod n
	Ze to funguje, vyplyva z matematickych postupu pouzitych pro generovani klicu.

Asymetricke sifrovani pomoci XOR

	Funkce XOR 
	abc|d   d = a xor b xor c
	000|0   c = d xor a xor b
	001|1   b = c xor d xor a
	010|1   a = b xor c xor d
	011|0
	100|1
	101|0
	110|0
	111|1

	0 xor 0 xor 1 = 1   A1 xor B2 xor C = D
	1 xor 1 xor 1 = 1   B1 xor A2 xor C = D
	Dvema ruzmyni klici a jednim spolecny vygeneruji jeden klic.

	Lze to upravit tak, aby se heslo prevedlo na kod vhodny pro xor a rovnici zkomlikovat o dalsi
	vstupy.
Top

Vysvetleni a informace

Jak zabranit rozlusteni?

Rada: Pokud vam nekdo rika, ze je neco bezpecne a neproniknutelne, je jen otazkou casu, kdy mu bude chtit nekdo dokazat opak a nebo tam sam dokaze proniknout.

Šest Kerckhoffsových speciálních požadavků na polní šifry:

  1. Systém musí být teoreticky nerozluštitelný nebo alespoň nerozluštitelný v praxi.
  2. Vyzrazení systému nesmí mít nepříjemné následky pro dopisovatele.
  3. Klíč musí být takový, aby se dal zapamatovat bez písemných poznámek a musí být snadno měnitelný.
  4. Kryptogramy se musí dát posílat telegrafickou cestou (prevod na morzeovku).
  5. Přístroj nebo dokumenty musí být přenosné a musí dovolovat manipulaci pouze jedné osobě.
  6. Systém musí být jednoduchý, nesmí klást nároky na úroveň vědomostí ani nesmí být zvládnutelný pomocí dlouhého seznamu pravidel ani nesmí vyvolávat příliš velké duševní namáhání.

Zpusoby rozlusteni

Pomucky pro lusteni pro sifrovaci hry

Rady pro lusteni (sifrovaci hra Tmou, 12. rocnik)
(sifry, ktere ucastnici hry maji rozlustit)

1. První nápady a nejjednodušší postupy bývají často ty správné.
2. Odhad typu sifry. Smysluplný text - steganografii, popis cesty nebo grafiky. Nesmyslný text
 - frekvenční analýza, substituce nebo transpozici.

Heslo
3. Zkus použít jako klíč/heslo název hry, název stanoviště, nápovědy z předchozího průběhu hry.
4. Proveď permutační vyčíslení klíče. Tj. přiřazení pořadí písmenům v klíči podle pořadí výskytu
 v abecedě. Může se to dále hodit při pokusech o transpozici.

Základní počty
5. 26 prvku - abeceda (* mohlo by jit o abecedu).
6. 3 typy znaků - morseovka, římské číslice (I,V,X).
7. 2 typy znaků ve skupinách po nejvýše 5 znacích - binární soustava (pismenka jako 5-bit kod).
8. 2 typy znaků a rozmisteni do 2x3 pozic (rastr) - Braillovo písmo.
9. dělení na 3(4) výrazné části? vyskytují se 3(4) čísla? ve tvaru 3 prvky - oddělovač - 1 prvek?
 - kóta (pozn: asi mysleno zeměpisná šířka/délka, DD°MM’SS.s’’, gps 49.210N, 16.618E).
13. 12 nebo 24? - hodiny, ciferník hodin.
10. 12, 28, 31 prvků? - kalendář, měsíce, dny.
12. 7, 52 - kalendář, dny, týdny.
11. velikost 8x8, písmenka a-h a čísla 1-8 - Šachy.
14. 4(8) prvku? - navigace nahoru, dolů, vlevo, vpravo, (S, SZ, SV, J, JZ, JV, V, Z)
ve 2D a čtení/vykreslování v nějakém rastru.
15. 27? - 3D kostka o rozměrech 3x3x3.
15. 6 - hraci kostka.
16. 6 - navigace nahoru, dolů, vlevo, vpravo, Vpřed, Vzad ve 3D.
    5 - 5 linek, 7 not
    4, 8, 32 - 4 barvy, 8 karet, 32 karet celkem

Substituce
17. 26 různých prvků? Zkus frekvenční analýzu a substituci.
18. znaky abecedy, ale s divnými frekvencemi výskytu? substituce:
- monoalfabetická šifra (Caesar)
- homofonní substituce - nahrazení jednoho znaku více různými znaky
- polyalfabetická šifra (Vigenére)
- polygramová substituční šifra (Playfair)
- digrafická susbstituce (Polybiův čtverec)
19. Zkus posun hrubou silou - všechny varianty.
20. Zkus posunout text podle nějakých zajímavých čísel vyskytujících se v zadání.
21. Čísla převeď na písmena, písmena převeď na čísla.
22. Dvojice znaků/čísel?  - desítková, šestnáctková čísla, ASCII kód
 - intervaly s písmeny: velká - 65 - 90/41 - 5A, malá - 97 - 122/61 - 7A
23. nepísmené znaky? - leetspeak kód 1337 - zobrazeni pismen pomoci znaku, 4 = A, |) = D, 6 = G
24. zlomky s malými čísly v čitateli i jmenovateli? - zlomkova sifra, rozdělení abecedy na skupiny
 pismen, číslo skupiny / pořadí písmene.
25. Zkus použít klávesnici mobilu/počítače/T9 - využití znaků z klávesnice k jednoduché substituci
(čísla na písmena, počet stisknutí na písmena...), nebo ke grafickému vykreslování znaků do rastru
tvořeného klávesnicí.
26. Zkus vypsat vytipované heslo nad zašifrovaný text a provést následující algoritmus pro
 dešifrování polyalfabetických systémů:
- převeď písmena na čísla 0..25
- vyzkoušej pro každou dvojici heslo-šifrový text následující operace:
 -- systém šifrování dešifrování
 -- Vigenére O + K = Š Š - K = O
 -- Varianta Beaufort O - K = Š Š + K = O
 -- Beaufort K - O = Š K - Š = O
- if (a+b > 25) then
- return (a+b - 25)
- else return (a+b)
- if (a-b < 0) then return (a-b + 25)
- else return (a-b)
- vrácené číslo převeď na písmeno
27. Vyskytují se v textu opakovaně dvojice (5-6) písmen? Mohlo by se jednat o
využití převodové tabulky s abecedou, kde by tato písmena tvořila souřadnice. (ADFGX, ADFGVX,
MOTUX)

Transpozice
28. Zkus si zadání pořádně sepsat - symetricky/pod sebe/vedle sebe a systematicky projdi jednotlivé
sloupce, řádky a úhlopříčky, zda neobsahují další část šifry nebo řešení.
29. Zkus přečíst části zadání pozpátku, zepředu/zezadu.
30. Nebyl text rozdělen na poloviny/třetiny/čtvrtiny a potom nějakým způsobem prolnut/promíchán?
31. Není text zašifrován podle plotu - lichá a sudá písmena na samostatných řádcích a řádky spojeny
do jednoho?
32. Zkus využít tabulku/obrazec/jiny rastr ve kterém by byl zapsán otevřený text? Šifrový text by
 byl vypsán po řádcích/sloupcích, případně složitějším způsobem - spirálou, cik-cak...
33. Nemohla by to být transpozice podle klíče? Můžeme zkusit provést následující algoritmus:
- if máme kandidáta na klíč
then provedem permutační vyčíslení a dešifrování textu
- else
- repeat
- určíme možné rozměry tabulky podle délky textu a možných dělitelů
- zkontrolujeme správnost tabulky
- if poměr samohlásky : souhlásky = 40 : 60
- then rozstříháme sloupce a permutujeme s cílem nalézt vhodné bigramy a rozumné střídání souhlásek
 a samohlásek ve všech řádcích najednou
34. mřížka nebo otočná mřížka (Fleissner)? Ctveres s otvory pro cteni, moznost otacet.
35. Nemohla by to být transpozice podle Roche? Máme k dispozici heslo. Určíme permutační
vyčíslení. Vyznačíme posloupnost bloků příslušné délky. Do bloků vypíšeme zašifrovaný text. Z bloků
postupně čteme otevřený text - vždy první písmeno, po přečtení odmažeme.

Steganografie
36. Zkus přečíst první/poslední/prostřední/sudá/lichá/x-tá... písmena/slova/věty z y-tých
slov/vět/odstavců.
37. Zkus odpočítat písmena/slova v textu podle zajímavých čísel vyskytujících se v zadání.
38. Zkus v textu najít zajímavá písmena/znaky a číst písmena za nimi následující. Zajímavá jsou
např. písmena kompletní abecedy, jinde získaného hesla, známé fráze, názvu hry, písmena nehodící
 se do okolního textu (méně frekventovaná fxwq, s diakritikou...).
39. Není součástí zadání mřížka s otvory? Nezískal jsi ji někde dříve? Případně nemáš k
dispozici vhodný text (pravidla hry, text zadání, text hymny...), kam mřížku přiložit?
Mohla by to být Cardanova mřížka.
40. Děti, zazpíváme si! Kdo neumí, může recitovat... Nedá se v tom rozpoznat text známých písniček,
básniček, hymny? A nějak se v textu dál navigovat, nebo vybírat písmena?
41. Když už nepomáhá nic, pomodli se ke správnýmu bohům (využití textu modliteb, náboženských
textů - Bible apod. k výběru písmen řešení)

Grafika
42. Zkus metodu kouknu a vidím.
43. Nemohou být něco v zadání vyjádřené souřadnice nebo rastr?
44. Nedá se v zadání něco pospojovat? Posloupnost čísel, písmen, stejné prvky, doplnění nějakých
logických řad...
45. Zkus si to prohlédnout proti světlu/prosvítit baterkou.
46. Zkus se na to podívat z jiného úhlu, případně zašilhat/zamhouřit oči. Mohl by to být stereogram,
znetvořené písmo, řeky v textu, méně nápadné prvky vykreslující grafiku...
47. Zkus převést znaky na morseovku - mohla by z toho vylézt grafika z teček, čárek a oddělovačů.
48. Nedá se to rozložit na víc vrstev nad sebou, tj. Do 3D?
49. Zkus to zobrazit na nějakém vhodném displeji/matrici/v digitálních číslech.
50. Není to schéma/obrázek/fotka zajímavého místa/dalšího stanoviště? Není to plánek,
nebo zjednodušená/zdeformovaná/zesložitěná mapa?
51. Není to graf? (Nedá se v něm nalézt nejkratší cesta, nejlépe ohodnocená cesta, kořen, cesta mezi
stejně/vzestupně/sestupně očíslovanými listy/uzly...?
52. Nedala by se část zadání překreslit na pauzák a vhodně přiložit/posunovat po originálním zadání?
53. Nejde to vhodně přeložit a následně prosvítít nebo probodnout špendlíkem?
54. Nejde z toho něco přímo vystříhat/poskládat/slepit? Nepomohlo by vystříhání při dalším kroku
řešení?

Další typy šifer
55. Není to popis cesty k další šifře? Není to popis cesty k místu v okolí/všeobecně
známému místu, které by tě navedlo k dalšímu kroku řešení?
56. Zkus k zadání nalézt asociace/synonyma/antonyma. Dál pracuj s nimi.
57. Nelze v zadání vhodně doplnit řady? Číselné, písmenné, logické...
58. Pokud jsou v zadání prvky z kalendáře, nedaly by se využít jména svátků, státní svátky, znamení
zvěrokruhu?
59. Nejsou v zadání noty, notová osnova (5 linek), stupnice, akordy? Nedala by se využít
substituce za názvy not/akordů, případně nalézt odpovídající píseň a její text?
60. Zkus si v zadání zahrát karty - neodpovídá něco počtu listů, očíslování/barvám/označení karet?
61. Zkus si v zadání zahrát šachy - šachovnice (rozměry 8x8, označení 1-8, A-H), tahy figurek,
označení figurek.
62. Nepodobá se zadání známé hře? Není to sudoku, patnáctka, sokoban, piškvorky...?
Nedal by se pak průběh hry využít k vykreslení/přečtení/získání souřadnic řešení?
63. Nevyskytuji se tam opakující objekty a jejich vlastností? Není to Zebra (Einsteinova hádanka)?
64. Není v zadání něco napsaného neviditelným inkoustem (mlekem, citronovou stavou)? Zkus to
 zahřát nad plamenem/polít peroxidem nebo chemikálií získanou/doporučenou organizátory/prosvítít
 UV světlem/zářivkou.
65. Není v okolí nápověda v podobě zajímavých objektů (sud, cívka, vysílač...)/významných
budov (radnice)/ulic/pamětihodností (pomníky, sochy (sv. Primitivus, ctnosti a neřesti...))?
66. Držíš se opravdu přesně instrukcí v zadání, případně v pravidlech hry?
67. Využil jsi už doporučenou mapu? Souřadnice GPS, zadní strana, legenda, mapové značky,
 označení čtverců.

Pro chvíle zoufalství...
68. Porozhlédni se kolem stanoviště - nepřehlédl jsi důležitou indicii/organizátora/další
části zadání/část šifry určenou pouze k obkreslení/prohlédnutí?
69. Opravdu využíváš všechny dostupné informace? Tedy vlastní zadání šifry/oficiální pravidla
hry/poslední informace před hrou/informace a materály ze startovní obálky/"nezapomeňte" z
předchozích šifer/možnosti oficiální nápovědy?
70. Zkus zpětné inženýrství. Aneb jak bys se ti mohlo podařit pravděpodobně jednoduchou zprávu,
takhle blbě zašifrovat/zamaskovat/zdeformovat?
71. Prohlédni si na mapě dosavadní trasu, odhadni rozumnou vzdálenost, směr a oblasti a zkus vybrat
sympatické místo, kam se dá rozumně dojít/dojet, které není nijak oplocené/chráněné/jinak
nedostupné a nachází se u nějakého zajímavého/význačného bodu a zkus ho napasovat na zadání.

Obsah pomucek pro lusteni (sifrovaci hra sifrovacky.cz)

	abecedu a čísla
	pořadí 1–36
	Morseovu abecedu
	Braillovo písmo pro slepé (ASCII Braille pro čísla)
	pořadí v šestkové soustavě
	vlajkovou abecedu
	hláskovací slova NATO
	Moonovo písmo pro slepé
	dominová pokrytí čtverce 4×4 (lexikálně řazená)
	čárový kód RM4SCC britské pošty
	pseudomorseovku se třemi symboly
	mnemotechnická slova pro pseudomorseovku
	abecedu a čísla ve čtverci (8 čar)
	abecedu a čísla ve čtverci (6 čar)
	iNulí kódování M42
	kombinace výběru dvou prvků z devíti, graficky
	kombinace výběru dvou prvků z devíti, číselně
	abecedu a čísla na digitálním displeji
	„polský“ kříž 6×6
	očíslování prvků Braillova písma a segmentového displeje
	36 dramatických situací podle Poltiho
	souřadnice a postavení figur v šachu
	pseudomorseovku jako strom
	desetinné rozvoje Ludolfova čísla, Eulerova čísla a Eulerovy konstanty
	první písmena jmen v českém kalendáři
	sedmice: barvy duhy, písmena barev duhy, dny v týdnu, římské číslice, jednotky SI, tóny,
	  solmizační slabiky, pády v češtině, divy světa, svobodná umění, hříchy, kontinenty,
	  klasické „planety“, odpovídající orgány lidského těla, fáze života (Shakespeare)
	hodnosti AČR
	subtraktivní a aditivní míchání barev
	barevný kruh (12 barev)
	olympijské kruhy
	stěny čtyřstěnu rozdělné na 36 trojúhelníků
	lidský chrup
	kódování Base64
	aminokyseliny a kodony (pořadí řádek, sloupec, buňka)
	krychle s oříznutými rohy (36 hran)
	pořadí karetních barev
	logo hry a verzi

Triky na tvorbu a pamatovani hesla

	- Z cisel si vytvorte si vetu. Delka slova odpovida cislici. (Sla Nanynka do zeli = 3724)
	- Cisla dosadte do slov (password = p455w0rd = 4550).
	- Prvni pismena slov vety (Sla Nanynka do zeli = SNdz).
	- Vyberte si vetu, kterou si budete dobre pamatovat. Zamente vybrane znaky za S za $,
	  cisla. A pak opiste prvni pismena slov a doplnene snaky, password = pa$$w0rd, Vomáčka = w0mAc|/a
	  "Máte sklep? Zapomněla jsem se zeptat" + cislo domu = M s ? Z j s z 168
	- Jmena mazlicku pozpatku, kde kazde druhe pismeno bude z jineho slova, doplnene o cisla a
	  predposledni pismeno bude velkym.
	   T 0 m A s
	  a K c a m 0
	  aTK0cmaAms0
	- prehazeni pismen podle pohybu sachoveho kone pro pole 3x3 (to je pro heslo nedostacujici, pokud
	  to necim neobohatite)
	- zvolime si vetu a odstranime z ni opakujici se znaky a dostaneme heslo
	https://www.idnes.cz/technet/internet/jak-si-vytvorit-bezpecne-heslo-a-nebyt-za-hlupaka.A081007_194444_sw_internet_vse
Pravdepodobnosti vyskytu pismen, slov

	Tabulky vyskytu znaku

	EN26 ETAOINHSRDLMWUFCYGBPVKXJQZ (zdroj: kniha Robinson Crusoe, 624.000 znaku)
	EN26  TAOINHSRDLUWMFCYGPBEVKXJQZ (zdroj: kniha L&A of Robinson Crusoe, 1.261.407 znaku)
	EN26  TAOINSHRDLCUMWFGEYPBVKJXQZ (zdroj: algoritmy.net)
	EN26  TAOINSHRDLCUMWFGYEPBVKJXQZ (zdroj: dcode.fr)
	EN26 ETAOINHSRDLUFWCYMGPBKVJXQZ (zdroj: kniha Creatures that once were men, 140.000 znaku)
	CZ26 EOAINTSRVULKCDPMZYHJBFGXWQ (zdroj: algoritmy.net)
	CZ26 EAOILSNTRMUKVJDPZCYHBGFXWQ (spojene povidky, odstranena diakritika, 900.000 znaku)

	Analyza textu

	text	The Life and Adventures of Robinson Crusoe (1808), by Daniel Defoe
		(https://www.gutenberg.org/cache/epub/12623/pg12623.txt)
	program Text analyser (https://www.online-utility.org/text/analyzer.jsp)
		Count Letter Frequency (https://www.browserling.com/tools/letter-frequency)
	Letter Frequency
		TAOINHSRDLUWMFCYGPBEVKXJQZ
	Number of characters (including spaces znaku): 1261407
	Number of characters (without spaces; znaku): 961467
	Number of words (slov): 239578
	Number of unique words (unikatnich slov): 8948
	Number of sentences (vet): 4688
	Number of syllables (slabik): 324135 
	Nejcastejsi dvojice slov (top 10)
		of the 1560, i had 1055, in the	1047, to the 838, i was	705, it was 675,
		that i 541, as i 538, to be 532, and the 498
	Nejcastejsi slova (top 20)
		the 11602 , and 9532, to 8318, i 7471, of 6883, a 4368, in 3893, that 3813,
		was 3484, it 3313, had 2858, my 2855, as 2804, they 2711, for 2504, them 2323,
		with 2232, but 2201, he 2179, not 2010

Prolomene moderni algoritmy

Doporucovane moderni algoritmy (2019)

Top

funkce XOR

	abcd|e   e = a xor b xor c xor d
	0000|0
	0001|1     abc|d   d = a xor b xor c
	0010|1     000|0   c = d xor a xor b
	0011|0     001|1   b = c xor d xor a
	0100|1     010|1   a = b xor c xor d
	0101|0     011|0
	0110|0     100|1
	0111|1     101|0
	1000|1     110|0
	1001|0     111|1
	1010|0
	1011|1     ab|c    c = a xor b
	1100|0     00|0    b = c xor a
	1101|1     01|1    a = b xor c
	1110|1     10|1
	1111|0     11|0

	Xor ma na vystupu jednicku, kdyz je pocet jednicek vstupu lichy.
	https://web.stanford.edu/class/cs103/tools/truth-table-tool/
Top

dvojkova soustava BIN

	Prevod na dvojkovou soustavu (binarni kod, bin; nebo pocitacovou 8-bit ASCII tabulku)
	A:00000 E:00100 I:01000 M:01100 Q:10000 U:10100 Y:11000 2:11100
	B:00001 F:00101 J:01001 N:01101 R:10001 V:10101 Z:11001 3:11101
	C:00010 G:00110 K:01010 O:01110 S:10010 W:10110 0:11010 4:11110
	D:00011 H:00111 L:01011 P:01111 T:10011 X:10111 1:11011 5:11111
Top