Cellular Automata Encryption

Emilie Menard Barnard

About Cellular Automata

"A cellular automaton (CA) consists of a regular grid of cells, each in one of a finite number of states, such as on and off. For each cell, a set of cells called its neighborhood is defined relative to the specified cell. An initial state is selected by assigning a state for each cell. A new generation is created according to some fixed rule. This rule determines the new state of each cell in terms of the current state of the cell and the states of the cells in its neighborhood."-Wikipedia

CA are used for many applications, including encrypting pictures.

This CA Generator

I designed this CA generator as a final project for my Cryptography course at UC Santa Barbara. It invokes a python script that I wrote to take in a vector input and rule number, and output the resulting CA grid. Each new generation of a given cell depends on the parent cell and the parent's two neighboring cells. Thus, there are 256 different possible rules than can be used. For this reason, any rule number input will taken as mod 256. By clicking on the boxes in the first row, you turn a specific cell on or off. Running the generator on different inputs and rules will give different outputs. You can also set the number of rows and columns for the grid, and your preferred color scheme. If you'd like to see the step-by-step progress of the generator, enable the animation. Enjoy!

Color Scheme:  

Number of Columns:
Number of Rows:
Rule Number (mod 256):
Animate: