Topic: [Crittografia] Known Plaintext Attack  (Letto 94 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline hackGI

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
[Crittografia] Known Plaintext Attack
« il: Giugno 09, 2019, 12:58 »
Ciao ragazzi, ho un problema e spero che voi possiate aiutarmi. Ho due stringhe crittografate e di una di queste ho la relativa stringa in chiaro.
A questo punto, conoscendo la stringa crittografata e la sua relativa stringa in chiaro, effettuando la XOR tra le due posso riuscire a ottenere la chiave utilizzata per crittografie la stringa . A questo punto ho scritto il seguente codice:


# codifico in byte le due stringhe
encrypted_message = "blalbalblalblablal".encode()
respective_plaintext = "testoInChiaro".encode()

key = encrypted_message ^ respective_plaintext


Quando effettuo la XOR tra le due stringhe però, ottengo il seguente errore: TypeError: unsopported operand type(s) for ^: 'bytes' and 'bytes'

Qualcuno può darmi una mano per favore ? Vi ringrazio anticipatamente.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.869
  • Punti reputazione: 9
    • Mostra profilo
Re:[Crittografia] Known Plaintext Attack
« Risposta #1 il: Giugno 09, 2019, 22:50 »
Se quello di cui stai parlando è la banale cifratura con xor, tieni conto però che xor è un'operazione bit-a-bit, che quindi si fa sui numeri (binari, almeno concettualmente). Ora, il tipo "str" o il tipo "bytes" con cui python può rappresentare le stringhe *non* sono certo dei tipi numerici (anche se ovviamente "bytes" rappresenta una sequenza di numeri... ma non è comunque un tipo numerico).
Puoi usare "ord" e "chr" per convertire tra carattere (stringhe unarie) e numero, e in questo modo fare poi un xor carattere-a-carattere, se vuoi.