Presentation is loading. Please wait.

Presentation is loading. Please wait.

Factoradics and Semi-dynamic Encryption Oskars Rieksts with Chris Mraovich & Jeremy Vaughan Kutztown University.

Similar presentations


Presentation on theme: "Factoradics and Semi-dynamic Encryption Oskars Rieksts with Chris Mraovich & Jeremy Vaughan Kutztown University."— Presentation transcript:

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 ?


Download ppt "Factoradics and Semi-dynamic Encryption Oskars Rieksts with Chris Mraovich & Jeremy Vaughan Kutztown University."

Similar presentations


Ads by Google