[OT] Crittografia e sistemi di protezione dei dati

quel cifrario si usa in guerra, sono distribuiti vari on-time-pad per le comunicazioni segretissime

@lock: ma non puoi usare un fs crypto che già esiste?

Eh, no, io non ho mai detto di cifrare piu di una volta con lo stesso algoritmo ... ma con algoritmi diversi :stuck_out_tongue: ...

gpb01: immagina un RSA ricifrato con bowfish ricifrato di nuovo con DES, magari usando chiavi a trasposizione ... e poi dimmi come fa l'algoritmo di decifrazione del DES (dico DES solo perche' essendo l'ultimo degli encrypt, deve per forza essere il primo dei decrypt, non perche' lo preferisco o voglio per forza quello, puo essere qualsiasi cosa tu vuoi)) a sapere che l'uscita (che e' ancora un'ammasso di dati senza senso, perche' richiede altri due (come minimo, se sono stato buono) passaggi, e' decrittata correttamente ? ... specie se, magari, fra un'algoritmo e l'altro ho fatto la semplice operazione di "tranciare" parte della stringa in testa e posizionarla in coda (o viceversa) ?

Ovvio che io sono un principiante in campo di cifratura ... non saprei scrivere un'algoritmo di encrypting ... ma le idee "kattive" per rendere la vita difficile ai decrittatori, non mi mancano :stuck_out_tongue: XD

lesto: anche se te ne dessi 10000 di messaggi, nessun supercomputer sarebbe in grado di capire il procedimento ricavandolo dai messaggi ... lo spiego per Lock, cosi ti rendi conto del perche' :wink:

Lock: il sistema e' assolutamente banale (ma ormai e' conosciuto, perche' l'ho gia detto ad alcune persone in passato, quindi non lo considero piu sicuro :P), ma se non te lo dicono di solito non viene in mente ... si tratta semplicemente di convertire il testo da ASCII a binario, mettere le stringhe binarie in fila, poi dividere la stringa di bit risultante in una matrice che NON sia di multipli di 8 (ad esempio, 9 righe di 11 caratteri, o piu se i bit sono di piu, il formato lo scegli al momento), aggiungendo alla fine degli zeri per completare la matrice in modo che sia "piena" (che non restino spazi vuoti), e poi RUOTARE il foglio di 90 gradi (e' questo il punto che nessuno si e' mai immaginato, ed e' di una banalita' assoluta :stuck_out_tongue: XD) ... in questo modo la tua matrice diventa, come nell'esempio, di 11 righe di 9 caratteri, ora rimetti le righe in fila in modo da ottenere nuovamente una stringa, la dividi in bytes e ritrasformi da binario ad esadecimale (puoi fare anche da binario a decimale, se vuoi, ma chi riceve deve saperlo :P) ...

Ora, i caratteri che ottieni li metti insieme in gruppi di lunghezza a caso (la lunghezza dei gruppi che ottieni e' ininfluente, perche' i gruppi in se non hanno alcun senso ne alcun rapporto con il contenuto, conta solo l'ordine dei singoli caratteri), ci appendi la "chiave" (cioe' l'indicazione per il ricevente, in un formato stabilito in precedenza, di quale dimensione dovra' avere la matrice che dovra' ricostruire dalla conversione hex-binario dei singoli caratteri, del numero di zeri da togliere dalla fine dopo averla ruotata, della direzione in cui la devi ruotare, ecc ... nota che, anche sapendo tutto quanto, devi anche conoscere in quale formato leggere la "chiave", altrimenti non te ne fai nulla :P) ... quello che ottieni e' un messaggio composto da stringhe esadecimali, di lunghezza casuale, ed il cui valore non ha assolutamente nulla a che fare, in nessun modo, con il contenuto del messaggio originale :stuck_out_tongue:

Per decodificarlo, leggi la chiave per sapere il formato della matrice (11x9, in questo caso), il senso di rotazione, ed il numero degli zeri extra, trasformi le singole cifre (esclusa ovviamente la chiave, che non fa parte del messaggio) in binario, metti in fila, dividi nella matrice, ruoti il foglio, togli gli zeri extra (se ce ne sono), rimetti in fila, riconverti ogni byte in ascii, ed hai il tuo messaggio :stuck_out_tongue:

Si fa prima a farlo che a spiegarlo :wink:

finché non fu preso il suo utilizzatore

Be', qui torniamo al vecchio principio che un codice e' perfetto, solo se lo conoscete solo tu e l'altro con cui comunichi ... e che per scardinare uno di questi codici, serve il sistema "tubo di gomma" :stuck_out_tongue: XD XD XD

Ete, il principio è lo stesso. Se cifri n volte con n cifrari e chiavi diversi ottieni come risultato lo stesso rimescolamento dei dati che otterresti cifrando con un unico algoritmo con una chiave molto lunga.
Cifrare 4 volte con 4 cifrari diversi a 64 bit equivale a cifrare 1 volta con un cifrario con chiave a 256.

PS:
quello che hai applicato è un classico cifrario a trasposizione o permutazione, dove tu cambi i dati in chiaro secondo un determinato schema, che rappresenta la chiave di decifratura.

leo72:
...
quello che hai applicato è un classico cifrario a trasposizione o permutazione...

Si ... ma nessuno fin'ora era arrivato ad indovinare che per risolverlo bisognava "ruotare" fisicamente la matrice :wink: ... anche il mio prof, quando glie l'ho spiegato, ha ammesso che il girare fisicamente il foglio era l'unica cosa che non gli sarebbe mai venuta in mente di fare :stuck_out_tongue:

Etemenanki:

lesto: anche se te ne dessi 10000 di messaggi, nessun supercomputer sarebbe in grado di capire il procedimento ricavandolo dai messaggi ... lo spiego per Lock, cosi ti rendi conto del perche' :wink:

se SO che il tuo messaggio contiene qualcosa di senso compiuto, allora pioi anche annidiare quanti algoritmi vuoi, io posso creare un sistema che genera un algoritmo A CASO che smadruppa i tuoi messaggi.

Quindo quando uno degli algoritmi random restituisce testo di senso compiuto (in base ad un dizionario, o al controllo umano), allora ho craccato il tuo codice.

Come detto prima, il tempo e le risorse sono il vero problema :slight_smile:

Ora, se invece che applicare algoritmi a caso ci metti un pò di logica, becchi qualche codice. Se poi hai in mano anche il sistema criptante/descriptante diventa molto più facile. Enigma docet.

Etemenanki
gli algoritmi che fanno affidamento al fatto che non si sa come funzionano, storicamente sono stati tutti dei fallimenti. Tutti, senza alcuna eccezione.

lesto: si, pero' ti ci vogliono una trentina di secoli ed alcune migliaia di computer ... oppure una rete globale di CRAY e TITAN , una trentina di miliardi, e qualche annetto :stuck_out_tongue: ... e' tutta una questione di "quanto vale la pena farlo" ... se ci devi decrittare i dettagli del piano terroristico che prevede di far scoppiare una decina di testate nucleari in altrettante capitali del mondo, la spesa e le risorse sono ampiamente giustificabili, se ci devi decrittare il "pizzino" del boss mafioso di quartiere solo per controllare se e' un'ordine di esecuzione o la ricetta della torta della nonna, un po meno :stuck_out_tongue: XD XD XD

zoomx: certo, perche' sono ultrasicuri solo fino al momento in cui non diventano pubblici, come ho gia detto ... finche' nessuno (a parte le due persone che lo usano per comunicare) conosce il sistema, non esiste modo di "decrittare" il messaggio, anche perche', per quanto ne sai, potrebbe anche essere, ad esempio, posizionale anziche semantico ... tipico esempio e' un messaggio criptato in cui le lettere ed i numeri del testo cifrato non hanno alcun senso, quello che conta e' la "posizione" di alcuni dei caratteri nel testo, scelti arbitramente in precedenza ... ti faccio un'esempio banale:

"Tutti morimmo a stento"

Questa frase, scritta magari su un muro in pubblico, potrebbe essere un'ipotetico messaggio criptato di tipo posizionale, assolutamente impossibile da decifrare, in cui una persona ordina ad un'altra di ucciderne una terza, specifica, in un gruppo, e gli indica anche quale persona del gruppo, e fra quanti giorni farlo ... prova ad immaginare come, se ci riesci :wink: (suggerimento: la parola "morimmo" non ha alcun riferimento all'ordine in se', come anche il resto della frase, ne tantomeno il suo significato, avrei potuto usare letteralmente qualsiasi altra frase, dando le stesse identiche indicazioni :wink: :P)

il mio è un sistema a forza bruta, quindi il caso peggiore, applicabile anche ad un solo messaggio (anche se è possibile "decriptare" un altro testo rispetto all'originale!) Avendo più messaggi a disposizione si possono anaizzare "a cervello" per capire un filo conduttore conune.
Per esempio, col tuo sistema non mi stupirei se esistessero dei pattern che si ripetono, analizzabili in modo statistico e asseganbili a delle lettere, però non ne sono sicuro (dovrei provare a criptare alcuni testi. In genrelae il tuo "girare il foglio di 90°, matematicamente si dice matrice trasposta). In generale il fatto che un numero ristretto di persone "appasionate" non buttino giù il tuo codice non vuol dire che può resistere più di 5 minuti in mano ad un professionista.

Per quanto riguarda l'ultimo esempio, direi che si tratta più di steganografia che di criptazione.

In oltre essendo il valore del messaggio deciso "a priori" allora è assimilabile ad un one-time-pad, ovvero la cifratura di verne, se poi la usi il mesaggio solo una volta è un vernam, che come diceva leo è la cifratura "perfetta"

lesto:
... è assimilabile ad un one-time-pad ...

Quasi, in realta' potresti usarlo piu di una volta, ma sempre se nessun'altro lo conosce, e comunque sempre un limitato numero di volte, ovviamente, perche' e' "tagliato su misura" per quello specifico tipo di ordine (come tutti quelli di quel tipo) ... comunque questo tipo di codifiche in genere si usano tutte una o due volte al massimo, quella ad esempio l'ho inventata al volo, dato che e' proprio questa la caratteristica principale di questo tipo di codifiche, cioe' l'inventare "al volo" regole arbitrarie, conosciute solo dal mittente e dal destinatario, che non seguano schemi ripetitivi ...

ad esempio, nella frase di prima:

  1. la frase contiene tutte e cinque le vocali, significa che e' un'ordine di esecuzione (un numero diverso di vocali avrebbe un significato diverso)
  2. una parola (qualsiasi) con meno di 4 caratteri e' la terza della frase, significa che la persona da eliminare e' la terza del gruppo (in un'ordine deciso in precedenza, ovviamente)
  3. la frase contiene, all'inizio (in questo caso, ma potrebbe essere in qualsiasi altro punto predefinito) 4 parole di seguito senza punteggiature, interpunzioni, trattini o altri segni, significa che l'azione deve svolgersi fra 4 giorni (nel caso di una frase piu lunga, basta metterci una virgola o un trattino o un carattere o parola decisi in precedenza come interruzione)

Con questo tipo di "cifrario" posizionale (ma sarebbe piu corretto definirlo "metalinguaggio", piu che cifrario), puoi usare letteralmente qualsiasi frase, compiuta o meno, in qualsiasi lingua, reale o inventata, per comunicare ordini specifici mediante parametri decisi in precedenza con il tuo interlocutore (questo, in effetti, e' il limite enorme di questo tipo di codici ... funzionano solo fra le due persone che li conoscono, e non possono essere usati per comunicare con terzi), e finche' nessun'altro conosce quei parametri, non esiste letteralmante nessun modo per decifrare il messaggio.

Etemenanki:

lesto:
... è assimilabile ad un one-time-pad ...

Quasi, in realta' potresti usarlo piu di una volta, ma sempre se nessun'altro lo conosce, e comunque sempre un limitato numero di volte, ovviamente, perche' e' "tagliato su misura" per quello specifico tipo di ordine (come tutti quelli di quel tipo) ...

SE puoi scambiare ogni volta il nuovo algoritmo, allora PUOI scambiare ogni volta un nuovo PAD, certo non lo usi una sola volta ma, finchè la chiave non è mai ripetuta, la cifratura regge.
Per esempio nella seconda guerra vari eserciti avevano un libricino di chiavi casuali one-time-pad, tutti diversi. Quando avevano comunicazioni molto importanti, si inviava il nome del reparto e il numero delle pagine usate, poi per evitare ripetizione la pagina veniva distrutta.

il problema che la criptografia è quando NON CI SI PUO' ACCORDARE SPESSO, e quindi una grande serie di dati va criptata con LA STESSA CHIAVE.

INFATTI la criptazione quantica, considerata per ora teoricamente perfetta, non è altro che un sistema per scambairsi una chiave da usare col metodo VERNAM (o OTP), che tra l'altro si può applicare facilmente anche a mano.

edit: leo, riesci a muovere la discussione della criptoanalisi in una discussione a parte?

Per restare nell'argomento di ... questo thread Off-Topic ... :grin:

Non so se avevate visto, o vi era sfuggito, QUESTO "simpatico" articolo dello scorso Ottobre ...

... bella è ???

Guglielmo

P.S. : Anche altri articoli, su quella pagina ... sono "educativi" ... :wink:

Ah ... naturalmente potete inventare anche l'algoritmo più figo del mondo e impossibile da crackare ma ... comunque a fottervi le informazioni ... ci pensa l'hardware del vostro PC ...

... magari vi è sfuggito anche QUESTO ... :grin: :grin: :grin:

Guglielmo

grazie, al giorno d'oggi bisogna tenersi informati su queste cose, il grande fratello si fa sentire, anche se non sarò come immaginato da orwell, c'è da fare molta attenzione secondo me

lock:
@gpb01
cioe' ? snocciola bene il tuo pensiero.

Relativamente a cosa ??? ... non mi pare di aver espresso pensieri od opinioni ... ho indicato un paio di articoli che ... ritengo "educativi" :wink:

Guglielmo

No lock, stiamo parlando di normali chip (e.g. CPU) che all'interno hanno parti di firmware (caso più semplice) o logiche complesse HW, attivabili per scopi malevoli o comunque ... non documentati nelle specifiche ...

Un vecchissimo esempio (... oggi si fa molto di peggio) erano i chip montati in alcune armi vendute dagli USA all'IRAQ. Quelle armi, durante la Guerra del Golfo, furono semplicemente rese inutilizzabili contro chi glie le aveva vendute (... chiamali scemi :grin:) semplicemente inviandogli un opportuno codice :wink:

Se fai un po' di ricerche per malware nell hardware ... dovresti trovare vari articoli che parlano, appunto, di modifiche fatte a livello di mascheratura del silicio, per introdurre sezioni malevoli in componenti normalmente usati ... :roll_eyes:

Guglielmo

lock ... dai un'occhiata a QUESTO libro ... :wink:

Guglielmo

E dov'e' il problema ? ... basta costruirsi la CPU da soli, e sai cosa contiene ...

:stuck_out_tongue: 8) :astonished: :stuck_out_tongue_closed_eyes: ]:smiley: :grin: ]:smiley: :stuck_out_tongue_closed_eyes: :astonished: 8) :stuck_out_tongue:

Si, ma ce la metti la backdoor "NSA-approved" per poterla vendere in USA ? ... :stuck_out_tongue: XD XD XD

lock:
appunto, se la paranoia sta a questi ...

Paranoia ??? Ma che dici ??? Altro che paranoia ... se poco poco lavori con i militari sai benissimo che non è affatto paranoia ... purtroppo è la REALTA' di oggi ... non ti puoi fidare più di nessun chip ... visto che non sai cosa diavolo, chi lo produce, possa averci aggiunto di suo !!!

Altro che storie ...

Guglielmo

lock:
a parte cio' il mondo militare e' un mondo che compra da produttore fidati e si mette a contratto che ogni lotto sia tracciato, ovvero c'e' chi firma col sangue e se viene fuori una magagna si sa esattamente chi andare a prendere.

Ma ci lavori sul serio o te le sogni la notte ???

Ma sai il materiale che gli ho venduto AMD, Intel e quant'altro ... senza tutte le formalità che stai raccontando tu ???

E comunque, non per nulla, NON comprano più materiale di provenienza da alcune nazioni ... perché alcuni possono firmare anche con il sangue loro e della madre che ... "non c'è trucco e non c'è inganno" ... ma .....

Guglielmo