An Algorithm for Checking Normality of Boolean Functions
description
Transcript of An Algorithm for Checking Normality of Boolean Functions
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
An AlgorithmAn Algorithm
for Checking Normalityfor Checking Normality
of Boolean Functionsof Boolean Functions
Magnus DaumMagnus Daum Hans DobbertinHans Dobbertin Gregor LeanderGregor Leander
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
OverviewOverview
• Definitions and Motivation• General Idea and Algorithm• Details of the Algorithm• Complexity Evaluations
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• Boolean function , n=2m
• f is normal :, 9 m-dimensional flat a+U: is constant
• f is weakly normal :, 9 m-dimensional flat a+U: is affine
DefinitionsDefinitions
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
MotivationMotivation
• Open question:
Are there non normal bent functions?
• Dillon / Dobbertin found some new bent functions to be checked for normality
(Kasami power functions)
• Interesting cases: m ¸ 5 odd
(i.e. n=10,14,…)
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• # (subspaces of of dimension k):• # ( flats of of dimension k):
• Naive idea:– Enumerate all flats of dimension m and check
whether f is constant/affine or not
Motivation: Naive AlgorithmMotivation: Naive Algorithm
• # (flats of of dimension m)
m 4 5 6 7 8
log2(#flats) 21 31 44 57 73
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
General IdeaGeneral Idea
• flat a+U, u1,…,uk a basis of U
• f is affine on a+U:
) f is constant on a+U or
• f constant on a+U:
constant
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
) and are constant
General IdeaGeneral Idea
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• Idea for the algorithm:– find flats a+U and b+U, dim(U)=k
– combine them to
with :
General IdeaGeneral Idea
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
Outline of the AlgorithmOutline of the Algorithm
Input: Boolean function f, starting dimension t0
For all subspaces do :
Determine all flats a+U, such that
a+U, b+U, dim U=k
! dim=k+1
a+U, b+U, dim U=k
! dim=k+1
m-dimensional flats on which f is affine
combine
repeat up to
dim=m-1
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• Main problem:
can be split into
in many ways
• many ways to find some• try to avoid this redundant work
Outline of the AlgorithmOutline of the Algorithm
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• need a unique representation of U to avoid looking at same U twice
• Basis of U is a Gauss Jordan Basis
Details: Representation of UDetails: Representation of U
(ui): index of the leftmost 1 in ui
• >: standard lexicographical ordering
DetailsDetails
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• easy to enumerate all subspaces:
– loop over all
– fill corresponding to this scheme
– loop over all values in for
• Example:
Details: Representation of UDetails: Representation of U
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• easy to enumerate all flats corresponding to U:
–
– a+U can be represented uniquely as a‘+U with a‘2
• Example:
Details: Representation of UDetails: Representation of U
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• Main data structure:
List of all flats corresponding toon which f is constant equal to c
Details: Combining FlatsDetails: Combining Flats
if is GJB
otherwise
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• store elements in sorted order
Details: Combining FlatsDetails: Combining Flats
Lemma:
• compute once , check
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
Details: Combining FlatsDetails: Combining Flats
Corollary:
• only need to consider if this is fulfilled
or
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
Details: AlgorithmDetails: Algorithm
Input: Boolean function f, starting dimension t0
Output: a list of all flats on which f is affine
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
ComplexityComplexity
• How to choose starting dimension t0?
• evaluate expected complexity under the assumption that f is a random Boolean function
• Two parts:– „exhaustive search“ part– „combining“ part
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• Check all flats of dimension t0:
about flats
• less than two comparisons per flat on average
n=14:
Complexity: Exhaustive SearchComplexity: Exhaustive Search
t0 1 2 3 4 5 6 7
log2(complexity) 28 38 46 52 56 58 58
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
• complexity of combining part• n=14:
• exh.search:
• choose starting dimension t0=2 or t0=3
• implementation on Pentium IV, 1.5 GHz: about 50 hours for n=14
Complexity: CombiningComplexity: Combining
t0 1 2 3 4 5 6 7
log2(complexity) 28 38 46 52 56 58 58
t0 1 2 3 4 5
log2(complexity) 43 43 41 30 1 naive
algorithm
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
28.03.2003 Daum,Dobbertin,Leander: An Algorithm for Checking Normality of Boolean Functions
ConclusionConclusion
• presented an algorithm that computes a list of all flats, on which a given Boolean function is affine/constant
• can be used to check (weak) normality of Boolean functions much faster than with the naive algorithm
• other applications also possible(like checking Maiorana-McFarland-property)
• solved open question about existence of non (weakly) normal bent functions
RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology
Thank You !!!Thank You !!!
Questions ?!?Questions ?!?