슬라이드 1 - Peng Ning

Computer Science
CSC 774 Advanced Network Security
Topic 2.4 Rabin’s Information
Dispersal Algorithm
Slides by Sangwon Hyun
CSC 774
Dr. Peng Ning
1
Motivation
• IDA was developed to provide safe and reliable
transmission of information in distributed systems.
• Inefficiency of retransmission of lost packets
– In multicast transmission, different receivers lose
different sets of packets.
– Re-request and retransmission increases delays.
• Forward error correction technique might be desirable
in distributed systems.
Computer Science
CSC 774
Dr. Peng Ning
2
Basic Idea of IDA
Computer Science
CSC 774
Dr. Peng Ning
3
Dispersal(F, m, n)
• Let F be a data of size N in byte (|F|=N).
• m should be less than or equal to n (m ≤ n).
• Dispersal(F, m, n):
– splitting the data F with some amount of
redundancy resulting in n pieces Fi (1 ≤ i ≤ n).
– |Fi|=|F|/m
• Thus, the size of F, N, should be a multiple of m.
Computer Science
CSC 774
Dr. Peng Ning
4
Dispersal(F, m, n) – Example 1
• |F|=32 bytes, m=4, n=8
F
Dispersal(F, 4, 8)
F1
F2
F3
F4
F5
F6
F7
F8
– |Fi| = 32/4 = 8 bytes (1 ≤ i ≤ n)
Computer Science
CSC 774
Dr. Peng Ning
5
Recovery({Fij |(1≤ j ≤m), (1≤ ij ≤n)}, m, n)
• Recovery({Fij |(1≤ j ≤m), (1≤ ij ≤n)}, m, n):
– reconstructing the original data F from any m
pieces among n pieces (Fi (1 ≤ i ≤ n))
Computer Science
CSC 774
Dr. Peng Ning
6
Recovery({Fij |(1≤ j ≤m), (1≤ ij ≤n)}, m, n) –
Example 2
• |F|=32 bytes, m=4, n=8, |Fi|=8 bytes (1 ≤ i ≤ 8)
• Let us assume that the following 4(=m) pieces are
received.
F1
F3
F4
F7
Recovery({F1, F3, F4, F7}, 4, 8)
F
Computer Science
CSC 774
Dr. Peng Ning
7
Detailed Operations
Computer Science
CSC 774
Dr. Peng Ning
8
Dispersal(F, m, n)
• F = b1,b2,…,bN
– |F|=N, and bi represents each byte in F (0 ≤ bi ≤ 255).
– All computations should be done in GF(28).
• GF(28) is closed under addition and multiplication.
• Every nonzero element in GF(28) has a multiplicative inverse.
• F = (b1,…,bm),(bm+1,…,b2m),…,(bN-m+1,…,bN)
– Si = (b(i-1)m+1,…,bim) T(1 ≤ i ≤ N/m)
• The matrix, M (m × N/m), is constructed as follows:
– M = [ S1 S2 … SN/m ]
Computer Science
CSC 774
Dr. Peng Ning
9
Dispersal(F, m, n)
• The matrix, A (n×m), is constructed as follows:
 a1 
a 
2

A
 ... 
 
a n 
– ai = (ai1, …,aim) (1 ≤ i ≤ n)
• chosen such that every subset of m different vectors are linearly
independent.
Computer Science
CSC 774
Dr. Peng Ning
10
Dispersal(F, m, n)
• The following Vandermonde matrix satisfies the
property required for A.  1 x
x 2 ... x m 1 
1

 1 x2
 1 x3

... ...
1 x
n 1

 1 xn
1
2
2
2
3
x
...
x
...
...
...
xn21 ...
xn2
...
1
m 1
2
m 1
3

x 
x 

... 
xnm11 

m 1
xn 
– m ≤ n, and all xi’s are nonzero elements in GF(28) and pairwise
different.
– Any m different rows are linearly independent, so any matrix
composed of a set of any m different rows is invertible.
Computer Science
CSC 774
Dr. Peng Ning
11
Dispersal(F, m, n)
• n pieces, Fi (1 ≤ i ≤ n), are computed as follows:
 a1 
a 
A  M   2 S1
 ... 
 
a n 
 a 1  S1
a  S
 2 1
 ...

a n  S1
S2 ... S N/m 
a 1  S2
a 2  S2
...
a n  S2
... a1  S N/m   F1 
... a 2  S N/m   F2 

 ... 

...
...
  
... a n  S N/m   Fn 
– ai・Sk = (ai1b(k−1)m+1 + … + aimbkm)
Computer Science
CSC 774
Dr. Peng Ning
12
Dispersal(F, m, n) – Example 3
• |F|=32 bytes, m=4, n=8
– F = b1,b2,…,b32
– F = (b1,…,b4),(b5,…,b8),…,(b29,…,b32)
– M (4×8)
M  S1 S2
 b1
b
2

... S8  
b3

b 4
Computer Science
CSC 774
b5
b6
b7
b8
... b 29 

... b 30 
... b 31 

... b 32 
Dr. Peng Ning
13
Dispersal(F, m, n) – Example 3
– A (8×4)
 a1   1
a  
1
2

A 
 ...  ...
  
a 8   1
Computer Science
2
1
2
2
x1
x
x2
x
...
...
x8
2
8
CSC 774
x
x 

x 
... 
3
x8 
3
1
3
2
Dr. Peng Ning
14
Dispersal(F, m, n) – Example 3
• Fi (1 ≤ i ≤ 8) are computed as follows:
 a1 
a 
A  M   2 S1
 ... 
 
a 8 
 a1  S1
a  S
 2 1
 ...

a 8  S1
S2 ... S8 
a 1  S2
a 2  S2
...
a 8  S2
Computer Science
... a1  S8   F1 
... a 2  S8   F2 

...
...   ... 
  
... a 8  S8   F8 
CSC 774
Dr. Peng Ning
15
Recovery({Fij |(1≤ j ≤m), (1≤ ij ≤n)}, m, n)
• Given m pieces Fij ( (1≤ j ≤m), (1≤ ij ≤n) ),
 Fi1   a i1 
F  a 
 i 2    i 2   M  A'  M
 ...   ... 
   
Fi m  a i m 
• M can be recovered from the given m pieces Fij ( (1≤ j
≤m), (1≤ ij ≤n) ) because A’ is invertible.
 a i1 
a 
 i2 
 ... 
 
a i m 
Computer Science
1
 Fi1 
F 
 i2   M
 ... 
 
Fi m 
CSC 774
Dr. Peng Ning
16
Recovery({Fij |(1≤ j ≤m), (1≤ ij ≤n)}, m, n) –
Example 4
• |F|=32 bytes, m=4, n=8
• In example 3, Fi (1 ≤ i ≤ 8) pieces of 8 bytes are
resulted.
• Assume that {F1,F3,F4,F7} are received among them.
 F1   a 1  S1 a 1  S2
 F  a  S a  S
3
2
 3   3 1
 F4  a 4  S1 a 4  S2
  
 F7  a 7  S1 a 7  S2
Computer Science
... a 1  S8   a 1 



... a 3  S8  a 3 

M
... a 4  S8  a 4 
  
... a 7  S8  a 7 
CSC 774
Dr. Peng Ning
17
Recovery({Fij |(1≤ j ≤m), (1≤ ij ≤n)}, m, n) –
Example 4
• The original data M can be recovered by the following
computation:
 a1 
a 
 3
a 4 
 
a 7 
1
Computer Science
 F1 
F 
 3  M
 F4 
 
 F7 
CSC 774
Dr. Peng Ning
18