550 likes | 728 Views
Efficient Dynamic Traitor Tracing. R91922005 余家興 R91922006 張碧娟. Reference. “Efficient Dynamic Traitor Tracing”; O. Berkman , M. Parnas , and J. Sgall ; SODA 2000 “Dynamic Traitor Tracing”; A. Fiat and T. Tassa ; CRYPTO’99. Outline. Introduction Dynamic Traitor Tracing
E N D
Efficient Dynamic Traitor Tracing R91922005 余家興 R91922006 張碧娟
Reference • “Efficient Dynamic Traitor Tracing”; O. Berkman, M. Parnas, and J. Sgall; SODA 2000 • “Dynamic Traitor Tracing”; A. Fiat and T. Tassa; CRYPTO’99
Outline • Introduction • Dynamic Traitor Tracing • Previous Works by Fiat and Tassa • Preliminaries • Proposed Algorithms • The clique algorithm • The optimal algorithm • Many algorithms as building-blocks
Traitor Pirate Traitor Traitor Introduction • Dynamic Traitor Tracing • Number of traitors is unknown
Dynamic Traitor Tracing • Use watermarking techniques • Two important concerns • Number of versions/colors • Limited bandwidth • Number of rounds
Previous Works by Fiat • Any deterministic algorithm must use at least p+1 colors to locate a traitor • Use 2p+1 colors in O(p log n) rounds • Use p+1 colors in O(3pp log n) rounds
Proposed in This Paper • Use p+1 colors in Θ(p2+p log n) • Optimal solution using only p+1 colors • Use p+c+1 colors in O(p2/c+p log n) • 1 ≦ c ≦ p • Use pc+1 colors in O(p logcn) • 2 ≦ c • A tight lower bound for p+c colors • Ω(p2/c+p logc+1n)
Preliminaries • Notation • U: the set of users • n: the number of users, |U|=n • T: the set of traitors, T is in U • p: the number of traitors, |T| = p
Lemma 2.1 • Modify m+p-1 to m is trivial • How to modify m to m+p-1? • A: locates a traitor in m rounds • B: locates all traitors in m+p-1 rounds
Traitor Traitor Traitor From m to m+p-1 • At the mth round of algorithm A, all traitor must have a unique color
Representation • Represent the current state of the algorithm by an undirected graph G=(V,E) • Each vertex represents a subset of users • Each user belongs to exactly one vertex • An edge (X,Y) means that X∪Y contains a traitor • A special vertex I
Basic Algorithm • Start with I=U, V={I}, E=empty, t=0 • t is the lower bound of traitors • Find a vertex X that contains a traitor • Use 2t+1 colors in O(p log n) rounds • Use t+1 colors in exponential rounds • If X=I, split I into two vertices, and connect them. Set I=empty, t=t+1 • Else set I=I∪Y where (X,Y) is in E. Split X into two vertices and connect them
I I I I X1 X1 X1 X3 X2 X2 X2 X4 I: 1,2,3,4,5 I: X1: 1,2,3 X2: 4,5 I: 4,5 X1: 1,2 X2: 3 I: X1: 1,2 X2: 3 X3: 4 X4: 5 Basic Algorithm Example
Some Facts of (t,k)-Graph • A clique Qi of ti vertices contains at least ti-1 traitors • The number of vertices of a (t,k)-graph is at most 2t+1 X3 X4 X1 I X5 X2 A valid (3,2)-graph
The Clique Algorithm • Vertices are partitioned into two zones • Z1 is partitioned into blocks • Each block is induced by the vertices of two cliques Qi and Qj • Z2 contains I and possibly a clique Qi
Blocks in Z1 • A block does not contain a clique of size ti+tj-1 • There are four distinct vertices X1,X2 in Qi, and Y1,Y2 in Qj, such that (X1,Y1), (X2, Y2) are not in E
Z2 • I and the clique Qi do not form a clique of size ti+1 • There exists a vertex X in Qi, such that (X,I) is not in E
The Algorithm • Two phases • Phase 1: Distributing the colors • Allocate ti-1 colors to each clique Qi, and one color to I • Use only t+1 colors • Phase 2: Reorganizing after pirate’s answer • Start with a (0,0)-graph with I=U
Phase 1-1 • For blocks in Z1 • Total available number of colors: ti+tj-2 • Use two colors for (X1,Y1),(X2,Y2) • Remains ti+tj-4 colors • Use one color for each of the remaining ti+tj-4 vertices X1 Y1 tj-2 ti-2 X2 Y2
Phase 1-2 • For blocks in Z2 • Total available number of colors: ti • Use one color for (X,I) • Remain ti-1 colors • Use one color for each of the remaining ti-1 vertices ti-1 X I
Phase 2-1 Broadcasted color is? No New clique Q={X1,X2} k=k+1 given to a pair X,Y Phase 2-2 Qi=Qi\X where Qi contains X |Qi|=1? given to only one vertex X Split X into X1,X2 Connect them Yes Add the vertex to I Qi={X1,X2} No New clique Q={X1,X2} I=empty,t=t+1,k=k+1 X=I? Yes
Phase 2-2 given to a pair X,Y Add edge (X,Y) Connect between? New clique Q=QiUQj Add X to I where X is not in Q k=k-1 pair of clique, and form a ti+tj-1 clique I and a vertex of Qi, and form a ti+1 clique Add I to Qi Set I=empty, t=t+1
Phase 2-3 • When create a new clique Q… • If Z2 contains contains only I • Place Q in Z2 • Otherwise, Z2 contains also a clique • Pair these two cliques and create in Z1 a new block containing them
Lemma 3.1 Proof Illustration I splits O(p log n) splits O(p) times I splits
Data Structures and Invariants • The Graph • G=(V,E) • The vertices are the subsets of the user set U, and form a partition of U. • If (X,Y)E, then X∪Y contains a traitor. • Zones and blocks • G中的點可被分割為四個區域Z1, Z2, Z3, Z4。 • Z1, Z2中的點,可分割為blocks Bi • bi: 在block Bi中已知的traintor數量 • 不同的block(或zone)的點之間,沒有相連的邊!
各個Zone的描述 • Z1: • 分割成數個blocks Bi • 各個block Bi的traitor數量為:3 bi 7 • Z2: • 分割成數個blocks Bi • 各個block Bi的vertices數量為: bi+2(比traitor數多2) • 所有的vertices都是singletons! • 每個block Bi被分割成兩個cliques(各有至少兩個點)。 • 但是Bi不包含一個大小為bi+1的clique
各個Zone的描述 • Z3: • 此區可能是: • 空的; • 有一個clique(大小至少為2), 其所有的vertices都是singletons! • Z4: • 一個 (t,k)-graph,t 2 • Special vertex I(裡面放“Innocent users”): 在這裡表示成K
Number of Traitors • 令z=z1+z2+z3+z4 • zi:Zone Zi中已知的traitors個數 • 定義T:已知存在的traitors總數量至少為T,因此T z。 • Implies the algorithm may use (T+1) colors. • T永遠不會減少。當z>T時,令T=z。
Marks • 在Z2和Z3中的點,都是singletons。 • 這些點可能會被“marked” • 被marked代表的意義: • 被marked的這個使用者,是一個traitor! 或是, • 所有的traitors個數至少是T+1 • 當T增加時,所有的marks都會被移除。
定義q-good block • q-good block:可被分成(q+1)群users:A1, …, Aq, and J,其中, • 每個set Ai包含一個traitor;或者 • 整個block含有超過q個traitors。 A1 A2 Aj Aj’ Aq J ………… ………… …………
使用在Z1的blocks上的演算法 • 接下來這個部分,會介紹五個演算法:Algorithm (I)~(V)。 • (I)~(IV)是作為演算法(V)的building block。 • 以下五個演算法,何時會停止? • 當他們找到:a subset of 2 users that contains a traitor • 後面的說明中,都會省略這個可能性。(因為當此情況發生時,演算法就會停止了) • 也就是說: 每個邊所連的兩個端點中,至少有一邊不是singleton。
證明在這個block中 有超過q個traitors 使用q個顏色 跑 O(logn) rounds • 常數q • q-good block (I) • 證明此block中有超過q個traitors • ,或是 • 在此block中找到一個subset, • 其中包含 k個cliques(共k+q個點) • 也就是說,其中有q個點各有一個traitor 使用q個顏色 跑 O(logn) rounds • 常數q • 已知含有至少q個traitors的block (II) • 在這個block中找到一個4-good block • ,或是, • 找到兩個disjoint subset: • 其中一個包含至少三個traitors • 另一個包含至少一個traitor 使用4個顏色 跑 O(logn) rounds 含有一個五個點 的clique的block (III) 使用3個顏色 跑 O(logn) rounds 含有一個四個點 的clique的block 在這個block中找到一個3-good block (IV) 找到兩個disjoint subset: 其中一個包含至少三個traitors 另一個包含至少一個traitor 每一步: 使用q個顏色 跑 O(logn) 步之後… 一個至少有3個traitors 的block (V) 五個演算法的輸入及結果
證明在這個block中 有超過q個traitors 使用q個顏色 跑 O(logn) rounds • 常數q • q-good block (I) …… …… …… A1,0 A1,1 A2,0 A2,1 Aj,aj Aj,1-aj Aj’,aj’ Aj’,1-aj’ Aq,0 Aq,1 • 整個演算法始終維持一個q-good block。 • 作法:先將每個set Ai等分成兩份:Ai,0和Ai,1 A1 A2 Aj Aj’ Aq J ………… ………… …………
(1)接下來是coloring A1 A2 Aj Aj’ Aq J A1,0 A1,1 A2,0 A2,1 Aj,aj Aj,1-aj Aj’,aj’ Aj’,1-aj’ Aq,0 Aq,1
和J共色的一堆點 (q+2)個點共用一個顏色 雙點共色 Aj,aj和Aj’,aj’ 用同一個顏色 Unique顏色的點 用了(q-2)個顏色 Q:這種coloring方法,要跑幾種不同的組合? A:有 種coloring。 (1)接下來是coloring A1 A2 Aj Aj’ Aq J A1,0 A1,1 A2,0 A2,1 Aj,aj Aj,1-aj Aj’,aj’ Aj’,1-aj’ Aq,0 Aq,1 共用了:1+(q-2)+1=q個顏色
(2) • 如果pirate放出「Unique:只分給set Ai,a的顏色」 • 將另一半Ai,1-a加到J • Ai,a包含一個traitor,因此它的另一半Ai,1-a是無辜的。 • Set Ai = Ai,a,將Ai再等分為Ai,0及Ai,1,回到Step (1) • 如果上面的 rounds中,所有 種選A的方式,pirate結果都output了「和J共色」的顏色的話,表示block中含有超過q個traitors。 • 因為如果block只有剛好q個traitor,表示: • A1~Aq各有一個traitor,因此Ai分出來的兩半中,只有半個會有traitor。 • J沒有traitor 因此 種選擇方法中,至少會選到一種是:所有「和J共色的一堆點」中,沒有任何一個traitor,因此不可能在 種選A的方法中,結果都output了「和J共色」的顏色。 • 矛盾,因此block有超過q個traitors。
(3) • 排除了以上兩點之後,可以假設經過renumbering後,pirate永遠都不會放出「J ∪ A1,1 ∪ …… ∪ Aq,1」的顏色。 • 表示:pirate放出的顏色是:Aj,0 ∪ Aj’,0 for all j j’ Case1:如果:Aj和Aj’是singletons 那麼: Aj,0∪Aj’,0是「包含一個traitor的兩點」演算法停止!
續(3) • Case2:如果:所有Aj中最多只有一個singleton set • 證明可以找到一個不含traitor的subset Aj,1 • 將Aj,1加到J,並令Aj=Aj,0,回到Step(1) • (proof) • A1,0 , …, Aq,0形成q-cliques(有q-1個traitors) • 給J∪A1,0∪A2,1∪…∪Aq,1一個顏色 • 給A1,1∪A2,0另一個顏色 • 說明兩種情形中,都可以找到一個不含traitor的subset Aj,1。
A1 A2 B C D E • 在這個block中找到一個4-good block • ,或是, • 找到兩個disjoint subset: • 其中一個包含至少三個traitors • 另一個包含至少一個traitor 使用4個顏色 跑 O(logn) rounds 含有一個五個點 的clique的block (III) • Algorithm(III) (4.2) • 本來的input是clique on 5 vertices,因此至少有4個traitors。在4.2的情況中,結果是:「There is a 4-good block with J=empty set, one of the set being A1+A2+B, and the other 3 sets being the remaining vertices.」意思是:上圖的C、D、E中必各有traitor(s),而A1∪A2∪B中也有traitor(s)。從原來的5-vertex clique中來看,最多只有一個點沒有traitor,考慮以下情況: • 共僅有4個traitors • 沒有traitor的點為A或B時:反正另一個點有traitor,所以(A1∪A2∪B)這個set還是會有一個traitor。因此Set1=(A1∪A2∪B), Set2=C, Set3=D, Set4=E是一個4-good block。 • 沒有traitor的點是C(或D或E)時:不可能。因為A1和A2中一定有一個點沒有traitor,假設沒有traitor點是A2, 那麼A2C這個edge根本不能存在。但(4.2)的情況是,除了A1A2B這個三角形的三條線以外,其他edge通通存在,因此矛盾。 • 有4個以上traitors:是4-good block
Step (1) 有3個traitors II (q=3) 有4個traitors k cliques with k+3 vertices k{1,3} k=1 k=3 Step (2) 3 clique with 6 vertices 分別有2,2,2個點 因為每個clique都至少有一個traitor, 所以以三個clique為三個sets, 即為一個3-good block 1 clique with 4 vertices A 4-clique IV 3-good block 3-good block I (q=3) 有4個traitors Step (2)
Step (2) 有4個traitors II (q=4) 有5個traitors k cliques with k+4 vertices k{1,3} Step (2.1) Step (2.2) k=1 k=3 Step (3) 1 clique with 5 vertices A 5-clique • 3 clique with 7 vertices • 分別(至少)有1,1,2個traitor(s) • 將此block分成兩個disjoint subsets: • clique with at least 1 traitor, • the other 2 cliques (with at least 3 traitors) III 4-good block 2 subsets with 1 and 3 traitors 結束 I (q=4) 結束 有5個traitors Step (3)
Step (3) 有5個traitors II (q=5) Step (3.1) 有6個traitors k cliques with k+5 vertices k{1,3,5} II (q=6) k=1,3,5 as in Step (3.1) 有7個traitors k cliques with k+6 vertices k{1,3,5} 2 subsets with at least 1 and at least 3 traitors 跑「basic algorithm」 (locate p traitors with 2p+1 colors) k=1,3,5 結束 跑道:需要超過7個顏色時。 (發生於:找到4個disjoint subsets) 2 subsets with at least 1 and at least 3 traitors 4個subset以1:3分開,得到 2 subsets with 1 / 3 traitors 結束 結束
Zone Z1: • 對每個blocks跑演算法(V),因此會使用z1個顏色。當block Bi 跑完(V)時,會有以下兩種情況之一: Case 1 Block Bi被分成兩個subsets,一個至少有1個traitor、另一個至少有3個。 • 第一個加入 zone Z4(詳見(3)) • 第二個留在zone Z1,自成一個block Case 2找到一個含有一個traitor的2-user subset。建立一個新的clique Q(大小為2),其有兩個點,各包含一個user。接下來將各個zone重新整理,方法如下: • 如果zone Z3是空的,將clique Q放到Z3中; • 否則,將Z3的那一個clique拿起來,和Q配在一起,然後在Z2裡建立一個含有這兩個cliques的block。現在Z3空了。 • 剩下的Bi放到zone Z4(詳見(3)) • 以上各情形中,Bi的一個subset X,其含有一個traitor,會被加到zone Z4中。為了要做這件事,要先移去所有和X相連的邊,然後將X分成兩個以一邊相連、大小相等的vertices,並將它當成一個大小為2的clique,加到zone Z4中。z4=z4+1。如果z4=3,跳至Z4的Step(1.2)。 • Zone Z2: • Run the clique algorithm. Z2中clique的個數為偶數個(blocks為兩個cliques構成)。 • 因為所有的vertices都是singleton,所以每一步就會加入一條新的邊(unless we locate a traitor) • 最後,某block Bi中的兩個clique被合成一個大小為 bi+1 的clique Q • 將 Bi剩下 的一個點加到K(大小為 bi+1 的clique Q已經至少含bi個traitors),並且重新整理各個zone,方法如下: • 如果zone Z3是空的,將clique Q放到Z3中; • 否則,將Z3的那一個clique拿起來,和Q配在一起,然後在Z2裡建立一個含有這兩個cliques的block。現在Z3空了。