TPSIT: RSA crittografia chiave asimmetrica

Monet

La chiave pubblica è composta da due numeri (pub,n)--> CONOSCIUTA DA TUTTI

La chiave privata da altri due numeri (pri,n)--> MANTENUTA SEGRETA

Dato m un carattere trasformato in decimale lo codifico mediante la seguente operazione:

c=m^{pub} mod(n)

con mod() la funzione che calcola il resto della divisione.

per decodificarlo uso:

m=c^{pri}mod(n)

pri e pub devono sottostare alle seguenti due regole:

n=a \cdot b

z=(a-1) \cdot (b-1)

pri non deve avere fattori in comune con z

pub deve soddisfare alla seguente relazione

(pub \cdot pri)mod(z)=1

Ad esempio:

si scelgano

a=17

b=5

si ottiene:

n=85 e z=64

si prenda ad esempio pri=5 e non ha fattori in comune con il 64 e poi risolvendo l'equazione:

(pub \cdot 5)mod(64)=1

si ottiene pub=13.

chiave pubblica (13,85) e chiave privata(5,85)

Applicata al seguente esempio:

Testo m m^{13} m^{13}mod(85)
E 5 1220703125 20
U 19 42052983462257059 49
R 16 4503599627370496 16
O 13 302875106592253 13
P 14 793714773254144 39
A 1 1 1

Si è spedito il messaggio: 20, 49, 16, 13, 39, 1

Adesso solo chi possiede la chiave privata può decodificare il messaggio:

Testo c c^{5} c^{5}mod(85) in chiaro
20 3200000 5 E
49 282475249 19 U
16 1048576 16 R
13 371293 13 O
39 90224199 14 P
1 1 1 A
Pubblicato in Senza categoria | Lascia un commento

TPSIT: crittografia a chiave asimmetrica

Monet

Si chiama anche crittografia a chiave pubblica; si utilizzano due tipi di chiavi una pubblica ed una privata.

La codifica avviene con la chiave pubblica, la decodifica con quella privata.

L'utilizzo della coppia di chiavi determinano vari livelli di sicurezza:

Garanzia identità del mittente

Mittente A usa la chiave privata per codificare il messaggio--> Tutti i mittenti B usano la chiave pubblica del mittente per decifrare il messaggio

Tutti leggono il messaggio e viene garantita solo l'identità del mittente

Chiave privata Chiave pubblica
codifica msg decodifica msg certezza mittente

 

Garanzia della segretezza

La chiave pubblica del mittente è conosciuta e viene usata per codificare il messaggio, il mittente può decifrarlo perché usa la chiave privata.

In questo caso tutti possono codificare il messaggio e non si ha la certezza del mittente perché si usa la chiave pubblica per codificare. Il messaggio rimane comunque segreto perché solo chi è in possesso della chiave privata può decifrarlo

Chiave privata Chiave pubblica
decodifica msg codifica msg solo segretezza messaggio non certezza mittente

Garanzia della segretezza e del mittente

il mittente codifica con la sua chiave privata e viene codificato ancora con la chiave pubblica, il destinatario usa la sua chiave privata per decodificare il messaggio  e lo decodifica con la chiave pubblica del mittente.

chiave privata chiave pubblica
codifica/decodifica codifica/decodifica

 

Il vantaggio del sistema crittografico a chiave asimmetrica è che il mittente e il destinatario non devono condividere una chiave segreta. I mittenti dei messaggi devono solo conoscere la chiave pubblica del destinatario, mentre la chiave privata deve essere conservata in modo segreto dal destinatario.

La chiave privata e la chiave pubblica sono correlate mediante un opportuno algoritmo matematico.

Pubblicato in Senza categoria | Lascia un commento

Protetto: DB

Il contenuto è protetto da password. Per visualizzarlo inserisci di seguito la password:

Pubblicato in Senza categoria | Inserisci la tua password per visualizzare i commenti.

Python: esempio di funzione

Questo brevissimo programma ha racchiuso il nucleo della gestione di funzioni con il linguaggio Python:

def area(a,b):
           c=a*b
          return c

f=input("base")
f=int(f)
g=input("altezza")
g=int(g)
d=area(f,g)
print ("area: ",d)

Da notare la sintassi per la definizione di finzione,

come essa viene chiamata.

Pubblicato in Senza categoria | Lascia un commento

GPOI: verifica su CPM

Calcolare tutte le date caratteristiche del CPM evidenziando il cammino critico.

Definire il CPM catalogandolo come grafo AON o AOA

TEMA 1

 

Tema 2

 

 

 

Pubblicato in Senza categoria | Lascia un commento

Java: gestione di un vettore

roger de la fresnaye

La cosa interessante è come si inizializza la lunghezza del vettore inserita a video:

v=new int[lung];

l'immissione dei dati può ovviamente avvenire all'interno di un ciclo:

import java.io.InputStreamReader;
import java.io.BufferedReader ;
import java.io.IOException;

public class Vettore {
public static void main(String[] args)

{
int v[],i,lung;
/*
* legge da tastiera la lunghezza del vettore
*/
lung =0;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try {
lung = Integer.parseInt(input.readLine());
}
catch (Exception e) {
e.printStackTrace();
}

/* molto interessate la gestione delle lunghezza del vettore
*
*/

v=new int[lung];
v[1]= 1;
for (i=0;i<lung;i++)
{
v[i]=i;
}
for (i=0;i<lung;i++)
{
System.out.println(v[i]);
}

}}

Pubblicato in Senza categoria | Lascia un commento

Java: immissione di un carattere da tastiera

roger de la fresnaye

Questo estratto permette l'inserimento di un carattere da tastiera e lo stampa a video:

System.out.println("dammi una lettera");
BufferedReader input2 = new BufferedReader(new InputStreamReader(System.in));
try {
char c = (char)input2.read();
System.out.println("Hai scritto '"+c+"'");
}
catch (IOException e) {
e.printStackTrace();
}

Pubblicato in Senza categoria | Lascia un commento

Java: operare con le stringhe

roger de la fresnaye

Questo breve programma richiede in input una stringa per poi stamparla:

import java.io.InputStreamReader;
import java.io.BufferedReader ;
import java.io.IOException;

public class parola {
public static void main(String[] args ) {
     String x=null;
    System.out.println("inseirsci una parola");
       BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try {
       x=input.readLine();
}
catch (Exception e) {
e.printStackTrace();
}
System.out.println(x);

}

}

 

si noti

  • che a differenza dei dati numeri che devono essere sottoposti a modifica di tipo, Java legge sempre stringhe.
  • le variabili definite all'interno del metodo main devono sempre essere inizializzate, nel caso specifico è messo a null.

con questa riga di codice si ha la lunghezza della stringa immessa:

lung=x.length();

Pubblicato in Senza categoria | Lascia un commento

Distribuzione di probabilità - densità di probabilità

La funzione distribuzione di probabilità viene utilizzata per descrivere un fenomeno aleatorio (casuale) e fornire la probabilità che un certo evento accada o meno.

In particolare essa segue gli assiomi di Kolmogrov generalizzandoli.

La funzione distribuzione viene così definita:

0\leqslant F_{x}(a)\leqslant 1

F_{x}(a)=P\left [ x\leqslant a \right ]

conseguenza immediata è che:

P\left [ a \leqslant x\leqslant b \right ]=F_{x}(b)-F_{x}(a)

che ricorda moltissimo il teorema del calcolo integrale ed il teorema di Torricelli-Barrow

Infatti si definisce la funzione densità di probabilità:

f_{x}(a)=\cfrac{\delta F_{x}(a)}{\delta a}

che comporta la seguente affermazione:

P\left [ a \leqslant x\leqslant b \right ]=F_{x}(b)-F_{x}(a)=\int_{a}^{b}f_{x}(c)dc

ossia la funzione densità di probabilità è la derivata della funzione distribuzione di probabilità o detto alla stessa maniera, la funzione distribuzione è l'integrale della funzione densità in un determinato intervallo.

Per chiarire immediatamente il concetto la funzione densità di probabilità più usata e conosciuta è la distribuzione di Gauss che descrive fenomeni aleatori continui che si concentrano verso un valore più probabile centrale.

La sua equazione è:

f(x)=\frac{1}{\sigma \sqrt{2\pi }}e^-{\frac{\left ( x-\mu \right )^{2}}{2\sigma ^{2}}}

la forma della campana e il suo valore centrale dipendono dalla deviazione standard \sigma e dalla media \mu.

Eccone un suo grafico:

Per capire la probabilità che una misura cada in un certo intervallo si deve calcolare l'area sottesa dalla curva in quell'intervallo ossia la sua funzione distribuzione o funzione primitiva negli intervalli presi in esame.

Pubblicato in Senza categoria | Lascia un commento

GPOI: Pert

roger de la fresnaye

Il PERT, acronimo di Project Evaluation Review Techinique, fu sviluppato dalla NASA negli anni 60 per controllare lo sviluppo dei suoi missili.

Nasce per descrivere progetti per i quali non si conoscono i tempi precisi delle singole attività ossia vi sono alte incertezze sui tempi di consegna e relativa realizzazione dell'obiettivo prefissato.

  • Le attività sono rappresentate dagli archi
  • i nodi le date di inizio e fine delle attività

E' una tecnica AOA : activity on arrow

Il PM deve effettuare tre stime:

  • ottimistica
  • probabilistica
  • pessimistica

Per comprendere le affermazioni successive ritengo fondamentale studiare il post:

Distribuzioni di probabilità e densità di probabilità

La durata viene descritta da una distribuzione di probabilità di tipo beta.

La funzione densità di probabilità ha un andamento grafico di questo tipo:

Le caratteristiche della densità di probabilità sono la media e la deviazione standard.

Presenta deviazione standard:

\sigma =\cfrac{1}{6}\left ( b-a \right )

dove b è la stima della durata pessimistica e a quella della durata ottimistica.

e media o valore attesa o momento del primo ordine:

\mu =\cfrac{1}{3}\left ( 2m+\cfrac{1}{2}\left ( a+b \right ) \right )

dove m è la stima del valore più probabile, cioè la stima della moda della variabile aleatoria.

Pubblicato in Senza categoria | Lascia un commento