An Algorithm for Checking Normality of Boolean Functions

22
Ruhr Ruhr Universi Universi ty ty Bochum Bochum Faculty of Mathematics Faculty of Mathematics Information-Security and Information-Security and Cryptology Cryptology An Algorithm An Algorithm for Checking for Checking Normality Normality of Boolean of Boolean Functions Functions Magnus Daum Magnus Daum Hans Dobbertin Hans Dobbertin Gregor Leander Gregor Leander

description

An Algorithm for Checking Normality of Boolean Functions. Magnus DaumHans DobbertinGregor Leander. Overview. Definitions and Motivation General Idea and Algorithm Details of the Algorithm Complexity Evaluations. Definitions. Boolean function , n=2m - PowerPoint PPT Presentation

Transcript of An Algorithm for Checking Normality of Boolean Functions

Page 1: 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

Page 2: An Algorithm for Checking Normality of Boolean Functions

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

Page 3: An Algorithm for Checking Normality of Boolean Functions

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

Page 4: An Algorithm for Checking Normality of Boolean Functions

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,…)

Page 5: An Algorithm for Checking Normality of Boolean Functions

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

Page 6: An Algorithm for Checking Normality of Boolean Functions

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

Page 7: An Algorithm for Checking Normality of Boolean Functions

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

Page 8: An Algorithm for Checking Normality of Boolean Functions

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

Page 9: An Algorithm for Checking Normality of Boolean Functions

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

Page 10: An Algorithm for Checking Normality of Boolean Functions

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

Page 11: An Algorithm for Checking Normality of Boolean Functions

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

Page 12: An Algorithm for Checking Normality of Boolean Functions

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

Page 13: An Algorithm for Checking Normality of Boolean Functions

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

Page 14: An Algorithm for Checking Normality of Boolean Functions

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

Page 15: An Algorithm for Checking Normality of Boolean Functions

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

Page 16: An Algorithm for Checking Normality of Boolean Functions

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

Page 17: An Algorithm for Checking Normality of Boolean Functions

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

Page 18: An Algorithm for Checking Normality of Boolean Functions

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

Page 19: An Algorithm for Checking Normality of Boolean Functions

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

Page 20: An Algorithm for Checking Normality of Boolean Functions

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

Page 21: An Algorithm for Checking Normality of Boolean Functions

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

Page 22: An Algorithm for Checking Normality of Boolean Functions

RuhrRuhrUniversityUniversityBochumBochumFaculty of MathematicsFaculty of MathematicsInformation-Security and CryptologyInformation-Security and Cryptology

Thank You !!!Thank You !!!

Questions ?!?Questions ?!?