Crypter Frage

Schnelle objektorientierte, kompilierende Programmiersprache.
Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Crypter Frage

Beitrag von Kmitska » Di Mär 20, 2012 10:24 pm

Hallo Leute,

ich wollte mich mal über Verschlüsselungen informieren.

Also: Ich würde gerne einen Algorithmus schreiben, mit dem ich z. B. Passwörter verschlüssel und in einer Datei speicher und beim nächsten mal wieder aufrufe.

Ich weiß nur, dass man z. B. mit ' ^ ' und andere Operatoren die Bits manipulieren kann, leider krieg ich das nur mit "int" hin.

Irgendwelche vorschläge oder Erklärungen, wie man eigenen Crypter schreiben könnte?

Danke im Voraus!

Kind regards,
Kmitska

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Crypter Frage

Beitrag von Xin » Di Mär 20, 2012 11:25 pm

Kmitska hat geschrieben:Also: Ich würde gerne einen Algorithmus schreiben, mit dem ich z. B. Passwörter verschlüssel und in einer Datei speicher und beim nächsten mal wieder aufrufe.
Ich weiß nur, dass man z. B. mit ' ^ ' und andere Operatoren die Bits manipulieren kann, leider krieg ich das nur mit "int" hin.
Ein Int sind vier Byte.
Ein Char ist ein Byte.
Vier Char sind ein Int.

Ein Computer hat keine Ahnung, was ein Passwort ist oder ein Buchstabe, aber es gibt im Computer Funktionen, die einen Interpreter enthalten und wenn sie den Byte-kodierten Befehl 65 erhalten, dann malen sie auf den Bildschirm ein Bitmuster, dass ungefähr so aussieht: -> A <-.

Noch Fragen? ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Crypter Frage

Beitrag von Kmitska » Mi Mär 21, 2012 1:51 pm

ausser meinen Zitat hab ich nichts verstanden... :/

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Crypter Frage

Beitrag von cloidnerux » Mi Mär 21, 2012 2:24 pm

1. Der Computer arbeitet immer mit Zahlen, egal welchen Datentyp du da vor dir hast. Zeichen sind Zahlen, die einen Buchstaben repräsentieren. Ein String ist ein Array aus Zahlen die Zeichen Repräsentieren. Alles besteht aus zahlen, sogar der compilierte Programmcode. Alles.
2. Kryptographie beschäftigt sich damit, Zahlen so zu verschlüsseln, dass sie direkt nicht einsehbar sind, aber die Kryptografie wieder rückgängig zu machen ist.
Mit dem XOR-Operator geht das schon ganz gut:
A ^ B = C C ^ B = A
Aber das ist noch etwas zu Primitiv, daher gibt es Systeme wie AES, die das ganze etwas besser lösen und sich mit einer ganzen reihe an anderen Problemen auseinander setzten.
Wenn du aber nur Passwörter Speichern willst, gibt es eine weitere Möglichkeit, nämlich Hashes oder Krypto-Hashes. Dabei werden deine Daten so verarbeitet, das am Ende ein möglichst sehr Eindeutiger Identifier entsteht, der aber keinen Aufschluss über das Passwort liefert. Will man nun das Passwort prüfen, so hasht man auch dies mit dem selben Algorithmus und vergleich die Ergebnisse, da die gleich sein müssen.

Da das ganze Thema aber zu kompliziert ist, um es hier im Forum auf dauer zu erklären, empfehle ich dir dich über google schlau zu machen und gegebenenfalls damit etwas warten, bis das Programmiertechnische Verständnis gewachsen ist
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Crypter Frage

Beitrag von Xin » Mi Mär 21, 2012 2:44 pm

Kmitska hat geschrieben:ausser meinen Zitat hab ich nichts verstanden... :/
Hehehe, okay, versuchen wir es anders.

Ein Computer hat keine Ahnung, was ein Buchstabe ist. Er kennt nur Zahlen. Integer-Zahlen, also auch solche, die man mit XOR verarbeiten kann.

Ein char ist eine Integerzahl mit 8 Bit Breite, ein int ist eine Integerzahl mit 32 Bit breite.

Code: Alles auswählen

int main( void )
{
   union
   {
     char text[4];
     unsigned int integer;
   } value;

   value.text[0] = 'b'; 
   value.text[0] = 'l'; 
   value.text[0] = 'a'; 
   value.text[0] = '\0'; 

   printf( "Value: %s entspricht %u\n", value.text, value.integer );
}
Du kannst also Text/Passwörter 1:1 auf integers konvertieren und damit machen, was Du willst - also zumindest 4 chars auf ein Integer.
Ein Text ist am Ende nichts anderes als eine seeeeehr große Zahl, die man in viele Integers unterteilen kann (wie man große Zahlen in viele Ziffern von 0-9 unterteilen kann) oder in kleine Integers (chars), die man als Buchstaben ansieht.
cloidnerux hat geschrieben:Da das ganze Thema aber zu kompliziert ist, um es hier im Forum auf dauer zu erklären, empfehle ich dir dich über google schlau zu machen und gegebenenfalls damit etwas warten, bis das Programmiertechnische Verständnis gewachsen ist
Du kannst Dich mit rot13, bzw. Caesar-Verschlüsslung erstmal beschäftigen, das sind übliche Aufgaben, die ich meinen Schülern stelle. Sehr einfache Verschlüsselung, das hat auch nichts mit "Sicher" zu tun, aber es ist eine Verschlüsselung.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Crypter Frage

Beitrag von Kmitska » Mi Mär 21, 2012 11:03 pm

Hmm... dass ein char wie ein int ist war mir klar... (str[0]='1';)

Was ich bis jetzt verstanden habe:
Ich teile einen String in Integers auf und manipuliere die Bits z. B. mit XOR-Operatoren?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Crypter Frage

Beitrag von Xin » Mi Mär 21, 2012 11:08 pm

Kmitska hat geschrieben:Was ich bis jetzt verstanden habe:
Ich teile einen String in Integers auf und manipuliere die Bits z. B. mit XOR-Operatoren?
Das ist eine Möglichkeit.
Dafür muss der String immer eine durch vier glatt teilbare Länge haben (4, 8, 12...)

Wie Du schlussendlich verschlüsselst ist Dir überlassen.

Wenn das ganze realistisch sicher sein soll, wirst Du Dich allerdings deutlich mit Mathematik und Kryptographie auseinander setzen. Davon rate ich aber erstmal ab, denn daran sollte man sehr viel Spaß haben.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Crypter Frage

Beitrag von Kmitska » Do Mär 22, 2012 6:26 pm

Also wäre es so:

"Hallo Welt!"
HALL
O WE
LT!\0

und würden meine Mathe-Kenntnisse ausreichen für die sichere Verschlüsselung? (9. Klasse Gym.) :)
Ich würde schon ein richtigen Crypter entwickeln und gibt es da irgendwelche header Dateien, die ihr mir als Tutorial raten würdet?

Offtopic:
Über ein mobile-Portal für das Forum würde ich mich sehr freuen! :)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Crypter Frage

Beitrag von Xin » Do Mär 22, 2012 6:41 pm

Kmitska hat geschrieben:Also wäre es so:

"Hallo Welt!"
HALL
O WE
LT!\0
Richtig.
Kmitska hat geschrieben:und würden meine Mathe-Kenntnisse ausreichen für die sichere Verschlüsselung? (9. Klasse Gym.) :)
Ich bin mir derzeit ziemlich sicher, dass meine Mathekenntnisse für eine sichere Verschlüsslung nicht ausreichen (Hochschulstudium, Abschluss Diplom-Informatiker (FH)) ;-)

Man verlernt so schnell wieder. ^^
Kmitska hat geschrieben:Ich würde schon ein richtigen Crypter entwickeln und gibt es da irgendwelche header Dateien, die ihr mir als Tutorial raten würdet?
Zwei Dinge: Erstens ist es einfacher, ein Passwort zu überprüfen als etwas wirklich zu verschlüsseln.
Das Passwort musst Du ja nur durch den Fleischwolf drehen und das speichern. Drehst das nächste Passwort auch durch den Fleischwolf muss das gleiche rauskommen. Hier ist es wichtig eine große Streuung hinzubekommen, so dass der Fleischwolf möglichst grundsätzlich unterschiedliche Ergebnisse rausspruckt.
Hier entsteht ein Hashwert.

Wenn Du wirklich verschlüsseln willst, dann musst Du die verschlüsselten Daten ja auch wieder herstellen können. Du musst das Hackfleisch also wieder in den Fleischwolf stopfen und oben muss eine Kuh, ein Schwein oder ein Lamm rauskommen. Die Aufgabe ist schon etwas schwerer.

Auf meiner privaten Website findest Du die Enigma-Verschlüsslung, die die Deutschen im 2. Weltkrieg verwendet haben.
Damit solltest Du ins Thema kommen. Anschließend kannst Du Dich langsam aber sicher aktuelleren Verfahren widmen. Wenn Du bei Verschlüsselungen mit öffentlichen und privaten Schlüsseln angekommen bist, solltest Du am Ziel sein.
Schreib doch darüber ins Wiki, das kannst Du dann gleich noch als besondere Leistung im Gym vermarkten.
Kmitska hat geschrieben: Offtopic:
Über ein mobile-Portal für das Forum würde ich mich sehr freuen! :)
Jow, ich mich auch. Verliere ich auch nicht aus den Augen, aber Du sollst in der Schule aufpassen und nicht auf proggen.org lesen ;->
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Crypter Frage

Beitrag von fat-lobyte » Do Mär 22, 2012 6:48 pm

Kmitska hat geschrieben:und würden meine Mathe-Kenntnisse ausreichen für die sichere Verschlüsselung? (9. Klasse Gym.) :)
Kommt drauf an was du mit "Sicher" meinst.
Sicher gegen deine kleine Schwester, die deine Liebesbriefe Lesen will?
Sicher gegen dein Eltern, die deinen Erotikkonsum beobachten wollen?
Sicher gegen die Kriminalpolizei, die nach Raubkopien sucht?
Oder sicher gegen die NSA, die mit ihrem Supercomputer alle Freunde und Feinde der Vereinigten Staaten durchleuchtet?

Diese Frage solltest du dir stellen. In den ersten zwei Fällen solltest du's hinkriegen, sofern deine Eltern nicht gerade Sicherheitsspezialisten sind.
In den letzteren Fällen würde ich wirklich SEHR davon abraten selber etwas zu basteln.
Ich würde schon ein richtigen Crypter entwickeln und gibt es da irgendwelche header Dateien, die ihr mir als Tutorial raten würdet?
Es müsste einige Bibliotheken für Verschlüsselung geben, leider kenne ich keine. Such in Google nach "cryptography library C++" oder so.

Kryptographie ist ein ernstes Thema (unter Umständen hängen Leben davon ab), und ich würde - wenn du dich wirklich drauf verlassen willst - nichts selbst schreiben, bevor du nicht 15 Jahre in dem Geschäft bist.
Über ein mobile-Portal für das Forum würde ich mich sehr freuen! :)
m.proggen.org
Das wär echt toll....
Haters gonna hate, potatoes gonna potate.

Antworten