MonoAB
- 1 znak se meni na 1 jiny, stale stejny
- ZO: abeceda, algoritmus, intuice
PolyAB
- 1 znak se meni na 1 pokazde jiny, podle pravidla (algoritmu)
- ZO: algoritmus, algoritmus+hruba sila
Algoritmicke
- to jsou vsechny, ale myslim tim slozitejsi kodovaci algoritmy, treba kompresni
- ZO: algoritmus+hruba sila
Zpetne - pouzitim stejneho algoritmu je mozne kodovat tam i zpet (Algoritmicke-XOR)
Priklad 1: (skaut) substituce: Morseovka
Morse
A .- I .. Q --.- 1 .----
B -... J .--- R .-. 2 ..---
C -.-. K -.- S ... 3 ...--
D -.. L .-.. T - 4 ....- -.-.- pozor
E . M -- U ..- 5 ..... ..... nerozumim
F ..-. N -. V ...- 6 -.... ...-.- konec vysilani
G --. O --- X -..- 7 --... ...-. rozumim
H .... P .--. Y -.-- 8 ---..
CH---- W .--- 9 ----.
Z --.. 0 -----
AHOJ = -.-.-/.-/..../---/.---/...-.
Dale ze skautu zname: Semafor (abeceda s vlajkami), lodni vlajkove signaly
Panackovou abecedu ze Sherlocka Holmese
Priklad 1a: Substituce pismen (nahrada, zamena)
ABCDEFGHIJKLMNOPQRSTUVWXYZ
IPEBTLXRDKVZFAQMWHOCJSGYUN
AHOJ = IRQD
Priklad 2: (skaut) Posun pismen +2 = Caesaruv kod
ABCDEFGHIJKLMNOPQRSTUVWXYZ (26)
yzABCDEFGHIJKLMNOPQRSTUVWXYZ
AHOJ = YFMH
Zname uz 500 prnl jako namotani pasku kolem tyce o stejnem polomeru v cele delce.
Psalo se pak podel tyce.
Priklad 3: (skaut) Psani pozpatku
AHOJ = JOHA
AHOJ ADELKO = JOHA OKLEDA
Priklad 4: (skaut) Zmena na cisla a zlomky
1 2 3 4 5
ABCDE FGHchI JKLMN OPRST UVWYZ (25, chybi QX, navic ch)
12345 123 45 12345 12345 12345
AHOJ = 1/1 2/3 4/1 3/1
Priklad 5: Kazde 3ti pismenko je zprava
..A..H..O..J......
slanahodouujezirkakolemskal
..............I..A..L..S..L
Sla nahodou u jezirka kolem skal...
Priklad 6: Vylepseni 5 - zmeneni kodovani s delsim casem
po 3 znacich se meni kodovani na 2 a pak po 4 opet na 3
..A..H..O.J.T.O..J..S.E.M..x..x
slanahodoujatrovajersleimovakolem
Priklad 7: Vylepseni 5 - stridani kodu
Kazde 3ti a pak 2he pismenko je zprava, doplnovani mezerou
..A.H..O.J......
slazhoro jedenacte
............E.A..E
Sla_z_hor_o__jedenacte
Priklad 8: (skaut) Morzeovka+velikosti pismen/cislic
/_ -A .a
-.-.-/.-/..../---/.---/...-. = AHOJ
JeNdA_sI_mezi_NAS_lEHA_vecER do poslete, protoze je maly.
-123 .456 /789 tohle muze jeste nekomu dojit
-.-.-/.-/..../---/.---/...-. = AHOJ
2 1 1 3 232 313 2
4 6 5 6565 4 645
2416185396565823284313764525
-267 .139 /458 tak mu to zkomplikujeme
-.-.-/.-/..../---/.---/...-. = AHOJ
2961243789391572253662811973
Priklad 9: (skaut) teckovana mrizka, jako 4
ABC|DEF|GHch
------------
IJK|LMN|OPQ
------------
RST|UVW|XYZ
Poloha tecky udava pozici, okraj pak polohu bunky.
---- ----
AHOJ = . | | . |. . |
---- ---- ---- ----
---- ----
A | | H |O J |
---- ---- ---- ----
Priklad 10: (skaut) teckovana mrizka2, jako priklad 4 a 9
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
Pocet tecek udava tabulku, okraj pak polohu bunky.
---- ---
AHOJ = | | | .| | .|
--- ----
---- ---
A | | H| O| | J|
--- ----
Priklad 11: kodova tabulka, posun +-5, jako 2
------------------- |t vuyzabcdefghchijklmnop|
| ABCDEFGHchIJK | | |5 432101234505 432101234|
||_____________|| | + | |
| LMNOPRST UVYZ | | |hchijklmnoprst vuyzabcde|
||_____________|| | |5 432101234505 432101234|
-------------------
-3
ABCDE...
...|uyzabc...|...
...|321012345|...
LMNOP...
...|ijklmn...|...
...|321012345|...
AMOL (-3) = ujli
Hlavni menu
Priklad 1: Posun podle predchoziho znaku zpravy
ABCDEFGHIJKLMNOPQRSTUVWXYZ
00000000011111111112222222
12345678901234567890123456 (26)
AHOJ zpet AIWZ
AIWZ AHOJ
A=1 H+1=I A=1 I-1=H
H=8 O+8=W H=8 W-8=O
O=16 J+16=Z O=16 Z-16=J
Priklad 2: Jako 1 ... sifrovane zpravy
ABCDEFGHIJKLMNOPQRSTUVWXYZ
00000000011111111112222222
12345678901234567890123456 (26)
AHOJ zpet AIXG
AIXG AHOJ
A=1 H+1=I A=1 I-1=H
I=9 O+9=X I=9 X-9=O
X=23 J+23=G X=23 G-23=J
(23-26=-3=X J-3=G)
Priklad 2: Jako 1 ... vylepseni
a) posun doprava/doleva
b) posun doprava/doleva a podle zpravy/sifrovane zpravy
a) AHOJ zpet AIGZ
AIGZ AHOJ
A=1 H+1=I A=1 I-1=H
H=8 O-8=G H=8 G+8=O
O=16 J+16=Z O=16 Z-16=J
b) AHOJ zpet AIGQ
AIGQ AHOJ
A=1 H+1=I +z A=1 I-1=H +z
H=8 O-8=G -z H=8 G+8=O -z
G=7 J+6=Q +sz G=7 Q-7=J +sz
-sz +z -z +sz -sz ...
Priklad 3: Posun podle poradi v textu - Vigeneruv kod
a) podle posunuti +1
b) nahodne rovnomerne rozmistneni
a) b)
ABCDE ABCDE ABCDE
1 ABCDE 1 CEBDA 1 ....A
2 BCDEA 2 BDAEC 2 ..A..
3 CDEAB 3 ECDAB 3 ...A.
4 DEABC 4 ABECE 4 A....
5 EABCD 5 DACBD 5 .A...
1234512 1234512
ABECEDA ABECEDA
ACBADDB CDBEDDB
[A,1]=A [A,1]=C
[B,2]=C [B,2]=D
[E,3]=B [E,3]=B
Hlavni menu
Priklad 1: sifrovaci mrizka - rozmistneni pismen
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.
----+---r ----+---r ----+---r
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.
048Cb3210 048.b321. xxx.bxxx.
1 text 2 otoceno ->v 2 text
xAxx|xHxx xx.x|xxxx xxIx|xxxx
xxOx|xxJx xxx.|.xx. xxxL|OxxV
xxxx|xxxx xx.x|xx.x xxAx|xxNx
xAxx|xDxE .xx.|xxxx AxxD|xxxx
----+---r b---+---- b---+----
xLxK|xOxx xxxx|xxxx xxxx|xxxx
MxOx|xxJx xxx.|.xx. xxxE|HxxT
xxxx|xxxE xx.x|xx.x xxVx|xxUx
xxxMbxxxI ..xxr.xxx IBxxrBxxx
AHOJ ADELKO ...LOVANA
MOJE MI... DEHTVUIBB - doplnujici text
Priklad 2: bitova funkce XOR (notxor, binarni, 2jkova)
A: 0 0 1 1 X pouzijeme xor s predchozim bitem zpravy
B: 0 1 0 1 O
---------- R
C: 0 1 1 0 C = A XOR B
prevod na 2 soustavu - viz komprese dimenze
A:00000 B:00001 C:00010 D:00011 E:00100 F:00101 G:00110 H:00111
I:01000 J:01001 K:01010 L:01011 M:01100 N:01101 O:01110 P:01111
Q:10000 R:10001 S:10010 T:10011 U:10100 V:10101 W:10110 X:10111
Y:11000 Z:11001 0:11010 1:11011 2:11100 3:11101 4:11110 5:11111
texta: AHOJ
A=2a : 00000001110111001001
B= 2a : 00000001110111001001
C=XORa : 00000001001100101101
textb: AEZN
0 = 0 A[0]
0 XOR 0 = 0 A[1] xor A[0] A[n] xor A[n-1]
0 XOR 0 = 0 A[2] xor A[1]
0000 A[3] xor A[2], A[4] xor A[3], A[5] xor A[4], A[6] xor A[5]
1 XOR 0 = 1 A[7] xor A[6]
1 XOR 1 = 0 2[8] xor 2[7]
-ZPET- stejna funkce, jine parametry
textb: AEZN
A=2b : 00000001001100101101
C=XORb : 00000001110111001001 = 2a
B= XORb: 00000001110111001001 = 2a
0 = 0 A[0]
0 XOR 0 = 0 A[1] xor C[0] A[n] xor C[n-1]
0 XOR 0 = 0 A[2] xor C[1]
0000
1 XOR 0 = 1 A[7] xor C[6]
0 XOR 1 = 1 A[8] xor C[7]
Priklad 3: Dimenze bit 5 na bit 4+mateni
prevod na 2 soustavu - viz komprese dimenze
A:00000 B:00001 C:00010 D:00011 E:00100 F:00101 G:00110 H:00111
I:01000 J:01001 K:01010 L:01011 M:01100 N:01101 O:01110 P:01111
Q:10000 R:10001 S:10010 T:10011 U:10100 V:10101 W:10110 X:10111
Y:11000 Z:11001
text : AHOJ
2 : 00000 00111 01110 01001
5na4 : 0000 0001 1101 1100 1001
zmat : 10000 10001 01101 01100 11001 (doplneni skoro nahodnym znakem)
textb: QRNMZ
doplneni
z0xxx: z=0/1 z1xxx: z=0 (Y:11001 Z:11001 ??:11010)
Priklad 4: Pomoci kodovaciko klice - posun
klic+sifra
klic=AHOJ text=AHOJADELKO
ABCDEFGHIJKLMNOPQRSTUVWXYZ
00000000011111111112222222
12345678901234567890123456 (26)
klic=+1 +8 +15 +10
klic: AHOJAHOJAHOJ
text: AHOJADELKO
kod : BPDTBLTVLW
Priklad 5: XOR klic / OR klic - vratna pouzitim stejneho algoritmu - stejna funkce, stejne parametry
A: 0 0 1 1 X
B: 0 1 0 1 O
---------- R
C: 0 1 1 0 C = A XOR B
prevod na 2 soustavu - viz komprese dimenze
A:00000 B:00001 C:00010 D:00011 E:00100 F:00101 G:00110 H:00111
I:01000 J:01001 K:01010 L:01011 M:01100 N:01101 O:01110 P:01111
Q:10000 R:10001 S:10010 T:10011 U:10100 V:10101 W:10110 X:10111
Y:11000 Z:11001 0:11010 1:11011 2:11100 3:11101 4:11110 5:11111
texta : AHOJ klic: EZ
klic : EZEZ
A=texta2: 00000001110111001001
B=klic 2: 00100110010010011001
C=XORa : 00100111100101010000
textb : E4KQ
0 = 0 A[0] xor B[0] A[n] xor B[n]
0 XOR 0 = 0 A[1] xor B[1]
0 XOR 1 = 1 A[2] xor B[2]
-ZPET-
textb : E4KQ
A=textb2: 00100111100101010000
B=klic 2: 00100110010010011001
C=XORb : 00000001110111001001 = texta2
0 = 0 A[0] xor B[0] A[n] xor B[n]
0 XOR 0 = 0 A[1] xor B[1]
Priklad 6: Sifrovani s promennym klicem
Zdroj a cil pouzivaji stejnou metodu synchronizovanou podle nejakeho algoritmu, nejcasteji datumu.
Cili pak je treba nastaveno, ze kazdych 5 minut se text zasifruje jinak.
Je nutne pridat informaci pro dekodovani nebo ji vedet.
klic=datum sifra=f(klic)
11.04.1998 05:00 klic=110419980500
11.04.1998 06:00 klic=110419980600
11.04.1998 07:00 klic=110419980700
...
nebo
klic=f(datum)
11.04.1998 05:00
if time=5:00 then klic=1
if time=6:00 then klic=4
...
nebo
klic=f(datum)
11.04.1998 05:00
if time=5:00 then algoritmus=1
if time=6:00 then algoritmus=4
...
nebo
pocitam kolikata je zprava zasifrovana, podle toho urcim zpusob
zprava=0
zprava+1
if zprava=1 then klic=4
if zprava=2 then klic=9
...
Hlavni menu
Priklad: EN26 ETAOINHSRDLMWUFCYGBPVKXJQZ (Robinson Crusoe 624,000 znaku) EN26 ETAOINHSRDLUFWCYMGPBKVJXQZ (Creatures that once were men 140,000 znaku, scifi) CZ26 EAOILSNTRMUKVJDPZCYHBGFXWQ (bez hacku spojene povidky 900,000)Pouziti: Anglictina ma 26 znaku + specialni (rekneme 32), to je 5 bitovy kod 00000-11110, 11111=ostatni znaky (ktere se vykopiruji nakonec)