Анализ и разработка программного обеспечения для защиты информации систем электронной коммерции
Формирование криптографии как дисциплины. Разделы кpиптогpафии: симметpичные кpиптосистемы, кpиптосистемы с ключом, системы электpонной подписи, упpавление ключами. Разработка программы для защиты данных в платежных системах электронной коммерции.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.04.2012 |
Размер файла | 949,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
__asm imul ecx, b \
__asm lea eax, [d + d + 1] \
__asm rol ecx, 5 \
__asm imul eax, d \
__asm xor a, ecx \
__asm rol eax, 5 \
__asm xor c, eax \
__asm rol c, cl \
__asm mov ecx, eax \
__asm rol a, cl \
__asm add c, s(i*2 + 1) \
__asm nop \
}
#define RE(a, b, c, d, i) \
{ \
__asm add d, s(i*2 - 2) \
__asm lea ecx, [b + b + 1] \
__asm imul ecx, b \
__asm lea eax, [d + d + 1] \
__asm rol ecx, 5 \
__asm imul eax, d \
__asm xor a, ecx \
__asm rol eax, 5 \
__asm xor c, eax \
__asm rol c, cl \
__asm mov ecx, eax \
__asm rol a, cl \
__asm add c, s(i*2 + 1) \
__asm nop \
}
#define RD1(a, b, c, d, i) \
{ \
__asm sub a, s(i*2) \
__asm lea ecx, [d + d + 1] \
__asm imul ecx, d \
__asm lea eax, [b + b + 1] \
__asm rol ecx, 5 \
__asm imul eax, b \
__asm ror a, cl \
__asm xchg eax, ecx \
__asm rol ecx, 5 \
__asm ror c, cl \
__asm xor a, ecx \
__asm xor c, eax \
}
#define RD(a, b, c, d, i) \
{\
__asm sub a, s(i*2) \
__asm lea ecx, [d + d + 1] \
__asm imul ecx, d \
__asm lea eax, [b + b + 1] \
__asm rol ecx, 5 \
__asm imul eax, b \
__asm ror a, cl \
__asm xchg eax, ecx \
__asm rol ecx, 5 \
__asm ror c, cl \
__asm sub b, s(i*2 - 1) \
__asm xor c, eax \
__asm xor a, ecx \
}
#define ENCODE(A, B, C, D) \
RE1(A, B, C, D, 1) \
RE(B, C, D, A, 2) \
RE(C, D, A, B, 3) \
RE(D, A, B, C, 4) \
RE(A, B, C, D, 5) \
RE(B, C, D, A, 6) \
RE(C, D, A, B, 7) \
RE(D, A, B, C, 8) \
RE(A, B, C, D, 9) \
RE(B, C, D, A, 10) \
RE(C, D, A, B, 11) \
RE(D, A, B, C, 12) \
RE(A, B, C, D, 13) \
RE(B, C, D, A, 14) \
RE(C, D, A, B, 15) \
RE(D, A, B, C, 16) \
RE(A, B, C, D, 17) \
RE(B, C, D, A, 18) \
RE(C, D, A, B, 19) \
RE(D, A, B, C, 20)
#define DECODE(A, B, C, D) \
RD(D, A, B, C, 20) \
RD(C, D, A, B, 19) \
RD(B, C, D, A, 18) \
RD(A, B, C, D, 17) \
RD(D, A, B, C, 16) \
RD(C, D, A, B, 15) \
RD(B, C, D, A, 14) \
RD(A, B, C, D, 13) \
RD(D, A, B, C, 12) \
RD(C, D, A, B, 11) \
RD(B, C, D, A, 10) \
RD(A, B, C, D, 9) \
RD(D, A, B, C, 8) \
RD(C, D, A, B, 7) \
RD(B, C, D, A, 6) \
RD(A, B, C, D, 5) \
RD(D, A, B, C, 4) \
RD(C, D, A, B, 3) \
RD(B, C, D, A, 2) \
RD1(A, B, C, D, 1)
//---------------------------------------------------------------------------
void __declspec(naked) __stdcall rc6_encode(const void *in_data, const T__rc6_raw_key&keys, void *out_data, int count)
{
__asm
{
push ebp
push edi
push esi
push ebx
#define A ebx
#define B edx
#define C esi
#define D edi
#define s(n) [ebp + (n)*4]
mov ebp, [esp + 6*4]
cmp dword ptr [esp + 7*4], 0
mov ecx, [esp + 5*4]
jle l1
align 16
l0:
mov B, [ecx + 4]
mov D, [ecx + 12]
add B, s(0)
mov A, [ecx]
mov C, [ecx + 8]
}
ENCODE(A, B, C, D);
__asm
{
mov eax, [esp + 7*4]
add D, s(20*2)
add A, s(r2 + 2)
mov ecx, [esp + 5*4]
add C, s(r2 + 3)
mov [eax + 4], B
lea ecx, [ecx + 16]
mov [eax + 12], D
mov [eax], A
mov [eax + 8], C
add eax, 16
dec dword ptr [esp + 8*4]
mov [esp + 5*4], ecx
mov [esp + 7*4], eax
jne l0
l1:
pop ebx
pop esi
pop edi
pop ebp
ret 16
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
void __declspec(naked) __stdcall rc6_encode_cbc(T__rc6_datablock &vector, const void *in_data, const T__rc6_raw_key&keys, void *out_data, int count)
{
__asm
{
push ebp
push edi
push esi
push ebx
#define A ebx
#define B edx
#define C esi
#define D edi
#define s(n) [ebp + (n)*4]
mov eax, [esp + 5*4] // vector ptr
cmp dword ptr [esp + 9*4], 0 // counter
mov ecx, [esp + 6*4] // in_data ptr
jle l1
mov B, [eax + 4]
mov D, [eax + 12]
mov A, [eax]
mov C, [eax + 8]
mov ebp, [esp + 7*4] // key ptr
align 16
l0:
xor B, [ecx + 4]
xor D, [ecx + 12]
add B, s(0)
xor A, [ecx]
xor C, [ecx + 8]
}
ENCODE(A, B, C, D);
__asm
{
mov eax, [esp + 8*4] // out_data ptr
add D, s(20*2)
add A, s(r2 + 2)
mov ecx, [esp + 6*4] // in_data ptr
mov [eax + 4], B
add C, s(r2 + 3)
mov [eax], A
mov [eax + 12], D
mov [eax + 8], C
lea eax, [eax + 16]
add ecx, 16
mov [esp + 8*4], eax // out_data ptr
dec dword ptr [esp + 9*4] // counter
mov [esp + 6*4], ecx // in_data ptr
jne l0
mov eax, [esp + 5*4] // vector ptr
mov [eax], A
mov [eax + 4], B
mov [eax + 8], C
mov [eax + 12], D
l1:
pop ebx
pop esi
pop edi
pop ebp
ret 20
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
//---------------------------------------------------------------------------
void __declspec(naked) __stdcall rc6_encode_one_std(const void *in_data, const T__rc6_raw_key&keys, void *out_data)
{
#define A ebp
#define B ebx
#define C esi
#define D edi
#define s(n) [edx + (n)*4]
__asm
{
mov eax, [esp + 1*4] // in_data
push ebp
push edi
push esi
push ebx
mov edx, [esp + 6*4] // keys
mov B, [eax + 4]
mov D, [eax + 12]
add B, s(0)
mov A, [eax]
mov C, [eax + 8]
}
ENCODE(A, B, C, D);
__asm
{
add D, s(20*2)
mov eax, [esp + 7*4] // out_data
add A, s(r2 + 2)
add C, s(r2 + 3)
mov [eax], A
mov [eax + 4], B
mov [eax + 8], C
mov [eax + 12], D
pop ebx
pop esi
pop edi
pop ebp
ret 12
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
//---------------------------------------------------------------------------
void __declspec(naked) __fastcall rc6_encode_one_vc(const void *in_data, const T__rc6_raw_key&keys, void *out_data)
{
// Microsoft Visual C++ __fastcall:
// ecx = in_data
// edx = keys
// out_data - on stack
#define A ebp
#define B ebx
#define C esi
#define D edi
#define s(n) [edx + (n)*4]
__asm
{
push ebp
push edi
push esi
push ebx
mov B, [ecx + 4]
mov D, [ecx + 12]
add B, s(0)
mov A, [ecx]
mov C, [ecx + 8]
}
ENCODE(A, B, C, D);
__asm
{
add D, s(20*2)
mov eax, [esp + 5*4]
add A, s(r2 + 2)
add C, s(r2 + 3)
mov [eax], A
mov [eax + 4], B
mov [eax + 8], C
mov [eax + 12], D
pop ebx
pop esi
pop edi
pop ebp
ret 4
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
//---------------------------------------------------------------------------
void __declspec(naked) __fastcall rc6_encode_one_delphi(const void *in_data, const T__rc6_raw_key&keys, void *out_data)
{
// Borland C++ Builder & Delphi __fastcall:
// eax = in_data
// edx = keys
// ecx = out_data
#define A ebp
#define B ebx
#define C esi
#define D edi
#define s(n) [edx + (n)*4]
__asm
{
push ebp
push edi
push esi
push ebx
mov B, [eax + 4]
mov D, [eax + 12]
add B, s(0)
push ecx
mov A, [eax]
mov C, [eax + 8]
}
ENCODE(A, B, C, D);
__asm
{
add D, s(20*2)
pop eax
add A, s(r2 + 2)
add C, s(r2 + 3)
mov [eax], A
mov [eax + 4], B
mov [eax + 8], C
mov [eax + 12], D
pop ebx
pop esi
pop edi
pop ebp
ret
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
//---------------------------------------------------------------------------
void __declspec(naked) __stdcall rc6_decode(const void *in_data, const T__rc6_raw_key&keys, void *out_data, int count)
{
__asm
{
push ebp
push edi
push esi
push ebx
#define A ebx
#define B edx
#define C esi
#define D edi
#define s(n) [ebp + (n)*4]
cmp dword ptr [esp + 8*4], 0
mov ecx, [esp + 5*4]
jle l1
mov ebp, [esp + 6*4]
align 16
l0:
mov A, [ecx]
mov C, [ecx + 8]
sub A, s(r2 + 2)
mov B, [ecx + 4]
sub C, s(r2 + 3)
mov D, [ecx + 12]
sub B, s(r2 + 1)
}
DECODE(A, B, C, D);
__asm
{
mov eax, [esp + 7*4]
sub B, s(0)
mov ecx, [esp + 5*4]
mov [eax], A
sub D, s(1)
mov [eax + 4], B
mov [eax + 12], D
mov [eax + 8], C
add eax, 16
lea ecx, [ecx + 16]
mov [esp + 7*4], eax
dec dword ptr [esp + 8*4]
mov [esp + 5*4], ecx
jne l0
l1:
pop ebx
pop esi
pop edi
pop ebp
ret 16
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
//---------------------------------------------------------------------------
void __declspec(naked) __stdcall rc6_decode_cbc(T__rc6_datablock &vector, const void *in_data, const T__rc6_raw_key&keys, void *out_data, int count)
{
__asm
{
push ebp
push edi
push esi
push ebx
#define A ebx
#define B edx
#define C esi
#define D edi
#define s(n) [ebp + (n)*4]
cmp dword ptr [esp + 9*4], 0 // counter
mov ecx, [esp + 6*4] // in_data ptr
jle l1
mov ebp, [esp + 7*4] // key ptr
align 16
l0:
mov A, [ecx]
mov C, [ecx + 8]
sub A, s(r2 + 2)
mov B, [ecx + 4]
sub C, s(r2 + 3)
mov D, [ecx + 12]
sub B, s(r2 + 1)
}
DECODE(A, B, C, D);
__asm
{
mov ecx, [esp + 5*4] // vector ptr
sub B, s(0)
xor A, [ecx]
mov eax, [esp + 8*4] // out_data ptr
xor C, [ecx + 8]
mov [eax], A
sub D, s(1)
mov [eax + 8], C
xor B, [ecx + 4]
xor D, [ecx + 12]
mov [eax + 4], B
mov ecx, [esp + 6*4] // in_data ptr
mov [eax + 12], D
lea eax, [eax + 16]
mov [esp + 5*4], ecx // vector ptr
lea ecx, [ecx + 16]
mov [esp + 8*4], eax // out_data ptr
dec dword ptr [esp + 9*4] // counter
mov [esp + 6*4], ecx // in_data ptr
jne l0
mov eax, [esp + 5*4] // vector ptr
mov A, [ecx - 16]
mov B, [ecx - 12]
mov C, [ecx - 8]
mov D, [ecx - 4]
mov [eax], A
mov [eax + 4], B
mov [eax + 8], C
mov [eax + 12], D
l1:
pop ebx
pop esi
pop edi
pop ebp
ret 20
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
//---------------------------------------------------------------------------
void __declspec(naked) __stdcall rc6_decode_cbc_same_buffers(T__rc6_datablock &vector, const T__rc6_raw_key&keys, void *in_out_data, int count)
{
__asm
{
push ebp
push edi
push esi
push ebx
#define A ebx
#define B edx
#define C esi
#define D edi
#define s(n) [ebp + (n)*4]
cmp dword ptr [esp + 8*4], 0 // counter
mov ecx, [esp + 7*4] // in_out_data ptr
jle l1
mov ebp, [esp + 6*4] // key ptr
align 16
l0:
mov A, [ecx]
mov C, [ecx + 8]
sub A, s(r2 + 2)
mov B, [ecx + 4]
sub C, s(r2 + 3)
mov D, [ecx + 12]
sub B, s(r2 + 1)
}
DECODE(A, B, C, D);
__asm
{
sub B, s(0)
sub D, s(1)
mov eax, [esp + 5*4] // vector ptr
mov ecx, [esp + 7*4] // in_out_data ptr
xor A, [eax]
xor B, [eax + 4]
xor C, [eax + 8]
xor D, [eax + 12]
xchg [ecx], A
xchg [ecx + 4], B
xchg [ecx + 8], C
xchg [ecx + 12], D
mov [eax], A
mov [eax + 4], B
mov [eax + 8], C
mov [eax + 12], D
lea ecx, [ecx + 16]
dec dword ptr [esp + 8*4] // counter
mov [esp + 7*4], ecx // in_out_data ptr
jne l0
l1:
pop ebx
pop esi
pop edi
pop ebp
ret 16
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
//---------------------------------------------------------------------------
void __declspec(naked) __stdcall rc6_decode_one_std(const void *in_data, const T__rc6_raw_key&keys, void *out_data)
{
#define A ebp
#define B ebx
#define C esi
#define D edi
#define s(n) [edx + (n)*4]
__asm
{
mov eax, [esp + 1*4] // in_data
push ebp
push edi
push esi
push ebx
mov edx, [esp + 6*4] // keys
mov A, [eax]
mov C, [eax + 8]
sub A, s(r2 + 2)
sub C, s(r2 + 3)
mov B, [eax + 4]
sub B, s(r2 + 1)
mov D, [eax + 12]
}
DECODE(A, B, C, D);
__asm
{
sub B, s(0)
mov eax, [esp + 7*4] // out_data
sub D, s(1)
mov [eax], A
mov [eax + 4], B
mov [eax + 8], C
mov [eax + 12], D
pop ebx
pop esi
pop edi
pop ebp
ret 12
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
//---------------------------------------------------------------------------
void __declspec(naked) __fastcall rc6_decode_one_vc(const void *in_data, const T__rc6_raw_key&keys, void *out_data)
{
// Microsoft Visual C++ __fastcall:
// ecx = in_data
// edx = keys
// out_data - on stack
#define A ebp
#define B ebx
#define C esi
#define D edi
#define s(n) [edx + (n)*4]
__asm
{
push ebp
push edi
push esi
push ebx
mov A, [ecx]
mov C, [ecx + 8]
sub A, s(r2 + 2)
sub C, s(r2 + 3)
mov B, [ecx + 4]
sub B, s(r2 + 1)
mov D, [ecx + 12]
}
DECODE(A, B, C, D);
__asm
{
sub B, s(0)
mov eax, [esp + 5*4] // out_data
sub D, s(1)
mov [eax], A
mov [eax + 4], B
mov [eax + 8], C
mov [eax + 12], D
pop ebx
pop esi
pop edi
pop ebp
ret 4
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
//---------------------------------------------------------------------------
void __declspec(naked) __fastcall rc6_decode_one_delphi(const void *in_data, const T__rc6_raw_key&keys, void *out_data)
{
// Borland C++ Builder & Delphi __fastcall:
// eax = in_data
// edx = keys
// ecx = out_data
#define A ebp
#define B ebx
#define C esi
#define D edi
#define s(n) [edx + (n)*4]
__asm
{
push ebp
push edi
push esi
push ebx
mov A, [eax]
mov C, [eax + 8]
sub A, s(r2 + 2)
push ecx
sub C, s(r2 + 3)
mov B, [eax + 4]
sub B, s(r2 + 1)
mov D, [eax + 12]
}
DECODE(A, B, C, D);
__asm
{
sub B, s(0)
pop eax
sub D, s(1)
mov [eax], A
mov [eax + 4], B
mov [eax + 8], C
mov [eax + 12], D
pop ebx
pop esi
pop edi
pop ebp
ret
}
#undef A
#undef B
#undef C
#undef D
#undef s
}
Подобные документы
Понятия электронной коммерции. Развитие электронной коммерции в мире. Перспективы развития электронной коммерции в России. Расчеты в системах электронной коммерции. Алгоритмы и схемы взаимодействия пользователей. Налогообложение и электронные деньги.
дипломная работа [966,4 K], добавлен 16.06.2012Понятие и сущность традиционной и электронной коммерции, правовые вопросы. Условия совершения платежей через Интернет и этапы их проведения. Инфраструктура безопасности и технологические методы снижения рисков транзакций в системах электронной коммерции.
курсовая работа [3,1 M], добавлен 10.11.2011Обзор средств построения систем электронной коммерции, их преимущества и основные направления развития. Особенности корпоративных серверов Microsoft. Разработка программного механизма для ведения статистики по действиям пользователя в разных модулях.
отчет по практике [1,6 M], добавлен 26.06.2014Формирование "электронной коммерции" как понятия, ее отличия от традиционной коммерческой деятельности. Базовые элементы электронной коммерции, порядок проведения платежей в интернете. Безопасность электронной коммерции, назначение номера карты.
контрольная работа [777,4 K], добавлен 31.08.2010Характеристика процессов электронной коммерции в книготорговой деятельности и практической разработке системы электронной торговли на примере книжного Web-магазина. Изучение организационных принципов электронной коммерции и нормативно-правовой базы.
дипломная работа [1,4 M], добавлен 16.06.2017Инструменты для осуществления электронной коммерции. Международная и российская аудитория сети Интернет. Стадии реализации коммерческой сделки. Средства электроники и электронных коммуникаций. Обзор аппаратных и программных средств электронной коммерции.
курсовая работа [78,0 K], добавлен 09.04.2014Служба телеконференции. Электронная коммерция и история ее развития. Первые системы электронной коммерции. Рынок электронной коммерции. Разновидности бизнеса в интернете, его глобализация. Электронные платежные системы. Безопасность электронной коммерции.
реферат [33,4 K], добавлен 12.04.2009Теоретические основы эксплуатации автоматизированных информационных систем электронной коммерции в торговых организациях малого и среднего бизнеса. Описание входной и выходной информации. Анализ деятельности компании ООО "Агентство "Лунный свет".
дипломная работа [2,0 M], добавлен 19.06.2015Анализ характеристик средств криптографической защиты информации для создания электронной цифровой подписи. Этапы генерации ключевого контейнера и запроса при помощи Удостоверяющего центра с целью получения сертификата проверки подлинности клиента.
реферат [604,6 K], добавлен 14.02.2016Технология совершения коммерческих операций и управления процессами в коммуникационной среде с использованием информационных технологий. Типы электронной коммерции. Каналы распространения товаров через электронный магазин или корпоративный сайт.
презентация [520,3 K], добавлен 14.08.2013