cascada.primitives.simeck module

Simeck family of block ciphers.

This implementation is based on simon and simon_rf.

class cascada.primitives.simeck.SimeckRF(**kwargs)[source]

Bases: cascada.primitives.simon_rf.SimonRF

The non-linear part of the round function of Simon.

This corresponds to f(x) = ((x <<< a) & (x <<< b)) ^ (x <<< c), where (a, b, c) = (5, 0, 4).

rx_model

alias of cascada.primitives.simeck.RXModelSimeckRF

xor_model

alias of cascada.primitives.simeck.XorModelSimeckRF

class cascada.primitives.simeck.XorModelSimeckRF(input_prop)[source]

Bases: cascada.primitives.simon_rf.XorModelSimonRF

Represent the XorDiff differential.opmodel.OpModel of SimeckRF.

op

alias of cascada.primitives.simeck.SimeckRF

class cascada.primitives.simeck.RXModelSimeckRF(input_prop)[source]

Bases: cascada.primitives.simon_rf.RXModelSimonRF

Represent the RXDiff differential.opmodel.OpModel of SimeckRF.

op

alias of cascada.primitives.simeck.SimeckRF

class cascada.primitives.simeck.SimeckInstance(value)[source]

Bases: enum.Enum

Represent the available instances of Simeck.

simeck_32_64

Simeck32/64

simeck_48_96

Simeck48/96

simeck_64_128

Simeck64/128

cascada.primitives.simeck.get_Simeck_instance(simeck_instance)[source]

Return an instance of the Simeck family as a Cipher.