Einfache Verschlüsselungsmethode



  • Hallo,

    ich suche eine einfache Verschlüsselungsmethode, die aus einem Wort und einem zufällig generierten Schlüssel ein immer gleich langes Ergebnis ausgibt.
    Welche würdet ihr mir da empfehlen?


  • Mod

    XOR oder ROT1 bis ROT25.

    Eher XOR, ist einfacher, viel flexibler und hat einen beliebig großen Schlüsselraum. ROT13 können manche Leute flüssig lesen und auch die anderen sind doch sehr leicht zu entziffern. Bei XOR muss man sich schon fast ein bisschen Mühe geben, um es anzugreifen.

    edit: Ich nehme an, mit "gleich lang" meinst du gleich lang wie der Ausgangstext, oder? Falls nicht, füll eben mit irgendwelchem Müll auf.



  • SeppJ schrieb:

    edit: Ich nehme an, mit "gleich lang" meinst du gleich lang wie der Ausgangstext, oder? Falls nicht, füll eben mit irgendwelchem Müll auf.

    Ne, ich meinte mit gleich lang eigentlich, dass ich z.B. immer ein 32 Bit Ergebnis bekomme. Aber wenn ich irgendwelchen Müll anhänge, wie filter ich ihn beim entschlüsseln wieder raus?



  • Ich glaube nicht, dass Du einen Verschlüsselungsalgorithmus suchst. Das klingt eher nach einem MAC (message authentication code) oder einem Hash. 32 Bit sind aber herzlich wenig.

    Was ist der Sinn des Ganzen? Was willst Du wirklich?


  • Mod

    Kryptoman schrieb:

    Ne, ich meinte mit gleich lang eigentlich, dass ich z.B. immer ein 32 Bit Ergebnis bekomme. Aber wenn ich irgendwelchen Müll anhänge, wie filter ich ihn beim entschlüsseln wieder raus?

    Da XOR extrem anfällig wird (nicht das es sicher wäre, aber man will es ja nicht zu einfach machen), wenn man immer das gleiche als Padding anfügt, müssen es Zufallszahlen sein. Wenn du weißt, dass ein bestimmtes Zeichen in deiner Nachricht nicht vorkommen kann (\0 oder -1 sind typische Kandidaten), dann kannst du diese Benutzen um das Ende der Nachricht zu markieren. Falls es solche Zeichen nicht gibt, kannst du z.B. per Konvention festlegen, dass im letzten Byte steht, wieviele Byte Padding davor kommen.



  • krümelkacker schrieb:

    Was ist der Sinn des Ganzen? Was willst Du wirklich?

    Ich suche etwas, mit dem man den Klartext nicht auf anhieb erkennen kann, jedoch ist es wichtig, dass die Anzahl der stellen des Klartexts nicht erkennbar sind. Ein Hash ist aus zwei Gründen nicht das, was ich suche, weil erstens bei einem gleichen Text immer das gleiche Ergebnis rauskommt und zweitens, ich das Ergebnis mit einem Schlüssel wieder entschlüsseln möchte.

    Da XOR extrem anfällig wird (nicht das es sicher wäre, aber man will es ja nicht zu einfach machen), wenn man immer das gleiche als Padding anfügt, müssen es Zufallszahlen sein. Wenn du weißt, dass ein bestimmtes Zeichen in deiner Nachricht nicht vorkommen kann (\0 oder -1 sind typische Kandidaten), dann kannst du diese Benutzen um das Ende der Nachricht zu markieren. Falls es solche Zeichen nicht gibt, kannst du z.B. per Konvention festlegen, dass im letzten Byte steht, wieviele Byte Padding davor kommen.

    Dadurch wird aber sofort ersichtlich, wieviel Stellen der Klartext hat, und das möchte ich nicht.


  • Mod

    Verschlüssel das letzte Byte!



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Dadurch wird aber sofort ersichtlich, wieviel Stellen der Klartext hat, und das möchte ich nicht.

    Du kannst zufaellige Bytes in dein Original einfuegen. Diese muessen beim Entschluesseln aber wieder erkannt und herausgefiltert werden.



  • knivil schrieb:

    Du kannst zufaellige Bytes in dein Original einfuegen. Diese muessen beim Entschluesseln aber wieder erkannt und herausgefiltert werden.

    Jedoch wie schaffe ich es das sie erkannt werden? Ein terminierendes Byte komtm wie gesagt nicht in Frage und zufällige Bytes nur in einem bestimmten Abschnitt auch nicht.


  • Mod

    Kryptoman schrieb:

    Ein terminierendes Byte komtm wie gesagt nicht in Frage und zufällige Bytes nur in einem bestimmten Abschnitt auch nicht.

    Häh? Wieso nicht? Zum letzten Mal: Verschlüssel sie mit!



  • Wurde ja eigentlich schon gesagt:
    Hau Zufallswerte ans Ende, bis du deine gewünschte Länge hast. Ins letzte Byte schreibste, wie viele Zeichen davor Müll sind. Und über den ganzen Spaß haust du dann 'nen vorgefertigten Algo. Fertig.



  • Kryptoman schrieb:

    Jedoch wie schaffe ich es das sie erkannt werden?

    Ein bisschen selber denken darfst du auch. Du willst diese Verschluesselung programmieren und nicht ich.



  • knivil schrieb:

    Ein bisschen selber denken darfst du auch. Du willst diese Verschluesselung programmieren und nicht ich.

    Wenn du fertig bist, zeigst du das verschlüsselte Ergebnis einem Geheimdienstler. Wenn der zum Knacken länger als 10 Minuten braucht, ist dein Algo gut! 😋



  • Wenns einfach sein soll, nimm DES als Verschluesselungsmethode. Da haste auch kein Problem mit angehangenen Bytes.


Anmelden zum Antworten