250 likes | 515 Views
Secure Network Coding and its Application. Yongdae Kim University of Minnesota. Organization. Introduction to Network Coding Practical Network Coding Secure Network Coding Structured File Sharing Conclusion. Network Coding: What is it?. B. Traditional Coding/Routing
E N D
Secure Network Coding and its Application Yongdae Kim University of Minnesota
Organization • Introduction to Network Coding • Practical Network Coding • Secure Network Coding • Structured File Sharing • Conclusion
Network Coding: What is it? B • Traditional Coding/Routing • Coding is done on End-to-End bases. • Intermediate nodes forward data blindly. • Network Coding • Allowing intermediate nodes to manipulate information • Information flowing out of a node is a function of information coming into the node • Originally developed for wireless multicast • Very popular in wireless/sensor networks • Relatively much less attention in P2P A C A? B? C? B A C f (A,B,C)
Linear Network Coding • Information • Packets are vectors over finite field with a fixed dimension • Encoding • Outgoing packets are linear combination of incoming packets • Decoding • Solving a linear equation
Setup • Information (Data) • a file
Setup • Information (Data) • a file • m original blocks (vectors) x1 x2 … xi … … xm
Setup • Information (Data) • a file • m original blocks (vectors) • n elements in a block x1 x2 … xi … … xm n dimension (xi1, xi2, …, xij, …, xin)
Setup • Information (Data) • m augmented vector (coded block) • m+nelements in an augmented vector 10000 x1 x1 01000 x2 x2 30102 yj x3 x3 00100 00010 x4 x4 00001 x5 x5 Example: m=5
BitTorrent: How it works? … 1 … Seed 3 2 … … … 5 4 … … 1 … Seed 3
Network Coding for P2P • Benefits: Most blocks are useful! • Solving New Peer Disadvantage in BitTorrent • New peer can download one block for free • Solving Rare Block Problem • All blocks have to be downloaded in BitTorrent • Churn may result in rare block problem • Taking long time to finish • As a result, potentially almost all nodes can finish at the same time! • Applications • File sharing, Software update, streaming, CDN, P2P TV
Network Coding for P2P • Problems • Resource Overhead • Encoding: Pout = S ai Pi, ai is an random in Fp • Decoding: Solving linear equation: O(n3) • DVD: 4.3 GB Can’t fit everything in memory • Requires random disc I/O • Pollution Attack • Intermediate node has no way to verify if the incoming packet is linear combination of the original block • Corrupted packets can be easily propagated
Solving Resource Overhead • Incremental Encoding
Solving Resource Overhead • Incremental Encoding: Linear Dependency
Secure Network Coding • Threat • Pollution Attacks • General (traditional) hashes do NOT work • Corrupted packet can be mixed with others • Corrupted data can easily be propagated • Problem • Can we verify the integrity of a network-coded block? • Or can we verify if a received block is legitimately mixed before decoding a file?
Secure Network Coding: possible solutions • Homomorphic Hash • Find homomorphic hash function h such that: h(x+y) = h(x) h(y) • If hash of each block can be securely distributed, the receiver can verify the integrity of a linearly transformed block. • Homomorphic signature • Find homomorphic signature function s such that s(x+y) = s(x) s(y) • Verification: v(linearly transformed block, signature) returns true or false.
Ours: Signature Generation • Private key • (s1, …, …, sm+n) • Public key • p, q, g, (gs1, gs2,…, …, gsm+n) • Signature generation at a source • network-coded block v =(v1, v2, …,…, vm+n) • signature σ= s1v1+s2v2 + … + sm+nvm+n • Signature aggregation at intermediate nodes • new block w’ = a1w1+ … + akwk • new signature s(w’) = a1s1+ … + aksk
Ours: signature verification • Public Key • p, q, (gs1, gs2,…, …, gsm+n) • network-coded block • v =(v1, v2, …,…, vm+n) • Compute • d = (gs1)v1(gs2)v2 … (gsm+n)vm+n • verify: d ?= gs
Batch Verification • For each block, verify signatures • Problem • A single block verification takes 13 seconds. • Solution? Pipelining • While downloading/uploading verify signature. • Downloading time of a block: 7 seconds. • Solutions? Batching • Verify linearly combined blocks before sending it out.
Structured File Sharing • To improve mixing • Setup • Peers form a DHT. • Nodes choose their partners from their routing tables. • Data Transfer • A source randomly distributes blocks to nodes. • A node exchange blocks with partners starting from closest partners.
Conclusion • Network coding • Have not fully investigated • Mainly by researchers in coding and networking independently • Many problems remaining before large deployment