Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SDN-enhanced Digital Twin per Reti QKD

Università di Pisa

Università di Pisa — Dipartimento di Ingegneria dell'Informazione
Laurea in Ingegneria Informatica — A.A. 2024/2025

Tesi di Laurea
Implementation of an SDN-enhanced digital twin for QKD networks

Candidato: Andrea Doni  |  Relatori: Prof. Nicola Andriolli, Prof. Alessio Giorgetti


Introduzione

Le reti di comunicazione moderne basano la loro sicurezza su algoritmi crittografici a chiave asimmetrica (come RSA) la cui robustezza dipende dalla difficoltà computazionale di problemi matematici. L'avvento del calcolo quantistico mette concretamente a rischio questi schemi: algoritmi come quello di Shor sono in grado di fattorizzare grandi numeri interi in tempo polinomiale, riducendo i tempi di decrittazione da secoli a secondi.

La Quantum Key Distribution (QKD) risponde a questa minaccia distribuendo chiavi crittografiche sfruttando le proprietà della meccanica quantistica: qualsiasi tentativo di intercettazione disturba irreparabilmente il canale quantistico, rendendolo rilevabile.

Il protocollo di riferimento usato in questo progetto è il BB84, proposto da Bennett e Brassard nel 1984:

Protocollo BB84
Figura 1 — Funzionamento del protocollo BB84

Per gestire reti QKD in modo flessibile e scalabile, si adotta il paradigma Software Defined Networking (SDN), che separa il piano di controllo dal piano dati, consentendo l'orchestrazione centralizzata dei nodi quantistici tramite un controller.


Architettura del Sistema

L'architettura complessiva integra un controller SDN (ONOS) con un Digital Twin della rete QKD, consentendo l'orchestrazione automatica della distribuzione delle chiavi senza intervento manuale.

Architettura SDN-QKD
Figura 2 — Architettura del Digital Twin SDN per reti QKD

Il sistema è composto da tre componenti principali, ciascuno contenuto nella propria directory del repository:


Componenti

1. ONOS — Controller SDN

La directory ONOS/ contiene il controller ONOS (Open Network Operating System), containerizzato tramite Docker, con le estensioni sviluppate per la gestione di reti QKD.

ONOS è strutturato a livelli:

Stack ONOS
Figura 3 — Stack architetturale di ONOS

Le principali estensioni sviluppate includono:

  • quantum-app — applicazione ONOS che gestisce la topologia QKD e orchestra lo scambio di chiavi tra i nodi
  • Driver NETCONF — driver per la comunicazione southbound con gli Agent tramite il protocollo NETCONF
  • Script di configurazione (init_network.sh, avvia_scambio_chiavi.sh, configure-qkd-nodes.sh) — automazione della configurazione e attivazione dei link QKD

2. AGENT — Server NETCONF / ETSI GS 015

La directory AGENT/ implementa il server NETCONF che espone le interfacce standard ETSI GS 015 (SD-QKD) per la gestione dei nodi QKD via SDN.

Architettura ETSI GS 015 SD-QKD
Figura 4 — Architettura di riferimento ETSI GS 015 SD-QKD

L'Agent funge da interfaccia tra il controller ONOS e i nodi QKD emulati: riceve i comandi di configurazione dal controller e li traduce in operazioni sui moduli quantistici sottostanti.

Contenuto principale:

  • emulator-etsi-qkd/ — emulatore del nodo QKD conforme allo standard ETSI
  • network-scripts/ e network/ — script e configurazioni di rete

3. Quditto — Digital Twin dei Nodi QKD

La directory Quditto/ contiene il Digital Twin della rete QKD, realizzato tramite contenitori Docker. Emula una topologia a tre nodi (A, B, C) interconnessi su una rete bridge, simulando il comportamento fisico dei dispositivi QKD.

Struttura rete QKD
Figura 5 — Struttura di una rete QKD con nodi e canali quantistici

Ogni nodo è un contenitore Docker che implementa lo stack QKD completo. La topologia è definita in docker-compose.yaml con i nodi A, B e C connessi sulla rete qkd-net.


Prerequisiti

  • Docker e Docker Compose
  • GitHub CLI (per clonare il repo)
  • Sistema testato su Ubuntu 24.04.2 LTS (macchina virtuale)

Utilizzo

# 1. Clona il repository
git clone https://github.com/Andryd22/SDN-QKD.git
cd SDN-QKD

# 2. Avvia il Digital Twin (Quditto)
cd Quditto
docker-compose up -d

# 3. Avvia il controller ONOS
cd ../ONOS
docker build -t onos-quancom .
# Segui le istruzioni in ONOS/README.md per la configurazione della rete

# 4. Configura i nodi QKD e avvia lo scambio di chiavi
bash init_network.sh
bash avvia_scambio_chiavi.sh

Risultati

Il test finale ha validato l'intera catena di controllo: una singola richiesta applicativa di alto livello ha attivato correttamente il flusso ONOS → Agent SDN → Nodi QKD (Quditto), portando alla generazione automatica delle chiavi quantistiche senza alcun intervento manuale.

Attivazione dello scambio di chiavi tramite ONOS:

Output script avvia_scambio_chiavi.sh
Figura 6 — Output dell'attivazione del link QKD tramite controller ONOS

Generazione e verifica delle chiavi su Quditto:

Output chiavi Quditto
Figura 7 — Output del client Quditto: chiavi generate, verificate e corrispondenti tra nodi A e B

I risultati confermano che l'architettura SDN è in grado di astrarre la complessità hardware, permettendo l'orchestrazione di risorse di sicurezza quantistica tramite semplici chiamate software.

About

Implementation of an SDN-enhanced digital twin for QKD networks

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages