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

Slides:



Advertisements
Similar presentations
CLASSICAL ENCRYPTION TECHNIQUES
Advertisements

Classical Encryption Techniques Week 6-wend. One-Time Pad if a truly random key as long as the message is used, the cipher will be secure called a One-Time.
Lecture 5: Cryptographic Hashes
CS 483 – SD SECTION BY DR. DANIYAL ALGHAZZAWI (3) Information Security.
Encryption and Encoding
CSE331: Introduction to Networks and Security Lecture 17 Fall 2002.
McGraw-Hill©The McGraw-Hill Companies, Inc., Security PART VII.
Chapter 2 Basic Encryption and Decryption (part B)
Decryption Algorithms Characterization Project ECE 526 spring 2007 Ravimohan Boggula,Rajesh reddy Bandala Southern Illinois University Carbondale.
Binary Numbers.
Chapter 8.  Cryptography is the science of keeping information secure in terms of confidentiality and integrity.  Cryptography is also referred to as.
1.7 Arrays academy.zariba.com 1. Lecture Content 1.Basic Operations with Arrays 2.Console Input & Output of Arrays 3.Iterating Over Arrays 4.List 5.Cloning.
Block and Stream Ciphers1 Reference –Matt Bishop, Computer Security, Addison Wesley, 2003.
Elgamal Public Key Encryption CSCI 5857: Encoding and Encryption.
Cryptanalysis of Modern Symmetric-Key Block Ciphers [Based on “A Tutorial on Linear and Differential Cryptanalysis” by Howard Heys.] Modern block ciphers.
A Cryptography Education Tool Anna Yu Department of Computer Science College of Engineering North Carolina A&T State University June 18, 2009.
Chapter 2 Basic Encryption and Decryption. csci5233 computer security & integrity 2 Encryption / Decryption encrypted transmission AB plaintext ciphertext.
Lecture 2 Overview.
Cryptography Programming Lab
MATH 224 – Discrete Mathematics
CSCI 5857: Encoding and Encryption
Chaos Theory and Encryption
Decimal Number System We are used to the decimal number system which is a positional number system The decimal number 4386 represents the value: 41000.
Computer System Security CSE 5339/7339
Chapter 2 – Elementary Cryptography  Concepts of encryption  Cryptanalysis  Symmetric (secret key) Encryption (DES & AES)(DES & AES)  Asymmetric (public.
Section 2.1: Shift Ciphers and Modular Arithmetic The purpose of this section is to learn about modular arithmetic, which is one of the fundamental mathematical.
1 Chapter 3 Ciphers Mechanism that decides the process of encryption/decryption Stream Cipher: Bit-by-bit encryption / decryption Block Cipher: Block-by-block.
Chapter 3 Section 1 Number Representation Modern cryptographic methods, unlike the classical methods we just learned, are computer based. Representation.
Sorting HKOI Training Team (Advanced)
1 Problem Solving using computers Data.. Representation & storage Representation of Numeric data The Binary System.
Topic 21 Cryptography CS 555 Topic 2: Evolution of Classical Cryptography CS555.
Day 18. Concepts Plaintext: the original message Ciphertext: the transformed message Encryption: transformation of plaintext into ciphertext Decryption:
Pseudo-Random Functions 1/22 Encryption as Permutation Assume cryptosystem correct and P = C If x  x’ then E K (x)  E K (x’) So, no y is hit by more.
ITMS – 3153 Information Systems Security
Module 3 – Cryptography Cryptography basics Ciphers Symmetric Key Algorithms Public Key Algorithms Message Digests Digital Signatures.
Integer Representation for People Computer Organization and Assembly Language: Module 3.
Data Encryption Chris Mraovich. Overview Purpose of EncryptionPurpose of Encryption Permutations Bases and FactoradicsPermutations Bases and Factoradics.
30.1 Chapter 30 Cryptography Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Implementing the RC4 Algorithm
Classical Encryption techniques
Elementary Cryptography  Concepts of encryption  Symmetric (secret key) Encryption (DES & AES)(DES & AES)  Asymmetric (public key) Encryption (RSA)(RSA)
1 University of Palestine Information Security Principles ITGD 2202 Ms. Eman Alajrami 2 nd Semester
‘Baby DES’ cipher Alexei Vernitski. Block cipher A message is a sequence of bits: … We split the message in blocks of a fixed length.
Description of a New Variable-Length Key, 64-Bit Block Cipher (BLOWFISH) Bruce Schneier BY Sunitha Thodupunuri.
30.1 Chapter 30 Cryptography Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Tractability & Cryptography Strange Symbiosis Points of Reference: Oskars Rieksts.
K. Salah1 Cryptography Module I. K. Salah2 Cryptographic Protocols  Messages should be transmitted to destination  Only the recipient should see it.
Block Ciphers and the Advanced Encryption Standard
DATA & COMPUTER SECURITY (CSNB414) MODULE 3 MODERN SYMMETRIC ENCRYPTION.
5.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 5 Introduction to Modern Symmetric-key Ciphers.
Cellular Encryption CREU Project Team: Alburn Brown Orkun Kaya Isaac Rieksts Eric Thorpe.
Lecture 3 Overview. Ciphers The intent of cryptography is to provide secrecy to messages and data Substitutions – ‘hide’ letters of plaintext Transposition.
ECE 101 An Introduction to Information Technology Information Coding.
Module :MA3036NI Symmetric Encryption -3 Lecture Week 4.
Elgamal Public Key Encryption CSCI 5857: Encoding and Encryption.
Lecture 2 Overview. Cryptography Secret writing – Disguised data cannot be read, modified, or fabricated easily – Feasibility of complexity for communicating.
Information and Network Security Lecture 2 Dr. Hadi AL Saadi.
Information and Computer Security CPIS 312 Lab 6 & 7 1 TRIGUI Mohamed Salim Symmetric key cryptography.
Generating Permutations and Combinations “Traveling Salesman Problem” – A salesman must visit 6 cities; what’s the best order in which to visit them? Assume.
Chapter 3 The Fundamentals: Algorithms, the integers, and matrices Section 3.4: The integers and division Number theory: the part of mathematics involving.
Topic: Binary Encoding – Part 1
Chapter 2 Basic Encryption and Decryption
Provides Confidentiality
Chapter 30 Cryptography Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Cryptography II Jagdish S. Gangolly School of Business
PART VII Security.
Fundamentals of Python: First Programs
Computer Security IT423 Semester II
DES (Data Encryption Standard)
Presentation transcript:

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

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

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 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 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

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?”

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

2006Kutztown University7 Definition & Operations Definition Definition Example Example Addition Addition Completeness Completeness

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!

2006Kutztown University9 Example [ ] [ ]

2006Kutztown University10 Example [ ] [ ] = 3*3! + 1*2! + 1 *1! + 0*0! = 3*3! + 1*2! + 1 *1! + 0*0!

2006Kutztown University11 Example [ ] [ ] = 3*3! + 1*2! + 1 *1! + 0*0! = 3*3! + 1*2! + 1 *1! + 0*0! = = 21 = = 21

2006Kutztown University12 Example [ ] [ ] = 3*3! + 1*2! + 1 *1! + 0*0! = 3*3! + 1*2! + 1 *1! + 0*0! = = 21 = = 21 [ ] is max fadic of order 4 [ ] is max fadic of order 4

2006Kutztown University13 Example [ ] [ ] = 3*3! + 1*2! + 1 *1! + 0*0! = 3*3! + 1*2! + 1 *1! + 0*0! = = 21 = = 21 [ ] is max fadic of order 4 [ ] is max fadic of order 4 [ ] = 23 = 4! - 1 [ ] = 23 = 4! - 1

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 )

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 ) [ ] = 69 [ ] = 69

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 ) [ ] = 69 [ ] = 69 + [ ] = 82 + [ ] = 82

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 ) [ ] = 69 [ ] = 69 + [ ] = 82 + [ ] = 82 = [ ? ? ? ? 0 ] = [ ? ? ? ? 0 ]

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 ) [ ] = 69 [ ] = 69 + [ ] = 82 + [ ] = 82 = [? ? ? 1 0] = [? ? ? 1 0]

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 ) [ ] = 69 [ ] = 69 + [ ] = 82 + [ ] = 82 = [? ? 0 1 0] = [? ? 0 1 0]

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 ) [ ] = 69 [ ] = 69 + [ ] = 82 + [ ] = 82 = [? ] = [? ]

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 ) [ ] = 69 [ ] = 69 + [ ] = 82 + [ ] = 82 = [ ] = [ ]

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 ) [ ] = 69 [ ] = 69 + [ ] = 82 + [ ] = 82 = [ ] = 31 = [ ] = 31

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 ) [ ] = 69 [ ] = 69 + [ ] = 82 + [ ] = 82 = [ ] = 31 = (69+82) mod 120 = [ ] = 31 = (69+82) mod 120

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

2006Kutztown University25 Integer  Factoradic 400  [ ? ?.. ?] 400  [ ? ?.. ?]

2006Kutztown University26 Integer  Factoradic 400  [ ? ?.. ?] 400  [ ? ?.. ?] 1 st n such that n! > 400  order = 6 1 st n such that n! > 400  order = 6

2006Kutztown University27 Integer  Factoradic 400  [ ? ?.. ?] 400  [ ? ?.. ?] 1 st n such that n! > 400  order = 6 1 st n such that n! > 400  order = div 5! = = div 5! = = 40

2006Kutztown University28 Integer  Factoradic 400  [ ? ?.. ?] 400  [ ? ?.. ?] 1 st n such that n! > 400  order = 6 1 st n such that n! > 400  order = div 5! = = div 5! = = div 4! = = div 4! = = 16

2006Kutztown University29 Integer  Factoradic 400  [ ? ?.. ?] 400  [ ? ?.. ?] 1 st n such that n! > 400  order = 6 1 st n such that n! > 400  order = div 5! = = div 5! = = div 4! = = div 4! = = div 3! = = 4 16 div 3! = = 4

2006Kutztown University30 Integer  Factoradic 400  [ ? ?.. ?] 400  [ ? ?.. ?] 1 st n such that n! > 400  order = 6 1 st n such that n! > 400  order = div 5! = = div 5! = = div 4! = = div 4! = = div 3! = = 4 16 div 3! = = 4 4 div 2! = 24-4=0 4 div 2! = 24-4=0

2006Kutztown University31 Integer  Factoradic 400  [ ? ?.. ?] 400  [ ? ?.. ?] 1 st n such that n! > 400  order = 6 1 st n such that n! > 400  order = div 5! = = div 5! = = div 4! = = div 4! = = div 3! = = 4 16 div 3! = = 4 4 div 2! = 24-4=0 4 div 2! = 24-4=0 [ ] = 400 [ ] = 400

2006Kutztown University32 Factoradics and Permutations 1-1 correspondence 1-1 correspondence – fadic order k  permutation of k objects Lexicographic order Lexicographic order n th factoradic  n th permutation n th factoradic  n th permutation

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}

Data Encryption Chris Mraovich project/PastProjects/Mraovich/PresentationCD/Encryption%20using%20Factoradics.ppt project/PastProjects/Mraovich/PresentationCD/Encryption%20using%20Factoradics.ppt

2006Kutztown University35 Permutations Goal is to rearrange bits into a different pattern Permutation – rearrangement of a set of objects Original Form: Encrypted Form:

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 0[ ] { } 1 [ ] { } 2 [ ] { } 3 [ ] { } 4 [ ] { } 5 [ ] { } 6 [ ] { } 7 [ ] { } 8[ ] { } 9[ ] { } 10 [ ] { } 11 [ ] { } 12 [ ] { } 13 [ ] { } 14 [ ] { } 15 [ ] { } 16 [ ] { } 17 [ ] { } 18 [ ] { } 19 [ ] { } 20 [ ] { } 21 [ ] { } 22 [ ] { } 23 [ ] { } 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 is converted to a permutation of order 4Walkthrough of how is converted to a permutation of order 4

38 Fadic  Permutation [ ] [ ]

39 Fadic  Permutation [ ] [ ] 1. Increment each digit by Increment each digit by 1.

40 Fadic  Permutation [ ] [ ] 1. Increment each digit by Increment each digit by 1. –[ ]

41 Fadic  Permutation [ ] [ ] 1. Increment each digit by Increment each digit by 1. –[ ] 2. Bring down 1 st digit 2. Bring down 1 st digit

42 Fadic  Permutation [ ] [ ] 1. Increment each digit by Increment each digit by 1. –[ ] 2. Bring down 1 st digit 2. Bring down 1 st digit –{ ? ? ? 1}

43 Fadic  Permutation [ ] [ ] 1. Increment each digit by Increment each digit by 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 Fadic  Permutation [ ] [ ] 1. Increment each digit by Increment each digit by 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 Fadic  Permutation [ ] [ ] 1. Increment each digit by Increment each digit by 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 Fadic  Permutation [ ] [ ] 1. Increment each digit by Increment each digit by 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 Fadic  Permutation [ ] [ ] 1. Increment each digit by Increment each digit by 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 Fadic  Permutation [ ] [ ]

49 Fadic  Permutation [ ] [ ] { ? ? ? 1 } { ? ? ? 1 }

50 Fadic  Permutation [ ] [ ] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 }

51 Fadic  Permutation [ ] [ ] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 }

52 Fadic  Permutation [ ] [ ] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? } {? }

53 Fadic  Permutation [ ] [ ] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? } {? } {? } {? }

54 Fadic  Permutation [ ] [ ] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? } {? } {? } {? } { } { }

55 Fadic  Permutation [ ] [ ] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? } {? } {? } {? } { } { }

56 Fadic  Permutation [ ] [ ] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? } {? } {? } {? } { } { } 6. Decrement each number by Decrement each number by 1.

57 Fadic  Permutation [ ] [ ] { ? ? ? 1 } { ? ? ? 1 } {? ? 1 1 } {? ? 1 1 } {? ? 1 2 } {? ? 1 2 } {? } {? } {? } {? } { } { } 6. Decrement each number by Decrement each number by 1. –{ }

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

2006Kutztown University59 Factoradics & Encryption Encryption Summary Encryption Summary Simple Example Simple Example

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

2006Kutztown University Original Binary Data: Use Permutation to swap bits Obtained Permutation: Encrypted Bit Array Data: 01 23

2006Kutztown University Original Binary Data: Use Permutation to swap bits Obtained Permutation: Encrypted Bit Array Data:

2006Kutztown University Original Binary Data: Use Permutation to swap bits Obtained Permutation: Encrypted Bit Array Data:

2006Kutztown University Original Binary Data: Use Permutation to swap bits Obtained Permutation: Encrypted Bit Array Data:

2006Kutztown University Original Binary Data: Use Permutation to swap bits Obtained Permutation: Encrypted Bit Array Data:

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

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

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: [ ] R-key: [ ]

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: [ ] R-key: [ ] Resulting orders: Resulting orders: – [k 0 k 1 k 2 k 3 ]

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: [ ] R-key: [ ] Resulting orders: Resulting orders: – [k 0 k 1 k 2 k 3 ] – [k 1 k 3 k 0 k 2 ]

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: [ ] R-key: [ ] 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 ]

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: [ ] R-key: [ ] 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 ]

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: [ ] R-key: [ ] 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 ]

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: [ ] R-key: [ ] 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

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

2006Kutztown University76 DKG Example Base = [ ] Base = [ ]

2006Kutztown University77 DKG Example Base = [ ] Base = [ ] [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { }

2006Kutztown University78 DKG Example Base = [ ] Base = [ ] [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { }

2006Kutztown University79 DKG Example Base = [ ] Base = [ ] [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { }

2006Kutztown University80 DKG Example Base = [ ] Base = [ ] [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { }

2006Kutztown University81 DKG Example Base = [ ] Base = [ ] [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { }

2006Kutztown University82 DKG Example Base = [ ] Base = [ ] [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { }

2006Kutztown University83 DKG Example Base = [ ] Base = [ ] [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { }

2006Kutztown University84 DKG Example Base = [ ] Base = [ ] [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { } [ ] + [ ] = [ ]  { }

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

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

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

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

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

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

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

2006Kutztown University92 Preliminary Results 65K bits Occurrences of arbitrary bit sequences 12-bit sequences: times 12-bit sequences: 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

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 = 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 = 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 Distance Test Results: 134M * bits Occurrences of 111 Occurrences of * 134,217,728 = 2 27

95 Distance Test Results: 134M * bits Occurrences of 111 Occurrences of * 134,217,728 = 2 27

96 Occurrence Test Results: 134M bits Number of occurrences: Number of occurrences: 000 is is is is is is is is

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

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?

Questions ?