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