Анализ и разработка программного обеспечения для защиты информации систем электронной коммерции

Формирование криптографии как дисциплины. Разделы к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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.