Discussione Mi potreste dare dei consigli?

Stato
Discussione chiusa ad ulteriori risposte.

CuzzinoSan

Utente Iron
29 Aprile 2020
3
2
0
11
Salve a tutti, ho appena finito di leggere la release del 2016 su come iniziare. Nella sezione della criptografia, mi colpisce il Cifrario di Cesare, ho letto la pagina di Wikipedia e ho capito che è molto facile da decifrare, ma mi ha colpito molto. Volevo sapere se bastava la semplice wiki come "conoscenza" o se si poteva sapere di più, se si potreste passarmi i link
 
Secondo me wikipedia basta e avanza, dai un'occhiata anche alla pagina inglese. Se hai delle basi di programmazione potresti provare a implementarlo, sul forum è stato fatto e rifatto diverse volte. Se non ti intendi di programmazione potresti provare a cifrare e decifrare (manualmente) qualche messaggio, oppure potresti chiedere di farti dare diversi messaggi cifrati e provare ad attaccarlo (i.e., trovare la chiave). Vedi un po' quali sono i tuoi interessi...

Visto che ti interessa cesare, dai un'occhiata al cifrario affine (che su wikipedia italiana, nella pagina del cifrario di Cesare, vi è solo un accenno). Sono una piccola variante rispetto al cifrario di Cesare, ma dal punto di vista matematico sono più interessanti e sono anche molto più difficili da attaccare. Anche questi te li puoi agevolmente lavorare a mano e la matematica che c'è dietro non dovrebbe risultarti troppo complicata. In caso ti interessano e c'è qualcosa che non capisci, non farti problema a chiedere.

Sempre restando in ambito wikipedia, per cultura generale, dai un'occhiata anche alla più generica pagina riguardo i cifrari a sostituzione.
 
  • Mi piace
Reazioni: DanyDollaro
Secondo me wikipedia basta e avanza, dai un'occhiata anche alla pagina inglese. Se hai delle basi di programmazione potresti provare a implementarlo, sul forum è stato fatto e rifatto diverse volte. Se non ti intendi di programmazione potresti provare a cifrare e decifrare (manualmente) qualche messaggio, oppure potresti chiedere di farti dare diversi messaggi cifrati e provare ad attaccarlo (i.e., trovare la chiave). Vedi un po' quali sono i tuoi interessi...

Visto che ti interessa cesare, dai un'occhiata al cifrario affine (che su wikipedia italiana, nella pagina del cifrario di Cesare, vi è solo un accenno). Sono una piccola variante rispetto al cifrario di Cesare, ma dal punto di vista matematico sono più interessanti e sono anche molto più difficili da attaccare. Anche questi te li puoi agevolmente lavorare a mano e la matematica che c'è dietro non dovrebbe risultarti troppo complicata. In caso ti interessano e c'è qualcosa che non capisci, non farti problema a chiedere.

Sempre restando in ambito wikipedia, per cultura generale, dai un'occhiata anche alla più generica pagina riguardo i cifrari a sostituzione.

Stavo leggendo un pò, in pratica il cifrario affine può renders utile solo se si va a creare un'equazione come "base", poichè se no sarebbero solo i numeri a cui corrispondono le lettere sull'alfabeto, dimmi se sbaglio.
 
Ultima modifica:
Parti dal presupposto che, sia nel cifrario di Cesare che nei cifrari affini, quello che vai a cifrare è una sequenza di numeri. Se vuoi cifrare del testo, ovvero dei dati che sono apparentemente inadatti a questi cifrari, dovrai prima encodarlo in una sequenza di numeri. Ad esempio, puoi dire 0=a, 1=b, 2=c, ..., z=25, oppure puoi prendere i valori ASCII corrispondenti o fare mille altre cose. L'encoding non è crittografia perché non esiste nessun segreto, non hai una chiave/password da ricordarti.

Una volta che hai rappresentato i tuoi dati (che sia testo, immagini o altro) come sequenza di numeri, nel cifrario di Cesare dici: sostituisci l'i-esimo elemento del plaintext Pi con Ei = Pi + k mod N dove k è la chiave (i.e., il segreto che conoscono solo le due persone che comunicano) e N è la dimensione dell'alfabeto (e.g., 26 per le lettere A-Z, 128 per ASCII, 2^24 per il colore di un pixel, ecc...).

Se vuoi attaccare il cifrario di cesare, ovvero se riesci a intercettare del testo cifrato e vuoi scoprire cosa c'è scritto senza conoscere k, ti basta fare N-1 tentativi. Ad esempio, nel caso in cui stai intercettando del testo encodato con 0=a, 1=b, 2=c, ..., z=25 se k fosse uguale a 0 il testo non sarebbe nemmeno cifrato e se k fosse maggiore di 25 ti basta prendere k mod 26 (e.g., la criptazione con k=3 è identica alla criptazione con k=29 o k=55).

I cifrari affini allargano lo spazio delle chiavi senza modificare l'encoding. La chiave diventa una coppia di numeri (x, y) e per cifrare sotituisci l'i-esimo elemento del plaintext Pi con Ei = x * Pi + y mod N. Ciò ti porta ad avere potenzialmente (N-1)^2 possibili chiavi distinte! Ad esempio, se con Cesare e N=128 (codifica ASCII) l'attaccante aveva solo 127 chiavi da provare, con un cifrario affine ne ha ben 16129 mentre chi comunica dovrà solo ricordarsi (la chiave) due numeri al posto di uno. Inoltre, il cifrario affine non effettua (necessariamente) uno shift lineare; quindi, se nel testo cifrato tu vedi due lettere uguali non puoi assumere che sia probabilmente una delle poche lettere doppie che occorrono frequentemente nella lingua italiana e tradurre tutto il testo a partire da questa tua intuizione: non ti basta saper tradurre una lettera per tradurre tutto il testo.

Per esempio, questo è stato cifrato con il cifrario di Cesare
Enomnojgr dj zoqratn HjyyzorDbo
mentre questo è stato cifrato con un cifrario affine
Oniib dnyzron kniib hazugrtabqzb, gz wb hriuzgr ubagzhribalnogn zi hzqabazr kz Hndban
riesci a decifrare il testo senza che io ti dico le chiavi? Con quello di Cesare sono sicuro che farai poca fatica, con l'altro è un'altra storia... in entrambi i casi ti dico che ho usato l'alfabeto inglese di 26 caratteri (maiuscole e minuscole non fanno differenza).

PS. Per adesso sono rimasto sul vago per farti capire le basi, ma ti accenno che non è proprio vero che le chiavi sono (N-1)^2. Inizia a capire le basi, poi se vuoi approfondire ne riparliamo.
 
Stato
Discussione chiusa ad ulteriori risposte.