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!

Posted in Senza categoria | Leave a comment

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

Posted in Senza categoria | Leave a comment

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;
}

Posted in Senza categoria | Leave a comment

(Italiano) Lisbona – 5 – 8 Dicembre 2018 – Visita istruzione classi Quinte Informatica e Telecomunicazioni

Sorry, this entry is only available in Italian.

Posted in Senza categoria | Leave a comment

(Italiano) GPOI – Test su CPM

Sorry, this entry is only available in Italian.

Posted in Senza categoria | Leave a comment

(Italiano) Raspberry – Access Point come bridge senza dhcp utilizzando il proxy della LAN per controllo del traffico

Sorry, this entry is only available in Italian.

Posted in Senza categoria | 2 Comments

(Italiano) Linux/Raspberry : impostare che tutta la navigazione vada sul proxy

Sorry, this entry is only available in Italian.

Posted in Senza categoria | Leave a comment

(Italiano) Raspberry: installare Proxy squid e Webmin

Sorry, this entry is only available in Italian.

Posted in Senza categoria | 1 Comment

(Italiano) Raspberry – hotspot wifi – senza proxy nella LAN

Sorry, this entry is only available in Italian.

Posted in Senza categoria | Leave a comment

(Italiano) TPSIT – CIDR – Classless Inter-Domain Routing

Sorry, this entry is only available in Italian.

Posted in Senza categoria | Leave a comment