Implementing the sbox components using lookup tables

84 Views Asked by At

Does it is possible to implement the components of a SBOX tables using lookup_tables. For example for a 4-bit SBOX it is possible to obtain the component 3 using SAGE in the following way

sage: from sage.crypto.sbox import SBox
sage: S = SBox([7,6,0,4,2,5,1,3])
sage: f3 = S.component_function(3)
sage: f3.algebraic_normal_form()
x0*x1 + x0*x2 + x0 + x2

But I need all components several times (like $2^{20}$), and boolean function substitution in SAGE is so slow to evaluate $2^20$ inputs. Then I think it is better to use lookup tables.