# Implementing the sbox components using lookup tables

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 to use that component several times (lime $$2^{20}$$), and boolean function in SAGE with substitution are so slow. Than I think it is better to use lookup tables.

• This appears to be a question about Sage more than cryptography Sep 27 at 20:44

f3 in your code is a Boolean function which is basically a list of True/False values.
list(f3)