Cyclic Codes and Cellular Automata Journes Calculabilits 2016 Luca - - PowerPoint PPT Presentation

cyclic codes and cellular automata
SMART_READER_LITE
LIVE PREVIEW

Cyclic Codes and Cellular Automata Journes Calculabilits 2016 Luca - - PowerPoint PPT Presentation

Cyclic Codes and Cellular Automata Journes Calculabilits 2016 Luca Mariot 1 , 2 1 Dipartimento di Informatica, Sistemistica e Comunicazione (DISCo) Universit degli Studi Milano - Bicocca 2 Laboratoire dInformatique, Signaux et Systmes


slide-1
SLIDE 1

Cyclic Codes and Cellular Automata

Journées Calculabilités 2016

Luca Mariot1,2

1 Dipartimento di Informatica, Sistemistica e Comunicazione (DISCo)

Università degli Studi Milano - Bicocca

2 Laboratoire d’Informatique, Signaux et Systèmes de Sophia Antipolis (I3S)

Université Nice Sophia Antipolis luca.mariot@disco.unimib.it

April 12, 2016

slide-2
SLIDE 2

Part 1: Error-Correcting Codes Basics

slide-3
SLIDE 3

Communication Model

Alice Encoder Channel Noise Decoder Bob

µ

c z

µ

e

◮ µ ∈ {0,1}m: message ◮ c ∈ {0,1}n: codeword (n > m) ◮ e ∈ {0,1}n: error pattern ◮ z = c ⊕e (received word)

Luca Mariot Cyclic Codes and Cellular Automata

slide-4
SLIDE 4

Communication Model

Alice Encoder Channel Noise Decoder Bob

µ

c z

µ

e

◮ µ ∈ {0,1}m: message ◮ c ∈ {0,1}n: codeword (n > m) ◮ e ∈ {0,1}n: error pattern ◮ z = c ⊕e (received word)

ASSUMPTION: at most t <

n

2

  • errors ⇒ wH(e) ≤ t

Luca Mariot Cyclic Codes and Cellular Automata

slide-5
SLIDE 5

Linear Codes

Definition

A (n,m,d) binary linear code C of minimum distance d is an m-dimensional subspace of Fn

2, such that for all distinct c1,c2 ∈ C

dH(c1,c2) ≥ d

Luca Mariot Cyclic Codes and Cellular Automata

slide-6
SLIDE 6

Linear Codes

Definition

A (n,m,d) binary linear code C of minimum distance d is an m-dimensional subspace of Fn

2, such that for all distinct c1,c2 ∈ C

dH(c1,c2) ≥ d g1,··· ,gm ∈ Fn

2 basis of C ⇔ G =

           

g1

. . .

gm

           

m ×n generator matrix of C

Luca Mariot Cyclic Codes and Cellular Automata

slide-7
SLIDE 7

Linear Codes

Definition

A (n,m,d) binary linear code C of minimum distance d is an m-dimensional subspace of Fn

2, such that for all distinct c1,c2 ∈ C

dH(c1,c2) ≥ d g1,··· ,gm ∈ Fn

2 basis of C ⇔ G =

           

g1

. . .

gm

           

m ×n generator matrix of C

Encoding: vector-matrix multiplication

µ → c = µG

Luca Mariot Cyclic Codes and Cellular Automata

slide-8
SLIDE 8

Error Correction (Sphere Shrinking – SS)

◮ t =

d−1

2

  • ⇔ Error-correction capability of C

◮ Sphere of c ∈ C ⇔ Sc = {z ∈ Fn 2 : dH(z,c) ≤ t}

c1 c2 c3 c5 c4 c6 c7 c8 c10 c9 t

Luca Mariot Cyclic Codes and Cellular Automata

slide-9
SLIDE 9

Error Correction (Sphere Shrinking – SS)

◮ t =

d−1

2

  • ⇔ Error-correction capability of C

◮ Sphere of c ∈ C ⇔ Sc = {z ∈ Fn 2 : dH(z,c) ≤ t}

c1 c2 c3 c5 c4 c6 c7 c8 c10 c9 t

SS-Decoding: return the nearest codeword c ∈ C to z ∈ Fn

2

Luca Mariot Cyclic Codes and Cellular Automata

slide-10
SLIDE 10

Error Correction – Syndrome Decoding

◮ Parity Check Matrix: a (n −m)×n matrix H such that

s = Hz⊤ = 0 ⇔ z ∈ C s: Syndrome of z

Luca Mariot Cyclic Codes and Cellular Automata

slide-11
SLIDE 11

Error Correction – Syndrome Decoding

◮ Parity Check Matrix: a (n −m)×n matrix H such that

s = Hz⊤ = 0 ⇔ z ∈ C s: Syndrome of z

◮ Suppose z = c ⊕e, c ∈ C and e ∈ Fn

  • 2. Then

Hz⊤ = H(c ⊕e)⊤ =✟✟ ✟ Hc⊤ ⊕He⊤ = He⊤

Luca Mariot Cyclic Codes and Cellular Automata

slide-12
SLIDE 12

Error Correction – Syndrome Decoding

◮ Parity Check Matrix: a (n −m)×n matrix H such that

s = Hz⊤ = 0 ⇔ z ∈ C s: Syndrome of z

◮ Suppose z = c ⊕e, c ∈ C and e ∈ Fn

  • 2. Then

Hz⊤ = H(c ⊕e)⊤ =✟✟ ✟ Hc⊤ ⊕He⊤ = He⊤

Syndrome Decoding: find e ∈ Fn

2 and return c = z ⊕e

Luca Mariot Cyclic Codes and Cellular Automata

slide-13
SLIDE 13

Cyclic Codes

Definition

A (n,m,d) linear code is cyclic if it is closed under cyclic shifts, i.e. for all c = (c0,c1,··· ,cn−1) ∈ C

σ(c) = (c1,··· ,cn−1,c0) ∈ C

◮ Polynomial representation:

µ = (µ0,··· ,µm−1) → µ(X) = µ0 +µ1X +···+µm−1Xm−1

Luca Mariot Cyclic Codes and Cellular Automata

slide-14
SLIDE 14

Generator and Parity Check Polynomials

◮ Generator polynomial: g(X) = g0 +g1X +···+gn−mXn−m

Encoding: µ(X) → c(X) = µ(X)g(X)

Luca Mariot Cyclic Codes and Cellular Automata

slide-15
SLIDE 15

Generator and Parity Check Polynomials

◮ Generator polynomial: g(X) = g0 +g1X +···+gn−mXn−m

Encoding: µ(X) → c(X) = µ(X)g(X)

◮ Parity-check polynomial: h(X) = (Xn −1)/g(X)

Syndrome: s(X) = z(X)h(X) = 0 ⇔ z ∈ C

Luca Mariot Cyclic Codes and Cellular Automata

slide-16
SLIDE 16

Generator and Parity Check Polynomials

◮ Generator polynomial: g(X) = g0 +g1X +···+gn−mXn−m

Encoding: µ(X) → c(X) = µ(X)g(X)

◮ Parity-check polynomial: h(X) = (Xn −1)/g(X)

Syndrome: s(X) = z(X)h(X) = 0 ⇔ z ∈ C

Cyclic codes of length n ⇔ Divisors of Xn −1

Luca Mariot Cyclic Codes and Cellular Automata

slide-17
SLIDE 17

Generator and Parity Check Matrices of Cyclic Codes

◮ Generator polynomial: g(X) = g0 +g1X +···+gn−mXn−m

G =

                

g0

···

gn−m

··· ··· ··· ···

g0

···

gn−m

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

g0

···

gn−m

                

Luca Mariot Cyclic Codes and Cellular Automata

slide-18
SLIDE 18

Generator and Parity Check Matrices of Cyclic Codes

◮ Generator polynomial: g(X) = g0 +g1X +···+gn−mXn−m

G =

                

g0

···

gn−m

··· ··· ··· ···

g0

···

gn−m

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

g0

···

gn−m

                

◮ Parity-check polynomial: h(X) = h0 +h1X +···+hmXm

H =

                

hm

···

h0

··· ··· ··· ···

hm

···

h0

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

hm

···

h0

                

Luca Mariot Cyclic Codes and Cellular Automata

slide-19
SLIDE 19

Systematic Encoding through LFSR [McEl85]

◮ Parity-check polynomial: h(X) = h0 +h1X +···+hmXm ◮ Reciprocal: h∗(X) = Xmh(1/X) = hm +hm−1X +···+h0Xm

Luca Mariot Cyclic Codes and Cellular Automata

slide-20
SLIDE 20

Systematic Encoding through LFSR [McEl85]

◮ Parity-check polynomial: h(X) = h0 +h1X +···+hmXm ◮ Reciprocal: h∗(X) = Xmh(1/X) = hm +hm−1X +···+h0Xm

µ0

c hm hm−1

+ µ1 ···

h1

+ ··· µm−2

h0

+ µm−1

Luca Mariot Cyclic Codes and Cellular Automata

slide-21
SLIDE 21

Systematic Encoding through LFSR [McEl85]

◮ Parity-check polynomial: h(X) = h0 +h1X +···+hmXm ◮ Reciprocal: h∗(X) = Xmh(1/X) = hm +hm−1X +···+h0Xm

µ0

c hm hm−1

+ µ1 ···

h1

+ ··· µm−2

h0

+ µm−1 c = ( µ0,··· ,µm−1

  • riginal message

,p0,··· ,pn−m−1

  • parity check bits

)

Luca Mariot Cyclic Codes and Cellular Automata

slide-22
SLIDE 22

Part 2: Cellular Automata

slide-23
SLIDE 23

One-Dimensional Cellular Automata (CA)

Definition

One-dimensional cellular automaton: triple n,δ,f where n ∈ N is the number of cells arranged on a one-dimensional array, r ∈ N is the diameter and f : {0,1}δ → {0,1} is the local rule.

Luca Mariot Cyclic Codes and Cellular Automata

slide-24
SLIDE 24

One-Dimensional Cellular Automata (CA)

Definition

One-dimensional cellular automaton: triple n,δ,f where n ∈ N is the number of cells arranged on a one-dimensional array, r ∈ N is the diameter and f : {0,1}δ → {0,1} is the local rule. Example: n = 8, δ = 3, f(si−1,si,si+1) = si−1 ⊕si ⊕si+1

↓ f(1,1,0) = 1⊕1⊕0

1 1

···

0 ··· 1 1 1

Parallel update Global rule F

1 1 1

Luca Mariot Cyclic Codes and Cellular Automata

slide-25
SLIDE 25

One-Dimensional Cellular Automata (CA)

Definition

One-dimensional cellular automaton: triple n,δ,f where n ∈ N is the number of cells arranged on a one-dimensional array, r ∈ N is the diameter and f : {0,1}δ → {0,1} is the local rule. Example: n = 8, δ = 3, f(si−1,si,si+1) = si−1 ⊕si ⊕si+1

↓ f(1,1,0) = 1⊕1⊕0

1 1

···

0 ··· 1 1 1

Parallel update Global rule F

1 1 1

Remark: No boundary conditions ⇒ The array “shrinks”

Luca Mariot Cyclic Codes and Cellular Automata

slide-26
SLIDE 26

Linear CA

◮ Local rule: linear combination of the neighborhood cells

f(x0,··· ,xδ−1) = a0x0 ⊕···⊕aδ−1xδ−1 , ai ∈ F2

Luca Mariot Cyclic Codes and Cellular Automata

slide-27
SLIDE 27

Linear CA

◮ Local rule: linear combination of the neighborhood cells

f(x0,··· ,xδ−1) = a0x0 ⊕···⊕aδ−1xδ−1 , ai ∈ F2

◮ Associated polynomial:

f → ϕ(X) = a0 +a1X +···+aδ−1Xδ−1

Luca Mariot Cyclic Codes and Cellular Automata

slide-28
SLIDE 28

Linear CA

◮ Local rule: linear combination of the neighborhood cells

f(x0,··· ,xδ−1) = a0x0 ⊕···⊕aδ−1xδ−1 , ai ∈ F2

◮ Associated polynomial:

f → ϕ(X) = a0 +a1X +···+aδ−1Xδ−1

◮ Global rule: m ×(m +δ−1) δ-diagonal transition matrix

MF =

                

a0

···

aδ−1

··· ··· ··· ···

a0

···

aδ−1

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

a0

···

aδ−1

                

x = (x0,··· ,xn−1) → MFx⊤

Luca Mariot Cyclic Codes and Cellular Automata

slide-29
SLIDE 29

Linear CA are Cyclic Codes

MF =

                

a0

···

aδ−1

··· ··· ··· ···

a0

···

aδ−1

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

a0

···

aδ−1

                

G =

                

g0

···

gn−m

··· ··· ··· ···

g0

···

gn−m

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

g0

···

gn−m

                

Luca Mariot Cyclic Codes and Cellular Automata

slide-30
SLIDE 30

Linear CA are Cyclic Codes

MF =

                

a0

···

aδ−1

··· ··· ··· ···

a0

···

aδ−1

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

a0

···

aδ−1

                

G =

                

g0

···

gn−m

··· ··· ··· ···

g0

···

gn−m

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

g0

···

gn−m

                 Linear CA ⇔ Cyclic codes

Luca Mariot Cyclic Codes and Cellular Automata

slide-31
SLIDE 31

Linear CA are Cyclic Codes

MF =

                

a0

···

aδ−1

··· ··· ··· ···

a0

···

aδ−1

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

a0

···

aδ−1

                

G =

                

g0

···

gn−m

··· ··· ··· ···

g0

···

gn−m

··· ··· ··· . . . . . . . . . ... . . . . . . . . . ... . . . ··· ··· ··· ···

g0

···

gn−m

                 Linear CA ⇔ Cyclic codes Question: How is encoding/decoding performed?

Luca Mariot Cyclic Codes and Cellular Automata

slide-32
SLIDE 32

Preimage Computation in Linear CA

Remark: if a0, aδ−1 0 then yi = a0x0 ⊕···⊕aδ−1xδ−1 ⇒ xδ−1 = a0x0 ⊕···⊕yi

Luca Mariot Cyclic Codes and Cellular Automata

slide-33
SLIDE 33

Preimage Computation in Linear CA

Remark: if a0, aδ−1 0 then yi = a0x0 ⊕···⊕aδ−1xδ−1 ⇒ xδ−1 = a0x0 ⊕···⊕yi

  • 1. Initialize the leftmost δ−1 cells (x0,··· ,xδ−1)

y = 1 1 1 1 x = ? ? ? ? ? ?

Example: rule 150, f(x1,x2,x3) = x1 ⊕x2 ⊕x3

Luca Mariot Cyclic Codes and Cellular Automata

slide-34
SLIDE 34

Preimage Computation in Linear CA

Remark: if a0, aδ−1 0 then yi = a0x0 ⊕···⊕aδ−1xδ−1 ⇒ xδ−1 = a0x0 ⊕···⊕yi

  • 2. Compute xδ−1 = xδ−1 = a0x0 ⊕···⊕y0

y = 1 1 1 1 x = ? ? ? ? ? ? 0⊕1⊕1 = 0

Example: rule 150, f(x1,x2,x3) = x1 ⊕x2 ⊕x3

Luca Mariot Cyclic Codes and Cellular Automata

slide-35
SLIDE 35

Preimage Computation in Linear CA

Remark: if a0, aδ−1 0 then yi = a0x0 ⊕···⊕aδ−1xδ−1 ⇒ xδ−1 = a0x0 ⊕···⊕yi

  • 3. Shift the (δ−1)-cell window one place to the right

y = 1 1 1 1 x = ? ? ? ? ?

Example: rule 150, f(x1,x2,x3) = x1 ⊕x2 ⊕x3

Luca Mariot Cyclic Codes and Cellular Automata

slide-36
SLIDE 36

Preimage Computation in Linear CA

Remark: if a0, aδ−1 0 then yi = a0x0 ⊕···⊕aδ−1xδ−1 ⇒ xδ−1 = a0x0 ⊕···⊕yi

  • 4. Compute xδ = a0x1 ⊕···⊕y1

y = 1 1 1 1 x = ? ? ? ? ? 1⊕0⊕0 = 1

Example: rule 150, f(x1,x2,x3) = x1 ⊕x2 ⊕x3

Luca Mariot Cyclic Codes and Cellular Automata

slide-37
SLIDE 37

Preimage Computation in Linear CA

Remark: if a0, aδ−1 0 then yi = a0x0 ⊕···⊕aδ−1xδ−1 ⇒ xδ−1 = a0x0 ⊕···⊕yi

  • 5. Repeat until preimage is complete

y = 1 1 1 1 x = 1 ? ? ? ? 0⊕1⊕0 = 1

Example: rule 150, f(x1,x2,x3) = x1 ⊕x2 ⊕x3

Luca Mariot Cyclic Codes and Cellular Automata

slide-38
SLIDE 38

Preimage Computation in Linear CA

Remark: if a0, aδ−1 0 then yi = a0x0 ⊕···⊕aδ−1xδ−1 ⇒ xδ−1 = a0x0 ⊕···⊕yi

  • 5. Repeat until preimage is complete

y = 1 1 1 1 x = 1 1 1 1

Example: rule 150, f(x1,x2,x3) = x1 ⊕x2 ⊕x3

Luca Mariot Cyclic Codes and Cellular Automata

slide-39
SLIDE 39

Preimage Computation = Systematic Encoding

y0 y = y1 y2 ··· ⇔ ··· x0 x = xδ−1 xδ xδ = f(x0,··· ,xδ−1,y0) ↓ ···

x0 a0 a1 + x1 ··· aδ−2 + ··· xδ−2 aδ−1 + xδ−1 aδ + ··· y2 y1 y0

Preimage of linear CA ⇔ LFSR “disturbed” by configuration y

Luca Mariot Cyclic Codes and Cellular Automata

slide-40
SLIDE 40

Preimage Computation = Systematic Encoding

y = ··· ⇔ ··· µ0 µ = µδ−1 µδ µδ = f(µ0,··· ,µδ−1,0) ↓ ···

µ0 a0 a1 + µ1 ··· aδ−2 + ··· µδ−2 aδ−1 + µδ−1 aδ + ···

Systematic Encoding ⇔ 0-preimage of CA initialized with message

Luca Mariot Cyclic Codes and Cellular Automata

slide-41
SLIDE 41

Syndrome Computation = CA Iteration

◮ Polynomial of the CA rule ⇔ Parity check polynomial

Luca Mariot Cyclic Codes and Cellular Automata

slide-42
SLIDE 42

Syndrome Computation = CA Iteration

◮ Polynomial of the CA rule ⇔ Parity check polynomial ◮ Syndrome computation is performed by CA global rule

Luca Mariot Cyclic Codes and Cellular Automata

slide-43
SLIDE 43

Syndrome Computation = CA Iteration

◮ Polynomial of the CA rule ⇔ Parity check polynomial ◮ Syndrome computation is performed by CA global rule

s =

⇓ F

1 z = 1 1 1 1

(a) s = 0 ⇒ No errors

Luca Mariot Cyclic Codes and Cellular Automata

slide-44
SLIDE 44

Syndrome Computation = CA Iteration

◮ Polynomial of the CA rule ⇔ Parity check polynomial ◮ Syndrome computation is performed by CA global rule

s =

⇓ F

1 z = 1 1 1 1

(a) s = 0 ⇒ No errors

s = 1 1 1

⇓ F

1 z = 1 1

(b) s 0 ⇒ Errors occurred

Luca Mariot Cyclic Codes and Cellular Automata

slide-45
SLIDE 45

Syndrome Computation = CA Iteration

◮ Polynomial of the CA rule ⇔ Parity check polynomial ◮ Syndrome computation is performed by CA global rule

s =

⇓ F

1 z = 1 1 1 1

(a) s = 0 ⇒ No errors

s = 1 1 1

⇓ F

1 z = 1 1

(b) s 0 ⇒ Errors occurred

Last Missing Piece: minimum distance d

Luca Mariot Cyclic Codes and Cellular Automata

slide-46
SLIDE 46

Resilient Boolean Functions [Sieg84]

Definition

F : Fn

2 → Fm 2 is t-resilient if, by fixing any t input variables xi1,··· ,xit,

the resulting restriction ˜ F : Fn−t

2

→ Fm

2 is balanced.

Luca Mariot Cyclic Codes and Cellular Automata

slide-47
SLIDE 47

Resilient Boolean Functions [Sieg84]

Definition

F : Fn

2 → Fm 2 is t-resilient if, by fixing any t input variables xi1,··· ,xit,

the resulting restriction ˜ F : Fn−t

2

→ Fm

2 is balanced.

Theorem ([Stin04])

A linear function F : Fn

2 → Fm 2 is (d −1)–resilient iff MF is the

generator matrix of a (n,m,d) linear code.

Luca Mariot Cyclic Codes and Cellular Automata

slide-48
SLIDE 48

Part 3: Cyclic Hamming Codes by CA

slide-49
SLIDE 49

Hamming Codes

◮ Minimum distance: d = 3 (⇒ can correct up to 1 error) ◮ Syndrome value ⇔ column of the parity check matrix H where

the error occurred

◮ A (n,m,3) cyclic code is a Hamming code iff the generator

polynomial is primitive

Luca Mariot Cyclic Codes and Cellular Automata

slide-50
SLIDE 50

The (7,4,3) Hamming Code through CA (1/4)

◮ Let 7,4,f be a CA induced by local rule f(x) = x1 ⊕x2 ⊕x4.

Luca Mariot Cyclic Codes and Cellular Automata

slide-51
SLIDE 51

The (7,4,3) Hamming Code through CA (1/4)

◮ Let 7,4,f be a CA induced by local rule f(x) = x1 ⊕x2 ⊕x4. ◮ Transition matrix of F : F7 2 → F4 2:

MF =

              

1 1 1 1 1 1 1 1 1 1 1 1

              

Luca Mariot Cyclic Codes and Cellular Automata

slide-52
SLIDE 52

The (7,4,3) Hamming Code through CA (1/4)

◮ Let 7,4,f be a CA induced by local rule f(x) = x1 ⊕x2 ⊕x4. ◮ Transition matrix of F : F7 2 → F4 2:

MF =

              

1 1 1 1 1 1 1 1 1 1 1 1

              

◮ Associated polynomial: f → g(X) = 1+X +X3

Luca Mariot Cyclic Codes and Cellular Automata

slide-53
SLIDE 53

The (7,4,3) Hamming Code through CA (1/4)

◮ Let 7,4,f be a CA induced by local rule f(x) = x1 ⊕x2 ⊕x4. ◮ Transition matrix of F : F7 2 → F4 2:

MF =

              

1 1 1 1 1 1 1 1 1 1 1 1

              

◮ Associated polynomial: f → g(X) = 1+X +X3 ◮ g(X) is primitive and divides X7 −1, F is 2–resilient

Luca Mariot Cyclic Codes and Cellular Automata

slide-54
SLIDE 54

The (7,4,3) Hamming Code through CA (2/4)

Parity check polynomial:

◮ h(X) = (X7 −1)/g(X) = 1+X +X2 +X4

Luca Mariot Cyclic Codes and Cellular Automata

slide-55
SLIDE 55

The (7,4,3) Hamming Code through CA (2/4)

Parity check polynomial:

◮ h(X) = (X7 −1)/g(X) = 1+X +X2 +X4 ◮ Local rule → f∗(x) = x1 ⊕x3 ⊕x4 ⊕x5

Luca Mariot Cyclic Codes and Cellular Automata

slide-56
SLIDE 56

The (7,4,3) Hamming Code through CA (2/4)

Parity check polynomial:

◮ h(X) = (X7 −1)/g(X) = 1+X +X2 +X4 ◮ Local rule → f∗(x) = x1 ⊕x3 ⊕x4 ⊕x5 ◮ Transition matrix of F∗ : F7 2 → F3 2:

MF∗ =

         

1 1 1 1 1 1 1 1 1 1 1 1

         

Luca Mariot Cyclic Codes and Cellular Automata

slide-57
SLIDE 57

The (7,4,3) Hamming Code through CA (3/4)

Example of systematic encoding: Let µ = (0,1,1,0) 0 = 1 1 x = 0 ? ? ?

µ

(a) Initialization

0 = 1 1 x = 1

µ

(b) Complete codeword

Luca Mariot Cyclic Codes and Cellular Automata

slide-58
SLIDE 58

The (7,4,3) Hamming Code through CA (4/4)

Example of error correction: suppose the 4th bit has been flipped s = 1 1 1 1 x = 1 1

(a) Syndrome computation

         

1 1 1 1 1 1 1 1 1 1 1 1

          ↑

(b) Error correction

Luca Mariot Cyclic Codes and Cellular Automata

slide-59
SLIDE 59

Conclusions

◮ Linear CA are equivalent to linear cyclic codes ◮ Systematic encoding ⇔ CA preimage computation ◮ Syndrome computation ⇔ CA forward evolution ◮ Minimum distance ⇔ Resiliency of CA global rule

Luca Mariot Cyclic Codes and Cellular Automata

slide-60
SLIDE 60

Future directions

Cyclic codes form a broad category of linear codes:

◮ Reed-Solomon Codes ◮ BCH Codes ◮ Reed-Muller Codes ◮ ...

Applications to cryptography:

◮ MDS matrices for diffusion layer in block ciphers ◮ Secret sharing schemes

Luca Mariot Cyclic Codes and Cellular Automata

slide-61
SLIDE 61

References

[McEl85] McEliece, R.J.: The Theory of Information and

  • Coding. Cambridge University Press, New York (1985)

[Sieg84]Siegenthaler, T.: Decrypting a Class of Stream Ciphers Using Ciphertext Only. IEEE Trans. Comput. C-34(1), 81–85 (1985) [Stins04] Stinson, D.R.: Combinatorial Designs: Constructions and Analysis. Springer, Heidelberg (2004)

Luca Mariot Cyclic Codes and Cellular Automata