Conference PaperPDF Available

Recursos didácticos en el Grado en Ingeniería Informática para el aprendizaje de Matemáticas a través de la Programación de Ordenadores

Authors:

Abstract and Figures

Este trabajo presenta dos recursos didacticos para el aprendizaje y refuerzo de conceptos basicos de matematica discreta y algebra lineal a traves de las asignaturas de programacion impartidas en el primer curso de Grado en Ingenieria Informatica. Para ello planteamos dos propuestas practicas en las que el alumnado pone en practica no solo los conceptos vistos en clase de programacion, sino que ademas permiten al alumno reflexionar e interiorizar algoritmos matematicos de diferente complejidad que suelen resultarle dificiles de aprender.
Content may be subject to copyright.
ACTAS DE LAS
II JORNADAS ANDALUZAS DE
INFORMÁTICA
JAI2011 - CANILLAS DE ACEITUNO,MÁLAGA
16, 17 Y18 DE SEPTIEMBRE DE 2011
Canillas de Aceituno
JAI2011
Actas de las II JORNADAS ANDALUZAS DE INFORMÁTICA
16, 17 y 18 de septiembre de 2011
Canillas de Aceituno, Málaga
Editores:
Juan Carlos Gámez Granados
Eva Lucrecia Gibaja Galindo
Joaquín Olivares Bueno
José Manuel Palomares Muñoz
José Manuel Soto Hidalgo
Amelia Zafra Gómez
ISBN:
Maria Pilar Ortiz Hidalgo
Alcaldesa del Ayto. de Canillas de Aceituno
Juan Carlos Gámez Granados
Dpto. Arquitectura de Computadores, Electrónica y Tecnología Electrónica
Universidad de Córdoba
Eva Lucrecia Gibaja Galindo
Depto. Informática y Análisis Numérico
Universidad de Córdoba
Joaquín Olivares Bueno
Dpto. Arquitectura de Computadores, Electrónica y Tecnología Electrónica
Universidad de Córdoba
José Manuel Palomares Muñoz
Dpto. Arquitectura de Computadores, Electrónica y Tecnología Electrónica
Universidad de Córdoba
José Manuel Soto Hidalgo
Dpto. Arquitectura de Computadores, Electrónica y Tecnología Electrónica
Universidad de Córdoba
Amelia Zafra Gómez
Depto. Informática y Análisis Numérico
Universidad de Córdoba
II
Pedro Manuel Martínez
Universidad de Almería
José María Castillo
Universidad de Córdoba
Carlos Cano
Universidad de Granada
Belén Prados
Universidad de Granada
Daniel Sánchez
Universidad de Granada
José Manuel Martín
Universidad de Huelva
Carmen Martínez
Universidad de Jaén
Carlos Molina
Universidad de Jaén
Carlos Porcel
Universidad de Jaén
José Galindo
Universidad de Málaga
José Muñoz
Universidad de Málaga
Carlos Barranco
Universidad Pablo de Olavide
Iluminada Baturone
Universidad de Sevilla
III
Piedad Brox Macarena Espinilla
Centro Superior de Investigaciones Científicas Universidad de Jaén
José Joaquín Cañadas José Manuel Pérez
Universidad de Almería Universidad de Jaén
Francisco Guil Antonio Jesús Rueda
Universidad de Almería Universidad de Jaén
Rafael Guirado Juan Pedro Bandera
Universidad de Almería Universidad de Málaga
Clara Marcela Miranda Ana Cruz
Universidad de Almería Universidad de Málaga
Francisco de Asís Rodríguez Manuel Fernández
Universidad de Almería Universidad de Málaga
Alberto Cano Jesús Martínez
Universidad de Córdoba Universidad de Málaga
José María Luna José Manuel Peula
Universidad de Córdoba Universidad de Málaga
Manuel Jesús Marín Norberto Díaz
Universidad de Córdoba Universidad Pablo de Olavide
Juan Luis Olmo Federico Divina
Universidad de Córdoba Universidad Pablo de Olavide
Enrique Yeguas Miguel García
Universidad de Córdoba Universidad Pablo de Olavide
Jesús Chamorro Francisco Antonio Gómez
Universidad de Granada Universidad Pablo de Olavide
Juan Fernández Francisco Martínez
Universidad de Granada Universidad Pablo de Olavide
Jesús González Domingo Savio Rodríguez
Universidad de Granada Universidad Pablo de Olavide
Nicolás Marín Roberto Ruiz
Universidad de Granada Universidad Pablo de Olavide
Raúl Pérez Diana Borrego
Universidad de Granada Universidad de Sevilla
Héctor Pomares Fermín Cruz
Universidad de Granada Universidad de Sevilla
José Carpio Beatriz Pontes
Universidad de Huelva Universidad de Sevilla
IV
Saludo
PARA mí es una satisfacción invitaros a participar en las II Jornadas Andaluzas de Informática que celebramos en Canillas
de Aceituno. Ofrecernos por segundo año consecutivo como sede, manteniendo el objetivo de ser punto de reunión de los
profesionales y un referente de las tecnologías de la información para la sociedad, colma nuestras expectativas como sede
colaboradora.
Quiero agradecer al Comité Organizador, a la Universidad de Córdoba y a la Escuela Politécnica Superior de la Universidad
de Córdoba, su trabajo para que estas Jornadas se desarrollen. Este equipo humano hace posible convertir Canillas de Aceituno
en un escenario, hasta ahora desconocido para nosotros, donde la ingeniería informática y la divulgación de los trabajos de
jóvenes investigadores son los protagonistas. Desde nuestro enclave, queremos participar en los intensos y rápidos cambios
que están provocando el mundo de las tecnologías de la información en la sociedad.
Este año, con los objetivos de intercambiar experiencias entre investigadores y promover el encuentro entre empresas y
Universidades, esperamos que el programa os satisfaga y podáis cumplir las metas personales y profesionales que tengáis
puestas en estas Jornadas.
Como Alcaldesa de Canillas de Aceituno y en nombre de toda la Corporación quiero daros la bienvenida a los participantes.
Deseo que estos días que vais a compartir con nosotros, podáis comprobar las bondades que ofrece Canillas de Aceituno, la
riqueza medioambiental, cultural, etnográfica y paisajística y que no solo volváis a visitarnos sino que también seáis nuestros
embajadores en vuestros lugares de residencia.
No me queda más que animaros a que disfrutéis aprendiendo y compartiendo experiencias, que disfrutéis de vuestra estancia
entre nosotros y alcancéis los mayores éxitos profesionales. Sed muy bienvenidos.
DaMaría Pilar Ortiz Hidalgo
Alcaldesa de Canillas de Aceituno
V
ÍNDICE DE ARTÍCULOS
Aplicación web para el cálculo de un Índice de Calidad del Suelo de Olivar 1
Victor Aranda, Julio Calero, Arturo Montejo and Jose-Maria Serrano ........................
Propuesta de asignatura virtual para el máster de formación del profesorado: Plataformas de enseñanza virtual 7
José Luís Avila Jiménez, Juan Carlos Gamez Granados and Sebastián Ventura Soto ................
Una primera aproximación a la Semántica adaptable al Contexto en Bases de Datos Difusas 12
José Tomás Cadenas, Nicolás Marín Ruíz and M. Amparo Vila Miranda ......................
Diseño e implementación de un sistema de producción personalizada para una empresa de protectores solares 18
Eduardo Cano Lozano and Manuel J. Barranco García ................................
La red social como recurso didáctico: experiencia de su uso como aprendizaje cooperativo entre centros educativos. 24
Eduardo Cano Lozano, Manuela Cano Lozano and José Miguel Rodríguez Nieto .................
Descubrimiento de Subgrupos mediante Sistemas Difusos Evolutivos 30
Cristobal J. Carmona ..................................................
ZigBee Pulse Oximeter 36
Jose Maria Castillo Secilla, Jose Manuel Palomares, Joaquín Olivares, Jose Manuel Soto Hidalgo, Juan Carlos
Gamez Granados and Lilia D. Tapia Mariscal ................................
El resumen lingüístico como herramienta para el apoyo a la toma de decisiones 43
Rita Castillo-Ortega, Nicolás Marín Ruíz, Carlos Molina Fernández and Daniel Sánchez Fernández .......
fuzzyBSC for Quality Assurance Learning Process 49
Luis Cerda, Juan H. Campos, M. Rojas and Daniel Sanchez .............................
Fuzzy Sets for Image Texture Modelling based on Human Distinguishability of Coarseness 58
Jesus Chamorro-Martinez, Pedro Manuel Martínez-Jiménez and Jose Manuel Soto Hidalgo . . . .........
OL-RadioUJA. Ampliación de Funcionalidades 63
Macarena Espinilla, Ivan Palomares and David Parras ................................
Desarrollo de un sistema de toma de decisiones autónomo y ejemplo de aplicación a servicios de seguridad bajo
demanda 69
Francisco Estevez, Jose Manuel Palomares and Juan Carlos Gamez Granados ...................
ProReFPGA: plataforma educativa para la PROgramación REmota de FPGAs en la Universidad de Córdoba 74
José Manuel García García ...............................................
Estudio del funcionamiento del estándar CORBA mediante el desarrollo de una aplicación P2P en Java 79
José Manuel García García and Francisco Javier Navas Torres ............................
La Ontología de la Evaluación de Impacto Ambiental y sus Ontologías Breves 85
Julián Garrido and Ignacio Requena ..........................................
Recursos didácticos en el Grado en Ingeniería Informática para el aprendizaje de Matemáticas a través de la
Programación de Ordenadores 90
Eva Gibaja, Amelia Zafra, María Luque and Alberto Cano ..............................
Transversalidad en Metodología de la Programación. Propuesta metodológica para trabajar conceptos sobres
imágenes 96
Eva Gibaja, Amelia Zafra, María Luque and José María Luna ............................
Detección de elementos no estructurados en escenas 3D procedentes de escáneres láser 102
Manuel J. Gonzalez, Antonio J. Rueda, Rafael J. Segura, José M. Fuertes and Manuel J. Lucena .........
VI
Visualización 3D en el ámbito doméstico: una realidad 107
Jesús Jiménez, Rubén Pulido, Félix Paulano and Bernardino Domínguez ......................
Desarrollo de un procesador dual para prácticas sobre microprocesadores 113
Fernando León, Jose Maria Castillo Secilla and Joaquín Olivares ..........................
An alternative mechanism to represent SQL queries using Ontologies 118
Carmen Martinez-Cruz, Ignacio J. Blanco and M. Amparo Vila Miranda ......................
Simulation of fluids propagation by parallel distributed cellular automata 124
Francisco Martínez, M.D. Pérez, M.P Frías and A.J. Rivera .............................
Sistemas de Data Warehousing en el Ámbito de la Construcción 129
Nicolás Marín Ruíz, María Martínez Rojas and M. Amparo Vila Miranda .....................
Detección de mutaciones en TFBSs mediante tecnología difusa 135
Juan Antonio Morente-Molinera, Carlos Cano, Marta Cuadros, J. M. Martín and Armando Blanco ........
Aplicación para la gestión bibliotecaria de centros educativos 139
Francisco Javier Navas Torres .............................................
Localización y extracción de matrículas de automóviles - PlatesExtractor 141
Francisco Javier Navas Torres and José Manuel García García ............................
Facilitando la Docencia sobre el Funcionamiento Básico de Microprocesadores mediante una Nueva Herramienta
Hardware/Software 147
Hector Pomares, Sara Egea-Serrano, Lidia Lopez-Mansilla, Fernando Sanchez-Grima and Gonzalo Ruiz-Garcia .
Consultas bipolares en bases de datos temporales. Aplicación en bases de datos con datos históricos 150
Jose Enrique Pons, Christophe Billiet, Guy De Tré, Olga Pons, Els De Paermentier and Jeroen Deploige ....
Construyendo la Web de Cosas: Ahorro energético y gestión de iluminación en ciudades 156
Vicente Ruiz Rodríguez, Jesús González Peñalver and José Luis Carmona Morales ................
Optimización de recursos energéticos en bombeos de redes de agua mediante algoritmos de predicción y modelado
matemático 162
Gonzalo Ruiz-Garcia, Miguel Damas, Hector Pomares and Gonzalo Olivares ....................
Un sistema de recomendaciones para el tratamiento y prevención en fisioterapia 167
Álvaro Tejeda-Lorente, Carlos Porcel, Bernabé Esteban and Enrique Herrera-Viedma ...............
Diseño, Implantación y Evaluación de la Asignatura de Redes en un Entorno de Aprendizaje Virtual 173
Amelia Zafra, Eva Gibaja and María Luque ......................................
Programación de aplicaciones de red mediante sockets TCP para la asignatura de Redes 180
Amelia Zafra, Eva Gibaja, María Luque and Juan Luis Olmo ............................
Recursos did´
acticos en el Grado en Ingenier´
ıa
Inform´
atica para el aprendizaje de Matem´
aticas a
trav´
es de la Programaci´
on de Ordenadores
Eva Gibaja, Amelia Zafra, Mar´
ıa Luque, Alberto Cano
Departamento de Inform´
atica y An´
alisis num´
erico. Universidad de C´
ordoba
Email: egibaja@uco.es, azafra@uco.es, mluque@uco.es, i52caroa@uco.es
Resumen—Este trabajo presenta dos recursos did´
acticos para
el aprendizaje y refuerzo de conceptos b´
asicos de matem´
atica
discreta y ´
algebra lineal a trav´
es de las asignaturas de progra-
maci´
on impartidas en el primer curso de Grado en Ingenier´
ıa
Inform´
atica. Para ello planteamos dos propuestas pr´
acticas en las
que el alumnado pone en pr´
actica no solo los conceptos vistos
en clase de programaci´
on, sino que adem´
as permiten al alumno
reflexionar e interiorizar algoritmos matem´
aticos de diferente
complejidad que suelen resultarle dif´
ıciles de aprender.
Index Terms—Recurso did ´
actico, ´
algebra lineal, matem´
atica
discreta, cifrado, metodolog´
ıa de la programaci´
on
I. INTRODUCCI ´
ON
Las asignaturas relacionadas con la programaci´
on de or-
denadores requieren la realizaci´
on de numerosos ejercicios
pr´
acticos para que el alumno practique los conceptos aprendi-
dos. Estos ejercicios se basan, obviamente, en la programaci´
on
de la soluci´
on a problemas reales de diferente complejidad en
funci´
on de los conceptos que se requiera practicar. Por este
motivo, las asignaturas de programaci´
on constituyen un lugar
desde el que practicar programando no solo los conceptos
propios de programaci´
on, sino tambi´
en conceptos relacionados
con otras asignaturas que el alumno est´
a cursando. Este
art´
ıculo presenta la experiencia llevada a cabo durante el curso
2010/2011 en dos asignaturas: Introducci´
on a la Programaci´
on
(IP) y Metodolog´
ıa de la Programaci´
on (MP) del Grado en
Ingenier´
ıa Inform´
atica que se impartirse en la Universidad de
C´
ordoba. El Grado consta de 4 cursos, el primero de ellos
constituye el m´
odulo de formaci´
on b´
asica con contenidos de
Inform´
atica, Matem´
aticas, Inform´
atica y Empresa. La tabla
I resume la estructura de este primer curso donde se puede
ver que IP consta de 6 cr´
editos que se imparten durante
el primer cuatrimestre. En esta experiencia hemos enfocado
las pr´
acticas realizadas en estas asignaturas a la resoluci´
on
mediante ordenador de conceptos sobre aritm´
etica modular
y criptograf´
ıa que se imparten de forma simult´
anea en otras
dos asignaturas, ´
Algebra lineal yMatem´
atica discreta. Para
ello presentamos dos propuestas de pr´
acticas: una para la
asignatura IP que se imparte en el primer cuatrimestre y
otra para MP que se imparte en el segundo cuatrimestre de
tal modo que los alumnos, adem´
as de practicar conceptos
sobre programaci´
on [1] [2] [3], tambi´
en practicar´
an concep-
tos matem´
aticos que son necesarios para las asignaturas de
matem´
atica discreta [4] [5] y ´
algebra lineal [6] [7] citadas
*0 A 1 B 2 C 3
D4 E 5 F 6 G 7
H8 I 9 J 10 K 11
L12 M 13 N 14 O 15
P16 Q 17 R 18 S 19
T20 U 21 V 22 W 23
X24 Y 25 Z 26 ( 27
)28 , 29 30 ! 31
Tabla III
ALFABETO A UTILIZAR PARA RESOLVER LA PR´
ACTICA
anteriormente. Estas propuestas vienen acompa˜
nadas de un
resumen de los conceptos estudiados. Finalizaremos el trabajo
con una serie de conclusiones derivadas de la experiencia
realizada.
II. PROPUESTA 1. M´
ETODOS DE CIFRADO DE TEXTOS
Motivaci´
on
Esta pr´
actica la planteamos en la asignatura IP, de primer
cuatrimestre. La asignatura IP presenta al alumno los recursos
m´
as b´
asicos de programaci´
on en lenguaje C: tipos de datos
b´
asicos, estructuras de control, funciones, matrices, vectores,
estructuras y cadenas. Para practicar estos conceptos propone-
mos la implementaci´
on del algoritmo extendido de euclides
ym
´
etodos de cifrado de cadenas. La tabla II presenta un
resumen de los conceptos practicados tanto desde el punto
de vista de la programaci´
on como de las matem´
aticas. Para
implementar los distintos m´
etodos de cifrado se utilizar´
ael
alfabeto descrito en la tablaIII.
Algoritmo de Euclides extendido: Implementar una funci´
on
que calcule el algoritmo extendido de Euclides para calcular el
m´
aximo com´
un divisor de un n´
umero que devuelva la siguiente
informaci´
on:
el m´
aximo com´
un divisor de dos n´
umeros ayb.
el valor u
el valor v
El algoritmo de Euclides se describe a continuaci´
on, puede
verse un ejemplo de aplicaci´
on en IV.
EuclidesExtendido(a, b)
P1Leerayb
P2u’=1,v=1,u=0,v’=0,c=a,d=b
P3 q = cociente de dividir c entre d
r = resto de dividir c entre d
P4sir=0entoncesd=au+bvFIN
90 CANILLAS DE ACEITUNO, MÁLAGA
Primer cuatrimestre Segundo cuatrimestre
Inform´
atica
Introducci´
on a la Programaci´
on 6 Metodolog´
ıa de la Programaci´
on 6
Fundamentos y Estructura de Computadores 6
Matem´
aticas
C´
alculo 6 ´
Algebra Lineal 6
Estad´
ıstica 6 Matem´
atica Discreta 6
F´
ısica
F´
ısica 6 Circuitos y Sistemas Electr´
onicos 6
Empresa
Econom´
ıa y Administraci´
on de Empresas 6
Tabla I
M´
ODULO DE FORMACI´
ON B ´
ASICA.1ER CURSO
Algoritmo Tipos
b´
asicos
Estr. con-
trol
Funciones Paso
par´
ame-
tros
Vectores Cadenas
Alg.
euclides
√√√√√— —
Aritm´
eti-
ca
modular
— — — — — —
N´
um. pri-
mos
√√√√√— —
Teor´
ıa de
n´
umeros
√√√√√— —
Mcd y
mcm
√√√√√— —
Aritm´
eti-
ca enteros
grandes
√√— — — — —
M´
etodos
de cifrado
√ √ √ √ √ √ √
Tabla II
CONCEPTOS PRACTICADOS EN LA PROPUESTA 1
u’ u v’ v c d q r
1 0 0 1 1769 551 3 116
0 1 1 -3 551 116 4 87
1 -4 -3 13 116 87 1 29
4 5 13 -16 87 29 3 0
mcd(1769, 551) = 29 = 5*1769 ? 16*551
Tabla IV
MCD(1769, 551)
P5 si no, entonces
c=d,d=r
t=u,u’=u,u=t?qu,
t=v,v’=v,v=t?qv
P6 ir al Paso 3
Cifrado/descifrado Cesar: Implementar el cifrado C´
esar de
un mensaje, es decir, dado un mensaje, y una clave privada,
k, se transformar´
a cada letra del mensaje en un n´
umero, m,
(utilizando la tabla III). A dicho n´
umero se le suma una clave
privada ky se hace m´
odulo 32. La codificaci´
on de un mensaje
se puede expresar como: c=(m+k)mod32. Despu´
es se
vuelve a convertir cen una letra. Por ejemplo, si el mensaje,
m, es ”MAR” y la clave privada es 25, resulta que:
M=13 (13+25) mod 32 = 6 F
A=1 (1+25) mod 32 = 26 Z
R=18 (18+25) mod 32 =11 K
Por lo tanto, el mensaje cifrado, ser´
a ”FZK”.
Un mensaje se descifra a partir de un mensaje cifrado y la
clave privada, k, utilizada para cifrarlo, la funci ´
on devolver´
ael
mensaje sin cifrar. Para ello, se convierte cada car´
acter del
mensaje cifrado en un n´
umero, c, utilizando la tabla anterior
y se calcula m=(ck)mod32. Despu´
es se transforma m
en el car´
acter correspondiente. Por ejemplo, si desciframos el
mensaje anterior ”FZK” tenemos:
F=6 (6-25)=-19 + 32=13 M
Z= 26 (26-25) mod 32 = 1 A
K=11 (11-25) =-14+32=18 R
Cifrado/descifrado Af´
ın: Para cada car´
acter, hay que ob-
tener su c´
odigo, m, y el cifrado af´
ın hace la operaci´
on:
c=(am +b)mod32 siendo ayblas claves privadas.
Posteriormente transforma el valor, c, obtenido por su car´
acter
correspondiente. Por ejemplo, si queremos cifrar el mensaje
”MAR” con el cifrado af´
ın con las claves: a =7 y b =3, se
har´
ıa:
M =13 (7*13+3) mod 32= 30 ¿
A=1(7*1+3) mod 32=10 J
R=18(7*18+3) mod 32=1A
La funci´
on debe comprobar que la constante a es v´
alida, es
decir, que tiene inverso en Z32 1, ya que si esto no fuera as´
ıel
mensaje no se podr´
ıa descifrar. La funci´
on devuelve -1 en este
1Este valor existe si y s´
olo si mcd(a,m) = 1.M
´
as a´
un, si al usar el algoritmo
de Euclides extendido se obtiene 1 = au + mv, entonces el valor ues el inverso
modular de am´
odulo m
II JORNADAS ANDALUZAS DE INFORMÁTICA, JAI2011 91
caso y 1 en caso contrario. Para comprobar esta condici´
on se
utilizar´
a el algoritmo de Euclides extendido que ya ha sido
implementado en un apartado anterior.
Se implementar´
a el descifrado af´
ın de un mensaje apli-
cando el m´
etodo inverso al cifrado. Es decir, cada car´
acter
del mensaje se convertir´
aenunn
´
umero, c, y se calcular´
a:
m=(a1(cb))mod322. Donde a1es el inverso de aen
Z32.
¿=30 23*(30-3) mod 32= 13 M
J= 10 23*(10-3) mod 32 = 1 A
A=1 23*(1-3+32) mod 32= 18 R
Cifrado/descifrado Vernam: El cifrado de Vernam funciona
de la siguiente forma: un n´
umero mdel texto sin cifrar se le
hace la suma XOR bit a bit con el n´
umero correspondiente
kde la clave obteniendo el n´
umero cdel mensaje cifrado:
c=mk3. Tener en cuenta que la longitud de la clave debe
ser igual que la del mensaje. Por ejemplo, supongamos que
el mensaje que deseamos cifrar es: ”MAR” y que la clave es
”XYZ”. Entonces:
M=13=01101; X=24=11000
01101 11000 =10101 = 21 U
A=1; Y=25
125=24 X
R=18; Z=26
18 26=8 H
Para descifrar bastar´
a con hacer: m=ck. Tomando el
ejemplo anterior:
U=21
X=24
21 24=13M
X=24
Y=25
24 25=1 A
H=8
Z=26
826=18 R
Cifrado/descifrado RSA: Cada car´
acter del mensaje se en-
cripta utilizando la clave p´
ublica del receptor (n, e). Para ello,
la funci´
on de cifrado es: c=memodn. Por ejemplo, tomando
p=5, q=11 (n=55), e=7 y d=23, para cifrar el mensaje ”MAR”
tendr´
ıamos:
M =13 137mod55=7G
A=117mod55=1A
R=18187mod 55 = 17 Q
El mensaje cifrado se descifra utilizando el valor de la clave
privada (n, d). Para ello, la funci´
on de descifrado es: m=
cdmodn. Para descifrar el ejemplo anterior tendr´
ıamos:
G=7723mod 55 = 13 M
A=1123mod55=1A
2Si a1fuese negativo, podr´
ıamos sumarle 32 las veces que hiciera
falta hasta alcanzar un n´
umero positivo, denominado representante can´
onico.
An´
alogamente, si a-1fuera mayor que 32 podr´
ıamos restarle 32 las veces
necesarias hasta que estuviese comprendido entre0y32.
3Recordar que en C el operador XOR se corresponde con ˆ
,as
´
ı13
ˆ
24=13
24=21
p=5, q=11, φ(n)=40
e=3 y d=27
e=7 y d=23
e=13 y d=37
Tabla V
VALORES PARA PROBAR EL CIFRADO RSA
Q=171723mod 55 = 18 R
NOTA: Para evitar que las potencias desborden la capacidad
del tipo de dato, calcularemos memodn como un producto
acumulado 4:
DESDE (i=1; i<=e; i++)
{
prod = (prod *a) \% n;
}
En la tabla V hay algunos ejemplos para realizar y probar
el cifrado RSA.
Calcular par´
ametros del algoritmo RSA: Dados un par de
primos pyq(tal que pq>32), devuelve un conjunto de
valores v´
alidos para la clave p´
ublica y privada del receptor del
mensaje (d,e,n). A continuaci´
on se describen los pasos que
sigue el algoritmo:
1. En privado, el receptor del mensaje, R, escoge dos
n´
umeros primos pyq5, y los multiplica, obteniendo n
=pq(n*q es mayor que el cardinal del alfabeto). Los
valores de pyqno se hacen p´
ublicos.
2. Tambi´
en en privado, el receptor obtiene A continuaci´
on,
obtiene el valor (p-1)(q-1) (denominado funci´
on multi-
plicativa de Euler, φ(n)).
3. En privado, el receptor escoge un n´
umero e tal que 1<
e<φ(n)de manera que sea primo relativo con φ(n)6,
y le calcula su inverso m´
odulo φ(n)que llamaremos
d=(e1)φ(n). Para esto basta aplicar el algoritmo de
Euclides extendido 7.
4. El par de n´
umeros (d, n) es la clave privada y el par de
n´
umeros (e, n) es la clave p´
ublica.
5. Cuando el emisor, E, desea enviar un mensaje a R,lo
hace utilizando la clave p´
ublica de Rencriptando del
siguiente modo: c=memodn. Cosa que puede hacer,
pues conoce los n´
umeros eynque Rhizo p´
ublicos.
Ahora env´
ıa el mensaje cifrado, c.
6. El receptor recibe el mensaje cifrado y lo descifra
aplicando m=cdmodn. Es decir, utiliza su clave
privada para descifrar.
En la figura 1 tenemos un ejemplo de cifrado/descifrado
con RSA. Los par´
ametros usados aqu´
ı son muy peque˜
nos con
respecto a los que maneja el algoritmo.
4No olvidar el caso en que el exponente vale cero
5En la realidad, para que el algoritmo sea seguro, pyqtienen valores muy
grandes
6mcd(e, φ(n)) = 1
7Si al usar el algoritmo de Euclides extendido con mcd(e, φ(n)) se obtiene
1=eu+φ(n)v, entonces el valor use corresponde con d, el inverso modular
de em´
odulo φ(n).
92 CANILLAS DE ACEITUNO, MÁLAGA
Figura 1. Ejemplo de algoritmo RSA
III. PROPUESTA 2. CIFRADO DE IM ´
AGENES
Motivaci´
on
Esta pr´
actica la planteamos en la asignatura MP, de segundo
cuatrimestre. La asignatura MP presenta al alumno conceptos
avanzados de programaci´
on en lenguaje C: ficheros, memoria
din´
amica, punteros, listas pilas y colas, ordenaci´
onyb
´
usqueda,
y herramientas de programaci´
on (bibliotecas, makefiles, etc.).
Para practicar estos conceptos proponemos la implementaci´
on
de algoritmos de cifrado de im´
agenes, de este modo deber´
an
trabajar con ficheros de im´
agenes cargarlos en memoria y
procesarlos. Las im´
agenes no tienen un tama˜
no fijo, por lo
que habr´
a que recurrir a la utilizaci´
on de memoria din´
amica.
Dado que la complejidad de los programas implementados
comienza a aumentar, tambi´
en se har´
a uso de herramientas
de programaci´
on como makefiles, bibliotecas, argumentos en
l´
ınea de ´
ordenes, etc. La tabla VI presenta un resumen de
los conceptos practicados tanto desde el punto de vista de la
programaci´
on como de las matem´
aticas.
Mediante el cifrado de una imagen se pretende que la ima-
gen cifrada sea totalmente ilegible a la vista com´
un. El proceso
de descifrar as´
ı mismo debe garantizar la obtenci´
on de una
imagen totalmente id´
entica a la original. La esteganograf´
ıa,
por otro lado, es la rama de la criptolog´
ıa que trata sobre la
ocultaci´
on de mensajes, para evitar que se perciba la existencia
del mismo.
Cifrado de im´
agenes con el m´
etodo Vernam
Para cifrar con este m´
etodo, lo primero que deben hacer los
dos usuarios ser´
a generar una clave secreta. En este caso que
nos ocupa, la clave ser´
a una imagen, generada aleatoriamente,
del mismo tama˜
no de la imagen a cifrar. Esta clave debe
permanecer totalmente en secreto por ambos usuarios, ya que
va a servir para cifrar y descifrar. El cifrado de Vernam utiliza
la clave secreta para cifrar mediante la operaci´
on XOR.
Cuando uno de ellos le quiera enviar al otro una imagen
cifrada har´
a lo siguiente: coger´
a la imagen original Ayla
clave K, obteniendo la imagen cifrada Bmediante un XOR
bit a bit entre cada par de p´
ıxeles 8.
8Recordar que en C el operador XOR se corresponde con ˆ
,as
´
ı13
ˆ
24=13
24 = 21.
Por ejemplo, si el nivel de gris del primer elemento de la
imagen original Aes 129 y el primer elemento de la clave K
es 231, entonces el primer elemento de la imagen cifrada B
ser´
a 102 ya que: (129 = 10000001) (231 = 11100111)
01100110 = 102.
Para descifrar sencillamente haremos la operaci´
on a la inver-
sa: (102 = 01100110231 = 11100111) 10000001 = 129
Cifrado matricial
El cifrado matricial 9consiste en coger los niveles de gris
de la matriz de dos en dos, empezando en la esquina superior
izquierda de la matriz y movi´
endonos de izquierda a derecha y
de arriba a abajo: el primer bloque ser´
a{a11,a
12}, el segundo
bloque ser´
a{a13,a
14},yas
´
ı sucesivamente.
Cada bloque de dos niveles de gris de la imagen original se
va a transformar en otros dos n´
umeros mediante un producto
matricial con una matriz secreta Kde tama˜
no 2x2. Suponga-
mos que el bloque que estamos procesando es: {125,137}y
que la matriz secreta es:
K=21 35
18 79
Hacemos el producto matricial:
21 35
18 79 
125
137 =740
13073
=252
17 mod256
Como vemos los n´
umeros {740, 13073}exceden el valor
255 y por lo tanto no se corresponden con niveles de gris.
Para conseguir que el resultado proporcione n´
umeros entre
0 y 255, tomaremos m´
odulo 256. Ahora el p´
ıxel que ten´
ıa
nivel de gris 125 lo pondremos a 252 y el p´
ıxel de al lado
que ten´
ıa nivel de gris 137 ser´
a puesto a 17. De esta manera,
vamos transformando cada par de valores de gris consecutivos
por otro par de valores de gris diferentes. De esta forma
conseguimos codificar la imagen inicial.
9Este m´
etodo se puede generalizar para claves de mayor tama˜
no realizando
el c´
alculo de la inversa mediante el m´
etodo de Gauss
II JORNADAS ANDALUZAS DE INFORMÁTICA, JAI2011 93
Cambio base Cifrado Esteganograf´
ıa Aritm´
etica matricial Inversa Matriz
Ficheros — √ √ — —
Imagen y p´
ıxel — √ √ — —
Estructuras — √ √ — —
Mem. din´
amica — √ √ √ √
Matrices √ √ √ √ √
Herramientas √ √ √ √ √
Tabla VI
CONCEPTOS PRACTICADOS EN LA PROPUESTA 2
El receptor de la imagen cifrada, conoce cu´
al es la matriz
secreta de cifrado K. Para deshacer el proceso y poder recupe-
rar as´
ı la imagen original necesitar´
a averiguar la matriz inversa
de cifrado.
Sabemos que la inversa de una matriz
K=ab
cd
K1=1
ad bc db
ca
Entonces para que dicha inversa exista es necesario que
|K|=ad bc =0pero en nuestro caso, como estamos
trabajando m´
odulo 256, es necesario adem´
as que el n´
umero
|K|sea primo relativo con el m´
odulo para que le podamos
calcular el inverso y poder hacer los c´
alculos anteriores.
Para hacer esta comprobaci´
on podemos utilizar el algoritmo
extendido de Euclides. Por ejemplo, si Kfuera:
K=21 35
18 79 ⇒|K|= 1029 = 5(mod256)
Como 5 y 256 son primos relativos, el 5 tendr´
a inverso
m´
odulo 256 que calcularemos usando el algoritmo extendido
de Euclides: 256(1) + 5(51) = 1 51=51 =
205(mod256)
Por lo tanto la inversa ser´
a:
K1=1
ad bc db
ca
=1
579 35
18 21
= 205 79 35
18 21 =16195 7175
3690 4305
=67 249
150 209 (mod256)
¿Qu´
e ocurre en caso de que el n´
umero de columnas de
la matriz no sea par? En este caso, al cifrar se a˜
nadir´
a una
columna ficticia, por ejemplo de ceros que se utilizar´
a para
cifrar (observar que siempre se generar´
a el mismo valor para
todos los p´
ıxeles de la columna ficticia). Estos p´
ıxeles ficticios
no se guardar´
an en la imagen cifrada. Al descifrar a˜
nadiremos
la columna ficticia cifrada (es un valor sencillo de calcular
disponiendo de la clave de cifrado), nuevamente estos p´
ıxeles
ficticios no se incluir´
an en el fichero de la imagen descifrada.
0 1 2 3 4 5 6
0 115 120 125 125 125 125 125
1 115 120 125 125 125 125 130
2 115 120 125 130 130 130 130
3 115 120 125 130 130 130 130
4 115 120 125 130 130 130 130
5 115 120 125 130 130 130 130
Tabla VII
IMAGEN ORIGINAL
Mapa del gato de Arnold
Este m´
etodo realiza una permutaci´
on de los p´
ıxeles de la
imagen utilizando para ello una matriz secreta. Supongamos
que usamos una matriz secreta:
K=11
12
Supongamos que {x, y}es la posici´
on de un p´
ıxel (xes la
fila entre 0 y nfil-1,yes la columna entre 0 y ncol-1). Este
algoritmo solo puede aplicarse a matrices cuadradas, por lo
que nfil=ncol. Para cifrar, realizaremos la operaci´
on:
x
y=11
12
 x
y(modnfil)
Esto significa que el p´
ıxel que ocupa la posici´
on {x, y}pasa
a tener la posici´
on {x’, y’}. Por ejemplo, en una imagen de
124x124 el p´
ıxel (1,1) ir´
ıa a la posici´
on:
2
3=11
12
 1
1(mod124)
Para descifrar, utilizaremos la inversa, del mismo modo que
se ha descrito en el cifrado matricial.
1
1=21
11
=2 123
123 1  2
3(mod124)
Esteganograf´
ıa
La esteganograf´
ıa se puede aplicar a im´
agenes mediante
diferentes t´
ecnicas, una de ellas consiste en la modificaci´
on
del bit de menor peso (LSB: less significant bit) de algunos
pixels de la imagen. Al tratarse del bit de menor peso de un
p´
ıxel, ´
este se ve sometido a un cambio imperceptible de color.
Ejemplo de codificaci´
on
Sea la imagen original de la tabla VII:
Mensaje a codificar: ”so”
1. A˜
nadir al mensaje la secuencia ”***” de fin de mensaje:
”so***”
94 CANILLAS DE ACEITUNO, MÁLAGA
0 1 2 3 4 5 6
0 114 121 125 125 124 124 125
1 115 120 125 125 124 125 131
2 115 121 124 130 131 130 131
3 114 121 124 130 130 131 130
4 115 120 125 130 130 130 131
5 114 121 124 131 130 130 130
Tabla VIII
IMAGEN CON MENSAJE
0 1 2 3 4 5 6
0 0 1 1 1 0 0 1
1 1 0 1 1 0 1 1
2 1 1 0 0 1 0 1
3 0 1 0 0 0 1 0
4 1 0 1 0 0 0 1
5 0 1 0 1 0 0 0
Tabla IX
MATRIZ LSB
2. Comprobar si el mensaje cabe dentro de la imagen. Cada
car´
acter del mensaje est´
a codificado con 1 byte (8 bits),
habr´
a que tener en cuenta, adem´
as, la secuencia ”***”
de fin de mensaje.
Tama ˜
no m´
ınimo de la imagen: 5 caracteres x 8
p´
ıxeles/car´
acter = 40 p´
ıxeles.
Tama ˜
no de la imagen actual: 7x6=42 p´
ıxeles.
3. Obtener el mensaje en decimal: 115 111 42 42 42.
4. Obtener el mensaje en binario binario: 01110011
01101111 00101010 00101010 00101010
5. Esconder el mensaje en los bits menos significativos de
la imagen original (ver tabla VIII).
Ejemplo de decodificaci´
on
Sea la imagen con mensaje de la tabla VIII.
1. Obtener los bits menos significativos (ver tabla IX).
2. Extraer el mensaje. Cada car´
acter est´
a codificado con
8 bits. El mensaje comienza en el primer p´
ıxel de
la imagen y termina con la secuencia ”***” de fin
de mensaje: 01110011 01101111 00101010 00101010
00101010
3. Decodificar el mensaje: ”so***”
Para ello, el programa deber´
a implementar las siguientes
funciones:
CONCLUSIONES
Este trabajo ha presentado dos interesantes propuestas de
recursos did´
acticos para el aprendizaje de conceptos matem´
ati-
cos a trav´
es de asignaturas relacionadas con la programaci´
on,
dentro del t´
ıtulo de Grado en Ingenier´
ıa inform´
atica. Se trata
de dos aportaciones pr´
acticas en las que tiene que implementar
algoritmos de distinta dificultad vistos en clase que pueden
servir como recurso did´
actico a otros profesores que imparten
materias similares en otras titulaciones y universidades. Las
principales ventajas de utilizar este tipo de recursos se detallan
a continuaci´
on:
El hecho de que el alumno tenga que implementar y
probar los algoritmos le har´
a reflexionar sobre el funcio-
namiento de los mismos, lo que le llevar´
a a una mejor
comprensi´
on.
La implementaci´
on de algoritmos de cifrado permite al
alumno practicar los conceptos vistos en ambas asigna-
turas con ejemplos de aplicaci´
on real, lo que le motiva
al estudio de todas las materias implicadas.
El hecho de que los conceptos practicados en progra-
maci´
on sean vistos en las asignaturas de matem´
aticas
simplifica el n´
umero de tareas que tiene que realizar el
alumno.
La pr´
actica de conceptos como matrices y memoria
din´
amica a trav´
es de im´
agenes tambi´
en supone un
est´
ımulo muy favorable para el alumno.
El siguiente paso ser´
ıa una coordinaci´
on m´
as fuerte entre
asignaturas de modo que los trabajos realizados se calificaran
en todas las materias implicadas.
AGRADECIMIENTOS
Los autores agradecen la financiaci´
on aportada por los
proyectos P08-TIC-3720 y TIN2008-06681-C06-03.
REFERENCIAS
[1] L. Joyanes, I. Zahonero. Programaci´
on en C. Metodolog´
ıa, algoritmos
y estructuras de datos. McGraw-Hill, 2005.
[2] L. Joyanes, A. Castillo, L. S´
anchez, I. Zahonero. Programaci´
on en C:
libro de problemas. McGraw-Hill, 2003.
[3] Kernigham, N. B., Ritchie, M. D. El lenguaje de programaci ´
on C.
Prentice-Hall. 1989
[4] Rosen, K. Matem´
atica Discreta y sus aplicaciones. McGrawHill. 5a
Edici´
on. 2004
[5] Garc´
ıa, C., L´
opez, J. y Puigjaner, D Matem´
atica Discreta. Problemas y
ejercicios resueltos. Ed. Prentice Hall, 2002.
[6] Noble B., Daniel J.W. ´
Algebra Lineal Aplicada;. Ed. Prentice Hall
Hispanoamericana, S.A. 1989.
[7] Grossman, S. I. ´
Algebra Lineal. McGraw-Hill, 2005.
II JORNADAS ANDALUZAS DE INFORMÁTICA, JAI2011 95
186 CANILLAS DE ACEITUNO, MÁLAGA
ÍNDICE DE AUTORES
Aranda, Victor 1
Avila Jiménez, José Luís 7
Barranco García, Manuel J. 18
Billiet, Christophe 147
Blanco, Armando 135
Blanco, Ignacio J. 113
Cadenas, José Tomás 12
Calero, Julio 1
Campos, Juan H. 49
Cano Lozano, Eduardo 18, 24
Cano Lozano, Manuela 24
Cano, Alberto 85
Cano, Carlos 135
Carmona Morales, José Luis 156
Carmona, Cristobal J. 30
Castillo Secilla, Jose Maria 36, 113
Castillo-Ortega, Rita 43
Cerda, Luis 49
Chamorro-Martinez, Jesus 58
Cuadros, Marta 135
Damas, Miguel 162
De Paermentier, Els 147
De Tré, Guy 147
Deploige, Jeroen 147
Domínguez, Bernardino 102
Egea-Serrano, Sara 147
Espinilla, Macarena 63
Esteban, Bernabé 167
Estevez, Francisco 69
Frías, M.P 75
Fuertes, José M. 96
Gamez Granados, Juan Carlos 7, 36, 69
García García, José Manuel 74, 79, 141
Gibaja, Eva 85, 90, 173, 180
Gonzalez, Manuel J. 96
González Peñalver, Jesús 156
Herrera-Viedma, Enrique 167
Jiménez, Jesús 102
León, Fernando 113
Lopez-Mansilla, Lidia 147
Lucena, Manuel J. 96
Luna, José María 90
Luque, María 85, 90, 173, 180
Martinez-Cruz, Carmen 118
II JORNADAS ANDALUZAS DE INFORMÁTICA, JAI2011 187
Martín, J. M. 135
Martínez Rojas, María 129
Martínez, Francisco 124
Martínez-Jiménez, Pedro Manuel 58
Marín Ruíz, Nicolás 12, 43, 129
Molina Fernández, Carlos 43
Montejo, Arturo 1
Morente-Molinera, Juan Antonio 135
Navas Torres, Francisco Javier 79, 139, 141
Olivares, Gonzalo 162
Olivares, Joaquín 36, 113
Olmo, Juan Luis 180
Palomares, Ivan 63
Palomares, Jose Manuel 36, 69
Parras, David 63
Paulano, Félix 102
Pomares, Hector 147, 162
Pons, Jose Enrique 150
Pons, Olga 150
Porcel, Carlos 167
Pulido, Rubén 102
Pérez, M.D. 124
Rivera, A.J. 124
Rodríguez Nieto, José Miguel 24
Rojas, M. 49
Rueda, Antonio J. 96
Ruiz Rodríguez, Vicente 156
Ruiz-Garcia, Gonzalo 147, 162
Sanchez, Daniel 49
Sanchez-Grima, Fernando 147
Segura, Rafael J. 96
Serrano, Jose-Maria 1
Soto Hidalgo, Jose Manuel 36, 58
Sánchez Fernández, Daniel 43
Tapia Mariscal, Lilia D. 36
Tejeda-Lorente, Álvaro 167
Ventura Soto, Sebastián 7
Vila Miranda, M. Amparo 12, 118, 129
Zafra, Amelia 85, 90, 173, 180
COLABORAN:
Excmo. Ayto. de Canillas de Aceituno
Universidad de Córdoba
JAI2011
Canillas de Aceituno
ResearchGate has not been able to resolve any citations for this publication.
Ahorro energético y gestión de iluminación en ciudades 156
  • Construyendo La
  • Web De Cosas
Construyendo la Web de Cosas: Ahorro energético y gestión de iluminación en ciudades 156
Problemas y ejercicios resueltos
  • C García
  • J López
  • Puigjaner
  • Matemática Discreta
García, C., López, J. y Puigjaner, D Matemática Discreta. Problemas y ejercicios resueltos. Ed. Prentice Hall, 2002.
El lenguaje de programación C
  • N B Kernigham
  • M D Ritchie
Kernigham, N. B., Ritchie, M. D. El lenguaje de programación C. Prentice-Hall. 1989
Propuesta metodológica para trabajar conceptos sobres imágenes 96
  • Transversalidad En Metodología De La Programación
Transversalidad en Metodología de la Programación. Propuesta metodológica para trabajar conceptos sobres imágenes 96
Programación en C: libro de problemas
  • L Joyanes
  • A Castillo
  • L Sánchez
  • I Zahonero
L. Joyanes, A. Castillo, L. Sánchez, I. Zahonero. Programación en C: libro de problemas. McGraw-Hill, 2003.
Matemática Discreta y sus aplicaciones. McGrawHill. 5 a Edición
  • K Rosen
Rosen, K. Matemática Discreta y sus aplicaciones. McGrawHill. 5 a Edición. 2004
Simulation of fluids propagation by parallel distributed cellular automata 124
  • Carmen Martinez-Cruz
  • Ignacio J Blanco
  • M Amparo Vila Miranda
Carmen Martinez-Cruz, Ignacio J. Blanco and M. Amparo Vila Miranda...................... Simulation of fluids propagation by parallel distributed cellular automata 124
Álgebra Lineal Aplicada
  • B Noble
  • J W Daniel
Noble B., Daniel J.W.Álgebra Lineal Aplicada;. Ed. Prentice Hall Hispanoamericana, S.A. 1989.