Source code for sboxUv2.scripts.apnDB.eightBitAPN

"""Contains many 8-bit APN functions"""

from sage.all import GF, PolynomialRing

# global variables of the module
N = 8
F = GF(2**N, name="a")
g = F.gen()
POLY_RING = PolynomialRing(F, "X")
X = POLY_RING.gen()


[docs] def poly_to_lut(p): s = [] for x_i in range(0, 2**N): y = (p(F.fetch_int(x_i))).integer_representation() s.append(y) return s
[docs] def all_quadratic_polynomials(): """All the functions in Table 9 of http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.215.5432&rep=rep1&type=pdf """ return [ poly_to_lut(X**3), poly_to_lut(X**9), poly_to_lut(X**3 + sum(X**(9*2**i) for i in range(0, N))), poly_to_lut(X**9 + sum(X**(3*2**i) for i in range(0, N))), poly_to_lut(X**3 + g**245*X**33 + g**183*X**66 + g**21*X**144), poly_to_lut(X**3 + g**65*X**18 + g**120*X**66 + g**135*X**144), poly_to_lut(g**188*X**192 + g**129*X**144 + g**172*X**132 + g**138*X**129 + g**74*X**96 + g**244*X**72 + g**22*X**66 + g**178*X**48 + g**150*X**36 + g**146*X**33 + g**6*X**24 + g**60*X**18 + g**80*X**12 + g**140*X**9 + g**221*X**6 + g**19*X**3), poly_to_lut(g**37*X**192 + g**110*X**144 + g**40*X**132 + g**53*X**129 + g**239*X**96 + g**235*X**72 + g**126*X**66 + g**215*X**48 + g**96*X**36 + g**29*X**33 + g**19*X**24 + g**14*X**18 + g**139*X**12 + g**230*X**9 + g**234*X**6 + g**228*X**3), poly_to_lut(g**242*X**192 + g**100*X**144 + g**66*X**132 + g**230*X**129 + g**202*X**96 + g**156*X**72 + g**254*X**66 + g**18*X**48 + g**44*X**36 + g**95*X**33 + g**100*X**24 + g**245*X**18 + g**174*X**12 + g**175*X**9 + g**247*X**6 + g**166*X**3), poly_to_lut(g**100*X**192 + g**83*X**144 + g**153*X**132 + g**65*X**129 + g**174*X**96 + g**136*X**72 + g**46*X**66 + g**55*X**48 + g**224*X**36 + g**180*X**33 + g**179*X**24 + g**226*X**18 + g**54*X**12 + g**168*X**9 + g**89*X**6 + g**56*X**3), poly_to_lut(g**77*X**192 + g**133*X**144 + g**47*X**132 + g**229*X**129 + g**23*X**96 + g**242*X**72 + g**242*X**66 + g**245*X**48 + g**212*X**36 + g**231*X**33 + g**174*X**24 + g**216*X**18 + g**96*X**12 + g**253*X**9 + g**154*X**6 + g**71*X**3), poly_to_lut(g**220*X**192 + g**94*X**144 + g**70*X**132 + g**159*X**129 + g**145*X**96 + g**160*X**72 + g**74*X**66 + g**184*X**48 + g**119*X**36 + g**106*X**33 + g**253*X**24 + g*X**18 + g**90*X**12 + g**169*X**9 + g**118*X**6 + + g**187*X**3), poly_to_lut(g**98*X**192 + g**225*X**144 + g**111*X**132 + g**238*X**129 + g**182*X**96 + g**125*X**72 + g**196*X**66 + g**219*X**48 + g**189*X**36 + g**199*X**33 + g**181*X**24 + g**110*X**18 + g**19*X**12 + g**175*X**9 + g**133*X**6 + g**47*X**3), poly_to_lut(g**236*X**192 + g**212*X**160 + g**153*X**144 + g**185*X**136 + g**3*X**132 + g**89*X**130 + g**189*X**129 + g**182*X**96 + g**105*X**80 + g**232*X**72 + g**219*X**68 + g**145*X**66 + g**171*X**65 + g**107*X**48 + g**179*X**40 + g**227*X**36 + g**236*X**34 + g**189*X**33 + g**162*X**24 + g**216*X**20 + g**162*X**18 + g**117*X**17 + g**56*X**12 + g**107*X**10 + g**236*X**9 + g**253*X**6 + g**180*X**5 + g**18*X**3), poly_to_lut(g**27*X**192 + g**167*X**144 + g**26*X**132 + g**231*X**129 + g**139*X**96 + g**30*X**72 + g**139*X**66 + g**203*X**48 + g**36*X**36 + g**210*X**33 + g**195*X**24 + g**12*X**18 + g**43*X**12 + g**97*X**9 + g**61*X**6 + g**39*X**3), poly_to_lut(g**6*X**192 + g**85*X**144 + g**251*X**132 + g**215*X**129 + g**229*X**96 + g**195*X**72 + g**152*X**66 + g**173*X**48 + g**209*X**36 + g**165*X**33 + g**213*X**24 + g**214*X**18 + g**158*X**12 + g**146*X**9 + X**6 + g**50*X**3), poly_to_lut(g**164*X**192 + g**224*X**144 + g**59*X**132 + g**124*X**129 + g**207*X**96 + g**211*X**72 + g**5*X**66 + g**26*X**48 + g**20*X**36 + g**101*X**33 + g**175*X**24 + g**241*X**18 + X**12 + g**15*X**9 + g**217*X**6 + g**212*X**3), poly_to_lut(X**3 + X**17 + g**16*(X**18 + X**33) + g**15*X**48), poly_to_lut(X**3 + g**24*X**6 + g**182*X**132 + g**67*X**192), poly_to_lut(X**3 + X**6 + X**68 + X**80 + X**132 + X**160), poly_to_lut(X**3 + X**5 + X**18 + X**40 + X**66), poly_to_lut(X**3 + X**12 + X**40 + X**66 + X**130), ]
[docs] def first_QAMs(): """All the functions found using the QAM method before 2020, see https://link.springer.com/article/10.1007/s10623-014-9955-3 """ from .firstQAM import all_funcs return all_funcs
[docs] def second_QAMs(): """All the functions found using the QAM method *after* 2021 (paper to appear) """ from .secondQAM import all_funcs return all_funcs
[docs] def all_BeiLea(): """All the functions found by Beierle and Leander in 2020, availabe online at: https://zenodo.org/record/4030734 """ from .BeierleLeander import all_funcs return all_funcs
[docs] def all_WenTanGon(): """All 10 quadratic APN functions found in: Weng, G., Tan, Y., & Gong, G. (2013). On quadratic almost perfect nonlinear functions and their related algebraic object. In Workshop on Coding and Cryptography, WCC. """ return [ [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 9, 147, 135, 28, 39, 187, 101, 248, 57, 111, 125, 42, 31, 79, 151, 198, 0, 72, 85, 28, 160, 238, 57, 118, 157, 25, 2, 135, 53, 183, 102, 229, 123, 39, 180, 233, 235, 177, 232, 179, 248, 104, 253, 108, 96, 246, 169, 62, 37, 227, 100, 163, 155, 91, 22, 215, 150, 156, 29, 22, 32, 44, 103, 106, 87, 133, 140, 95, 217, 13, 206, 27, 250, 228, 235, 244, 124, 100, 161, 184, 0, 85, 29, 73, 61, 110, 236, 190, 160, 57, 119, 239, 149, 10, 142, 16, 37, 100, 162, 226, 40, 111, 99, 37, 155, 22, 214, 90, 158, 21, 31, 149, 94, 133, 87, 141, 125, 160, 184, 100, 208, 199, 19, 5, 251, 234, 244, 228, 114, 189, 225, 47, 97, 168, 62, 246, 226, 225, 187, 185, 249, 252, 108, 104, 203, 214, 131, 159, 86, 77, 210, 200, 246, 39, 116, 164, 99, 180, 45, 251, 149, 156, 71, 79, 56, 55, 38, 40, 182, 115, 174, 106, 19, 208, 199, 5, 176, 35, 236, 126, 51, 166, 163, 55, 163, 252, 53, 107, 40, 113, 114, 42, 231, 96, 33, 167, 84, 213, 94, 222, 234, 161, 230, 172, 81, 28, 145, 221], [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 34, 184, 172, 55, 12, 144, 78, 211, 18, 68, 86, 1, 52, 100, 188, 237, 0, 72, 85, 28, 160, 238, 57, 118, 157, 25, 2, 135, 53, 183, 102, 229, 39, 123, 232, 181, 183, 237, 180, 239, 164, 52, 161, 48, 60, 170, 245, 98, 209, 23, 144, 87, 111, 175, 226, 35, 98, 104, 233, 226, 212, 216, 147, 158, 212, 6, 15, 220, 90, 142, 77, 152, 121, 103, 104, 119, 255, 231, 34, 59, 0, 85, 29, 73, 61, 110, 236, 190, 160, 57, 119, 239, 149, 10, 142, 16, 209, 144, 86, 22, 220, 155, 151, 209, 111, 226, 34, 174, 106, 225, 235, 97, 246, 45, 255, 37, 213, 8, 16, 204, 120, 111, 187, 173, 83, 66, 92, 76, 5, 202, 150, 88, 22, 223, 73, 129, 149, 150, 204, 206, 142, 139, 27, 31, 175, 178, 231, 251, 50, 41, 182, 172, 146, 67, 16, 192, 7, 208, 73, 159, 89, 80, 139, 131, 244, 251, 234, 228, 122, 191, 98, 166, 223, 28, 11, 201, 136, 27, 212, 70, 11, 158, 155, 15, 155, 196, 13, 83, 16, 73, 74, 18, 92, 219, 154, 28, 239, 110, 229, 101, 81, 26, 93, 23, 234, 167, 42, 102], [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 61, 167, 179, 40, 19, 143, 81, 204, 13, 91, 73, 30, 43, 123, 163, 242, 0, 72, 85, 28, 160, 238, 57, 118, 157, 25, 2, 135, 53, 183, 102, 229, 140, 208, 67, 30, 28, 70, 31, 68, 15, 159, 10, 155, 151, 1, 94, 201, 148, 82, 213, 18, 42, 234, 167, 102, 39, 45, 172, 167, 145, 157, 214, 219, 37, 247, 254, 45, 171, 127, 188, 105, 136, 150, 153, 134, 14, 22, 211, 202, 0, 85, 29, 73, 61, 110, 236, 190, 160, 57, 119, 239, 149, 10, 142, 16, 148, 213, 19, 83, 153, 222, 210, 148, 42, 167, 103, 235, 47, 164, 174, 36, 24, 195, 17, 203, 59, 230, 254, 34, 150, 129, 85, 67, 189, 172, 178, 162, 177, 126, 34, 236, 162, 107, 253, 53, 33, 34, 120, 122, 58, 63, 175, 171, 198, 219, 142, 146, 91, 64, 223, 197, 251, 42, 121, 169, 110, 185, 32, 246, 222, 215, 12, 4, 115, 124, 109, 99, 253, 56, 229, 33, 88, 155, 140, 78, 74, 217, 22, 132, 201, 92, 89, 205, 89, 6, 207, 145, 210, 139, 136, 208, 111, 232, 169, 47, 220, 93, 214, 86, 98, 41, 110, 36, 217, 148, 25, 85], [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 69, 223, 203, 80, 107, 247, 41, 180, 117, 35, 49, 102, 83, 3, 219, 138, 0, 72, 85, 28, 160, 238, 57, 118, 157, 25, 2, 135, 53, 183, 102, 229, 146, 206, 93, 0, 2, 88, 1, 90, 17, 129, 20, 133, 137, 31, 64, 215, 3, 197, 66, 133, 189, 125, 48, 241, 176, 186, 59, 48, 6, 10, 65, 76, 212, 6, 15, 220, 90, 142, 77, 152, 121, 103, 104, 119, 255, 231, 34, 59, 0, 85, 29, 73, 61, 110, 236, 190, 160, 57, 119, 239, 149, 10, 142, 16, 3, 66, 132, 196, 14, 73, 69, 3, 189, 48, 240, 124, 184, 51, 57, 179, 145, 74, 152, 66, 178, 111, 119, 171, 31, 8, 220, 202, 52, 37, 59, 43, 215, 24, 68, 138, 196, 13, 155, 83, 71, 68, 30, 28, 92, 89, 201, 205, 227, 254, 171, 183, 126, 101, 250, 224, 222, 15, 92, 140, 75, 156, 5, 211, 114, 123, 160, 168, 223, 208, 193, 207, 81, 148, 73, 141, 244, 55, 32, 226, 113, 226, 45, 191, 242, 103, 98, 246, 98, 61, 244, 170, 233, 176, 179, 235, 165, 34, 99, 229, 22, 151, 28, 156, 168, 227, 164, 238, 19, 94, 211, 159], [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 113, 235, 255, 100, 95, 195, 29, 128, 65, 23, 5, 82, 103, 55, 239, 190, 0, 72, 85, 28, 160, 238, 57, 118, 157, 25, 2, 135, 53, 183, 102, 229, 168, 244, 103, 58, 56, 98, 59, 96, 43, 187, 46, 191, 179, 37, 122, 237, 234, 44, 171, 108, 84, 148, 217, 24, 89, 83, 210, 217, 239, 227, 168, 165, 51, 225, 232, 59, 189, 105, 170, 127, 158, 128, 143, 144, 24, 0, 197, 220, 0, 85, 29, 73, 61, 110, 236, 190, 160, 57, 119, 239, 149, 10, 142, 16, 234, 171, 109, 45, 231, 160, 172, 234, 84, 217, 25, 149, 81, 218, 208, 90, 66, 153, 75, 145, 97, 188, 164, 120, 204, 219, 15, 25, 231, 246, 232, 248, 217, 22, 74, 132, 202, 3, 149, 93, 73, 74, 16, 18, 82, 87, 199, 195, 177, 172, 249, 229, 44, 55, 168, 178, 140, 93, 14, 222, 25, 206, 87, 129, 243, 250, 33, 41, 94, 81, 64, 78, 208, 21, 200, 12, 117, 182, 161, 99, 25, 138, 69, 215, 154, 15, 10, 158, 10, 85, 156, 194, 129, 216, 219, 131, 42, 173, 236, 106, 153, 24, 147, 19, 39, 108, 43, 97, 156, 209, 92, 16], [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 115, 233, 253, 102, 93, 193, 31, 130, 67, 21, 7, 80, 101, 53, 237, 188, 0, 72, 85, 28, 160, 238, 57, 118, 157, 25, 2, 135, 53, 183, 102, 229, 82, 14, 157, 192, 194, 152, 193, 154, 209, 65, 212, 69, 73, 223, 128, 23, 127, 185, 62, 249, 193, 1, 76, 141, 204, 198, 71, 76, 122, 118, 61, 48, 94, 140, 133, 86, 208, 4, 199, 18, 243, 237, 226, 253, 117, 109, 168, 177, 0, 85, 29, 73, 61, 110, 236, 190, 160, 57, 119, 239, 149, 10, 142, 16, 127, 62, 248, 184, 114, 53, 57, 127, 193, 76, 140, 0, 196, 79, 69, 207, 45, 246, 36, 254, 14, 211, 203, 23, 163, 180, 96, 118, 136, 153, 135, 151, 33, 238, 178, 124, 50, 251, 109, 165, 177, 178, 232, 234, 170, 175, 63, 59, 159, 130, 215, 203, 2, 25, 134, 156, 162, 115, 32, 240, 55, 224, 121, 175, 178, 187, 96, 104, 31, 16, 1, 15, 145, 84, 137, 77, 52, 247, 224, 34, 205, 94, 145, 3, 78, 219, 222, 74, 222, 129, 72, 22, 85, 12, 15, 87, 147, 20, 85, 211, 32, 161, 42, 170, 158, 213, 146, 216, 37, 104, 229, 169], [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 156, 6, 18, 137, 178, 46, 240, 109, 172, 250, 232, 191, 138, 218, 2, 83, 0, 72, 85, 28, 160, 238, 57, 118, 157, 25, 2, 135, 53, 183, 102, 229, 115, 47, 188, 225, 227, 185, 224, 187, 240, 96, 245, 100, 104, 254, 161, 54, 112, 182, 49, 246, 206, 14, 67, 130, 195, 201, 72, 67, 117, 121, 50, 63, 159, 77, 68, 151, 17, 197, 6, 211, 50, 44, 35, 60, 180, 172, 105, 112, 0, 85, 29, 73, 61, 110, 236, 190, 160, 57, 119, 239, 149, 10, 142, 16, 112, 49, 247, 183, 125, 58, 54, 112, 206, 67, 131, 15, 203, 64, 74, 192, 3, 216, 10, 208, 32, 253, 229, 57, 141, 154, 78, 88, 166, 183, 169, 185, 239, 32, 124, 178, 252, 53, 163, 107, 127, 124, 38, 36, 100, 97, 241, 245, 193, 220, 137, 149, 92, 71, 216, 194, 252, 45, 126, 174, 105, 190, 39, 241, 194, 203, 16, 24, 111, 96, 113, 127, 225, 36, 249, 61, 68, 135, 144, 82, 178, 33, 238, 124, 49, 164, 161, 53, 161, 254, 55, 105, 42, 115, 112, 40, 45, 170, 235, 109, 158, 31, 148, 20, 32, 107, 44, 102, 155, 214, 91, 23], [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 252, 102, 114, 233, 210, 78, 144, 13, 204, 154, 136, 223, 234, 186, 98, 51, 0, 72, 85, 28, 160, 238, 57, 118, 157, 25, 2, 135, 53, 183, 102, 229, 221, 129, 18, 79, 77, 23, 78, 21, 94, 206, 91, 202, 198, 80, 15, 152, 182, 112, 247, 48, 8, 200, 133, 68, 5, 15, 142, 133, 179, 191, 244, 249, 151, 69, 76, 159, 25, 205, 14, 219, 58, 36, 43, 52, 188, 164, 97, 120, 0, 85, 29, 73, 61, 110, 236, 190, 160, 57, 119, 239, 149, 10, 142, 16, 182, 247, 49, 113, 187, 252, 240, 182, 8, 133, 69, 201, 13, 134, 140, 6, 107, 176, 98, 184, 72, 149, 141, 81, 229, 242, 38, 48, 206, 223, 193, 209, 33, 238, 178, 124, 50, 251, 109, 165, 177, 178, 232, 234, 170, 175, 63, 59, 26, 7, 82, 78, 135, 156, 3, 25, 39, 246, 165, 117, 178, 101, 252, 42, 113, 120, 163, 171, 220, 211, 194, 204, 82, 151, 74, 142, 247, 52, 35, 225, 199, 84, 155, 9, 68, 209, 212, 64, 212, 139, 66, 28, 95, 6, 5, 93, 80, 215, 150, 16, 227, 98, 233, 105, 93, 22, 81, 27, 230, 171, 38, 106], [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 98, 248, 236, 119, 76, 208, 14, 147, 82, 4, 22, 65, 116, 36, 252, 173, 0, 72, 85, 28, 160, 238, 57, 118, 233, 109, 118, 243, 65, 195, 18, 145, 33, 125, 238, 179, 177, 235, 178, 233, 214, 70, 211, 66, 78, 216, 135, 16, 114, 180, 51, 244, 204, 12, 65, 128, 181, 191, 62, 53, 3, 15, 68, 73, 49, 227, 234, 57, 191, 107, 168, 125, 232, 246, 249, 230, 110, 118, 179, 170, 0, 85, 29, 73, 73, 26, 152, 202, 160, 57, 119, 239, 225, 126, 250, 100, 114, 51, 245, 181, 11, 76, 64, 6, 204, 65, 129, 13, 189, 54, 60, 182, 83, 136, 90, 128, 4, 217, 193, 29, 221, 202, 30, 8, 130, 147, 141, 157, 67, 140, 208, 30, 36, 237, 123, 179, 211, 208, 138, 136, 188, 185, 41, 45, 4, 25, 76, 80, 237, 246, 105, 115, 77, 156, 207, 31, 172, 123, 226, 52, 87, 94, 133, 141, 142, 129, 144, 158, 0, 197, 24, 220, 209, 18, 5, 199, 37, 182, 121, 235, 210, 71, 66, 214, 66, 29, 212, 138, 189, 228, 231, 191, 20, 147, 210, 84, 211, 82, 217, 89, 109, 38, 97, 43, 162, 239, 98, 46], [0, 0, 0, 1, 0, 6, 204, 203, 0, 204, 202, 7, 8, 194, 14, 197, 0, 20, 154, 143, 48, 34, 102, 117, 30, 198, 78, 151, 38, 248, 186, 101, 0, 142, 20, 155, 30, 150, 198, 79, 46, 108, 240, 179, 56, 124, 42, 111, 188, 38, 50, 169, 146, 14, 208, 77, 140, 218, 200, 159, 170, 250, 34, 115, 0, 72, 85, 28, 160, 238, 57, 118, 201, 77, 86, 211, 97, 227, 50, 177, 223, 131, 16, 77, 79, 21, 76, 23, 8, 152, 13, 156, 144, 6, 89, 206, 242, 52, 179, 116, 76, 140, 193, 0, 21, 31, 158, 149, 163, 175, 228, 233, 145, 67, 74, 153, 31, 203, 8, 221, 104, 118, 121, 102, 238, 246, 51, 42, 0, 85, 29, 73, 105, 58, 184, 234, 160, 57, 119, 239, 193, 94, 218, 68, 242, 179, 117, 53, 171, 236, 224, 166, 76, 193, 1, 141, 29, 150, 156, 22, 45, 246, 36, 254, 90, 135, 159, 67, 163, 180, 96, 118, 220, 205, 211, 195, 99, 172, 240, 62, 36, 237, 123, 179, 243, 240, 170, 168, 188, 185, 41, 45, 5, 24, 77, 81, 204, 215, 72, 82, 108, 189, 238, 62, 173, 122, 227, 53, 40, 33, 250, 242, 209, 222, 207, 193, 95, 154, 71, 131, 174, 109, 122, 184, 218, 73, 134, 20, 13, 152, 157, 9, 157, 194, 11, 85, 66, 27, 24, 64, 75, 204, 141, 11, 172, 45, 166, 38, 18, 89, 30, 84, 253, 176, 61, 113] ]
[docs] def all_quadratics(): """Returns all known quadratic APN functions operating on 8 bits. They are all in distinct CCZ-classes. """ return all_WenTanGon() + first_QAMs() + all_BeiLea() + second_QAMs()
[docs] def all_non_quadratics(): return [ poly_to_lut(X**57), ]
[docs] def all(): return all_quadratics() + all_non_quadratics()