Hallo mede-tweakers,
Momenteel probeer ik een security challenge op te lossen maar ik kom helaas niet verder
Opzet van de challenge
De challenge ziet er ongeveer als volgt uit:
Om de communicatie te versleutelen wordt er gebruik gemaakt van Diffie-Hellman (DH) om een geheim getal c.q. sleutel af te spreken. Ik denk daarom de challenge als volgt te moeten oplossen:
Ook heb ik via Diffie-Hellman met beide partijen een gemeenschappelijke sleutel afgesproken. Dus een sleutel voor de verbinding met Alice en een sleutel voor de verbinding met Bob.
Het probleem
Het probleem is de encryptie die wordt toegepast na de uitwisseling van de sleutels, namelijk:
Alle variabelen in bovenstaand voorbeeld zijn integers. Ik ontvang van Bob de encrypted waarde. Echter moet ik deze decrypten en vervolgens weer encrypten met de key van Alice zodat zij mij het wachtwoord stuurt.
Ik weet de waarde van alle gebruikte variabelen behalve plain_text. Echter is encrypted het resultaat van een modulus operatie. Hoe kom ik er achter wat plain_text was? Ik heb al lang gezocht en van alles geprobeerd maar ik kom er niet uit
Heeft iemand een idee? Alvast ontzettend bedankt
Momenteel probeer ik een security challenge op te lossen maar ik kom helaas niet verder

Opzet van de challenge
De challenge ziet er ongeveer als volgt uit:
- Alice leest een authenticatie-code uit een tekstbestand
- Alice leest de flag uit een tekstbestand
- Bob leest de authenticatie-code uit een tekstbestand
- Bob stuurt Alice zijn authenticatie code
- Alice verifieert de authenticatie code
- Alice stuurt Bob de flag
Om de communicatie te versleutelen wordt er gebruik gemaakt van Diffie-Hellman (DH) om een geheim getal c.q. sleutel af te spreken. Ik denk daarom de challenge als volgt te moeten oplossen:
- Wissel een geheime sleutel uit met Alice via DH
- Wissel een geheime sleutel uit met Bob via DH
- Ontvang de authenticatie-code van Bob
- Ontsleutel de authenticatie-code
- Versleutel de authenticatie-code voor Alice met de uitgewisselde sleutel
- Ontvang de flag van Alice
- Decrypt de flag
- Profit!
code:
1
| [Alice] <====> [Eve] <====> [Bob] |
Ook heb ik via Diffie-Hellman met beide partijen een gemeenschappelijke sleutel afgesproken. Dus een sleutel voor de verbinding met Alice en een sleutel voor de verbinding met Bob.
Het probleem
Het probleem is de encryptie die wordt toegepast na de uitwisseling van de sleutels, namelijk:
code:
1
2
3
4
5
| plain_text ^ key % constante = encrypted oftewel encrypted = plain_text ^ key mod(constante) |
Alle variabelen in bovenstaand voorbeeld zijn integers. Ik ontvang van Bob de encrypted waarde. Echter moet ik deze decrypten en vervolgens weer encrypten met de key van Alice zodat zij mij het wachtwoord stuurt.
Ik weet de waarde van alle gebruikte variabelen behalve plain_text. Echter is encrypted het resultaat van een modulus operatie. Hoe kom ik er achter wat plain_text was? Ik heb al lang gezocht en van alles geprobeerd maar ik kom er niet uit

Heeft iemand een idee? Alvast ontzettend bedankt
[ Voor 3% gewijzigd door Richum op 27-07-2019 18:53 ]