Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content
Report published in the Proceedings of the National Conference on "Education and Research in the Information Society", Plovdiv, May, 2016The authors share their experience in the use of open educational resources in teaching... more
Report published in the Proceedings of the National Conference on "Education and Research in the Information Society", Plovdiv, May, 2016The authors share their experience in the use of open educational resources in teaching algorithms and data structures.Association for the Development of the Information Society, Institute of Mathematics and Informatics Bulgarian Academy of Sciences, Plovdiv University "Paisii Hilendarski
Here we present our arguments for a more in-depth study of the Boolean cube, which is one of the most important discrete structures. The article contains a case study that analyses how the Boolean cube has been included and explained in... more
Here we present our arguments for a more in-depth study of the Boolean cube, which is one of the most important discrete structures. The article contains a case study that analyses how the Boolean cube has been included and explained in more than 80 different sources. However, organized material on the Boolean cube is lacking. We examine and show why the topic of the Boolean cube deserves to be studied in the course on Discrete Structures -- a basic part of the Computer Science curriculum. The benefits of mastering such knowledge and programming skills are pointed out. A sample lecture on the $n$-dimensional Boolean cube (including selected exercises, their answers, hints or solutions) is developed and discussed. It introduces, generalizes and relates many concepts from different subjects in the area of Discrete Mathematics and outside it. So the lecturers can use the sample lecture when teaching those subjects. In this way, all these concepts become more understandable, applicable ...
Here we consider an approach for fast computing the algebraic degree of Boolean functions. It combines fast computing the ANF (known as ANF transform) and thereafter the algebraic degree by using the weight-lexicographic order (WLO) of... more
Here we consider an approach for fast computing the algebraic degree of Boolean functions. It combines fast computing the ANF (known as ANF transform) and thereafter the algebraic degree by using the weight-lexicographic order (WLO) of the vectors of the n-dimensional Boolean cube. Byte-wise and bitwise versions of a search based on the WLO and their implementations are discussed. They are compared with the usual exhaustive search applied in computing the algebraic degree. For Boolean functions of n variables, the bitwise implementation of the search by WLO has total time complexity O(n.2^n). When such a function is given by its truth table vector and its algebraic degree is computed by the bitwise versions of the algorithms discussed, the total time complexity is Θ((9n-2).2^n-7)=Θ(n.2^n). All algorithms discussed have time complexities of the same type, but with big differences in the constants hidden in the Θ-notation. The experimental results after numerous tests confirm the theo...
The problem "Given a Boolean function f of n variables by its truth table vector. Find (if exists) a vector α∈{0,1}^n of maximal (or minimal) weight, such that f(α)= 1." is considered here. It is closely related to the problem... more
The problem "Given a Boolean function f of n variables by its truth table vector. Find (if exists) a vector α∈{0,1}^n of maximal (or minimal) weight, such that f(α)= 1." is considered here. It is closely related to the problem of fast computing the algebraic degree of Boolean functions. It is an important cryptographic parameter used in the design of S-boxes in modern block ciphers, PRNGs in stream ciphers, at Reed-Muller codes, etc. To find effective solutions to this problem we explore the orders of the vectors of the n-dimensional Boolean cube {0,1}^n in accordance with their weights. The notion of "k-th layer" of {0,1}^n is involved in the definition and examination of the "weight order" relation. It is compared with the known relation "precedes". Several enumeration problems concerning these relations are solved and the corresponding comments were added to 3 sequences in the On-line Encyclopedia of Integer Sequences (OEIS). One special or...
The Reed-Muller transform is widely used in discrete mathematics and cryptography, in particular for computing the algebraic normal form of Boolean functions. This is a good reason to look for ways to optimize the implementation of the... more
The Reed-Muller transform is widely used in discrete mathematics and cryptography, in particular for computing the algebraic normal form of Boolean functions. This is a good reason to look for ways to optimize the implementation of the algorithm. Here we present different ways for optimization based on the bitwise representation of the true table vector of a Boolean function. We compare the implementation of the standard algorithm with the implementation using AVX2 and AVX512 instruction sets and the corresponding extended registers and parallel implementation using GPUs with CUDA and OpenMP. The experimental results show that various degree of speedup can be achieved depending on the used platforms and approaches.
The algebraic normal forms (ANFs) of Boolean functions are used in computing the algebraic degree of S-boxes, which is one of the most important cryptographic criteria. It should be computed by fast algorithms so that more S-boxes are... more
The algebraic normal forms (ANFs) of Boolean functions are used in computing the algebraic degree of S-boxes, which is one of the most important cryptographic criteria. It should be computed by fast algorithms so that more S-boxes are generated and the best of them are selected. Here we continue our previous work for fast computing the ANFs of Boolean functions. We represent and investigate the full version of bitwise implementation of the ANF Transform. The obtained algorithm has a time-complexity Θ((9n−2).2n−7) and Θ(2n−6) space complexity. The experimental results show that it is more than 20 times faster in comparison to the well-known byte-wise ANF Transform.
The aim of the paper is to enumerate all closed knight paths of length n over a square board of size n+1. The closed knight paths of length 4, 6 and 8 are classified up to equivalence. We determine that there are exactly 3 equivalence... more
The aim of the paper is to enumerate all closed knight paths of length n over a square board of size n+1. The closed knight paths of length 4, 6 and 8 are classified up to equivalence. We determine that there are exactly 3 equivalence classes of closed knight paths of length 4, exactly 25 equivalence classes of closed knight paths of length 6 and exactly 478 equivalence classes of closed knight paths of length 8.
The representation of Boolean functions by their algebraic normal forms (ANFs) is very important for cryptography, coding theory and other scientific areas. The ANFs are used in computing the algebraic degree of S-boxes, some other... more
The representation of Boolean functions by their algebraic normal forms (ANFs) is very important for cryptography, coding theory and other scientific areas. The ANFs are used in computing the algebraic degree of S-boxes, some other cryptographic criteria and parameters of errorcorrecting codes. Their applications require these criteria and parameters to be computed by fast algorithms. Hence the corresponding ANFs should also be obtained by fast algorithms. Here we continue our previous work on fast computing of the ANFs of Boolean functions. We present and investigate the full version of bitwise implementation of the ANF transform. The experimental results show that this implementation is more than 25 times faster in comparison to the well-known byte-wise ANF transform. ACM Computing Classification System (1998): F.2.1, F.2.2.
Here we consider an approach for fast computing the algebraic degree of Boolean functions. It combines fast computing the ANF (known as ANF transform) and thereafter the algebraic degree by using the weight-lexicographic order (WLO) of... more
Here we consider an approach for fast computing the algebraic degree of Boolean functions. It combines fast computing the ANF (known as ANF transform) and thereafter the algebraic degree by using the weight-lexicographic order (WLO) of the vectors of the n-dimensional Boolean cube. Byte-wise and bitwise versions of a search based on the WLO and their implementations are discussed. They are compared with the usual exhaustive search applied in computing the algebraic degree. For Boolean functions of n variables, the bitwise implementation of the search by WLO has total time complexity \(O(n.2^n)\). When such a function is given by its truth table vector and its algebraic degree is computed by the bitwise versions of the algorithms discussed, the total time complexity is \(\varTheta ((9n-2).2^{n-7})=\varTheta (n.2^n)\). All algorithms discussed have time complexities of the same type, but with big differences in the constants hidden in the \(\varTheta \)-notation. The experimental resu...
The problem "Given a Boolean function $f$ of $n$ variables by its truth table vector. Find (if exists) a vector $\alpha \in \{0,1\}^n$ of maximal (or minimal) weight, such that $f(\alpha)= 1$." is important for modern... more
The problem "Given a Boolean function $f$ of $n$ variables by its truth table vector. Find (if exists) a vector $\alpha \in \{0,1\}^n$ of maximal (or minimal) weight, such that $f(\alpha)= 1$." is important for modern cryptography, coding theory, digital circuit theory, etc. To find effective solutions to this problem, we explore the orders of the vectors of the $n$-dimensional Boolean cube $\{0,1\}^n$ in accordance with their weights. The notion of "$k$-th layer" of $\{0,1\}^n$ is involved in the definition and examination of the "weight order" relation. It is compared with the known relation "precedes". The maximum chains for both relations are enumerated. One special order (among the numerous weight orders) is defined and examined in detail. The lexicographic order is chosen as a second criterion for an ordinance the vectors of equal weights. So a total order called Weight-Lexicographic Order (WLO) is obtained. It is represented by the seri...
The problem of efficient computing of binary and ternary positive (or zero) polarity Reed-Muller (PPRM) transform is important for many areas. The matrices, determining these transforms, are defined recursively or by Kronecker product.... more
The problem of efficient computing of binary and ternary positive (or zero) polarity Reed-Muller (PPRM) transform is important for many areas. The matrices, determining these transforms, are defined recursively or by Kronecker product. Using this fact, we apply the dynamic-programming strategy to develop three algorithms. The first of them is a new version of a previous our algorithm for performing the binary PPRM transform. The second one is a bit-wise implementation of the first algorithm. The third one performs the ternary PPRM transform. The last two algorithms have better time complexities in comparison with other algorithms, known to us.
One matrix structure in the area of monotone Boolean functions is defined here. Some of its combinatorial, algebraic and algorithmic properties are derived. On the base of these properties, three algorithms are built. First of them... more
One matrix structure in the area of monotone Boolean functions is defined here. Some of its combinatorial, algebraic and algorithmic properties are derived. On the base of these properties, three algorithms are built. First of them generates all monotone Boolean functions of $n$ variables in lexicographic order. The second one determines the first (resp. the last) lexicographically minimal true (resp. maximal false) vector of an unknown monotone function $f$ of $n$ variables. The algorithm uses at most $n$ membership queries and its running time is $\Theta(n)$. It serves the third algorithm, which identifies an unknown monotone Boolean function $f$ of $n$ variables by using membership queries only. The experimental results show that for $1\leq n\leq 6$, the algorithm determines $f$ by using at most $m.n$ queries, where $m$ is the combined size of the sets of minimal true and maximal false vectors of $f$.
The algebraic degree of Boolean functions (or vectorial Boolean functions) is an important cryptographic parameter that should be computed by fast algorithms. They work in two main ways: (1) by computing the algebraic normal form and then... more
The algebraic degree of Boolean functions (or vectorial Boolean functions) is an important cryptographic parameter that should be computed by fast algorithms. They work in two main ways: (1) by computing the algebraic normal form and then searching the monomial of the highest degree in it, or (2) by examination the algebraic properties of the true table vector of a given function. We have already done four basic steps in the study of the first way, and the second one has been studied by other authors. Here we represent a method for fast computing (the fastest way we know) the algebraic degree of Boolean functions. It is a combination of the most efficient components of these two ways and the corresponding algorithms. The theoretical time complexities of the method are derived in each of the cases when the Boolean function is represented in a byte-wise or in a bitwise manner. They are of the same type Θ(n.2n) for a Boolean function of n variables, but they have big differences betwee...
The problem of ecien t computing of the ane vector oper- ations (addition of two vectors and multiplication of a vector by a scalar over GF (q)), and also the weight of a given vector, is important for many problems in coding theory,... more
The problem of ecien t computing of the ane vector oper- ations (addition of two vectors and multiplication of a vector by a scalar over GF (q)), and also the weight of a given vector, is important for many problems in coding theory, cryptography, VLSI technology etc. In this paper we propose a new way of representing vectors over GF (3) and GF (4) and we describe an ecien t performance of these ane operations. Computing weights of binary vectors is also discussed.
The problem “Given a Boolean function [Formula: see text] of [Formula: see text] variables by its truth table vector. Find (if exists) a vector [Formula: see text] of maximal (or minimal) weight, such that [Formula: see text].” is... more
The problem “Given a Boolean function [Formula: see text] of [Formula: see text] variables by its truth table vector. Find (if exists) a vector [Formula: see text] of maximal (or minimal) weight, such that [Formula: see text].” is considered here. It is closely related to the problem of computing the algebraic degree of Boolean functions which is an important cryptographic parameter. To solve this problem efficiently, we explore the orders of the vectors of the [Formula: see text]-dimensional Boolean cube [Formula: see text] according to their weights. The notion of “[Formula: see text]th layer” of [Formula: see text] is involved in the definition and examination of the “weight order” relation. It is compared with the known relation “precedes”. Several enumeration problems concerning these relations are solved and the relevant notes were added to three sequences in the on-line encyclopedia of integer sequences (OEIS). One special weight order is defined and examined in detail. In it...
Here we represent the outline of a new algorithm for counting the monotone Boolean functions of n variables. It is a continuation of our previous investigation and results, related to this problem.
Research Interests:
The problem of e-cient computing of binary and ternary positive (or zero) polarity Reed-Muller (PPRM) transform is important for many areas. The matrices, determining these transforms, are deflned recursively or by Kronecker product.... more
The problem of e-cient computing of binary and ternary positive (or zero) polarity Reed-Muller (PPRM) transform is important for many areas. The matrices, determining these transforms, are deflned recursively or by Kronecker product. Using this fact, we apply the dynamic-programming strategy to develop three algorithms. The flrst of them is a new version of a previous our algorithm for performing the binary PPRM transform. The second one is a bit-wise implementa- tion of the flrst algorithm. The third one performs the ternary PPRM transform. The last two algorithms have better time complexities in comparison with other algorithms, known to us.
The problem of e-cient computing of binary and ternary positive (or zero) polarity Reed-Muller (PPRM) transform is important for many areas. The matrices, determining these transforms, are deflned recursively or by Kronecker product.... more
The problem of e-cient computing of binary and ternary positive (or zero) polarity Reed-Muller (PPRM) transform is important for many areas. The matrices, determining these transforms, are deflned recursively or by Kronecker product. Using this fact, we apply the dynamic-programming strategy to develop three algorithms. The flrst of them is a new version of a previous our algorithm for performing the binary PPRM transform. The second one is a bit-wise implementa- tion of the flrst algorithm. The third one performs the ternary PPRM transform. The last two algorithms have better time complexities in comparison with other algorithms, known to us.