Основы криптографии

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



// 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