info : soll nur die spitze des eisberges ankratzen !!!!
die wirklich mathematischen funktionen sind wesentlich komplexer
und erfordern mind. mathematik studium.
auf das wieso , welshalb und mit welchen tools kann ich verschluesseln
gehe ich hier mal nicht ein. ich beschreibe nur mal kurz welche techniken
benutzt werden. allerdings kann ich nicht auf all zu mathematische
berechnungen eingehen da mir das mathematische verstaendnis fehlt, aber
man wird grundzuege erkennen was ich mit algorithmische angreiffbar
meine und mit dr brute force methode.
fangen wir an...
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
|
zufallszahlen
zufallszahlen werde vom computer generiert dazu bedient sich der
computer meist einer krypto karte die zufallszahlen liefert oder er simuliert
ein "random number device" (wie man es von linux kennt). diese karte,
geraet oder gar einb anderer rechner berechnet zufallszahlen aufgrund
mehrer ist zustaende des computers. das thermische rauschen, die maus
position, datumsberechnung und und und. daraus wird dann eine
zufallszahl ermittelt. das thermische rausche wird wiederum aus folgenden
komponenten berechnet : computer spannung, spannungstoleranzen,
spannungsabweichungen und anderen dingen.
|
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
allgemeine berechnung.
die meisten verschluesselungsverfahren benutzen zufallszahlen die mit den
methoden wie z.b. NOR, NOT, AND, XOR, OR usw. verknuepft werden.
dazu wird wie folgt gerechnet :
die zahl dezimal 3 entspricht ...00011 wenn man diese nun mit XOR 4
verknuepft (4 = ...00100) erfolgt folgende rechnung :
* 1 XOR 1 = 0
* 1 XOR 0 = 1
* 0 XOR 1 = 1
* 0 XOR 0 = 0
00011 XOR 00100 = 00111
das ergebnis ist ...00111 = 7. dazu rechnet man zahl 1 von hinten nach
vorne mit der zahl 2 von hinten durch. also :
1 xor 0 = 1 (gesamt ergebnis 1)
1 xor 0 = 1 (gesamt ergebnis 11)
0 xor 1 = 1 (gesamt ergebnis 111)
0 xor 0 = 0 ( gesamt ergebnis 0111)
0 xor 0 = 0 ( gesamt ergebnis 00111)
so berechnet man auch mit NOT NOR usw (natuerlich mit der anderen verknuepfungstabelle).
|
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
pasworte und ascci
wenn nun ein passwor eingegeben wird, wird es zunaechst in die ascii werte umgewandelt.
Das password "asdf" z.b. entspricht ascii :
a=97
s=115
d=100
f=102
nun werden die ascii werte in dualzahlen umgewandelt.
97 = 1100001
115 = 1110011
100 = 1100100
102 = 1100110
als kette = 1100001 1110011 1100100 1100110
nun hat man das password in dualzahlen. wenn man nun einen text hat z.b.
"hallo" ( das hallo soll nun den zu verschluesselnden text darstellen der natuerlich i.d.r komplexer ist.)
hallo wird nun auch in ascii zahlen
umgewandelt und entspricht :
h = 104
a = 97
l = 108
l = 108
o = 111
diese werden nun wieder in dualzahlen umgewandelt :
104 = 1101000
97 = 1100001
108 = 1101100
108 = 1101100
111 = 1101111
als kette : 1101000 1100001 1101100 1101100 1101111
und wenn man nun das password und den text mit xor oder anderen mathematischen methoden verknuepft erhaelt
man den geheim text also ist nun :
1101000 1100001 1101100 1101100 1101111
XOR
1100001 1110011 1100100 1100110
=
1101000 0000000 0011111 0001000 0001001
und das entspricht umgewandelt in dezimal =
104 0 47 8 9
fehlende stellen werden nach vorne mit 0 aufgefuellt.
in ascii waere das 104 0 47 8 9 = h NUL / BS TAB
NUL = NULL
BS = Backspace
TAB = Tabulator
gesprochen waere der geheim text also :
h null slash backspace tabulator
und das hat mir unserem eigentlichen text "hallo" nicht mehr viel zu tun.
dieses verfahren nennt man Stromverschluesselung. da der schluessel (das pasword) am stueck benutzt wird.
|
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
blockverschluesselung
pasworte von passworte waere hier eine treffende erklaerung. denn hier
wird wie folgt gerechnet. der text ist hier wieder "hallo" und das password
"asdf" mit dem offset 2.
dazu rechnet man wie folgt :
hallo =
1101000 1100001 1101100 1101100 1101111
asdf =
0000000 1100001 1110011 1100100 1100110
nun sieht man den offset 5 (wilkuerliche wahl) und rechnet (statt von hinten nach vorne alles komplett durch)
alle 2 paare mit z.b. XOR das geht wie folgt :
nun nimmt man das password und splittet es in die offset bloecke a 5 bit.
00000
00110
00011
11001
11100
10011
00110
hallo als 5er offset
11010
00110
00011
10110
01101
10011
01111
die 5 bit bloecke weren nun benutzt um untereinander per XOR oder NOT oder wie auch immer berechnet zuwerden also :
password block1 XOR text block1 = ergebnis 1
password block2 XOR text block2 = ergebnis 2
....
hier das beispiel :
00000 XOR 11010 = 11010
00110 XOR 00110 = 00000
00011 XOR 00011= 00000
11001 XOR 10110 = 01111
11100 XOR 01101 = 10001
10011 XOR 10011 = 00000
00110 XOR 01111 = 01001
somit ist das ergebnis :
11010 00000 00000 011111 10001 00000 01001
dieses 5er offset wird nun wieder in dual umgewandelt also in :
1101000 0000000 0011111 1000100 0000100 1
die letzte 1 wir nun aufgefuellt mi nullen zu : 0000001
und somit ergibt :
1101000 = 104
0000000 = 0
0011111 = 31
1000100 = 68
0000100 = 4
0000001 = 1
104 0 31 68 4 1
in ascii umgewandelt ist : h NUL US D EOT SOH
NUL, US, EOT und SOH sind steuerzeichen im asciicode, dessen bedeutung ich nun leider nicht kenne.
dies sollte nur nen kleiner ansatz zu verschluesselung sein. wie zu sehen
ist, liegt das problem in der schluessellaenge. desto laenger des
schluessel (mehr bit) desto schneller steigt die moeglichkeits berechnung
auf bit ebene. und da die algorithemen von firmen wie RAS usw geheim
gehalten werden ist es schwer diese passworte bzw. die schlussel mit
dennen eine XOR operation erfolgte zu berechnen.
|
|
Source code
|
1
2
3
4
5
6
7
|
brute force
eine brute force attacke geniert nun schluessel definierter bit laenge um zu
testen ob der aktuell berechnete schluessel gleich dem schluessel zum
entschluesseln ist. dabei ist ja klar das stromverschluesselte daten
schwerer zu entschluesseln sind da das offset unbekannt ist und mit
berechnet werden muss.
|
wie hier zu erkennen ist , wird es mit jedem bit schwerer zu berechnen und
mit jedem bit offset mehr oder weniger kommen unterschiedliche
ergebnisse zustande. natuerlich gibt es auch noch verfahren die wie folgt
operieren :
password block1 XOR text block1 = ergebnis1
password block2 XOR text block2 = ergebnis2
.
.
.
ergebnis 1 XOR ergebnis2 = ergebnis3
.
.
.
das laesst sich nahezu endlos verschachteln und mit jedem bit mehr im
schluessel wachsen die schluessel moeglichkeiten und je mehr oder
weniger bit der offset bei blockverschluesselung ist, desto
unterscheidlicher werden die ergebnisse... kurz der geheimtext.
mfg patrick k.
This post has been edited 1 times, last edit by "Patrick K." (Feb 4th 2003, 2:49pm)