From 2eca8715832fd8cf743294cf616c607bcdfbd7ab Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Wed, 8 Nov 2023 19:28:09 +0100 Subject: [PATCH] Refine and unify terms --- .../plugins/obsidian-file-color/data.json | 22 +- 0 - Generale/albero.md | 1 + 0 - Generale/grafo aciclico.md | 1 + .../public key infrastructure.md | 2 +- .../1 - Concetti/affidabilità parziale.md | 5 +- .../1 - Concetti/affidabilità totale.md | 2 +- .../assioma dell'orientamento locale.md | 2 + .../1 - Concetti/consegna garantita.md | 2 +- .../1 - Concetti/entità.md | 3 + .../1 - Concetti/full-duplex.md | 2 +- .../1 - Concetti/half-duplex.md | 2 +- .../1 - Concetti/iniziatore singolo.md | 3 - .../1 - Concetti/iniziatori multipli.md | 3 - .../1 - Concetti/no failure detection.md | 3 + .../1 - Concetti/risveglio parziale.md | 8 + .../1 - Concetti/risveglio singolo.md | 8 + .../1 - Concetti/risveglio totale.md | 3 + .../1 - Concetti/terminazione globale.md | 5 +- .../1 - Concetti/terminazione ignorata.md | 6 + .../1 - Concetti/terminazione locale.md | 5 +- .../1 - Concetti/vicini di un'entità.md | 8 + .../1 - Concetti/★ concetti.canvas | 72 +- .../2 - Broadcast/broadcast problem.md | 8 +- .../2 - Broadcast/flooding v1.md | 32 +- .../2 - Broadcast/flooding v2.md | 53 +- .../2 - Broadcast/flooding v3.md | 53 +- .../2 - Broadcast/wake-up problem.md | 6 +- .../2 - Broadcast/★ broadcast.canvas | 2 +- .../broadcast tree construction.md | 4 +- .../multiple spanning tree construction.md | 6 +- .../3 - Spanning tree/shout protocol.md | 109 ++- .../3 - Spanning tree/shout+ protocol.md | 110 ++- .../spanning tree construction.md | 14 +- .../3 - Spanning tree/token metaforico.md | 6 + .../3 - Spanning tree/traversal protocol.md | 109 +-- .../3 - Spanning tree/traversal+ protocol.md | 128 +--- .../3 - Spanning tree/★ spanning tree.canvas | 8 +- .../computazione in alberi.md | 7 +- .../computazione in grafi aciclici.md | 5 +- .../tecnica di saturazione per alberi.md | 14 +- ...on in trees.canvas => ★ computazione.canvas} | 13 +- .../leader election su albero.md | 2 + .../leader election su anello all-the-way.md | 10 +- ...der election su anello as-far-as-it-can.md | 2 + ... election su anello controlled-distance.md | 2 + ...lo di dimensione conosciuta all-the-way.md | 2 + .../leader election su grafo aciclico.md | 6 +- .../5 - Leader election/leader election.md | 10 +- .../★ algoritmi distribuiti.md | 2 +- steffo-file-index.json | 628 +++++++++--------- 50 files changed, 692 insertions(+), 827 deletions(-) create mode 100644 0 - Generale/albero.md create mode 100644 0 - Generale/grafo aciclico.md delete mode 100644 9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatore singolo.md delete mode 100644 9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatori multipli.md create mode 100644 9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/no failure detection.md create mode 100644 9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio parziale.md create mode 100644 9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio singolo.md create mode 100644 9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio totale.md create mode 100644 9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione ignorata.md create mode 100644 9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/vicini di un'entità.md create mode 100644 9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/token metaforico.md rename 9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/{★ computation in trees.canvas => ★ computazione.canvas} (52%) diff --git a/.obsidian/plugins/obsidian-file-color/data.json b/.obsidian/plugins/obsidian-file-color/data.json index bd0aa0a..007d159 100644 --- a/.obsidian/plugins/obsidian-file-color/data.json +++ b/.obsidian/plugins/obsidian-file-color/data.json @@ -273,10 +273,6 @@ "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing", "color": "fc3lLaITDn62PYbzBhqxl" }, - { - "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election", - "color": "fc3lLaITDn62PYbzBhqxl" - }, { "path": "steffo-file-index.json", "color": "me4XBNQC4rwzQFLlvIAn0" @@ -378,7 +374,7 @@ "color": "7j7Pqog0VHMVVAfazMNlb" }, { - "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computation in trees.canvas", + "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computazione.canvas", "color": "7j7Pqog0VHMVVAfazMNlb" }, { @@ -389,17 +385,17 @@ "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti", "color": "fc3lLaITDn62PYbzBhqxl" }, - { - "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal+ protocol.md", - "color": "fc3lLaITDn62PYbzBhqxl" - }, - { - "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal protocol.md", - "color": "fc3lLaITDn62PYbzBhqxl" - }, { "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello controlled-distance.md", "color": "fc3lLaITDn62PYbzBhqxl" + }, + { + "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello di dimensione conosciuta all-the-way.md", + "color": "fc3lLaITDn62PYbzBhqxl" + }, + { + "path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello as-far-as-it-can.md", + "color": "fc3lLaITDn62PYbzBhqxl" } ] } \ No newline at end of file diff --git a/0 - Generale/albero.md b/0 - Generale/albero.md new file mode 100644 index 0000000..4547e79 --- /dev/null +++ b/0 - Generale/albero.md @@ -0,0 +1 @@ +[[grafo aciclico]] con [[radice di un albero|radice]] specificata. diff --git a/0 - Generale/grafo aciclico.md b/0 - Generale/grafo aciclico.md new file mode 100644 index 0000000..43c8a95 --- /dev/null +++ b/0 - Generale/grafo aciclico.md @@ -0,0 +1 @@ +[[grafo]] in cui non esistono [[ciclo|cicli]]. diff --git a/8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/public key infrastructure.md b/8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/public key infrastructure.md index f0c9c51..55d4fef 100644 --- a/8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/public key infrastructure.md +++ b/8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/public key infrastructure.md @@ -4,4 +4,4 @@ aliases: ["PKI"] Approccio [[centralizzazione|centralizzato]] alla [[delegated verification]]. -[[Albero]] delle relazioni di [[fiducia]] tra alcuni [[user agent]], la cui [[trust anchor]] è detta [[certification authority]]. +[[albero]] delle relazioni di [[fiducia]] tra alcuni [[user agent]], la cui [[trust anchor]] è detta [[certification authority]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md index 88c884c..d9015d0 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md @@ -1,3 +1,6 @@ [[restrizione di affidabilità]]. -Specifica che da un certo momento in poi non ci saranno ulteriori [[guasto|guasti]], ma che potrebbero esserci stati in passato. +Specifica che ***da un certo momento in poi non ci saranno ulteriori [[guasto|guasti]]***. + +> [!Tip] +> Potrebbero essere avvenuti in passato, però! diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md index 64807b6..3f341ff 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md @@ -1,3 +1,3 @@ [[restrizione di affidabilità]]. -Specifica che non potranno mai avvenire [[guasto|guasti]]. +Specifica che non potranno ***mai*** avvenire [[guasto|guasti]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/assioma dell'orientamento locale.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/assioma dell'orientamento locale.md index 76a9118..b0d245d 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/assioma dell'orientamento locale.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/assioma dell'orientamento locale.md @@ -4,6 +4,8 @@ Un'[[entità]] può sempre distinguere nel suo [[vicinato]]: - quanti sono i vicini - quali sono i vicini +==Perchè si chiama così? Abbiamo usato "orientamento locale" anche in altri modi...== + > [!EXAMPLE] > Conoscono l'indirizzo IP dei loro vicini, ma non quello di tutti gli altri. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/consegna garantita.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/consegna garantita.md index b17dae2..528e3f3 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/consegna garantita.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/consegna garantita.md @@ -1,3 +1,3 @@ [[restrizione di affidabilità]]. -Specifica che tutti i [[messaggio|messaggi]] inviati sono ricevuti senza [[guasto|guasti]]. +Specifica che tutti i [[messaggio|messaggi]] inviati saranno ricevuti senza [[guasto|guasti]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entità.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entità.md index e3e2c86..268d5d6 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entità.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entità.md @@ -13,3 +13,6 @@ Ha: - [[stato di un'entità|stato]]: **[[individuale]]** - [[comportamento]]: **[[condiviso]]** - [[output]]: **[[condiviso]]** + +> [!Tip] +> Nell'analogia [[sistema distribuito]]-[[grafo]], un'entità è un [[nodo di un grafo|nodo]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/full-duplex.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/full-duplex.md index 5e8c3ad..8263277 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/full-duplex.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/full-duplex.md @@ -3,6 +3,6 @@ aliases: - grafo indiretto --- -[[restrizione di topologia]] applicabile a un [[canale di comunicazione]]. +[[restrizione di comunicazione]] applicabile a un [[canale di comunicazione]]. Determina che entrambe le [[entità]] possono inviare e ricevere [[messaggio|messaggi]] in esso. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/half-duplex.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/half-duplex.md index f225f72..cc57b9b 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/half-duplex.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/half-duplex.md @@ -3,6 +3,6 @@ aliases: - grafo diretto --- -[[restrizione di topologia]] applicabile a un [[canale di comunicazione]]. +[[restrizione di comunicazione]] applicabile a un [[canale di comunicazione]]. Determina che una sola delle due [[entità]] può inviare [[messaggio|messaggi]] in esso, e che l'altra può solo riceverli. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatore singolo.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatore singolo.md deleted file mode 100644 index 2365095..0000000 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatore singolo.md +++ /dev/null @@ -1,3 +0,0 @@ -[[restrizione di comunicazione]]. - -Prevede che sia già stato selezionato un singolo [[leader]] che dia il via all'[[algoritmo]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatori multipli.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatori multipli.md deleted file mode 100644 index 0590ea1..0000000 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatori multipli.md +++ /dev/null @@ -1,3 +0,0 @@ -[[restrizione di comunicazione]]. - -Prevede che qualsiasi [[entità]] possa dare il via all'algoritmo, anche se un'altra lo ha già fatto. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/no failure detection.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/no failure detection.md new file mode 100644 index 0000000..282fed5 --- /dev/null +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/no failure detection.md @@ -0,0 +1,3 @@ +[[restrizione di affidabilità]]. + +Specifica che le [[entità]] non hanno modo di determinare quando avviene un [[guasto]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio parziale.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio parziale.md new file mode 100644 index 0000000..a3cd2bd --- /dev/null +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio parziale.md @@ -0,0 +1,8 @@ +--- +aliases: + - iniziatori multipli +--- + +[[restrizione di tempo]]. + +Specifica che, ai fini della risoluzione del [[problema]], la computazione necessaria all'avvio dell'esecuzione di un [[algoritmo]] è ***ignorata per determinate [[entità]]***, dette *iniziatrici*. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio singolo.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio singolo.md new file mode 100644 index 0000000..7e4b2f4 --- /dev/null +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio singolo.md @@ -0,0 +1,8 @@ +--- +aliases: + - iniziatore singolo +--- + +[[restrizione di tempo]]. + +Specifica che, ai fini della risoluzione del [[problema]], la computazione necessaria all'avvio dell'esecuzione di un [[algoritmo]] è ***ignorata per una singola [[entità]]***, detta [[leader]]. \ No newline at end of file diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio totale.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio totale.md new file mode 100644 index 0000000..2bca7f4 --- /dev/null +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio totale.md @@ -0,0 +1,3 @@ +[[restrizione di tempo]]. + +Specifica che, ai fini della risoluzione del [[problema]], la computazione necessaria all'avvio dell'esecuzione di un [[algoritmo]] è ***ignorata***. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md index 513f155..17230cc 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md @@ -1,5 +1,6 @@ [[restrizione di tempo]]. -Specifica che le [[entità]] partecipanti vengono a conoscenza di quando l'algoritmo è terminato per tutti i partecipanti. +Specifica che, ai fini della risoluzione del [[problema]], il [[algoritmo corretto|requisito di terminazione di un algoritmo]] è soddisfatto quando ***tutte le [[entità]] partecipanti conoscono quando l'intera computazione è terminata***. -È un problema a sè stante, il [[termination detection problem]]. +> [!Example] +> L'abbiamo visto in [[★ sistemi complessi]]: la [[sincronizzazione del plotone di esecuzione]]! diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione ignorata.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione ignorata.md new file mode 100644 index 0000000..629b63d --- /dev/null +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione ignorata.md @@ -0,0 +1,6 @@ +[[restrizione di tempo]]. + +Specifica che, ai fini della risoluzione del [[problema]], il [[algoritmo corretto|requisito di terminazione di un algoritmo]] è ***ignorato***. + +> [!Warning] +> In tal caso, sarebbe più una [[procedura]] che un [[algoritmo]]... diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md index c98a502..b2b0f57 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md @@ -1,3 +1,6 @@ [[restrizione di tempo]]. -Specifica che le [[entità]] partecipanti conoscono quando la loro partecipazione è terminata, ma non quando è terminata quella di tutte le altre. +Specifica che, ai fini della risoluzione del [[problema]], il [[algoritmo corretto|requisito di terminazione di un algoritmo]] è soddisfatto quando ***tutte le [[entità]] partecipanti conoscono quando la loro partecipazione individuale è terminata***. + +> [!Tip] +> È quello usato più di frequente! diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/vicini di un'entità.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/vicini di un'entità.md new file mode 100644 index 0000000..0e0ea02 --- /dev/null +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/vicini di un'entità.md @@ -0,0 +1,8 @@ +--- +aliases: + - vicino + - vicinato + - vicini +--- + +Relativamente ad una data [[entità]], sono *vicini* tutte le altre [[entità]] a cui è direttamente [[rete di comunicazione|connessa]] attraverso un [[canale di comunicazione]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/★ concetti.canvas b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/★ concetti.canvas index 8c722cb..f3bcfb1 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/★ concetti.canvas +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/★ concetti.canvas @@ -1,6 +1,6 @@ { "nodes":[ - {"id":"0e88c8c55309b762","type":"group","x":220,"y":-2860,"width":2440,"height":2480,"label":"Restrizioni del modello"}, + {"id":"0e88c8c55309b762","type":"group","x":220,"y":-2300,"width":2440,"height":1920,"label":"Restrizioni del modello"}, {"id":"de6e2a65c63084c7","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/stato di un'entità.md","x":800,"y":-160,"width":400,"height":400}, {"id":"7126bfdd6ead22a9","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/insieme degli stati di un'entità.md","x":1360,"y":-160,"width":400,"height":400}, {"id":"c986480451be1efe","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entità.md","x":240,"y":-160,"width":400,"height":400}, @@ -8,7 +8,6 @@ {"id":"40f55b66f9214ecd","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema distribuito.md","x":-320,"y":-1360,"width":400,"height":400}, {"id":"97624a26a3c7d126","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema sequenziale.md","x":-320,"y":-2480,"width":400,"height":400}, {"id":"97d5f142a5c95ce3","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema parallelo.md","x":-320,"y":-1920,"width":400,"height":400}, - {"id":"961e2a0551edc3c5","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di comunicazione.md","x":800,"y":-2840,"width":400,"height":200}, {"id":"bdeb2e85bcb32f7e","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizioni al modello dei sistemi distribuiti.md","x":240,"y":-800,"width":400,"height":400}, {"id":"d8754617f38feb06","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/canale di comunicazione.md","x":-320,"y":400,"width":400,"height":400}, {"id":"afa296d887da4394","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/evento.md","x":-600,"y":1520,"width":400,"height":400}, @@ -35,25 +34,30 @@ {"id":"7307a3e6d21d094d","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/criterio di costo asincrono.md","x":-2000,"y":-1120,"width":400,"height":200}, {"id":"3c2d2701a7095e82","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/criterio di costo sincrono.md","x":-2000,"y":-1400,"width":400,"height":200}, {"id":"9abf440226d21d98","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/assioma dell'orientamento locale.md","x":-880,"y":-160,"width":400,"height":400}, - {"id":"5f79f222c02d34a4","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatore singolo.md","x":1280,"y":-2840,"width":400,"height":200}, - {"id":"8feba6ce763a0898","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatori multipli.md","x":1760,"y":-2840,"width":400,"height":200}, - {"id":"55006dcc3b515353","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md","x":1280,"y":-1160,"width":400,"height":200}, - {"id":"d12cedf357c12705","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md","x":1760,"y":-1160,"width":400,"height":200}, - {"id":"4a1b9354e73b16bc","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/identificatori univoci.md","x":1280,"y":-1440,"width":400,"height":200}, {"id":"2d21a7ed903a16e7","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di tempo.md","x":800,"y":-1160,"width":400,"height":760}, - {"id":"83b3be69f6f3d497","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/timeout.md","x":2000,"y":-880,"width":400,"height":200}, - {"id":"dbe3b5d5f2baeb7f","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione illimitato.md","x":1280,"y":-600,"width":400,"height":200}, - {"id":"472610beeef20101","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione limitato.md","x":1760,"y":-600,"width":400,"height":200}, - {"id":"ca6adc368f6aed21","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/channel failure detection.md","x":1280,"y":-2560,"width":400,"height":200}, - {"id":"887f1f52394b3721","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md","x":1280,"y":-2280,"width":400,"height":200}, - {"id":"b69def8d92ba28df","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/consegna garantita.md","x":1280,"y":-2000,"width":400,"height":200}, - {"id":"281bcf7f0a4b5be1","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di affidabilità.md","x":800,"y":-2560,"width":400,"height":760}, - {"id":"7d0f048f4b43f33d","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/full-duplex.md","x":1760,"y":-1720,"width":400,"height":200}, - {"id":"ce3d37417ee5bf4d","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/half-duplex.md","x":1280,"y":-1720,"width":400,"height":200}, - {"id":"0951993b4f64f1b4","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di topologia.md","x":800,"y":-1720,"width":400,"height":480}, - {"id":"fc4c48607c9ae580","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione unitario.md","x":2240,"y":-600,"width":400,"height":200}, - {"id":"a16e77231955a7a3","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entity failure detection.md","x":1760,"y":-2560,"width":400,"height":200}, - {"id":"6b3170059dad55ef","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md","x":1760,"y":-2280,"width":400,"height":200} + {"id":"dbe3b5d5f2baeb7f","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione illimitato.md","x":1280,"y":-600,"width":400,"height":200,"color":"3"}, + {"id":"472610beeef20101","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione limitato.md","x":1760,"y":-600,"width":400,"height":200,"color":"2"}, + {"id":"fc4c48607c9ae580","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione unitario.md","x":2240,"y":-600,"width":400,"height":200,"color":"1"}, + {"id":"02d82dc7842e6fc9","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/vicini di un'entità.md","x":-880,"y":400,"width":400,"height":400}, + {"id":"83b3be69f6f3d497","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/timeout.md","x":2000,"y":-160,"width":400,"height":400}, + {"id":"d58b2d089a2e67be","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione ignorata.md","x":1280,"y":-880,"width":400,"height":200,"color":"3"}, + {"id":"e61c5ee7f8dd35a5","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md","x":1760,"y":-880,"width":400,"height":200,"color":"2"}, + {"id":"6dc8e5e24bfa2114","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md","x":2240,"y":-880,"width":400,"height":200,"color":"1"}, + {"id":"5a382d3822a5736e","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio totale.md","x":1280,"y":-1160,"width":400,"height":200,"color":"3"}, + {"id":"00b0016663a07f0b","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio parziale.md","x":1760,"y":-1160,"width":400,"height":200,"color":"2"}, + {"id":"aa511f4700f8c6f7","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio singolo.md","x":2240,"y":-1160,"width":400,"height":200,"color":"1"}, + {"id":"4a1b9354e73b16bc","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/identificatori univoci.md","x":1760,"y":-1440,"width":400,"height":200,"color":"2"}, + {"id":"0951993b4f64f1b4","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di topologia.md","x":800,"y":-1440,"width":400,"height":200}, + {"id":"887f1f52394b3721","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md","x":1280,"y":-1720,"width":400,"height":200,"color":"3"}, + {"id":"6b3170059dad55ef","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md","x":2240,"y":-1720,"width":400,"height":200,"color":"1"}, + {"id":"1ab217c2b661bb7d","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/consegna garantita.md","x":1760,"y":-1720,"width":400,"height":200,"color":"2"}, + {"id":"281bcf7f0a4b5be1","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di affidabilità.md","x":800,"y":-2000,"width":400,"height":480}, + {"id":"093e569da1a08d91","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/entity failure detection.md","x":2240,"y":-2000,"width":400,"height":200,"color":"1"}, + {"id":"5888f088a7849b69","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/channel failure detection.md","x":1760,"y":-2000,"width":400,"height":200,"color":"2"}, + {"id":"7862502b2075f0a7","x":1280,"y":-2000,"width":400,"height":200,"color":"3","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/no failure detection.md"}, + {"id":"4f299bd36fec0431","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/half-duplex.md","x":1280,"y":-2280,"width":400,"height":200,"color":"3"}, + {"id":"961e2a0551edc3c5","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di comunicazione.md","x":800,"y":-2280,"width":400,"height":200}, + {"id":"7bf268e3d7b311a7","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/full-duplex.md","x":1760,"y":-2280,"width":400,"height":200,"color":"2"} ], "edges":[ {"id":"1bb35cb60ca4ea15","fromNode":"afa296d887da4394","fromSide":"bottom","toNode":"904bb8e648bdcb90","toSide":"top"}, @@ -87,14 +91,8 @@ {"id":"4e22445bef4f3751","fromNode":"9ff0a423dbb281a0","fromSide":"bottom","toNode":"d8754617f38feb06","toSide":"top"}, {"id":"c0e7edefcb021bbe","fromNode":"d8754617f38feb06","fromSide":"bottom","toNode":"6b49f0fc996cb192","toSide":"top"}, {"id":"5956ff40fae387a3","fromNode":"c986480451be1efe","fromSide":"left","toNode":"d8754617f38feb06","toSide":"right"}, - {"id":"e25ad17df986933d","fromNode":"281bcf7f0a4b5be1","fromSide":"right","toNode":"ca6adc368f6aed21","toSide":"left"}, - {"id":"d17369530cedcf91","fromNode":"ca6adc368f6aed21","fromSide":"right","toNode":"a16e77231955a7a3","toSide":"left"}, - {"id":"bd17cdba235c81af","fromNode":"281bcf7f0a4b5be1","fromSide":"right","toNode":"b69def8d92ba28df","toSide":"left"}, {"id":"d56cbf4dce71a7f3","fromNode":"281bcf7f0a4b5be1","fromSide":"right","toNode":"887f1f52394b3721","toSide":"left"}, - {"id":"d75e4e97c723ecbb","fromNode":"887f1f52394b3721","fromSide":"right","toNode":"6b3170059dad55ef","toSide":"left"}, - {"id":"2e95c9b13ce50fd0","fromNode":"472610beeef20101","fromSide":"top","toNode":"83b3be69f6f3d497","toSide":"bottom"}, {"id":"d63be18341405890","fromNode":"472610beeef20101","fromSide":"right","toNode":"fc4c48607c9ae580","toSide":"left"}, - {"id":"17033b6f222151a8","fromNode":"fc4c48607c9ae580","fromSide":"top","toNode":"83b3be69f6f3d497","toSide":"bottom"}, {"id":"b9abeefc64ec5360","fromNode":"806b3a8cfb46e427","fromSide":"bottom","toNode":"ce14b5c90fd5e953","toSide":"top"}, {"id":"26e0891ec4447f53","fromNode":"40f55b66f9214ecd","fromSide":"left","toNode":"0663141369318ae1","toSide":"right"}, {"id":"ec682837ca5406eb","fromNode":"0663141369318ae1","fromSide":"left","toNode":"5cb928eebbce8c85","toSide":"right"}, @@ -104,14 +102,24 @@ {"id":"4e6bc2efe53e4e17","fromNode":"0663141369318ae1","fromSide":"left","toNode":"68d2646884fe10e3","toSide":"right"}, {"id":"11e3f0f7f9977138","fromNode":"68d2646884fe10e3","fromSide":"left","toNode":"7307a3e6d21d094d","toSide":"right"}, {"id":"0a39548d5dde3f7e","fromNode":"68d2646884fe10e3","fromSide":"left","toNode":"3c2d2701a7095e82","toSide":"right"}, - {"id":"459233fc20cad1e7","fromNode":"961e2a0551edc3c5","fromSide":"right","toNode":"5f79f222c02d34a4","toSide":"left"}, - {"id":"862f0a43ddf5a87a","fromNode":"5f79f222c02d34a4","fromSide":"right","toNode":"8feba6ce763a0898","toSide":"left"}, - {"id":"92889f0a7be5f7d4","fromNode":"55006dcc3b515353","fromSide":"right","toNode":"d12cedf357c12705","toSide":"left"}, - {"id":"02d76934b8ed7603","fromNode":"2d21a7ed903a16e7","fromSide":"right","toNode":"55006dcc3b515353","toSide":"left"}, {"id":"7b82b81786037fe6","fromNode":"2d21a7ed903a16e7","fromSide":"right","toNode":"dbe3b5d5f2baeb7f","toSide":"left"}, {"id":"13ecf8445dea426a","fromNode":"dbe3b5d5f2baeb7f","fromSide":"right","toNode":"472610beeef20101","toSide":"left"}, {"id":"81615994263f9203","fromNode":"0951993b4f64f1b4","fromSide":"right","toNode":"4a1b9354e73b16bc","toSide":"left"}, - {"id":"946800279c546347","fromNode":"ce3d37417ee5bf4d","fromSide":"right","toNode":"7d0f048f4b43f33d","toSide":"left"}, - {"id":"60e9ac87e9ce4fc1","fromNode":"0951993b4f64f1b4","fromSide":"right","toNode":"ce3d37417ee5bf4d","toSide":"left"} + {"id":"883f51fdca0cae63","fromNode":"d8754617f38feb06","fromSide":"left","toNode":"02d82dc7842e6fc9","toSide":"right"}, + {"id":"524c88f5c49126c8","fromNode":"2d21a7ed903a16e7","fromSide":"right","toNode":"d58b2d089a2e67be","toSide":"left"}, + {"id":"8edd4cd421b796c6","fromNode":"d58b2d089a2e67be","fromSide":"right","toNode":"e61c5ee7f8dd35a5","toSide":"left"}, + {"id":"ca3addc3261f366b","fromNode":"e61c5ee7f8dd35a5","fromSide":"right","toNode":"6dc8e5e24bfa2114","toSide":"left"}, + {"id":"b9d158fea7f2db64","fromNode":"2d21a7ed903a16e7","fromSide":"right","toNode":"5a382d3822a5736e","toSide":"left"}, + {"id":"b0b6bca60aa9b551","fromNode":"5a382d3822a5736e","fromSide":"right","toNode":"00b0016663a07f0b","toSide":"left"}, + {"id":"77a97e5a4f4671bd","fromNode":"00b0016663a07f0b","fromSide":"right","toNode":"aa511f4700f8c6f7","toSide":"left"}, + {"id":"6c788cd758713395","fromNode":"4f299bd36fec0431","fromSide":"right","toNode":"7bf268e3d7b311a7","toSide":"left"}, + {"id":"50384fcf0b6d5450","fromNode":"961e2a0551edc3c5","fromSide":"right","toNode":"4f299bd36fec0431","toSide":"left"}, + {"id":"24c8ccec6bcc6278","fromNode":"887f1f52394b3721","fromSide":"right","toNode":"1ab217c2b661bb7d","toSide":"left"}, + {"id":"652ed21c4a649f54","fromNode":"1ab217c2b661bb7d","fromSide":"right","toNode":"6b3170059dad55ef","toSide":"left"}, + {"id":"e360a93b41662c61","fromNode":"5888f088a7849b69","fromSide":"right","toNode":"093e569da1a08d91","toSide":"left"}, + {"id":"e49aefbf6eb92718","fromNode":"281bcf7f0a4b5be1","fromSide":"right","toNode":"7862502b2075f0a7","toSide":"left"}, + {"id":"a3aca459de8a94ba","fromNode":"7862502b2075f0a7","fromSide":"right","toNode":"5888f088a7849b69","toSide":"left"}, + {"id":"675055018ef6483c","fromNode":"472610beeef20101","fromSide":"bottom","toNode":"83b3be69f6f3d497","toSide":"top"}, + {"id":"ac5fdc2d569502ff","fromNode":"fc4c48607c9ae580","fromSide":"bottom","toNode":"83b3be69f6f3d497","toSide":"top"} ] } \ No newline at end of file diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast problem.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast problem.md index 5630844..1a721f2 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast problem.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast problem.md @@ -12,14 +12,14 @@ Una [[entità]] vuole comunicare un'informazione a tutto il resto del [[sistema ## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]] - **[[restrizione di comunicazione|Comunicazione]]** - - [[iniziatore singolo]] + - [[half-duplex]] - **[[restrizione di affidabilità|Affidabilità]]** - [[affidabilità totale]] - **[[restrizione di topologia|Topologia]]** - [[grafo connesso]] - - [[full-duplex|grafo indiretto]] - **[[restrizione di tempo|Tempo]]** - [[ritardo di comunicazione illimitato]] + - [[risveglio singolo]] - [[terminazione locale]] ## [[algoritmo|Algoritmi]] @@ -29,7 +29,7 @@ Una [[entità]] vuole comunicare un'informazione a tutto il resto del [[sistema - [[flooding v2]] ([[algoritmo corretto|corretto]].) - [[flooding v3]] (ottimizzato!) -## [[notazione Ω-grande|Lower bound]] [[costo computazionale|costo computazionale]] +## [[costo computazionale|Costo computazionale]] ### [[Comunicazione]] @@ -59,7 +59,7 @@ $$ \Large Nodes $$ -### [[tempo]] +### [[Tempo]] #### In un [[grafo]] qualsiasi diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v1.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v1.md index d45affb..a8ceaff 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v1.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v1.md @@ -1,38 +1,24 @@ -[[algoritmo]] ***[[algoritmo corretto|incorretto]]*** di [[broadcast problem]]. +[[algoritmo]] di [[broadcast problem]]. + +## [[Comportamento]] > [!Summary] > Il [[leader]] invia il suo messaggio iniziale a tutti i vicini, e loro lo inoltrano a loro volta ai loro vicini. -## [[Comportamento]] +Il [[leader]] è inizializzato allo stato `LEADER`, mentre tutti gli altri sono inizializzati allo stato `SLEEPING`. ### `LEADER` -All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo messaggio: -```rust -spontaneously! { - send!(*, Message {...}); -} -``` +All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo [[messaggio]] a tutti i vicini. -Se lo riceve indietro, non fa niente: -```rust -on_receive! { - _ => {}, -} -``` +Ignora qualsiasi altra cosa riceva. ### `SLEEPING` -Se riceve il messaggio, lo inoltra a tutti i suoi vicini: -```rust -on_receive! { - _ => send!(*, msg) -} -``` +Se riceve il [[messaggio]] del `LEADER`, lo inoltra a tutti i vicini. ## [[algoritmo corretto|Correttezza]] -> [!DANGER] Algoritmo incorretto +> [!Failure] > -> Questo algoritmo non termina mai! -> È riportato qui solo come base per le due versioni successive. +> Questo algoritmo potrebbe non terminare mai, in quanto due [[entità]] potrebbero inoltrarsi il [[messaggio]] del [[#`LEADER`]] all'infinito. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v2.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v2.md index 10e9f63..7136d79 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v2.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v2.md @@ -1,51 +1,37 @@ [[algoritmo]] di [[broadcast problem]] che risolve l'incorrettezza del [[flooding v1]]. +## [[Comportamento]] + > [!Summary] > Il [[leader]] invia il suo messaggio iniziale a tutti i vicini, e, ***se è la prima volta che lo ricevono***, loro lo inoltrano a loro volta ai loro vicini. -## [[Comportamento]] +Il [[leader]] è inizializzato allo stato `LEADER`, mentre tutti gli altri sono inizializzati allo stato `SLEEPING`. ### `LEADER` -All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo messaggio: -```rust -spontaneously! { - send!(*, Message {...}); - state!(DONE); -} -``` - -Se lo riceve indietro, non fa niente: -```rust -on_receive! { - _ => {}, -} -``` +All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo [[messaggio]] a tutti i vicini, ***poi passa allo stato `DONE`***. ### `SLEEPING` -Se riceve il messaggio, lo inoltra a tutti i suoi vicini, poi passa allo stato `DONE`: -```rust -on_receive! { - _ => { - send!(*, msg); - state!(DONE); - }, -} -``` +Se riceve il [[messaggio]] del `LEADER`, lo inoltra a tutti i vicini, ***poi passa allo stato `DONE`***. -### `DONE` +### ***`DONE`*** -Non fa niente. +***Ignora qualsiasi cosa riceva.*** ## [[algoritmo corretto|Correttezza]] -Per via dell'ipotesi di [[grafo connesso]], tutte le [[entità]] riceveranno eventualmente il [[messaggio]] inviato. - -Con la ricezione del [[messaggio]], eventualmente tutte le [[entità]] diventeranno `DONE`, raggiungendo [[terminazione locale]]. +> [!Success] +> +> Per via dell'ipotesi di [[grafo connesso]], tutte le [[entità]] eventualmente riceveranno e inoltreranno il [[messaggio]] del [[leader]], diventando `DONE`. ## [[costo computazionale distribuito|Costo computazionale]] +| Costo | [[notazione O-grande]] | +|-|-| +| [[comunicazione]] | $O(Channels)$ | +| [[tempo]] | $O(Channels)$ | + ### [[Comunicazione]] Attraverso ogni [[canale di comunicazione|canale]] passeranno al massimo due [[messaggio|messaggi]]: @@ -63,13 +49,12 @@ $$ \Large O(Channels) $$ -### [[Spazio]] +### [[Tempo]] -Un multiplo del [costo di comunicazione](#Comunicazione), sempre [[notazione asintotica|asintotico]] a: +Il [[grafo]] potrebbe essere un [[cammino]], che richiederebbe che ogni arco venisse attraversato, quindi sicuramente: $$ \Large O(Channels) $$ -### [[Tempo]] - -Coincide con il lower bound del [[broadcast problem]]. +> [!Note] +> Coincide con il lower bound del [[broadcast problem]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v3.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v3.md index 50b6b56..7b6b4b2 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v3.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v3.md @@ -1,38 +1,19 @@ [[algoritmo]] di [[broadcast problem]] che riduce il [[comunicazione|numero di messaggi]] rispetto al [[flooding v2]]. +## [[Comportamento]] + > [!Summary] > Il [[leader]] invia il suo [[messaggio]] iniziale a tutti i vicini, e, se è la prima volta che lo ricevono, loro lo inoltrano a loro volta ai loro vicini ***tranne quello che gliel'ha inviato***. -## [[Comportamento]] +Il [[leader]] è inizializzato allo stato `LEADER`, mentre tutti gli altri sono inizializzati allo stato `SLEEPING`. ### `LEADER` -All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo [[messaggio]]: -```rust -spontaneously! { - send!(*, Message {...}); - state!(DONE); -} -``` - -Se lo riceve indietro, non fa niente: -```rust -on_receive! { - _ => {}, -} -``` +All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo [[messaggio]] a tutti i vicini, poi passa allo stato `DONE`***. ### `SLEEPING` -Se riceve il [[messaggio]], lo inoltra a tutti i suoi vicini, poi passa allo stato `DONE`: -```rust -on_receive! { - _ => { - send!(!sender, msg); - state!(DONE); - }, -} -``` +Se riceve il [[messaggio]] del `LEADER`, lo inoltra a tutti i vicini ***tranne quello che gliel'ha inviato***, poi passa allo stato `DONE`. ### `DONE` @@ -40,13 +21,20 @@ Non fa niente. ## [[algoritmo corretto|Correttezza]] -Vedi [[flooding v2]]. +> [!Success] +> +> Per via dell'ipotesi di [[grafo connesso]], tutte le [[entità]] eventualmente riceveranno e inoltreranno il [[messaggio]] del [[leader]], diventando `DONE`. ## [[costo computazionale distribuito|Costo computazionale]] +| Costo | [[notazione O-grande]] | +|-|-| +| [[comunicazione]] | $O(Channels)$ | +| [[tempo]] | $O(Channels)$ | + ### [[Comunicazione]] -Il costo computazionale è lo stesso del [[flooding v2]], ma con un trasferimento in meno per ogni [[entità]] che non è il [[leader]]: +Il costo computazionale è lo stesso del [[flooding v2]], ma ***con un trasferimento in meno per ogni [[entità]] che non è il [[leader]]***: $$ 2 \cdot Channels - (Entities - 1) $$ @@ -56,13 +44,16 @@ $$ \Large O(Channels) $$ -### [[Spazio]] +> [!Note] +> +> ***Coincide con il lower bound del [[broadcast problem]].*** -Un multiplo del [costo di comunicazione](#Comunicazione), sempre [[notazione asintotica|asintotico]] a: +### [[Tempo]] + +Il [[grafo]] potrebbe essere un [[cammino]], che richiederebbe che ogni arco venisse attraversato, quindi sicuramente: $$ \Large O(Channels) $$ -### [[Tempo]] - -Vedi [[flooding v2]]. +> [!Note] +>Coincide con il lower bound del [[broadcast problem]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/wake-up problem.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/wake-up problem.md index a262790..42de8bf 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/wake-up problem.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/wake-up problem.md @@ -7,14 +7,14 @@ Problema per un [[sistema distribuito]], variante del [[broadcast problem]]. ## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]] - **[[restrizione di comunicazione|Comunicazione]]** - - ***[[iniziatori multipli]]*** + - [[full-duplex|grafo indiretto]] - **[[restrizione di affidabilità|Affidabilità]]** - [[affidabilità totale]] - **[[restrizione di topologia|Topologia]]** - [[grafo connesso]] - - [[full-duplex|grafo indiretto]] - **[[restrizione di tempo|Tempo]]** - [[ritardo di comunicazione illimitato]] + - ***[[risveglio parziale]]*** - [[terminazione locale]] ## [[algoritmo|Algoritmi]] @@ -24,7 +24,7 @@ Problema per un [[sistema distribuito]], variante del [[broadcast problem]]. - [[flooding v2]] ([[algoritmo corretto|corretto]].) - [[flooding v3]] (ottimizzato!) -## [[notazione Ω-grande|Lower bound]] [[costo computazionale|costo computazionale]] +## [[costo computazionale|Costo computazionale]] ### [[Comunicazione]] diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/★ broadcast.canvas b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/★ broadcast.canvas index 3396567..fa7c709 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/★ broadcast.canvas +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/★ broadcast.canvas @@ -1,6 +1,6 @@ { "nodes":[ - {"id":"1ae79343ecdc2ecf","type":"group","x":1040,"y":540,"width":1640,"height":1000,"color":"5","label":"Flooding"}, + {"id":"1ae79343ecdc2ecf","type":"group","x":1040,"y":540,"width":1640,"height":1000,"label":"Flooding"}, {"id":"1bf892659093d611","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v1.md","x":1060,"y":560,"width":480,"height":960}, {"id":"a1841455be06b505","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v2.md","x":1620,"y":560,"width":480,"height":960}, {"id":"ea39c9f9c9d31ba6","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v3.md","x":2180,"y":560,"width":480,"height":960}, diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/broadcast tree construction.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/broadcast tree construction.md index dbfbc5f..ab2a4f3 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/broadcast tree construction.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/broadcast tree construction.md @@ -7,14 +7,14 @@ Si vuole ***minimizzare il [[diametro di un grafo|diametro]]*** di uno [[spannin ## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]] - **[[restrizione di comunicazione|Comunicazione]]** - - [[iniziatore singolo]] + - [[full-duplex]] - **[[restrizione di affidabilità|Affidabilità]]** - [[affidabilità totale]] - **[[restrizione di topologia|Topologia]]** - [[grafo connesso]] - - [[full-duplex|grafo indiretto]] - **[[restrizione di tempo|Tempo]]** - [[ritardo di comunicazione illimitato]] + - [[risveglio singolo]] - [[terminazione locale]] ## Idea degli [[algoritmo|algoritmi]] diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/multiple spanning tree construction.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/multiple spanning tree construction.md index 5c27b8b..c836a4f 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/multiple spanning tree construction.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/multiple spanning tree construction.md @@ -7,15 +7,15 @@ Si vuole [[problema di ricerca|determinare]] uno [[spanning tree]] per il [[sist ## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]] - **[[restrizione di comunicazione|Comunicazione]]** - - ***[[iniziatori multipli]]*** - - ***[[identificatori univoci]]*** + - [[full-duplex]] - **[[restrizione di affidabilità|Affidabilità]]** - [[affidabilità totale]] - **[[restrizione di topologia|Topologia]]** - [[grafo connesso]] - - [[full-duplex|grafo indiretto]] + - ***[[identificatori univoci]]*** - **[[restrizione di tempo|Tempo]]** - [[ritardo di comunicazione unitario]] + - ***[[risveglio parziale]]*** - [[terminazione locale]] ### [[Algoritmo|Algoritmi]] diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout protocol.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout protocol.md index d26990b..8c8085e 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout protocol.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout protocol.md @@ -1,117 +1,76 @@ [[algoritmo]] di [[spanning tree construction]], basato sul [[flooding v3]]. -> [!Summary] -> Ciascuna [[entità]] chiede ai propri vicini se può entrare a fare parte dello [[spanning tree]], e loro ***rispondono sì oppure no***. - ## [[Comportamento]] +> [!Summary] +> Ciascuna [[entità]] chiede ai propri vicini se può entrare a fare parte dello [[spanning tree]], e loro ***rispondono di sì oppure di no***. + Il [[leader]] viene inizializzato a `LEADER`, le altre [[entità]] vengono inizializzate a `IDLE`. ### `LEADER` -Il [[leader]] chiede [[impulso spontaneo|spontaneamente]] alle [[entità]] se possono entrare a fare parte dello [[spanning tree]], poi si attiva in attesa di risposte: -```rust -spontaneously!({ - self.received = 0; - send!(*, Question); - state!(ACTIVE); -}) -``` +[[messaggio|Chiede]] [[impulso spontaneo|spontaneamente]] ai suoi [[vicini di un'entità|vicini]] se possono entrare a fare parte dello [[spanning tree]] con `Question`, poi diventa `ACTIVE`. ### `IDLE` -Un'[[entità]] `IDLE` è in attesa di domande. +In attesa di ricevere `Question`. -Quando ne riceve una, risponde positivamente, poi ripete la domanda e si attiva a sua volta: -```rust -on_receive!( - Question => { - self.received = 1; - self.parent = sender; - send!(sender, Answer::Yes); - send!(!sender, Question); - if self.neighbours.length() > self.received { - state!(DONE) - } - else { - state!(ACTIVE) - }; - }, -) -``` +Quando ne riceve una, risponde `Yes`, poi ripete `Question` ai propri [[vicini di un'entità|vicini]] (tranne il mittente) e diventa `ACTIVE`. ### `ACTIVE` -Un [[entità]] `ACTIVE` è in attesa di risposte. +In attesa di risposte `Yes` o `No`. -Se la risposta è positiva, aggiunge il mittente allo spanning tree: -```rust -on_receive!( - Answer::Yes => { - self.neighbours_in_tree.insert(sender); - } -) -``` +Se la risposta è `Yes`, aggiunge il mittente allo [[spanning tree]]. -E poi la conteggia: -```rust -on_receive!( - Answer => { - self.received += 1 - if self.neighbours.length() > self.received { - state!(DONE); - } - }, -) -``` +Inoltre, [[contatore|conta]] tutte le risposte che ha ricevuto, passando a `DONE` quando sono tante quante i vicini a cui ha inviato la domanda. -Inoltre, risponde alle domande con `Answer::No`: -```rust -on_receive!( - Question => { - send!(sender, Answer::No); - } -) -``` +Essendo già parte dello [[spanning tree]], risponde alle `Question` con `No`. ### `DONE` -Un [[entità]] `DONE` sa tutte le informazioni possibili sui suoi vicini. - Non fa nient'altro. + ## [[algoritmo corretto|Correttezza]] -Dato che: -1. Tutte le [[entità]] tranne il [[leader]] inviano esattamente un `Answer::Yes`. -2. L'invio e la ricezione di `Answer::Yes` [[arco di un grafo|collegano]] le due [[entità]] coinvolte. - -Allora, il [[grafo]] risultante è un [[albero]] [[grafo connesso|connesso]]. +> [!Success] +> +> Dato che: +> 1. Tutte le [[entità]] tranne il [[leader]] rispondono affermativamente una sola volta. +> 2. Una domanda e una risposta affermativa [[arco di un grafo|collegano]] le due [[entità]] coinvolte. +> +> Allora, il [[grafo]] risultante è un [[albero]] [[grafo connesso|connesso]]. ## [[costo computazionale distribuito|Costo computazionale]] -Questo protocollo è equivalente al [[flooding v3]], ma con le ***[[entità]] raggiunte che inviano anche una risposta***. +| Costo | [[notazione O-grande]] | +|-|-| +| [[comunicazione]] | $O(Channels)$ | +| [[tempo]] | $O(Channels)$ | ### [[Comunicazione]] -#### Singoli scambi di messaggi +Si osserva che questo [[algoritmo]] è simile al [[flooding v3]], ma con le ***[[entità]] raggiunte che inviano anche una risposta***. + +#### Singoli scambi di [[messaggio|messaggi]] Controlliamo che e quanti messaggi attraversano i [[canale di comunicazione|canali]]. -##### Scoperta di un nuovo nodo +##### Scoperta di una nuova [[entità]] -Un nodo invia `Question`, l'altro risponda con `Answer::Yes`: +Un'[[entità]] invia `Question`, l'altra risponde con `Yes`: $$ \color{LightCoral} (2 \cdot (Entities - 1)) $$ -##### Incontro di due nodi conosciuti +##### Incontro di due [[entità]] conosciute -Entrambi i nodi inviano `Question` in tutti i casi che non sono quello precedente: +Entrambe inviano `Question` in tutti i casi che non sono quello precedente: $$ \color{SpringGreen} (2 \cdot (Channels - (Entities - 1))) $$ -Entrambi i nodi poi rispondono `Answer::No`: +Entrambe poi rispondono `Answer::No`: $$ \color{SkyBlue} (2 \cdot (Channels - (Entities - 1))) $$ @@ -150,3 +109,11 @@ In [[notazione asintotica]], è sempre: $$ \Large O(Channels) $$ + +### [[Tempo]] + +Il [[grafo]] potrebbe essere un [[cammino]], che richiederebbe che ogni arco venisse attraversato, quindi sicuramente: +$$ +\Large O(Channels) +$$ + diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout+ protocol.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout+ protocol.md index 3ef26a0..dc6fb6d 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout+ protocol.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout+ protocol.md @@ -1,117 +1,73 @@ [[algoritmo]] di [[spanning tree construction]] che migliora lo [[shout protocol]]. +## [[Comportamento]] + > [!Summary] > Ciascuna [[entità]] chiede ai propri vicini se può entrare a fare parte dello [[spanning tree]], e loro rispondono sì ***oppure nulla***. -## [[Comportamento]] - Il [[leader]] viene inizializzato a `LEADER`, le altre [[entità]] vengono inizializzate a `IDLE`. ### `LEADER` -Il [[leader]] chiede [[impulso spontaneo|spontaneamente]] alle [[entità]] se possono entrare a fare parte dello [[spanning tree]], poi si attiva in attesa di risposte: -```rust -spontaneously!({ - self.received = 0; - send!(*, Question); - state!(ACTIVE); -}) -``` +[[messaggio|Chiede]] [[impulso spontaneo|spontaneamente]] ai suoi [[vicini di un'entità|vicini]] se possono entrare a fare parte dello [[spanning tree]] con `Question`, poi diventa `ACTIVE`. ### `IDLE` -Un'[[entità]] `IDLE` è in attesa di domande. +In attesa di ricevere `Question`. -Quando ne riceve una, risponde positivamente, poi ripete la domanda e si attiva a sua volta: -```rust -on_receive!( - Question => { - self.received = 1; - self.parent = sender; - send!(sender, Answer::Yes); - send!(!sender, Question); - if self.neighbours.length() > self.received { - state!(DONE) - } - else { - state!(ACTIVE) - }; - }, -) -``` +Quando ne riceve una, risponde `Yes`, poi ripete `Question` ai propri [[vicini di un'entità|vicini]] (tranne il mittente) e diventa `ACTIVE`. ### `ACTIVE` -Un [[entità]] `ACTIVE` è in attesa di risposte. +In attesa di risposte `Yes`. -Se la risposta è positiva, aggiunge il mittente allo spanning tree: -```rust -on_receive!( - Answer::Yes => { - self.neighbours_in_tree.insert(sender); - } -) -``` +Se la risposta è `Yes`, aggiunge il mittente allo [[spanning tree]]. -E poi la conteggia: -```rust -on_receive!( - Answer => { - self.received += 1 - if self.neighbours.length() > self.received { - state!(DONE); - } - }, -) -``` +Inoltre, [[contatore|conta]] ***tutti i messaggi*** che ha ricevuto, passando a `DONE` quando sono tante quante i vicini a cui ha inviato la domanda. -***Invece che rispondere alle domande, esse vengono interpretate come una risposta negativa***: -```rust -on_receive!( - Question => { - self.received += 1 - if self.neighbours.length() > self.received { - state!(DONE); - } - } -) -``` +> [!Tip] +> Le `Question` provenienti dai vicini sono considerate dei `No`. ### `DONE` -Un [[entità]] `DONE` sa tutte le informazioni possibili sui suoi vicini. - Non fa nient'altro. ## [[algoritmo corretto|Correttezza]] -Dato che: -1. Tutte le [[entità]] tranne il [[leader]] inviano esattamente un `Answer::Yes`. -2. L'invio e la ricezione di `Answer::Yes` [[arco di un grafo|collegano]] le due [[entità]] coinvolte. - -Allora, il [[grafo]] risultante è un [[albero]] [[grafo connesso|connesso]]. +> [!Success] +> +> Dato che: +> 1. Tutte le [[entità]] tranne il [[leader]] rispondono affermativamente una sola volta. +> 2. Una domanda e una risposta affermativa [[arco di un grafo|collegano]] le due [[entità]] coinvolte. +> +> Allora, il [[grafo]] risultante è un [[albero]] [[grafo connesso|connesso]]. ## [[costo computazionale distribuito|Costo computazionale]] -Questo protocollo è equivalente al [[flooding v3]], ma con le [[entità]] raggiunte che inviano anche una risposta. +| Costo | [[notazione O-grande]] | +|-|-| +| [[comunicazione]] | $O(Channels)$ | +| [[tempo]] | $O(Channels)$ | ### [[Comunicazione]] +Si osserva che questo [[algoritmo]] è simile al [[flooding v3]], ma con le ***[[entità]] raggiunte che inviano anche una risposta***. + #### Singoli scambi di messaggi Controlliamo che e quanti messaggi attraversano i [[canale di comunicazione|canali]]. -##### Scoperta di un nuovo nodo +##### Scoperta di una nuova [[entità]] -Un nodo invia `Question`, l'altro risponda con `Answer::Yes`. +Un'[[entità]] invia `Question`, l'altra risponde con `Yes`. Si verifica in: $$ \color{LightCoral} (2 \cdot (Entities - 1)) $$ -##### Incontro di due nodi conosciuti +##### Incontro di due [[entità]] conosciute -Entrambi i nodi inviano `Question` in tutti i casi che non sono quello precedente: +Entrambe inviano `Question` in tutti i casi che non sono quello precedente: $$ \color{SpringGreen} (2 \cdot (Channels - (Entities - 1))) $$ @@ -144,6 +100,14 @@ $$ \Large O(Channels) $$ -## Duale -Il duale di questo algoritmo è la [[leader election su grafo aciclico]]. +### [[Tempo]] + +Il [[grafo]] potrebbe essere un [[cammino]], che richiederebbe che ogni arco venisse attraversato, quindi sicuramente: +$$ +\Large O(Channels) +$$ + +## [[Duale]] + +- [[leader election su grafo aciclico]] diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree construction.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree construction.md index fb88444..2c77243 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree construction.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree construction.md @@ -7,19 +7,21 @@ Si vuole determinare uno [[spanning tree]] per il [[sistema distribuito]] in mod ## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]] - **[[restrizione di comunicazione|Comunicazione]]** - - [[iniziatore singolo]] + - [[full-duplex]] - **[[restrizione di affidabilità|Affidabilità]]** - [[affidabilità totale]] - **[[restrizione di topologia|Topologia]]** - [[grafo connesso]] - - [[full-duplex|grafo indiretto]] - **[[restrizione di tempo|Tempo]]** - [[ritardo di comunicazione illimitato]] + - [[risveglio singolo]] - [[terminazione locale]] ## [[algoritmo|Algoritmi]] -- [[shout protocol]] -- [[shout+ protocol]] -- [[traversal protocol]] -- [[traversal+ protocol]] +- **Flooding-based** + - [[shout protocol]] + - [[shout+ protocol]] +- **Depth-first-search-based** + - [[traversal protocol]] + - [[traversal+ protocol]] diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/token metaforico.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/token metaforico.md new file mode 100644 index 0000000..35e024d --- /dev/null +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/token metaforico.md @@ -0,0 +1,6 @@ +--- +aliases: + - token +--- + +[[Privilegio]] [[trasferibile]] posseduto da un'[[entità]] di un [[sistema distribuito]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal protocol.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal protocol.md index cefcc79..9f5cd44 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal protocol.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal protocol.md @@ -1,101 +1,62 @@ [[algoritmo]] di [[spanning tree construction]]. +## [[Comportamento]] + > [!Summary] > Le [[entità]] del grafo vengono visitate sequenzialmente attraverso una [[depth-first search]]. > > In ogni momento, a solo una [[entità]] è permesso eseguire codice, e questo permesso è tracciato attraverso un [[token metaforico]]. -## [[Comportamento]] - -L'[[entità]] [[iniziatore singolo|iniziatrice]] viene inizializzata a `LEADER`, mentre le altre vengono inizializzate a `IDLE`. - -==Questo modello è brutto...== - -### `visit_next(self)` - -Definiamo una funzione che si ripeterà più volte che invia il token al primo nodo non visitato dal nodo attuale, e quando non rimangono più token, notifica il nodo genitore. -```rust -impl Entity { - fn visit_next(self) { - if self.unvisited.length() > 0 { - state!(VISITED); - let entity = self.unvisited.pop(); - send!(entity, Token::Forward); - } - else { - if(self.parent) { - send!(self.parent, Token::Finished); - } - state!(DONE); - } - } -} -``` +Il [[leader]] viene inizializzato a `LEADER`, le altre [[entità]] vengono inizializzate a `IDLE`. ### `LEADER` -L'[[entità]] `LEADER` inizia la visita: -```rust -spontaneously!({ - self.unvisited = self.neighbours.clone(); - self.parent = null; - self.children = vec![]; - state!(VISITED); - self.visit_next(); -}) -``` +Inizia possedendo il [[token metaforico]]. + +Inizia la visita inviando il [[token metaforico|token]] al primo [[vicini di un'entità|vicino]] non visitato con il tag `Forward`, diventando `VISITED`. ### `IDLE` -Una [[entità]] `IDLE` è in attesa di ricevere il [[token metaforico]]: -```rust -on_receive!( - Token::Forward => { - self.parent = sender; - self.unvisited.remove(sender); - state!(VISITED); - self.visit_next(); - } -) -``` +In attesa di ricevere il [[token metaforico]]. + +Quando riceve il token `Forward`: +1. memorizza il mittente come genitore; +2. procede con la visita inviando il [[token metaforico|token]] al primo suo [[vicini di un'entità|vicino]] non visitato con il tag `Forward`; +3. diventa `VISITED`. ### `VISITED` -Una [[entità]] `VISITED` ha già ricevuto il [[token metaforico]] in precedenza, e se lo riceve, lo rifiuta con `Token::BackEdge`, che porta a una nuova visita da parte del mittente: -```rust -on_receive!( - Token::Forward => { - self.unvisited.remove(sender); - send!(sender, Token::BackEdge); - } - Token::BackEdge => { - self.visit_next(); - } -) -``` +Ha già ricevuto il [[token metaforico]] in precedenza. -Può anche ricevere un `Token::Finished`, che indica che l'[[entità]] mittente ha terminato l'elaborazione; essa viene aggiunta all'albero, e poi la visita continua: -```rust -on_receive!( - Token::Finished => { - self.children.push(sender); - self.visit_next(); - } -) -``` +Se lo riceve con il tag `Forward`, lo rimanda al mittente con il tag `AlreadyVisited`. + +Se lo riceve con il tag `AlreadyVisited`, invia il [[token metaforico|token]] al prossimo [[vicini di un'entità|vicino]] non visitato con il tag `Forward`. + +Se lo riceve con il tag `Backward`, aggiunge all'[[albero]] il mittente, e poi invia il [[token metaforico|token]] al prossimo [[vicini di un'entità|vicino]] non visitato con il tag `Forward`. + +Se riceve nuovamente il [[token metaforico|token]], e non ha altri vicini da visitare, restituisce il [[token metaforico|token]] al genitore, poi diventa `DONE`. ### `DONE` -Un [[entità]] `DONE` sa tutte le informazioni possibili sui suoi vicini. - Non fa nient'altro. ## [[algoritmo corretto|Correttezza]] -==...== +> [!Success] +> +> Dato che: +> 1. Tutte le [[entità]] tranne il [[leader]] inviano `Finished` una sola volta. +> 2. Un `Forward` e un `Backward` [[arco di un grafo|collegano]] le due [[entità]] coinvolte. +> +> Allora, il [[grafo]] risultante è un [[albero]] [[grafo connesso|connesso]]. ## [[costo computazionale distribuito|Costo computazionale]] +| Costo | [[notazione O-grande]] | +|-|-| +| [[comunicazione]] | $O(Channels)$ | +| [[tempo]] | $O(Channels)$ | + ### [[Comunicazione]] Tutti i [[canale di comunicazione|canali]] vengono visitati due volte, uno da `Token::Forward`, e uno da `Token::BackEdge` o `Token::Finished`: @@ -108,9 +69,6 @@ $$ \Large O(Channels) $$ -> [!Note] -> Coincide strettamente con il lower bound. - ### [[Tempo]] Essendo la visita del grafo sequenziale, il tempo richiesto coincide con il costo di comunicazione: @@ -122,6 +80,3 @@ In [[notazione asintotica]], è: $$ \Large O(Channels) $$ - -> [!Warning] -> Non coincide con il lower bound! diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal+ protocol.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal+ protocol.md index cd3757c..8d1d7cf 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal+ protocol.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal+ protocol.md @@ -1,126 +1,66 @@ [[algoritmo]] di [[spanning tree construction]] che migliora il [[traversal protocol]]. +## [[Comportamento]] + > [!Summary] > Le [[entità]] del grafo vengono visitate sequenzialmente attraverso una [[depth-first search]]. > > In ogni momento, a solo una [[entità]] è permesso ***visitarne altre***, e questo permesso è tracciato attraverso un [[token metaforico]]. -## [[Comportamento]] - -L'[[entità]] [[iniziatore singolo|iniziatrice]] viene inizializzata a `LEADER`, mentre le altre vengono inizializzate a `IDLE`. - -==Questo modello è brutto e sbagliato nel caso ci sia un grafo di un nodo solo...== - -### `visit_next(self)` - -Definiamo una funzione che si ripeterà più volte che invia il token al primo nodo non visitato dal nodo attuale, e quando non rimangono più token, notifica il nodo genitore. -```rust -impl Entity { - fn visit_next(self) { - if self.unvisited.length() > 0 { - state!(VISITED); - let entity = self.unvisited.pop(); - send!(entity, Token::Forward); - } - else { - if(self.parent) { - send!(self.parent, Token::Finished); - } - state!(DONE); - } - } -} -``` - ### `LEADER` -L'[[entità]] `LEADER` ***notifica tutti i suoi vicini che è stata visitata***: -```rust -spontaneously!({ - self.unacknowledged = self.neighbours.clone(); - self.unvisited = self.neighbours.clone(); - self.parent = null; - self.children = vec![]; - send!(self.unvisited, Visited::Sender); -}) -``` +Inizia possedendo il [[token metaforico]]. -***Quando tutti i vicini hanno risposto, inizia la visita:*** -```rust -on_receive!( - Visited::Receiver => { - self.unacknowledged.remove(sender); - if self.unacknowledged.length() == 0 { - state!(VISITED); - self.visit_next(); - } - } -) -``` +***Parte notificando tutti i suoi [[vicini di un'entità|vicini]] di possedere il token con il tag `Own`.*** + +Poi, inizia la visita inviando il [[token metaforico|token]] al primo [[vicini di un'entità|vicino]] non visitato con il tag `Forward`, diventando `VISITED`. ### `IDLE` -Una [[entità]] `IDLE` è in attesa di ricevere il [[token metaforico]]. -***Quando lo riceve, notifica tutti i vicini della cosa, come fatto dal leader***: -```rust -spontaneously!({ - self.unacknowledged = self.neighbours.clone(); - self.unvisited = self.neighbours.clone(); - self.children = vec![]; -}) +In attesa di ricevere il [[token metaforico]], ***e in ascolto per notifiche `Own`***. -on_receive!( - Token::Forward => { - self.parent = sender; - self.unvisited.remove(sender); - send!(self.unvisited, Visited::Sender); - } +***Quando riceve una notifica `Own`***: +1. ***esclude il mittente dai [[vicini di un'entità|vicini]] da visitare.*** - Visited::Receiver => { - self.unacknowledged.remove(sender); - if self.unacknowledged.length() == 0 { - state!(VISITED); - self.visit_next(); - } - } - - Visited::Sender => { - self.unvisited.remove(sender); - send!(sender, Visited::Receiver); - } -) -``` +Quando riceve il token `Forward`: +1. memorizza il mittente come genitore; +2. notifica tutti i [[vicini di un'entità|vicini]] con il tag `Own`; +3. procede con la visita inviando il [[token metaforico|token]] al primo suo [[vicini di un'entità|vicino]] non visitato con il tag `Forward`; +4. diventa `VISITED`. ### `VISITED` -Una [[entità]] `VISITED` ha già ricevuto il [[token metaforico]] in precedenza. +Ha già ricevuto il [[token metaforico]] in precedenza. -Può ricevere ***solo*** un `Token::Finished`, che indica che l'[[entità]] mittente ha terminato l'elaborazione; essa viene aggiunta all'albero, e poi la visita continua: -```rust -on_receive!( - Token::Finished => { - self.children.push(sender); - self.visit_next(); - } -) -``` +> [!Note] +> ***È impossibile che riceva `Forward` o `AlreadyVisited` per via del meccanismo di `Own`.*** -***Non è possibile che riceva `Visited::Sender`, in quanto è già stata rimossa da `self.unvisited`.*** +Se lo riceve con il tag `Backward`, aggiunge all'[[albero]] il mittente, e poi invia il [[token metaforico|token]] al prossimo [[vicini di un'entità|vicino]] non visitato con il tag `Forward`. -***Per lo stesso motivo, `Token::BackEdge` sono stati rimossi dall'algoritmo.*** +Se riceve nuovamente il [[token metaforico|token]], e non ha altri vicini da visitare, restituisce il [[token metaforico|token]] al genitore, poi diventa `DONE`. ### `DONE` -Un [[entità]] `DONE` sa tutte le informazioni possibili sui suoi vicini. - Non fa nient'altro. + ## [[algoritmo corretto|Correttezza]] -==...== +> [!Success] +> +> Dato che: +> 1. Tutte le [[entità]] tranne il [[leader]] inviano `Finished` una sola volta. +> 2. Un `Forward` e un `Backward` [[arco di un grafo|collegano]] le due [[entità]] coinvolte. +> +> Allora, il [[grafo]] risultante è un [[albero]] [[grafo connesso|connesso]]. ## [[costo computazionale distribuito|Costo computazionale]] +| Costo | [[notazione O-grande]] | +|-|-| +| [[comunicazione]] | $O(Channels)$ | +| [[tempo]] | $O(Channels)$ | + ### [[Comunicazione]] Tutti i [[canale di comunicazione|canali]] vengono visitati due volte, uno da `Visited::Sender`, e uno da `Visited::Receiver`: @@ -156,7 +96,7 @@ $$ $$ > [!Note] -> Coincide ***asintoticamente*** con il lower bound. +> Coincide ***asintoticamente*** con il [[notazione Ω-grande|lower bound]] della [[spanning tree construction]]. ### [[Tempo]] @@ -185,4 +125,4 @@ $$ $$ > [!Note] -> ***Coincide asintoticamente*** con il lower bound. +> ***Coincide asintoticamente*** con il [[notazione Ω-grande|lower bound]] della [[spanning tree construction]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/★ spanning tree.canvas b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/★ spanning tree.canvas index 25644d2..81d75cd 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/★ spanning tree.canvas +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/★ spanning tree.canvas @@ -1,22 +1,20 @@ { "nodes":[ - {"id":"f48243a62762bc6a","type":"group","x":780,"y":-1300,"width":920,"height":1000,"color":"5","label":"shout protocol"}, - {"id":"a7b374601b504754","type":"group","x":780,"y":-180,"width":920,"height":1000,"color":"5","label":"traversal protocol"}, + {"id":"f48243a62762bc6a","type":"group","x":780,"y":-1300,"width":920,"height":1000,"label":"shout protocol"}, + {"id":"a7b374601b504754","type":"group","x":780,"y":-180,"width":920,"height":1000,"label":"traversal protocol"}, {"id":"e4db85d4dd9cb928","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree construction.md","x":-320,"y":-1280,"width":960,"height":2080}, {"id":"42f2908da34c9d4d","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree.md","x":-40,"y":-1840,"width":400,"height":400}, {"id":"975c4e916151d0da","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout protocol.md","x":800,"y":-1280,"width":400,"height":960}, - {"id":"6affd8da4f6f750a","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v3.md","x":800,"y":-1840,"width":400,"height":400}, {"id":"1942e37fcdb3b040","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout+ protocol.md","x":1280,"y":-1280,"width":400,"height":960}, {"id":"7f269696427c2c8e","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal protocol.md","x":800,"y":-160,"width":400,"height":960}, {"id":"b59b4cc2872c280d","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/broadcast tree construction.md","x":-320,"y":960,"width":960,"height":960}, {"id":"1ccd23a5dd951996","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/multiple spanning tree construction.md","x":-320,"y":2080,"width":960,"height":960}, - {"id":"899da42b0ed0d514","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/selective spanning tree transform.md","x":800,"y":2080,"width":400,"height":400}, {"id":"e12fb2819e6c8318","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal+ protocol.md","x":1280,"y":-160,"width":400,"height":960}, + {"id":"899da42b0ed0d514","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/selective spanning tree transform.md","x":800,"y":2080,"width":400,"height":400}, {"id":"289f00f041183fee","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/multiple spanning tree transform.md","x":800,"y":2640,"width":400,"height":400} ], "edges":[ {"id":"0b872430734f1f17","fromNode":"42f2908da34c9d4d","fromSide":"bottom","toNode":"e4db85d4dd9cb928","toSide":"top"}, - {"id":"0987f6cc5f169aff","fromNode":"6affd8da4f6f750a","fromSide":"bottom","toNode":"975c4e916151d0da","toSide":"top"}, {"id":"1def3d7fb4e72c80","fromNode":"975c4e916151d0da","fromSide":"right","toNode":"1942e37fcdb3b040","toSide":"left"}, {"id":"d6cdc039af788cc2","fromNode":"e4db85d4dd9cb928","fromSide":"right","toNode":"f48243a62762bc6a","toSide":"left"}, {"id":"10b12980f5c61ace","fromNode":"e4db85d4dd9cb928","fromSide":"right","toNode":"a7b374601b504754","toSide":"left"}, diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in alberi.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in alberi.md index 9386f58..7ce2af8 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in alberi.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in alberi.md @@ -7,16 +7,17 @@ Si vuole calcolare qualcosa più efficientemente possibile, distribuendo gli [[9 ## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]] - **[[restrizione di comunicazione|Comunicazione]]** - - ***[[iniziatore singolo]]*** - - ***[[identificatori univoci]]*** + - [[full-duplex]] - **[[restrizione di affidabilità|Affidabilità]]** - [[affidabilità totale]] - **[[restrizione di topologia|Topologia]]** - - [[full-duplex|grafo indiretto]] - [[grafo connesso]] + - ***[[identificatori univoci]]*** - ***[[albero]]*** - **[[restrizione di tempo|Tempo]]** - [[ritardo di comunicazione illimitato]] + - [[risveglio singolo]] + - [[terminazione locale]] ## [[algoritmo|Algoritmi]] diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in grafi aciclici.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in grafi aciclici.md index eec107f..3e9bcbf 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in grafi aciclici.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in grafi aciclici.md @@ -7,15 +7,16 @@ Si vuole calcolare qualcosa più efficientemente possibile, distribuendo gli [[9 ## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]] - **[[restrizione di comunicazione|Comunicazione]]** - - ***[[iniziatori multipli]]*** + - [[full-duplex|grafo indiretto]] - **[[restrizione di affidabilità|Affidabilità]]** - [[affidabilità totale]] - **[[restrizione di topologia|Topologia]]** - - [[full-duplex|grafo indiretto]] - [[grafo connesso]] - ***[[grafo aciclico]]*** - **[[restrizione di tempo|Tempo]]** - [[ritardo di comunicazione illimitato]] + - ***[[risveglio parziale]]*** + - [[terminazione locale]] ## [[algoritmo|Algoritmi]] diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per alberi.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per alberi.md index 94fb613..0dc18b3 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per alberi.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per alberi.md @@ -1,12 +1,14 @@ -[[algoritmo]] di [[computazione in grafi aciclici]]. - -> [!Summary] -> Si distribuisce un dato a ogni [[entità]], che effettua la computazione per i dati dei suoi figli e ne invia il risultato al genitore. -> -> Processati tutti i dati, viene effettuato un [[broadcast problem|broadcast]] ***dalla radice-[[leader]]*** per distribuire i risultati dell'algoritmo a tutti. +[[algoritmo]] di [[computazione in alberi]]. ## [[Comportamento]] +> [!Summary] +> Si distribuisce un dato a ogni [[entità]]. +> +> Ogni [[entità]] effettua la computazione richiesta con il suo dato, più i dati ricevuti dai figli, inviando successivamente il risultato al genitore. +> +> Una volta che la [[radice di un albero|radice]] ha processato i propri dati, effettua un [[broadcast problem|broadcast]] per distribuire il [[risultato]] a tutti. + ### ***`LEADER`*** Invia un ***[[broadcast problem|broadcast]]*** a tutte le altre [[entità]], poi tutte passano ad `ACTIVE`. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computation in trees.canvas b/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computazione.canvas similarity index 52% rename from 9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computation in trees.canvas rename to 9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computazione.canvas index a97040b..80deb23 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computation in trees.canvas +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computazione.canvas @@ -1,21 +1,14 @@ { "nodes":[ - {"id":"f10431539991943d","type":"group","x":620,"y":-500,"width":440,"height":2040,"color":"5","label":"Saturazione"}, + {"id":"f10431539991943d","type":"group","x":620,"y":-500,"width":440,"height":2040,"label":"Saturazione"}, {"id":"d9e8c63362870000","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in grafi aciclici.md","x":-480,"y":-480,"width":960,"height":960}, {"id":"eac3f8232a170480","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per grafi aciclici.md","x":640,"y":-480,"width":400,"height":960}, {"id":"da6b01f674dba080","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in alberi.md","x":-480,"y":560,"width":960,"height":960}, - {"id":"c217a97b6c1f113a","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per alberi.md","x":640,"y":560,"width":400,"height":960}, - {"id":"39e8d6989eaff333","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/★ broadcast.canvas","x":-1280,"y":80,"width":400,"height":400}, - {"id":"4295118739ed5400","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/★ spanning tree.canvas","x":-1280,"y":560,"width":400,"height":400}, - {"id":"810c6eab5eed44f9","type":"text","text":"# +","x":-720,"y":480,"width":80,"height":80} + {"id":"c217a97b6c1f113a","type":"file","file":"9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per alberi.md","x":640,"y":560,"width":400,"height":960} ], "edges":[ {"id":"3cc5d31160347382","fromNode":"d9e8c63362870000","fromSide":"bottom","toNode":"da6b01f674dba080","toSide":"top","fromEnd":"arrow"}, {"id":"a42fc5dd73c9697e","fromNode":"d9e8c63362870000","fromSide":"right","toNode":"eac3f8232a170480","toSide":"left"}, - {"id":"a4aa89137c417d7c","fromNode":"da6b01f674dba080","fromSide":"right","toNode":"c217a97b6c1f113a","toSide":"left"}, - {"id":"e8ceea408a7b8113","fromNode":"39e8d6989eaff333","fromSide":"right","toNode":"810c6eab5eed44f9","toSide":"left"}, - {"id":"9af232a35509d74c","fromNode":"4295118739ed5400","fromSide":"right","toNode":"810c6eab5eed44f9","toSide":"left"}, - {"id":"081976471054dfad","fromNode":"810c6eab5eed44f9","fromSide":"right","toNode":"d9e8c63362870000","toSide":"left"}, - {"id":"b970bd9a8d0081cd","fromNode":"810c6eab5eed44f9","fromSide":"right","toNode":"da6b01f674dba080","toSide":"left"} + {"id":"a4aa89137c417d7c","fromNode":"da6b01f674dba080","fromSide":"right","toNode":"c217a97b6c1f113a","toSide":"left"} ] } \ No newline at end of file diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su albero.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su albero.md index 8ef2b09..2572af3 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su albero.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su albero.md @@ -1,4 +1,6 @@ [[algoritmo]] di [[leader election]] per [[albero|alberi]]. +## [[Comportamento]] + > [!Summary] > La radice diventa automaticamente il [[leader]]. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello all-the-way.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello all-the-way.md index 949f6d0..84389c3 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello all-the-way.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello all-the-way.md @@ -1,15 +1,17 @@ [[algoritmo]] di [[leader election]] su [[anello]]. +## [[Comportamento]] + > [!Summary] > Ogni [[entità]] invia il suo [[identificatore]] alla successiva, e gli inoltra gli identificatori ricevuti dalla precedente, tenendo traccia dell'identificatore minimo ricevuto. ## [[algoritmo corretto|Correttezza]] -> [!Error] +> [!Failure] > > L'algoritmo non giungerà mai a termine! > -> Sono necessarie restrizioni aggiuntive, vedi: -> - [[leader election su anello di dimensione conosciuta all-the-way]] -> - [[leader election su anello first-in-first-out all-the-way]] +Sono necessarie restrizioni aggiuntive, vedi: +- [[leader election su anello di dimensione conosciuta all-the-way]] +- [[leader election su anello first-in-first-out all-the-way]] diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello as-far-as-it-can.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello as-far-as-it-can.md index db0de3c..65c0164 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello as-far-as-it-can.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello as-far-as-it-can.md @@ -1,5 +1,7 @@ [[algoritmo]] di [[leader election]] su [[anello]]. +## [[Comportamento]] + > [!Summary] > > Ogni [[entità]] riceve identificatori dalla precedente, tenendo traccia dell'identificatore minimo ricevuto, e inoltra alla successiva qualsiasi cambiamento al proprio minimo. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello controlled-distance.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello controlled-distance.md index ad3c6f4..9df31e7 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello controlled-distance.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello controlled-distance.md @@ -1,5 +1,7 @@ [[algoritmo]] di [[leader election]] su [[anello]]. +## [[Comportamento]] + > [!Summary] > Effettua iterazioni in cui ogni [[entità]] che potrebbe diventare potenzialmente [[leader]] diffonde il proprio [[identificatore]] a tutte le altre entro una certa distanza. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello di dimensione conosciuta all-the-way.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello di dimensione conosciuta all-the-way.md index ec806a9..2f55d73 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello di dimensione conosciuta all-the-way.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello di dimensione conosciuta all-the-way.md @@ -1,5 +1,7 @@ [[algoritmo]] di [[leader election]] che risolve il problema di terminazione della [[leader election su anello all-the-way]] ***introducendo una [[restrizione di topologia]] aggiuntiva.*** +## [[Comportamento]] + > [!Summary] > Ogni [[entità]] invia il suo [[identificatore]] alla successiva, e gli inoltra gli identificatori ricevuti dalla precedente, tenendo traccia dell'identificatore minimo ricevuto, ***fino a quando non ne conosce tanti quante le [[entità]] del [[sistema distribuito]]***. diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su grafo aciclico.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su grafo aciclico.md index 2d596d7..b5c862b 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su grafo aciclico.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su grafo aciclico.md @@ -1,8 +1,10 @@ [[algoritmo]] di [[leader election]] su [[grafo aciclico|grafi aciclici]]. +## [[Comportamento]] + > [!Summary] > Usa la [[tecnica di saturazione per grafi aciclici]] per trovare l'entità con [[identificatore]] minore, che viene poi scelta come [[leader]]. -## Duale +## [[Duale]] -Il duale di questo algoritmo è lo [[shout+ protocol]]. \ No newline at end of file +- [[shout+ protocol]] diff --git a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election.md b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election.md index b0f5e38..321a1d7 100644 --- a/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election.md +++ b/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election.md @@ -7,17 +7,17 @@ Si vuole scegliere un'[[entità]] che diventerà il [[leader]] per un [[algoritm ## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]] - **[[restrizione di comunicazione|Comunicazione]]** - - [[iniziatori multipli]] - - [[identificatori univoci]] - - **[[Angluin 1980]]**: questo problema è irrisolvibile senza identificatori univoci + - [[half-duplex]] - **[[restrizione di affidabilità|Affidabilità]]** - [[affidabilità totale]] - **[[restrizione di topologia|Topologia]]** - - [[full-duplex|grafo indiretto]] - [[grafo connesso]] - - [[half-duplex|grafo diretto]] + - [[identificatori univoci]] + - il teorema [[Angluin 1980]] li pone come requisito per la risolvibilità - **[[restrizione di tempo|Tempo]]** - [[ritardo di comunicazione unitario]] + - [[risveglio parziale]] + - [[terminazione locale]] ## [[algoritmo|Algoritmi]] diff --git a/9 - Algoritmi distribuiti/★ algoritmi distribuiti.md b/9 - Algoritmi distribuiti/★ algoritmi distribuiti.md index bf3d3e8..66273d3 100644 --- a/9 - Algoritmi distribuiti/★ algoritmi distribuiti.md +++ b/9 - Algoritmi distribuiti/★ algoritmi distribuiti.md @@ -8,6 +8,6 @@ Appunti del corso di ***Algoritmi distribuiti***, tenuto da [[Manuela Montangero 1. [[★ concetti.canvas|★ concetti]] 2. [[★ broadcast.canvas|★ broadcast]] 3. [[★ spanning tree.canvas|★ spanning tree]] - 4. [[★ computation in trees.canvas|★ computation in trees]] + 4. [[★ computazione.canvas|★ computation in trees]] 5. [[★ leader election.canvas|★ leader election]] 6. [[★ routing.canvas|★ routing]] diff --git a/steffo-file-index.json b/steffo-file-index.json index b4e8b1d..922fae5 100644 --- a/steffo-file-index.json +++ b/steffo-file-index.json @@ -6,62 +6,66 @@ "★ fondamenti di machine learning": "9 - Fondamenti di machine learning/★ fondamenti di machine learning.md", "★ cloud and edge computing": "9 - Cloud and edge computing/★ cloud and edge computing.md", "★ algoritmi distribuiti": "9 - Algoritmi distribuiti/★ algoritmi distribuiti.md", - "min-hop routing": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/min-hop routing.md", + "two steps": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/two steps.md", + "teorema innominato": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/teorema innominato.md", + "leader election con fallimenti su grafo completo": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/leader election con fallimenti su grafo completo.md", + "ft-broad-election": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/ft-broad-election.md", + "edge-broadcast-possibility": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/edge-broadcast-possibility.md", + "consenso con fallimenti su grafo completo": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/consenso con fallimenti su grafo completo.md", "★ routing": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/★ routing.canvas", "tempo di ricerca": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/tempo di ricerca.md", "routing": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/routing.md", "routing table": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/routing table.md", "routing memory": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/routing memory.md", "router": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/router.md", + "min-hop routing": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/min-hop routing.md", "funzione di routing": "9 - Algoritmi distribuiti/3 - Computazione distribuita/6 - Routing/funzione di routing.md", - "teorema innominato": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/teorema innominato.md", - "two steps": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/two steps.md", - "leader election con fallimenti su grafo completo": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/leader election con fallimenti su grafo completo.md", - "ft-broad-election": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/ft-broad-election.md", - "edge-broadcast-possibility": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/edge-broadcast-possibility.md", - "consenso con fallimenti su grafo completo": "9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Guasti/consenso con fallimenti su grafo completo.md", - "tecnica di saturazione per grafi aciclici": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per grafi aciclici.md", - "computazione in grafi aciclici": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in grafi aciclici.md", - "computazione in alberi": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in alberi.md", - "★ computation in trees": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computation in trees.canvas", - "tecnica di saturazione per alberi": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per alberi.md", - "floodmax": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/FloodMax.md", "★ leader election": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/★ leader election.canvas", "leader": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader.md", - "leader election su anello controlled-distance": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello controlled-distance.md", "leader election": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election.md", "leader election su grafo aciclico": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su grafo aciclico.md", - "leader election su anello as-far-as-it-can": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello as-far-as-it-can.md", "leader election su anello di dimensione conosciuta all-the-way": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello di dimensione conosciuta all-the-way.md", + "leader election su anello controlled-distance": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello controlled-distance.md", + "leader election su anello as-far-as-it-can": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello as-far-as-it-can.md", "leader election su anello all-the-way": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello all-the-way.md", "leader election su albero": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su albero.md", + "floodmax": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/FloodMax.md", "angluin 1980": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/Angluin 1980.md", - "spanning tree construction": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree construction.md", - "broadcast tree construction": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/broadcast tree construction.md", - "spanning tree": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree.md", + "★ computazione": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computazione.canvas", + "tecnica di saturazione per grafi aciclici": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per grafi aciclici.md", + "tecnica di saturazione per alberi": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per alberi.md", + "computazione in grafi aciclici": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in grafi aciclici.md", + "computazione in alberi": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in alberi.md", + "token metaforico": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/token metaforico.md", "★ spanning tree": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/★ spanning tree.canvas", "traversal+ protocol": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal+ protocol.md", "traversal protocol": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal protocol.md", + "spanning tree": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree.md", + "spanning tree construction": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree construction.md", "shout+ protocol": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout+ protocol.md", - "multiple spanning tree transform": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/multiple spanning tree transform.md", - "selective spanning tree transform": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/selective spanning tree transform.md", "shout protocol": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout protocol.md", + "selective spanning tree transform": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/selective spanning tree transform.md", + "multiple spanning tree transform": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/multiple spanning tree transform.md", "multiple spanning tree construction": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/multiple spanning tree construction.md", - "wake-up problem": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/wake-up problem.md", + "broadcast tree construction": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/broadcast tree construction.md", "★ broadcast": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/★ broadcast.canvas", + "wake-up problem": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/wake-up problem.md", "one step": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/one step.md", "flooding v3": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v3.md", "flooding v2": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v2.md", - "broadcast problem": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast problem.md", "flooding v1": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v1.md", - "restrizione di affidabilità": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di affidabilità.md", - "tick": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/tick.md", - "terminazione locale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md", + "broadcast problem": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast problem.md", + "no failure detection": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/no failure detection.md", + "risveglio singolo": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio singolo.md", + "risveglio totale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio totale.md", + "risveglio parziale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio parziale.md", + "terminazione ignorata": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione ignorata.md", + "vicini di un'entità": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/vicini di un'entità.md", "★ concetti": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/★ concetti.canvas", "timeout": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/timeout.md", + "tick": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/tick.md", + "terminazione locale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md", "terminazione globale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md", - "iniziatori multipli": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatori multipli.md", - "iniziatore singolo": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatore singolo.md", "stato di un'entità": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/stato di un'entità.md", "sistema sequenziale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema sequenziale.md", "sistema parallelo": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema parallelo.md", @@ -75,13 +79,11 @@ "restrizione di topologia": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di topologia.md", "restrizione di tempo": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di tempo.md", "restrizione di comunicazione": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di comunicazione.md", + "restrizione di affidabilità": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di affidabilità.md", "personale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/personale.md", "messaggio": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/messaggio.md", "interno": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/interno.md", "insieme degli stati di un'entità": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/insieme degli stati di un'entità.md", - "condiviso": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/condiviso.md", - "clock": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/clock.md", - "affidabilità totale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md", "individuale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/individuale.md", "impulso spontaneo": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/impulso spontaneo.md", "identificatori univoci": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/identificatori univoci.md", @@ -95,35 +97,36 @@ "criterio di costo asincrono": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/criterio di costo asincrono.md", "costo computazionale distribuito": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/costo computazionale distribuito.md", "consegna garantita": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/consegna garantita.md", + "condiviso": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/condiviso.md", "comunicazione": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/comunicazione.md", "comportamento": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/comportamento.md", + "clock": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/clock.md", "channel failure detection": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/channel failure detection.md", - "ambiente": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ambiente.md", - "affidabilità parziale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md", "canale di comunicazione": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/canale di comunicazione.md", "azione": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/azione.md", "assioma dell'orientamento locale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/assioma dell'orientamento locale.md", "assioma del ritardo di comunicazione": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/assioma del ritardo di comunicazione.md", + "ambiente": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ambiente.md", + "affidabilità totale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità totale.md", + "affidabilità parziale": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/affidabilità parziale.md", "★ algoritmi di approssimazione": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/★ algoritmi di approssimazione.canvas", - "vertex cover problem": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/vertex cover problem.md", "vertex cover": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/vertex cover.md", - "proprietà triangolare per il costo degli archi": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/proprietà triangolare per il costo degli archi.md", + "vertex cover problem": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/vertex cover problem.md", "soluzione approssimata": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/soluzione approssimata.md", - "approssimazione del problema del commesso viaggiatore": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/approssimazione del problema del commesso viaggiatore.md", "relax and round": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/relax and round.md", "relax and round per vertex cover problem": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/relax and round per vertex cover problem.md", + "proprietà triangolare per il costo degli archi": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/proprietà triangolare per il costo degli archi.md", "minimum perfect matching": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/minimum perfect matching.md", - "algoritmo di approssimazione": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/algoritmo di approssimazione.md", "fattore di approssimazione": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/fattore di approssimazione.md", - "tesi di church-turing": "9 - Algoritmi distribuiti/1 - Problemi/tesi di Church-Turing.md", - "problema p e np": "9 - Algoritmi distribuiti/1 - Problemi/problema P e NP.md", - "verifica": "9 - Algoritmi distribuiti/1 - Problemi/verifica.md", + "approssimazione del problema del commesso viaggiatore": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/approssimazione del problema del commesso viaggiatore.md", + "algoritmo di approssimazione": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/algoritmo di approssimazione.md", "★ problemi": "9 - Algoritmi distribuiti/1 - Problemi/★ problemi.canvas", - "struttura dati": "9 - Algoritmi distribuiti/1 - Problemi/struttura dati.md", + "verifica": "9 - Algoritmi distribuiti/1 - Problemi/verifica.md", + "tesi di church-turing": "9 - Algoritmi distribuiti/1 - Problemi/tesi di Church-Turing.md", "tempo": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/tempo.md", + "struttura dati": "9 - Algoritmi distribuiti/1 - Problemi/struttura dati.md", "spazio": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/spazio.md", "soluzione": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione.md", - "classe di problemi np-difficili": "9 - Algoritmi distribuiti/1 - Problemi/classe di problemi NP-difficili.md", "soluzione ottima": "9 - Algoritmi distribuiti/1 - Problemi/soluzione ottima.md", "satisfability": "9 - Algoritmi distribuiti/1 - Problemi/satisfability.md", "riduzione di karp": "9 - Algoritmi distribuiti/1 - Problemi/riduzione di Karp.md", @@ -139,17 +142,16 @@ "problema del commesso viaggiatore": "9 - Algoritmi distribuiti/1 - Problemi/problema del commesso viaggiatore.md", "problema decisionale": "9 - Algoritmi distribuiti/1 - Problemi/problema decisionale.md", "problema computazionale": "9 - Algoritmi distribuiti/1 - Problemi/problema computazionale.md", - "parametro": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro.md", + "problema p e np": "9 - Algoritmi distribuiti/1 - Problemi/problema P e NP.md", "polinomiale": "9 - Algoritmi distribuiti/1 - Problemi/polinomiale.md", + "parametro": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro.md", "ottimizzazione → decisionale": "9 - Algoritmi distribuiti/1 - Problemi/ottimizzazione → decisionale.md", "notazione ω-piccola": "9 - Algoritmi distribuiti/1 - Problemi/notazione ω-piccola.md", - "notazione o-piccola": "9 - Algoritmi distribuiti/1 - Problemi/notazione o-piccola.md", "notazione ω-grande": "9 - Algoritmi distribuiti/1 - Problemi/notazione Ω-grande.md", "notazione θ-grande": "9 - Algoritmi distribuiti/1 - Problemi/notazione Θ-grande.md", + "notazione o-piccola": "9 - Algoritmi distribuiti/1 - Problemi/notazione o-piccola.md", "notazione asintotica": "9 - Algoritmi distribuiti/1 - Problemi/notazione asintotica.md", "notazione o-grande": "9 - Algoritmi distribuiti/1 - Problemi/notazione O-grande.md", - "circuito di un grafo": "9 - Algoritmi distribuiti/1 - Problemi/circuito di un grafo.md", - "criterio di costo": "9 - Algoritmi distribuiti/1 - Problemi/criterio di costo.md", "logaritmo in base 2": "9 - Algoritmi distribuiti/1 - Problemi/logaritmo in base 2.md", "istanza": "9 - Algoritmi distribuiti/1 - Problemi/istanza.md", "istanza positiva": "9 - Algoritmi distribuiti/1 - Problemi/istanza positiva.md", @@ -160,52 +162,53 @@ "funzione guadagno": "9 - Algoritmi distribuiti/1 - Problemi/funzione guadagno.md", "funzione costo": "9 - Algoritmi distribuiti/1 - Problemi/funzione costo.md", "dimensione dell'input": "9 - Algoritmi distribuiti/1 - Problemi/dimensione dell'input.md", + "criterio di costo": "9 - Algoritmi distribuiti/1 - Problemi/criterio di costo.md", "criterio di costo uniforme": "9 - Algoritmi distribuiti/1 - Problemi/criterio di costo uniforme.md", "criterio di costo logaritmico": "9 - Algoritmi distribuiti/1 - Problemi/criterio di costo logaritmico.md", "costo computazionale": "9 - Algoritmi distribuiti/1 - Problemi/costo computazionale.md", "classe di problemi p": "9 - Algoritmi distribuiti/1 - Problemi/classe di problemi P.md", "classe di problemi np": "9 - Algoritmi distribuiti/1 - Problemi/classe di problemi NP.md", + "classe di problemi np-difficili": "9 - Algoritmi distribuiti/1 - Problemi/classe di problemi NP-difficili.md", "classe di problemi np-completi": "9 - Algoritmi distribuiti/1 - Problemi/classe di problemi NP-completi.md", + "circuito di un grafo": "9 - Algoritmi distribuiti/1 - Problemi/circuito di un grafo.md", "certificato per un'istanza": "9 - Algoritmi distribuiti/1 - Problemi/certificato per un'istanza.md", "algoritmo": "9 - Algoritmi distribuiti/1 - Problemi/algoritmo.md", "algoritmo corretto": "9 - Algoritmi distribuiti/1 - Problemi/algoritmo corretto.md", "★ sviluppo di software sicuro": "8 - Sviluppo di software sicuro/★ sviluppo di software sicuro.md", - "principio del minimo privilegio": "8 - Sviluppo di software sicuro/1 - Terminologia/principio del minimo privilegio.md", - "principio del silenzio": "8 - Sviluppo di software sicuro/1 - Terminologia/principio del silenzio.md", - "vettore di attacco": "8 - Sviluppo di software sicuro/1 - Terminologia/vettore di attacco.md", "vulnerabilità": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/vulnerabilità.md", + "vettore di attacco": "8 - Sviluppo di software sicuro/1 - Terminologia/vettore di attacco.md", "superficie di attacco": "8 - Sviluppo di software sicuro/1 - Terminologia/superficie di attacco.md", "sicurezza": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/sicurezza.md", "sicurezza informatica": "8 - Sviluppo di software sicuro/1 - Terminologia/sicurezza informatica.md", "rischio": "8 - Sviluppo di software sicuro/1 - Terminologia/rischio.md", + "principio del silenzio": "8 - Sviluppo di software sicuro/1 - Terminologia/principio del silenzio.md", + "principio del minimo privilegio": "8 - Sviluppo di software sicuro/1 - Terminologia/principio del minimo privilegio.md", "prestazioni": "8 - Sviluppo di software sicuro/1 - Terminologia/prestazioni.md", - "meccanismo di sicurezza": "8 - Sviluppo di software sicuro/1 - Terminologia/meccanismo di sicurezza.md", "politica di sicurezza": "8 - Sviluppo di software sicuro/1 - Terminologia/politica di sicurezza.md", "minaccia": "8 - Sviluppo di software sicuro/1 - Terminologia/minaccia.md", + "meccanismo di sicurezza": "8 - Sviluppo di software sicuro/1 - Terminologia/meccanismo di sicurezza.md", "meccanismo di rilevazione": "8 - Sviluppo di software sicuro/1 - Terminologia/meccanismo di rilevazione.md", "meccanismo di reazione": "8 - Sviluppo di software sicuro/1 - Terminologia/meccanismo di reazione.md", "meccanismo di prevenzione": "8 - Sviluppo di software sicuro/1 - Terminologia/meccanismo di prevenzione.md", - "input invalido": "8 - Sviluppo di software sicuro/1 - Terminologia/input invalido.md", - "input lecito": "8 - Sviluppo di software sicuro/1 - Terminologia/input lecito.md", - "input illecito": "8 - Sviluppo di software sicuro/1 - Terminologia/input illecito.md", "input valido": "8 - Sviluppo di software sicuro/1 - Terminologia/input valido.md", - "distinguisher": "8 - Sviluppo di software sicuro/1 - Terminologia/distinguisher.md", + "input lecito": "8 - Sviluppo di software sicuro/1 - Terminologia/input lecito.md", + "input invalido": "8 - Sviluppo di software sicuro/1 - Terminologia/input invalido.md", + "input illecito": "8 - Sviluppo di software sicuro/1 - Terminologia/input illecito.md", "funzionalità": "8 - Sviluppo di software sicuro/1 - Terminologia/funzionalità.md", "exploit": "8 - Sviluppo di software sicuro/1 - Terminologia/exploit.md", + "distinguisher": "8 - Sviluppo di software sicuro/1 - Terminologia/distinguisher.md", "difetto": "8 - Sviluppo di software sicuro/1 - Terminologia/difetto.md", - "bug": "8 - Sviluppo di software sicuro/1 - Terminologia/bug.md", - "analisi dei rischi": "8 - Sviluppo di software sicuro/1 - Terminologia/analisi dei rischi.md", "debolezza": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/debolezza.md", + "bug": "8 - Sviluppo di software sicuro/1 - Terminologia/bug.md", "attaccante": "8 - Sviluppo di software sicuro/1 - Terminologia/attaccante.md", "asset": "8 - Sviluppo di software sicuro/1 - Terminologia/asset.md", + "analisi dei rischi": "8 - Sviluppo di software sicuro/1 - Terminologia/analisi dei rischi.md", "stride": "8 - Sviluppo di software sicuro/1 - Terminologia/STRIDE.md", "★ sistemi complessi": "8 - Sistemi complessi/2 - Sistemi complessi/★ sistemi complessi.canvas", - "proteoma": "8 - Sistemi complessi/6 - Robustezza/proteoma.md", - "tratto": "8 - Sistemi complessi/6 - Robustezza/tratto.md", - "omeostasi": "8 - Sistemi complessi/6 - Robustezza/omeostasi.md", "🞵 parentesi anti-eugenica": "8 - Sistemi complessi/6 - Robustezza/🞵 parentesi anti-eugenica.md", "★ robustezza": "8 - Sistemi complessi/6 - Robustezza/★ robustezza.canvas", "versatilità": "8 - Sistemi complessi/6 - Robustezza/versatilità.md", + "tratto": "8 - Sistemi complessi/6 - Robustezza/tratto.md", "tolleranza altamente ottimizzata": "8 - Sistemi complessi/6 - Robustezza/tolleranza altamente ottimizzata.md", "robustezza": "8 - Sistemi complessi/6 - Robustezza/robustezza.md", "robustezza locale": "8 - Sistemi complessi/6 - Robustezza/robustezza locale.md", @@ -215,13 +218,15 @@ "ridondanza": "8 - Sistemi complessi/6 - Robustezza/ridondanza.md", "rete regolatrice di geni": "8 - Sistemi complessi/6 - Robustezza/rete regolatrice di geni.md", "rete neutrale": "8 - Sistemi complessi/6 - Robustezza/rete neutrale.md", + "proteoma": "8 - Sistemi complessi/6 - Robustezza/proteoma.md", "popolazione": "8 - Sistemi complessi/6 - Robustezza/popolazione.md", "point mutation": "8 - Sistemi complessi/6 - Robustezza/point mutation.md", "pleiotropia": "8 - Sistemi complessi/6 - Robustezza/pleiotropia.md", - "paradosso dell'evolvibilità": "8 - Sistemi complessi/6 - Robustezza/paradosso dell'evolvibilità.md", "plasticità fenotipica": "8 - Sistemi complessi/6 - Robustezza/plasticità fenotipica.md", - "modello duplication-degeneracy-complementation": "8 - Sistemi complessi/6 - Robustezza/modello duplication-degeneracy-complementation.md", + "paradosso dell'evolvibilità": "8 - Sistemi complessi/6 - Robustezza/paradosso dell'evolvibilità.md", + "omeostasi": "8 - Sistemi complessi/6 - Robustezza/omeostasi.md", "nucleotide": "8 - Sistemi complessi/6 - Robustezza/nucleotide.md", + "modello duplication-degeneracy-complementation": "8 - Sistemi complessi/6 - Robustezza/modello duplication-degeneracy-complementation.md", "individuo": "8 - Sistemi complessi/6 - Robustezza/individuo.md", "genotipo": "8 - Sistemi complessi/6 - Robustezza/genotipo.md", "genoma": "8 - Sistemi complessi/6 - Robustezza/genoma.md", @@ -229,38 +234,37 @@ "fitness": "8 - Sistemi complessi/6 - Robustezza/fitness.md", "fenotipo": "8 - Sistemi complessi/6 - Robustezza/fenotipo.md", "evolvibilità": "8 - Sistemi complessi/6 - Robustezza/evolvibilità.md", - "cromosoma": "8 - Sistemi complessi/6 - Robustezza/cromosoma.md", "degenerazione": "8 - Sistemi complessi/6 - Robustezza/degenerazione.md", "crossover": "8 - Sistemi complessi/6 - Robustezza/crossover.md", + "cromosoma": "8 - Sistemi complessi/6 - Robustezza/cromosoma.md", "canalizzazione": "8 - Sistemi complessi/6 - Robustezza/canalizzazione.md", - "★ geni come random boolean network": "8 - Sistemi complessi/5 - Origine della vita/★ geni come random boolean network.canvas", - "modello di kauffman gene-rbn": "8 - Sistemi complessi/5 - Origine della vita/modello di Kauffman gene-RBN.md", "★ insiemi auto-replicanti": "8 - Sistemi complessi/5 - Origine della vita/★ insiemi auto-replicanti.canvas", + "★ geni come random boolean network": "8 - Sistemi complessi/5 - Origine della vita/★ geni come random boolean network.canvas", "substrato": "8 - Sistemi complessi/5 - Origine della vita/substrato.md", "modello di kauffman per gli insiemi auto-replicanti": "8 - Sistemi complessi/5 - Origine della vita/modello di Kauffman per gli insiemi auto-replicanti.md", - "catalizzatore": "8 - Sistemi complessi/5 - Origine della vita/catalizzatore.md", + "modello di kauffman gene-rbn": "8 - Sistemi complessi/5 - Origine della vita/modello di Kauffman gene-RBN.md", "insieme auto-replicante": "8 - Sistemi complessi/5 - Origine della vita/insieme auto-replicante.md", "insieme auto-catalitico riflessivo generato da cibo": "8 - Sistemi complessi/5 - Origine della vita/insieme auto-catalitico riflessivo generato da cibo.md", "gene duplication": "8 - Sistemi complessi/5 - Origine della vita/gene duplication.md", - "diametro di un grafo": "8 - Sistemi complessi/4 - Grafi/diametro di un grafo.md", + "catalizzatore": "8 - Sistemi complessi/5 - Origine della vita/catalizzatore.md", "★ ipergrafi": "8 - Sistemi complessi/4 - Grafi/★ ipergrafi.canvas", - "rete multiplex": "8 - Sistemi complessi/4 - Grafi/rete multiplex.md", "★ grafi": "8 - Sistemi complessi/4 - Grafi/★ grafi.canvas", "★ grafi multi-livello": "8 - Sistemi complessi/4 - Grafi/★ grafi multi-livello.canvas", + "rete multiplex": "8 - Sistemi complessi/4 - Grafi/rete multiplex.md", "rete multiplex straightforward": "8 - Sistemi complessi/4 - Grafi/rete multiplex straightforward.md", "rete multiplex correlata": "8 - Sistemi complessi/4 - Grafi/rete multiplex correlata.md", "rete interdipendente": "8 - Sistemi complessi/4 - Grafi/rete interdipendente.md", "raggio di un grafo": "8 - Sistemi complessi/4 - Grafi/raggio di un grafo.md", "percorso euleriano": "8 - Sistemi complessi/4 - Grafi/percorso euleriano.md", - "multislice modularity": "8 - Sistemi complessi/4 - Grafi/multislice modularity.md", "percolation threshold": "8 - Sistemi complessi/4 - Grafi/percolation threshold.md", + "multislice modularity": "8 - Sistemi complessi/4 - Grafi/multislice modularity.md", "lunghezza caratteristica di un grafo": "8 - Sistemi complessi/4 - Grafi/lunghezza caratteristica di un grafo.md", "iperrete": "8 - Sistemi complessi/4 - Grafi/iperrete.md", "ipergrafo": "8 - Sistemi complessi/4 - Grafi/ipergrafo.md", - "grafo": "8 - Sistemi complessi/4 - Grafi/grafo.md", "iperarco": "8 - Sistemi complessi/4 - Grafi/iperarco.md", - "grafo sparso": "8 - Sistemi complessi/4 - Grafi/grafo sparso.md", "interdipendenza": "8 - Sistemi complessi/4 - Grafi/interdipendenza.md", + "grafo": "8 - Sistemi complessi/4 - Grafi/grafo.md", + "grafo sparso": "8 - Sistemi complessi/4 - Grafi/grafo sparso.md", "grafo small-world": "8 - Sistemi complessi/4 - Grafi/grafo small-world.md", "grafo scale-free": "8 - Sistemi complessi/4 - Grafi/grafo scale-free.md", "grafo multi-livello": "8 - Sistemi complessi/4 - Grafi/grafo multi-livello.md", @@ -268,30 +272,46 @@ "grafo multi-livello interconnesso": "8 - Sistemi complessi/4 - Grafi/grafo multi-livello interconnesso.md", "grafo multi-livello diagonale": "8 - Sistemi complessi/4 - Grafi/grafo multi-livello diagonale.md", "grafo multi-livello diagonale a livelli accoppiati": "8 - Sistemi complessi/4 - Grafi/grafo multi-livello diagonale a livelli accoppiati.md", - "grafo multi-livello a livelli disgiunti": "8 - Sistemi complessi/4 - Grafi/grafo multi-livello a livelli disgiunti.md", "grafo multi-livello categorico": "8 - Sistemi complessi/4 - Grafi/grafo multi-livello categorico.md", "grafo multi-livello allineato ai nodi": "8 - Sistemi complessi/4 - Grafi/grafo multi-livello allineato ai nodi.md", + "grafo multi-livello a livelli disgiunti": "8 - Sistemi complessi/4 - Grafi/grafo multi-livello a livelli disgiunti.md", "grafo denso": "8 - Sistemi complessi/4 - Grafi/grafo denso.md", "grafo connesso": "8 - Sistemi complessi/4 - Grafi/grafo connesso.md", - "grafo casuale": "8 - Sistemi complessi/4 - Grafi/grafo casuale.md", "grafo completo": "8 - Sistemi complessi/4 - Grafi/grafo completo.md", + "grafo casuale": "8 - Sistemi complessi/4 - Grafi/grafo casuale.md", "grafo ad archi colorati": "8 - Sistemi complessi/4 - Grafi/grafo ad archi colorati.md", - "distanza tra nodi di un grafo": "8 - Sistemi complessi/4 - Grafi/distanza tra nodi di un grafo.md", - "grafo a nodi colorati": "8 - Sistemi complessi/4 - Grafi/grafo a nodi colorati.md", "grafo a reticolo": "8 - Sistemi complessi/4 - Grafi/grafo a reticolo.md", + "grafo a nodi colorati": "8 - Sistemi complessi/4 - Grafi/grafo a nodi colorati.md", "eccentricità di un nodo": "8 - Sistemi complessi/4 - Grafi/eccentricità di un nodo.md", - "bellezza": "8 - Sistemi complessi/4 - Grafi/bellezza.md", + "distanza tra nodi di un grafo": "8 - Sistemi complessi/4 - Grafi/distanza tra nodi di un grafo.md", + "diametro di un grafo": "8 - Sistemi complessi/4 - Grafi/diametro di un grafo.md", "coefficiente di clustering": "8 - Sistemi complessi/4 - Grafi/coefficiente di clustering.md", - "circuito euleriano": "8 - Sistemi complessi/4 - Grafi/circuito euleriano.md", "coefficiente di clustering in una rete multiplex": "8 - Sistemi complessi/4 - Grafi/coefficiente di clustering in una rete multiplex.md", - "aspetto di un grafo multi-livello": "8 - Sistemi complessi/4 - Grafi/aspetto di un grafo multi-livello.md", - "arco di accoppiamento": "8 - Sistemi complessi/4 - Grafi/arco di accoppiamento.md", - "aspetto categorico di un grafo multi-livello": "8 - Sistemi complessi/4 - Grafi/aspetto categorico di un grafo multi-livello.md", + "circuito euleriano": "8 - Sistemi complessi/4 - Grafi/circuito euleriano.md", + "bellezza": "8 - Sistemi complessi/4 - Grafi/bellezza.md", "aspetto ordinale di un grafo multi-livello": "8 - Sistemi complessi/4 - Grafi/aspetto ordinale di un grafo multi-livello.md", - "modello axelrod": "8 - Sistemi complessi/3 - Automi cellulari/modello Axelrod.md", - "modello schelling": "8 - Sistemi complessi/3 - Automi cellulari/modello Schelling.md", - "vicinato di von neumann": "8 - Sistemi complessi/3 - Automi cellulari/vicinato di von Neumann.md", + "aspetto di un grafo multi-livello": "8 - Sistemi complessi/4 - Grafi/aspetto di un grafo multi-livello.md", + "aspetto categorico di un grafo multi-livello": "8 - Sistemi complessi/4 - Grafi/aspetto categorico di un grafo multi-livello.md", + "arco di accoppiamento": "8 - Sistemi complessi/4 - Grafi/arco di accoppiamento.md", + "topological mixing": "8 - Sistemi complessi/2 - Sistemi complessi/topological mixing.md", + "sistema complesso": "8 - Sistemi complessi/2 - Sistemi complessi/sistema complesso.md", + "rete": "8 - Sistemi complessi/2 - Sistemi complessi/rete.md", + "pila di sabbia abeliana": "8 - Sistemi complessi/2 - Sistemi complessi/pila di sabbia abeliana.md", + "parte di un sistema complesso": "8 - Sistemi complessi/2 - Sistemi complessi/parte di un sistema complesso.md", + "ordine spontaneo": "8 - Sistemi complessi/2 - Sistemi complessi/ordine spontaneo.md", + "non-linearità": "8 - Sistemi complessi/2 - Sistemi complessi/non-linearità.md", + "feedback loop": "8 - Sistemi complessi/2 - Sistemi complessi/feedback loop.md", + "fallimento a cascata": "8 - Sistemi complessi/2 - Sistemi complessi/fallimento a cascata.md", + "emergenza": "8 - Sistemi complessi/2 - Sistemi complessi/emergenza.md", + "dense periodic orbits": "8 - Sistemi complessi/2 - Sistemi complessi/dense periodic orbits.md", + "criticità auto-organizzata": "8 - Sistemi complessi/2 - Sistemi complessi/criticità auto-organizzata.md", + "caos": "8 - Sistemi complessi/2 - Sistemi complessi/caos.md", + "auto-organizzazione": "8 - Sistemi complessi/2 - Sistemi complessi/auto-organizzazione.md", + "apertura all'ambiente": "8 - Sistemi complessi/2 - Sistemi complessi/apertura all'ambiente.md", + "adattabilità": "8 - Sistemi complessi/2 - Sistemi complessi/adattabilità.md", + "landau's phenomenological theory": "8 - Sistemi complessi/2 - Sistemi complessi/Landau's phenomenological theory.md", "★ automi cellulari": "8 - Sistemi complessi/3 - Automi cellulari/★ automi cellulari.canvas", + "vicinato di von neumann": "8 - Sistemi complessi/3 - Automi cellulari/vicinato di von Neumann.md", "vicinato di un automa cellulare": "8 - Sistemi complessi/3 - Automi cellulari/vicinato di un automa cellulare.md", "vicinato di moore": "8 - Sistemi complessi/3 - Automi cellulari/vicinato di Moore.md", "universalità": "8 - Sistemi complessi/3 - Automi cellulari/universalità.md", @@ -303,14 +323,15 @@ "regola di transizione": "8 - Sistemi complessi/3 - Automi cellulari/regola di transizione.md", "regola di wolfram": "8 - Sistemi complessi/3 - Automi cellulari/regola di Wolfram.md", "regola 110 di wolfram": "8 - Sistemi complessi/3 - Automi cellulari/regola 110 di Wolfram.md", - "oscillator": "8 - Sistemi complessi/3 - Automi cellulari/oscillator.md", "puffer": "8 - Sistemi complessi/3 - Automi cellulari/puffer.md", - "modello nowak-lewenstein": "8 - Sistemi complessi/3 - Automi cellulari/modello Nowak-Lewenstein.md", + "oscillator": "8 - Sistemi complessi/3 - Automi cellulari/oscillator.md", + "modello schelling": "8 - Sistemi complessi/3 - Automi cellulari/modello Schelling.md", "modello sakoda": "8 - Sistemi complessi/3 - Automi cellulari/modello Sakoda.md", + "modello nowak-lewenstein": "8 - Sistemi complessi/3 - Automi cellulari/modello Nowak-Lewenstein.md", "modello hpp": "8 - Sistemi complessi/3 - Automi cellulari/modello HPP.md", "modello fhp": "8 - Sistemi complessi/3 - Automi cellulari/modello FHP.md", "modello fhp con particelle velocità zero": "8 - Sistemi complessi/3 - Automi cellulari/modello FHP con particelle velocità zero.md", - "automa cellulare continuo spaziale": "8 - Sistemi complessi/3 - Automi cellulari/automa cellulare continuo spaziale.md", + "modello axelrod": "8 - Sistemi complessi/3 - Automi cellulari/modello Axelrod.md", "metodo reticolare di boltzmann": "8 - Sistemi complessi/3 - Automi cellulari/metodo reticolare di Boltzmann.md", "lambda di langton": "8 - Sistemi complessi/3 - Automi cellulari/lambda di Langton.md", "gun": "8 - Sistemi complessi/3 - Automi cellulari/gun.md", @@ -329,54 +350,38 @@ "automa cellulare legale": "8 - Sistemi complessi/3 - Automi cellulari/automa cellulare legale.md", "automa cellulare invertibile": "8 - Sistemi complessi/3 - Automi cellulari/automa cellulare invertibile.md", "automa cellulare continuo": "8 - Sistemi complessi/3 - Automi cellulari/automa cellulare continuo.md", - "automa cellulare asincrono": "8 - Sistemi complessi/3 - Automi cellulari/automa cellulare asincrono.md", + "automa cellulare continuo spaziale": "8 - Sistemi complessi/3 - Automi cellulari/automa cellulare continuo spaziale.md", "automa cellulare booleano": "8 - Sistemi complessi/3 - Automi cellulari/automa cellulare booleano.md", + "automa cellulare asincrono": "8 - Sistemi complessi/3 - Automi cellulari/automa cellulare asincrono.md", "auto-replicazione": "8 - Sistemi complessi/3 - Automi cellulari/auto-replicazione.md", "anisotropia": "8 - Sistemi complessi/3 - Automi cellulari/anisotropia.md", "wireworld": "8 - Sistemi complessi/3 - Automi cellulari/Wireworld.md", "perrier's loops": "8 - Sistemi complessi/3 - Automi cellulari/Perrier's Loops.md", - "evoloop": "8 - Sistemi complessi/3 - Automi cellulari/Evoloop.md", "langton's loops": "8 - Sistemi complessi/3 - Automi cellulari/Langton's Loops.md", "game of life": "8 - Sistemi complessi/3 - Automi cellulari/Game of Life.md", - "pila di sabbia abeliana": "8 - Sistemi complessi/2 - Sistemi complessi/pila di sabbia abeliana.md", - "criticità auto-organizzata": "8 - Sistemi complessi/2 - Sistemi complessi/criticità auto-organizzata.md", - "topological mixing": "8 - Sistemi complessi/2 - Sistemi complessi/topological mixing.md", - "sistema complesso": "8 - Sistemi complessi/2 - Sistemi complessi/sistema complesso.md", - "rete": "8 - Sistemi complessi/2 - Sistemi complessi/rete.md", - "parte di un sistema complesso": "8 - Sistemi complessi/2 - Sistemi complessi/parte di un sistema complesso.md", - "ordine spontaneo": "8 - Sistemi complessi/2 - Sistemi complessi/ordine spontaneo.md", - "feedback loop": "8 - Sistemi complessi/2 - Sistemi complessi/feedback loop.md", - "non-linearità": "8 - Sistemi complessi/2 - Sistemi complessi/non-linearità.md", - "fallimento a cascata": "8 - Sistemi complessi/2 - Sistemi complessi/fallimento a cascata.md", - "emergenza": "8 - Sistemi complessi/2 - Sistemi complessi/emergenza.md", - "dense periodic orbits": "8 - Sistemi complessi/2 - Sistemi complessi/dense periodic orbits.md", - "adattabilità": "8 - Sistemi complessi/2 - Sistemi complessi/adattabilità.md", - "caos": "8 - Sistemi complessi/2 - Sistemi complessi/caos.md", - "apertura all'ambiente": "8 - Sistemi complessi/2 - Sistemi complessi/apertura all'ambiente.md", - "auto-organizzazione": "8 - Sistemi complessi/2 - Sistemi complessi/auto-organizzazione.md", - "landau's phenomenological theory": "8 - Sistemi complessi/2 - Sistemi complessi/Landau's phenomenological theory.md", - "seconda legge della termodinamica": "8 - Sistemi complessi/1 - Sistemi dinamici/seconda legge della termodinamica.md", - "veicolo di braitenberg": "8 - Sistemi complessi/1 - Sistemi dinamici/veicolo di Braitenberg.md", + "evoloop": "8 - Sistemi complessi/3 - Automi cellulari/Evoloop.md", "★ sistemi dinamici": "8 - Sistemi complessi/1 - Sistemi dinamici/★ sistemi dinamici.canvas", + "veicolo di braitenberg": "8 - Sistemi complessi/1 - Sistemi dinamici/veicolo di Braitenberg.md", + "traiettoria": "8 - Sistemi complessi/1 - Sistemi dinamici/traiettoria.md", "stabilità": "8 - Sistemi complessi/1 - Sistemi dinamici/stabilità.md", "spazio di fase": "8 - Sistemi complessi/1 - Sistemi dinamici/spazio di fase.md", - "traiettoria": "8 - Sistemi complessi/1 - Sistemi dinamici/traiettoria.md", "sistema lineare": "8 - Sistemi complessi/1 - Sistemi dinamici/sistema lineare.md", + "sistema dissipativo": "8 - Sistemi complessi/1 - Sistemi dinamici/sistema dissipativo.md", "sistema dinamico": "8 - Sistemi complessi/1 - Sistemi dinamici/sistema dinamico.md", "sella": "8 - Sistemi complessi/1 - Sistemi dinamici/sella.md", - "sistema dissipativo": "8 - Sistemi complessi/1 - Sistemi dinamici/sistema dissipativo.md", - "effetto marangoni": "8 - Sistemi complessi/1 - Sistemi dinamici/effetto Marangoni.md", - "metastabilità": "8 - Sistemi complessi/1 - Sistemi dinamici/metastabilità.md", - "convezione di rayleigh-bénard": "8 - Sistemi complessi/1 - Sistemi dinamici/convezione di Rayleigh-Bénard.md", + "seconda legge della termodinamica": "8 - Sistemi complessi/1 - Sistemi dinamici/seconda legge della termodinamica.md", "repulsore": "8 - Sistemi complessi/1 - Sistemi dinamici/repulsore.md", "punto critico": "8 - Sistemi complessi/1 - Sistemi dinamici/punto critico.md", "potenziale": "8 - Sistemi complessi/1 - Sistemi dinamici/potenziale.md", "numero di rayleigh": "8 - Sistemi complessi/1 - Sistemi dinamici/numero di Rayleigh.md", "numero critico di rayleigh": "8 - Sistemi complessi/1 - Sistemi dinamici/numero critico di Rayleigh.md", + "metastabilità": "8 - Sistemi complessi/1 - Sistemi dinamici/metastabilità.md", "legge di potenza": "8 - Sistemi complessi/1 - Sistemi dinamici/legge di potenza.md", "legge gutenberg-richter": "8 - Sistemi complessi/1 - Sistemi dinamici/legge Gutenberg-Richter.md", - "criticità": "8 - Sistemi complessi/1 - Sistemi dinamici/criticità.md", "instabilità": "8 - Sistemi complessi/1 - Sistemi dinamici/instabilità.md", + "effetto marangoni": "8 - Sistemi complessi/1 - Sistemi dinamici/effetto Marangoni.md", + "criticità": "8 - Sistemi complessi/1 - Sistemi dinamici/criticità.md", + "convezione di rayleigh-bénard": "8 - Sistemi complessi/1 - Sistemi dinamici/convezione di Rayleigh-Bénard.md", "condizione iniziale": "8 - Sistemi complessi/1 - Sistemi dinamici/condizione iniziale.md", "centro": "8 - Sistemi complessi/1 - Sistemi dinamici/centro.md", "attrattore": "8 - Sistemi complessi/1 - Sistemi dinamici/attrattore.md", @@ -385,19 +390,17 @@ "test": "8 - Metodologie di sviluppo software/Testing/test.md", "test coverage": "8 - Metodologie di sviluppo software/Testing/test coverage.md", "regression test": "8 - Metodologie di sviluppo software/Testing/regression test.md", - "integration test": "8 - Metodologie di sviluppo software/Testing/integration test.md", "performance test": "8 - Metodologie di sviluppo software/Testing/performance test.md", + "integration test": "8 - Metodologie di sviluppo software/Testing/integration test.md", "acceptance test": "8 - Metodologie di sviluppo software/Testing/acceptance test.md", "timeboxing": "8 - Metodologie di sviluppo software/Tecniche di sviluppo/timeboxing.md", "test-driven development": "8 - Metodologie di sviluppo software/Tecniche di sviluppo/test-driven development.md", - "sprint retrospective": "8 - Metodologie di sviluppo software/Tecniche di sviluppo/sprint retrospective.md", "sprint review": "8 - Metodologie di sviluppo software/Tecniche di sviluppo/sprint review.md", + "sprint retrospective": "8 - Metodologie di sviluppo software/Tecniche di sviluppo/sprint retrospective.md", "sprint planning": "8 - Metodologie di sviluppo software/Tecniche di sviluppo/sprint planning.md", "refactoring": "8 - Metodologie di sviluppo software/Tecniche di sviluppo/refactoring.md", "pair programming": "8 - Metodologie di sviluppo software/Tecniche di sviluppo/pair programming.md", "5 - project estimation": "8 - Metodologie di sviluppo software/Svolgimento esercizi/5 - Project Estimation.md", - "scrum master": "8 - Metodologie di sviluppo software/Ruoli professionali/scrum master.md", - "product owner": "8 - Metodologie di sviluppo software/Ruoli professionali/product owner.md", "unified process": "8 - Metodologie di sviluppo software/Processi di sviluppo/unified process.md", "scrum": "8 - Metodologie di sviluppo software/Processi di sviluppo/scrum.md", "scrum of scrum": "8 - Metodologie di sviluppo software/Processi di sviluppo/scrum of scrum.md", @@ -405,33 +408,125 @@ "feature-driven development": "8 - Metodologie di sviluppo software/Processi di sviluppo/feature-driven development.md", "epic": "8 - Metodologie di sviluppo software/Processi di sviluppo/epic.md", "daily scrum": "8 - Metodologie di sviluppo software/Processi di sviluppo/daily scrum.md", - "agile": "8 - Metodologie di sviluppo software/Processi di sviluppo/agile.md", "backlog grooming": "8 - Metodologie di sviluppo software/Processi di sviluppo/backlog grooming.md", + "agile": "8 - Metodologie di sviluppo software/Processi di sviluppo/agile.md", "agile unified process": "8 - Metodologie di sviluppo software/Processi di sviluppo/agile unified process.md", + "scrum master": "8 - Metodologie di sviluppo software/Ruoli professionali/scrum master.md", + "product owner": "8 - Metodologie di sviluppo software/Ruoli professionali/product owner.md", "modello waterfall": "8 - Metodologie di sviluppo software/Modelli di sviluppo/modello waterfall.md", - "modello di sviluppo": "8 - Metodologie di sviluppo software/Modelli di sviluppo/modello di sviluppo.md", "modello trasformativo": "8 - Metodologie di sviluppo software/Modelli di sviluppo/modello trasformativo.md", "modello iterativo": "8 - Metodologie di sviluppo software/Modelli di sviluppo/modello iterativo.md", "modello incrementale": "8 - Metodologie di sviluppo software/Modelli di sviluppo/modello incrementale.md", "modello evolutivo": "8 - Metodologie di sviluppo software/Modelli di sviluppo/modello evolutivo.md", + "modello di sviluppo": "8 - Metodologie di sviluppo software/Modelli di sviluppo/modello di sviluppo.md", "modello code-and-fix": "8 - Metodologie di sviluppo software/Modelli di sviluppo/modello code-and-fix.md", "modello basato sui componenti": "8 - Metodologie di sviluppo software/Modelli di sviluppo/modello basato sui componenti.md", - "fase di specifica": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di specifica.md", "fase di testing": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di testing.md", - "fase di manutenzione": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di manutenzione.md", - "fase di design": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di design.md", - "fase di implementazione": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di implementazione.md", + "fase di specifica": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di specifica.md", "fase di rilascio": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di rilascio.md", + "fase di manutenzione": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di manutenzione.md", + "fase di implementazione": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di implementazione.md", + "fase di design": "8 - Metodologie di sviluppo software/Fasi di sviluppo/fase di design.md", "user story": "8 - Metodologie di sviluppo software/Artefatti/user story.md", "product backlog": "8 - Metodologie di sviluppo software/Artefatti/product backlog.md", "increment": "8 - Metodologie di sviluppo software/Artefatti/increment.md", "burndown chart": "8 - Metodologie di sviluppo software/Artefatti/burndown chart.md", + "★ mappa concettuale": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/★ mappa concettuale.canvas", + "weak existential unforgeability": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/weak existential unforgeability.md", + "weak existential message forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/weak existential message forgery.md", + "strong existential unforgeability": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/strong existential unforgeability.md", + "strong existential message forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/strong existential message forgery.md", + "selective message forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/selective message forgery.md", + "random-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/random-message attacker.md", + "no-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/no-message attacker.md", + "known-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/known-message attacker.md", + "contesto di firma digitale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/contesto di firma digitale.md", + "chosen-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/chosen-message attacker.md", + "any message forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/any message forgery.md", + "adaptively-chosen-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/adaptively-chosen-message attacker.md", + "zero-knowledge proof": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/zero-knowledge proof.md", + "witness": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/witness.md", + "trasformazione di fiat-shamir": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/trasformazione di Fiat-Shamir.md", + "transcript": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/transcript.md", + "signature scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/signature scheme.md", + "signature forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/signature forgery.md", + "protocollo di identificazione di schnorr non-interattivo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/protocollo di identificazione di Schnorr non-interattivo.md", + "protocollo di identificazione di schnorr interattivo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/protocollo di identificazione di Schnorr interattivo.md", + "problema di firma digitale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/problema di firma digitale.md", + "probabilistic signature scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/probabilistic signature scheme.md", + "full domain hash": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/full domain hash.md", + "firma digitale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/firma digitale.md", + "fiducia": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/fiducia.md", + "elliptic curve digital signature algorithm": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/elliptic curve digital signature algorithm.md", + "digital signature algorithm": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/digital signature algorithm.md", + "schnorr signature scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/Schnorr signature scheme.md", + "schnorr deterministic signature scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/Schnorr deterministic signature scheme.md", + "pkcs1 v21": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/PKCS1 v21.md", + "edwards-curve digital signature algorithm": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/Edwards-curve digital signature algorithm.md", + "trapdoor one-way function": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/trapdoor one-way function.md", + "textbook rsa": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/textbook RSA.md", + "scambio di chiave simmetrica basato sull'incapsulamento": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/scambio di chiave simmetrica basato sull'incapsulamento.md", + "problema rsa": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/problema RSA.md", + "million message attack": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/million message attack.md", + "mask generation function": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/mask generation function.md", + "key encapsulation": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/key encapsulation.md", + "integrated encryption scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/integrated encryption scheme.md", + "funzione toziente": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/funzione toziente.md", + "elliptic curve integrated encryption scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/elliptic curve integrated encryption scheme.md", + "crittografia ibrida": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/crittografia ibrida.md", + "crittografia asimmetrica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/crittografia asimmetrica.md", + "congettura della fattorizzazione": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/congettura della fattorizzazione.md", + "rsa": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/RSA.md", + "pkcs1 v20": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/PKCS1 v20.md", + "pkcs1 v15": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/PKCS1 v15.md", + "scambio di chiave": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave.md", + "scambio di chiave mutualmente autenticato": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave mutualmente autenticato.md", + "scambio di chiave basato su diffie-hellman": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave basato su Diffie-Hellman.md", + "scambio di chiave autenticato": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave autenticato.md", + "scambio di chiave autenticato lato server": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave autenticato lato server.md", + "scambio di chiave autenticato basato su diffie-hellman": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave autenticato basato su Diffie-Hellman.md", + "scambio di chiave diffie-hellman": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave Diffie-Hellman.md", + "scambio di chiave diffie-hellman su curva ellittica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave Diffie-Hellman su curva ellittica.md", + "one-way function": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/one-way function.md", + "numero primo sicuro": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/numero primo sicuro.md", + "logaritmo discreto su gruppi ciclici primi sugli interi": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/logaritmo discreto su gruppi ciclici primi sugli interi.md", + "logaritmo discreto su curva ellittica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/logaritmo discreto su curva ellittica.md", + "key generation algorithm": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/key generation algorithm.md", + "coppia di chiavi": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/coppia di chiavi.md", + "congettura diffie-hellman": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/congettura Diffie-Hellman.md", + "congettura diffie-hellman decisionale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/congettura Diffie-Hellman decisionale.md", + "congettura diffie-hellman computazionale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/congettura Diffie-Hellman computazionale.md", + "congettura diffie-hellman classica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/congettura Diffie-Hellman classica.md", + "chiave pubblica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/chiave pubblica.md", + "chiave privata": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/chiave privata.md", + "attacco del sottogruppo debole": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/attacco del sottogruppo debole.md", + "attacco del punto non valido": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/attacco del punto non valido.md", + "sep256k1": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/Sep256k1.md", + "p-521": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/P-521.md", + "p-256": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/P-256.md", + "curve448": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/Curve448.md", + "curve25519": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/Curve25519.md", + "somma di punti su curve ellittiche": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/somma di punti su curve ellittiche.md", + "punto a infinito nelle curve ellittiche": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/punto a infinito nelle curve ellittiche.md", + "gruppo ciclico su curva ellittica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/gruppo ciclico su curva ellittica.md", + "equazione di weierstrass": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/equazione di Weierstrass.md", + "curva ellittica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/curva ellittica.md", + "sottogruppo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/sottogruppo.md", + "ordine di un gruppo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/ordine di un gruppo.md", + "gruppo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo.md", + "gruppo moltiplicativo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo moltiplicativo.md", + "gruppo infinito": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo infinito.md", + "gruppo finito": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo finito.md", + "gruppo di galois": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo di Galois.md", + "gruppo ciclico": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo ciclico.md", + "gruppo ciclico di modulo primo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo ciclico di modulo primo.md", + "gruppo additivo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo additivo.md", + "generatore di un gruppo ciclico": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/generatore di un gruppo ciclico.md", "★ crittografia applicata": "8 - Crittografia applicata/★ crittografia applicata.md", "symmetric ratchet": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/symmetric ratchet.md", - "★ mappa concettuale": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/★ mappa concettuale.canvas", "ricezione x3dh": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/ricezione X3DH.md", - "one-time pre-key": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/one-time pre-key.md", "registrazione x3dh": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/registrazione X3DH.md", + "one-time pre-key": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/one-time pre-key.md", "non-ripudiabilità": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/non-ripudiabilità.md", "negabilità": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/negabilità.md", "invio x3dh": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/invio X3DH.md", @@ -439,116 +534,116 @@ "identity information": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/identity information.md", "double ratchet": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/double ratchet.md", "authenticated deniable key agreement": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/authenticated deniable key agreement.md", - "signal protocol": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/Signal protocol.md", "authenticated deniable key agreement basato su diffie-hellman": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/authenticated deniable key agreement basato su Diffie-Hellman.md", "x3dh": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/X3DH.md", "signal": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/Signal.md", + "signal protocol": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/Signal protocol.md", "signal aead": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/Signal AEAD.md", "diffie-hellman ratchet": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/Diffie-Hellman ratchet.md", - "record dns": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/record DNS.md", "sender spoofing": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/sender spoofing.md", "sender policy framework": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/sender policy framework.md", "secure mime": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/secure mime.md", - "domain-based message authentication reporting and conformance": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/domain-based message authentication reporting and conformance.md", + "record dns": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/record DNS.md", "posta elettronica certificata": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/posta elettronica certificata.md", "phishing": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/phishing.md", - "domainkeys identified mail": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/domainkeys identified mail.md", - "email": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/email.md", "malware attachment": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/malware attachment.md", + "email": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/email.md", + "domainkeys identified mail": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/domainkeys identified mail.md", + "domain-based message authentication reporting and conformance": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/domain-based message authentication reporting and conformance.md", "brand indicators for message identification": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/brand indicators for message identification.md", "authenticated received chain": "8 - Crittografia applicata/5 - Protocolli sicuri/2 - Email/authenticated received chain.md", + "transport level security": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/transport level security.md", "transport level security handshake": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/transport level security handshake.md", "secure shell": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/secure shell.md", - "transport level security": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/transport level security.md", - "mobile shell": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/mobile shell.md", "secure file transfer protocol": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/secure file transfer protocol.md", "pre-master secret": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/pre-master secret.md", - "coppia di chiavi effimere": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/coppia di chiavi effimere.md", + "mobile shell": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/mobile shell.md", + "encrypted client hello": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/encrypted client hello.md", "downgrade attack": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/downgrade attack.md", "datagram transport level security": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/datagram transport level security.md", - "encrypted client hello": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/encrypted client hello.md", + "coppia di chiavi effimere": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/coppia di chiavi effimere.md", "wireguard": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/Wireguard.md", "macsec": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/MACSec.md", "internet key exchange": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/Internet Key Exchange.md", "ipsec": "8 - Crittografia applicata/5 - Protocolli sicuri/1 - TCP-IP/IPSec.md", "trust-on-first-use": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/trust-on-first-use.md", - "token": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/token.md", "trust anchor": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/trust anchor.md", + "token": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/token.md", "tipo di certificato web": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/tipo di certificato web.md", "stale attack": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/stale attack.md", "self-signed certificate": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/self-signed certificate.md", "scope": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/scope.md", - "certificate sign request": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/certificate sign request.md", - "creazione di un certificato web": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/creazione di un certificato web.md", - "revoca certificato web": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/revoca certificato web.md", "root certification authority": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/root certification authority.md", + "revoca certificato web": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/revoca certificato web.md", "public key infrastructure": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/public key infrastructure.md", "privacy enhanced mail": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/privacy enhanced mail.md", - "out-of-band verification": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/out-of-band verification.md", "periodo di validità": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/periodo di validità.md", + "out-of-band verification": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/out-of-band verification.md", "online certificate status protocol": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/online certificate status protocol.md", "online certificate status protocol stapling": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/online certificate status protocol stapling.md", "issuer": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/issuer.md", "intermediate certification authority": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/intermediate certification authority.md", "fiducia transitiva": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/fiducia transitiva.md", - "domain validation": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/domain validation.md", "extended validation": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/extended validation.md", + "domain validation": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/domain validation.md", "distribuzione chiavi pubbliche": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/distribuzione chiavi pubbliche.md", "distinguished name": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/distinguished name.md", "distinguished encoding rules": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/distinguished encoding rules.md", - "delegated verification": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/delegated verification.md", "denial-of-service attack": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/denial-of-service attack.md", + "delegated verification": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/delegated verification.md", + "creazione di un certificato web": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/creazione di un certificato web.md", "claim": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/claim.md", - "certificate transparency": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/certificate transparency.md", "certificato web": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/certificato web.md", "certification authority": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/certification authority.md", + "certificate transparency": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/certificate transparency.md", + "certificate sign request": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/certificate sign request.md", "certificate revocation list": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/certificate revocation list.md", "audience": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/audience.md", - "openpgp web of trust": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/OpenPGP web of trust.md", - "abstract syntax notation one": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/abstract syntax notation one.md", - "pkcs12": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/PKCS12.md", "attestato": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/attestato.md", + "abstract syntax notation one": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/abstract syntax notation one.md", "pkcs7 cryptographic message syntax": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/PKCS7 Cryptographic message syntax.md", - "cose": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/COSE.md", + "pkcs12": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/PKCS12.md", + "openpgp web of trust": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/OpenPGP web of trust.md", "jose": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/JOSE.md", - "password-based authenticated key exchange": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/password-based authenticated key exchange.md", + "cose": "8 - Crittografia applicata/4 - Controllo dell'accesso/4 - Distribuzione di chiavi/COSE.md", "time-based one-time password": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/time-based one-time password.md", "secure remote password": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/secure remote password.md", + "password-based authenticated key exchange": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/password-based authenticated key exchange.md", "one-time credential": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/one-time credential.md", "oblivious": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/oblivious.md", "oblivious pseudo-random function": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/oblivious pseudo-random function.md", "hash-based one-time password": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/hash-based one-time password.md", "digest authentication": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/digest authentication.md", - "challenge-response": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/challenge-response.md", "channel binding": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/channel binding.md", + "challenge-response": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/challenge-response.md", "challenge-response based on time": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/challenge-response based on time.md", "challenge-response based on public key": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/challenge-response based on public key.md", "challenge-response based on password": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/challenge-response based on password.md", "challenge-response based on common knowledge": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/challenge-response based on common knowledge.md", "blinded": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/blinded.md", - "untitled": "7 - Introduction to quantum information processing/1 - Concetti base/Untitled.md", "bearer token": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/bearer token.md", "basic authentication": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/basic authentication.md", "augmented password-based key exchange": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/augmented password-based key exchange.md", - "opaque": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/OPAQUE.md", + "untitled": "7 - Introduction to quantum information processing/1 - Concetti base/Untitled.md", "scram authentication": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/SCRAM authentication.md", + "opaque": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/OPAQUE.md", "initiative for open authentication": "8 - Crittografia applicata/4 - Controllo dell'accesso/3 - Autenticazione di identità/Initiative for Open Authentication.md", - "funzione di password hashing adattiva": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/funzione di password hashing adattiva.md", "scrypt": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/scrypt.md", "salt": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/salt.md", "rainbow table": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/rainbow table.md", - "pepper": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/pepper.md", "personal identification number": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/personal identification number.md", + "pepper": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/pepper.md", "password": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/password.md", "invalidazione": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/invalidazione.md", "funzione di password hashing": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/funzione di password hashing.md", - "bcrypt": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/bcrypt.md", + "funzione di password hashing adattiva": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/funzione di password hashing adattiva.md", "enumerazione": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/enumerazione.md", "data breach": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/data breach.md", + "bcrypt": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/bcrypt.md", "attacco interattivo": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/attacco interattivo.md", "attacco di pre-computazione": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/attacco di pre-computazione.md", - "pbkdf2": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/PBKDF2.md", "archiviazione delle credenziali": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/archiviazione delle credenziali.md", + "pbkdf2": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/PBKDF2.md", "pbkdf1": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/PBKDF1.md", "argon2": "8 - Crittografia applicata/4 - Controllo dell'accesso/2 - Protezione dai data breach/Argon2.md", "utente": "8 - Crittografia applicata/4 - Controllo dell'accesso/1 - Modello/utente.md", @@ -561,102 +656,10 @@ "autenticazione di identità": "8 - Crittografia applicata/4 - Controllo dell'accesso/1 - Modello/autenticazione di identità.md", "access control model": "8 - Crittografia applicata/4 - Controllo dell'accesso/1 - Modello/access control model.md", "access control list": "8 - Crittografia applicata/4 - Controllo dell'accesso/1 - Modello/access control list.md", - "random-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/random-message attacker.md", - "weak existential unforgeability": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/weak existential unforgeability.md", - "strong existential unforgeability": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/strong existential unforgeability.md", - "strong existential message forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/strong existential message forgery.md", - "weak existential message forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/weak existential message forgery.md", - "chosen-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/chosen-message attacker.md", - "selective message forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/selective message forgery.md", - "contesto di firma digitale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/contesto di firma digitale.md", - "any message forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/any message forgery.md", - "no-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/no-message attacker.md", - "known-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/known-message attacker.md", - "adaptively-chosen-message attacker": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/6 - Falsificazione di firme/adaptively-chosen-message attacker.md", - "problema di firma digitale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/problema di firma digitale.md", - "signature scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/signature scheme.md", - "zero-knowledge proof": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/zero-knowledge proof.md", - "witness": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/witness.md", - "trasformazione di fiat-shamir": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/trasformazione di Fiat-Shamir.md", - "transcript": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/transcript.md", - "signature forgery": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/signature forgery.md", - "protocollo di identificazione di schnorr non-interattivo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/protocollo di identificazione di Schnorr non-interattivo.md", - "protocollo di identificazione di schnorr interattivo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/protocollo di identificazione di Schnorr interattivo.md", - "probabilistic signature scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/probabilistic signature scheme.md", - "full domain hash": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/full domain hash.md", - "firma digitale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/firma digitale.md", - "fiducia": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/fiducia.md", - "elliptic curve digital signature algorithm": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/elliptic curve digital signature algorithm.md", - "digital signature algorithm": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/digital signature algorithm.md", - "schnorr signature scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/Schnorr signature scheme.md", - "schnorr deterministic signature scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/Schnorr deterministic signature scheme.md", - "pkcs1 v21": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/PKCS1 v21.md", - "edwards-curve digital signature algorithm": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/Edwards-curve digital signature algorithm.md", - "integrated encryption scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/integrated encryption scheme.md", - "elliptic curve integrated encryption scheme": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/elliptic curve integrated encryption scheme.md", - "million message attack": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/million message attack.md", - "trapdoor one-way function": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/trapdoor one-way function.md", - "textbook rsa": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/textbook RSA.md", - "scambio di chiave simmetrica basato sull'incapsulamento": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/scambio di chiave simmetrica basato sull'incapsulamento.md", - "problema rsa": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/problema RSA.md", - "mask generation function": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/mask generation function.md", - "key encapsulation": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/key encapsulation.md", - "funzione toziente": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/funzione toziente.md", - "crittografia ibrida": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/crittografia ibrida.md", - "crittografia asimmetrica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/crittografia asimmetrica.md", - "congettura della fattorizzazione": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/congettura della fattorizzazione.md", - "rsa": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/RSA.md", - "pkcs1 v15": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/PKCS1 v15.md", - "pkcs1 v20": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/PKCS1 v20.md", - "scambio di chiave autenticato basato su diffie-hellman": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave autenticato basato su Diffie-Hellman.md", - "scambio di chiave diffie-hellman": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave Diffie-Hellman.md", - "scambio di chiave diffie-hellman su curva ellittica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave Diffie-Hellman su curva ellittica.md", - "scambio di chiave": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave.md", - "scambio di chiave mutualmente autenticato": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave mutualmente autenticato.md", - "scambio di chiave basato su diffie-hellman": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave basato su Diffie-Hellman.md", - "scambio di chiave autenticato": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave autenticato.md", - "scambio di chiave autenticato lato server": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/scambio di chiave autenticato lato server.md", - "logaritmo discreto su gruppi ciclici primi sugli interi": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/logaritmo discreto su gruppi ciclici primi sugli interi.md", - "one-way function": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/one-way function.md", - "logaritmo discreto su curva ellittica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/logaritmo discreto su curva ellittica.md", - "key generation algorithm": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/key generation algorithm.md", - "numero primo sicuro": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/numero primo sicuro.md", - "sep256k1": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/Sep256k1.md", - "congettura diffie-hellman": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/congettura Diffie-Hellman.md", - "coppia di chiavi": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/coppia di chiavi.md", - "congettura diffie-hellman classica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/congettura Diffie-Hellman classica.md", - "congettura diffie-hellman computazionale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/congettura Diffie-Hellman computazionale.md", - "congettura diffie-hellman decisionale": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/congettura Diffie-Hellman decisionale.md", - "attacco del punto non valido": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/attacco del punto non valido.md", - "attacco del sottogruppo debole": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/attacco del sottogruppo debole.md", - "chiave pubblica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/chiave pubblica.md", - "chiave privata": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/chiave privata.md", - "curve448": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/Curve448.md", - "curve25519": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/Curve25519.md", - "p-256": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/P-256.md", - "p-521": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/3 - Scambio di chiave/P-521.md", - "somma di punti su curve ellittiche": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/somma di punti su curve ellittiche.md", - "punto a infinito nelle curve ellittiche": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/punto a infinito nelle curve ellittiche.md", - "gruppo ciclico su curva ellittica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/gruppo ciclico su curva ellittica.md", - "equazione di weierstrass": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/equazione di Weierstrass.md", - "curva ellittica": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/curva ellittica.md", - "generatore di un gruppo ciclico": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/generatore di un gruppo ciclico.md", - "gruppo additivo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo additivo.md", - "gruppo moltiplicativo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo moltiplicativo.md", - "sottogruppo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/sottogruppo.md", - "ordine di un gruppo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/ordine di un gruppo.md", - "gruppo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo.md", - "gruppo infinito": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo infinito.md", - "gruppo finito": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo finito.md", - "gruppo di galois": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo di Galois.md", - "gruppo ciclico": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo ciclico.md", - "gruppo ciclico di modulo primo": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/1 - Teoria dei gruppi/gruppo ciclico di modulo primo.md", - "funzione contestualizzata": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/funzione contestualizzata.md", - "extendible output function": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/extendible output function.md", - "cshake": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/cSHAKE.md", - "tuplehash": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/TupleHash.md", - "parallelhash": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/ParallelHash.md", - "keccak message authentication code": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/Keccak message authentication code.md", + "struttura dati autenticata": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/5 - Strutture dati particolari/struttura dati autenticata.md", + "partial disclosure": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/5 - Strutture dati particolari/partial disclosure.md", + "merkle hash tree": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/5 - Strutture dati particolari/merkle hash tree.md", + "format-preserving encryption": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/5 - Strutture dati particolari/format-preserving encryption.md", "pseudo-random key": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/4 - Derivazione di chiave/pseudo-random key.md", "key derivation": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/4 - Derivazione di chiave/key derivation.md", "key derivation function": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/4 - Derivazione di chiave/key derivation function.md", @@ -669,10 +672,12 @@ "hkdf": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/4 - Derivazione di chiave/HKDF.md", "hkdf-extract": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/4 - Derivazione di chiave/HKDF-Extract.md", "hkdf-expand": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/4 - Derivazione di chiave/HKDF-Expand.md", - "struttura dati autenticata": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/5 - Strutture dati particolari/struttura dati autenticata.md", - "partial disclosure": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/5 - Strutture dati particolari/partial disclosure.md", - "merkle hash tree": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/5 - Strutture dati particolari/merkle hash tree.md", - "format-preserving encryption": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/5 - Strutture dati particolari/format-preserving encryption.md", + "funzione contestualizzata": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/funzione contestualizzata.md", + "extendible output function": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/extendible output function.md", + "cshake": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/cSHAKE.md", + "tuplehash": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/TupleHash.md", + "parallelhash": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/ParallelHash.md", + "keccak message authentication code": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/3 - Contestualizzazione ed estendibilità/Keccak message authentication code.md", "operation framework": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/2 - Operation framework/operation framework.md", "operation framework probabilistico": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/2 - Operation framework/operation framework probabilistico.md", "operation framework probabilistico per la crittografia simmetrica": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/2 - Operation framework/operation framework probabilistico per la crittografia simmetrica.md", @@ -693,13 +698,13 @@ "xor-encrypt-xor operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/1 - Indistinguibilità su disco/XOR-encrypt-XOR operation mode.canvas", "hctr2": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/1 - Indistinguibilità su disco/HCTR2.md", "adiantum": "8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/1 - Indistinguibilità su disco/Adiantum.md", - "encrypt-and-mac": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/encrypt-and-MAC.md", - "mac-then-encrypt": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/MAC-then-encrypt.md", - "generic composition": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/generic composition.md", "operation mode autenticato di un cifrario a blocchi": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/operation mode autenticato di un cifrario a blocchi.md", + "generic composition": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/generic composition.md", "encrypt-then-mac": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/encrypt-then-MAC.md", + "encrypt-and-mac": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/encrypt-and-MAC.md", "crittografia simmetrica autenticata": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/crittografia simmetrica autenticata.md", "counter with cipher block chaining message authentication code": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/counter with cipher block chaining message authentication code.md", + "mac-then-encrypt": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/MAC-then-encrypt.md", "galois-counter mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/Galois-Counter mode.md", "chacha20-poly1305": "8 - Crittografia applicata/2 - Comunicazione simmetrica/6 - Indistinguibilità autenticata/Chacha20-Poly1305.md", "replay attack": "8 - Crittografia applicata/2 - Comunicazione simmetrica/5 - Autenticazione/replay attack.md", @@ -713,137 +718,137 @@ "gmac": "8 - Crittografia applicata/2 - Comunicazione simmetrica/5 - Autenticazione/GMAC.md", "cmac": "8 - Crittografia applicata/2 - Comunicazione simmetrica/5 - Autenticazione/CMAC.md", "cbc-mac": "8 - Crittografia applicata/2 - Comunicazione simmetrica/5 - Autenticazione/CBC-MAC.canvas", - "second pre-image collision experiment": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/second pre-image collision experiment.md", - "length extension attack": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/length extension attack.md", "verifica crittografica dell'integrità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/verifica crittografica dell'integrità.md", "second pre-image collision": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/second pre-image collision.md", + "second pre-image collision experiment": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/second pre-image collision experiment.md", + "length extension attack": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/length extension attack.md", "hashing con più input": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/hashing con più input.md", - "first pre-image collision": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/first pre-image collision.md", "funzione di hashing crittografico": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/funzione di hashing crittografico.md", - "collision": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/collision.md", + "first pre-image collision": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/first pre-image collision.md", "first pre-image collision experiment": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/first pre-image collision experiment.md", - "shattered": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHAttered.md", + "collision": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/collision.md", "collision experiment": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/collision experiment.md", "attacco del compleanno": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/attacco del compleanno.md", - "sha384": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA384.md", + "shattered": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHAttered.md", "sha512": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA512.md", - "sha3-256": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA3-256.md", + "sha384": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA384.md", "sha3": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA3.md", "sha3-512": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA3-512.md", "sha3-384": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA3-384.md", + "sha3-256": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA3-256.md", "sha3-224": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA3-224.md", "sha256": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA256.md", - "sha2": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA2.md", "sha224": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA224.md", + "sha2": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA2.md", "sha1": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/SHA1.md", "md5": "8 - Crittografia applicata/2 - Comunicazione simmetrica/4 - Integrità crittografica/MD5.md", - "cyclic redundancy check": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Integrità semplice/cyclic redundancy check.md", "verifica dell'integrità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Integrità semplice/verifica dell'integrità.md", "hash": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Integrità semplice/hash.md", "funzione di hashing": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Integrità semplice/funzione di hashing.md", + "cyclic redundancy check": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Integrità semplice/cyclic redundancy check.md", "checksum": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Integrità semplice/checksum.md", "bit di parità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Integrità semplice/bit di parità.md", - "electronic codebook operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/electronic codebook operation mode.md", - "synthetic initialization vector operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/synthetic initialization vector operation mode.canvas", "uniforme": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/uniforme.md", "synthetic initialization vector": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/synthetic initialization vector.md", - "riutilizzo di chiavi nell'one-time pad": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/riutilizzo di chiavi nell'one-time pad.md", + "synthetic initialization vector operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/synthetic initialization vector operation mode.canvas", "riutilizzo di nonce": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/riutilizzo di nonce.md", "riutilizzo di chiavi": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/riutilizzo di chiavi.md", + "riutilizzo di chiavi nell'one-time pad": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/riutilizzo di chiavi nell'one-time pad.md", "re-keying": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/re-keying.md", - "random permutation": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/random permutation.md", "rc": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/rc.md", + "random permutation": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/random permutation.md", "principi di kerckhoffs": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/principi di Kerckhoffs.md", - "padding oracle attack": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/padding oracle attack.md", "padding": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/padding.md", + "padding oracle attack": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/padding oracle attack.md", "output feedback operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/output feedback operation mode.canvas", "operation mode di un cifrario a blocchi": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/operation mode di un cifrario a blocchi.md", "one-time pad": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/one-time pad.md", - "nonce → initialization vector": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/nonce → initialization vector.md", "nonce": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/nonce.md", + "nonce → initialization vector": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/nonce → initialization vector.md", "non-uniforme": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/non-uniforme.md", - "malleabilità dell'one-time pad": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/malleabilità dell'one-time pad.md", "manipolazione dell'initialization vector": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/manipolazione dell'initialization vector.md", "malleabilità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/malleabilità.md", + "malleabilità dell'one-time pad": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/malleabilità dell'one-time pad.md", "malleabilità dei cifrari a flusso": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/malleabilità dei cifrari a flusso.md", - "keyed family of pseudo-random permutations": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/keyed family of pseudo-random permutations.md", "limite di dati cifrabili": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/limite di dati cifrabili.md", "keystream": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/keystream.md", + "keyed family of pseudo-random permutations": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/keyed family of pseudo-random permutations.md", "key recovery": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/key recovery.md", - "esperimento ind-dcpa": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/esperimento IND-DCPA.md", "initialization vector": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/initialization vector.md", "famiglia di funzioni pseudo-casuali": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/famiglia di funzioni pseudo-casuali.md", + "esperimento ind-dcpa": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/esperimento IND-DCPA.md", "esperimento ind-cpa": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/esperimento IND-CPA.md", - "distinguibilità degli errori di padding": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/distinguibilità degli errori di padding.md", "esperimento ind-coa": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/esperimento IND-COA.md", + "electronic codebook operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/electronic codebook operation mode.canvas", + "distinguibilità degli errori di padding": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/distinguibilità degli errori di padding.md", "deterministic pseudo-random bitstring generator": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/deterministic pseudo-random bitstring generator.md", "determinismo dell'initialization vector": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/determinismo dell'initialization vector.md", - "cipher feedback operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/cipher feedback operation mode.canvas", "crittografia simmetrica moderna": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/crittografia simmetrica moderna.md", "counter operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/counter operation mode.canvas", + "cipher feedback operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/cipher feedback operation mode.canvas", "cipher block chaining operation mode": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/cipher block chaining operation mode.canvas", - "bruteforce": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/bruteforce.md", "cifrario a flusso": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/cifrario a flusso.md", - "chiave simmetrica": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/chiave simmetrica.md", "cifrario a blocchi": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/cifrario a blocchi.md", + "chiave simmetrica": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/chiave simmetrica.md", + "bruteforce": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/bruteforce.md", "blocco": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/blocco.md", "attacco contro initialization vector prevedibili": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/attacco contro initialization vector prevedibili.md", - "xchacha20": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/XChaCha20.md", "xor": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/XOR.md", + "xchacha20": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/XChaCha20.md", "pkcs7": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/PKCS7.md", "efail": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/EFAIL.md", - "aes": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/AES.md", "des": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/DES.md", "chacha20": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/ChaCha20.md", + "aes": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/AES.md", "a51": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/A51.md", "3des": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Indistinguibilità/3DES.md", - "cifrario di cesare": "8 - Crittografia applicata/2 - Comunicazione simmetrica/2 - Confidenzialità/cifrario di Cesare.md", "crittografia classica": "8 - Crittografia applicata/2 - Comunicazione simmetrica/2 - Confidenzialità/crittografia classica.md", + "cifrario di cesare": "8 - Crittografia applicata/2 - Comunicazione simmetrica/2 - Confidenzialità/cifrario di Cesare.md", "cifrario a trasposizione": "8 - Crittografia applicata/2 - Comunicazione simmetrica/2 - Confidenzialità/cifrario a trasposizione.md", "cifrario a sostituzione": "8 - Crittografia applicata/2 - Comunicazione simmetrica/2 - Confidenzialità/cifrario a sostituzione.md", "tipo di avversario": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/tipo di avversario.md", "testo": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/testo.md", - "irrational attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/irrational attacker.md", - "non-adaptive chosen-ciphertext attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/non-adaptive chosen-ciphertext attacker.md", "plaintext": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/plaintext.md", + "non-adaptive chosen-ciphertext attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/non-adaptive chosen-ciphertext attacker.md", "known-plaintext attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/known-plaintext attacker.md", - "indistinguibilità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/indistinguibilità.md", + "irrational attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/irrational attacker.md", "integrità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/integrità.md", + "indistinguibilità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/indistinguibilità.md", "funzione di decifratura": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/funzione di decifratura.md", - "adaptive chosen-ciphertext attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/adaptive chosen-ciphertext attacker.md", - "chosen-plaintext attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/chosen-plaintext attacker.md", - "ciphertext-only attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/ciphertext-only attacker.md", "funzione di cifratura": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/funzione di cifratura.md", "confidenzialità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/confidenzialità.md", "comunicazione simmetrica": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/comunicazione simmetrica.md", "ciphertext": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/ciphertext.md", - "autenticità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/autenticità.md", + "ciphertext-only attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/ciphertext-only attacker.md", + "chosen-plaintext attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/chosen-plaintext attacker.md", "blob": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/blob.md", + "autenticità": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/autenticità.md", + "adaptive chosen-ciphertext attacker": "8 - Crittografia applicata/2 - Comunicazione simmetrica/1 - Modello/adaptive chosen-ciphertext attacker.md", "update dello stato di un pseudo-random number generator": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/update dello stato di un pseudo-random number generator.md", - "stato di un pseudo-random number generator": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/stato di un pseudo-random number generator.md", "true random number generator": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/true random number generator.md", + "stato di un pseudo-random number generator": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/stato di un pseudo-random number generator.md", "sorgente di rumore": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/sorgente di rumore.md", - "forward secrecy": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/forward secrecy.md", - "backward secrecy": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/backward secrecy.md", - "pseudo-random number generator": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/pseudo-random number generator.md", "random fork": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/random fork.md", "random clone": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/random clone.md", - "entropia": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/entropia.md", + "pseudo-random number generator": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/pseudo-random number generator.md", "mixing": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/mixing.md", "imprevedibilità": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/imprevedibilità.md", "hardware random number generator": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/hardware random number generator.md", "generatore": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/generatore.md", - "entropy pool": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/entropy pool.md", + "forward secrecy": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/forward secrecy.md", "flusso": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/flusso.md", - "dev-random": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/dev-random.md", - "dev-urandom": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/dev-urandom.md", + "entropy pool": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/entropy pool.md", + "entropia": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/entropia.md", "distribuzione uniforme": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/distribuzione uniforme.md", + "dev-urandom": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/dev-urandom.md", + "dev-random": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/dev-random.md", "casualità crittografica": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/casualità crittografica.md", + "backward secrecy": "8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/backward secrecy.md", "violazione": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/violazione.md", "utilizzo": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/utilizzo.md", - "squadra blu": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/squadra blu.md", "squadra": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/squadra.md", "squadra rossa": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/squadra rossa.md", + "squadra blu": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/squadra blu.md", "sfidante": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/sfidante.md", "risorsa": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/risorsa.md", "mitigazione": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/mitigazione.md", @@ -858,9 +863,8 @@ "avversario": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/avversario.md", "attacco": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/attacco.md", "agente": "8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/agente.md", - "risultato": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/risultato.md", - "contesto": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/contesto.md", "vincolo": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/vincolo.md", + "risultato": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/risultato.md", "protocollo": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/protocollo.md", "procedura": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/procedura.md", "problema": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/problema.md", @@ -870,27 +874,32 @@ "funzione": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/funzione.md", "funzione ideale": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/funzione ideale.md", "dominio": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/dominio.md", - "★ introduction to quantum information processing": "7 - Introduction to quantum information processing/★ introduction to quantum information processing.md", - "qbit": "7 - Introduction to quantum information processing/1 - Concetti base/qbit.md", + "contesto": "8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/contesto.md", "stato base di un qbit": "7 - Introduction to quantum information processing/1 - Concetti base/stato base di un qbit.md", + "qbit": "7 - Introduction to quantum information processing/1 - Concetti base/qbit.md", "prodotto tensoriale": "7 - Introduction to quantum information processing/1 - Concetti base/prodotto tensoriale.md", - "bit": "7 - Introduction to quantum information processing/1 - Concetti base/bit.md", "ket": "7 - Introduction to quantum information processing/1 - Concetti base/ket.md", + "bit": "7 - Introduction to quantum information processing/1 - Concetti base/bit.md", + "★ introduction to quantum information processing": "7 - Introduction to quantum information processing/★ introduction to quantum information processing.md", "★ high performance computing": "7 - High performance computing/★ high performance computing.md", "glossario": "7 - High performance computing/glossario.md", "★ big data analytics": "7 - Big data analytics/★ big data analytics.md", "◍ problema distribuito": "0 - Template/◍ problema distribuito.md", "◍ algoritmo distribuito": "0 - Template/◍ algoritmo distribuito.md", + "grafo aciclico": "0 - Generale/grafo aciclico.md", + "albero": "0 - Generale/albero.md", "lista": "0 - Generale/lista.md", - "back edge": "0 - Generale/back edge.md", - "anello": "0 - Generale/anello.md", "insieme": "0 - Generale/insieme.md", - "cardinalità di un insieme": "0 - Generale/cardinalità di un insieme.md" + "cardinalità di un insieme": "0 - Generale/cardinalità di un insieme.md", + "back edge": "0 - Generale/back edge.md", + "anello": "0 - Generale/anello.md" }, "paths": [ + "0 - Generale/albero.md", "0 - Generale/anello.md", "0 - Generale/back edge.md", "0 - Generale/cardinalità di un insieme.md", + "0 - Generale/grafo aciclico.md", "0 - Generale/insieme.md", "0 - Generale/lista.md", "0 - Template/◍ algoritmo distribuito.md", @@ -1745,11 +1754,10 @@ "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/identificatori univoci.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/impulso spontaneo.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/individuale.md", - "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatore singolo.md", - "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/iniziatori multipli.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/insieme degli stati di un'entità.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/interno.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/messaggio.md", + "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/no failure detection.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/personale.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di affidabilità.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di comunicazione.md", @@ -1757,6 +1765,9 @@ "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizione di topologia.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/restrizioni al modello dei sistemi distribuiti.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/rete di comunicazione.md", + "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio parziale.md", + "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio singolo.md", + "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/risveglio totale.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione illimitato.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione limitato.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/ritardo di comunicazione unitario.md", @@ -1766,9 +1777,11 @@ "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/sistema sequenziale.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/stato di un'entità.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione globale.md", + "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione ignorata.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/terminazione locale.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/tick.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/timeout.md", + "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/vicini di un'entità.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti/★ concetti.canvas", "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/broadcast problem.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding v1.md", @@ -1785,6 +1798,7 @@ "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/shout+ protocol.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree construction.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/spanning tree.md", + "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/token metaforico.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal protocol.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/traversal+ protocol.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/★ spanning tree.canvas", @@ -1792,7 +1806,7 @@ "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/computazione in grafi aciclici.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per alberi.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/tecnica di saturazione per grafi aciclici.md", - "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computation in trees.canvas", + "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Computazione/★ computazione.canvas", "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/Angluin 1980.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/FloodMax.md", "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su albero.md",