Botan
1.11.15
|
00001 /* 00002 * Substitution/Permutation Tables for DES 00003 * (C) 1999-2007 Jack Lloyd 00004 * 00005 * Botan is released under the Simplified BSD License (see license.txt) 00006 */ 00007 00008 #include <botan/des.h> 00009 00010 namespace Botan { 00011 00012 const u32bit DES_SPBOX1[256] = { 00013 0x01010400, 0x00000000, 0x00010000, 0x01010404, 0x01010004, 0x00010404, 00014 0x00000004, 0x00010000, 0x00000400, 0x01010400, 0x01010404, 0x00000400, 00015 0x01000404, 0x01010004, 0x01000000, 0x00000004, 0x00000404, 0x01000400, 00016 0x01000400, 0x00010400, 0x00010400, 0x01010000, 0x01010000, 0x01000404, 00017 0x00010004, 0x01000004, 0x01000004, 0x00010004, 0x00000000, 0x00000404, 00018 0x00010404, 0x01000000, 0x00010000, 0x01010404, 0x00000004, 0x01010000, 00019 0x01010400, 0x01000000, 0x01000000, 0x00000400, 0x01010004, 0x00010000, 00020 0x00010400, 0x01000004, 0x00000400, 0x00000004, 0x01000404, 0x00010404, 00021 0x01010404, 0x00010004, 0x01010000, 0x01000404, 0x01000004, 0x00000404, 00022 0x00010404, 0x01010400, 0x00000404, 0x01000400, 0x01000400, 0x00000000, 00023 0x00010004, 0x00010400, 0x00000000, 0x01010004, 0x01010400, 0x00000000, 00024 0x00010000, 0x01010404, 0x01010004, 0x00010404, 0x00000004, 0x00010000, 00025 0x00000400, 0x01010400, 0x01010404, 0x00000400, 0x01000404, 0x01010004, 00026 0x01000000, 0x00000004, 0x00000404, 0x01000400, 0x01000400, 0x00010400, 00027 0x00010400, 0x01010000, 0x01010000, 0x01000404, 0x00010004, 0x01000004, 00028 0x01000004, 0x00010004, 0x00000000, 0x00000404, 0x00010404, 0x01000000, 00029 0x00010000, 0x01010404, 0x00000004, 0x01010000, 0x01010400, 0x01000000, 00030 0x01000000, 0x00000400, 0x01010004, 0x00010000, 0x00010400, 0x01000004, 00031 0x00000400, 0x00000004, 0x01000404, 0x00010404, 0x01010404, 0x00010004, 00032 0x01010000, 0x01000404, 0x01000004, 0x00000404, 0x00010404, 0x01010400, 00033 0x00000404, 0x01000400, 0x01000400, 0x00000000, 0x00010004, 0x00010400, 00034 0x00000000, 0x01010004, 0x01010400, 0x00000000, 0x00010000, 0x01010404, 00035 0x01010004, 0x00010404, 0x00000004, 0x00010000, 0x00000400, 0x01010400, 00036 0x01010404, 0x00000400, 0x01000404, 0x01010004, 0x01000000, 0x00000004, 00037 0x00000404, 0x01000400, 0x01000400, 0x00010400, 0x00010400, 0x01010000, 00038 0x01010000, 0x01000404, 0x00010004, 0x01000004, 0x01000004, 0x00010004, 00039 0x00000000, 0x00000404, 0x00010404, 0x01000000, 0x00010000, 0x01010404, 00040 0x00000004, 0x01010000, 0x01010400, 0x01000000, 0x01000000, 0x00000400, 00041 0x01010004, 0x00010000, 0x00010400, 0x01000004, 0x00000400, 0x00000004, 00042 0x01000404, 0x00010404, 0x01010404, 0x00010004, 0x01010000, 0x01000404, 00043 0x01000004, 0x00000404, 0x00010404, 0x01010400, 0x00000404, 0x01000400, 00044 0x01000400, 0x00000000, 0x00010004, 0x00010400, 0x00000000, 0x01010004, 00045 0x01010400, 0x00000000, 0x00010000, 0x01010404, 0x01010004, 0x00010404, 00046 0x00000004, 0x00010000, 0x00000400, 0x01010400, 0x01010404, 0x00000400, 00047 0x01000404, 0x01010004, 0x01000000, 0x00000004, 0x00000404, 0x01000400, 00048 0x01000400, 0x00010400, 0x00010400, 0x01010000, 0x01010000, 0x01000404, 00049 0x00010004, 0x01000004, 0x01000004, 0x00010004, 0x00000000, 0x00000404, 00050 0x00010404, 0x01000000, 0x00010000, 0x01010404, 0x00000004, 0x01010000, 00051 0x01010400, 0x01000000, 0x01000000, 0x00000400, 0x01010004, 0x00010000, 00052 0x00010400, 0x01000004, 0x00000400, 0x00000004, 0x01000404, 0x00010404, 00053 0x01010404, 0x00010004, 0x01010000, 0x01000404, 0x01000004, 0x00000404, 00054 0x00010404, 0x01010400, 0x00000404, 0x01000400, 0x01000400, 0x00000000, 00055 0x00010004, 0x00010400, 0x00000000, 0x01010004 }; 00056 00057 const u32bit DES_SPBOX2[256] = { 00058 0x80108020, 0x80008000, 0x00008000, 0x00108020, 0x00100000, 0x00000020, 00059 0x80100020, 0x80008020, 0x80000020, 0x80108020, 0x80108000, 0x80000000, 00060 0x80008000, 0x00100000, 0x00000020, 0x80100020, 0x00108000, 0x00100020, 00061 0x80008020, 0x00000000, 0x80000000, 0x00008000, 0x00108020, 0x80100000, 00062 0x00100020, 0x80000020, 0x00000000, 0x00108000, 0x00008020, 0x80108000, 00063 0x80100000, 0x00008020, 0x00000000, 0x00108020, 0x80100020, 0x00100000, 00064 0x80008020, 0x80100000, 0x80108000, 0x00008000, 0x80100000, 0x80008000, 00065 0x00000020, 0x80108020, 0x00108020, 0x00000020, 0x00008000, 0x80000000, 00066 0x00008020, 0x80108000, 0x00100000, 0x80000020, 0x00100020, 0x80008020, 00067 0x80000020, 0x00100020, 0x00108000, 0x00000000, 0x80008000, 0x00008020, 00068 0x80000000, 0x80100020, 0x80108020, 0x00108000, 0x80108020, 0x80008000, 00069 0x00008000, 0x00108020, 0x00100000, 0x00000020, 0x80100020, 0x80008020, 00070 0x80000020, 0x80108020, 0x80108000, 0x80000000, 0x80008000, 0x00100000, 00071 0x00000020, 0x80100020, 0x00108000, 0x00100020, 0x80008020, 0x00000000, 00072 0x80000000, 0x00008000, 0x00108020, 0x80100000, 0x00100020, 0x80000020, 00073 0x00000000, 0x00108000, 0x00008020, 0x80108000, 0x80100000, 0x00008020, 00074 0x00000000, 0x00108020, 0x80100020, 0x00100000, 0x80008020, 0x80100000, 00075 0x80108000, 0x00008000, 0x80100000, 0x80008000, 0x00000020, 0x80108020, 00076 0x00108020, 0x00000020, 0x00008000, 0x80000000, 0x00008020, 0x80108000, 00077 0x00100000, 0x80000020, 0x00100020, 0x80008020, 0x80000020, 0x00100020, 00078 0x00108000, 0x00000000, 0x80008000, 0x00008020, 0x80000000, 0x80100020, 00079 0x80108020, 0x00108000, 0x80108020, 0x80008000, 0x00008000, 0x00108020, 00080 0x00100000, 0x00000020, 0x80100020, 0x80008020, 0x80000020, 0x80108020, 00081 0x80108000, 0x80000000, 0x80008000, 0x00100000, 0x00000020, 0x80100020, 00082 0x00108000, 0x00100020, 0x80008020, 0x00000000, 0x80000000, 0x00008000, 00083 0x00108020, 0x80100000, 0x00100020, 0x80000020, 0x00000000, 0x00108000, 00084 0x00008020, 0x80108000, 0x80100000, 0x00008020, 0x00000000, 0x00108020, 00085 0x80100020, 0x00100000, 0x80008020, 0x80100000, 0x80108000, 0x00008000, 00086 0x80100000, 0x80008000, 0x00000020, 0x80108020, 0x00108020, 0x00000020, 00087 0x00008000, 0x80000000, 0x00008020, 0x80108000, 0x00100000, 0x80000020, 00088 0x00100020, 0x80008020, 0x80000020, 0x00100020, 0x00108000, 0x00000000, 00089 0x80008000, 0x00008020, 0x80000000, 0x80100020, 0x80108020, 0x00108000, 00090 0x80108020, 0x80008000, 0x00008000, 0x00108020, 0x00100000, 0x00000020, 00091 0x80100020, 0x80008020, 0x80000020, 0x80108020, 0x80108000, 0x80000000, 00092 0x80008000, 0x00100000, 0x00000020, 0x80100020, 0x00108000, 0x00100020, 00093 0x80008020, 0x00000000, 0x80000000, 0x00008000, 0x00108020, 0x80100000, 00094 0x00100020, 0x80000020, 0x00000000, 0x00108000, 0x00008020, 0x80108000, 00095 0x80100000, 0x00008020, 0x00000000, 0x00108020, 0x80100020, 0x00100000, 00096 0x80008020, 0x80100000, 0x80108000, 0x00008000, 0x80100000, 0x80008000, 00097 0x00000020, 0x80108020, 0x00108020, 0x00000020, 0x00008000, 0x80000000, 00098 0x00008020, 0x80108000, 0x00100000, 0x80000020, 0x00100020, 0x80008020, 00099 0x80000020, 0x00100020, 0x00108000, 0x00000000, 0x80008000, 0x00008020, 00100 0x80000000, 0x80100020, 0x80108020, 0x00108000 }; 00101 00102 const u32bit DES_SPBOX3[256] = { 00103 0x00000208, 0x08020200, 0x00000000, 0x08020008, 0x08000200, 0x00000000, 00104 0x00020208, 0x08000200, 0x00020008, 0x08000008, 0x08000008, 0x00020000, 00105 0x08020208, 0x00020008, 0x08020000, 0x00000208, 0x08000000, 0x00000008, 00106 0x08020200, 0x00000200, 0x00020200, 0x08020000, 0x08020008, 0x00020208, 00107 0x08000208, 0x00020200, 0x00020000, 0x08000208, 0x00000008, 0x08020208, 00108 0x00000200, 0x08000000, 0x08020200, 0x08000000, 0x00020008, 0x00000208, 00109 0x00020000, 0x08020200, 0x08000200, 0x00000000, 0x00000200, 0x00020008, 00110 0x08020208, 0x08000200, 0x08000008, 0x00000200, 0x00000000, 0x08020008, 00111 0x08000208, 0x00020000, 0x08000000, 0x08020208, 0x00000008, 0x00020208, 00112 0x00020200, 0x08000008, 0x08020000, 0x08000208, 0x00000208, 0x08020000, 00113 0x00020208, 0x00000008, 0x08020008, 0x00020200, 0x00000208, 0x08020200, 00114 0x00000000, 0x08020008, 0x08000200, 0x00000000, 0x00020208, 0x08000200, 00115 0x00020008, 0x08000008, 0x08000008, 0x00020000, 0x08020208, 0x00020008, 00116 0x08020000, 0x00000208, 0x08000000, 0x00000008, 0x08020200, 0x00000200, 00117 0x00020200, 0x08020000, 0x08020008, 0x00020208, 0x08000208, 0x00020200, 00118 0x00020000, 0x08000208, 0x00000008, 0x08020208, 0x00000200, 0x08000000, 00119 0x08020200, 0x08000000, 0x00020008, 0x00000208, 0x00020000, 0x08020200, 00120 0x08000200, 0x00000000, 0x00000200, 0x00020008, 0x08020208, 0x08000200, 00121 0x08000008, 0x00000200, 0x00000000, 0x08020008, 0x08000208, 0x00020000, 00122 0x08000000, 0x08020208, 0x00000008, 0x00020208, 0x00020200, 0x08000008, 00123 0x08020000, 0x08000208, 0x00000208, 0x08020000, 0x00020208, 0x00000008, 00124 0x08020008, 0x00020200, 0x00000208, 0x08020200, 0x00000000, 0x08020008, 00125 0x08000200, 0x00000000, 0x00020208, 0x08000200, 0x00020008, 0x08000008, 00126 0x08000008, 0x00020000, 0x08020208, 0x00020008, 0x08020000, 0x00000208, 00127 0x08000000, 0x00000008, 0x08020200, 0x00000200, 0x00020200, 0x08020000, 00128 0x08020008, 0x00020208, 0x08000208, 0x00020200, 0x00020000, 0x08000208, 00129 0x00000008, 0x08020208, 0x00000200, 0x08000000, 0x08020200, 0x08000000, 00130 0x00020008, 0x00000208, 0x00020000, 0x08020200, 0x08000200, 0x00000000, 00131 0x00000200, 0x00020008, 0x08020208, 0x08000200, 0x08000008, 0x00000200, 00132 0x00000000, 0x08020008, 0x08000208, 0x00020000, 0x08000000, 0x08020208, 00133 0x00000008, 0x00020208, 0x00020200, 0x08000008, 0x08020000, 0x08000208, 00134 0x00000208, 0x08020000, 0x00020208, 0x00000008, 0x08020008, 0x00020200, 00135 0x00000208, 0x08020200, 0x00000000, 0x08020008, 0x08000200, 0x00000000, 00136 0x00020208, 0x08000200, 0x00020008, 0x08000008, 0x08000008, 0x00020000, 00137 0x08020208, 0x00020008, 0x08020000, 0x00000208, 0x08000000, 0x00000008, 00138 0x08020200, 0x00000200, 0x00020200, 0x08020000, 0x08020008, 0x00020208, 00139 0x08000208, 0x00020200, 0x00020000, 0x08000208, 0x00000008, 0x08020208, 00140 0x00000200, 0x08000000, 0x08020200, 0x08000000, 0x00020008, 0x00000208, 00141 0x00020000, 0x08020200, 0x08000200, 0x00000000, 0x00000200, 0x00020008, 00142 0x08020208, 0x08000200, 0x08000008, 0x00000200, 0x00000000, 0x08020008, 00143 0x08000208, 0x00020000, 0x08000000, 0x08020208, 0x00000008, 0x00020208, 00144 0x00020200, 0x08000008, 0x08020000, 0x08000208, 0x00000208, 0x08020000, 00145 0x00020208, 0x00000008, 0x08020008, 0x00020200 }; 00146 00147 const u32bit DES_SPBOX4[256] = { 00148 0x00802001, 0x00002081, 0x00002081, 0x00000080, 0x00802080, 0x00800081, 00149 0x00800001, 0x00002001, 0x00000000, 0x00802000, 0x00802000, 0x00802081, 00150 0x00000081, 0x00000000, 0x00800080, 0x00800001, 0x00000001, 0x00002000, 00151 0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002001, 0x00002080, 00152 0x00800081, 0x00000001, 0x00002080, 0x00800080, 0x00002000, 0x00802080, 00153 0x00802081, 0x00000081, 0x00800080, 0x00800001, 0x00802000, 0x00802081, 00154 0x00000081, 0x00000000, 0x00000000, 0x00802000, 0x00002080, 0x00800080, 00155 0x00800081, 0x00000001, 0x00802001, 0x00002081, 0x00002081, 0x00000080, 00156 0x00802081, 0x00000081, 0x00000001, 0x00002000, 0x00800001, 0x00002001, 00157 0x00802080, 0x00800081, 0x00002001, 0x00002080, 0x00800000, 0x00802001, 00158 0x00000080, 0x00800000, 0x00002000, 0x00802080, 0x00802001, 0x00002081, 00159 0x00002081, 0x00000080, 0x00802080, 0x00800081, 0x00800001, 0x00002001, 00160 0x00000000, 0x00802000, 0x00802000, 0x00802081, 0x00000081, 0x00000000, 00161 0x00800080, 0x00800001, 0x00000001, 0x00002000, 0x00800000, 0x00802001, 00162 0x00000080, 0x00800000, 0x00002001, 0x00002080, 0x00800081, 0x00000001, 00163 0x00002080, 0x00800080, 0x00002000, 0x00802080, 0x00802081, 0x00000081, 00164 0x00800080, 0x00800001, 0x00802000, 0x00802081, 0x00000081, 0x00000000, 00165 0x00000000, 0x00802000, 0x00002080, 0x00800080, 0x00800081, 0x00000001, 00166 0x00802001, 0x00002081, 0x00002081, 0x00000080, 0x00802081, 0x00000081, 00167 0x00000001, 0x00002000, 0x00800001, 0x00002001, 0x00802080, 0x00800081, 00168 0x00002001, 0x00002080, 0x00800000, 0x00802001, 0x00000080, 0x00800000, 00169 0x00002000, 0x00802080, 0x00802001, 0x00002081, 0x00002081, 0x00000080, 00170 0x00802080, 0x00800081, 0x00800001, 0x00002001, 0x00000000, 0x00802000, 00171 0x00802000, 0x00802081, 0x00000081, 0x00000000, 0x00800080, 0x00800001, 00172 0x00000001, 0x00002000, 0x00800000, 0x00802001, 0x00000080, 0x00800000, 00173 0x00002001, 0x00002080, 0x00800081, 0x00000001, 0x00002080, 0x00800080, 00174 0x00002000, 0x00802080, 0x00802081, 0x00000081, 0x00800080, 0x00800001, 00175 0x00802000, 0x00802081, 0x00000081, 0x00000000, 0x00000000, 0x00802000, 00176 0x00002080, 0x00800080, 0x00800081, 0x00000001, 0x00802001, 0x00002081, 00177 0x00002081, 0x00000080, 0x00802081, 0x00000081, 0x00000001, 0x00002000, 00178 0x00800001, 0x00002001, 0x00802080, 0x00800081, 0x00002001, 0x00002080, 00179 0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002000, 0x00802080, 00180 0x00802001, 0x00002081, 0x00002081, 0x00000080, 0x00802080, 0x00800081, 00181 0x00800001, 0x00002001, 0x00000000, 0x00802000, 0x00802000, 0x00802081, 00182 0x00000081, 0x00000000, 0x00800080, 0x00800001, 0x00000001, 0x00002000, 00183 0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002001, 0x00002080, 00184 0x00800081, 0x00000001, 0x00002080, 0x00800080, 0x00002000, 0x00802080, 00185 0x00802081, 0x00000081, 0x00800080, 0x00800001, 0x00802000, 0x00802081, 00186 0x00000081, 0x00000000, 0x00000000, 0x00802000, 0x00002080, 0x00800080, 00187 0x00800081, 0x00000001, 0x00802001, 0x00002081, 0x00002081, 0x00000080, 00188 0x00802081, 0x00000081, 0x00000001, 0x00002000, 0x00800001, 0x00002001, 00189 0x00802080, 0x00800081, 0x00002001, 0x00002080, 0x00800000, 0x00802001, 00190 0x00000080, 0x00800000, 0x00002000, 0x00802080 }; 00191 00192 const u32bit DES_SPBOX5[256] = { 00193 0x00000100, 0x02080100, 0x02080000, 0x42000100, 0x00080000, 0x00000100, 00194 0x40000000, 0x02080000, 0x40080100, 0x00080000, 0x02000100, 0x40080100, 00195 0x42000100, 0x42080000, 0x00080100, 0x40000000, 0x02000000, 0x40080000, 00196 0x40080000, 0x00000000, 0x40000100, 0x42080100, 0x42080100, 0x02000100, 00197 0x42080000, 0x40000100, 0x00000000, 0x42000000, 0x02080100, 0x02000000, 00198 0x42000000, 0x00080100, 0x00080000, 0x42000100, 0x00000100, 0x02000000, 00199 0x40000000, 0x02080000, 0x42000100, 0x40080100, 0x02000100, 0x40000000, 00200 0x42080000, 0x02080100, 0x40080100, 0x00000100, 0x02000000, 0x42080000, 00201 0x42080100, 0x00080100, 0x42000000, 0x42080100, 0x02080000, 0x00000000, 00202 0x40080000, 0x42000000, 0x00080100, 0x02000100, 0x40000100, 0x00080000, 00203 0x00000000, 0x40080000, 0x02080100, 0x40000100, 0x00000100, 0x02080100, 00204 0x02080000, 0x42000100, 0x00080000, 0x00000100, 0x40000000, 0x02080000, 00205 0x40080100, 0x00080000, 0x02000100, 0x40080100, 0x42000100, 0x42080000, 00206 0x00080100, 0x40000000, 0x02000000, 0x40080000, 0x40080000, 0x00000000, 00207 0x40000100, 0x42080100, 0x42080100, 0x02000100, 0x42080000, 0x40000100, 00208 0x00000000, 0x42000000, 0x02080100, 0x02000000, 0x42000000, 0x00080100, 00209 0x00080000, 0x42000100, 0x00000100, 0x02000000, 0x40000000, 0x02080000, 00210 0x42000100, 0x40080100, 0x02000100, 0x40000000, 0x42080000, 0x02080100, 00211 0x40080100, 0x00000100, 0x02000000, 0x42080000, 0x42080100, 0x00080100, 00212 0x42000000, 0x42080100, 0x02080000, 0x00000000, 0x40080000, 0x42000000, 00213 0x00080100, 0x02000100, 0x40000100, 0x00080000, 0x00000000, 0x40080000, 00214 0x02080100, 0x40000100, 0x00000100, 0x02080100, 0x02080000, 0x42000100, 00215 0x00080000, 0x00000100, 0x40000000, 0x02080000, 0x40080100, 0x00080000, 00216 0x02000100, 0x40080100, 0x42000100, 0x42080000, 0x00080100, 0x40000000, 00217 0x02000000, 0x40080000, 0x40080000, 0x00000000, 0x40000100, 0x42080100, 00218 0x42080100, 0x02000100, 0x42080000, 0x40000100, 0x00000000, 0x42000000, 00219 0x02080100, 0x02000000, 0x42000000, 0x00080100, 0x00080000, 0x42000100, 00220 0x00000100, 0x02000000, 0x40000000, 0x02080000, 0x42000100, 0x40080100, 00221 0x02000100, 0x40000000, 0x42080000, 0x02080100, 0x40080100, 0x00000100, 00222 0x02000000, 0x42080000, 0x42080100, 0x00080100, 0x42000000, 0x42080100, 00223 0x02080000, 0x00000000, 0x40080000, 0x42000000, 0x00080100, 0x02000100, 00224 0x40000100, 0x00080000, 0x00000000, 0x40080000, 0x02080100, 0x40000100, 00225 0x00000100, 0x02080100, 0x02080000, 0x42000100, 0x00080000, 0x00000100, 00226 0x40000000, 0x02080000, 0x40080100, 0x00080000, 0x02000100, 0x40080100, 00227 0x42000100, 0x42080000, 0x00080100, 0x40000000, 0x02000000, 0x40080000, 00228 0x40080000, 0x00000000, 0x40000100, 0x42080100, 0x42080100, 0x02000100, 00229 0x42080000, 0x40000100, 0x00000000, 0x42000000, 0x02080100, 0x02000000, 00230 0x42000000, 0x00080100, 0x00080000, 0x42000100, 0x00000100, 0x02000000, 00231 0x40000000, 0x02080000, 0x42000100, 0x40080100, 0x02000100, 0x40000000, 00232 0x42080000, 0x02080100, 0x40080100, 0x00000100, 0x02000000, 0x42080000, 00233 0x42080100, 0x00080100, 0x42000000, 0x42080100, 0x02080000, 0x00000000, 00234 0x40080000, 0x42000000, 0x00080100, 0x02000100, 0x40000100, 0x00080000, 00235 0x00000000, 0x40080000, 0x02080100, 0x40000100 }; 00236 00237 const u32bit DES_SPBOX6[256] = { 00238 0x20000010, 0x20400000, 0x00004000, 0x20404010, 0x20400000, 0x00000010, 00239 0x20404010, 0x00400000, 0x20004000, 0x00404010, 0x00400000, 0x20000010, 00240 0x00400010, 0x20004000, 0x20000000, 0x00004010, 0x00000000, 0x00400010, 00241 0x20004010, 0x00004000, 0x00404000, 0x20004010, 0x00000010, 0x20400010, 00242 0x20400010, 0x00000000, 0x00404010, 0x20404000, 0x00004010, 0x00404000, 00243 0x20404000, 0x20000000, 0x20004000, 0x00000010, 0x20400010, 0x00404000, 00244 0x20404010, 0x00400000, 0x00004010, 0x20000010, 0x00400000, 0x20004000, 00245 0x20000000, 0x00004010, 0x20000010, 0x20404010, 0x00404000, 0x20400000, 00246 0x00404010, 0x20404000, 0x00000000, 0x20400010, 0x00000010, 0x00004000, 00247 0x20400000, 0x00404010, 0x00004000, 0x00400010, 0x20004010, 0x00000000, 00248 0x20404000, 0x20000000, 0x00400010, 0x20004010, 0x20000010, 0x20400000, 00249 0x00004000, 0x20404010, 0x20400000, 0x00000010, 0x20404010, 0x00400000, 00250 0x20004000, 0x00404010, 0x00400000, 0x20000010, 0x00400010, 0x20004000, 00251 0x20000000, 0x00004010, 0x00000000, 0x00400010, 0x20004010, 0x00004000, 00252 0x00404000, 0x20004010, 0x00000010, 0x20400010, 0x20400010, 0x00000000, 00253 0x00404010, 0x20404000, 0x00004010, 0x00404000, 0x20404000, 0x20000000, 00254 0x20004000, 0x00000010, 0x20400010, 0x00404000, 0x20404010, 0x00400000, 00255 0x00004010, 0x20000010, 0x00400000, 0x20004000, 0x20000000, 0x00004010, 00256 0x20000010, 0x20404010, 0x00404000, 0x20400000, 0x00404010, 0x20404000, 00257 0x00000000, 0x20400010, 0x00000010, 0x00004000, 0x20400000, 0x00404010, 00258 0x00004000, 0x00400010, 0x20004010, 0x00000000, 0x20404000, 0x20000000, 00259 0x00400010, 0x20004010, 0x20000010, 0x20400000, 0x00004000, 0x20404010, 00260 0x20400000, 0x00000010, 0x20404010, 0x00400000, 0x20004000, 0x00404010, 00261 0x00400000, 0x20000010, 0x00400010, 0x20004000, 0x20000000, 0x00004010, 00262 0x00000000, 0x00400010, 0x20004010, 0x00004000, 0x00404000, 0x20004010, 00263 0x00000010, 0x20400010, 0x20400010, 0x00000000, 0x00404010, 0x20404000, 00264 0x00004010, 0x00404000, 0x20404000, 0x20000000, 0x20004000, 0x00000010, 00265 0x20400010, 0x00404000, 0x20404010, 0x00400000, 0x00004010, 0x20000010, 00266 0x00400000, 0x20004000, 0x20000000, 0x00004010, 0x20000010, 0x20404010, 00267 0x00404000, 0x20400000, 0x00404010, 0x20404000, 0x00000000, 0x20400010, 00268 0x00000010, 0x00004000, 0x20400000, 0x00404010, 0x00004000, 0x00400010, 00269 0x20004010, 0x00000000, 0x20404000, 0x20000000, 0x00400010, 0x20004010, 00270 0x20000010, 0x20400000, 0x00004000, 0x20404010, 0x20400000, 0x00000010, 00271 0x20404010, 0x00400000, 0x20004000, 0x00404010, 0x00400000, 0x20000010, 00272 0x00400010, 0x20004000, 0x20000000, 0x00004010, 0x00000000, 0x00400010, 00273 0x20004010, 0x00004000, 0x00404000, 0x20004010, 0x00000010, 0x20400010, 00274 0x20400010, 0x00000000, 0x00404010, 0x20404000, 0x00004010, 0x00404000, 00275 0x20404000, 0x20000000, 0x20004000, 0x00000010, 0x20400010, 0x00404000, 00276 0x20404010, 0x00400000, 0x00004010, 0x20000010, 0x00400000, 0x20004000, 00277 0x20000000, 0x00004010, 0x20000010, 0x20404010, 0x00404000, 0x20400000, 00278 0x00404010, 0x20404000, 0x00000000, 0x20400010, 0x00000010, 0x00004000, 00279 0x20400000, 0x00404010, 0x00004000, 0x00400010, 0x20004010, 0x00000000, 00280 0x20404000, 0x20000000, 0x00400010, 0x20004010 }; 00281 00282 const u32bit DES_SPBOX7[256] = { 00283 0x00200000, 0x04200002, 0x04000802, 0x00000000, 0x00000800, 0x04000802, 00284 0x00200802, 0x04200800, 0x04200802, 0x00200000, 0x00000000, 0x04000002, 00285 0x00000002, 0x04000000, 0x04200002, 0x00000802, 0x04000800, 0x00200802, 00286 0x00200002, 0x04000800, 0x04000002, 0x04200000, 0x04200800, 0x00200002, 00287 0x04200000, 0x00000800, 0x00000802, 0x04200802, 0x00200800, 0x00000002, 00288 0x04000000, 0x00200800, 0x04000000, 0x00200800, 0x00200000, 0x04000802, 00289 0x04000802, 0x04200002, 0x04200002, 0x00000002, 0x00200002, 0x04000000, 00290 0x04000800, 0x00200000, 0x04200800, 0x00000802, 0x00200802, 0x04200800, 00291 0x00000802, 0x04000002, 0x04200802, 0x04200000, 0x00200800, 0x00000000, 00292 0x00000002, 0x04200802, 0x00000000, 0x00200802, 0x04200000, 0x00000800, 00293 0x04000002, 0x04000800, 0x00000800, 0x00200002, 0x00200000, 0x04200002, 00294 0x04000802, 0x00000000, 0x00000800, 0x04000802, 0x00200802, 0x04200800, 00295 0x04200802, 0x00200000, 0x00000000, 0x04000002, 0x00000002, 0x04000000, 00296 0x04200002, 0x00000802, 0x04000800, 0x00200802, 0x00200002, 0x04000800, 00297 0x04000002, 0x04200000, 0x04200800, 0x00200002, 0x04200000, 0x00000800, 00298 0x00000802, 0x04200802, 0x00200800, 0x00000002, 0x04000000, 0x00200800, 00299 0x04000000, 0x00200800, 0x00200000, 0x04000802, 0x04000802, 0x04200002, 00300 0x04200002, 0x00000002, 0x00200002, 0x04000000, 0x04000800, 0x00200000, 00301 0x04200800, 0x00000802, 0x00200802, 0x04200800, 0x00000802, 0x04000002, 00302 0x04200802, 0x04200000, 0x00200800, 0x00000000, 0x00000002, 0x04200802, 00303 0x00000000, 0x00200802, 0x04200000, 0x00000800, 0x04000002, 0x04000800, 00304 0x00000800, 0x00200002, 0x00200000, 0x04200002, 0x04000802, 0x00000000, 00305 0x00000800, 0x04000802, 0x00200802, 0x04200800, 0x04200802, 0x00200000, 00306 0x00000000, 0x04000002, 0x00000002, 0x04000000, 0x04200002, 0x00000802, 00307 0x04000800, 0x00200802, 0x00200002, 0x04000800, 0x04000002, 0x04200000, 00308 0x04200800, 0x00200002, 0x04200000, 0x00000800, 0x00000802, 0x04200802, 00309 0x00200800, 0x00000002, 0x04000000, 0x00200800, 0x04000000, 0x00200800, 00310 0x00200000, 0x04000802, 0x04000802, 0x04200002, 0x04200002, 0x00000002, 00311 0x00200002, 0x04000000, 0x04000800, 0x00200000, 0x04200800, 0x00000802, 00312 0x00200802, 0x04200800, 0x00000802, 0x04000002, 0x04200802, 0x04200000, 00313 0x00200800, 0x00000000, 0x00000002, 0x04200802, 0x00000000, 0x00200802, 00314 0x04200000, 0x00000800, 0x04000002, 0x04000800, 0x00000800, 0x00200002, 00315 0x00200000, 0x04200002, 0x04000802, 0x00000000, 0x00000800, 0x04000802, 00316 0x00200802, 0x04200800, 0x04200802, 0x00200000, 0x00000000, 0x04000002, 00317 0x00000002, 0x04000000, 0x04200002, 0x00000802, 0x04000800, 0x00200802, 00318 0x00200002, 0x04000800, 0x04000002, 0x04200000, 0x04200800, 0x00200002, 00319 0x04200000, 0x00000800, 0x00000802, 0x04200802, 0x00200800, 0x00000002, 00320 0x04000000, 0x00200800, 0x04000000, 0x00200800, 0x00200000, 0x04000802, 00321 0x04000802, 0x04200002, 0x04200002, 0x00000002, 0x00200002, 0x04000000, 00322 0x04000800, 0x00200000, 0x04200800, 0x00000802, 0x00200802, 0x04200800, 00323 0x00000802, 0x04000002, 0x04200802, 0x04200000, 0x00200800, 0x00000000, 00324 0x00000002, 0x04200802, 0x00000000, 0x00200802, 0x04200000, 0x00000800, 00325 0x04000002, 0x04000800, 0x00000800, 0x00200002 }; 00326 00327 const u32bit DES_SPBOX8[256] = { 00328 0x10001040, 0x00001000, 0x00040000, 0x10041040, 0x10000000, 0x10001040, 00329 0x00000040, 0x10000000, 0x00040040, 0x10040000, 0x10041040, 0x00041000, 00330 0x10041000, 0x00041040, 0x00001000, 0x00000040, 0x10040000, 0x10000040, 00331 0x10001000, 0x00001040, 0x00041000, 0x00040040, 0x10040040, 0x10041000, 00332 0x00001040, 0x00000000, 0x00000000, 0x10040040, 0x10000040, 0x10001000, 00333 0x00041040, 0x00040000, 0x00041040, 0x00040000, 0x10041000, 0x00001000, 00334 0x00000040, 0x10040040, 0x00001000, 0x00041040, 0x10001000, 0x00000040, 00335 0x10000040, 0x10040000, 0x10040040, 0x10000000, 0x00040000, 0x10001040, 00336 0x00000000, 0x10041040, 0x00040040, 0x10000040, 0x10040000, 0x10001000, 00337 0x10001040, 0x00000000, 0x10041040, 0x00041000, 0x00041000, 0x00001040, 00338 0x00001040, 0x00040040, 0x10000000, 0x10041000, 0x10001040, 0x00001000, 00339 0x00040000, 0x10041040, 0x10000000, 0x10001040, 0x00000040, 0x10000000, 00340 0x00040040, 0x10040000, 0x10041040, 0x00041000, 0x10041000, 0x00041040, 00341 0x00001000, 0x00000040, 0x10040000, 0x10000040, 0x10001000, 0x00001040, 00342 0x00041000, 0x00040040, 0x10040040, 0x10041000, 0x00001040, 0x00000000, 00343 0x00000000, 0x10040040, 0x10000040, 0x10001000, 0x00041040, 0x00040000, 00344 0x00041040, 0x00040000, 0x10041000, 0x00001000, 0x00000040, 0x10040040, 00345 0x00001000, 0x00041040, 0x10001000, 0x00000040, 0x10000040, 0x10040000, 00346 0x10040040, 0x10000000, 0x00040000, 0x10001040, 0x00000000, 0x10041040, 00347 0x00040040, 0x10000040, 0x10040000, 0x10001000, 0x10001040, 0x00000000, 00348 0x10041040, 0x00041000, 0x00041000, 0x00001040, 0x00001040, 0x00040040, 00349 0x10000000, 0x10041000, 0x10001040, 0x00001000, 0x00040000, 0x10041040, 00350 0x10000000, 0x10001040, 0x00000040, 0x10000000, 0x00040040, 0x10040000, 00351 0x10041040, 0x00041000, 0x10041000, 0x00041040, 0x00001000, 0x00000040, 00352 0x10040000, 0x10000040, 0x10001000, 0x00001040, 0x00041000, 0x00040040, 00353 0x10040040, 0x10041000, 0x00001040, 0x00000000, 0x00000000, 0x10040040, 00354 0x10000040, 0x10001000, 0x00041040, 0x00040000, 0x00041040, 0x00040000, 00355 0x10041000, 0x00001000, 0x00000040, 0x10040040, 0x00001000, 0x00041040, 00356 0x10001000, 0x00000040, 0x10000040, 0x10040000, 0x10040040, 0x10000000, 00357 0x00040000, 0x10001040, 0x00000000, 0x10041040, 0x00040040, 0x10000040, 00358 0x10040000, 0x10001000, 0x10001040, 0x00000000, 0x10041040, 0x00041000, 00359 0x00041000, 0x00001040, 0x00001040, 0x00040040, 0x10000000, 0x10041000, 00360 0x10001040, 0x00001000, 0x00040000, 0x10041040, 0x10000000, 0x10001040, 00361 0x00000040, 0x10000000, 0x00040040, 0x10040000, 0x10041040, 0x00041000, 00362 0x10041000, 0x00041040, 0x00001000, 0x00000040, 0x10040000, 0x10000040, 00363 0x10001000, 0x00001040, 0x00041000, 0x00040040, 0x10040040, 0x10041000, 00364 0x00001040, 0x00000000, 0x00000000, 0x10040040, 0x10000040, 0x10001000, 00365 0x00041040, 0x00040000, 0x00041040, 0x00040000, 0x10041000, 0x00001000, 00366 0x00000040, 0x10040040, 0x00001000, 0x00041040, 0x10001000, 0x00000040, 00367 0x10000040, 0x10040000, 0x10040040, 0x10000000, 0x00040000, 0x10001040, 00368 0x00000000, 0x10041040, 0x00040040, 0x10000040, 0x10040000, 0x10001000, 00369 0x10001040, 0x00000000, 0x10041040, 0x00041000, 0x00041000, 0x00001040, 00370 0x00001040, 0x00040040, 0x10000000, 0x10041000 }; 00371 00372 const u64bit DES_IPTAB1[256] = { 00373 0x0000000000000000, 0x0000000200000000, 0x0000000000000002, 0x0000000200000002, 00374 0x0000020000000000, 0x0000020200000000, 0x0000020000000002, 0x0000020200000002, 00375 0x0000000000000200, 0x0000000200000200, 0x0000000000000202, 0x0000000200000202, 00376 0x0000020000000200, 0x0000020200000200, 0x0000020000000202, 0x0000020200000202, 00377 0x0002000000000000, 0x0002000200000000, 0x0002000000000002, 0x0002000200000002, 00378 0x0002020000000000, 0x0002020200000000, 0x0002020000000002, 0x0002020200000002, 00379 0x0002000000000200, 0x0002000200000200, 0x0002000000000202, 0x0002000200000202, 00380 0x0002020000000200, 0x0002020200000200, 0x0002020000000202, 0x0002020200000202, 00381 0x0000000000020000, 0x0000000200020000, 0x0000000000020002, 0x0000000200020002, 00382 0x0000020000020000, 0x0000020200020000, 0x0000020000020002, 0x0000020200020002, 00383 0x0000000000020200, 0x0000000200020200, 0x0000000000020202, 0x0000000200020202, 00384 0x0000020000020200, 0x0000020200020200, 0x0000020000020202, 0x0000020200020202, 00385 0x0002000000020000, 0x0002000200020000, 0x0002000000020002, 0x0002000200020002, 00386 0x0002020000020000, 0x0002020200020000, 0x0002020000020002, 0x0002020200020002, 00387 0x0002000000020200, 0x0002000200020200, 0x0002000000020202, 0x0002000200020202, 00388 0x0002020000020200, 0x0002020200020200, 0x0002020000020202, 0x0002020200020202, 00389 0x0200000000000000, 0x0200000200000000, 0x0200000000000002, 0x0200000200000002, 00390 0x0200020000000000, 0x0200020200000000, 0x0200020000000002, 0x0200020200000002, 00391 0x0200000000000200, 0x0200000200000200, 0x0200000000000202, 0x0200000200000202, 00392 0x0200020000000200, 0x0200020200000200, 0x0200020000000202, 0x0200020200000202, 00393 0x0202000000000000, 0x0202000200000000, 0x0202000000000002, 0x0202000200000002, 00394 0x0202020000000000, 0x0202020200000000, 0x0202020000000002, 0x0202020200000002, 00395 0x0202000000000200, 0x0202000200000200, 0x0202000000000202, 0x0202000200000202, 00396 0x0202020000000200, 0x0202020200000200, 0x0202020000000202, 0x0202020200000202, 00397 0x0200000000020000, 0x0200000200020000, 0x0200000000020002, 0x0200000200020002, 00398 0x0200020000020000, 0x0200020200020000, 0x0200020000020002, 0x0200020200020002, 00399 0x0200000000020200, 0x0200000200020200, 0x0200000000020202, 0x0200000200020202, 00400 0x0200020000020200, 0x0200020200020200, 0x0200020000020202, 0x0200020200020202, 00401 0x0202000000020000, 0x0202000200020000, 0x0202000000020002, 0x0202000200020002, 00402 0x0202020000020000, 0x0202020200020000, 0x0202020000020002, 0x0202020200020002, 00403 0x0202000000020200, 0x0202000200020200, 0x0202000000020202, 0x0202000200020202, 00404 0x0202020000020200, 0x0202020200020200, 0x0202020000020202, 0x0202020200020202, 00405 0x0000000002000000, 0x0000000202000000, 0x0000000002000002, 0x0000000202000002, 00406 0x0000020002000000, 0x0000020202000000, 0x0000020002000002, 0x0000020202000002, 00407 0x0000000002000200, 0x0000000202000200, 0x0000000002000202, 0x0000000202000202, 00408 0x0000020002000200, 0x0000020202000200, 0x0000020002000202, 0x0000020202000202, 00409 0x0002000002000000, 0x0002000202000000, 0x0002000002000002, 0x0002000202000002, 00410 0x0002020002000000, 0x0002020202000000, 0x0002020002000002, 0x0002020202000002, 00411 0x0002000002000200, 0x0002000202000200, 0x0002000002000202, 0x0002000202000202, 00412 0x0002020002000200, 0x0002020202000200, 0x0002020002000202, 0x0002020202000202, 00413 0x0000000002020000, 0x0000000202020000, 0x0000000002020002, 0x0000000202020002, 00414 0x0000020002020000, 0x0000020202020000, 0x0000020002020002, 0x0000020202020002, 00415 0x0000000002020200, 0x0000000202020200, 0x0000000002020202, 0x0000000202020202, 00416 0x0000020002020200, 0x0000020202020200, 0x0000020002020202, 0x0000020202020202, 00417 0x0002000002020000, 0x0002000202020000, 0x0002000002020002, 0x0002000202020002, 00418 0x0002020002020000, 0x0002020202020000, 0x0002020002020002, 0x0002020202020002, 00419 0x0002000002020200, 0x0002000202020200, 0x0002000002020202, 0x0002000202020202, 00420 0x0002020002020200, 0x0002020202020200, 0x0002020002020202, 0x0002020202020202, 00421 0x0200000002000000, 0x0200000202000000, 0x0200000002000002, 0x0200000202000002, 00422 0x0200020002000000, 0x0200020202000000, 0x0200020002000002, 0x0200020202000002, 00423 0x0200000002000200, 0x0200000202000200, 0x0200000002000202, 0x0200000202000202, 00424 0x0200020002000200, 0x0200020202000200, 0x0200020002000202, 0x0200020202000202, 00425 0x0202000002000000, 0x0202000202000000, 0x0202000002000002, 0x0202000202000002, 00426 0x0202020002000000, 0x0202020202000000, 0x0202020002000002, 0x0202020202000002, 00427 0x0202000002000200, 0x0202000202000200, 0x0202000002000202, 0x0202000202000202, 00428 0x0202020002000200, 0x0202020202000200, 0x0202020002000202, 0x0202020202000202, 00429 0x0200000002020000, 0x0200000202020000, 0x0200000002020002, 0x0200000202020002, 00430 0x0200020002020000, 0x0200020202020000, 0x0200020002020002, 0x0200020202020002, 00431 0x0200000002020200, 0x0200000202020200, 0x0200000002020202, 0x0200000202020202, 00432 0x0200020002020200, 0x0200020202020200, 0x0200020002020202, 0x0200020202020202, 00433 0x0202000002020000, 0x0202000202020000, 0x0202000002020002, 0x0202000202020002, 00434 0x0202020002020000, 0x0202020202020000, 0x0202020002020002, 0x0202020202020002, 00435 0x0202000002020200, 0x0202000202020200, 0x0202000002020202, 0x0202000202020202, 00436 0x0202020002020200, 0x0202020202020200, 0x0202020002020202, 0x0202020202020202 }; 00437 00438 const u64bit DES_IPTAB2[256] = { 00439 0x0000000000000000, 0x0000010000000000, 0x0000000000000100, 0x0000010000000100, 00440 0x0001000000000000, 0x0001010000000000, 0x0001000000000100, 0x0001010000000100, 00441 0x0000000000010000, 0x0000010000010000, 0x0000000000010100, 0x0000010000010100, 00442 0x0001000000010000, 0x0001010000010000, 0x0001000000010100, 0x0001010000010100, 00443 0x0100000000000000, 0x0100010000000000, 0x0100000000000100, 0x0100010000000100, 00444 0x0101000000000000, 0x0101010000000000, 0x0101000000000100, 0x0101010000000100, 00445 0x0100000000010000, 0x0100010000010000, 0x0100000000010100, 0x0100010000010100, 00446 0x0101000000010000, 0x0101010000010000, 0x0101000000010100, 0x0101010000010100, 00447 0x0000000001000000, 0x0000010001000000, 0x0000000001000100, 0x0000010001000100, 00448 0x0001000001000000, 0x0001010001000000, 0x0001000001000100, 0x0001010001000100, 00449 0x0000000001010000, 0x0000010001010000, 0x0000000001010100, 0x0000010001010100, 00450 0x0001000001010000, 0x0001010001010000, 0x0001000001010100, 0x0001010001010100, 00451 0x0100000001000000, 0x0100010001000000, 0x0100000001000100, 0x0100010001000100, 00452 0x0101000001000000, 0x0101010001000000, 0x0101000001000100, 0x0101010001000100, 00453 0x0100000001010000, 0x0100010001010000, 0x0100000001010100, 0x0100010001010100, 00454 0x0101000001010000, 0x0101010001010000, 0x0101000001010100, 0x0101010001010100, 00455 0x0000000100000000, 0x0000010100000000, 0x0000000100000100, 0x0000010100000100, 00456 0x0001000100000000, 0x0001010100000000, 0x0001000100000100, 0x0001010100000100, 00457 0x0000000100010000, 0x0000010100010000, 0x0000000100010100, 0x0000010100010100, 00458 0x0001000100010000, 0x0001010100010000, 0x0001000100010100, 0x0001010100010100, 00459 0x0100000100000000, 0x0100010100000000, 0x0100000100000100, 0x0100010100000100, 00460 0x0101000100000000, 0x0101010100000000, 0x0101000100000100, 0x0101010100000100, 00461 0x0100000100010000, 0x0100010100010000, 0x0100000100010100, 0x0100010100010100, 00462 0x0101000100010000, 0x0101010100010000, 0x0101000100010100, 0x0101010100010100, 00463 0x0000000101000000, 0x0000010101000000, 0x0000000101000100, 0x0000010101000100, 00464 0x0001000101000000, 0x0001010101000000, 0x0001000101000100, 0x0001010101000100, 00465 0x0000000101010000, 0x0000010101010000, 0x0000000101010100, 0x0000010101010100, 00466 0x0001000101010000, 0x0001010101010000, 0x0001000101010100, 0x0001010101010100, 00467 0x0100000101000000, 0x0100010101000000, 0x0100000101000100, 0x0100010101000100, 00468 0x0101000101000000, 0x0101010101000000, 0x0101000101000100, 0x0101010101000100, 00469 0x0100000101010000, 0x0100010101010000, 0x0100000101010100, 0x0100010101010100, 00470 0x0101000101010000, 0x0101010101010000, 0x0101000101010100, 0x0101010101010100, 00471 0x0000000000000001, 0x0000010000000001, 0x0000000000000101, 0x0000010000000101, 00472 0x0001000000000001, 0x0001010000000001, 0x0001000000000101, 0x0001010000000101, 00473 0x0000000000010001, 0x0000010000010001, 0x0000000000010101, 0x0000010000010101, 00474 0x0001000000010001, 0x0001010000010001, 0x0001000000010101, 0x0001010000010101, 00475 0x0100000000000001, 0x0100010000000001, 0x0100000000000101, 0x0100010000000101, 00476 0x0101000000000001, 0x0101010000000001, 0x0101000000000101, 0x0101010000000101, 00477 0x0100000000010001, 0x0100010000010001, 0x0100000000010101, 0x0100010000010101, 00478 0x0101000000010001, 0x0101010000010001, 0x0101000000010101, 0x0101010000010101, 00479 0x0000000001000001, 0x0000010001000001, 0x0000000001000101, 0x0000010001000101, 00480 0x0001000001000001, 0x0001010001000001, 0x0001000001000101, 0x0001010001000101, 00481 0x0000000001010001, 0x0000010001010001, 0x0000000001010101, 0x0000010001010101, 00482 0x0001000001010001, 0x0001010001010001, 0x0001000001010101, 0x0001010001010101, 00483 0x0100000001000001, 0x0100010001000001, 0x0100000001000101, 0x0100010001000101, 00484 0x0101000001000001, 0x0101010001000001, 0x0101000001000101, 0x0101010001000101, 00485 0x0100000001010001, 0x0100010001010001, 0x0100000001010101, 0x0100010001010101, 00486 0x0101000001010001, 0x0101010001010001, 0x0101000001010101, 0x0101010001010101, 00487 0x0000000100000001, 0x0000010100000001, 0x0000000100000101, 0x0000010100000101, 00488 0x0001000100000001, 0x0001010100000001, 0x0001000100000101, 0x0001010100000101, 00489 0x0000000100010001, 0x0000010100010001, 0x0000000100010101, 0x0000010100010101, 00490 0x0001000100010001, 0x0001010100010001, 0x0001000100010101, 0x0001010100010101, 00491 0x0100000100000001, 0x0100010100000001, 0x0100000100000101, 0x0100010100000101, 00492 0x0101000100000001, 0x0101010100000001, 0x0101000100000101, 0x0101010100000101, 00493 0x0100000100010001, 0x0100010100010001, 0x0100000100010101, 0x0100010100010101, 00494 0x0101000100010001, 0x0101010100010001, 0x0101000100010101, 0x0101010100010101, 00495 0x0000000101000001, 0x0000010101000001, 0x0000000101000101, 0x0000010101000101, 00496 0x0001000101000001, 0x0001010101000001, 0x0001000101000101, 0x0001010101000101, 00497 0x0000000101010001, 0x0000010101010001, 0x0000000101010101, 0x0000010101010101, 00498 0x0001000101010001, 0x0001010101010001, 0x0001000101010101, 0x0001010101010101, 00499 0x0100000101000001, 0x0100010101000001, 0x0100000101000101, 0x0100010101000101, 00500 0x0101000101000001, 0x0101010101000001, 0x0101000101000101, 0x0101010101000101, 00501 0x0100000101010001, 0x0100010101010001, 0x0100000101010101, 0x0100010101010101, 00502 0x0101000101010001, 0x0101010101010001, 0x0101000101010101, 0x0101010101010101 }; 00503 00504 const u64bit DES_FPTAB1[256] = { 00505 0x0000000000000000, 0x0000000100000000, 0x0000000004000000, 0x0000000104000000, 00506 0x0000000000040000, 0x0000000100040000, 0x0000000004040000, 0x0000000104040000, 00507 0x0000000000000400, 0x0000000100000400, 0x0000000004000400, 0x0000000104000400, 00508 0x0000000000040400, 0x0000000100040400, 0x0000000004040400, 0x0000000104040400, 00509 0x0000000000000004, 0x0000000100000004, 0x0000000004000004, 0x0000000104000004, 00510 0x0000000000040004, 0x0000000100040004, 0x0000000004040004, 0x0000000104040004, 00511 0x0000000000000404, 0x0000000100000404, 0x0000000004000404, 0x0000000104000404, 00512 0x0000000000040404, 0x0000000100040404, 0x0000000004040404, 0x0000000104040404, 00513 0x0400000000000000, 0x0400000100000000, 0x0400000004000000, 0x0400000104000000, 00514 0x0400000000040000, 0x0400000100040000, 0x0400000004040000, 0x0400000104040000, 00515 0x0400000000000400, 0x0400000100000400, 0x0400000004000400, 0x0400000104000400, 00516 0x0400000000040400, 0x0400000100040400, 0x0400000004040400, 0x0400000104040400, 00517 0x0400000000000004, 0x0400000100000004, 0x0400000004000004, 0x0400000104000004, 00518 0x0400000000040004, 0x0400000100040004, 0x0400000004040004, 0x0400000104040004, 00519 0x0400000000000404, 0x0400000100000404, 0x0400000004000404, 0x0400000104000404, 00520 0x0400000000040404, 0x0400000100040404, 0x0400000004040404, 0x0400000104040404, 00521 0x0004000000000000, 0x0004000100000000, 0x0004000004000000, 0x0004000104000000, 00522 0x0004000000040000, 0x0004000100040000, 0x0004000004040000, 0x0004000104040000, 00523 0x0004000000000400, 0x0004000100000400, 0x0004000004000400, 0x0004000104000400, 00524 0x0004000000040400, 0x0004000100040400, 0x0004000004040400, 0x0004000104040400, 00525 0x0004000000000004, 0x0004000100000004, 0x0004000004000004, 0x0004000104000004, 00526 0x0004000000040004, 0x0004000100040004, 0x0004000004040004, 0x0004000104040004, 00527 0x0004000000000404, 0x0004000100000404, 0x0004000004000404, 0x0004000104000404, 00528 0x0004000000040404, 0x0004000100040404, 0x0004000004040404, 0x0004000104040404, 00529 0x0404000000000000, 0x0404000100000000, 0x0404000004000000, 0x0404000104000000, 00530 0x0404000000040000, 0x0404000100040000, 0x0404000004040000, 0x0404000104040000, 00531 0x0404000000000400, 0x0404000100000400, 0x0404000004000400, 0x0404000104000400, 00532 0x0404000000040400, 0x0404000100040400, 0x0404000004040400, 0x0404000104040400, 00533 0x0404000000000004, 0x0404000100000004, 0x0404000004000004, 0x0404000104000004, 00534 0x0404000000040004, 0x0404000100040004, 0x0404000004040004, 0x0404000104040004, 00535 0x0404000000000404, 0x0404000100000404, 0x0404000004000404, 0x0404000104000404, 00536 0x0404000000040404, 0x0404000100040404, 0x0404000004040404, 0x0404000104040404, 00537 0x0000040000000000, 0x0000040100000000, 0x0000040004000000, 0x0000040104000000, 00538 0x0000040000040000, 0x0000040100040000, 0x0000040004040000, 0x0000040104040000, 00539 0x0000040000000400, 0x0000040100000400, 0x0000040004000400, 0x0000040104000400, 00540 0x0000040000040400, 0x0000040100040400, 0x0000040004040400, 0x0000040104040400, 00541 0x0000040000000004, 0x0000040100000004, 0x0000040004000004, 0x0000040104000004, 00542 0x0000040000040004, 0x0000040100040004, 0x0000040004040004, 0x0000040104040004, 00543 0x0000040000000404, 0x0000040100000404, 0x0000040004000404, 0x0000040104000404, 00544 0x0000040000040404, 0x0000040100040404, 0x0000040004040404, 0x0000040104040404, 00545 0x0400040000000000, 0x0400040100000000, 0x0400040004000000, 0x0400040104000000, 00546 0x0400040000040000, 0x0400040100040000, 0x0400040004040000, 0x0400040104040000, 00547 0x0400040000000400, 0x0400040100000400, 0x0400040004000400, 0x0400040104000400, 00548 0x0400040000040400, 0x0400040100040400, 0x0400040004040400, 0x0400040104040400, 00549 0x0400040000000004, 0x0400040100000004, 0x0400040004000004, 0x0400040104000004, 00550 0x0400040000040004, 0x0400040100040004, 0x0400040004040004, 0x0400040104040004, 00551 0x0400040000000404, 0x0400040100000404, 0x0400040004000404, 0x0400040104000404, 00552 0x0400040000040404, 0x0400040100040404, 0x0400040004040404, 0x0400040104040404, 00553 0x0004040000000000, 0x0004040100000000, 0x0004040004000000, 0x0004040104000000, 00554 0x0004040000040000, 0x0004040100040000, 0x0004040004040000, 0x0004040104040000, 00555 0x0004040000000400, 0x0004040100000400, 0x0004040004000400, 0x0004040104000400, 00556 0x0004040000040400, 0x0004040100040400, 0x0004040004040400, 0x0004040104040400, 00557 0x0004040000000004, 0x0004040100000004, 0x0004040004000004, 0x0004040104000004, 00558 0x0004040000040004, 0x0004040100040004, 0x0004040004040004, 0x0004040104040004, 00559 0x0004040000000404, 0x0004040100000404, 0x0004040004000404, 0x0004040104000404, 00560 0x0004040000040404, 0x0004040100040404, 0x0004040004040404, 0x0004040104040404, 00561 0x0404040000000000, 0x0404040100000000, 0x0404040004000000, 0x0404040104000000, 00562 0x0404040000040000, 0x0404040100040000, 0x0404040004040000, 0x0404040104040000, 00563 0x0404040000000400, 0x0404040100000400, 0x0404040004000400, 0x0404040104000400, 00564 0x0404040000040400, 0x0404040100040400, 0x0404040004040400, 0x0404040104040400, 00565 0x0404040000000004, 0x0404040100000004, 0x0404040004000004, 0x0404040104000004, 00566 0x0404040000040004, 0x0404040100040004, 0x0404040004040004, 0x0404040104040004, 00567 0x0404040000000404, 0x0404040100000404, 0x0404040004000404, 0x0404040104000404, 00568 0x0404040000040404, 0x0404040100040404, 0x0404040004040404, 0x0404040104040404 }; 00569 00570 const u64bit DES_FPTAB2[256] = { 00571 0x0000000000000000, 0x0000004000000000, 0x0000000001000000, 0x0000004001000000, 00572 0x0000000000010000, 0x0000004000010000, 0x0000000001010000, 0x0000004001010000, 00573 0x0000000000000100, 0x0000004000000100, 0x0000000001000100, 0x0000004001000100, 00574 0x0000000000010100, 0x0000004000010100, 0x0000000001010100, 0x0000004001010100, 00575 0x0000000000000001, 0x0000004000000001, 0x0000000001000001, 0x0000004001000001, 00576 0x0000000000010001, 0x0000004000010001, 0x0000000001010001, 0x0000004001010001, 00577 0x0000000000000101, 0x0000004000000101, 0x0000000001000101, 0x0000004001000101, 00578 0x0000000000010101, 0x0000004000010101, 0x0000000001010101, 0x0000004001010101, 00579 0x0100000000000000, 0x0100004000000000, 0x0100000001000000, 0x0100004001000000, 00580 0x0100000000010000, 0x0100004000010000, 0x0100000001010000, 0x0100004001010000, 00581 0x0100000000000100, 0x0100004000000100, 0x0100000001000100, 0x0100004001000100, 00582 0x0100000000010100, 0x0100004000010100, 0x0100000001010100, 0x0100004001010100, 00583 0x0100000000000001, 0x0100004000000001, 0x0100000001000001, 0x0100004001000001, 00584 0x0100000000010001, 0x0100004000010001, 0x0100000001010001, 0x0100004001010001, 00585 0x0100000000000101, 0x0100004000000101, 0x0100000001000101, 0x0100004001000101, 00586 0x0100000000010101, 0x0100004000010101, 0x0100000001010101, 0x0100004001010101, 00587 0x0001000000000000, 0x0001004000000000, 0x0001000001000000, 0x0001004001000000, 00588 0x0001000000010000, 0x0001004000010000, 0x0001000001010000, 0x0001004001010000, 00589 0x0001000000000100, 0x0001004000000100, 0x0001000001000100, 0x0001004001000100, 00590 0x0001000000010100, 0x0001004000010100, 0x0001000001010100, 0x0001004001010100, 00591 0x0001000000000001, 0x0001004000000001, 0x0001000001000001, 0x0001004001000001, 00592 0x0001000000010001, 0x0001004000010001, 0x0001000001010001, 0x0001004001010001, 00593 0x0001000000000101, 0x0001004000000101, 0x0001000001000101, 0x0001004001000101, 00594 0x0001000000010101, 0x0001004000010101, 0x0001000001010101, 0x0001004001010101, 00595 0x0101000000000000, 0x0101004000000000, 0x0101000001000000, 0x0101004001000000, 00596 0x0101000000010000, 0x0101004000010000, 0x0101000001010000, 0x0101004001010000, 00597 0x0101000000000100, 0x0101004000000100, 0x0101000001000100, 0x0101004001000100, 00598 0x0101000000010100, 0x0101004000010100, 0x0101000001010100, 0x0101004001010100, 00599 0x0101000000000001, 0x0101004000000001, 0x0101000001000001, 0x0101004001000001, 00600 0x0101000000010001, 0x0101004000010001, 0x0101000001010001, 0x0101004001010001, 00601 0x0101000000000101, 0x0101004000000101, 0x0101000001000101, 0x0101004001000101, 00602 0x0101000000010101, 0x0101004000010101, 0x0101000001010101, 0x0101004001010101, 00603 0x0000010000000000, 0x0000014000000000, 0x0000010001000000, 0x0000014001000000, 00604 0x0000010000010000, 0x0000014000010000, 0x0000010001010000, 0x0000014001010000, 00605 0x0000010000000100, 0x0000014000000100, 0x0000010001000100, 0x0000014001000100, 00606 0x0000010000010100, 0x0000014000010100, 0x0000010001010100, 0x0000014001010100, 00607 0x0000010000000001, 0x0000014000000001, 0x0000010001000001, 0x0000014001000001, 00608 0x0000010000010001, 0x0000014000010001, 0x0000010001010001, 0x0000014001010001, 00609 0x0000010000000101, 0x0000014000000101, 0x0000010001000101, 0x0000014001000101, 00610 0x0000010000010101, 0x0000014000010101, 0x0000010001010101, 0x0000014001010101, 00611 0x0100010000000000, 0x0100014000000000, 0x0100010001000000, 0x0100014001000000, 00612 0x0100010000010000, 0x0100014000010000, 0x0100010001010000, 0x0100014001010000, 00613 0x0100010000000100, 0x0100014000000100, 0x0100010001000100, 0x0100014001000100, 00614 0x0100010000010100, 0x0100014000010100, 0x0100010001010100, 0x0100014001010100, 00615 0x0100010000000001, 0x0100014000000001, 0x0100010001000001, 0x0100014001000001, 00616 0x0100010000010001, 0x0100014000010001, 0x0100010001010001, 0x0100014001010001, 00617 0x0100010000000101, 0x0100014000000101, 0x0100010001000101, 0x0100014001000101, 00618 0x0100010000010101, 0x0100014000010101, 0x0100010001010101, 0x0100014001010101, 00619 0x0001010000000000, 0x0001014000000000, 0x0001010001000000, 0x0001014001000000, 00620 0x0001010000010000, 0x0001014000010000, 0x0001010001010000, 0x0001014001010000, 00621 0x0001010000000100, 0x0001014000000100, 0x0001010001000100, 0x0001014001000100, 00622 0x0001010000010100, 0x0001014000010100, 0x0001010001010100, 0x0001014001010100, 00623 0x0001010000000001, 0x0001014000000001, 0x0001010001000001, 0x0001014001000001, 00624 0x0001010000010001, 0x0001014000010001, 0x0001010001010001, 0x0001014001010001, 00625 0x0001010000000101, 0x0001014000000101, 0x0001010001000101, 0x0001014001000101, 00626 0x0001010000010101, 0x0001014000010101, 0x0001010001010101, 0x0001014001010101, 00627 0x0101010000000000, 0x0101014000000000, 0x0101010001000000, 0x0101014001000000, 00628 0x0101010000010000, 0x0101014000010000, 0x0101010001010000, 0x0101014001010000, 00629 0x0101010000000100, 0x0101014000000100, 0x0101010001000100, 0x0101014001000100, 00630 0x0101010000010100, 0x0101014000010100, 0x0101010001010100, 0x0101014001010100, 00631 0x0101010000000001, 0x0101014000000001, 0x0101010001000001, 0x0101014001000001, 00632 0x0101010000010001, 0x0101014000010001, 0x0101010001010001, 0x0101014001010001, 00633 0x0101010000000101, 0x0101014000000101, 0x0101010001000101, 0x0101014001000101, 00634 0x0101010000010101, 0x0101014000010101, 0x0101010001010101, 0x0101014001010101 }; 00635 00636 }