YAARX: Yet Another ARX Toolkit  0.1
 All Data Structures Files Functions Variables Macros Pages
lax-cipher-tests.cc File Reference

LAX is a cipher based on a linear layer, modular addition and XOR. The linear layer is based on the generator matrix of a linear code over GF(2). The proposal of LAX is motivated by a challenge posed by Johan Wallen in his PhD thesis. More...

#include "common.hh"
#include "xdp-add.hh"

Macros

#define LEFT   0
 
#define RIGHT   1
 

Functions

bool get_bit (const WORD_T x, uint32_t i)
 
void set_bit (WORD_T *x, const bool bit, uint32_t i)
 
bool vector_vector_dotprod (const std::array< bool, WORD_SIZE > vec1, const WORD_T vec2)
 
void matrix_vector_multiply (WORD_T *res, const std::array< std::array< bool, WORD_SIZE >, WORD_SIZE > mat, const WORD_T vec)
 
void print_vector (const WORD_T vec)
 
void print_matrix (const std::array< std::array< bool, WORD_SIZE >, WORD_SIZE > mat)
 
void lax_round (const WORD_T in[2], WORD_T out[2], const std::array< std::array< bool, WORD_SIZE >, WORD_SIZE > L)
 
void lax_cipher (const uint32_t nrounds, const WORD_T in[2], WORD_T out[2], std::array< std::array< bool, WORD_SIZE >, WORD_SIZE > L)
 
void test_lax_cipher ()
 
void test_matrix_multiply ()
 
void test_minimum_distance ()
 
void test_lax_two_rounds ()
 
void test_lax_three_rounds ()
 
void test_lax_differential_3r ()
 
int main ()
 

Detailed Description

LAX is a cipher based on a linear layer, modular addition and XOR. The linear layer is based on the generator matrix of a linear code over GF(2). The proposal of LAX is motivated by a challenge posed by Johan Wallen in his PhD thesis.

Author
V.Velichkov, vesse.nosp@m.lin..nosp@m.velic.nosp@m.hkov.nosp@m.@uni..nosp@m.lu
Date
2012-2015

Function Documentation

void lax_cipher ( const uint32_t  nrounds,
const WORD_T  in[2],
WORD_T  out[2],
std::array< std::array< bool, WORD_SIZE >, WORD_SIZE L 
)

LAX cipher

void lax_round ( const WORD_T  in[2],
WORD_T  out[2],
const std::array< std::array< bool, WORD_SIZE >, WORD_SIZE L 
)

One round of LAX cipher

int main ( )

Main function.