1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Studentenhausaufgabe

Discussion in 'Programmieren' started by Soulnight, Dec 6, 2006.

Thread Status:
Not open for further replies.
  1. Soulnight

    Soulnight ROM

    Hilfe!!!!!
    Also eigentlich kann ich nicht, wie auch nen großteil meiner anderen Leidensgenossen programmieren, aber unser Prof findet es lustig uns trotzdem mal so ne Aufgabe zu stellen, über die schon andere Professoren nur den Kopf schütteln konnten.

    Also, das Problem ist, das ich eine Schleife brauche.
    Ich hab, um es besser verstehen zu können, einen verschlüsselten Text in Hexzahlen bekommen, und das Programm, das diesen brechen kann. Außerdem hab ich die ersten 8 KLartext Hexzahlen und den den SChlüssel, der ebenfalls aus 8 Zahlen besteht, bei dem aber die letzten drei fehlen.
    Und da ist das Problem, ich muss also eine Schleife ins Programm einbauen, die systematisch, die verschwiedenen Möglichkeiten durchgeht und dann vergleicht ob, dies mit dem Klartext übereinstimmen kann.

    Ich habe selbst etwas herum experementiert, aber irgendedwas muss ich falsch gemacht haben.

    Der besagte Programm ausschnitt siehrt bei mir so aus.

    int main(int argc, char* argv[])
    {
    time_t times[2];
    unsigned char key[8] = { 0x29, 0x54, 0xF2, 0x19, 0xFA, 0x00, 0x00, 0x00 };
    unsigned char block[8] = { 0x6B, 0xCB, 0x93, 0x89 , 0x0E, 0xC5, 0xDF, 0xE1 };
    unsigned char know[8] = { 0x42, 0x45, 0x4B, 0x41 , 0x4E, 0x4E, 0x54, 0x45 };
    keysched ks;

    // Startzeit speichern
    time(&times[0]);

    // Eingabeparameter ausgeben
    printf("Schluessel : %s\n", bin2hex(key));
    printf("Klartext : %s (Text %.8s)\n", bin2hex(block), block);


    for (key[7]<00xFF i++);
    for (key[6]<0xFF; i++);
    for (key[5]<=0xFF; i++);


    if {key[0]==block[0], key[1]==block[1], key[2]==block[2], key[3]==block[3]
    key[4]==block[4], key[5]==block[5], key[6]==block[6], key[7]==block[7];
    printf(key);}

    else
    { int i; block=i;i=0;i++ };



    Ich wär für jede Hilfe dankbar, weil ich bisher nie programmiert habe und es wirklich unfair finde.
     
  2. Michi0815

    Michi0815 Guest

    das ist schon mal grober murx ;)
    du durchläufst da 3 einzelne schleifen, die jeweils ... eigentlich garnix machen


    probiers mal mit
    Code:
    for (key[7]=0x0; key[7]<=0xFF; key[7]++)
    {
    	for (key[6]=0x0; key[6]<=0xFF; key[6]++)
    	{
    		for (key[5]=0x0; key[5]<=0xFF; key[5]++)
    		{
    			// hier wird decodiert,
    			// überprüft und wenn der 
    			// key stimmt eine meldung 
    			// ausgegeben
    		}
    	}
    }
    edit: warum prüfst du eigentlich ob der key gleich dem verschlüsselten daten ist?

    sinnvoller wäre doch zu prüfen ob der entschlüsselte datenblock dem bekannten klartext entspricht...
     
  3. Michi0815

    Michi0815 Guest

    :D :D jetzt hab ich mir das mal alles durchgelesen :D :D

    um den "code" zu knacken braucht man doch kein programm. das geht auf einem blatt papier schneller...

    key[7] ist übrigens 0xA4
     
  4. Soulnight

    Soulnight ROM

    Oh menno, das will doch alle gar net klappen, ich hab das jetzt geändert, aber immer noch will das Programm nicht.
    Ich hab doch noch nie so programmiert und wie soll ich das bitte mit Papier und Stift machen, das geht ja gar net mehr, daran sitzt man doch Stunden?
    Nun vielleicht hab ich ja was falsch verstanden, hm, ich glaub ich setzt einfach mal die Frage rein, wie wir sie gekriegt haben.

    Wir wollen eine Brute-Force Attacke auf DES durchführen. Dazu befindet sich im Übungsordner
    ein Programmcode in der Programmiersprache C, der bereits eine Ver- und Entschlüsselung
    eines Datenblockes durchführt. Ihre Aufgabe besteht darin, mit Hilfe des gegebenen
    C-Sourcecodes ein Programm zu erstellen, das systematisch den Schlüsselraum durchprobiert.
    Glücklicherweise ist Ihnen bereits ein Teil (32 Bit) des Schlüssels bekannt, so dass sie nicht die
    gesamten 56 Bit Schlüsselraum vollständig durchsuchen müssen.
    (a) Im Übungsordner befindet sich ein Unterordner mit Chiffraten. Suchen sie denjenigen
    Chiffretext heraus, dessen Dateinamenende der letzen Stelle ihrer Matrikelnummer entspricht
    (matrikelnr## + letzte Stelle ihrer Matrikelnummer). Zu dieser Datei sind
    ihnen folgende Parameter für die Attacke bekannt:
    • Sie wissen, dass der Klartext des ersten DES-Block das Wort BEKANNTE ist, was
    dem 64-Bit Hexwert 42 45 4B 41 4E 4E 54 45 entspricht.
    • Weiterhin kennen Sie aus sicherer Quelle den Schlüsselteil 2954F219FAXXXXXX.
    Die letzten 6 Stellen mit X sind leider nicht bekannt und müssen mit der Brute-Force-
    Attacke ermittelt werden.
    Führen Sie dann auf diese Datei ein Brute-Force Attacke durch und ermitteln Sie den
    vollständigen Schlüssel!

    So darf ichjetzt richtig verzweifeln?:bahnhof:
     
  5. Michi0815

    Michi0815 Guest

    ok war wohl zufall...
    0x29 xor 0x6B = 0x42

    wie heissen denn die ver/entschlüsselungs routinen?
     
  6. Soulnight

    Soulnight ROM

    Oh man, keine Ahnung, ich müsste da ja den ganzen Programmcode durchgehen, das ist aber ne DES Verschlüsselung, wenn dir das reiche würde. Ich hab wie gesagt ansonsten nur das was da steht, plus dann noch nen verschlüsselten Text, den ich mit dem Schlüssel lösen müsste.
     
  7. Michi0815

    Michi0815 Guest

    du wirst wohl kaum umhinkommen die zur verfügung gestellten librarys zu verwenden. und daher wirst du nicht umhinkommen zumindest die wichtigsten teile davon zu lesen :D
     
Thread Status:
Not open for further replies.

Share This Page