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
...
...
...
xn21 ...
xn2
...
1
m 1
2
m 1
3
x
x
...
xnm11
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
© Copyright 2026 Paperzz