Crittografia con Python
|
|
|
- Paolina Papa
- 8 anni fa
- Visualizzazioni
Transcript
1 Crittografia con Python Corso introduttivo Marzo 2015 Con materiale adattato dal libro Hacking Secret Cypher With Python di Al Sweigart (
2 Nascondere segreti Fin dai tempi più remoti c è sempre stato interesse a mantenere dei segreti, che dovevano essere conosciuti soltanto da alcune persone Un segreto è il tuo prigioniero: se lo lasci fuggire sarai il suo prigioniero
3 Nascondere segreti Persone interessate: militari, corpo diplomatico, scrittori di diari e amanti Gli esempi più remoti di tentativi di tenere celata un informazione possono trovarsi nelle Storie di Erodoto (V secolo a.c.), nelle quali narra dell invasione persiana in Grecia
4 Steganografia Dal greco steganòs (coperto) e gràphein (scrittura). I messaggi vengono coperti in modo che non possano essere visti o, anche se visti, non siano interpretati come tali. La steganografia appare prima della crittografia perchè si basa su stratagemmi furbi per coprire il messaggio
5 Esempi di steganografia Dalle Storie di Erodoto: il messaggio veniva scritto su un legno il quale veniva poi ricoperto di cera e scambiato così per una tavoletta da scrittura ancora vergine (Demarato). il messaggio veniva scritto sulla testa rasata del messaggero, gli si facevano crescere i capelli (quindi non si aveva fretta...) e poi lo si mandava a destinazione (Istièo).
6 Altri esempi La steganografia è stata usata in tempi più recenti XVI secolo, Giambattista Della Porta e il metodo dell uovo sodo scrittura con inchiostri simpatici striscioline finissime di seta appollottolate, ricoperte di cera e inghiottite dal messaggero microdot
7 Limiti della steganografia Se il messaggio viene visto, tutta l informazione è immediatamente disponibile Per superare questi limiti viene sviluppata la crittografia, dal greco kryptòs, che significa nascosto Anche la crittografia ha origini antiche
8 Crittografia: definizioni La crittografia tratta dei metodi per rendere un messaggio "offuscato" in modo da non essere comprensibile a persone non autorizzate a leggerlo. La crittografia è la controparte della crittanalisi ed assieme formano la crittologia.
9 Modello crittografico Intrusi passivi ascoltano semplicemnte Intruso Intrusi attivi possono alterare i messaggi Testo in chiaro, P Metodo di cifratura Metodo di decifratura Testo in chiaro Chiave di cifratura, k Testo cifrato, C=E K (P) Chiave di decifratura
10 Crittografia: terminologia Testo in chiaro (P): messaggio da codificare Chiave (K): parametro della funzione di cifratura Testo cifrato (C): testo cifrato C = E K (P) P = D K (C) Codifica del testo P usando la chiave K Decodifica del testo C usando la chiave K D K (E K (P))=P
11 Regola fondamentale (Auguste Kerckhoffs 1883) Si assume che chi voglia violare il codice sia a conoscenza del metodo di codifica usato, ma non della chiave: troppo sforzo per inventare, verificare e installare un nuovo metodo ogni volta che ci si rende conto che non è più segreto pensare che un metodo sia segreto quando effettivamente non lo è può essere molto pericoloso
12 Esempio Metodo di cifratura segreto, nessuna chiave
13 Cifrari a sostituzione Ogni lettera o gruppo di lettere vengono rimpiazzati da un altra lettera o gruppo di lettere Uno dei più vecchi e noti è dovuto a Giulio Cesare: viene effettuato uno shift di tre posti per sostituire i caratteri Cesare Fhvduh
14 Metodo di codifica D A C B A Z Y W X V U T S R Q P O N M L K J I H G F E Z Y W X V U T S R Q P O N M L K J I H G F E D C B Quante possibili chiavi? 26, troppo poche, va bene solo per i Cartaginesi... Cosa vuol dire IEDERHQLE?
15 Linguaggio interpretato Orientato agli oggetti Libreria molto vasta Multipiattaforma Open
16 Ambiente di sviluppo Python è disponibile per ogni piattaforma (Windows, MacOs, Linux, Raspberry ecc.) Per questo corso si utilizzerà Portable Python, distribuzione portatile per ambiente Windows, nella versione , che comprende al suo interno sia l'interprete che una serie di librerie e strumenti utili (IDLE, Ipython, ) e che ha il vantaggio di non richiedere installazione
17 IDLE e IPython IDLE è sia un editor per la scrittura di programmi che una shell interattiva Ipython è un ambiente con una shell interattiva molto sofisticata, con autocompletamento, command history ecc. Useremo l'uno e l'altro a seconda della esigenze, Windows non è l'ambiente ideale ma ce la caveremo
18 Fondamenti fondamentali Le variabili si dichiarano senza tipo, che viene inferito dal contesto (e non può cambiare implicitamente) L'indentazione non è cosmetica, definisce la struttura del programma Le strutture dati come liste, tuple, dizionari ecc sono parte del linguaggio Lo so che è un po' poco, vedremo il resto poi...
19 Primo esempio: codice inverso Scopo: vogliamo prendere una stringa e invertirla, un semplice esempio di codice senza chiave Useremo l'assegnamento tra stringhe, la concatenazione tra stringhe, la funzione per calcolare la lunghezza di una stringa, il ciclo while e la funzione print per stampare il risultato Partiamo con IDLE... Facile, vero?
20 Codice di Cesare in Python Importazione di un modulo Metodi find e upper per stringhe Utilizzo dell'operatore di selezione if Utilizzo del ciclo for e dell'operatore in Utilizzo del modulo pyperclip Torniamo a IDLE...
21 Cifrari a sostituzione Piccolo miglioramento: sostituzione monoalfabetica al posto della traslazione Al posto di 26 tentativi il crittoanalista ne deve fare 26! (circa 4 x che è un numero molto grosso): sembra buono P A U Y T D E W A V O I L N B G R Q S M F K J H C X Z Z Y X W V U T S R Q P O N M L K J I H G F E D C B
22 Complessità computazionale Supponendo di avere un computer che esplora un milione di possibilità al secondo Numero di possibilità 26 1 milione 1 sec Tempo impiegato 0, sec. 270 milioni di Eu* ,7 milioni di milioni di Eu* *Eu = età stimata dell Universo
23 E adesso tocca a voi... Per casa provare a produrre un cifratore a sostituzione Se funziona prendere un file con del testo italiano, sufficientemente lungo, e cifrarlo con una chiave segreta La prossima volta vedremo come attaccarlo...
Crittografia con Python
Crittografia con Python Corso introduttivo Marzo 2015 Con materiale adattato dal libro Hacking Secret Cypher With Python di Al Sweigart (http://inventwithpython.com/hacking/index.html) Attacchi statistici
Crittografia. Steganografia
Crittografia Codici e segreti. La storia affascinante dei messaggi cifrati dall antico Egitto a internet. Simon Singh, Rizzoli 2001 FdI 2014/2015 GMDN 2015 1 Steganografia Steganografia: comunicazione
Crittografia con Python
Crittografia con Python Corso introduttivo Marzo 2015 Con materiale adattato dal libro Hacking Secret Cypher With Python di Al Sweigart (http://inventwithpython.com/hacking/index.html) Cifrari a trasposizione
CODICI. Crittografia e cifrari
CODICI Crittografia e cifrari CRITTOGRAFIA - La crittografia è una scrittura convenzionale segreta, decifrabile solo da chi conosce il codice. - La parola crittografia deriva da 2 parole greche, ovvero
Crittografia per la sicurezza dei dati
Crittografia per la sicurezza dei dati Esigenza di sicurezza in rete significa: -garanzia di riservatezza dei dati in rete (e-mail) -garanzia di transazioni sicure (e-commerce, home banking) La crittografia
Storia della Crittografia. dalle origini al XVI secolo
Storia della Crittografia dalle origini al XVI secolo Stefano Zingale Introduzione La crittografia (dal greco Kryptòs, che significa "nascosto" e gràphein che significa "scrittura") è la scienza che si
Crittografia con Python
Crittografia con Python Corso introduttivo Marzo 2015 Con materiale adattato dal libro Hacking Secret Cypher With Python di Al Sweigart (http://inventwithpython.com/hacking/index.html) Ci eravamo lasciati
Elementi di Crittografia
Elementi di Crittografia Algoritmi Messaggio in chiaro messaggio crittografato M X =C k (M C ) Messaggio crittografato messaggio in chiaro M C =D k (M X ) Per la codifica/decodifica è necessario un parametro
Steganografia in un. Corso di Sicurezza dei sistemi informatici Michelangelo Rinelli Anno Accademico 2005/06
Steganografia in un file di testo Corso di Sicurezza dei sistemi informatici Michelangelo Rinelli Anno Accademico 2005/06 Steganografia È l arte di nascondere un messaggio all interno di un altro messaggio
Agenda. Steganografia e crittografia. Classificazione e descrizione di alcuni metodi. Chiave privata chiave pubblica. I numeri primi.
Tra codici, cifratura e crittografia: il ruolo della matematica nell arte di nascondere messaggi Simone Zuccher E-mail: [email protected] Web page: http://profs.sci.univr.it/ zuccher/ Liceo Scientifico
Elementi di crittografia
Elementi di crittografia Francesca Merola a.a. 2010-11 informazioni orario: ma, (me), gio, 14-15.30, aula N1 ricevimento: su appuntamento ma, me, gio, 11.30-12.30 studio 300 dipartimento di matematica
Avviate l interprete Python selezionandolo dal menu dei programmi. Una volta avviato, l interprete presenta un cursore in cui inserire comandi
Introduzione al Python Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti permette di programmare con
Crittografia con Python
Crittografia con Python Corso introduttivo Marzo 2015 Con materiale adattato dal libro Hacking Secret Cypher With Python di Al Sweigart (http://inventwithpython.com/hacking/index.html) Un esempio storico:
la crittografia tratta delle "scritture nascoste", dei metodi per rendere un messaggio "offuscato"
crittografia kryptós gráphein nascosto scrivere la crittografia tratta delle "scritture nascoste", dei metodi per rendere un messaggio "offuscato" 404 a. C Lisandro riceve un corriere a Sparta recante
Elementi di Algebra e di Matematica Discreta Cenno di un applicazione alla crittografia
Elementi di Algebra e di Matematica Discreta Cenno di un applicazione alla crittografia Cristina Turrini UNIMI - 2015/2016 Cristina Turrini (UNIMI - 2015/2016) Elementi di Algebra e di Matematica Discreta
RACCOLTA DI ALCUNI ESERCIZI TRATTI DA COMPITI D ESAME SUL SISTEMA CRITTOGRAFICO RSA
RACCOLTA DI ALCUNI ESERCIZI TRATTI DA COMPITI D ESAME SUL SISTEMA CRITTOGRAFICO RSA Attenzione: questi sono alcuni esercizi d esame, sugli argomenti di questa dispensa. Non sono una selezione di quelli
Crittografia classica: la storia
Crittografia classica: la storia 1900 ac Egitto: geroglifici non standard 1500 ac Mesopotamia: Formula con molte interpretazioni 500 ac Israele: Codice ATBASH per il libro di Geremia 500 ac Plutarco: Scitale
Quando usiamo Python in modo interattivo in genere e' lo shell utilizzato che gestisce l'indentazione e la deindentazione.
INDICE Indentazione note sull'indentazione in script e moduli scritti con un editor di testo. istruzione if Truth testing in cicli if e while istruzione for istruzione while Uscita dai cicli for e while
Informatica di base 6/ed
Informatica di base 6/ed Autori: Dennis P. Curtin, Kim Foley, Kunal Sen e Cathleen Morin A cura di: Agostino Marengo e Alessandro Pagano Capitolo 15 La sicurezza informatica: tecniche e legislazione Capitolo
IL CIFRARIO DI CESARE. Museo della Matematica Lucio Lombardo Radice
IL CIFRARIO DI CESARE Museo della Matematica Lucio Lombardo Radice PRESENTAZIONE L'importanza di comunicare senza essere intercettati è sempre stata una necessità molto sentita fin dalla più remota antichità:
Introduzione alla Crittografia. Le Basi (definizioni, richiami e strumenti) Bruno Martino - Fabio Guglietta
Introduzione alla Crittografia Le Basi (definizioni, richiami e strumenti) Bruno Martino - Fabio Guglietta Cosa faremo oggi? Materiale utile Finalità Concetti base Operazioni sul bit Crittografia elementare
Dizionari. Hashtables.
Dizionari Hashtables http://www.dia.uniroma3.it/~roselli/ [email protected] Credits Materiale a cura del Prof. Franco Milicchio Introduzione I tipi di dato che abbiamo introdotto fino ad ora sono
CRITTOGRAFIA: introduzione
CRITTOGRAFIA: introduzione Crittografia "Crittografia scrittura nascosta "Studio di tecniche matematiche sofisticate per "mascherare i messaggi "o tentare di svelarli. Scenario "Due mondi in contrapposizione:
Programmazione in Python. Moreno Marzolla
Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative
Usare Python in Linux
26 Febbraio 2015 Outline 1 Struttura e programma delle lezioni 2 3 Outline Struttura e programma delle lezioni 1 Struttura e programma delle lezioni 2 3 Lezione tipo Struttura e programma delle lezioni
PRINCIPI DI COMPUTER SECURITY. Andrea Paoloni
PRINCIPI DI COMPUTER SECURITY Andrea Paoloni 2 Cade il segreto dei codici cifrati Corriere della Sera 26 febbraio 2008 3 Gli hacker sono utili? 4 Safety vs Security SAFETY (salvezza): protezione, sicurezza
Identificazione, Autenticazione e Firma Digitale. Firma digitale...
Identificazione, Autenticazione e Firma Digitale In origine crittografia = confidenzialità Diffusione delle reti: nuove funzionalità. Identificazione Autenticazione Firma digitale Identificazione: un sistema
Crittografia a chiave pubblica
Crittografia a chiave pubblica Barbara Masucci Dipartimento di Informatica Università di Salerno [email protected] http://www.di.unisa.it/professori/masucci Cifrari simmetrici canale insicuro Bob 1 Distribuzione
Agostino Dovier. Dip di Matematica e Informatica, Univ. di Udine
Agostino Dovier Dip di Matematica e Informatica, Univ. di Udine Ringrazio l amico e maestro Andrea Sgarro per il materiale tratto dal suo meraviglioso quanto introvabile testo IL FESTINO DI BALDASSARRE
crittografia a chiave pubblica
crittografia a chiave pubblica Whitfield Diffie Martin Hellman New Directions in Cryptography We stand today on the brink of a revolution in cryptography. The development of cheap digital hardware... has
Breve storia della crittografa
Breve storia della crittografa Il problema di codificare o cifrare un messaggio è stato affrontato, generalmente per usi militari, attraverso tutta la storia della civiltà umana. Plutarco descrive la scitala
Università degli Studi di Milano
Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche FABIO SCOTTI I cifrari polialfabetici: Vigenère Laboratorio di programmazione per la sicurezza Indice
Il Gioco dell'agente Segreto
Il Gioco dell'agente Segreto I Lincei per una nuova didattica nella scuola: una rete nazionale 4 febbraio 2016 Sommario Crittografia e crittoanalisi: presentazione, definizioni e utilizzo La crittografia
Il linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani ([email protected])
Linguistica Computazionale: esercitazioni
Esercitazione 1 Felice Dell'Orletta ItaliaNLP Lab (www.italianlp.it) presso Istituto di Linguistica Computazionale A. Zampolli CNR [email protected] 24 settembre 2014 Linguistica Computazionale:
IL DISCO DI ALBERTI. Museo della Matematica Lucio Lombardo Radice
IL DISCO DI ALBERTI Museo della Matematica Lucio Lombardo Radice PRESENTAZIONE L'importanza di comunicare senza essere intercettati è sempre stata una necessità molto sentita fin dalla più remota antichità:
Architettura degli Elaboratori
Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni
Introduzione al Python
Andrea Passerini [email protected] Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti
La tabella dei bigrammi è la frequenza con la quale compaiono COPPIE di lettere in una lingua.
Lezione 19 e 20 Crittografia I A) Tabella dei bigrammi B) Riconoscimento automatico della lingua C) Rottura dei codici Fabio Scotti Laboratorio di programmazione per la sicurezza 1 Lezione 19 e 20 Fabio
Fortran in pillole : prima parte
Fortran in pillole : prima parte Annamaria Mazzia Dipartimento di Metodi e Modelli Matematici per le Scienze Applicate Corso di Metodi Numerici per l Ingegneria Introduzione al Fortran Un libro consigliato
Comunicazioni. Utilizzeremo Octave (compatibile con Mathlab) per scrivere semplici codici di cifratura, decifratura e decrittazione
Comunicazioni Lunedì servirà il portatile Utilizzeremo Octave (compatibile con Mathlab) per scrivere semplici codici di cifratura, decifratura e decrittazione 1 Dati e Risorse Confidenzialità Devono essere
Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli
Funzioni e moduli Andrea Passerini [email protected] Informatica Funzioni nella programmazione Descrizione Una funzione è una sequenza di istruzioni cui viene dato un nome Questo permette di riutilizzare
FIRMA ELETTRONICA. Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare:
Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare: Riservatezza (protezione delle informazioni da accessi non autorizzati) Integrità (garanzia che l'informazione
Crittografia e firma digitale INTRODUZIONE INTRODUZIONE
Crittografia e firma digitale Prof. Giuseppe Chiumeo [email protected] INTRODUZIONE Lo sviluppo dell e-business oggi ha bisogno di garanzie per quanto riguarda l inviolabilità dei dati trasmessi.
Laboratorio di Python (con Linux)
8 a lezione Università di Bologna 2, 4 maggio 2012 Sommario 1 2 3 Diversi Python 2.6 vs 2.7 v.s 3.x La versione di Python installata sulle macchine del laboratorio è la 2.6 (per l esattezza 2.6.6 ). Versioni
CRITTOGRAFIA E NUMERI PRIMI TFA A059 ANNA NOBILI OTTAVIANO ROSI
CRITTOGRAFIA E NUMERI PRIMI TFA A059 ANNA NOBILI OTTAVIANO ROSI Cenni Storici Nasce dall esigenza di avere metodi efficienti per comunicare in modo segreto e sicuro. La crittografia non mira a nascondere
CIFRARI MONOALFABETICI
Il sistema crittografico utilizza un alfabeto per il testo in chiaro e una sua permutazione per il testo cifrato 1 Esempio Codici di Cesare 1 2 3 4 5 6 7 8 9 10 11 12.. 3 4 5 6 7 8 9 10 1112 13 14.. A
Sommario. 1 La shell di Windows PowerShell... 1
Ringraziamenti.........................................................xix Introduzione........................................................... xxi A chi è rivolto il libro...............................................
StarShell. Steganografia. StarShell
Steganografia 1 Etimologia Greco steganos: coperto Scrittura segreta coperta I lettori terzi non si accorgono nemmeno della presenza di un messaggio nascosto Greco kryptos: nascosto Scrittura segreta aperta
Usare la crittografia a chiave pubblica per tutelare la privacy nella corrispondenza elettronica.
"Giornata delle Libertà Digitali" - 8 Ottobre 2004 Politecnico di Milano Usare la crittografia a chiave pubblica per tutelare la privacy nella corrispondenza elettronica. Cristian Rigamonti
Sicurezza nelle applicazioni multimediali: lezione 2, crittografia classica. Crittografia classica
Crittografia classica Introduzione alla crittografia La crittografia è il processo di trasformazione di un messaggio in modo da renderlo incomprensibile per tutti, tranne che per il legittimo destinatario
Il cifrario di Vigenère. Bizzoni Stefano De Persiis Angela Freddi Giordana
Il cifrario di Vigenère Bizzoni Stefano De Persiis Angela Freddi Giordana Cifrari monoalfabetico e polialfabetico mono: cifrari a sostituzione o a trasposizione, associano ad ogni lettera dell alfabeto
Definizione di sicurezza. Sicurezza in Informatica. Sicurezza per il singolo utente. Panoramica. Per sicurezza si intende la protezione delle risorse
Definizione di sicurezza Sicurezza in Informatica Per sicurezza si intende la protezione delle risorse Possibili pericoli danneggiamento involontario (e.g. inesperienza) danneggiamento fraudolento (e.g.
Crittografia: dagli antichi codici di Cesare ai protocolli avanzati
Crittografia: dagli antichi codici di Cesare ai protocolli avanzati per l'economia digitaleitale Stefan Dziembowski University of Rome La Sapienza Workshop del Dipartimento di Informatica Workshop del
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Introduzione alla Crittografia Moderna
Introduzione alla Crittografia Moderna Sabrina De Capitani di Vimercati [email protected]. DEA - Università di Brescia c Sabrina De Capitani di Vimercati p.1/34 Scopo delle Lezioni metodi crittografici
INTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
Studio degli algoritmi
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi
Introduzione alla Crittografia
Liceo Scientifico N. Tron, 6 febbraio 2006 Riassunto Dato n > 1, la funzione di Eulero ϕ(n) è il numero di elementi < n e coprimi con n. Riassunto Dato n > 1, la funzione di Eulero ϕ(n) è il numero di
I Cifrari Perfetti. Alessio Nunzi Fabiola Genevois Federico Russo
I Cifrari Perfetti Alessio Nunzi Fabiola Genevois Federico Russo Fabiola Genevois Strategie d attacco Sicurezza dei sistemi crittografici Il cifrario Perfetto Enunciato di Shannon Il cifrario di Vernam
Introduzione al corso di Programmazione e Laboratorio
Introduzione al corso di Programmazione e Laboratorio A.A. 2008/09 Gianluigi Cibinetto Io Pagina web http://df.unife.it/u/cibinett http://www.fe.infn.it/~cibinett Ufficio Blocco C - stanza 228 al secondo
logaritmo discreto come funzione unidirezionale
logaritmo discreto come funzione unidirezionale in generale, lavoreremo con il gruppo U(Z p ) = Z p dati g generatore di Z p e x tale che 1 x p 1, calcolare y = g x è computazionalmente facile (y g x (mod
Linee di programmazione
Ministero dell Istruzione, dell Università e della Ricerca Ufficio Scolastico regionale per il Lazio Istituto Tecnico Industriale A. Pacinotti ISTITUTO TECNICO TECNOLOGICO - LICEO SCIENTIFICO DELLE SCIENZE
