180 likes | 205 Views
Conduct software simulation comparing 3 cellular encryption algorithms, select the best, and implement it in hardware. Background on Cellular Computation, Cellular Automata, Hybrid CAs, and Integer Functions. Detailed explanation of Block Cipher, RSA encryption, and its implementation. Overview of simulation in hardware. Cellular encryption using hybrid CAs and integer to Boolean function conversion. Hardware implementation process explained.
E N D
Cellular EncryptionCREU Project Team: Alburn Brown Orkun Kaya Isaac Rieksts Eric Thorpe
Overview • Construct software simulation • Compare 3 cellular encryption algorithms • Choose the best one • Implement it in hardware Kutztown University
Background :: Cellular Computation • Cellular Automata • Cellular Automata with Shadow Cells • Hybrid Cellular Automata • Integer Functions • Cellular Encryption Kutztown University
Cellular Automata • John von Neumann • Uniform cells • “Peer Pressure Automata” • Uniform transition function • Turing Machine computing power Kutztown University
Cellular Automata with Shadow Cells • Need to compute integer functions • Limitation of classic CAs • Shadow cells enable integer computation • Wasted memory Kutztown University
Hybrid Cellular Automata • Relaxing the uniform transition rule • Memory savings • All integer functions computable Kutztown University
Integer Functions • Block cipher = integer function • Example: RSA • How many integer functions? • How many identity avoiding functions? Kutztown University
Block Cipher = Integer Function • An integer can represent any text string • Let p represent a given plaintext • Let c represent the corresponding ciphertext • Then f(p) = c represents the encryption • And f-1(c) = p represents the decryption • Both f and f -1 are integer functions Kutztown University
RSA is an integer function • Encryption: f(p) = pe mod n • e is encryption key • n = p*q • p & q, two very large primes • Decryption: f-1(c) = cd mod n • d is decryption key • e*d mod f(n) = 1 • f(n) is Euler totient function • f(n) = (p-1)*(q-1) • Clearly an integer function Kutztown University
How Many Integer Functions? • Consider all 1-1 and onto functions • Let range be 0 to N-1. • Each function is one arrangement of integers 0 to N-1, i.e., a permutation. • Number of functions = number of permutations • How many? N! Kutztown University
How Many Are Identity Avoiding? • Want to avoid: • f(p) = p, for all p within the range • We call such functions “identity avoiding” • How many such functions? • 1-1, onto, identity avoiding functions • Over the integers: 0 to N-1 • N! / e Kutztown University
Identity Avoiding Integer Functions • Over the integers 0 to M-1 • There are :: N! / e • e is a constant • Order of magnitude :: O(N!) Kutztown University
Cellular Encryption • Integers 0 to 2k – 1 represent: • Plain text • Cipher text • Choose at random from 2k!/e possibilities • k cells of hybrid CA • Will encrypt • By computing chosen integer function • Each cell computes one Boolean function Kutztown University
Encryption Cell Details • Represent integer in binary • 3 bit example • Base 10:: f(3) = 5 • Binary:: f(011) = 101 • Work is spread among 3 cells • Cell0:: f0(011) = 1 • Cell1:: f1(011) = 0 • Cell2:: f2(011) = 1 Kutztown University
Integer ► Boolean • An integer function – base 10 & binary: • f(0) = 3 f(000) = 011 • f(1) = 6 f(001) = 110 • f(2) = 7 f(010) = 111 • f(3) = 5 f(011) = 101 • f(4) = 2 f(100) = 010 • f(5) = 1 f(101) = 001 • f(6) = 0 f(110) = 000 • f(7) = 4 f(111) = 100 Kutztown University
Integer ► Boolean • Cell by cell • f(000) = 011► f0(000) = 0 f1(000) = 1 f 2(000) = 1 • f(001) = 110► f0(001) = 1 f1(001) = 1 f2(001) = 0 • f(010) = 111► f0(010) = 1 f1(010) = 1 f2(010) = 1 • f(011) = 101► f0(011) = 1 f1(011) = 0 f2(011) = 1 • f(100) = 010► f0(100) = 0 f1(100) = 1 f2(100) = 0 • f(101) = 001► f0(101) = 0 f1(101) = 0 f2(101) = 1 • f(110) = 000► f0(110) = 0 f1(110) = 0 f2(110) = 0 • f(111) = 100► f0(111) = 1 f1(111) = 0 f2(111) = 0 Kutztown University
Hardware Implementation • Plain text is k bits long • There are k cells • Each cell gets k bits of input • Each cell computes its own Boolean function • Together cells compute k-bit integer function Kutztown University
THE ENDbrow8558@kutztown.edukaya0015@kutztown.eduriek7902@kutztown.eduthor2668@kutztown.edurieksts@kuztown.edu