Einige Anfängerfragen

Hallo, ich interessiere mich in letzter Zeit ein wenig für Kryptografie etc. und habe daher einige Fragen:

Wenn ich z.B. eine Datei mit deimem Programm verschlüssele, muss ich doch ein Passwort eingeben, also den Schlüssel, und damit wird dann verschlüsselt. Hier ist aber oft die rede von zufällig erzeugten schlüsseln. Ich verstehe nicht ganz was das für einen Sinn haben soll, denn wenn nur das programm den schlüssel weiss, muss es den ja speichern um wieder entschlüsseln zu können. und wenn es ihn verschlüsselt speichert, muss es ihn ja wieder entschlüsseln braucht also wieder nen schlüssel etc.

Ich hoffe ihr wisst was ich meine, und könnt mir das ganze etwas näher bringen. Vielleicht könntet ihr als Beispiel den Blowfish Algo nehmen, den finde ich nämlich interessant und wüsste gern wie er funktioniert...

Danke!
 
Hallo,
also es gibt 2 Arten von Zufallsschlüsseln:

1. Die Zufallsschlüssel ^^
Das sind echte Zufallskey, wenn man z.B. mit einem Ungenauem Geigerzähler über einer holprigen Straße etwas Uran mißt, dies verbindet mit dem Lärm einer Autobahn und dies noch mit dem Blöken eines Schafes verbindet, so erhählt man einen Zufallskey (per Chaos-Theorie).
Diesen Key merkt man sich und benutzt ihn als Schlüssel.

2. Der Pseudozufallskey:
Der PC kann keine Zufallszahlen generieren, nur Pseudo Zufallszahlen. Der PC ist eine Rechenmaschine, sprich er kann "nur" Rechnen, und alles was man ausrechnen kann, ist kein Zufalls.
Der PC hat eine art Zufallstabelle, bzw. eine Formel wie man Zufallszahlen errechnet, diese Formel hängt vom Algorithmus ab. Man gibt einen Startwert und dann gibt der PC Pseudo Zufallszahlen aus.
Wenn der Startwert aber gleich ist, erhählt man IMMER genau die GLEICHEN Zufallszahlen, darum hängt der Startwert oft von der Systemzeit oder so ab.

Man könnte es nutzt, indem der eingegebene Key als Startwert für den Pseudo Zufallsgenerator benutzt wird, dieser Generiert dann einen Pseudo Zufalls Key, der genausolang ist wie der Text.
Wenn sich der Startwert ändert, so ändert sich auch der Pseudo Zufalls Key. Wenn der Startwert aber gleich ist, so ist der Pseudo Zufallskey immer gleich.

Der Problem der ganzen Sache ist, wenn man den Startwert kennt, so kann man den gesamten Pseudozufallskey generieren. Solch einen Verschlüsselten Text würde man beim Pseudo Zufallsgenerator knacken, sprich man gibt alle möglichen Startwerte ein, und schaut ob der entstandene Text ein echter Text ist (e häufigster Buchstabe etc.)


So eine Formel wäre z.B.
Xn = (a ? Xn  1 + b) mod m

X0: Startwert

Die Variablen a, b und m sind konstant: a ist der Multiplikator, b das Inkrement und m der Modul. Wurden diese drei Variablen gut gewählt, so hat der Generator die maximale Periode von m. Das heißt, der Generator wird sich nach m Ausgaben von Zufallszahlen wiederholen.
 
Hmm Danke, ok, hab zwar irgendwie nur die hälfte kapiert und ne antwort auf meine frage wars auch nicht, aber egal...

Was ich nur nicht verstehe ist, wie das gehen soll, seinen schlüssel (mit was weiss ich vie vielen zeichen) von programm erstellen zu lassen! Das kann sich doch kein mensch merken!!!

Kann mir vielleicht jemand ein Beispiel geben, wie man einigermaßen sicher (jaja sicher ist es nie aber halt so einigermassen halt, das man bruteforcen muss oder so...ihr versteht schon) verschlüsseln kann, basierend auf ner passwort eingabe!? Wäre nett, Danke...
 
Hallo,
also man ganz einfach:
Jeder PC rechnet die "Zufallszahlen" aus, dabei ist der Startwert (wird dann in die Formel eingetragen) sehr wichtig. Wenn der Startwert gleich ist, sind die Zufallszahlen auch gleich.
So einen Zufallsgenerator nennt man Pseudo Zufallsgenerator.

Wenn jemand einen anderen Startwert eintippt, so erhält er andere "Zufallszahlen", beim gleichen Startwert den gleichen Zufallszahlen.

So, der User gibt jetzt einen "kurzen" Key ein, daraus wird der Startwert errechnet und dann in den Zufallsgenerator eingetragen.

Der Zufallgenerator generiert jetzt "Zufallszahlen", und zwar soviel wie der Text zeichen hat.

Per Substitotion/XOR wird dann der Zufalls Key mit dem Text verknüpft.


So der Entschlüssler muss nur den kurzen, selbstgewählten Key eintippen. Das Programm rechnet jetzt wieder den Startwert aus dem selbstgewählten Key aus und starten den Zufallsgenerator.

Und dann das gleiche Spiel von vorne.....
 
Richtig.
Schlüssel soll man sich auch nicht mehr merken können. Deshalb wurde die Länge des Schlüssels bei PGP mittlerweile auch schon mit 1024 als zu klein eingestuft, und weil es immer noch im möglichen Bereich des machbaren BrutForceing liegt. (Wenn man Geld hat)
Schlüssel die man sich merken kann sind da effektiver. Aber sinnvoll wird es da, wenn Du als Schlüssel einen Satz nimmst, der Dir gut gefällt. Sagen wir ein Zitat oder ein Ausspruch eines Berühmten Menschen, oder Deiner Mutter.
So grenzt Du das Wissen des Schlüssels schon ein. Wenn der Satz dann so 10 Worte enthällt und Du den Satz auswendig kannst, sollte einer Passworteingabe nix mehr im Weg stehen.


Mal Hypothetisches Besispiel.

Wenn man das aktuelle Tagesdatum nimmt, daraus einen Hashwert der Länge k bildet, bekommt man immer einen neuen Schlüssel pro Tag. Somit wäre das Konzept der Schlüsselgleichheit beim Sender und Empfänger schon mal gegeben.
Dieser Schlüssel kann mit weiteren Schlüsseln benutzt werden um die Nachricht so zu verschlüsseln, dass man nur die Zusatzschlüssel jeweils vom anderen Kommunikationspartner kennen muss.

Ist der Satz natürlich mist, weil so ja schon zwei davon wissen...
Wenn man sich nun noch nach Schlüsseln umschaut, die erzeugt werden können, wo beide Partner nix von einander wissen müssen, wie obiges, so kann man sagen hat man eine Reihe Schlüssel, die man ohne Probleme anwenden kann.
Nutzt man dann noch einen privaten Schlüssel, den nur beide Parteien kennen zusätzlich, erhöht das die Sicherheit schon noch um einiges.
Und es sollten mehr als nur ein Verfahren zum verschlüsseln genutzt werden, und dabei nicht auf schon bekannte zurückgreifen. Selber einen entwickeln ist immer gut :)
Vor allem wenn die Häufigkeitsanalyse eine asymptotische Kurve oder ein Rauschen als ausgabe zur Folge hätte... würde sich das Verfahren schon mal lohnen. Weil da hilft Gaus nicht mehr weiter...

so long

cromatic
 
Und es sollten mehr als nur ein Verfahren zum verschlüsseln genutzt werden

Das ist in meinen Augen schwachsinn. Man soll für 1 Text nur 1 Verschlüsselungsverfahren benutzen.

Beispiel 2 Weltkrieg:
Eine (die gleiche) Warnung wurde einmal per Enigma verschlüsselt und per Transposition.

Die Engländer haben beide Geheimtext abgefangen, konnten ruck zuck den Geheimtext der Transposition entschlüsseln und haben somit wichtige Daten auf den Angriff des Key der Enigma erhalten.

Was bringt es mir, wenn ich die gleiche Datei einmal mit DES und einmal mit AES verschlüssel? DES kann schnell geknackt werden, und dann hat man die Datei.

Klar Hybrid Verfahren wie es PGP macht kann man gut benutzen, aber dabei werden ja 2 Text mit 2 verschiedenen Keys verschlüsselt


und dabei nicht auf schon bekannte zurückgreifen. Selber einen entwickeln ist immer gut
Das ist noch größerer Unfug.

Klar man kann einen eigenen Entwickel, aber das dieser die selbe Sicherheit hat z.B. AES müsste man Jahre lang Studiere+Lese+Programmieren+Testen und viele Kryptoanaltiker müssten ihn Testen, ob er auch wirklich "sicher" ist. Und dann ist der auch schon wieder Bekannt, wenn der ausführlich getestet wurde, scheiße schon wieder einen neuen Entwickeln....

Also lieber als sicher befundene + öffentliche Algorithmen benutzen, wie z.B. AES als selber einen entwickel und damit wichtige Daten verschlüsseln

@cromatic: Wie würdest du es finden, wenn deine Bank ihr System mit einer einfachen XOR Verschlüsselung schützt, nur weil die glauben das sei "Sicher"?
Schließlich haben die das ja selber Entwickelt......

Klar lernt man beim selber Entwickeln viel, allerdings sollte man den nicht einsetzen.
 
Zurück
Oben