venerdì 23 gennaio 2015

Cifratura simmetrica

Livecode permette di cifrare sia in maniera simmetrica che asimmetrica. Oggi vedremo il sistema più semplice di cifratura: la cifratura simmetrica. La cifratura simmetrica è la più semplice e la più utilizzata al mondo, con la stessa parola chiave (password) si camuffa un testo,cioè si cifra, e con la stessa password si ricostruisce il testo originale, cioè si decifra.
Livecode supporta diversi sistemi di cifratura, sia asimmtrica che simmetrica; per avere una lista dei sistemi supportati e con che modalità basta utilizzare la funzione ciphernames(), ecco un breve riassunto

  • aes
  • bf
  • blowfish
  • camellia
  • cast
  • cast5
  • des
  • des3
  • desx
  • id-aes128-GCM
  • id-aes192-GCM
  • id-aes256-GCM
  • rc2
  • rc4
  • seed

Per inciso, tutti i sistemi più avanzati che dichiarano di utilizzare una cifratura più difficile di tipo asimmetrico, in realtà non riescono ad utilizzarla completamente, perchè un procedimento del genere richiede un tempo molto grande. Per questo motivi cifrano in maniera asimmetrica solo la password simmetrica di un testo cifrato in modo simmetrico.

Nel nostro caso cifreremo simmetricamente utilizzando il sistema blowfish.

Facciamo uno stack con  con i seguenti campi: testo, password e cifrato. Aggiungiamo due pulsanti: cifra e decifra. Mettiamo nel pulsante cifra il seguente codice:

on mouseUp
   put the text of field "testo" into testo
   put the text of field "password" into passw
   encrypt testo using "bf" with password passw
   set the text of field "cifrato" to it
end mouseUp

In questo modo, premendo sul pulsante cifra, nel campo cifrato apparirà il testo cifrato:
Per decifrare possiamo mettere il seguente codice nel pulsante decifra:

on mouseUp
   put the text of field "cifrato" into testo
   put the text of field "password" into passw
   decrypt testo using "bf" with password passw
   answer it
end mouseUp

Nel prossimo post vedremo come utilizzare i sistemi asimmetrici.
Il limite di sicurezza nella cifratura simmetrica risiede nel fatto che a chi inviamo un messaggio cifrato, dobbiamo far sapere anche la chiave utilizzata, e quindi se cade nelle mani di qualcun altro, anche quest'ultimo potrà decifrare i nostri messaggi.