Botan  1.11.15
src/lib/block/des/des_tab.cpp
Go to the documentation of this file.
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 }