1 // SPDX-License-Identifier: BSD-2-Clause
2 /* LibTomCrypt, modular cryptographic library -- Tom St Denis
3  *
4  * LibTomCrypt is a library that provides various cryptographic
5  * algorithms in a highly modular and flexible manner.
6  *
7  * The library is free for all purposes without any express
8  * guarantee it works.
9  */
10 
11 /**
12    @file sober128tab.c
13    SOBER-128 Tables
14 */
15 
16 #ifdef __LTC_SOBER128TAB_C__
17 
18 /* $ID$ */
19 /* @(#)TuringMultab.h   1.3 (QUALCOMM) 02/09/03 */
20 /* Multiplication table for Turing using 0xD02B4367 */
21 static const ulong32 Multab[256] = {
22     0x00000000, 0xD02B4367, 0xED5686CE, 0x3D7DC5A9,
23     0x97AC41D1, 0x478702B6, 0x7AFAC71F, 0xAAD18478,
24     0x631582EF, 0xB33EC188, 0x8E430421, 0x5E684746,
25     0xF4B9C33E, 0x24928059, 0x19EF45F0, 0xC9C40697,
26     0xC62A4993, 0x16010AF4, 0x2B7CCF5D, 0xFB578C3A,
27     0x51860842, 0x81AD4B25, 0xBCD08E8C, 0x6CFBCDEB,
28     0xA53FCB7C, 0x7514881B, 0x48694DB2, 0x98420ED5,
29     0x32938AAD, 0xE2B8C9CA, 0xDFC50C63, 0x0FEE4F04,
30     0xC154926B, 0x117FD10C, 0x2C0214A5, 0xFC2957C2,
31     0x56F8D3BA, 0x86D390DD, 0xBBAE5574, 0x6B851613,
32     0xA2411084, 0x726A53E3, 0x4F17964A, 0x9F3CD52D,
33     0x35ED5155, 0xE5C61232, 0xD8BBD79B, 0x089094FC,
34     0x077EDBF8, 0xD755989F, 0xEA285D36, 0x3A031E51,
35     0x90D29A29, 0x40F9D94E, 0x7D841CE7, 0xADAF5F80,
36     0x646B5917, 0xB4401A70, 0x893DDFD9, 0x59169CBE,
37     0xF3C718C6, 0x23EC5BA1, 0x1E919E08, 0xCEBADD6F,
38     0xCFA869D6, 0x1F832AB1, 0x22FEEF18, 0xF2D5AC7F,
39     0x58042807, 0x882F6B60, 0xB552AEC9, 0x6579EDAE,
40     0xACBDEB39, 0x7C96A85E, 0x41EB6DF7, 0x91C02E90,
41     0x3B11AAE8, 0xEB3AE98F, 0xD6472C26, 0x066C6F41,
42     0x09822045, 0xD9A96322, 0xE4D4A68B, 0x34FFE5EC,
43     0x9E2E6194, 0x4E0522F3, 0x7378E75A, 0xA353A43D,
44     0x6A97A2AA, 0xBABCE1CD, 0x87C12464, 0x57EA6703,
45     0xFD3BE37B, 0x2D10A01C, 0x106D65B5, 0xC04626D2,
46     0x0EFCFBBD, 0xDED7B8DA, 0xE3AA7D73, 0x33813E14,
47     0x9950BA6C, 0x497BF90B, 0x74063CA2, 0xA42D7FC5,
48     0x6DE97952, 0xBDC23A35, 0x80BFFF9C, 0x5094BCFB,
49     0xFA453883, 0x2A6E7BE4, 0x1713BE4D, 0xC738FD2A,
50     0xC8D6B22E, 0x18FDF149, 0x258034E0, 0xF5AB7787,
51     0x5F7AF3FF, 0x8F51B098, 0xB22C7531, 0x62073656,
52     0xABC330C1, 0x7BE873A6, 0x4695B60F, 0x96BEF568,
53     0x3C6F7110, 0xEC443277, 0xD139F7DE, 0x0112B4B9,
54     0xD31DD2E1, 0x03369186, 0x3E4B542F, 0xEE601748,
55     0x44B19330, 0x949AD057, 0xA9E715FE, 0x79CC5699,
56     0xB008500E, 0x60231369, 0x5D5ED6C0, 0x8D7595A7,
57     0x27A411DF, 0xF78F52B8, 0xCAF29711, 0x1AD9D476,
58     0x15379B72, 0xC51CD815, 0xF8611DBC, 0x284A5EDB,
59     0x829BDAA3, 0x52B099C4, 0x6FCD5C6D, 0xBFE61F0A,
60     0x7622199D, 0xA6095AFA, 0x9B749F53, 0x4B5FDC34,
61     0xE18E584C, 0x31A51B2B, 0x0CD8DE82, 0xDCF39DE5,
62     0x1249408A, 0xC26203ED, 0xFF1FC644, 0x2F348523,
63     0x85E5015B, 0x55CE423C, 0x68B38795, 0xB898C4F2,
64     0x715CC265, 0xA1778102, 0x9C0A44AB, 0x4C2107CC,
65     0xE6F083B4, 0x36DBC0D3, 0x0BA6057A, 0xDB8D461D,
66     0xD4630919, 0x04484A7E, 0x39358FD7, 0xE91ECCB0,
67     0x43CF48C8, 0x93E40BAF, 0xAE99CE06, 0x7EB28D61,
68     0xB7768BF6, 0x675DC891, 0x5A200D38, 0x8A0B4E5F,
69     0x20DACA27, 0xF0F18940, 0xCD8C4CE9, 0x1DA70F8E,
70     0x1CB5BB37, 0xCC9EF850, 0xF1E33DF9, 0x21C87E9E,
71     0x8B19FAE6, 0x5B32B981, 0x664F7C28, 0xB6643F4F,
72     0x7FA039D8, 0xAF8B7ABF, 0x92F6BF16, 0x42DDFC71,
73     0xE80C7809, 0x38273B6E, 0x055AFEC7, 0xD571BDA0,
74     0xDA9FF2A4, 0x0AB4B1C3, 0x37C9746A, 0xE7E2370D,
75     0x4D33B375, 0x9D18F012, 0xA06535BB, 0x704E76DC,
76     0xB98A704B, 0x69A1332C, 0x54DCF685, 0x84F7B5E2,
77     0x2E26319A, 0xFE0D72FD, 0xC370B754, 0x135BF433,
78     0xDDE1295C, 0x0DCA6A3B, 0x30B7AF92, 0xE09CECF5,
79     0x4A4D688D, 0x9A662BEA, 0xA71BEE43, 0x7730AD24,
80     0xBEF4ABB3, 0x6EDFE8D4, 0x53A22D7D, 0x83896E1A,
81     0x2958EA62, 0xF973A905, 0xC40E6CAC, 0x14252FCB,
82     0x1BCB60CF, 0xCBE023A8, 0xF69DE601, 0x26B6A566,
83     0x8C67211E, 0x5C4C6279, 0x6131A7D0, 0xB11AE4B7,
84     0x78DEE220, 0xA8F5A147, 0x958864EE, 0x45A32789,
85     0xEF72A3F1, 0x3F59E096, 0x0224253F, 0xD20F6658,
86 };
87 
88 /* $ID$ */
89 /* Sbox for SOBER-128 */
90 /*
91  * This is really the combination of two SBoxes; the least significant
92  * 24 bits comes from:
93  * 8->32 Sbox generated by Millan et. al. at Queensland University of
94  * Technology. See: E. Dawson, W. Millan, L. Burnett, G. Carter,
95  * "On the Design of 8*32 S-boxes". Unpublished report, by the
96  * Information Systems Research Centre,
97  * Queensland University of Technology, 1999.
98  *
99  * The most significant 8 bits are the Skipjack "F table", which can be
100  * found at http://csrc.nist.gov/CryptoToolkit/skipjack/skipjack.pdf .
101  * In this optimised table, though, the intent is to XOR the word from
102  * the table selected by the high byte with the input word. Thus, the
103  * high byte is actually the Skipjack F-table entry XORED with its
104  * table index.
105  */
106 static const ulong32 Sbox[256] = {
107     0xa3aa1887, 0xd65e435c, 0x0b65c042, 0x800e6ef4,
108     0xfc57ee20, 0x4d84fed3, 0xf066c502, 0xf354e8ae,
109     0xbb2ee9d9, 0x281f38d4, 0x1f829b5d, 0x735cdf3c,
110     0x95864249, 0xbc2e3963, 0xa1f4429f, 0xf6432c35,
111     0xf7f40325, 0x3cc0dd70, 0x5f973ded, 0x9902dc5e,
112     0xda175b42, 0x590012bf, 0xdc94d78c, 0x39aab26b,
113     0x4ac11b9a, 0x8c168146, 0xc3ea8ec5, 0x058ac28f,
114     0x52ed5c0f, 0x25b4101c, 0x5a2db082, 0x370929e1,
115     0x2a1843de, 0xfe8299fc, 0x202fbc4b, 0x833915dd,
116     0x33a803fa, 0xd446b2de, 0x46233342, 0x4fcee7c3,
117     0x3ad607ef, 0x9e97ebab, 0x507f859b, 0xe81f2e2f,
118     0xc55b71da, 0xd7e2269a, 0x1339c3d1, 0x7ca56b36,
119     0xa6c9def2, 0xb5c9fc5f, 0x5927b3a3, 0x89a56ddf,
120     0xc625b510, 0x560f85a7, 0xace82e71, 0x2ecb8816,
121     0x44951e2a, 0x97f5f6af, 0xdfcbc2b3, 0xce4ff55d,
122     0xcb6b6214, 0x2b0b83e3, 0x549ea6f5, 0x9de041af,
123     0x792f1f17, 0xf73b99ee, 0x39a65ec0, 0x4c7016c6,
124     0x857709a4, 0xd6326e01, 0xc7b280d9, 0x5cfb1418,
125     0xa6aff227, 0xfd548203, 0x506b9d96, 0xa117a8c0,
126     0x9cd5bf6e, 0xdcee7888, 0x61fcfe64, 0xf7a193cd,
127     0x050d0184, 0xe8ae4930, 0x88014f36, 0xd6a87088,
128     0x6bad6c2a, 0x1422c678, 0xe9204de7, 0xb7c2e759,
129     0x0200248e, 0x013b446b, 0xda0d9fc2, 0x0414a895,
130     0x3a6cc3a1, 0x56fef170, 0x86c19155, 0xcf7b8a66,
131     0x551b5e69, 0xb4a8623e, 0xa2bdfa35, 0xc4f068cc,
132     0x573a6acd, 0x6355e936, 0x03602db9, 0x0edf13c1,
133     0x2d0bb16d, 0x6980b83c, 0xfeb23763, 0x3dd8a911,
134     0x01b6bc13, 0xf55579d7, 0xf55c2fa8, 0x19f4196e,
135     0xe7db5476, 0x8d64a866, 0xc06e16ad, 0xb17fc515,
136     0xc46feb3c, 0x8bc8a306, 0xad6799d9, 0x571a9133,
137     0x992466dd, 0x92eb5dcd, 0xac118f50, 0x9fafb226,
138     0xa1b9cef3, 0x3ab36189, 0x347a19b1, 0x62c73084,
139     0xc27ded5c, 0x6c8bc58f, 0x1cdde421, 0xed1e47fb,
140     0xcdcc715e, 0xb9c0ff99, 0x4b122f0f, 0xc4d25184,
141     0xaf7a5e6c, 0x5bbf18bc, 0x8dd7c6e0, 0x5fb7e420,
142     0x521f523f, 0x4ad9b8a2, 0xe9da1a6b, 0x97888c02,
143     0x19d1e354, 0x5aba7d79, 0xa2cc7753, 0x8c2d9655,
144     0x19829da1, 0x531590a7, 0x19c1c149, 0x3d537f1c,
145     0x50779b69, 0xed71f2b7, 0x463c58fa, 0x52dc4418,
146     0xc18c8c76, 0xc120d9f0, 0xafa80d4d, 0x3b74c473,
147     0xd09410e9, 0x290e4211, 0xc3c8082b, 0x8f6b334a,
148     0x3bf68ed2, 0xa843cc1b, 0x8d3c0ff3, 0x20e564a0,
149     0xf8f55a4f, 0x2b40f8e7, 0xfea7f15f, 0xcf00fe21,
150     0x8a6d37d6, 0xd0d506f1, 0xade00973, 0xefbbde36,
151     0x84670fa8, 0xfa31ab9e, 0xaedab618, 0xc01f52f5,
152     0x6558eb4f, 0x71b9e343, 0x4b8d77dd, 0x8cb93da6,
153     0x740fd52d, 0x425412f8, 0xc5a63360, 0x10e53ad0,
154     0x5a700f1c, 0x8324ed0b, 0xe53dc1ec, 0x1a366795,
155     0x6d549d15, 0xc5ce46d7, 0xe17abe76, 0x5f48e0a0,
156     0xd0f07c02, 0x941249b7, 0xe49ed6ba, 0x37a47f78,
157     0xe1cfffbd, 0xb007ca84, 0xbb65f4da, 0xb59f35da,
158     0x33d2aa44, 0x417452ac, 0xc0d674a7, 0x2d61a46a,
159     0xdc63152a, 0x3e12b7aa, 0x6e615927, 0xa14fb118,
160     0xa151758d, 0xba81687b, 0xe152f0b3, 0x764254ed,
161     0x34c77271, 0x0a31acab, 0x54f94aec, 0xb9e994cd,
162     0x574d9e81, 0x5b623730, 0xce8a21e8, 0x37917f0b,
163     0xe8a9b5d6, 0x9697adf8, 0xf3d30431, 0x5dcac921,
164     0x76b35d46, 0xaa430a36, 0xc2194022, 0x22bca65e,
165     0xdaec70ba, 0xdfaea8cc, 0x777bae8b, 0x242924d5,
166     0x1f098a5a, 0x4b396b81, 0x55de2522, 0x435c1cb8,
167     0xaeb8fe1d, 0x9db3c697, 0x5b164f83, 0xe0c16376,
168     0xa319224c, 0xd0203b35, 0x433ac0fe, 0x1466a19a,
169     0x45f0b24f, 0x51fda998, 0xc0d52d71, 0xfa0896a8,
170     0xf9e6053f, 0xa4b0d300, 0xd499cbcc, 0xb95e3d40,
171 };
172 
173 #endif /* __LTC_SOBER128TAB_C__ */
174 
175 /* ref:         $Format:%D$ */
176 /* git commit:  $Format:%H$ */
177 /* commit time: $Format:%ai$ */
178