Apéndice B: Código en Matlab de la simulación del WEP.



Documentos relacionados
Apéndice C: Código en Matlab de la simulación de la FCICT

LAMPIRAN LISTING PROGRAM

UNIVERSIDAD TECNOLOGICA DE PEREIRA PROGRAMA DE TECNOLOGIA ELÉCTRICA INTERFAZ GRÁFICA DE USUARIO EN MATLAB

MonitorCEC. Software para el Monitoreo de Clima Espacial desde Colombia. Versión 1.0. Códigos Fuente

En este apéndice se describe el código programado para controlar el sistema de extracción


TEMA 4. Interficie gráfica con el usuario. 1. Introducción

MANUAL DE INTERFAZ GRÁFICA DE USUARIO EN MATLAB

MÓDULO SOBRE PROGRAMACIÓN MATLAB

Aplicació de la visió computacional a la mesura de luminància de l enllumenat públic. Annex

Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica SISTEMA BÁSICO DE CONTROL VEHICULAR

Recibido 10/08/16, aceptado 08/10/16


Anejo 2: Programa completo de MATLAB

; ****************************************************** ; BASIC.ASM template file for AVR ; ******************************************************

Simulaciones y resultados

Electrónica y Redes de Información

Determinación del costo de operación para una flota de vehículos eléctricos

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II)

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL

Capítulo 5: Desarrollo del programa informático

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL REPORTE DE MATERIA DE GRADUACIÓN INGENIERO EN ELECTRÓNICA Y TELECOMUNICACIONES

Creación de interfaces de

ESCUELA SUPERIOR POLITECNICA DEL LITORAL

Trabajo Fin de Grado

GUIDE es un entorno de programación visual disponible en MATLAB para realizar y ejecutar programas que necesiten ingreso continuo de datos.

IV. Implantación del sistema.

ESCUELA SUPERIOR POLITECNICA DEL LITORAL

Registro y consulta de clientes según la ley para la prevención de lavado de dinero en Neodata ERP.

DISEÑO DE UN ALGORTIMO PARA LA GENERACION Y NAVEGACION POR RUTAS MEDIANTE UNA INTERFAZ PARA ROBOTS MOVILES

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL

Uso de archivos en C++

APENDICE A LISTADO DEL PROGRAMA

Banco de la República Bogotá D. C., Colombia

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Protocolos y técnicas alternativas al WEP. En este capítulo se presentan algunos protocolos y técnicas que ofrecen mayores

3 Creación de la interfaz gráfica

1. Manejo de memoria estática 2. Manejo de memoria dinámica

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

Guía Rápida de uso de ZBox Backup Configuración y uso del servicio de respaldo en la nube.

Bases de Datos en Visual FoxPro. Administrador de proyectos

Boleta Digital 2010 Manual de Usuario

. Introducción Antecedentes

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA CIVIL

Capture Pro Software. Introducción. A-61640_es

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL. Facultad de Ingeniería en Electricidad y Computación TESINA DE SEMINARIO

Método simétrico con cifrado por bloques desarrollado por Counterpane Labs y presentado al concurso del NIST que buscaba un sustituto para DES (el

6ª Práctica. Matlab página 1

Arrays y Cadenas en C

PROYECTO FIN DE CARRERA Ingeniería Técnica Industrial, Electricidad

Instrumentación Virtual con LabVIEW

Guía de instrucciones para educadores

Herramientas computacionales para la matemática MATLAB: Otros tipos de datos

UNIVERSIDAD POLITÉCNICA DE MADRID

Es recomendable hacer una primera lectura del Manual de Instrucciones antes de comenzar para tener una visión global del programa.

Secretaría de Tecnologías para la Gestión Ministerio de Gobierno y Reforma del Estado


MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

Capítulo V. Implementación

Capítulo 3 Usando GUIDE. 3.1 Acerca de GUIDE

Operación Microsoft PowerPoint 97

Manual básico de Robomid

Arqueo de Recibos Oficiales de Ingresos ARQUEO DE RECIBOS OFICIALES DE INGRESOS DIRECCIÓN DE INGRESOS

5. Diseño e Implementación del sistema (software)

ControlGAS Uso de TPV.

Julio César Mendoza T. Ingeniería de Sistemas Quito

Configuraciones básicas de seguridad en Windows para los sistemas de la línea. Control 2000

Novedades de la versión Factura Electrónica en AdminPAQ

Información sobre la configuración de una aplicación para transmitir datos ASCII por puerto serie, con pantallas terminales Magelis.

INSTRUCTIVO DE RECUPERACIÓN DE CORREO ELECTRÓNICO

Convolutional Neural Networks for food recognition

Metodología para la evaluacion de tecnicas de renderizado 3D en un sistema de visualización de imágenes medicas. Ana María Quintero Gomez

Capítulo 2: El protocolo WEP. Capítulo 2. El protocolo WEP

Estructuras de Repetición Repita Mientras

MANUAL SISTEMA ENCRIPTACIÓN DE HECHOS RESERVADOS

PROCEDIMIENTO DE ENLACE NOMIPAQ

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

Introducción a PHP. * No es necesario declarar previamente las variables.

Introducción a la Programación en MATLAB

Manual Operativo Aplicación Móvil

Prof. Dr. Paul Bustamante

Proceso de Consulta y Selección de Libros de Secundaria Vía Web

5.4. Manual de usuario

Gestión. - Grupo de autorizaciones. - Envíos de correos electrónicos

I.E. FRANCISCO ANTONIO DE ZELA MANUAL DE MOVIE MAKER

V i s i t a V i r t u a l e n e l H o s p i t a l

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Software MemLog Versión: Altos Technologies 2007

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO

Computación archivos

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Práctica 7: Adquisición de imágenes reales: generación de una librería de caras humanas. Objetivo: Generar una librería de imágenes de caras humanas

UNIVERSIDAD CARLOS III DE MADRID

Descripción del Problema Sistema de Reservaciones de Vuelos

Apéndice A. Manual del usuario.

Manual del usuario de la aplicación Desktop Client

Transcripción:

Apéndice B: Código en Matlab de la simulación del WEP. Este apéndice muestra el código elaborado en Matlab para crear la interfase gráfica que ejecuta la simulación del WEP. % este código se crea automáticamente para inicializar los valores de la interfase % gráfica function varargout = untitled1(varargin) gui_singleton = 1; gui_state = struct('gui_name', mfilename,... 'gui_singleton', gui_singleton,... 'gui_openingfcn', @untitled1_openingfcn,... 'gui_outputfcn', @untitled1_outputfcn,... 'gui_layoutfcn', [],... 'gui_callback', []); if nargin && ischar(varargin{1}) gui_state.gui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); gui_mainfcn(gui_state, varargin{:}); % finaliza el código de inicialización % el código siguiente llama a las imágenes JPG que se muestran en la interfase handles.intruso = imread(['intruso.jpg']); % Read the image file banner.jpg info = imfinfo(['intruso.jpg']); % Determine the size of the image file axes(handles.axes1); image(handles.intruso) set(handles.axes1,... 'Position', [560 10 info.width info.height]); handles.compu_izq = imread(['compu_izq.jpg']); % Read the image file banner.jpg info = imfinfo(['compu_izq.jpg']); % Determine the size of the image file axes(handles.axes2); image(handles.compu_izq) set(handles.axes2,... 'Position', [50 460 info.width info.height]);

handles.compu_derecha = imread(['compu_derecha.jpg']); % Read the image file banner.jpg info = imfinfo(['compu_derecha.jpg']); % Determine the size of the image file axes(handles.axes4); image(handles.compu_derecha) set(handles.axes4,... 'Position', [625 460 info.width info.height]); handles.bluepp = imread(['bluepp.jpg']); % Read the image file banner.jpg info = imfinfo(['bluepp.jpg']); % Determine the size of the image file axes(handles.axes5); image(handles.bluepp) set(handles.axes5,... 'Position', [380 180 info.width info.height]); handles.puntos = imread(['puntos.jpg']); % Read the image file banner.jpg info = imfinfo(['puntos.jpg']); % Determine the size of the image file axes(handles.axes6); image(handles.puntos) set(handles.axes6,... 'Position', [440 90 info.width info.height]); handles.wep2 = imread(['wep2.jpg']); % Read the image file banner.jpg info = imfinfo(['wep2.jpg']); % Determine the size of the image file axes(handles.axes9); image(handles.wep2) set(handles.axes9,... 'Position', [250 400 info.width info.height]); % finaliza el código que llama a las imágenes function edit1_callback(hobject, eventdata, handles) % esta función se crea automáticamente al agregar un campo de texto en la % interfase, este campo es en el cual se ingresa el texto a encriptar % en la variable plain_text se guarda el texto a encriptar handles.plain_text = get(hobject,'string')

guidata(hobject, handles); % Save the updated structure % esta función se ejecuta durante la creación del objeto después de establecer sus % propiedades function edit1_createfcn(hobject, eventdata, handles) % la siguiente función incluye el código que se ejecutara al presionar el botón % encriptar function pushbutton1_callback(hobject, eventdata, handles) handles.plainascii = double(handles.plain_text) %convierte la cadena ingresada por el usuario en caracteres ASCII %inicialización de la llave S, RC4 % long_k es el número de bytes con el que se forma el vector K % mismo que se repetirá tantas veces como sea necesario % para llenar el vector temporal T for i = 0:(handles.long_K-1) K(i+1) = i; %generación del vector K S = [0:255]; for j=0:255 % se inicializa S con valores de 0 a 255 y = mod(j,handles.long_k); % se repite el vector K tantas veces como sea T(j+1) = K(y+1); % necesario para genera el vector T % se inicializa el vector S k = 0; for m=0:255 z = (k + S(m+1) + T(m+1)); k = mod(z,256); temp = S(m+1); S(m+1) = S(k+1); S(k+1) = temp; size_plain = size(handles.plainascii); handles.size_plain = size_plain(2); % estas instrucciones obtienen la longitud del texto ingresado % el siguiente algoritmo genera la secuencia de llaves de encriptación i=0; k=0;

for j = 1:handles.size_plain q = i+1; i = mod(q,256); p = k + S(q); k = mod(p,256); temp = S(i+1); S(i+1) = S(k+1); S(k+1) = temp; r = (S(i+1) + S(k+1)); t = mod(r,256); handles.keys(j) = S(t+1); handles.cipher(j) = bitxor(handles.keys(j), handles.plainascii(j)); %esta sentencia %realiza la operación XOR entre las llaves generadas y el texto a encriptar % las siguientes instrucciones envían las cadenas de texto original, llaves y cifrado % a cuadros de texto en la interfase visual set(handles.asciiplain,'string',num2str(handles.plainascii)) set(handles.llaves_enc,'string',num2str(handles.keys)) set(handles.texto_cifrado,'string',num2str(handles.cipher)) % esta función genera el cuadro de texto donde se mostrará el texto cifrado function texto_cifrado_callback(hobject, eventdata, handles) % esta función se ejecuta durante la creación del cuadro de texto function texto_cifrado_createfcn(hobject, eventdata, handles) % función creada para recibir la longitud de la llave K function bytesk_callback(hobject, eventdata, handles) handles.long_k = str2double(get(hobject,'string')); % la longitud de la llave K % se almacena en la variable long_k % función creada durante la creación del objeto function bytesk_createfcn(hobject, eventdata, handles) % funciones creadas para mostrar el texto ASCII de la cadena ingresada en % interfase function ASCIIplain_Callback(hObject, eventdata, handles)

function ASCIIplain_CreateFcn(hObject, eventdata, handles) %estas funciones crean el cuadro de texto que muestra la secuencia de llaves %en la interfase function Llaves_enc_Callback(hObject, eventdata, handles) function Llaves_enc_CreateFcn(hObject, eventdata, handles) % esta función ejecuta el código siguiente al presionar el botón Decriptar function pushbutton2_callback(hobject, eventdata, handles) % este ciclo realize la operación XOR entre las llaves y el texto cifrado para % recuperar % el texto original for j = 1:handles.size_plain plain_text_recuperado(j) = bitxor(handles.keys(j), handles.cipher(j)); % las tres instrucciones siguientes envían el texto recuperado, las llaves % y el texto cifrado a los cuadros de texto de la interfase set(handles.texto_recuperado,'string',num2str(plain_text_recuperado)) set(handles.llaves_enc_dec,'string',num2str(handles.keys)) set(handles.texto_cifrado_dec,'string',num2str(handles.cipher)) cadena_texto_recuperado = char(plain_text_recuperado); set(handles.cadena_rec,'string',cadena_texto_recuperado) function Llaves_enc_dec_Callback(hObject, eventdata, handles) % estas funciones se ejecutan al crear el cuadro de texto que mostrará las % llaves de encriptacion function Llaves_enc_dec_CreateFcn(hObject, eventdata, handles)

function texto_cifrado_dec_callback(hobject, eventdata, handles) % estas funciones se ejecutan al crear el cuadro de texto que mostrará el % texto cifrado function texto_cifrado_dec_createfcn(hobject, eventdata, handles) % las siguientes funciones se ejecutan al crear el cuadro de texto que % mostrará el texto ASCII recuperado por el receptor function Texto_recuperado_Callback(hObject, eventdata, handles) function Texto_recuperado_CreateFcn(hObject, eventdata, handles) % las siguientes funciones se ejecutan al crear el cuadro de texto que % mostrará la cadena de texto recuperado por el receptor function cadena_rec_callback(hobject, eventdata, handles) function cadena_rec_createfcn(hobject, eventdata, handles)