Основы криптографии
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
>
// The following DES code has been based and modified from "ALLENDES"
// by Steve Allen. 32 bit modifications, and MS visual C++ wrappers and
// implementations by Aman for inclusion into the "Scramdisk" system for
// MS Windows standard, and 3 key triple des, implemented. CBC feedback
// implemented by the caller. (outer CBC)
#define DES_ENCRYPT 1
#define DES_DECRYPT 0
//#define DEVICEDRIVER // uncomment for driver code......
struct deskey// scramdisk key storage (in ram)
{char e[16*8];char d[16*8]; // key 2only used in EDE 3des mode......char e2[16*8];// key 3 only used in EDE 3des mode
}deskey;
#ifdef DEVICEDRIVER
#pragma VxD_LOCKED_DATA_SEG
#endif
sdisk_des_keys[8];// 4 scramdisk disks
#if DEVICEDRIVER
#pragma VxD_LOCKED_DATA_SEG
#endif
long p1[]=
{
0x00000000, 0x00000000,
0x01000000, 0x00000000,
x00000000, 0x01000000,
x01000000, 0x01000000,
x00010000, 0x00000000,
x01010000, 0x00000000,
x00010000, 0x01000000,
x01010000, 0x01000000,
x00000000, 0x00010000,
x01000000, 0x00010000,
x00000000, 0x01010000,
x01000000, 0x01010000,
x00010000, 0x00010000,
x01010000, 0x00010000,
x00010000, 0x01010000,
x01010000, 0x01010000,
x00000000, 0x00000000,
x00000100, 0x00000000,
x00000000, 0x00000100,
x00000100, 0x00000100,
x00000001, 0x00000000,
x00000101, 0x00000000,
x00000001, 0x00000100,
x00000101, 0x00000100,
x00000000, 0x00000001,
x00000100, 0x00000001,
x00000000, 0x00000101,
x00000100, 0x00000101,
x00000001, 0x00000001,
x00000101, 0x00000001,
x00000001, 0x00000101,
x00000101, 0x00000101,
x00000000, 0x00000000,
x02000000, 0x00000000,
x00000000, 0x02000000,
x02000000, 0x02000000,
x00020000, 0x00000000,
x02020000, 0x00000000,
x00020000, 0x02000000,
x02020000, 0x02000000,
x00000000, 0x00020000,
x02000000, 0x00020000,
x00000000, 0x02020000,
x02000000, 0x02020000,
x00020000, 0x00020000,
x02020000, 0x00020000,
x00020000, 0x02020000,
x02020000, 0x02020000,
x00000000, 0x00000000,
x00000200, 0x00000000,
x00000000, 0x00000200,
x00000200, 0x00000200,
x00000002, 0x00000000,
x00000202, 0x00000000,
x00000002, 0x00000200,
x00000202, 0x00000200,
x00000000, 0x00000002,
x00000200, 0x00000002,
x00000000, 0x00000202,
x00000200, 0x00000202,
x00000002, 0x00000002,
x00000202, 0x00000002,
x00000002, 0x00000202,
x00000202, 0x00000202,
x00000000, 0x00000000,
x04000000, 0x00000000,
x00000000, 0x04000000,
x04000000, 0x04000000,
x00040000, 0x00000000,
x04040000, 0x00000000,
x00040000, 0x04000000,
x04040000, 0x04000000,
x00000000, 0x00040000,
x04000000, 0x00040000,
x00000000, 0x04040000,
x04000000, 0x04040000,
x00040000, 0x00040000,
x04040000, 0x00040000,
x00040000, 0x04040000,
x04040000, 0x04040000,
x00000000, 0x00000000,
x00000400, 0x00000000,
x00000000, 0x00000400,
x00000400, 0x00000400,
x00000004, 0x00000000,
x00000404, 0x00000000,
x00000004, 0x00000400,
x00000404, 0x00000400,
x00000000, 0x00000004,
x00000400, 0x00000004,
x00000000, 0x00000404,
x00000400, 0x00000404,
x00000004, 0x00000004,
x00000404, 0x00000004,
x00000004, 0x00000404,
x00000404, 0x00000404,
x00000000, 0x00000000,
x08000000, 0x00000000,
x00000000, 0x08000000,
x08000000, 0x08000000,
x00080000, 0x00000000,
x08080000, 0x00000000,
x00080000, 0x08000000,
x08080000, 0x08000000,
x00000000, 0x00080000,
x08000000, 0x00080000,
x00000000, 0x08080000,
x08000000, 0x08080000,
x00080000, 0x00080000,
x08080000, 0x00080000,
x00080000, 0x08080000,
x08080000, 0x08080000,
x00000000, 0x00000000,
x00000800, 0x00000000,
x00000000, 0x00000800,
x00000800, 0x00000800,
x00000008, 0x00000000,
x00000808, 0x00000000,
x00000008, 0x00000800,
x00000808, 0x00000800,
x00000000, 0x00000008,
x00000800, 0x00000008,
x00000000, 0x00000808,
x00000800, 0x00000808,
x00000008, 0x00000008,
x00000808, 0x00000008,
x00000008, 0x00000808,
x00000808, 0x00000808,
x00000000, 0x00000000,
x10000000, 0x00000000,
x00000000, 0x10000000,
x10000000, 0x10000000,
x00100000, 0x00000000,
x10100000, 0x00000000,
x00100000, 0x10000000,
x10100000, 0x10000000,
x00000000, 0x00100000,
x10000000, 0x00100000,
x00000000, 0x10100000,
x10000000, 0x10100000,
x00100000, 0x00100000,
x10100000, 0x00100000,
x00100000, 0x10100000,
x10100000, 0x10100000,
x00000000, 0x00000000,
x00001000, 0x00000000,
x00000000, 0x00001000,
x00001000, 0x00001000,
x00000010, 0x00000000,
x00001010, 0x00000000,
x00000010, 0x00001000,
x00001010, 0x00001000,
x00000000, 0x00000010,
x00001000, 0x00000010,
x00000000, 0x00001010,
x00001000, 0x00001010,
x00000010, 0x00000010,
x00001010, 0x00000010,
x00000010, 0x00001010,
x00001010, 0x00001010,
x00000000, 0x00000000,
x20000000, 0x00000000,
x00000000, 0x20000000,
x20000000, 0x20000000,
x00200000, 0x00000000,
x20200000, 0x00000000,
x00200000, 0x20000000,
x20200000, 0x20000000,
x00000000, 0x00200000,
x20000000, 0x00200000,
x00000000, 0x20200000,
x20000000, 0x20200000,
x00200000, 0x00200000,
x20200000, 0x00200000,
x00200000, 0x20200000,
x20200000, 0x20200000,
x00000000, 0x00000000,
x00002000, 0x00000000,
x00000000, 0x00002000,
x00002000, 0x00002000,
x00000020, 0x00000000,
x00002020, 0x00000000,
x00000020, 0x00002000,
x00002020, 0x00002000,
x00000000, 0x00000020,
x00002000, 0x00000020,
x00000000, 0x00002020,
x00002000, 0x00002020,
x00000020, 0x00000020,
x00002020, 0x00000020,
x00000020, 0x00002020,
x00002020, 0x00002020,
x00000000, 0x00000000,
x40000000, 0x00000000,
x00000000, 0x40000000,
x40000000, 0x40000000,
x00400000, 0x00000000,
x40400000, 0x00000000,
x00400000, 0x40000000,
x40400000, 0x40000000,
x00000000, 0x00400000,
x40000000, 0x00400000,
x00000000, 0x40400000,
x40000000, 0x40400000,
x00400000, 0x00400000,
x40400000, 0x00400000,
x00400000, 0x40400000,
x40400000, 0x40400000,
x00000000, 0x00000000,
x00004000, 0x00000000,
x00000000, 0x00004000,
x00004000, 0x00004000,
x00000040, 0x00000000,
x00004040, 0x00000000,
x00000040, 0x00004000,
x00004040, 0x00004000,
x00000000, 0x00000040,
x00004000, 0x00000040,
x00000000, 0x00004040,
x00004000, 0x00004040,
x00000040, 0x00000040,
x00004040, 0x00000040,
x00000040, 0x00004040,
x00004040, 0x00004040,
x00000000, 0x00000000,
x80000000, 0x00000000,
x00000000, 0x80000000,
x80000000, 0x80000000,
x00800000, 0x00000000,
x80800000, 0x00000000,
x00800000, 0x80000000,
x80800000, 0x80000000,
x00000000, 0x00800000,
x80000000, 0x00800000,
x00000000, 0x80800000,
x80000000, 0x80800000,
x00800000, 0x00800000,
x80800000, 0x00800000,
x00800000, 0x80800000,
x80800000, 0x80800000,
x00000000, 0x00000000,
x00008000, 0x00000000,
x00000000, 0x00008000,
x00008000, 0x00008000,
x00000080, 0x00000000,
x00008080, 0x00000000,
x00000080, 0x00008000,
x00008080, 0x00008000,
x00000000, 0x00000080,
x00008000, 0x00000080,
x00000000, 0x00008080,
x00008000, 0x00008080,
x00000080, 0x00000080,
x00008080, 0x00000080,
x00000080, 0x00008080,
x00008080, 0x00008080
};
long p2[]=
{
x00000000, 0x00000000,
x00000040, 0x00000000,
x00004000, 0x00000000,
x00004040, 0x00000000,
x00400000, 0x00000000,
x00400040, 0x00000000,
x00404000, 0x00000000,
x00404040, 0x00000000,
x40000000, 0x00000000,
x40000040, 0x00000000,
x40004000, 0x00000000,
x40004040, 0x00000000,
x40400000, 0x00000000,
x40400040, 0x00000000,
x40404000, 0x00000000,
x40404040, 0x00000000,
x00000000, 0x00000000,
x00000000, 0x00000040,
x00000000, 0x00004000,
x00000000, 0x00004040,
x00000000, 0x00400000,
x00000000, 0x00400040,
x00000