La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

SD e LSD Presentazione di: Gaetano Ragozzino Lezione tenuta dal Prof. P. DArco.

Presentazioni simili


Presentazione sul tema: "SD e LSD Presentazione di: Gaetano Ragozzino Lezione tenuta dal Prof. P. DArco."— Transcript della presentazione:

1 SD e LSD Presentazione di: Gaetano Ragozzino Lezione tenuta dal Prof. P. DArco

2 SD (Subset Difference) Obiettivo:Ridurre la lunghezza dellheader da O(r*lg(N/r)) a O(r) Obiettivo:Ridurre la lunghezza dellheader da O(r*lg(N/r)) a O(r) Idea: Ampliare la collezione di sottoinsiemi {S 1 …S n } con cui ricoprire N\R Idea: Ampliare la collezione di sottoinsiemi {S 1 …S n } con cui ricoprire N\R

3 1)Collezione di sottoinsiemi S 1 …S w con cui ricoprire N\R 1)Collezione di sottoinsiemi S 1 …S w con cui ricoprire N\R S i,j ={sottoinsiemi di foglie discendenti da v i ma non da v j } S i,j ={sottoinsiemi di foglie discendenti da v i ma non da v j } SD={tutti i sottoinsiemi differenza S i,j } SD={tutti i sottoinsiemi differenza S i,j } ……… vivi vjvj vivi vjvj

4 2)Assegnamento di chiavi L i,j ai sottoinsiemi S i,j 1°Caso: L i,j scelte indipendentemente e uniformemente a caso 1°Caso: L i,j scelte indipendentemente e uniformemente a caso 2°Caso: L i,j calcolate attraverso un generatore pseudo casuale 2°Caso: L i,j calcolate attraverso un generatore pseudo casuale

5 Dato R, calcoliamo lalbero di Steiner (ST(R)) e poniamo T=ST(R) Dato R, calcoliamo lalbero di Steiner (ST(R)) e poniamo T=ST(R) i=1 m 3) Partizionamento di N\R=U S i 3) Partizionamento di N\R=U S i

6 1.Siano v i e v j due foglie t.c. il più piccolo antenato v non contenga altre foglie di T. Siano v e e v k figli di v t.c. v i discende da v e e v j da v k. 1.Siano v i e v j due foglie t.c. il più piccolo antenato v non contenga altre foglie di T. Siano v e e v k figli di v t.c. v i discende da v e e v j da v k. 2.Se v e è diverso da v i aggiungi S e,i. Se v k è diverso da v j aggiungi S k,j. 2.Se v e è diverso da v i aggiungi S e,i. Se v k è diverso da v j aggiungi S k,j. 3.Rimuovi da T tutti i discendenti di v e trasforma v in una foglia. 3.Rimuovi da T tutti i discendenti di v e trasforma v in una foglia. 4.Se rimane una foglia termina, altrimenti ritorna al passo 1. 4.Se rimane una foglia termina, altrimenti ritorna al passo 1. Procedura di partizionamento

7 R={18,22,27}; v i =18; v j =22; v=2; v e =4; v k =5; 1) 2)S 4,18, S 5,22 v veve vkvk RRR 3)

8 ve=vive=vi v j =R v i =2; v j =27; v=1; v e =2; v k =3; 1)v vkvk 2)S 4,18, S 5,22,, S 3,27 3) Rimane solo la radice

9 RRR S 4,18 S 5,22 S 3,27 Header

10 Taglia Header? Lemma. Dato un qualsiasi insieme di revocati R, il metodo precedente partiziona N\R in al più 2r-1 sottoinsiemi disgiunti. Lemma. Dato un qualsiasi insieme di revocati R, il metodo precedente partiziona N\R in al più 2r-1 sottoinsiemi disgiunti. Ad ogni passo vengono aggiunti alla copertura al più due sottoinsiemi differenza e il numero di revocati diminuisce di uno ad eccezione dellultimo passo che potrebbe non ridurre il numero di revocati e aggiungere un sottoinsieme. Ad ogni passo vengono aggiunti alla copertura al più due sottoinsiemi differenza e il numero di revocati diminuisce di uno ad eccezione dellultimo passo che potrebbe non ridurre il numero di revocati e aggiungere un sottoinsieme.

11 Quanto vale |SD|? Ipotesi: numero utenti N potenza di 2. Ipotesi: numero utenti N potenza di vivi vjvj vjvj S 1,2 S 1,3 |SD|= vivi vjvj vjvj vjvj vjvj vjvj vjvj S 1,2 S 1,3 S 1,4 S 1,5 S 1,6 S 1,7 |SD|=6 Sia v i il nodo radice di un albero di altezza k. Allora v j può assumere: 2 k +(2 k -1) -1= 2*2 k -2 posizioni

12 Quanto vale |SD|? Quante posizioni v i può assumere? Quante posizioni v i può assumere? Consideriamo lalbero T con altezza k=2 Consideriamo lalbero T con altezza k= vivi vivi vivi #sottoalberi di altezza k=2 => 2 lg4-2 =1 #sottoalberi di altezza k=1 => 2 lg4-1 =2

13 Quanto vale |SD|? Quindi: Quindi: #S i,j = [2*2 k -2]*2 lgN-k #S i,j = [2*2 k -2]*2 lgN-k #posizioni che v j può assumere in T i #sottoalberi T i di altezza k = 2* 2 k *2 lgN-k -2* 2 lgN-k k=1 lgN k=1 lgN k=1

14 Quanto vale |SD|? =2* N -2* 2 lgN-k =2* N -2* 2 lgN-k Sia l=lgN-k; Per k=1, si ha l=lgN-1; Per k=lgN, si ha l=0; Sia l=lgN-k; Per k=1, si ha l=lgN-1; Per k=lgN, si ha l=0; Poichè 2 i =2 m+1 -1, risulta Poichè 2 i =2 m+1 -1, risulta = 2* N -2* 2 l = 2* N -2* 2 l = 2*N*lgN -2N+2 = 2*N*lgN -2N+2 = O(N*lgN) = O(N*lgN) lgN k=1 lgN k=1 m i=0 lgN k=1l=0 lgN-1

15 2)Assegnamento di chiavi L i,j a S i,j 1°Caso: L i,j scelte indipendentemente e uniformemente a caso 1°Caso: L i,j scelte indipendentemente e uniformemente a caso Quanto vale |I u |? Quanto vale |I u |? u v j non è sulla path TkTk k u memorizza #chiavi L i,j proporzionale al #nodi di T k che non si trovano sulla path u-root

16 Quanto vale |I u |? Relativamente allalbero T k Relativamente allalbero T k I u =2 k +2 k -1-(k+1)=2*2 k -k-2 Quindi occorre tener conto di tutti gli alberi di altezza k, per 1<=k<=lgN Quindi occorre tener conto di tutti gli alberi di altezza k, per 1<=k<=lgN #foglie #nodi interni path

17 Quanto vale |I u |? I u = (2 k+1 -k-2)= 2 k+1 – (k+2) I u = (2 k+1 -k-2)= 2 k+1 – (k+2) = 2* 2 k - k -2*lgN = 2* 2 k - k -2*lgN Poichè h =m(m+1)/2 e 2 i =2 m+1 -1, risulta = 2*(2 lgN+1 -2) –lgN(lgN+1)/2 -2*lgN = 2*(2 lgN+1 -2) –lgN(lgN+1)/2 -2*lgN = 4*N -4 –lgN(lgN+1)/2 -2lgN = 4*N -4 –lgN(lgN+1)/2 -2lgN = O(N) = O(N) k=1 lgN k=1 lgN k=1 lgN k=1 lgN k=1 lgN h=1 mm i=0

18 2°Caso: L i,j calcolate attraverso un generatore pseudo casuale 2°Caso: L i,j calcolate attraverso un generatore pseudo casuale G:{0,1} n {0,1} 3n G:{0,1} n {0,1} 3n S – label casuale del nodo, S – label casuale del nodo, G_L(S) – label del figlio sinistro, G_L(S) – label del figlio sinistro, G_R(S) – label del figlio destro, G_R(S) – label del figlio destro, G_M(S) – chiave del nodo. G_M(S) – chiave del nodo. G (S) = G_L (S) G_M (S) G_R (S) S G_L (S)G_R (S) 2)Assegnamento di chiavi L i,j a S i,j

19 … S=L i G_L (L i ) G_L(G_L (L i )) G_L(G_L(G_L (L i ))) LABEL i,j = G_R(G_L(G_L (L i ))) L i,j = G_M ( LABEL i,j ) …… G_R(G_L(G_L (L i ))) G_R (L i ) vivi vjvj Calcolo della chiave L i,j associata a S i,j

20 Ogni utente corrisponde ad una foglia Ogni utente corrisponde ad una foglia dellalbero. dellalbero. Ad ogni nodo interno v i viene associato un valore casuale L i Ad ogni nodo interno v i viene associato un valore casuale L i Le etichette associate ai sottoinsiemi differenza S i,j sono calcolate a partire da L i Le etichette LABEL i,j associate ai sottoinsiemi differenza S i,j sono calcolate a partire da L i Calcolo e distribuzione delle etichette Calcolo e distribuzione delle etichette LABEL i,j

21 Per ogni antenato v i di u con label casuale, u riceve tutte le etichette pseudocasuali associate ai nodi v j che sono a distanza uno dalla path da v i ad u. Per ogni antenato v i di u con label casuale L i, u riceve tutte le etichette pseudocasuali LABEL i,j associate ai nodi v j che sono a distanza uno dalla path da v i ad u. A partire da esse, lutente u può calcolare le etichette di tutti i sottoinsiemi differenza S i,j a cui appartiene, relativamente allalbero radicato in v i. A partire da esse, lutente u può calcolare le etichette di tutti i sottoinsiemi differenza S i,j a cui appartiene, relativamente allalbero radicato in v i. Calcolata letichetta Calcolata letichetta LABEL i,j, lutente può calcolare la chiave L i,j vivi u Calcolo e distribuzione delle etichette Calcolo e distribuzione delle etichette LABEL i,j

22 Quante etichette deve memorizzare u per poter calcolare le chiavi L i,j di tutti i sottoinsiemi differenza a cui appartiene? Quante etichette deve memorizzare u per poter calcolare le chiavi L i,j di tutti i sottoinsiemi differenza a cui appartiene? Ogni path con k nodi contribuisce con k-1 etichette, quindi Ogni path con k nodi contribuisce con k-1 etichette, quindi #totetichette = (k-1)+1 = lgN*(logN+1)/2+1 = lgN*(logN+1)/2+1 = O(lg 2 N) = O(lg 2 N) k=1 lgN+1 Etichette

23 Perché funziona? (light …) Osservazione 1. Ogni nodo v j che non è un antenato di u in T i ha unetichetta LABEL i,j che può essere calcolata a partire da unetichetta di un nodo a distanza uno dalla path u – root di T i Osservazione 2. Un utente u non è in grado di calcolare chiavi associate a sottoinsiemi differenza a cui non appartiene

24 LSD (Layered Subset Difference) Idea: sfoltire la collezione di sottoinsiemi di SD {S 1 …S w } e permettere di ricoprire N\R ancora con O(r) sottoinsiemi ma in modo tale che lutente u memorizzi O(lg 3/2 N) etichette Idea: sfoltire la collezione di sottoinsiemi di SD {S 1 …S w } e permettere di ricoprire N\R ancora con O(r) sottoinsiemi ma in modo tale che lutente u memorizzi O(lg 3/2 N) etichette

25 vivi S i,,j = S i,k U S k,,j vkvk vjvj Se v i,v k,v j sono vertici che occorrono in questo ordine lungo una path radice-foglia allora S i,j può sempre essere ottenuto come lunione di S i,k e S k,j, cioè, se serve S i,j si possono usare S i,k e S k,j

26 La collezione di insiemi S i,j in LSD si ottiene restringendo i livelli in cui i vertici v i e v j possono stare La collezione di insiemi S i,j in LSD si ottiene restringendo i livelli in cui i vertici v i e v j possono stare Strato lgN Livello Speciale 2lgN

27 Identifichiamo nellalbero lgN livelli speciali. I livelli tra due livelli speciali compresi gli estremi formano uno strato. S i,j è nella collezione di sottoinsiemi di LSD se e solo se : Identifichiamo nellalbero lgN livelli speciali. I livelli tra due livelli speciali compresi gli estremi formano uno strato. S i,j è nella collezione di sottoinsiemi di LSD se e solo se : v i giace su un livello speciale v i giace su un livello speciale v i e v j appartengono allo stesso strato v i e v j appartengono allo stesso strato Livelli speciali e strati

28 Esempio di funzionamento v2v2 v4v4 v5v5 v1v1 v8v8 v 10 v9v9 v 11 v 12 v 13 v 14 v 15 v3v3 v6v6 v7v7 u1u1 u2u2 u3u3 u4u4 u5u5 u8u8 u9u9 u7u7 u6u6 u 10 u 11 u 12 u 13 u 16 u 15 u 14 SD: S v4,u1, S v10,u5, S v11,u8, S v3,u12 ; LSD: Livelli speciali Strati S v11,u8,S v10,u5,S v4,u1,S v3,v6,S v6,u12 ;

29 Collezione di sottoinsiemi LSD Insiemi S i,j che soddisfano le condizioni sono detti utili Insiemi S i,j che soddisfano le condizioni sono detti utili lgN(lgN* lgN) + lgN*lgN = 0(lg 3/2 N)lgN(lgN* lgN) + lgN*lgN = 0(lg 3/2 N) #strati #etichette di ogni strato #livelli speciali #posizioni di v j nel caso peggiore(v i sul 1°livello speciale)

30 Riferimenti D. Naor, M. Naor and J. Lotspiech. Revocation and Tracing Schemes for Stateless Receivers. Advances in Cryptology, Proceedings of Crypto'01, Lecture Notes in Computer Science, Vol. 2139, pp , D. Halevy and A. Shamir. The LSD Broadcast Encryption Scheme. Advances in Cryptology, Proceedings of Crypto '02, Lecture Notes in Computer Science, Vol. 2442, pp , 2002.


Scaricare ppt "SD e LSD Presentazione di: Gaetano Ragozzino Lezione tenuta dal Prof. P. DArco."

Presentazioni simili


Annunci Google