Factoradics and Semi-dynamic Encryption Oskars Rieksts with Chris Mraovich & Jeremy Vaughan Kutztown...
-
Upload
marlene-price -
Category
Documents
-
view
221 -
download
0
Transcript of Factoradics and Semi-dynamic Encryption Oskars Rieksts with Chris Mraovich & Jeremy Vaughan Kutztown...
Factoradics and Semi-dynamic Factoradics and Semi-dynamic EncryptionEncryption
Oskars RiekstsOskars Riekstswithwith
Chris Mraovich & Jeremy VaughanChris Mraovich & Jeremy Vaughan
Kutztown UniversityKutztown University
2006 Kutztown University 2
OverviewOverviewFactoradicsFactoradicsFactoradics and PermutationsFactoradics and PermutationsFactoradics and EncryptionFactoradics and EncryptionSemi-dynamic EncryptionSemi-dynamic EncryptionCurrent InvestigationsCurrent Investigations
2006 Kutztown University 3
FactoradicsFactoradics Mixed Radix - CombinadicMixed Radix - Combinadic
In mathematics, a In mathematics, a combinadiccombinadic is an ordered integer is an ordered integer partition, or composition. Combinadics provide a partition, or composition. Combinadics provide a lexicographical index for combinations. lexicographical index for combinations.
HistoryHistory Burgeoning InterestBurgeoning Interest Application to SecurityApplication to Security Definition & OperationsDefinition & Operations
2006 Kutztown University 4
HistoryHistory Ernesto Pascal – 1887Ernesto Pascal – 1887 Derrick LehmerDerrick Lehmer Donald KnuthDonald Knuth Peter CameronPeter Cameron James McCaffreyJames McCaffrey "Using Permutations in .NET for Improved Systems Security", by D"Using Permutations in .NET for Improved Systems Security", by D
r. James McCaffrey.r. James McCaffrey.
Knuth has that Derrick Lehmer published the basic Knuth has that Derrick Lehmer published the basic theoremtheorem in 1964, in 1964, and an Ernesto Pascal described a and an Ernesto Pascal described a combinatorial combinatorial number systemnumber system around 1887. around 1887.
2006 Kutztown University 5
Burgeoning InterestBurgeoning Interest
Last Summer – handful of web Last Summer – handful of web pagespages
Now – 508 web pagesNow – 508 web pagesGoogle: “Did you mean Google: “Did you mean
factoredfactored?”?”
2006 Kutztown University 6
Application to SecurityApplication to Security McCaffrey: McCaffrey:
"Using Permutations in .NET for Improved Systems"Using Permutations in .NET for Improved Systems Security" Security"
1-1 relationship to permutations1-1 relationship to permutations
2006 Kutztown University 7
Definition & OperationsDefinition & Operations
DefinitionDefinitionExampleExampleAdditionAdditionCompletenessCompleteness
2006 Kutztown University 8
DefinitionDefinitionMixed radixMixed radixNumber Base = factorialNumber Base = factorialN digits, where N is order of fN digits, where N is order of fMax digit value is pMax digit value is p
– where p is its positionwhere p is its positionValue: digit * p!Value: digit * p!
2006 Kutztown University 9
ExampleExample
[3 1 1 0][3 1 1 0]
2006 Kutztown University 10
ExampleExample
[3 1 1 0][3 1 1 0]= 3*3! + 1*2! + 1 *1! + 0*0!= 3*3! + 1*2! + 1 *1! + 0*0!
2006 Kutztown University 11
ExampleExample
[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
2006 Kutztown University 12
ExampleExample
[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
2006 Kutztown University 13
ExampleExample
[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
2006 Kutztown University 14
AdditionAddition
Proceeds mod p+1Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
2006 Kutztown University 15
AdditionAddition
Proceeds mod p+1Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
[2 3 1 1 0] [2 3 1 1 0] = 69= 69
2006 Kutztown University 16
AdditionAddition
Proceeds mod p+1Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
[2 3 1 1 0] [2 3 1 1 0] = 69= 69
+ [3 1 2 0 0] + [3 1 2 0 0] = 82= 82
2006 Kutztown University 17
AdditionAddition Proceeds mod p+1Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
5 4 3 2 15 4 3 2 1
[2 3 1 1 0] [2 3 1 1 0] = 69= 69
+ [3 1 2 0 0] + [3 1 2 0 0] = 82= 82
= [ ? ? ? ? = [ ? ? ? ? 00 ] ]
2006 Kutztown University 18
AdditionAddition Proceeds mod p+1Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
5 4 3 2 15 4 3 2 1
[2 3 1 1 0] [2 3 1 1 0] = 69= 69
+ [3 1 2 0 0] + [3 1 2 0 0] = 82= 82
= [? ? ? = [? ? ? 11 0] 0]
2006 Kutztown University 19
AdditionAddition Proceeds mod p+1Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
5 4 3 2 15 4 3 2 1
[2 3 1 1 0] [2 3 1 1 0] = 69= 69
+ [3 1 2 0 0] + [3 1 2 0 0] = 82= 82
= [? ? = [? ? 00 1 0] 1 0]
2006 Kutztown University 20
AdditionAddition proceeds mod p+1proceeds mod p+1 resulting in sum mod n! resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
5 4 3 2 15 4 3 2 1
[2 3 1 1 0] [2 3 1 1 0] = 69= 69
+ [3 1 2 0 0] + [3 1 2 0 0] = 82= 82
= [? = [? 11 0 1 0] 0 1 0]
2006 Kutztown University 21
AdditionAddition Proceeds mod p+1Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
5 4 3 2 15 4 3 2 1
[2 3 1 1 0] [2 3 1 1 0] = 69= 69
+ [3 1 2 0 0] + [3 1 2 0 0] = 82= 82
= [= [11 1 0 1 0] 1 0 1 0]
2006 Kutztown University 22
AdditionAddition Proceeds mod p+1Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
[2 3 1 1 0] [2 3 1 1 0] = 69= 69
+ [3 1 2 0 0] + [3 1 2 0 0] = 82= 82
= [1 1 0 1 0] = [1 1 0 1 0] = 31= 31
2006 Kutztown University 23
AdditionAddition Proceeds mod p+1Proceeds mod p+1 Resulting in sum mod n! Resulting in sum mod n!
– where n is maxorder(fwhere n is maxorder(f11,f,f22))
[2 3 1 1 0] [2 3 1 1 0] = 69= 69
+ [3 1 2 0 0] + [3 1 2 0 0] = 82= 82
= [1 1 0 1 0] = [1 1 0 1 0] = 31 = (69+82) mod 120= 31 = (69+82) mod 120
2006 Kutztown University 24
CompletenessCompleteness
1-1 correspondence with integers1-1 correspondence with integersEvery fadic Every fadic unique integer unique integer
– Saw::Saw:: fadic fadic integer conversion integer conversion
Every integer Every integer unique fadic unique fadic– integer integer fadic conversion fadic conversion
2006 Kutztown University 25
Integer Integer Factoradic Factoradic 400 400 [ ? ? . . ?] [ ? ? . . ?]
2006 Kutztown University 26
Integer Integer Factoradic Factoradic 400 400 [ ? ? . . ?] [ ? ? . . ?] 11stst n such that n! > 400 n such that n! > 400 order = 6 order = 6
2006 Kutztown University 27
Integer Integer Factoradic Factoradic 400 400 [ ? ? . . ?] [ ? ? . . ?] 11stst n such that n! > 400 n such that n! > 400 order = 6 order = 6 400 div 5! = 3400 div 5! = 3 400-360 = 40400-360 = 40
2006 Kutztown University 28
Integer Integer Factoradic Factoradic 400 400 [ ? ? . . ?] [ ? ? . . ?] 11stst n such that n! > 400 n such that n! > 400 order = 6 order = 6 400 div 5! = 3400 div 5! = 3 400-360 = 40400-360 = 40 40 div 4! = 140 div 4! = 1 40-24 = 1640-24 = 16
2006 Kutztown University 29
Integer Integer Factoradic Factoradic 400 400 [ ? ? . . ?] [ ? ? . . ?] 11stst n such that n! > 400 n such that n! > 400 order = 6 order = 6 400 div 5! = 3400 div 5! = 3 400-360 = 40400-360 = 40 40 div 4! = 140 div 4! = 1 40-24 = 1640-24 = 16 16 div 3! = 216 div 3! = 2 16-12 = 416-12 = 4
2006 Kutztown University 30
Integer Integer Factoradic Factoradic 400 400 [ ? ? . . ?] [ ? ? . . ?] 11stst n such that n! > 400 n such that n! > 400 order = 6 order = 6 400 div 5! = 3400 div 5! = 3 400-360 = 40400-360 = 40 40 div 4! = 140 div 4! = 1 40-24 = 1640-24 = 16 16 div 3! = 216 div 3! = 2 16-12 = 416-12 = 4 4 div 2! = 24 div 2! = 2 4-4=04-4=0
2006 Kutztown University 31
Integer Integer Factoradic Factoradic 400 400 [ ? ? . . ?] [ ? ? . . ?] 11stst n such that n! > 400 n such that n! > 400 order = 6 order = 6 400 div 5! = 3400 div 5! = 3 400-360 = 40400-360 = 40 40 div 4! = 140 div 4! = 1 40-24 = 1640-24 = 16 16 div 3! = 216 div 3! = 2 16-12 = 416-12 = 4 4 div 2! = 24 div 2! = 2 4-4=04-4=0
[3 1 2 2 0 0] = 400[3 1 2 2 0 0] = 400
2006 Kutztown University 32
Factoradics and PermutationsFactoradics and Permutations 1-1 correspondence1-1 correspondence
– fadic order k fadic order k permutation of k objects permutation of k objects
Lexicographic orderLexicographic order012012021021102102120120201201210210
nnthth factoradic factoradic n nthth permutation permutation
2006 Kutztown University 33
Fadic-Perm ExampleFadic-Perm Examplexx fadic(x)fadic(x) perm(x)perm(x)
00 [0 0 0][0 0 0] {0 1 2}{0 1 2}11 [0 1 0][0 1 0] {0 2 1}{0 2 1}22 [1 0 0][1 0 0] {1 0 2}{1 0 2}33 [1 1 0][1 1 0] {1 2 0}{1 2 0}44 [2 0 0][2 0 0] {2 0 1}{2 0 1}55 [2 1 0][2 1 0] {2 1 0}{2 1 0}
Data EncryptionData EncryptionChris MraovichChris Mraovich
http://faculty.kutztown.edu/rieksts/385/sem-project/PastProjects/Mraovich/PresentationCD/http://faculty.kutztown.edu/rieksts/385/sem-project/PastProjects/Mraovich/PresentationCD/Encryption%20using%20Factoradics.pptEncryption%20using%20Factoradics.ppt
2006 Kutztown University 35
PermutationsPermutationsGoal is to rearrange bits into a different patternGoal is to rearrange bits into a different pattern
1 0 1 1
1 1 0 1
Permutation – rearrangement of a set of objectsPermutation – rearrangement of a set of objects
Original Form:Original Form:
Encrypted Form:Encrypted Form:
2006 Kutztown University 36
Order & Total Permutations Order & Total Permutations
Suppose there are 4 objectsSuppose there are 4 objects
Order – number of objects (N)Order – number of objects (N)
Total number of permutations for N objects is N!Total number of permutations for N objects is N!
N = 4, so there are 4! or 24 ways to rearrange 4 objectsN = 4, so there are 4! or 24 ways to rearrange 4 objects
2006 Kutztown University 37
00 [ 0 0 0 0 ] [ 0 0 0 0 ] { 0 1 2 3 } { 0 1 2 3 }1 1 [ 0 0 1 0 ] [ 0 0 1 0 ] { 0 1 3 2 } { 0 1 3 2 }2 2 [ 0 1 0 0 ] [ 0 1 0 0 ] { 0 2 1 3 } { 0 2 1 3 }3 3 [ 0 1 1 0 ] [ 0 1 1 0 ] { 0 2 3 1 } { 0 2 3 1 }4 4 [ 0 2 0 0 ] [ 0 2 0 0 ] { 0 3 1 2 } { 0 3 1 2 }5 5 [ 0 2 1 0 ] [ 0 2 1 0 ] { 0 3 2 1 } { 0 3 2 1 }6 6 [ 1 0 0 0 ] [ 1 0 0 0 ] { 1 0 2 3 } { 1 0 2 3 }7 7 [ 1 0 1 0 ] [ 1 0 1 0 ] { 1 0 3 2 } { 1 0 3 2 }88 [ 1 1 0 0 ] [ 1 1 0 0 ] { 1 2 0 3 } { 1 2 0 3 }99 [ 1 1 1 0 ] [ 1 1 1 0 ] { 1 2 3 0 } { 1 2 3 0 }10 10 [ 1 2 0 0 ] [ 1 2 0 0 ] { 1 3 0 2 } { 1 3 0 2 }11 11 [ 1 2 1 0 ] [ 1 2 1 0 ] { 1 3 2 0 } { 1 3 2 0 }12 12 [ 2 0 0 0 ] [ 2 0 0 0 ] { 2 0 1 3 } { 2 0 1 3 }13 13 [ 2 0 1 0 ] [ 2 0 1 0 ] { 2 0 3 1 } { 2 0 3 1 }14 14 [ 2 1 0 0 ] [ 2 1 0 0 ] { 2 1 0 3 } { 2 1 0 3 }15 15 [ 2 1 1 0 ] [ 2 1 1 0 ] { 2 1 3 0 } { 2 1 3 0 }16 16 [ 2 2 0 0 ] [ 2 2 0 0 ] { 2 3 0 1 } { 2 3 0 1 }17 17 [ 2 2 1 0 ] [ 2 2 1 0 ] { 2 3 1 0 } { 2 3 1 0 }18 18 [ 3 0 0 0 ] [ 3 0 0 0 ] { 3 0 1 2 } { 3 0 1 2 }19 19 [ 3 0 1 0 ] [ 3 0 1 0 ] { 3 0 2 1 } { 3 0 2 1 }20 [ 3 1 0 0 ] { 3 1 0 2 }21 21 [ 3 1 1 0 ] [ 3 1 1 0 ] { 3 1 2 0 } { 3 1 2 0 }22 22 [ 3 2 0 0 ] [ 3 2 0 0 ] { 3 2 0 1 } { 3 2 0 1 }2323 [ 3 2 1 0 ] [ 3 2 1 0 ] { 3 2 1 0 } { 3 2 1 0 }
•Each factoradic uniquely Each factoradic uniquely identifies a particular permutationidentifies a particular permutation
Total Permutations of order 4Total Permutations of order 4FactoradicFactoradic PermutationPermutationIntInt
•Int is the base 10 representation Int is the base 10 representation of the factoradicof the factoradic
•Walkthrough of how 20Walkthrough of how 201010 is is
converted to a permutation of converted to a permutation of order 4order 4
2006 Kutztown University 38
Fadic Fadic Permutation Permutation [ 3 1 0 0 ][ 3 1 0 0 ]
2006 Kutztown University 39
Fadic Fadic Permutation Permutation [ 3 1 0 0 ][ 3 1 0 0 ] 1. Increment each digit by 1.1. Increment each digit by 1.
2006 Kutztown University 40
Fadic Fadic Permutation 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 ][4 2 1 1 ]
2006 Kutztown University 41
Fadic Fadic Permutation 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 ][4 2 1 1 ] 2. Bring down 12. Bring down 1stst digit digit
2006 Kutztown University 42
Fadic Fadic Permutation 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 ][4 2 1 1 ] 2. Bring down 12. Bring down 1stst digit digit
– { ? ? ? { ? ? ? 11}}
2006 Kutztown University 43
Fadic Fadic Permutation 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 ][4 2 1 1 ] 2. Bring down 12. Bring down 1stst digit digit
– { ? ? ? { ? ? ? 11}} 3. Bring down next digit, 3. Bring down next digit, dd
2006 Kutztown University 44
Fadic Fadic Permutation 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 ][4 2 1 1 ] 2. Bring down 12. Bring down 1stst digit digit
– { ? ? ? { ? ? ? 11}} 3. Bring down next digit, 3. Bring down next digit, dd
– {? ? {? ? 11 1 } 1 }
2006 Kutztown University 45
Fadic Fadic Permutation 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 ][4 2 1 1 ] 2. Bring down 12. Bring down 1stst digit digit
– { ? ? ? { ? ? ? 11}} 3. Bring down next digit, 3. Bring down next digit, dd
– {? ? {? ? 11 1 } 1 } 4. For every digit, r, to the right of d, such 4. For every digit, r, to the right of d, such
that r that r d, increment r. d, increment r.
2006 Kutztown University 46
Fadic Fadic Permutation 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 ][4 2 1 1 ] 2. Bring down 12. Bring down 1stst digit digit
– { ? ? ? { ? ? ? 11}} 3. Bring down next digit, 3. Bring down next digit, dd
– {? ? {? ? 11 1 } 1 } 4. For every digit, r, to the right of d, such that r 4. For every digit, r, to the right of d, such that r
d, increment r. d, increment r.– {? ? {? ? 11 22 } }
2006 Kutztown University 47
Fadic Fadic Permutation 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 ][4 2 1 1 ] 2. Bring down 12. Bring down 1stst digit digit
– { ? ? ? { ? ? ? 11}} 3. Bring down next digit, 3. Bring down next digit, dd
– {? ? {? ? 11 1 } 1 } 4. For every digit, r, to the right of d, such that r 4. For every digit, r, to the right of d, such that r d, d,
increment r.increment r.– {? ? {? ? 11 22 } }
5. Repeat 3 & 4 until finished.5. Repeat 3 & 4 until finished.
2006 Kutztown University 48
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1]
2006 Kutztown University 49
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1] { ? ? ? { ? ? ? 11 } }
2006 Kutztown University 50
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1] { ? ? ? { ? ? ? 11 } } {? ? {? ? 1 1 1 }1 }
2006 Kutztown University 51
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1] { ? ? ? { ? ? ? 11 } } {? ? {? ? 1 1 1 }1 } {? ? {? ? 1 1 22 } }
2006 Kutztown University 52
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1] { ? ? ? { ? ? ? 11 } } {? ? {? ? 1 1 1 }1 } {? ? {? ? 1 1 22 } } {? {? 2 2 11 2 }2 }
2006 Kutztown University 53
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1] { ? ? ? { ? ? ? 11 } } {? ? {? ? 1 1 1 }1 } {? ? {? ? 1 1 22 } } {? {? 2 2 11 2 }2 } {? {? 2 2 11 3 3 } }
2006 Kutztown University 54
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1] { ? ? ? { ? ? ? 11 } } {? ? {? ? 1 1 1 }1 } {? ? {? ? 1 1 22 } } {? {? 2 2 11 2 }2 } {? {? 2 2 11 3 3 } } { { 4 4 2 1 3 }2 1 3 }
2006 Kutztown University 55
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1] { ? ? ? { ? ? ? 11 } } {? ? {? ? 1 1 1 }1 } {? ? {? ? 1 1 22 } } {? {? 2 2 11 2 }2 } {? {? 2 2 11 3 3 } } { { 4 4 2 1 3 }2 1 3 } { 4 2 1 3 }{ 4 2 1 3 }
2006 Kutztown University 56
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1] { ? ? ? { ? ? ? 11 } } {? ? {? ? 1 1 1 }1 } {? ? {? ? 1 1 22 } } {? {? 2 2 11 2 }2 } {? {? 2 2 11 3 3 } } { { 4 4 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.
2006 Kutztown University 57
Fadic Fadic Permutation Permutation [ 4 2 1 1][ 4 2 1 1] { ? ? ? { ? ? ? 11 } } {? ? {? ? 1 1 1 }1 } {? ? {? ? 1 1 22 } } {? {? 2 2 11 2 }2 } {? {? 2 2 11 3 3 } } { { 4 4 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 }{3 1 0 2 }
2006 Kutztown University 58
Fadic Fadic Permutation 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
2006 Kutztown University 59
Factoradics & EncryptionFactoradics & Encryption
Encryption SummaryEncryption SummarySimple ExampleSimple Example
2006 Kutztown University 60
Encryption SummaryEncryption 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
2006 Kutztown University 61
3 1 0 2
Original Binary Data:Original Binary Data:
Use Permutation to swap bitsUse Permutation to swap bitsObtained Permutation:Obtained Permutation:
1 0 1 01 0 1 0
Encrypted Bit Array Data:Encrypted Bit Array Data:
00 11 22 33
2006 Kutztown University 62
3 1 0 2
Original Binary Data:Original Binary Data:
Use Permutation to swap bitsUse Permutation to swap bitsObtained Permutation:Obtained Permutation:
1 0 1 01 0 1 0
Encrypted Bit Array Data:Encrypted Bit Array Data:
11
00 11 22 33
2006 Kutztown University 63
3 1 0 2
Original Binary Data:Original Binary Data:
Use Permutation to swap bitsUse Permutation to swap bitsObtained Permutation:Obtained Permutation:
1 0 1 01 0 1 0
Encrypted Bit Array Data:Encrypted Bit Array Data:
1100
00 11 22 33
2006 Kutztown University 64
3 1 0 2
Original Binary Data:Original Binary Data:
Use Permutation to swap bitsUse Permutation to swap bitsObtained Permutation:Obtained Permutation:
1 0 1 01 0 1 0
Encrypted Bit Array Data:Encrypted Bit Array Data:
110011
00 11 22 33
2006 Kutztown University 65
3 1 0 2
Original Binary Data:Original Binary Data:
Use Permutation to swap bitsUse Permutation to swap bitsObtained Permutation:Obtained Permutation:
1 0 1 01 0 1 0
Encrypted Bit Array Data:Encrypted Bit Array Data:
110011 00
00 11 22 33
2006 Kutztown University 66
Semi-dynamic Semi-dynamic EncryptionEncryption
SdE OverviewSdE OverviewKey re-orderingKey re-orderingDynamic Key generationDynamic Key generationBasic algorithmBasic algorithmPreliminary resultsPreliminary results
2006 Kutztown University 67
SdE OverviewSdE OverviewMeta-keyMeta-key is key set is key setPrimaryPrimary keys used to encrypt keys used to encryptSecondarySecondary keys re-order other keys re-order other
keyskeysOperations on key set generate Operations on key set generate
new keysnew keys
2006 Kutztown University 68
Key Re-OrderingKey Re-OrderingKeys: [kKeys: [k00 k k11 k k22 k k33 ] ]
R-key: [ 1 3 0 2 ]R-key: [ 1 3 0 2 ]
2006 Kutztown University 69
Key Re-OrderingKey Re-OrderingKeys: [kKeys: [k00 k k11 k k22 k k33 ] ]
R-key: [ 1 3 0 2 ]R-key: [ 1 3 0 2 ]Resulting orders:Resulting orders:
– [k[k00 k k11 k k22 k k33 ] ]
2006 Kutztown University 70
Key Re-OrderingKey Re-OrderingKeys: [kKeys: [k00 k k11 k k22 k k33 ] ]
R-key: [ 1 3 0 2 ]R-key: [ 1 3 0 2 ]Resulting orders:Resulting orders:
– [k[k00 k k11 k k22 k k33 ] ]
– [k[k11 k k33 k k00 k k22 ] ]
2006 Kutztown University 71
Key Re-OrderingKey Re-OrderingKeys: [kKeys: [k00 k k11 k k22 k k33 ] ]
R-key: [ 1 3 0 2 ]R-key: [ 1 3 0 2 ]Resulting orders:Resulting orders:
– [k[k00 k k11 k k22 k k33 ] ]
– [k[k11 k k33 k k00 k k22 ] ]
– [k[k33 k k22 k k11 k k00 ] ]
2006 Kutztown University 72
Key Re-OrderingKey Re-OrderingKeys: [kKeys: [k00 k k11 k k22 k k33 ] ]
R-key: [ 1 3 0 2 ]R-key: [ 1 3 0 2 ]Resulting orders:Resulting orders:
– [k[k00 k k11 k k22 k k33 ] ]
– [k[k11 k k33 k k00 k k22 ] ]
– [k[k33 k k22 k k11 k k00 ] ]
– [k[k22 k k00 k k33 k k11 ] ]
2006 Kutztown University 73
Key Re-OrderingKey Re-Ordering Keys: [kKeys: [k00 k k11 k k22 k k33 ] ]
R-key: [ 1 3 0 2 ]R-key: [ 1 3 0 2 ] Resulting orders:Resulting orders:
– [k[k00 k k11 k k22 k k33 ] ]
– [k[k11 k k33 k k00 k k22 ] ]
– [k[k33 k k22 k k11 k k00 ] ]
– [k[k22 k k00 k k33 k k11 ] ]
– [k[k00 k k11 k k22 k k33 ] ]
2006 Kutztown University 74
Key Re-OrderingKey Re-Ordering Keys: [kKeys: [k00 k k11 k k22 k k33 ] ] R-key: [ 1 3 0 2 ]R-key: [ 1 3 0 2 ] Resulting orders:Resulting orders:
– [k[k00 k k11 k k22 k k33 ] ]– [k[k11 k k33 k k00 k k22 ] ]– [k[k33 k k22 k k11 k k00 ] ]– [k[k22 k k00 k k33 k k11 ] ]– [k[k00 k k11 k k22 k k33 ] ]
Disadvantage: patternsDisadvantage: patterns
2006 Kutztown University 75
Dynamic Key GenerationDynamic Key GenerationFadic Fadic Perm Perm Key KeyFadic + Fadic Fadic + Fadic Fadic mod n! Fadic mod n!Use base fadic to generate fadicUse base fadic to generate fadicUse new fadic to generate keyUse new fadic to generate keyRepeatRepeat
2006 Kutztown University 76
DKG ExampleDKG Example Base = Base = [ 2 2 1 0 ][ 2 2 1 0 ]
2006 Kutztown University 77
DKG ExampleDKG Example Base = Base = [ 2 2 1 0 ][ 2 2 1 0 ] [ 0 0 0 0 ] + [ 0 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 2 1 0 ] [ 2 2 1 0 ] {2 3 1 0}{2 3 1 0}
2006 Kutztown University 78
DKG ExampleDKG Example Base = Base = [ 2 2 1 0 ][ 2 2 1 0 ] [ 0 0 0 0 ] + [ 0 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 2 1 0 ] [ 2 2 1 0 ] {2 3 1 0}{2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 2 0 0 ] [ 1 2 0 0 ] {1 3 0 2}{1 3 0 2}
2006 Kutztown University 79
DKG ExampleDKG Example Base = Base = [ 2 2 1 0 ][ 2 2 1 0 ] [ 0 0 0 0 ] + [ 0 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 2 1 0 ] [ 2 2 1 0 ] {2 3 1 0}{2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 2 0 0 ] [ 1 2 0 0 ] {1 3 0 2}{1 3 0 2} [ 1 2 0 0 ] + [ 1 2 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 0 1 1 0 ] [ 0 1 1 0 ] {0 2 3 1}{0 2 3 1}
2006 Kutztown University 80
DKG ExampleDKG Example Base = Base = [ 2 2 1 0 ][ 2 2 1 0 ] [ 0 0 0 0 ] + [ 0 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 2 1 0 ] [ 2 2 1 0 ] {2 3 1 0}{2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 2 0 0 ] [ 1 2 0 0 ] {1 3 0 2}{1 3 0 2} [ 1 2 0 0 ] + [ 1 2 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 0 1 1 0 ] [ 0 1 1 0 ] {0 2 3 1}{0 2 3 1} [ 0 1 1 0 ] + [ 0 1 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 3 1 0 0 ] [ 3 1 0 0 ] {3 1 0 2}{3 1 0 2}
2006 Kutztown University 81
DKG ExampleDKG Example Base = Base = [ 2 2 1 0 ][ 2 2 1 0 ] [ 0 0 0 0 ] + [ 0 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 2 1 0 ] [ 2 2 1 0 ] {2 3 1 0}{2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 2 0 0 ] [ 1 2 0 0 ] {1 3 0 2}{1 3 0 2} [ 1 2 0 0 ] + [ 1 2 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 0 1 1 0 ] [ 0 1 1 0 ] {0 2 3 1}{0 2 3 1} [ 0 1 1 0 ] + [ 0 1 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 3 1 0 0 ] [ 3 1 0 0 ] {3 1 0 2}{3 1 0 2} [ 3 1 0 0 ] + [ 3 1 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 0 1 0 ] [ 2 0 1 0 ] {2 0 3 1}{2 0 3 1}
2006 Kutztown University 82
DKG ExampleDKG Example Base = Base = [ 2 2 1 0 ][ 2 2 1 0 ] [ 0 0 0 0 ] + [ 0 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 2 1 0 ] [ 2 2 1 0 ] {2 3 1 0}{2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 2 0 0 ] [ 1 2 0 0 ] {1 3 0 2}{1 3 0 2} [ 1 2 0 0 ] + [ 1 2 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 0 1 1 0 ] [ 0 1 1 0 ] {0 2 3 1}{0 2 3 1} [ 0 1 1 0 ] + [ 0 1 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 3 1 0 0 ] [ 3 1 0 0 ] {3 1 0 2}{3 1 0 2} [ 3 1 0 0 ] + [ 3 1 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 0 1 0 ] [ 2 0 1 0 ] {2 0 3 1}{2 0 3 1} [ 2 0 1 0 ] + [ 2 0 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 0 0 0 ] [ 1 0 0 0 ] {1 0 2 3}{1 0 2 3}
2006 Kutztown University 83
DKG ExampleDKG Example Base = Base = [ 2 2 1 0 ][ 2 2 1 0 ] [ 0 0 0 0 ] + [ 0 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 2 1 0 ] [ 2 2 1 0 ] {2 3 1 0}{2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 2 0 0 ] [ 1 2 0 0 ] {1 3 0 2}{1 3 0 2} [ 1 2 0 0 ] + [ 1 2 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 0 1 1 0 ] [ 0 1 1 0 ] {0 2 3 1}{0 2 3 1} [ 0 1 1 0 ] + [ 0 1 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 3 1 0 0 ] [ 3 1 0 0 ] {3 1 0 2}{3 1 0 2} [ 3 1 0 0 ] + [ 3 1 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 0 1 0 ] [ 2 0 1 0 ] {2 0 3 1}{2 0 3 1} [ 2 0 1 0 ] + [ 2 0 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 0 0 0 ] [ 1 0 0 0 ] {1 0 2 3}{1 0 2 3} [ 1 0 0 0 ] + [ 1 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 3 2 1 0 ] [ 3 2 1 0 ] {3 2 1 0}{3 2 1 0}
2006 Kutztown University 84
DKG ExampleDKG Example Base = Base = [ 2 2 1 0 ][ 2 2 1 0 ] [ 0 0 0 0 ] + [ 0 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 2 1 0 ] [ 2 2 1 0 ] {2 3 1 0}{2 3 1 0} [ 2 2 1 0 ] + [ 2 2 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 2 0 0 ] [ 1 2 0 0 ] {1 3 0 2}{1 3 0 2} [ 1 2 0 0 ] + [ 1 2 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 0 1 1 0 ] [ 0 1 1 0 ] {0 2 3 1}{0 2 3 1} [ 0 1 1 0 ] + [ 0 1 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 3 1 0 0 ] [ 3 1 0 0 ] {3 1 0 2}{3 1 0 2} [ 3 1 0 0 ] + [ 3 1 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 0 1 0 ] [ 2 0 1 0 ] {2 0 3 1}{2 0 3 1} [ 2 0 1 0 ] + [ 2 0 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 1 0 0 0 ] [ 1 0 0 0 ] {1 0 2 3}{1 0 2 3} [ 1 0 0 0 ] + [ 1 0 0 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 3 2 1 0 ] [ 3 2 1 0 ] {3 2 1 0}{3 2 1 0} [ 3 2 1 0 ] + [ 3 2 1 0 ] + [ 2 2 1 0 ][ 2 2 1 0 ] = = [ 2 2 0 0 ] [ 2 2 0 0 ] {2 3 0 1}{2 3 0 1}
2006 Kutztown University 85
Basic AlgorithmBasic Algorithm11stst round of encryption round of encryptionIntermediate bit shufflingIntermediate bit shuffling22ndnd round of encryption round of encryption
2006 Kutztown University 86
11stst Encryption Round Encryption RoundPrimary keyPrimary keyIteration count keyIteration count keyPrimary jump keyPrimary jump keyIC shuffle keyIC shuffle keyPJ shuffle keyPJ shuffle key
2006 Kutztown University 87
11stst Encryption Round Encryption RoundPrimary keyPrimary key
– encodes 8 bits of plaintextencodes 8 bits of plaintextIteration count keyIteration count key
–how long a primary key usedhow long a primary key usedPrimary jump keyPrimary jump key
–computes fadic/primary keycomputes fadic/primary key
2006 Kutztown University 88
11stst Encryption Round Encryption RoundIC shuffle keyIC shuffle key
– computes next iteration count keycomputes next iteration count keyPJ shuffle keyPJ shuffle key
– computes next primary jump keycomputes next primary jump key
2006 Kutztown University 89
Intermediate ShufflingIntermediate Shuffling Transposition keyTransposition key
– transposes m bits of cipher text from transposes m bits of cipher text from 11stst round round
Transposition jump keyTransposition jump key– computes next transposition keycomputes next transposition key
TJ shuffle keyTJ shuffle key– computes next transposition jump keycomputes next transposition jump key
2006 Kutztown University 90
22ndnd Encryption Round Encryption RoundRe-encrypts intermediate bitsRe-encrypts intermediate bitsSame algorithm as 1Same algorithm as 1stst round roundHas own set of keysHas own set of keys
2006 Kutztown University 91
Preliminary ResultsPreliminary Results
11stst Test – highly repetitious plain Test – highly repetitious plain texttext
65,536 bits – all zeros65,536 bits – all zerosLook for recurrence of bit Look for recurrence of bit
patternspatterns
2006 Kutztown University 92
Preliminary ResultsPreliminary Results65K bits65K bits
Occurrences of arbitrary bit sequencesOccurrences of arbitrary bit sequences12-bit sequences: 15-18 times12-bit sequences: 15-18 times14-bit sequences: 5-7 times14-bit sequences: 5-7 times16-bit sequences: 1-3 times16-bit sequences: 1-3 times18- & 20-bit sequences: 1 time18- & 20-bit sequences: 1 time
2006 Kutztown University 93
Distance TestDistance Test
Probability of distances between Probability of distances between occurrences of bit stringsoccurrences of bit strings
Example: 3-bit sequencesExample: 3-bit sequences P(bP(b1 1 bb22bb3 3 bb1 1 bb22bb33) = 1/8 = .125) = 1/8 = .125
P(bP(b1 1 bb22bb3 3 bb1 1 xx1 1 xx2 2 xx33bb11bb22bb33) = 7/8 * 1/8 = .10935) = 7/8 * 1/8 = .10935
P(bP(b1 1 bb22bb3 3 bb11[x[x1 1 xx2 2 xx33]]nnbb11bb22bb33) = (7/8)) = (7/8)nn * 1/8 * 1/8
2006 Kutztown University 94
Distance Test Results: 134MDistance Test Results: 134M** bits bits Occurrences of 111Occurrences of 111 1 699049 .1249618 .1251 699049 .1249618 .125 2 612243 .1094444 .1093752 612243 .1094444 .109375 3 536716 .0959432 .09570313 536716 .0959432 .0957031 4 468716 .0837875 .08374024 468716 .0837875 .0837402 5 409291 .0731647 .07327275 409291 .0731647 .0732727 6 357330 .0638762 .06411366 357330 .0638762 .0641136 7 313349 .0560142 .05609947 313349 .0560142 .0560994 8 274349 .0490426 .0490878 274349 .0490426 .049087 9 240059 .0429129 .04295119 240059 .0429129 .0429511 10 210642 .0376543 .037582210 210642 .0376543 .0375822 11 183825 .0328605 .032884411 183825 .0328605 .0328844 12 161219 .0288195 .028773912 161219 .0288195 .0287739 13 141077 .0252189 .025177213 141077 .0252189 .0251772 14 123695 .0221117 .0220314 123695 .0221117 .02203 15 107988 .0193039 .019276315 107988 .0193039 .0192763 16 94514 .0168953 .016866716 94514 .0168953 .0168667 17 82668 .0147777 .014758417 82668 .0147777 .0147584 18 72374 .0129376 .012913618 72374 .0129376 .0129136 19 63362 .0113266 .011299419 63362 .0113266 .0112994 20 55279 .0098817 .00988720 55279 .0098817 .009887
**134,217,728 = 2134,217,728 = 22727
2006 Kutztown University 95
Distance Test Results: 134MDistance Test Results: 134M** bits bits Occurrences of 111Occurrences of 111
1 699049 .1249618 .1251 699049 .1249618 .125
2 612243 .1094444 .1093752 612243 .1094444 .109375
3 536716 .0959432 .09570313 536716 .0959432 .0957031
4 468716 .0837875 .08374024 468716 .0837875 .0837402
5 409291 .0731647 .07327275 409291 .0731647 .0732727**134,217,728 = 2134,217,728 = 22727
2006 Kutztown University 96
Occurrence Test Results: 134M bitsOccurrence Test Results: 134M bits Number of occurrences:Number of occurrences:000 is 5591658 000 is 5591658 001 is 5590568 001 is 5590568 010 is 5592818 010 is 5592818 011 is 5592478 011 is 5592478 100 is 5589295 100 is 5589295 101 is 5592467 101 is 5592467 110 is 5595849 110 is 5595849 111 is 5594101 111 is 5594101
2006 Kutztown University 97
Current InvestigationsCurrent Investigations Chris MraovichChris Mraovich
– wrote decryption codewrote decryption code– encoded binary filesencoded binary files– working on speed-upworking on speed-up
Jeremy VaughanJeremy Vaughan– studying tests of randomnessstudying tests of randomness– writing randomness testing codewriting randomness testing code
2006 Kutztown University 98
Future WorkFuture Work Investigate hardware Investigate hardware
implementationimplementation Use other randomness testsUse other randomness tests Test actual plaintextsTest actual plaintexts Experiment with variationsExperiment with variations
– Staggering the primary block sizeStaggering the primary block size– Frequency of shufflingFrequency of shuffling– Choices of key setChoices of key set– How many rounds?How many rounds?
QuestionsQuestions
??