Danke Danke:  0
Gefällt mir Gefällt mir:  0
Dislikes Dislikes:  0
Ergebnis 1 bis 6 von 6

Thema: Blockchiffre aus Hashfunktion basteln

  1. #1

    Registriert seit
    29.04.07
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    9

    Post Blockchiffre aus Hashfunktion basteln

    Anzeige
    Hi Leute!

    Mal ne Frage:


    Nehmen wir an, ich habe eine kryptographische Hashfunktion, zum Beispiel SHA256.
    Hashfunktionen sind ja ansich eine super Sache ...kann man doch so vieles damit machen.

    Jetzt eine Frage. Aus einer hashfunktion müsste sich doch auch ganz leicht eine Blockchiffre machen lassen. Zum Beispiel:



    PHP-Code:
    def encrypt(keyplaintext):
       
    counter=0
       ciphertext
    =[]

       for 
    block in plaintext:
          
    temp=hash(counter key)
          
    ciphertext.append(temp XOR block)
          
    counter+=1

       
    return ciphertext 
    Ist dieser Algorithmus sicher, wenn man eine bisher praktisch nicht gebrochene Hashfunktion verwendet?
    Wenn nein: Warum nicht? Wann nicht? Wann schon?
    Welche Schwächen könnte man sich dadurch einbrocken?

    Danke

    Bin sehr gespannt.
    Ich kann micht nicht erinnern, dass ich mal was vergessen hätte.

  2. #2

    Registriert seit
    23.06.12
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    0

    Standard

    Eines der Ziele einer Hashfunktion ist, schwer umkehrbar zu sein. Eines der Ziele einer Verschlüsselung ist, durch Kenntnis eines Geheimnisses einfach umkehrbar zu sein. Wenn du eine Hashfunktion zur Verschlüsselung nutzt, kannst du sie also nicht wieder entschlüsseln und eine Verschlüsselung ohne Entschlüsselung ist witzlos.

    Edit: Sorry, hatte den Quelltext nicht richtig gelesen.
    Geändert von DerW (16.02.17 um 13:40 Uhr)

  3. #3
    Moderator Avatar von CDW
    Registriert seit
    20.07.05
    Danke (erhalten)
    26
    Gefällt mir (erhalten)
    823

    Standard

    Zitat Zitat von DerW
    , kannst du sie also nicht wieder entschlüsseln und eine Verschlüsselung ohne Entschlüsselung ist witzlos.
    Er kann die Nachricht wieder entschlüsseln, da hier mittels hash(key+counter) ein Stream produziert wird, mit dem dann gexort wird
    Allerdings wird so, "as is", der gleiche Stream (sofern das Passwort gleich ist) für verschiedene Geheimnachrichten benutzt, was z.B einen Knownplaintext ermöglicht.
    D.h. sobald wir den Klartext einer Nachricht kennen, können wir alle anderen Nachrichten an dieser Position entschlüsseln.
    Ferner sollte es anfällig gegenüber many-one-timepad-Angriff sein:
    GitHub - Jwomers/many-time-pad-attack: Attacking A Many Time Pad - Cryptography
    Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
    Selig, wer nichts zu sagen hat und trotzdem schweigt.

  4. #4

    Registriert seit
    29.04.07
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    9

    Standard

    haha, ja entschlüsselbar ist es wohl.

    Aber du, CDW, hast recht! Das habe ich überhaupt nicht beachtet.

    Ok dann noch eine kleine Änderung nach dem Vorbild: von

    Counter Mode – Wikipedia


    Neuer Code:
    PHP-Code:
    nonce=secureRandom() # woher auch immer die zahl kommt :)
    def encrypt(keyplaintext):
       
    counter=0
       ciphertext
    =[]
       
    ciphertext.append(nonce#wir merken uns die nonce, weil wir sie beim Entschlüsseln wieder brauchen
       
    for block in plaintext:
          
    temp=hash(counter key nonce)
          
    ciphertext.append(temp XOR block)
          
    counter+=1

       
    return ciphertext 
    Geändert von pi() (14.02.17 um 22:49 Uhr)
    Ich kann micht nicht erinnern, dass ich mal was vergessen hätte.

  5. #5

    Registriert seit
    05.12.15
    Danke (erhalten)
    3
    Gefällt mir (erhalten)
    5

    Standard

    Ist halt die Frage, ob es sicherer ist, als eine normale Blockchiffre im CTR-Mode. Insgesamt erzeugst du durch die Hashfunktion eine zufällig wirkende Ziffernfolge und XOR'st damit den Plaintext. D.h. du manipulierst lediglich den verwendeten Key, wie du es ohnehin mit der NONCE gemacht hättest. Aber wird damit die Komplexität erhöht?

  6. #6

    Registriert seit
    29.04.07
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    9

    Standard

    Anzeige
    Zitat Zitat von Shalec Beitrag anzeigen
    Ist halt die Frage, ob es sicherer ist, als eine normale Blockchiffre im CTR-Mode. Insgesamt erzeugst du durch die Hashfunktion eine zufällig wirkende Ziffernfolge und XOR'st damit den Plaintext. D.h. du manipulierst lediglich den verwendeten Key, wie du es ohnehin mit der NONCE gemacht hättest. Aber wird damit die Komplexität erhöht?
    Nein also sicherer ist es sicher nicht.
    Es ist eher unsicherer, weil diese "Kombination" ja nicht analysiert wurde, AES-CTR zB hingegen sehrwohl. Außerdem ist es wahrscheinlich langsamer.

    Die Frage ist eher, ist es sicher genug dass ich es verwenden kann, wenn ich zB nur SHA Hardware habe, und aber gerne eine schnelle Verschlüsselung implementieren will.

    Lg
    Ich kann micht nicht erinnern, dass ich mal was vergessen hätte.

Ähnliche Themen

  1. sichere 128-Bit-Einweg-Hashfunktion
    Von Mr.Yeah im Forum Cryptography & Encryption
    Antworten: 10
    Letzter Beitrag: 06.02.09, 14:06
  2. PC Basteln
    Von N1tro im Forum Kaufberatung
    Antworten: 0
    Letzter Beitrag: 01.09.08, 07:24
  3. Sicheres Kryptosystem auf Grundlage von Hashfunktion?
    Von heinzelJacKy im Forum Cryptography & Encryption
    Antworten: 5
    Letzter Beitrag: 16.09.06, 20:33
  4. OS basteln?
    Von fast_killer im Forum Code Kitchen
    Antworten: 18
    Letzter Beitrag: 29.10.05, 16:51
  5. Welche Hashfunktion ist das?
    Von Elex im Forum Cryptography & Encryption
    Antworten: 5
    Letzter Beitrag: 09.08.05, 11:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •