boolcrypt.sboxes module

List of S-boxes with bitsize between 3 and 6.

boolcrypt.sboxes.linear_3b_classes = [(0, 1, 2, 3, 4, 5, 6, 7), (0, 1, 2, 3, 4, 5, 7, 6), (0, 1, 2, 3, 4, 6, 7, 5), (0, 1, 2, 4, 3, 6, 7, 5), (1, 0, 2, 3, 4, 5, 6, 7), (1, 0, 2, 3, 4, 5, 7, 6), (1, 0, 2, 3, 4, 6, 5, 7), (1, 0, 2, 3, 4, 6, 7, 5), (1, 0, 2, 4, 3, 6, 5, 7), (1, 0, 2, 4, 3, 6, 7, 5)]

List of representatives of the 3-bit linear-equivalence classes.

boolcrypt.sboxes.affine_3b_classes = [(0, 1, 2, 3, 4, 5, 6, 7), (0, 1, 2, 3, 4, 5, 7, 6), (0, 1, 2, 3, 4, 6, 7, 5), (0, 1, 2, 4, 3, 6, 7, 5)]

List of representatives of the 4-bit linear-equivalence classes.

boolcrypt.sboxes.high_se_4bit_sboxes = [[8, 0, 1, 12, 15, 5, 6, 7, 4, 3, 10, 11, 9, 13, 14, 2], [6, 5, 1, 2, 3, 0, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15], [1, 0, 4, 3, 2, 5, 6, 7, 15, 9, 10, 11, 12, 13, 14, 8], [2, 0, 1, 3, 5, 4, 6, 7, 10, 9, 8, 11, 12, 13, 14, 15], [2, 0, 1, 3, 7, 4, 6, 5, 8, 9, 10, 11, 12, 13, 14, 15], [1, 0, 4, 3, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [2, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [8, 0, 10, 2, 3, 5, 1, 7, 4, 9, 6, 11, 12, 13, 14, 15], [4, 0, 1, 3, 2, 5, 6, 7, 12, 8, 9, 11, 10, 13, 14, 15], [4, 0, 6, 2, 3, 5, 1, 7, 10, 9, 8, 11, 12, 13, 14, 15], [4, 0, 6, 2, 3, 5, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15], [2, 0, 1, 3, 6, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], [3, 0, 1, 2, 6, 5, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15], [3, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [1, 0, 3, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]]

List of representatives of the 4-bit affine-equivalence classes with high number of self-equivalences.

boolcrypt.sboxes.high_se_4bit_2deg_sboxes = [[6, 5, 1, 2, 3, 0, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15], [4, 0, 1, 3, 2, 5, 6, 7, 12, 8, 9, 11, 10, 13, 14, 15], [4, 0, 6, 2, 3, 5, 1, 7, 10, 9, 8, 11, 12, 13, 14, 15], [2, 0, 1, 3, 6, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], [3, 0, 1, 2, 6, 5, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15], [1, 0, 3, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]]

List of representatives of the 4-bit quadratic affine-equivalence classes with high number of self-equivalences.

boolcrypt.sboxes.get_4bit_permutations()[source]

Get the representatives of the 4-bit affine-equivalence classes (permutations).

boolcrypt.sboxes.get_4bit_2d_permutations()[source]

Get the representatives of the 4-bit quadratic affine-equivalence classes (permutations).

boolcrypt.sboxes.inv2deg_5bit_2deg_sboxes = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 24, 27, 26, 29, 28, 31, 30], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 20, 23, 22, 26, 27, 24, 25, 31, 30, 29, 28], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 20, 23, 22, 28, 29, 30, 31, 25, 24, 27, 26], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 24, 25, 26, 27, 28, 29, 30, 31, 20, 21, 22, 23], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 18, 22, 23, 21, 20, 28, 29, 31, 30, 26, 27, 25, 24], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 18, 24, 25, 27, 26, 28, 29, 31, 30, 20, 21, 23, 22], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 24, 25, 28, 29, 22, 23, 18, 19, 30, 31, 26, 27], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 17, 24, 26, 27, 25, 28, 30, 31, 29, 20, 22, 23, 21], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 17, 24, 26, 27, 25, 29, 31, 30, 28, 21, 23, 22, 20], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 30, 19, 17, 23, 21, 27, 25, 31, 29], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 30, 31, 29, 27, 25, 23, 21, 19, 17], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 18, 19, 22, 23, 20, 21, 28, 29, 30, 31, 27, 26, 25, 24], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 18, 19, 24, 25, 26, 27, 28, 29, 30, 31, 21, 20, 23, 22], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 19, 18, 20, 21, 23, 22, 24, 25, 27, 26, 29, 28, 30, 31], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 19, 18, 20, 21, 23, 22, 26, 27, 25, 24, 31, 30, 28, 29], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 19, 18, 22, 23, 21, 20, 28, 29, 31, 30, 27, 26, 24, 25], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 19, 18, 24, 25, 27, 26, 28, 29, 31, 30, 21, 20, 22, 23], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31, 20, 21, 22, 23]]

List of representatives of the 5-bit quadratic affine-equivalence classes with quadratic inverse.

boolcrypt.sboxes.inv3deg_5bit_2deg_sboxes = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 20, 21, 18, 19, 22, 23, 24, 25, 28, 29, 27, 26, 31, 30], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 20, 21, 18, 19, 22, 23, 26, 27, 30, 31, 25, 24, 29, 28], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 20, 21, 22, 23, 18, 19, 24, 25, 28, 29, 31, 30, 27, 26], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 20, 21, 24, 25, 28, 29, 18, 19, 22, 23, 27, 26, 31, 30], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 20, 21, 24, 25, 28, 29, 22, 23, 18, 19, 31, 30, 27, 26], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 17, 20, 21, 24, 25, 28, 29, 30, 31, 26, 27, 23, 22, 19, 18], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 18, 17, 19, 24, 26, 25, 27, 28, 30, 29, 31, 21, 23, 20, 22], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 18, 19, 17, 20, 22, 23, 21, 24, 26, 27, 25, 29, 31, 30, 28], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 18, 19, 17, 20, 22, 23, 21, 28, 30, 31, 29, 25, 27, 26, 24], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 18, 19, 17, 24, 26, 27, 25, 28, 30, 31, 29, 21, 23, 22, 20], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 20, 17, 21, 18, 22, 19, 23, 24, 28, 25, 29, 27, 31, 26, 30], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12, 15, 14, 16, 20, 17, 21, 24, 28, 25, 29, 18, 22, 19, 23, 27, 31, 26, 30], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 12, 13, 15, 14, 22, 23, 21, 20, 28, 29, 31, 30, 26, 27, 25, 24], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 12, 13, 15, 14, 24, 25, 27, 26, 28, 29, 31, 30, 20, 21, 23, 22], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 12, 14, 15, 13, 20, 22, 23, 21, 24, 26, 27, 25, 28, 30, 31, 29], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 12, 14, 15, 13, 20, 22, 23, 21, 28, 30, 31, 29, 24, 26, 27, 25], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 12, 14, 15, 13, 24, 26, 27, 25, 28, 30, 31, 29, 20, 22, 23, 21], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 12, 14, 15, 13, 24, 26, 27, 25, 29, 31, 30, 28, 21, 23, 22, 20], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 10, 14, 15, 13, 12, 16, 18, 20, 22, 17, 19, 21, 23, 24, 26, 29, 31, 27, 25, 30, 28], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 10, 14, 15, 13, 12, 16, 18, 20, 22, 19, 17, 23, 21, 24, 26, 29, 31, 25, 27, 28, 30], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 10, 14, 15, 13, 12, 16, 18, 22, 20, 19, 17, 21, 23, 24, 26, 31, 29, 25, 27, 30, 28], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 10, 14, 15, 13, 12, 16, 18, 24, 26, 17, 19, 25, 27, 20, 22, 29, 31, 23, 21, 30, 28], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 10, 14, 15, 13, 12, 16, 20, 18, 22, 19, 23, 17, 21, 24, 28, 27, 31, 25, 29, 26, 30], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 10, 14, 15, 13, 12, 16, 20, 22, 18, 23, 19, 17, 21, 24, 28, 31, 27, 29, 25, 26, 30], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 10, 14, 15, 13, 12, 16, 24, 18, 26, 19, 27, 17, 25, 20, 28, 23, 31, 21, 29, 22, 30], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 10, 11, 16, 24, 18, 26, 28, 20, 30, 22, 17, 25, 21, 29, 31, 23, 27, 19], [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 11, 9, 15, 13, 16, 20, 19, 23, 22, 18, 21, 17, 24, 31, 29, 26, 25, 30, 28, 27], [0, 1, 2, 3, 4, 5, 7, 6, 8, 9, 12, 13, 14, 15, 11, 10, 16, 18, 24, 26, 20, 22, 29, 31, 21, 23, 27, 25, 19, 17, 28, 30], [0, 1, 2, 3, 4, 5, 7, 6, 8, 9, 12, 13, 14, 15, 11, 10, 16, 18, 24, 26, 22, 20, 31, 29, 21, 23, 27, 25, 17, 19, 30, 28], [0, 1, 2, 3, 4, 5, 7, 6, 8, 9, 12, 13, 14, 15, 11, 10, 16, 18, 24, 26, 22, 20, 31, 29, 23, 21, 25, 27, 19, 17, 28, 30], [0, 1, 2, 3, 4, 5, 7, 6, 8, 9, 12, 13, 14, 15, 11, 10, 16, 18, 26, 24, 22, 20, 29, 31, 21, 23, 25, 27, 17, 19, 28, 30], [0, 1, 2, 3, 4, 5, 7, 6, 8, 9, 12, 13, 14, 15, 11, 10, 16, 24, 18, 26, 20, 28, 23, 31, 21, 29, 17, 25, 19, 27, 22, 30], [0, 1, 2, 3, 4, 5, 7, 6, 8, 9, 12, 13, 14, 15, 11, 10, 16, 24, 26, 18, 28, 20, 23, 31, 21, 29, 25, 17, 27, 19, 22, 30], [0, 1, 2, 3, 4, 5, 7, 6, 8, 9, 12, 13, 14, 15, 11, 10, 16, 24, 26, 18, 28, 20, 23, 31, 29, 21, 17, 25, 19, 27, 30, 22], [0, 1, 2, 3, 4, 5, 7, 6, 8, 10, 12, 14, 16, 18, 21, 23, 9, 13, 11, 15, 24, 28, 27, 31, 25, 30, 29, 26, 20, 19, 17, 22], [0, 1, 2, 3, 4, 5, 7, 6, 8, 16, 10, 18, 12, 20, 15, 23, 9, 24, 11, 26, 13, 28, 14, 31, 25, 17, 27, 19, 29, 21, 30, 22], [0, 1, 2, 3, 4, 5, 7, 6, 8, 16, 10, 18, 12, 20, 15, 23, 9, 24, 11, 26, 14, 31, 13, 28, 25, 17, 27, 19, 30, 22, 29, 21], [0, 1, 2, 3, 4, 5, 7, 6, 8, 16, 10, 18, 12, 20, 15, 23, 9, 24, 13, 28, 14, 31, 11, 26, 17, 25, 21, 29, 22, 30, 19, 27], [0, 1, 2, 3, 4, 5, 7, 6, 8, 16, 10, 18, 12, 20, 15, 23, 9, 24, 13, 28, 14, 31, 11, 26, 25, 17, 29, 21, 30, 22, 27, 19], [0, 1, 2, 3, 4, 5, 7, 6, 8, 16, 10, 18, 12, 20, 15, 23, 9, 26, 13, 30, 11, 24, 14, 29, 17, 27, 21, 31, 19, 25, 22, 28], [0, 1, 2, 3, 4, 5, 7, 6, 8, 16, 10, 18, 12, 20, 15, 23, 9, 26, 13, 30, 14, 29, 11, 24, 17, 27, 21, 31, 22, 28, 19, 25], [0, 1, 2, 3, 4, 5, 8, 9, 6, 7, 12, 13, 14, 15, 10, 11, 16, 19, 17, 18, 20, 23, 27, 24, 21, 22, 28, 31, 29, 30, 26, 25], [0, 1, 2, 3, 4, 5, 8, 9, 6, 10, 11, 7, 16, 28, 19, 31, 12, 14, 15, 13, 20, 22, 25, 27, 18, 29, 30, 17, 24, 23, 26, 21], [0, 1, 2, 3, 4, 5, 8, 9, 6, 10, 11, 7, 16, 28, 19, 31, 12, 14, 15, 13, 20, 22, 25, 27, 29, 18, 17, 30, 23, 24, 21, 26], [0, 1, 2, 3, 4, 5, 8, 9, 6, 10, 11, 7, 16, 28, 19, 31, 12, 14, 15, 13, 21, 23, 24, 26, 18, 29, 30, 17, 25, 22, 27, 20], [0, 1, 2, 3, 4, 5, 8, 9, 6, 10, 11, 7, 16, 28, 19, 31, 12, 14, 15, 13, 21, 23, 24, 26, 29, 18, 17, 30, 22, 25, 20, 27], [0, 1, 2, 3, 4, 5, 8, 9, 6, 10, 16, 28, 7, 11, 31, 19, 12, 14, 20, 22, 13, 15, 27, 25, 17, 30, 29, 18, 21, 26, 23, 24], [0, 1, 2, 3, 4, 5, 8, 9, 6, 10, 16, 28, 7, 11, 31, 19, 12, 14, 20, 22, 15, 13, 25, 27, 17, 30, 29, 18, 23, 24, 21, 26], [0, 1, 2, 3, 4, 5, 8, 9, 6, 10, 16, 28, 7, 11, 31, 19, 12, 14, 21, 23, 15, 13, 24, 26, 20, 27, 25, 22, 18, 29, 17, 30], [0, 1, 2, 3, 4, 5, 8, 9, 6, 16, 10, 28, 13, 27, 15, 25, 7, 20, 12, 31, 11, 24, 14, 29, 18, 22, 23, 19, 17, 21, 26, 30], [0, 1, 2, 3, 4, 5, 8, 9, 6, 16, 10, 28, 13, 27, 15, 25, 7, 31, 12, 20, 14, 22, 11, 19, 23, 24, 18, 29, 17, 30, 26, 21], [0, 1, 2, 3, 4, 5, 8, 9, 6, 16, 10, 28, 15, 25, 13, 27, 7, 20, 14, 29, 12, 31, 11, 24, 21, 17, 18, 22, 19, 23, 26, 30], [0, 1, 2, 3, 4, 6, 8, 10, 5, 12, 16, 25, 7, 13, 28, 22, 9, 15, 17, 23, 11, 14, 29, 24, 26, 20, 21, 27, 30, 19, 31, 18], [0, 1, 2, 3, 4, 6, 8, 10, 5, 12, 16, 25, 7, 13, 28, 22, 9, 15, 24, 30, 11, 14, 20, 17, 27, 21, 29, 19, 31, 18, 23, 26], [0, 1, 2, 3, 4, 6, 8, 10, 5, 12, 16, 25, 13, 7, 22, 28, 9, 14, 19, 20, 15, 11, 27, 31, 24, 23, 21, 26, 18, 30, 17, 29], [0, 1, 2, 4, 3, 8, 16, 28, 5, 10, 25, 17, 18, 23, 31, 29, 6, 20, 13, 24, 19, 11, 9, 22, 27, 7, 14, 21, 26, 12, 30, 15], [0, 1, 2, 4, 3, 8, 16, 28, 5, 10, 26, 18, 17, 20, 31, 29, 6, 21, 24, 12, 22, 15, 25, 7, 14, 19, 13, 23, 9, 30, 27, 11]]

List of representatives of the 5-bit quadratic affine-equivalence classes with cubic inverse.

boolcrypt.sboxes.get_quadratic_6bit_permutations()[source]

Get the representatives of the 6-bit affine-equivalence classes (permutations).

boolcrypt.sboxes.rssb_6bit = [[0, 10, 20, 56, 40, 31, 49, 3, 17, 27, 62, 23, 35, 1, 6, 57, 34, 55, 54, 16, 61, 21, 46, 52, 7, 58, 2, 9, 12, 19, 51, 25, 5, 28, 47, 33, 45, 43, 32, 60, 59, 8, 42, 26, 29, 36, 41, 44, 14, 48, 53, 30, 4, 13, 18, 22, 24, 15, 38, 11, 39, 37, 50, 63], [0, 19, 38, 14, 13, 59, 28, 39, 26, 9, 55, 34, 56, 1, 15, 3, 52, 62, 18, 16, 47, 21, 5, 44, 49, 20, 2, 54, 30, 50, 6, 53, 41, 7, 61, 51, 36, 17, 32, 33, 31, 8, 42, 22, 10, 27, 25, 58, 35, 57, 40, 48, 4, 11, 45, 29, 60, 24, 37, 46, 12, 23, 43, 63], [0, 10, 20, 4, 40, 31, 8, 51, 17, 27, 62, 50, 16, 52, 39, 35, 34, 55, 54, 13, 61, 21, 37, 23, 32, 22, 41, 9, 15, 29, 7, 24, 5, 2, 47, 57, 45, 25, 26, 49, 59, 38, 42, 43, 11, 36, 46, 12, 1, 60, 44, 56, 19, 53, 18, 6, 30, 28, 58, 3, 14, 33, 48, 63], [0, 3, 6, 7, 12, 43, 14, 57, 24, 9, 23, 50, 28, 13, 51, 59, 48, 58, 18, 19, 46, 21, 37, 16, 56, 22, 26, 54, 39, 1, 55, 20, 33, 35, 53, 60, 36, 25, 38, 61, 29, 41, 42, 8, 11, 27, 32, 10, 49, 30, 44, 62, 52, 4, 45, 5, 15, 31, 2, 34, 47, 17, 40, 63]]

List of representatives of the 6-bit rotation-symmetric S-boxes.