24
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

Embed Size (px)

Citation preview

Page 1: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Secure Network Coding and its

Application

Yongdae KimUniversity of Minnesota

Page 2: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

OrganizationIntroduction to Network Coding

Practical Network Coding

Secure Network Coding

Structured File Sharing

Conclusion

Page 3: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Network Coding: What is it? Traditional Coding/Routing

Coding is done on End-to-End bases. Intermediate nodes forward data blindly.

Network CodingAllowing 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

AB

C

f (A,B,C)

A? B? C?

AB

C

Page 4: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Linear Network Coding InformationPackets are vectors over finite field

with a fixed dimension

EncodingOutgoing packets are linear

combination of incoming packets

DecodingSolving a linear equation

Page 5: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Linear Network Coding: Equation

Page 6: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Setup Information (Data)a file

Page 7: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Setup Information (Data)a filem original blocks (vectors)

x1 x2 … xi … … xm

Page 8: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Setup Information (Data)a filem original blocks (vectors)n elements in a block

x1 x2 … xi … … xm

n dimension(xi1, xi2, …, xij, …,

xin)

Page 9: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Setup Information (Data)m augmented vector (coded block)m+n elements in an augmented vector

x1

x2

x3

x4

x5

x1

x2

x3

x4

x5

10000

01000

00100

00010

00001

yj30102

Example: m=5

Page 10: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

BitTorrent: How it works?

Seed

Seed

1

2

5

3

4

1

3

Page 11: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

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!

ApplicationsFile sharing, Software update, streaming, CDN, P2P TV

Page 12: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

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

Page 13: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Solving Resource OverheadIncremental Encoding

Page 14: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Solving Resource OverheadIncremental Encoding: Linear Dependency

Page 15: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Secure Network CodingThreatPollution AttacksGeneral (traditional) hashes do NOT work Corrupted packet can be mixed with others

Corrupted data can easily be propagated

ProblemCan we verify the integrity of a network-coded block?Or can we verify if a received block is legitimately

mixed before decoding a file?

Page 16: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Secure Network Coding: possible solutions

Homomorphic HashFind 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 signatureFind homomorphic signature function s such that

s(x+y) = s(x) s(y)Verification: v(linearly transformed block, signature) returns

true or false.

Page 17: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Ours: Signature GenerationPrivate key(s1, …, …, sm+n)

Public keyp, q, g, (gs1, gs2 ,…, …, gsm+n)

Signature generation at a sourcenetwork-coded block v =(v1, v2, …,…, vm+n)signature σ= s1v1+s2v2 + … + sm+nvm+n

Signature aggregation at intermediate nodesnew block w’ = a1w1+ … + akwk new signature (s w’) = a1s1+ … + aksk

Page 18: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Ours: signature verificationPublic Keyp, q, (gs1, gs2 ,…, …, gsm+n)

network-coded blockv =(v1, v2, …,…, vm+n)

Compute d = (gs1)v1 (gs2)v2 … (gsm+n)vm+n

verify: d ?= gs

Page 19: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

ComparisonKrohn’s Ours Etc

Type Hash Signature

Generators n m+n

# of hash/signature

m m

Signing cost n modexp m+n mult

Precomputation n modexp N/A h(xi) = P nj=1 gj

xi j

Robust Channel Needed N/A Delivery of h(xi)

Aggregation N/A Linear combination

Verification m+n modexp

m+n+1 modexp

Page 20: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Batch VerificationFor each block, verify signatures

ProblemA single block verification takes 13 seconds.

Solution? PipeliningWhile downloading/uploading verify signature.

Downloading time of a block: 7 seconds.

Solutions? BatchingVerify linearly combined blocks before sending it out.

Page 21: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Batch Verification

Page 22: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Structured File SharingTo improve mixing

SetupPeers form a DHT. Nodes choose their partners from their routing

tables.

Data TransferA source randomly distributes blocks to nodes. A node exchange blocks with partners starting

from closest partners.

Page 23: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

Simulation Result (No Churn)

Page 24: Organization  Introduction to Network Coding  Practical Network Coding  Secure Network Coding  Structured File Sharing  Conclusion

ConclusionNetwork codingHave not fully investigatedMainly by researchers in coding and networking

independently

Many problems remaining before large deployment