Download presentation
Presentation is loading. Please wait.
Published byMarlene Price Modified over 9 years ago
1
Factoradics and Semi-dynamic Encryption Oskars Rieksts with Chris Mraovich & Jeremy Vaughan Kutztown University
2
2006Kutztown University2 Overview Factoradics Factoradics Factoradics and Permutations Factoradics and Permutations Factoradics and Encryption Factoradics and Encryption Semi-dynamic Encryption Semi-dynamic Encryption Current Investigations Current Investigations
3
2006Kutztown University3 Factoradics Mixed Radix - Combinadic Mixed Radix - Combinadic In mathematics, a combinadic is an ordered integer partition, or composition. Combinadics provide a lexicographical index for combinations. History History Burgeoning Interest Burgeoning Interest Application to Security Application to Security Definition & Operations Definition & Operations
4
4 History Ernesto Pascal – 1887 Ernesto Pascal – 1887 Derrick Lehmer Derrick Lehmer Donald Knuth Donald Knuth Peter Cameron Peter Cameron James McCaffrey James McCaffrey "Using Permutations in.NET for Improved Systems Security", by Dr. James McCaffrey. "Using Permutations in.NET for Improved Systems Security", by Dr. James McCaffrey. "Using Permutations in.NET for Improved Systems Security", by Dr. James McCaffrey. "Using Permutations in.NET for Improved Systems Security", by Dr. James McCaffrey. Knuth has that Derrick Lehmer published the basic theorem in 1964, and an Ernesto Pascal described a combinatorial number system around 1887. Knuth has that Derrick Lehmer published the basic theorem in 1964, and an Ernesto Pascal described a combinatorial number system around 1887.theorem number systemtheorem number system
5
2006Kutztown University5 Burgeoning Interest Last Summer – handful of web pages Last Summer – handful of web pages Now – 508 web pages Now – 508 web pages Google: “Did you mean factored?” Google: “Did you mean factored?”
6
2006Kutztown University6 Application to Security McCaffrey: "Using Permutations in.NET for Improved Systems Security" McCaffrey: "Using Permutations in.NET for Improved Systems Security""Using Permutations in.NET for Improved Systems Security""Using Permutations in.NET for Improved Systems Security" 1-1 relationship to permutations 1-1 relationship to permutations
7
2006Kutztown University7 Definition & Operations Definition Definition Example Example Addition Addition Completeness Completeness
8
2006Kutztown University8 Definition Mixed radix Mixed radix Number Base = factorial Number Base = factorial N digits, where N is order of f N digits, where N is order of f Max digit value is p Max digit value is p –where p is its position Value: digit * p! Value: digit * p!
9
2006Kutztown University9 Example [3 1 1 0] [3 1 1 0]
10
2006Kutztown University10 Example [3 1 1 0] [3 1 1 0] = 3*3! + 1*2! + 1 *1! + 0*0! = 3*3! + 1*2! + 1 *1! + 0*0!
11
2006Kutztown University11 Example [3 1 1 0] [3 1 1 0] = 3*3! + 1*2! + 1 *1! + 0*0! = 3*3! + 1*2! + 1 *1! + 0*0! = 18+2+1+0 = 21 = 18+2+1+0 = 21
12
2006Kutztown University12 Example [3 1 1 0] [3 1 1 0] = 3*3! + 1*2! + 1 *1! + 0*0! = 3*3! + 1*2! + 1 *1! + 0*0! = 18+2+1+0 = 21 = 18+2+1+0 = 21 [3 2 1 0] is max fadic of order 4 [3 2 1 0] is max fadic of order 4
13
2006Kutztown University13 Example [3 1 1 0] [3 1 1 0] = 3*3! + 1*2! + 1 *1! + 0*0! = 3*3! + 1*2! + 1 *1! + 0*0! = 18+2+1+0 = 21 = 18+2+1+0 = 21 [3 2 1 0] is max fadic of order 4 [3 2 1 0] is max fadic of order 4 [3 2 1 0] = 23 = 4! - 1 [3 2 1 0] = 23 = 4! - 1
14
2006Kutztown University14 Addition Proceeds mod p+1 Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n! – where n is maxorder(f 1,f 2 )
15
2006Kutztown University15 Addition Proceeds mod p+1 Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n! – where n is maxorder(f 1,f 2 ) [2 3 1 1 0] = 69 [2 3 1 1 0] = 69
16
2006Kutztown University16 Addition Proceeds mod p+1 Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n! – where n is maxorder(f 1,f 2 ) [2 3 1 1 0] = 69 [2 3 1 1 0] = 69 + [3 1 2 0 0] = 82 + [3 1 2 0 0] = 82
17
2006Kutztown University17 Addition Proceeds mod p+1 Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n! – where n is maxorder(f 1,f 2 ) 5 4 3 2 1 5 4 3 2 1 [2 3 1 1 0] = 69 [2 3 1 1 0] = 69 + [3 1 2 0 0] = 82 + [3 1 2 0 0] = 82 = [ ? ? ? ? 0 ] = [ ? ? ? ? 0 ]
18
2006Kutztown University18 Addition Proceeds mod p+1 Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n! – where n is maxorder(f 1,f 2 ) 5 4 3 2 1 5 4 3 2 1 [2 3 1 1 0] = 69 [2 3 1 1 0] = 69 + [3 1 2 0 0] = 82 + [3 1 2 0 0] = 82 = [? ? ? 1 0] = [? ? ? 1 0]
19
2006Kutztown University19 Addition Proceeds mod p+1 Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n! – where n is maxorder(f 1,f 2 ) 5 4 3 2 1 5 4 3 2 1 [2 3 1 1 0] = 69 [2 3 1 1 0] = 69 + [3 1 2 0 0] = 82 + [3 1 2 0 0] = 82 = [? ? 0 1 0] = [? ? 0 1 0]
20
2006Kutztown University20 Addition proceeds mod p+1 proceeds mod p+1 resulting in sum mod n! resulting in sum mod n! – where n is maxorder(f 1,f 2 ) 5 4 3 2 1 5 4 3 2 1 [2 3 1 1 0] = 69 [2 3 1 1 0] = 69 + [3 1 2 0 0] = 82 + [3 1 2 0 0] = 82 = [? 1 0 1 0] = [? 1 0 1 0]
21
2006Kutztown University21 Addition Proceeds mod p+1 Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n! – where n is maxorder(f 1,f 2 ) 5 4 3 2 1 5 4 3 2 1 [2 3 1 1 0] = 69 [2 3 1 1 0] = 69 + [3 1 2 0 0] = 82 + [3 1 2 0 0] = 82 = [1 1 0 1 0] = [1 1 0 1 0]
22
2006Kutztown University22 Addition Proceeds mod p+1 Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n! – where n is maxorder(f 1,f 2 ) [2 3 1 1 0] = 69 [2 3 1 1 0] = 69 + [3 1 2 0 0] = 82 + [3 1 2 0 0] = 82 = [1 1 0 1 0] = 31 = [1 1 0 1 0] = 31
23
2006Kutztown University23 Addition Proceeds mod p+1 Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n! – where n is maxorder(f 1,f 2 ) [2 3 1 1 0] = 69 [2 3 1 1 0] = 69 + [3 1 2 0 0] = 82 + [3 1 2 0 0] = 82 = [1 1 0 1 0] = 31 = (69+82) mod 120 = [1 1 0 1 0] = 31 = (69+82) mod 120
24
2006Kutztown University24 Completeness 1-1 correspondence with integers 1-1 correspondence with integers Every fadic unique integer Every fadic unique integer – Saw:: fadic integer conversion Every integer unique fadic Every integer unique fadic – integer fadic conversion
25
2006Kutztown University25 Integer Factoradic 400 [ ? ?.. ?] 400 [ ? ?.. ?]
26
2006Kutztown University26 Integer Factoradic 400 [ ? ?.. ?] 400 [ ? ?.. ?] 1 st n such that n! > 400 order = 6 1 st n such that n! > 400 order = 6
27
2006Kutztown University27 Integer Factoradic 400 [ ? ?.. ?] 400 [ ? ?.. ?] 1 st n such that n! > 400 order = 6 1 st n such that n! > 400 order = 6 400 div 5! = 3400-360 = 40 400 div 5! = 3400-360 = 40
28
2006Kutztown University28 Integer Factoradic 400 [ ? ?.. ?] 400 [ ? ?.. ?] 1 st n such that n! > 400 order = 6 1 st n such that n! > 400 order = 6 400 div 5! = 3400-360 = 40 400 div 5! = 3400-360 = 40 40 div 4! = 140-24 = 16 40 div 4! = 140-24 = 16
29
2006Kutztown University29 Integer Factoradic 400 [ ? ?.. ?] 400 [ ? ?.. ?] 1 st n such that n! > 400 order = 6 1 st n such that n! > 400 order = 6 400 div 5! = 3400-360 = 40 400 div 5! = 3400-360 = 40 40 div 4! = 140-24 = 16 40 div 4! = 140-24 = 16 16 div 3! = 216-12 = 4 16 div 3! = 216-12 = 4
30
2006Kutztown University30 Integer Factoradic 400 [ ? ?.. ?] 400 [ ? ?.. ?] 1 st n such that n! > 400 order = 6 1 st n such that n! > 400 order = 6 400 div 5! = 3400-360 = 40 400 div 5! = 3400-360 = 40 40 div 4! = 140-24 = 16 40 div 4! = 140-24 = 16 16 div 3! = 216-12 = 4 16 div 3! = 216-12 = 4 4 div 2! = 24-4=0 4 div 2! = 24-4=0
31
2006Kutztown University31 Integer Factoradic 400 [ ? ?.. ?] 400 [ ? ?.. ?] 1 st n such that n! > 400 order = 6 1 st n such that n! > 400 order = 6 400 div 5! = 3400-360 = 40 400 div 5! = 3400-360 = 40 40 div 4! = 140-24 = 16 40 div 4! = 140-24 = 16 16 div 3! = 216-12 = 4 16 div 3! = 216-12 = 4 4 div 2! = 24-4=0 4 div 2! = 24-4=0 [3 1 2 2 0 0] = 400 [3 1 2 2 0 0] = 400
32
2006Kutztown University32 Factoradics and Permutations 1-1 correspondence 1-1 correspondence – fadic order k permutation of k objects Lexicographic order Lexicographic order012021102120201210 n th factoradic n th permutation n th factoradic n th permutation
33
2006Kutztown University33 Fadic-Perm Example xfadic(x)perm(x) xfadic(x)perm(x) 0[0 0 0]{0 1 2} 1[0 1 0]{0 2 1} 2[1 0 0]{1 0 2} 3[1 1 0]{1 2 0} 4[2 0 0]{2 0 1} 5[2 1 0]{2 1 0}
34
Data Encryption Chris Mraovich http://faculty.kutztown.edu/rieksts/385/sem- project/PastProjects/Mraovich/PresentationCD/Encryption%20using%20Factoradics.ppt http://faculty.kutztown.edu/rieksts/385/sem- project/PastProjects/Mraovich/PresentationCD/Encryption%20using%20Factoradics.ppt
35
2006Kutztown University35 Permutations Goal is to rearrange bits into a different pattern 1 0 1 1 110 1 Permutation – rearrangement of a set of objects Original Form: Encrypted Form:
36
2006Kutztown University36 Order & Total Permutations Suppose there are 4 objects Order – number of objects (N) Total number of permutations for N objects is N! N = 4, so there are 4! or 24 ways to rearrange 4 objects
37
37 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 } Each factoradic uniquely identifies a particular permutationEach factoradic uniquely identifies a particular permutation Total Permutations of order 4 FactoradicPermutationInt Int is the base 10 representation of the factoradicInt is the base 10 representation of the factoradic Walkthrough of how 20 10 is converted to a permutation of order 4Walkthrough of how 20 10 is converted to a permutation of order 4
38
38 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ]
39
39 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ] 1. Increment each digit by 1. 1. Increment each digit by 1.
40
40 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ] 1. Increment each digit by 1. 1. Increment each digit by 1. –[4 2 1 1 ]
41
41 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ] 1. Increment each digit by 1. 1. Increment each digit by 1. –[4 2 1 1 ] 2. Bring down 1 st digit 2. Bring down 1 st digit
42
42 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ] 1. Increment each digit by 1. 1. Increment each digit by 1. –[4 2 1 1 ] 2. Bring down 1 st digit 2. Bring down 1 st digit –{ ? ? ? 1}
43
43 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ] 1. Increment each digit by 1. 1. Increment each digit by 1. –[4 2 1 1 ] 2. Bring down 1 st digit 2. Bring down 1 st digit –{ ? ? ? 1} 3. Bring down next digit, d 3. Bring down next digit, d
44
44 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ] 1. Increment each digit by 1. 1. Increment each digit by 1. –[4 2 1 1 ] 2. Bring down 1 st digit 2. Bring down 1 st digit –{ ? ? ? 1} 3. Bring down next digit, d 3. Bring down next digit, d –{? ? 1 1 }
45
45 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ] 1. Increment each digit by 1. 1. Increment each digit by 1. –[4 2 1 1 ] 2. Bring down 1 st digit 2. Bring down 1 st digit –{ ? ? ? 1} 3. Bring down next digit, d 3. Bring down next digit, d –{? ? 1 1 } 4. For every digit, r, to the right of d, such that r d, increment r. 4. For every digit, r, to the right of d, such that r d, increment r.
46
46 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ] 1. Increment each digit by 1. 1. Increment each digit by 1. –[4 2 1 1 ] 2. Bring down 1 st digit 2. Bring down 1 st digit –{ ? ? ? 1} 3. Bring down next digit, d 3. Bring down next digit, d –{? ? 1 1 } 4. For every digit, r, to the right of d, such that r d, increment r. 4. For every digit, r, to the right of d, such that r d, increment r. –{? ? 1 2 }
47
47 Fadic Permutation [ 3 1 0 0 ] [ 3 1 0 0 ] 1. Increment each digit by 1. 1. Increment each digit by 1. –[4 2 1 1 ] 2. Bring down 1 st digit 2. Bring down 1 st digit –{ ? ? ? 1} 3. Bring down next digit, d 3. Bring down next digit, d –{? ? 1 1 } 4. For every digit, r, to the right of d, such that r d, increment r. 4. For every digit, r, to the right of d, such that r d, increment r. –{? ? 1 2 } 5. Repeat 3 & 4 until finished. 5. Repeat 3 & 4 until finished.
48
48 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1]
49
49 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1] { ? ? ? 1 } { ? ? ? 1 }
50
50 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 }
51
51 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 }
52
52 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? 2 1 2 } {? 2 1 2 }
53
53 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? 2 1 2 } {? 2 1 2 } {? 2 1 3 } {? 2 1 3 }
54
54 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? 2 1 2 } {? 2 1 2 } {? 2 1 3 } {? 2 1 3 } { 4 2 1 3 } { 4 2 1 3 }
55
55 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? 2 1 2 } {? 2 1 2 } {? 2 1 3 } {? 2 1 3 } { 4 2 1 3 } { 4 2 1 3 }
56
56 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? 2 1 2 } {? 2 1 2 } {? 2 1 3 } {? 2 1 3 } { 4 2 1 3 } { 4 2 1 3 } 6. Decrement each number by 1. 6. Decrement each number by 1.
57
57 Fadic Permutation [ 4 2 1 1] [ 4 2 1 1] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? 2 1 2 } {? 2 1 2 } {? 2 1 3 } {? 2 1 3 } { 4 2 1 3 } { 4 2 1 3 } 6. Decrement each number by 1. 6. Decrement each number by 1. –{3 1 0 2 }
58
58 Fadic Permutation Sample Code: Sample Code: For i = 0 To n – 1 :: fadic_plus(i) = fadic(i) + 1 perm(n - 1) = 1 For j = n - 2 To 0 Step -1 nextEntry = fadic_plus(j) perm(j) = nextEntry For i = j + 1 To n – 1 If perm(i) >= nextEntry Then perm(i) = perm(i) + 1 For i = 0 To n - 1 perm(i) = perm(i) - 1 Next i
59
2006Kutztown University59 Factoradics & Encryption Encryption Summary Encryption Summary Simple Example Simple Example
60
2006Kutztown University60 Encryption Summary Factoradics provide a way of generating permutationsFactoradics provide a way of generating permutations Generate Factoradic Obtain permutation from factoradic Use permutation to rearrange bits
61
2006Kutztown University61 3 1 0 2 Original Binary Data: Use Permutation to swap bits Obtained Permutation: 1 0 1 0 Encrypted Bit Array Data: 01 23
62
2006Kutztown University62 3 1 0 2 Original Binary Data: Use Permutation to swap bits Obtained Permutation: 1 0 1 0 Encrypted Bit Array Data: 1 01 23
63
2006Kutztown University63 3 1 0 2 Original Binary Data: Use Permutation to swap bits Obtained Permutation: 1 0 1 0 Encrypted Bit Array Data: 10 01 23
64
2006Kutztown University64 3 1 0 2 Original Binary Data: Use Permutation to swap bits Obtained Permutation: 1 0 1 0 Encrypted Bit Array Data: 10 1 01 23
65
2006Kutztown University65 3 1 0 2 Original Binary Data: Use Permutation to swap bits Obtained Permutation: 1 0 1 0 Encrypted Bit Array Data: 10 1 0 01 23
66
2006Kutztown University66 Semi-dynamic Encryption SdE Overview SdE Overview Key re-ordering Key re-ordering Dynamic Key generation Dynamic Key generation Basic algorithm Basic algorithm Preliminary results Preliminary results
67
2006Kutztown University67 SdE Overview Meta-key is key set Meta-key is key set Primary keys used to encrypt Primary keys used to encrypt Secondary keys re-order other keys Secondary keys re-order other keys Operations on key set generate new keys Operations on key set generate new keys
68
2006Kutztown University68 Key Re-Ordering Keys: [k 0 k 1 k 2 k 3 ] Keys: [k 0 k 1 k 2 k 3 ] R-key: [ 1 3 0 2 ] R-key: [ 1 3 0 2 ]
69
2006Kutztown University69 Key Re-Ordering Keys: [k 0 k 1 k 2 k 3 ] Keys: [k 0 k 1 k 2 k 3 ] R-key: [ 1 3 0 2 ] R-key: [ 1 3 0 2 ] Resulting orders: Resulting orders: – [k 0 k 1 k 2 k 3 ]
70
2006Kutztown University70 Key Re-Ordering Keys: [k 0 k 1 k 2 k 3 ] Keys: [k 0 k 1 k 2 k 3 ] R-key: [ 1 3 0 2 ] R-key: [ 1 3 0 2 ] Resulting orders: Resulting orders: – [k 0 k 1 k 2 k 3 ] – [k 1 k 3 k 0 k 2 ]
71
2006Kutztown University71 Key Re-Ordering Keys: [k 0 k 1 k 2 k 3 ] Keys: [k 0 k 1 k 2 k 3 ] R-key: [ 1 3 0 2 ] R-key: [ 1 3 0 2 ] Resulting orders: Resulting orders: – [k 0 k 1 k 2 k 3 ] – [k 1 k 3 k 0 k 2 ] – [k 3 k 2 k 1 k 0 ]
72
2006Kutztown University72 Key Re-Ordering Keys: [k 0 k 1 k 2 k 3 ] Keys: [k 0 k 1 k 2 k 3 ] R-key: [ 1 3 0 2 ] R-key: [ 1 3 0 2 ] Resulting orders: Resulting orders: – [k 0 k 1 k 2 k 3 ] – [k 1 k 3 k 0 k 2 ] – [k 3 k 2 k 1 k 0 ] – [k 2 k 0 k 3 k 1 ]
73
2006Kutztown University73 Key Re-Ordering Keys: [k 0 k 1 k 2 k 3 ] Keys: [k 0 k 1 k 2 k 3 ] R-key: [ 1 3 0 2 ] R-key: [ 1 3 0 2 ] Resulting orders: Resulting orders: – [k 0 k 1 k 2 k 3 ] – [k 1 k 3 k 0 k 2 ] – [k 3 k 2 k 1 k 0 ] – [k 2 k 0 k 3 k 1 ] – [k 0 k 1 k 2 k 3 ]
74
2006Kutztown University74 Key Re-Ordering Keys: [k 0 k 1 k 2 k 3 ] Keys: [k 0 k 1 k 2 k 3 ] R-key: [ 1 3 0 2 ] R-key: [ 1 3 0 2 ] Resulting orders: Resulting orders: – [k 0 k 1 k 2 k 3 ] – [k 1 k 3 k 0 k 2 ] – [k 3 k 2 k 1 k 0 ] – [k 2 k 0 k 3 k 1 ] – [k 0 k 1 k 2 k 3 ] Disadvantage: patterns Disadvantage: patterns
75
2006Kutztown University75 Dynamic Key Generation Fadic Perm Key Fadic Perm Key Fadic + Fadic Fadic mod n! Fadic + Fadic Fadic mod n! Use base fadic to generate fadic Use base fadic to generate fadic Use new fadic to generate key Use new fadic to generate key Repeat Repeat
76
2006Kutztown University76 DKG Example Base = [ 2 2 1 0 ] Base = [ 2 2 1 0 ]
77
2006Kutztown University77 DKG Example Base = [ 2 2 1 0 ] Base = [ 2 2 1 0 ] [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0}
78
2006Kutztown University78 DKG Example Base = [ 2 2 1 0 ] Base = [ 2 2 1 0 ] [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2}
79
2006Kutztown University79 DKG Example Base = [ 2 2 1 0 ] Base = [ 2 2 1 0 ] [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1}
80
2006Kutztown University80 DKG Example Base = [ 2 2 1 0 ] Base = [ 2 2 1 0 ] [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2}
81
2006Kutztown University81 DKG Example Base = [ 2 2 1 0 ] Base = [ 2 2 1 0 ] [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2} [ 3 1 0 0 ] + [ 2 2 1 0 ] = [ 2 0 1 0 ] {2 0 3 1} [ 3 1 0 0 ] + [ 2 2 1 0 ] = [ 2 0 1 0 ] {2 0 3 1}
82
2006Kutztown University82 DKG Example Base = [ 2 2 1 0 ] Base = [ 2 2 1 0 ] [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2} [ 3 1 0 0 ] + [ 2 2 1 0 ] = [ 2 0 1 0 ] {2 0 3 1} [ 3 1 0 0 ] + [ 2 2 1 0 ] = [ 2 0 1 0 ] {2 0 3 1} [ 2 0 1 0 ] + [ 2 2 1 0 ] = [ 1 0 0 0 ] {1 0 2 3} [ 2 0 1 0 ] + [ 2 2 1 0 ] = [ 1 0 0 0 ] {1 0 2 3}
83
2006Kutztown University83 DKG Example Base = [ 2 2 1 0 ] Base = [ 2 2 1 0 ] [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2} [ 3 1 0 0 ] + [ 2 2 1 0 ] = [ 2 0 1 0 ] {2 0 3 1} [ 3 1 0 0 ] + [ 2 2 1 0 ] = [ 2 0 1 0 ] {2 0 3 1} [ 2 0 1 0 ] + [ 2 2 1 0 ] = [ 1 0 0 0 ] {1 0 2 3} [ 2 0 1 0 ] + [ 2 2 1 0 ] = [ 1 0 0 0 ] {1 0 2 3} [ 1 0 0 0 ] + [ 2 2 1 0 ] = [ 3 2 1 0 ] {3 2 1 0} [ 1 0 0 0 ] + [ 2 2 1 0 ] = [ 3 2 1 0 ] {3 2 1 0}
84
2006Kutztown University84 DKG Example Base = [ 2 2 1 0 ] Base = [ 2 2 1 0 ] [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 0 0 0 0 ] + [ 2 2 1 0 ] = [ 2 2 1 0 ] {2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 2 2 1 0 ] + [ 2 2 1 0 ] = [ 1 2 0 0 ] {1 3 0 2} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 1 2 0 0 ] + [ 2 2 1 0 ] = [ 0 1 1 0 ] {0 2 3 1} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2} [ 0 1 1 0 ] + [ 2 2 1 0 ] = [ 3 1 0 0 ] {3 1 0 2} [ 3 1 0 0 ] + [ 2 2 1 0 ] = [ 2 0 1 0 ] {2 0 3 1} [ 3 1 0 0 ] + [ 2 2 1 0 ] = [ 2 0 1 0 ] {2 0 3 1} [ 2 0 1 0 ] + [ 2 2 1 0 ] = [ 1 0 0 0 ] {1 0 2 3} [ 2 0 1 0 ] + [ 2 2 1 0 ] = [ 1 0 0 0 ] {1 0 2 3} [ 1 0 0 0 ] + [ 2 2 1 0 ] = [ 3 2 1 0 ] {3 2 1 0} [ 1 0 0 0 ] + [ 2 2 1 0 ] = [ 3 2 1 0 ] {3 2 1 0} [ 3 2 1 0 ] + [ 2 2 1 0 ] = [ 2 2 0 0 ] {2 3 0 1} [ 3 2 1 0 ] + [ 2 2 1 0 ] = [ 2 2 0 0 ] {2 3 0 1}
85
2006Kutztown University85 Basic Algorithm 1 st round of encryption 1 st round of encryption Intermediate bit shuffling Intermediate bit shuffling 2 nd round of encryption 2 nd round of encryption
86
2006Kutztown University86 1 st Encryption Round Primary key Primary key Iteration count key Iteration count key Primary jump key Primary jump key IC shuffle key IC shuffle key PJ shuffle key PJ shuffle key
87
2006Kutztown University87 1 st Encryption Round Primary key Primary key – encodes 8 bits of plaintext Iteration count key Iteration count key –how long a primary key used Primary jump key Primary jump key –computes fadic/primary key
88
2006Kutztown University88 1 st Encryption Round IC shuffle key IC shuffle key – computes next iteration count key PJ shuffle key PJ shuffle key – computes next primary jump key
89
2006Kutztown University89 Intermediate Shuffling Transposition key Transposition key – transposes m bits of cipher text from 1 st round Transposition jump key Transposition jump key – computes next transposition key TJ shuffle key TJ shuffle key – computes next transposition jump key
90
2006Kutztown University90 2 nd Encryption Round Re-encrypts intermediate bits Re-encrypts intermediate bits Same algorithm as 1 st round Same algorithm as 1 st round Has own set of keys Has own set of keys
91
2006Kutztown University91 Preliminary Results 1 st Test – highly repetitious plain text 1 st Test – highly repetitious plain text 65,536 bits – all zeros 65,536 bits – all zeros Look for recurrence of bit patterns Look for recurrence of bit patterns
92
2006Kutztown University92 Preliminary Results 65K bits Occurrences of arbitrary bit sequences 12-bit sequences: 15-18 times 12-bit sequences: 15-18 times 14-bit sequences: 5-7 times 14-bit sequences: 5-7 times 16-bit sequences: 1-3 times 16-bit sequences: 1-3 times 18- & 20-bit sequences: 1 time 18- & 20-bit sequences: 1 time
93
2006Kutztown University93 Distance Test Probability of distances between occurrences of bit strings Probability of distances between occurrences of bit strings Example: 3-bit sequences Example: 3-bit sequences P(b 1 b 2 b 3 b 1 b 2 b 3 ) = 1/8 =.125 P(b 1 b 2 b 3 b 1 b 2 b 3 ) = 1/8 =.125 P(b 1 b 2 b 3 b 1 x 1 x 2 x 3 b 1 b 2 b 3 ) = 7/8 * 1/8 =.10935 P(b 1 b 2 b 3 b 1 x 1 x 2 x 3 b 1 b 2 b 3 ) = 7/8 * 1/8 =.10935 P(b 1 b 2 b 3 b 1 [x 1 x 2 x 3 ] n b 1 b 2 b 3 ) = (7/8) n * 1/8 P(b 1 b 2 b 3 b 1 [x 1 x 2 x 3 ] n b 1 b 2 b 3 ) = (7/8) n * 1/8
94
94 Distance Test Results: 134M * bits Occurrences of 111 Occurrences of 111 1 699049.1249618.125 1 699049.1249618.125 2 612243.1094444.109375 2 612243.1094444.109375 3 536716.0959432.0957031 3 536716.0959432.0957031 4 468716.0837875.0837402 4 468716.0837875.0837402 5 409291.0731647.0732727 5 409291.0731647.0732727 6 357330.0638762.0641136 6 357330.0638762.0641136 7 313349.0560142.0560994 7 313349.0560142.0560994 8 274349.0490426.049087 8 274349.0490426.049087 9 240059.0429129.0429511 9 240059.0429129.0429511 10 210642.0376543.0375822 10 210642.0376543.0375822 11 183825.0328605.0328844 11 183825.0328605.0328844 12 161219.0288195.0287739 12 161219.0288195.0287739 13 141077.0252189.0251772 13 141077.0252189.0251772 14 123695.0221117.02203 14 123695.0221117.02203 15 107988.0193039.0192763 15 107988.0193039.0192763 16 94514.0168953.0168667 16 94514.0168953.0168667 17 82668.0147777.0147584 17 82668.0147777.0147584 18 72374.0129376.0129136 18 72374.0129376.0129136 19 63362.0113266.0112994 19 63362.0113266.0112994 20 55279.0098817.009887 20 55279.0098817.009887 * 134,217,728 = 2 27
95
95 Distance Test Results: 134M * bits Occurrences of 111 Occurrences of 111 1 699049.1249618.125 1 699049.1249618.125 2 612243.1094444.109375 2 612243.1094444.109375 3 536716.0959432.0957031 3 536716.0959432.0957031 4 468716.0837875.0837402 4 468716.0837875.0837402 5 409291.0731647.0732727 5 409291.0731647.0732727 * 134,217,728 = 2 27
96
96 Occurrence Test Results: 134M bits Number of occurrences: Number of occurrences: 000 is 5591658 001 is 5590568 010 is 5592818 011 is 5592478 100 is 5589295 101 is 5592467 110 is 5595849 111 is 5594101
97
2006Kutztown University97 Current Investigations Chris Mraovich Chris Mraovich – wrote decryption code – encoded binary files – working on speed-up Jeremy Vaughan Jeremy Vaughan – studying tests of randomness – writing randomness testing code
98
2006Kutztown University98 Future Work Investigate hardware implementation Investigate hardware implementation Use other randomness tests Use other randomness tests Test actual plaintexts Test actual plaintexts Experiment with variations Experiment with variations –Staggering the primary block size –Frequency of shuffling –Choices of key set –How many rounds?
99
Questions ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.