290 likes | 444 Views
Data Encryption. Chris Mraovich. Overview. Purpose of Encryption. Permutations Bases and Factoradics. Project Summary. Purpose of Encryption. Protecting Digital Content. DVDs use CSS (Content Scramble System). Weak Algorithm -Cracked by Jon Johansen in 1999. Protecting Digital Content.
E N D
Data Encryption Chris Mraovich
Overview • Purpose of Encryption • Permutations Bases and Factoradics • Project Summary
Protecting Digital Content • DVDs use CSS (Content Scramble System) • Weak Algorithm • -Cracked by Jon Johansen in 1999
Protecting Digital Content Arcade Printed Circuit Boards • Capcom Play System 2 (CPS2) -Used in mid 1990s for 2D games • Uses encryption on program ROM chips • Graphic ROM chips are not encrypted • Cracked by team
Protecting Digital Content Why use encryption on an arcade board? • ROM chips can be copied to a PC as binary data 2. Program can be written to interpret binary data 3. PC can then run the arcade without the board
1 1 0 1 Permutations Goal is to rearrange bits into a different pattern 1 0 1 1 Original Form: Encrypted Form: Permutation – rearrangement of a set of objects
Obtain permutation from factoradic Use permutation to rearrange bits Generate Factoradic Bases and Factoradics Factoradic – mixed radix numbering system that uses multiple bases to represent a single number Why are they important? • Factoradics provide a way of generating permutations Summary of Encryption Process
Order & Total Permutations Order – number of objects (N) Total number of permutations for N objects is N! Suppose there are 4 objects N = 4, so there are 4! or 24 ways to rearrange 4 objects
Total Permutations of order 4 Int Factoradic Permutation 0 { 0 0 0 0 } ( 0 1 2 3 ) 1 { 0 0 1 0 } ( 0 1 3 2 ) 2 { 0 1 0 0 } ( 0 2 1 3 ) 3 { 0 1 1 0 } ( 0 2 3 1 ) 4 { 0 2 0 0 } ( 0 3 1 2 ) 5 { 0 2 1 0 } ( 0 3 2 1 ) 6 { 1 0 0 0 } ( 1 0 2 3 ) 7 { 1 0 1 0 } ( 1 0 3 2 ) 8 { 1 1 0 0 } ( 1 2 0 3 ) 9 { 1 1 1 0 } ( 1 2 3 0 ) 10 { 1 2 0 0 } ( 1 3 0 2 ) 11 { 1 2 1 0 } ( 1 3 2 0 ) 12 { 2 0 0 0 } ( 2 0 1 3 ) 13 { 2 0 1 0 } ( 2 0 3 1 ) 14 { 2 1 0 0 } ( 2 1 0 3 ) 15 { 2 1 1 0 } ( 2 1 3 0 ) 16 { 2 2 0 0 } ( 2 3 0 1 ) 17 { 2 2 1 0 } ( 2 3 1 0 ) 18 { 3 0 0 0 } ( 3 0 1 2 ) 19 { 3 0 1 0 } ( 3 0 2 1 ) 20 { 3 1 0 0 } ( 3 1 0 2 ) 21 { 3 1 1 0 } ( 3 1 2 0 ) 22 { 3 2 0 0 } ( 3 2 0 1 ) 23 { 3 2 1 0 } ( 3 2 1 0 ) • Int is the base 10 representation of the factoradic • Each factoradic uniquely identifies a particular permutation • Walkthrough of how 2010 is converted to a permutation of order 4
Bases – Generate Factoradic Base 10 Base 2 Multi-Base Factoradic 20 10100 3100 Write 2010 in Base 2 24 23 22 21 20 (16) (8) (4) (2) (1) 1 0 1 0 0 Expand the Binary Number (12 x 24) + (02 x 23) + (12 x 22) + (02 x 21) + (02 x 20) = 2010
From Base 2 to Factoradic Generalization of Base 2 Expansion (E2 x 24) + (D2 x 23) + (C2 x 22) + (B2 x 21) + (A2 x 20) … A2, B2, C2, D2, E2 are all numbers in base 2 (0 or 1) 2nare powers of 2 1.) The bases of A2, B2, C2, D2, E2increase from right to left What Changes : 2n n! 2.) Factoradic Expansion (E5 x 4!) + (D4 x 3!) + (C3 x 2!) + (B2 x 1!) + (A1 x 0!) … (Mixed Radix - multiple bases used)
Factoradic Number System Factoradic Expansion (E5 x 4!) + (D4 x 3!) + (C3 x 2!) + (B2 x 1!) + (A1 x 0!) … Simplify Factorials (E5 x 24) + (D4 x 6) + (C3 x 2) + (B2 x 1) + (A1 x 1) 0 0 0 0 0 1 1 1 1 2 2 2 3 3 4 Since A, B, C, D, and E have different bases, they have different ranges of valid values
Factoradic Number System Write 2010 in Factoradic notation (E5 x 24) + (D4 x 6) + (C3 x 2) + (B2 x 1) + (A1 x 1) 0 0 0 0 0 1 1 1 1 2 2 2 3 3 4 (3 x 3!) + (1 x 2!) + (0 x 1!) + (0 x 0!) = (3 x 6) + (1 x 2) + (0 x 1) + (0 x 1) = 20 Final Factoradic for 2010: 3 1 0 0
Obtain Permutation from Factoradic Initial Factoradic: 3 1 0 0
Obtain Permutation from Factoradic Initial Factoradic: 3 1 0 0 4 2 1 1 1) Increment every digit by 1
Obtain Permutation from Factoradic Initial Factoradic: 3 1 0 0 4 2 1 1 1) Increment every digit by 1 4 2 1 1 2) Replace right-most digit with a 1
Obtain Permutation from Factoradic Initial Factoradic: 3 1 0 0 4 2 1 1 1) Increment every digit by 1 4 2 1 1 1 1 2) Replace right-most digit with a 1 3)This 1 is the “new value” (N) If any red value to the right of N is >= N, it gets incremented by 1
Obtain Permutation from Factoradic Initial Factoradic: 3 1 0 0 4 2 1 1 1) Increment every digit by 1 4 2 1 1 2) Replace right-most digit with a 1 3)This 1 is the “new value” (N) 1 2 If any red value to the right of N is >= N, it gets incremented by 1
Obtain Permutation from Factoradic Initial Factoradic: 3 1 0 0 4 2 1 1 1) Increment every digit by 1 4 2 1 1 2 2) Replace right-most digit with a 1 3)This 1 is the “new value” (N) 1 1 2 2 If any red value to the right of N is >= N, it gets incremented by 1 4) Repeat step 3 until all red numbers have been used
Obtain Permutation from Factoradic Initial Factoradic: 3 1 0 0 4 2 1 1 1) Increment every digit by 1 4 2 1 1 4 2) Replace right-most digit with a 1 3)This 1 is the “new value” (N) 1 2 If any red value to the right of N is >= N, it gets incremented by 1 2 2 1 1 3 3 4) Repeat step 3 until all red numbers have been used
Obtain Permutation from Factoradic Initial Factoradic: 3 1 0 0 4 2 1 1 1) Increment every digit by 1 4 2 1 1 2) Replace right-most digit with a 1 3)This 1 is the “new value” (N) 1 2 If any red value to the right of N is >= N, it gets incremented by 1 2 1 3 4 2 1 3 4) Repeat step 3 until all red numbers have been used 3 1 0 2 4) Decrement all numbers by 1
Use Permutation to swap bits 3 1 0 2 Obtained Permutation: Original Binary Data: 1 0 1 0 Encrypted Bit Array Data: 2 3 0 1
Use Permutation to swap bits 3 1 0 2 Obtained Permutation: Original Binary Data: 1 0 1 0 Encrypted Bit Array Data: 1 2 3 0 1
Use Permutation to swap bits 3 1 0 2 Obtained Permutation: Original Binary Data: 1 0 1 0 Encrypted Bit Array Data: 0 1 2 3 0 1
Use Permutation to swap bits 3 1 0 2 Obtained Permutation: Original Binary Data: 1 0 1 0 Encrypted Bit Array Data: 0 1 1 2 3 0 1
Use Permutation to swap bits 3 1 0 2 Obtained Permutation: Original Binary Data: 1 0 1 0 Encrypted Bit Array Data: 0 0 1 1 2 3 0 1
Project Summary Use the principles of factoradics to: • Encrypt/Decrypt any binary file on the Windows platform • Generate keys to decrypt files Like a really long password stored in a text file