Compress Cryptography Recovery Sortings Ostatni

Principy sifrovacich algoritmu (Cryptography)


ZO = zpusob odhaleni
AB = AlfaBeticke - alfa beta, zkratka pro abecedu

Je mozne vyuzit jakykoliv algoritmus, da se pouzit treba kompresni nebo jiny.
Bohuzel vetsina navrhovanych algoritmu patri mezi odhalitelne.
Delil bych to asi na:

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)



Zpusoby odhaleni (metoda):
Intuice Hruba sila Abeceda Algoritmus

Pro vetsi bezpecnost je mozne pouzit vice algoritmu soucasne, avsak musime zabezpecit neznalost metody.


Pozn.1: Pouzite zkratky algoritmu mohou by smyslene pro tento text.
Pozn.5: Pokud se bojite odhaleni principu svych algotitmu, nemejte strach. Disassembler to resi, hackeri si vas program spusti krok po kroku a mate po parade. :)


Hlavni menu

Intuice


Nekdy se staci jen na sifru podivat, pokud znam jednoduche metody a da se odhadnout, ktera je pouzita prave zde.

Hlavni menu

MonoAlfaBeticke



1 znak abecedy se nahradi jinym

ZO: abeceda, algoritmus
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

PolyAlfaBeticke


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

Algoritmicke


ZO: Algoritmus Je mozne pouzit jakykoliv kompresni nebo jiny. Treba takovy fajn je BWT.
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

ZO: Abeceda



Predpoklady:
1. Zprava je dostatecne velka nebo mame vic zprav.
2. Zname jazyk, ve kterem je zprava psana.
3. Spocitame si cetnost jednotlivych znaku abecedy jazyka.
4. Spocitame si cetnost znaku zpravy.
5. Dosadime, srovname, upravime.
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)

Hlavni menu

ZO: Algoritmy


Jedna se o znalost sifrovaci metody.
Nevyhodou kazde sifry je, ze nezabezpecenou cestou posilame klic k ni (program, klic), pripadne klic pridaveme do zpravy (a on neni nijak sifrovan).

Zpusoby ziskani:

Mechanicke zamky, alarmy - utocnik zakoupi, prostuduje, najde nej zpusob prolomeni
Programy - utocnik zakoupi, prostuduje a najde nej zpusob
- zakoupi, pouzije zpetne programovani a najde nej zpusob

Zpetne programovani je treba program DisAssembler.
Funkce je takova, ze program se prevede zpetne na programove instrukce. Cili mame sifrovaci algoritmus,
prostudujeme, najdeme nej zpusob
- jak tomu zabranit? Momentalne nelze.
Lze pouze znesnadnit zpusob rozlusteni algoritmu pripadnym kodovanim sifrovaciho programu.
Nevyhoda: kodovaci algoritmus se musi pridat k programu a program se stava pomalejsi.
Vyhoda: utocnik musi proves nejdriv dekodovani programu, ale k tomu ma vas kodovaci algoritmus, takze je to jen o neco delsi...

Pripad ukradeni kodovaciho mechnickeho stroje za druhe svetove valky nemcum.
Telefonni a chipove karty - zakoupim, prosvitim, prostuduji el. zapojeni a funkci, vyrobim padelek
Pripad tzv bezpecne sifry DES, ktera byla prolomena super pocitacem za nekolik hodin (Pc, ktery pracuje jako vice pocitacu soucasne, tudiz proveri vice moznosti naraz)

RADA: Pokud vam nekdo rika, ze je neco bezpecne a neproniknutelne, je jen otazkou casu, kdy bude mit nekdo chut dokazat opak.
Pripadne ten clovek vam nabizi to, do ceho sam dokaze proniknout.
Hlavni menu