TPSIT – Crittografia – dall’Alberti al Bellaso – sviluppo della cifratura polialfabetica

De Chirico

Il Bellaso  nel 1553 a Venezia pubblica La cifra in cui spiega la crittografia polialfabetica, sviluppando quella dell’Alberti ed evitando di indicare nello stesso corpo del crittogramma le lettere di riferimento e di liberare i corrispondenti dalla necessità di scambiarsi dischi o tabelle precompilate.

La sua idea è quella di avere una parola chiave (verme) e la scelta di un’opportuna frase che indica quale alfabeto utilizzare che nasce dalla parola chiave.

L’idea su cui si basa il principale cifrario proposto dal Bellaso è quella di ricavare cinque alfabeti da una parola segreta convenuta.

Le lettere dell’alfabeto vengono scritte in una tabella composta da due righe.

In particolare quelle della parola segreta sono inserite nelle prime colonne intercalate sulle due righe e  le rimanenti lettere dell’alfabeto vengono scritte di seguito.

In questo modo si è ottenuto il primo alfabeto derivato.

A partire da questo ricaviamo il secondo spostando circolarmente verso destra la seconda riga di una posizione.

Applicando lo stesso procedimento al secondo alfabeto, si ricava il terzo alfabeto derivato e così via fino ad ottenerne cinque, ognuno dei quali sarà identificato da un gruppo di quattro lettere. 

Facendo riferimento sempre al primo alfabeto, le lettere della prima e della sesta colonna identificano il primo alfabeto derivato, quelle della seconda e della settima colonna identificano il secondo alfabeto derivato.

In generale le quattro lettere che identificano l’ i-esimo alfabeto sono quelle dell’ i-esima e della (i + 5)-esima colonna.

A questo punto si deve convenire una frase segreta; le lettere di quest’ultima servono a selezionare l’alfabeto da usare.

In particolare, presa l’i-esima lettera della  parola segreta, si controlla quale dei cinque identificativi degli alfabeti la contiene.

Si determina così l’alfabeto da usare per l’i-esima parola del testo in chiaro. Se il numero di lettere della frase segreta è minore del numero di parole del testo da cifrare, la frase segreta viene riapplicata ciclicamente per la selezione degli alfabeti.

La cifratura si effettua sostituendo la lettera del testo in chiaro con la lettera che si trova sulla stessa colonna nell’alfabeto predeterminato.     

Riportiamo un esempio: data la parola chiave IOVE, il primo alfabeto derivato(alfabeto latino di 20 lettere, posta V=U) è: 

I O A B C D F G H L
V E M N P Q R S T X

Il secondo si ottiene spostando circolarmente la seconda riga:


I
O A B C D F G H L
X V E M N P Q R S T

Le quattro lettere che identificano il primo alfabeto sono IDVQ (mi sono spostato di 5), quelle della prima e della sesta colonna del primo alfabeto derivato.

Le quattro lettere che identificano il secondo alfabeto sono OFER, quelle della seconda e settima colonna sempre del primo alfabeto derivato. 










I D V Q I O A B C D F G H L
VEMNPQRSTX

O F E R
I O A B C D F G H L
XVEMNPQRST
A G M S I O A B C D F G H L
TXVEMNPQRS
B H N T I O A B C D F G H L
STXVEMNPQR
C L P X   I O A B C D F G H L
RSTXVEMNPQ

A questo punto si deve convenire una frase segreta, per esempio ” OPTARE MELIORA”; le lettere di quest’ultima servono a selezionare l’alfabeto da usare. 

Volendo allora cifrare la frase “Inviare truppe domani” si ha:

                                   O                            P                         T 
Testo in Chiaro    I N V I A R E         T R U P P E       D O M A N I
Testo Cifrato       X C O X E G A       A I C H H D      M T D X F S
Pubblicato in Senza categoria | Lascia un commento

TPSIT – Crittografia – Cifratura Polialfabetica

Si è nel 1467 e Leon Battista Alberti  scrive De cifris , conservato nella biblioteca Marciana a Venezia, e introduce la crittografia nell’epoca moderna.

Esso si compone di due dischi concentrici, in cui in uno vi è l’alfabeto perfettamente ordinato, nell’altro le lettere poste in maniera casuale.

Permette la sostituzione delle lettere con periodi irregolari.

Indice mobile

Si fissa una lettera nel cerchio interno ad esempio la g (indice da cui si parte) a cui corrisponde la A nel cerchio esterno. Si avranno i seguenti alfabeti:

disco stabile: ABCDEFGILMNOPQRSTVXZ1234

disco mobile: gklnprtuz&xysomqihfdbace

Si supponga di voler spedire il messaggio:

LAGVER2RA

esso si codifica come:

zgthpmamg

All’inizio del messaggio cifrato si inserisce la lettera a cui dovrà puntare la lettera g (indice) ossia alla lettera A. Ossia il disco interno metterà sempre la g che punta alla A. Da notare che è stato inserito un 2 e viene eliminato nella fase di decifrazione. Viene inserito il 2 per evitare di mettere due volte la stessa lettera nel messaggio cifrato.

Il messaggio inviato sarà dunque:

Azgthpmamg

Adesso si vuole cambiare ad esempio la g dovrà puntare ad un’altra lettera , ad esempio la Q, facendo ruotare il disco interno e si avrà questo nuovo alfabeto:

disco stabile: ABCDEFGILMNOPQRSTVXZ1234

disco mobile: ysomqihfdbacegklnprtuz&x

Quindi la g punterà alla Q

voglio mandare il messaggio: SI FARA’

Qlfiyky

l messaggio completo sarà quindi:

AzgthpmamgQlfiyky

Da notare che la lettera maiuscola indica il fatto che si debba ruotare il disco interno.

Indice fisso

In questo caso l’indice fisso viene posto nel disco esterno ad esempio la A  e si mette la m come lettera corrispondente nel cerchio interno.

disco stabile: ABCDEFGILMNOPQRSTVXZ1234

disco mobile: mqihfdbacegklnprtuz&xyso

Spedisco il messaggio:

LAGVERA3

Si nota che si toglie la doppia per evitare la decifratura.

esso diventa

cmbufpms

come prima lettera però si inserisce la lettera a cui punta il disco esterno ossia diventa:

mcmbufpms

Si noti che il numero 3 indica il fatto che adesso la lettera s punterà alla A e non più la m avendo un nuovo alfabeto:

disco stabile: ABCDEFGILMNOPQRSTVXZ1234

disco mobile: somqihfdbacegklnprtuz&xy

Invio adesso:

SIFARÀ

sndhsls

CONCLUSIONE

La cifratura di Cesare è una sostituzione semplice, basata sullo spostamento di un unico alfabeto ordinato rispetto a sé stesso, con chiave fissa.

Nella cifra di Alberti gli alfabeti sono due, mischiati, e la chiave varia in continuazione durante il messaggio, quindi la scoperta di una sola lettera non permette altri progressi nella decrittazione e lo studio delle frequenze non dà risultati perché la stessa lettera. chiara è cifrata sempre in modo diverso.

Pubblicato in Senza categoria | Lascia un commento

TPSIT – Crittografia – Esempio di Diffie – Hellman

De Chirico

•g = 5, p = 23 (pubblici)

•a = 6 (Alice)

•b = 15 (Bob)

Si chiede di calcolare K sia per Alice che per Bob

Svolgimento

Alice calcola A = 5^{6}\;mod\;23 = 8 e lo comunica a Bob

Bob calcola B = 5^{15}\:mod\;23 = 19 e lo comunica ad Alice 

Alice calcola K = 19^{6}\;mod\;23 = 2

Bob calcola K = 8^{15}\;mod\;23 = 2 

Come calcolare le potenze

5^{15}\;mod\;23=5^{8}\cdot 5^{4}\cdot 5^{2}\cdot 5^{1}\;mod\;23 = [5^{8}\;mod\;23\cdot 5^{4}\;mod\;23\cdot5^{2}\;mod\;23\cdot 5^{1}\;mod\;23]\;mod\;23

5^{1}\;mod\;23 = 5

5^{2}\;mod\;23 = 25\;mod\;23 = 2

5^{4}\;mod\;23 = (5^{2})^{2}\;mod\;23 = (5^{2}\;mod\;23)^{2}\;mod\;23 = 2^{2}\;mod\;23 = 4\;mod\;23 = 4 

5^{8}\;mod\;23 = (5^{4})^{2}\;mod\;23 = (5^{4}\;mod\;23)^{2}\;mod\;23 = 4^{2}\;mod\;23 = 16\;mod\;23 =16

5^{15}\;mod\;23 = [16 \cdot  4 \cdot  2 \cdot  5]\; mod\;23 = 640\; mod\;23 = 19

Esercizio

•g = 7, p = 31 (pubblici)

•a = 5 (Alice)

•b = 12 (Bob)

•K = ? 

Pubblicato in Senza categoria | Lascia un commento

TPSIT – Crittografia – Algoritmo di Diffie-Hellman

De Chirico

Lo scambio di chiavi Diffie-Hellman è un protocollo crittografico che consente a due entità di stabilire una chiave condivisa e segreta utilizzando un canale di comunicazione insicuro (pubblico) senza la necessità che le due parti si siano scambiate informazioni o si siano incontrate in precedenza.

La chiave ottenuta mediante questo protocollo può essere successivamente impiegata per cifrare le comunicazioni successive tramite uno schema di crittografia simmetrica.

Supponiamo che Alice e Bob conoscano entrambi due numeri, g e p, pubblici (p numero primo). Inoltre Alice conosce un numero segreto ‘a’ e Bob conosce un numero segreto ‘b’

Alice calcola: A=g^{a}\;mod \; p e lo dà a Bob

Bob calcola: B=g^{b}\;mod \; p e lo dà ad Alice

Alice calcola: K = B^{a}\; mod \;p=\left [ g^{b}\;mod\:p \right ]^{a}=g^{ab}\;mod\;p

Bob calcola: K = A^{b}\; mod \;p=\left [ g^{a}\;mod\:p \right ]^{b}=g^{ab}\;mod\;p

CONCLUSIONE

Alice e Bob hanno condiviso un segreto (il numero K) senza comunicarlo esplicitamente!

L’attaccante Eva può osservare A, B, g, p ma questa informazione non è sufficiente per ricavare K

K è calcolabile solo conoscendo a o b, che tuttavia sono segreti e non vengono mai trasmessi. Ricavare a da A (o analogamente b da B) significa risolvere un logaritmo discreto computazionalmente difficile!

Pubblicato in Senza categoria | Lascia un commento

TPSIT – Crittografia – aritmetica modulare

L’algebra modulare si basa sul concetto di congruenza modulo m

a mod m = resto della divisione a/m

Dati tre numeri a, b, m con m\neq 0 si dice cha a e b sono congruenti modulo m, se la differenza a-b è multiplo di m.

De Chirico

a\equiv b\;mod\;m

si può anche scrivere

a\;mod\;m=b\;mod\; m

si legge a è congruo a b modulo m

Invarianza rispetto alle operazioni aritmetiche

Prima proprietà (somma)

[(a\;mod\;m) + (b\;mod\;m)] mod\;m = (a+b)\;mod\;m

(a\;mod\;m+b\;mod\;m)\equiv (a+b)mod\;m

Seconda proprietà (differenza)

[(a\;mod\;m)-(b\;mod\;m)]\;mod\;m=(a-b)\;mod\;m

(a\;mod\;m-b\;mod\;m)\equiv (a-b)\;mod\;m

Terza proprietà (prodotto)

[(a\;modm)\;\cdot(b\;mod\;m)]\;mod\;m=(a\cdot\;b)\;mod\;m

(a\;mod\;m\cdot b\;mod\;m)\equiv (a\cdot b)mod\;m

Quarta proprietà (potenza–> generalizzazione del prodotto)

\left [ \left ( a \;mod\; m \right )^{k} \right ]\;mod \; m = a^{k} \; mod \; m

\left [ \left ( a \;mod\; m \right )^{k} \right ]\equiv a^{k} \; mod \; m

Esempi

Calcolo che si farebbe in assenza della conoscenza delle proprietà

540\; mod\;17 = ?
540 / 17 = 31,764….
31\cdot 17 = 527 540 -527 = 13

Applicazione della proprietà della somma

(6+7) \;mod\;5 = 3
(6\; mod\;5 + 7\; mod\;5) mod\;5= (1 + 2)\; mod\;5 = 3

Conseguenza dell’ultima proprietà

Ad esempio:

\left [ \left ( 9 \;mod\; 5 \right )^{2} \right ]\;mod \; 5 = 4^{2} \; mod \; 5= 16 \: mod \; 5 =1

ed è uguale a:

9^{2} \; mod \; 5= 81 \: mod \; 5 =1

Ho semplificato di molto il calcolo

Approfondimenti sull’algebra modulare

Molte funzioni normalmente invertibili, diventano non invertibili nella versione modulare

Esempio: il logaritmo

a^{b}=c

invertendola ho appunto la definizione di logaritmo e posso trovare il valore dell’esponente b:

b=\log _{a}c

MA (DEFINIZIONE DI LOGARITMO DISCRETO)

a^{b}\; mod \; m=c

Trovare b dati a, c ed m è computazionalmentemolto difficile!

Pubblicato in Senza categoria | Lascia un commento

TPSIT: crittografia asimmetrica

Per capire la crittografia a chiave asimmetrica si può ipotizzare questo semplice esempio pratico:

Bob spedisce ad Alice il suo lucchetto aperto e quindi NON serve che Alice abbia la chiave di BOB

Alice lo usa per chiudere la scatola contenente il messaggio segreto e la spedisce a Bob

Nell’ambito informatico come si può realizzare una cosa di questo genere?

è necessario trovare una funzione (il lucchetto) la cui trasmissione su canali insicuri non compromette l’algoritmo, che sia facile da applicare (chiudere il lucchetto) ma difficile da invertire (aprire il lucchetto) a meno di non possedere un determinato elemento (la chiave del lucchetto)

La ricerca di una funzione con tali caratteristiche è stata la grande sfida per i crittografi degli anni ‘70

Pubblicato in Senza categoria | Lascia un commento

C++: gestione file

1 -Includere la libreria  <fstream>

2-  dichiarare (una o più) variabili di ” tipo file “ (es. fstreamfile_dati;)

tipi consentiti:

–ifstream: variabile file di sola lettura

–ofstream: variabile file di sola scrittura

– fstream: variabile file di lettura/scrittura

  • ofstream miofile(“prova.txt”,ios::app); //apertura in AGGIUNTA

3- associare una variabile di tipo file a un oggetto di tipo file (tramite la funzione open()) (es. file_dati.open(“c:\Dati00.txt”);

 4- L’accesso ad un file consente di leggere e/o scrivere su file. Si utilizzano i normali comandi >>e <<su una variabile di tipo file (analogamente a cin e cout)

OSS: >>si può usare con una variabile di tipo lettura (ifstream), <<con una variabile di tipo scrittura (ofstream)

5-  al termine dell’uso di una variabile di tipo file, questa va “chiusa” usando la funzioneclose()

Ecco un semplice esempio di programma per la lettura:

include <iostream>

include <fstream>

using namespace std;
int main() {
int i, j, k;
char ch;
ifstream inFile; //dichiarazione file sola lettura
ofstream oFile;
inFile.open(“dati.txt”);// associa inFileal // file dati.txt
inFile>> i >> j >>ch;
cout<<i<<‘ ‘<<j<<‘ ‘<<ch; //scrive su schermo i //valori letti
inFile.close(); /* “chiusura” del file */
oFile.open(“scrivo.txt”,ios::app);
oFile<<“3 “<<“pippo”;
oFile.close();

return 0;
}

Pubblicato in Senza categoria | Lascia un commento

[:it]Lisbona – 5 – 8 Dicembre 2018 – Visita istruzione classi Quinte Informatica e Telecomunicazioni[:]

[:it]Mercoledì 5 Dicembre

10:00 Piazza Vittoria Bolzano

16:40 Volo EZY2715 Easy Jet da Milano Malpensa

18:35 Arrivo a Lisbona

Trasferimento dall’aeroporto all’Hotel MASA ALMIRANTE (Avenida Almirante Reis, 68)

Linea Rossa, si scende ad Alameda e poi linea Verde e si scende ad Anjos.

Costo della corsa 1.40€

Utilizzare la mappa della metro per poter girare la citta.

Mappa_Metro_Lisbona.

Cena in ristorante vicino all’albergo.

Serata con visita di Alfama Lisbona

Ecco la mappa di Lisbona per poterla girare con comodità

mappa_porto_attrazioni

Giovedì 6 

Giro sul tram 28 Martim Moniz giro di 40 minuti dell’intera città fino ad arrivare Campo Ourique , fare il percorso inverso per ritrovarsi alla partenza e continuare la visita.

Visita di Alfama

    • Largo dos Portas do Sol a cui si raggiunge con due fermate di metro oppure a piedi 30 minuti
    • Cattedrale di Lisbona Largo da Sé
    • Chiesa di Sant’Antonio da Padova che è li vicino
    • Andare  ad Miradouro Santa Luzia: il belvedere si affaccia sul Tago ed è uno degli scorci più suggestivi del quartiere;
    • A questo punto di visita il Castello di São Jorge:Orari di apertura:
      Dal 1 novembre al 28 febbraio: dalle 9.00 alle 18.00 Costo del biglietto 5€.
    • Adesso si va a visitare il quartire di Graça a 12 minuti a piedi e si visita Monastero di São Vicente da Fora Vedremo magnifici azulejos che illustrano la vita di Lisbona nel 1600: dedicheremo  del tempo ad osservarli perchè sono veri e propri capolavori. Potretemo ammirare ad esempio scene della presa di Lisbona e della sconfitta dei mori mentre al primo piano si trova una raccolta unica di azulejos che raccontano ben 38 favole poco conosciute di La Fontaine. – Sul tetto del monastero si vedrà l’intera città.  Costo del biglietto 4€ 
    •  Mouraria è il quartiere di origine araba sempre d Alfama

Venerdì 7 

Mattina

Quartiere di Belen

Partendo con il treno da Cais do Sodrécon arrivandoci con la metro si arriva a Padrão dos DescobrimentosRealizzato per celebrare l’epoca delle scoperte, raffigura i navigatori portoghesi e la rosa dei venti rappresentata a nord del monumento, contiene al centro le rotte da essi scoperte.

Li si visiterà Monastero dos Jerónimos Costruito per il ritorno dal viaggio delle Indie di Vasco da Gama, al suo interno è possibile visitare il Museu de Arqueología e il Museu de Marinha.

Belém è il posto giusto non solo per chi è appassionato di mare ma anche per chi ama il verde: il Jardim do Ultramar e il Jardim Botânico da Ajuda sono il luogo ideale per una visita non solo fatta di relax; durante tutto l’anno è possibile imbattersi in qualche attività sociale: dal teatro a corsi di giardinaggio, da feste tradizionali a festival musicali. Da provare infine, i famosi pastéis de nata, tipici (e deliziosi) dolci portoghesi alla crema serviti con una spolverata di cannella o cacao. Si dice che il pastel de nata nacque proprio a Belém, dove tutt’ora vi è la rinomata e famosa pasticceria Pastéis de Belem; con i suoi azulejos che la caratterizzano produce quasi 15.000 pasteis de nata al giorno.

Torre di Belem.

Ponte del 25 aprile

Il pomeriggio

  • escursione a Sintra Partendo dalla stazione di Rossio  Fermata Restauradores (con la linea verde) e a soli 30 minuti da Lisbona, si rimane incantati dal paesaggio che la città di Sintra offre. Patrimonio dell’umanità, questa piccola città ha qualcosa di speciale e anche un po’ fiabesco. Presso la stazione di Sintra, l’autobus 434 dà la possibilità di ammirare le principali bellezze del centro senza fare troppa fatica
  • Castello dei Mori a Sintra Costo del biglietto 8€

Sabato mattina 8 Dicembre

Campo di Santa Clara vi è il mercato delle pulci per prendere qualche ricordo

Partenza dall’albergo  per l’aeroporto per le ore 15:30

volo EZY2716 delle 17 verso Milano Malpensa quindi ritorno a Bolzano verso le ore 01:00 della domenica.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]GPOI – Test su CPM[:]

[:it]

jim warren

[WpProQuiz 60]

 [:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Raspberry – Access Point come bridge senza dhcp utilizzando il proxy della LAN per controllo del traffico[:]

[:it]A differenza del post hot spot con Rasperry che creava sì un accesso wifi ma attivava un dhcp per la gestione delle sole connessioni wifi, in questo caso si crea un “semplice” bridge tra la porta eth0 e wlan0 usando bridge-utils in maniera molto attenta.

Tale scelta demanda al dhcp della LAN l’assegnazione degli indirizzi IP e nel contempo interviene il proxy presente nella LAN stessa con la relativa autenticazione e regole del firewall e controllo della navigazione.

Ecco i dettagli tecnici per la sua realizzazione:

apt-get install hostapd bridge-utils

bloccare il servizio hostapd

service hostapd stop
nano /etc/dhcpcd.conf

aggiungere

denyinterfaces wlan0

denyinterfaces eth0

alla fine del file ma sopra le altre righe  interface

Salvo il file.

Dalla linea comandi

Aggiungo una porta virtuale che chiamo br0

brctl addbr br0

Connetto la porta di rete  eth0 al bridge br0.

brctl addif br0 eth0

ora vado a modificare il file interfaces

nano /etc/network/interfaces

aggiungerndo le seguenti righe

# Bridge setup
auto br0
iface br0 inet manual
bridge_ports eth0 wlan0

ora vado a modificare il file di configurazione hostapd.conf

nano /etc/hostapd/hostapd.conf

in questa maniera:

interface=wlan0
bridge=br0
ssid=NameOfNetwork
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=AardvarkBadgerHedgehog
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

se voglio modificare la banda di trasmissione posso seguire la seguente legenda:

‘hw_mode=g’ a ‘hw_mode=a’

  • a = IEEE 802.11a (5 GHz)
  • b = IEEE 802.11b (2.4 GHz)
  • g = IEEE 802.11g (2.4 GHz)
  • ad = IEEE 802.11ad (60 GHz).

adesso devo modificare:

nano /etc/default/hostapd

trovare la linea #DAEMON_CONF, e sostituirla con:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

andare nel file /etc/sysctl.conf

net.ipv4.ip_forward=1

adesso modificare le tabelle del firewall

iptables -t nat -A  POSTROUTING -o eth0 -j MASQUERADE
sh -c "iptables-save > /etc/iptables.ipv4.nat"

Andare sul file  /etc/rc.local ed aggiungere sopra “exit 0” questa regola:

iptables-restore < /etc/iptables.ipv4.nat &
sudo service hostapd start

dare il comando

systemctl unmask hostapd.service

Dopo il reboot da un semplice ipconfig si vedrà che SOLO la porta logica br0 avrà asseganto l’indirizzo IP.

[:]

Pubblicato in Senza categoria | 2 commenti