Crypto++ 8.7
Free C++ class library of cryptographic schemes
rdtables.cpp
1// Rijndael tables
2
3#include "pch.h"
4
5#ifndef CRYPTOPP_IMPORTS
6
7#include "rijndael.h"
8
9NAMESPACE_BEGIN(CryptoPP)
10
11/*
12Te0[x] = S [x].[02, 01, 01, 03];
13Te1[x] = S [x].[03, 02, 01, 01];
14Te2[x] = S [x].[01, 03, 02, 01];
15Te3[x] = S [x].[01, 01, 03, 02];
16
17Td0[x] = Si[x].[0e, 09, 0d, 0b];
18Td1[x] = Si[x].[0b, 0e, 09, 0d];
19Td2[x] = Si[x].[0d, 0b, 0e, 09];
20Td3[x] = Si[x].[09, 0d, 0b, 0e];
21*/
22
23const byte Rijndael::Base::Se[256] = {
24 0x63, 0x7c, 0x77, 0x7b,
25 0xf2, 0x6b, 0x6f, 0xc5,
26 0x30, 0x01, 0x67, 0x2b,
27 0xfe, 0xd7, 0xab, 0x76,
28 0xca, 0x82, 0xc9, 0x7d,
29 0xfa, 0x59, 0x47, 0xf0,
30 0xad, 0xd4, 0xa2, 0xaf,
31 0x9c, 0xa4, 0x72, 0xc0,
32 0xb7, 0xfd, 0x93, 0x26,
33 0x36, 0x3f, 0xf7, 0xcc,
34 0x34, 0xa5, 0xe5, 0xf1,
35 0x71, 0xd8, 0x31, 0x15,
36 0x04, 0xc7, 0x23, 0xc3,
37 0x18, 0x96, 0x05, 0x9a,
38 0x07, 0x12, 0x80, 0xe2,
39 0xeb, 0x27, 0xb2, 0x75,
40 0x09, 0x83, 0x2c, 0x1a,
41 0x1b, 0x6e, 0x5a, 0xa0,
42 0x52, 0x3b, 0xd6, 0xb3,
43 0x29, 0xe3, 0x2f, 0x84,
44 0x53, 0xd1, 0x00, 0xed,
45 0x20, 0xfc, 0xb1, 0x5b,
46 0x6a, 0xcb, 0xbe, 0x39,
47 0x4a, 0x4c, 0x58, 0xcf,
48 0xd0, 0xef, 0xaa, 0xfb,
49 0x43, 0x4d, 0x33, 0x85,
50 0x45, 0xf9, 0x02, 0x7f,
51 0x50, 0x3c, 0x9f, 0xa8,
52 0x51, 0xa3, 0x40, 0x8f,
53 0x92, 0x9d, 0x38, 0xf5,
54 0xbc, 0xb6, 0xda, 0x21,
55 0x10, 0xff, 0xf3, 0xd2,
56 0xcd, 0x0c, 0x13, 0xec,
57 0x5f, 0x97, 0x44, 0x17,
58 0xc4, 0xa7, 0x7e, 0x3d,
59 0x64, 0x5d, 0x19, 0x73,
60 0x60, 0x81, 0x4f, 0xdc,
61 0x22, 0x2a, 0x90, 0x88,
62 0x46, 0xee, 0xb8, 0x14,
63 0xde, 0x5e, 0x0b, 0xdb,
64 0xe0, 0x32, 0x3a, 0x0a,
65 0x49, 0x06, 0x24, 0x5c,
66 0xc2, 0xd3, 0xac, 0x62,
67 0x91, 0x95, 0xe4, 0x79,
68 0xe7, 0xc8, 0x37, 0x6d,
69 0x8d, 0xd5, 0x4e, 0xa9,
70 0x6c, 0x56, 0xf4, 0xea,
71 0x65, 0x7a, 0xae, 0x08,
72 0xba, 0x78, 0x25, 0x2e,
73 0x1c, 0xa6, 0xb4, 0xc6,
74 0xe8, 0xdd, 0x74, 0x1f,
75 0x4b, 0xbd, 0x8b, 0x8a,
76 0x70, 0x3e, 0xb5, 0x66,
77 0x48, 0x03, 0xf6, 0x0e,
78 0x61, 0x35, 0x57, 0xb9,
79 0x86, 0xc1, 0x1d, 0x9e,
80 0xe1, 0xf8, 0x98, 0x11,
81 0x69, 0xd9, 0x8e, 0x94,
82 0x9b, 0x1e, 0x87, 0xe9,
83 0xce, 0x55, 0x28, 0xdf,
84 0x8c, 0xa1, 0x89, 0x0d,
85 0xbf, 0xe6, 0x42, 0x68,
86 0x41, 0x99, 0x2d, 0x0f,
87 0xb0, 0x54, 0xbb, 0x16,
88};
89
90const byte Rijndael::Base::Sd[256] = {
91 0x52, 0x09, 0x6a, 0xd5,
92 0x30, 0x36, 0xa5, 0x38,
93 0xbf, 0x40, 0xa3, 0x9e,
94 0x81, 0xf3, 0xd7, 0xfb,
95 0x7c, 0xe3, 0x39, 0x82,
96 0x9b, 0x2f, 0xff, 0x87,
97 0x34, 0x8e, 0x43, 0x44,
98 0xc4, 0xde, 0xe9, 0xcb,
99 0x54, 0x7b, 0x94, 0x32,
100 0xa6, 0xc2, 0x23, 0x3d,
101 0xee, 0x4c, 0x95, 0x0b,
102 0x42, 0xfa, 0xc3, 0x4e,
103 0x08, 0x2e, 0xa1, 0x66,
104 0x28, 0xd9, 0x24, 0xb2,
105 0x76, 0x5b, 0xa2, 0x49,
106 0x6d, 0x8b, 0xd1, 0x25,
107 0x72, 0xf8, 0xf6, 0x64,
108 0x86, 0x68, 0x98, 0x16,
109 0xd4, 0xa4, 0x5c, 0xcc,
110 0x5d, 0x65, 0xb6, 0x92,
111 0x6c, 0x70, 0x48, 0x50,
112 0xfd, 0xed, 0xb9, 0xda,
113 0x5e, 0x15, 0x46, 0x57,
114 0xa7, 0x8d, 0x9d, 0x84,
115 0x90, 0xd8, 0xab, 0x00,
116 0x8c, 0xbc, 0xd3, 0x0a,
117 0xf7, 0xe4, 0x58, 0x05,
118 0xb8, 0xb3, 0x45, 0x06,
119 0xd0, 0x2c, 0x1e, 0x8f,
120 0xca, 0x3f, 0x0f, 0x02,
121 0xc1, 0xaf, 0xbd, 0x03,
122 0x01, 0x13, 0x8a, 0x6b,
123 0x3a, 0x91, 0x11, 0x41,
124 0x4f, 0x67, 0xdc, 0xea,
125 0x97, 0xf2, 0xcf, 0xce,
126 0xf0, 0xb4, 0xe6, 0x73,
127 0x96, 0xac, 0x74, 0x22,
128 0xe7, 0xad, 0x35, 0x85,
129 0xe2, 0xf9, 0x37, 0xe8,
130 0x1c, 0x75, 0xdf, 0x6e,
131 0x47, 0xf1, 0x1a, 0x71,
132 0x1d, 0x29, 0xc5, 0x89,
133 0x6f, 0xb7, 0x62, 0x0e,
134 0xaa, 0x18, 0xbe, 0x1b,
135 0xfc, 0x56, 0x3e, 0x4b,
136 0xc6, 0xd2, 0x79, 0x20,
137 0x9a, 0xdb, 0xc0, 0xfe,
138 0x78, 0xcd, 0x5a, 0xf4,
139 0x1f, 0xdd, 0xa8, 0x33,
140 0x88, 0x07, 0xc7, 0x31,
141 0xb1, 0x12, 0x10, 0x59,
142 0x27, 0x80, 0xec, 0x5f,
143 0x60, 0x51, 0x7f, 0xa9,
144 0x19, 0xb5, 0x4a, 0x0d,
145 0x2d, 0xe5, 0x7a, 0x9f,
146 0x93, 0xc9, 0x9c, 0xef,
147 0xa0, 0xe0, 0x3b, 0x4d,
148 0xae, 0x2a, 0xf5, 0xb0,
149 0xc8, 0xeb, 0xbb, 0x3c,
150 0x83, 0x53, 0x99, 0x61,
151 0x17, 0x2b, 0x04, 0x7e,
152 0xba, 0x77, 0xd6, 0x26,
153 0xe1, 0x69, 0x14, 0x63,
154 0x55, 0x21, 0x0c, 0x7d,
155};
156
157/* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
158const word32 Rijndael::Base::rcon[] = {
159 0x01000000, 0x02000000, 0x04000000, 0x08000000,
160 0x10000000, 0x20000000, 0x40000000, 0x80000000,
161 0x1B000000, 0x36000000
162};
163
164NAMESPACE_END
165
166#endif
unsigned int word32
32-bit unsigned datatype
Definition: config_int.h:62
Crypto++ library namespace.
Precompiled header file.
Classes for Rijndael encryption algorithm.