Secure Network Coding and its Application
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
Secure Network Coding and its Application
E N D
Presentation Transcript
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