domingo, 19 de marzo de 2017

Reeingeniería del ejemplo en Flanagan

Introducción


Para poder aplicar la Reeingeniería en un software es importante conocer todos los factores que esto implica, de misma manera, saber lo que realmente la reeingeniería de un software nos proporciona.

Recordando rápidamente, tenemos que la reeingeniería de un software en términos coloquiales es un proceso en el cuál teniendo un programa analizamos sus funciones generales que lo constituyen, así como su código fuente para saber cómo está constituido, cómo funciona y para qué sirve.

Teniendo esto en cuenta también se debe saber que este proceso cuenta que una serie de pasos para poder ser realizarlo, los cuáles son:

  • Análisis de Inventario
  • Restructuración de documentos
  • Ingeniería Inversa
  • Restructuración de código
  • Restructuración de datos

  • Ingeniería directa

ANÁLISIS DE DATOS


Clase Alumno: Esta clase se utiliza para dar de alta, modificar o eliminar alumnos en el                      sistema. Cada alumno posee los datos de año, apellidos de la persona,                                         procedencia del alumno, C.P, dirección, etc.

Clase Asignatura: En esta clase se realiza  una consulta a la base de datos para poder                         traer de esta lo siguiente: Nombre de la asignatura, tipo, cuatrimestre,                                                     créditos prácticos y créditos teóricos, esto lo imprime en un html.

Clase Matrículas: En esta clase únicamente se realiza cuna consulta a la base de datos                     correspondiente de donde trae las matrículas correspondientes de los                                                      alumnos y docentes, seguidamente los imprime.

Clase Persona: Esta clase se encarga del funcionamiento de agregar, eliminar y                                   consultar todas las personas que se encuentran registradas en el sistema.

REESTRUCTURCIÓN DE DATOS

Modulo Persona: Datos que se requieren par registrar una persona.

  • Nombre                     
  • Apellidos
  • Dirección
  • C.P
  • localidad
  • sexo
  • Provincia
  • teléfono
  • email
  • lugar de nacimiento
  • fecha de nacimiento
  • nacionalidad
Datos que requiere la persona en el sistema:
  • Acción a realizar
  • Identificador de Persona
  • número de registro

Modulo Alumno: Además de los datos como persona, en este módulo tendrá que tener los datos siguientes. 

  • Usuario
  • Contraseña 
  • Identificador de Persona
  • Pertenece a familia numerosa
  • Centro de Procedencia
  • Nota de Acceso

Modulo Asignaturas: En este módulo de deberán ingresar los siguientes datos.

  • Nombre de la Asignatura
  • Tipo de Asignatura
  • Créditos Prácticos
  • Créditos Teóricos
  • Constancia

Modulo Matrículas: Datos necesarios para este módulo.

  • Matrícula 
  • Tipos de matrícula
  • Fecha de matriculación
  • Curso
  • Alumno
  • Fecha de Pago
  • Identificador de la persona
  • Cantidad




Podemos concluir que para poder llevar a cabo la reeingeniería de software es de suma importancia que es saber la función principal del sistema, de cómo está hecho y con qué. Esto anterior muy importante para poder aplicarle modificaciones, quitarle algunas funciones, o cualquier modificación.

REFERENCIAS

Fco. Javier García Castellano. (2005-2006). Tutorial de Servlets y JDBC. 19/03/2017, de DECSAI Sitio web: http://flanagan.ugr.es/docencia/2005-2006/2/servlets/index.html

domingo, 12 de marzo de 2017

Reingeniería

La ingeniería se produce en dos niveles distintos de abstracción. En el nivel de negocios, la reingeniería se concentra en el proceso de negocios con la intención de efectuar cambios que mejoren la competitividad en algún aspecto de los negocios. En el nivel del software, la reingeniería examina los sistemas y aplicaciones de información con la intención de reestructurarlos o reconstruirlos de tal modo que muestren una mayor calidad.

"La reingeniería es un proceso mediante el cual se mejora un software existente haciendo uso de técnicas de ingeniería inversa y reestructuración de código."
La Reingeniería del software se puede definir como la modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.

Vivimos en un mundo en constante cambio. Las demandas de funciones de negocios y de tecnología de información que las soportan están cambiando a un ritmo que impone mucha presión competitiva en todas las organizaciones comerciales. Tanto los negocios como el software que soportan (o es) el negocio deberán diseñarse una vez más para mantener el ritmo.

Entre los beneficios de aplicar reingeniería a un producto existente se puede incluir:
  • Pueden reducir los riegos evolutivos de una organización.
  • Puede ayudar a las organizaciones a recuperar sus inversiones en software.
  • Puede hacer el software más fácilmente modificable
  • Amplía las capacidades de las herramientas CASE
  • Es un catalizador para la automatización del mantenimiento del software
  • Puede actuar como catalizador para la aplicación de técnicas de inteligencia artificial para resolver problemas de reingeniería

PASOS DE LA REINGENIERIA DEL SOFTWARE

  1. Análisis de Inventario: Los candidatos a la reingeniería aparecen cuando se ordena esta información en función de su importancia para el negocio, longevidad, mantenibilidad actual y otros criterios localmente importantes. Es entonces cuando es posible asignar recursos a las aplicaciones candidatas para el trabajo de reingeniería.
  2. Restructuración de documentos: Se utiliza un enfoque de “documentar cuando se toque”. El sistema es crucial para el negocio y debe volver a documentarse por completo incluso en este caso un enfoque inteligente es recortar la documentación a un mínimo esencial. Cada una de estas opciones es viable. Una organización de software debe elegir la más apropiada para cada caso.
  3. Ingeniería Inversa: En la mayoría de los casos, el programa del cual hay que hacer una ingeniería inversa no es el de un rival, sino, más bien, el propio trabajo de la compañía. Los “secretos” que hay que comprender resultan incomprensibles porque nunca se llegó a desarrollar una especificación. Consiguientemente, la ingeniería inversa del software es el proceso de análisis de un programa con el fin de crear una representación de programa con un nivel de abstracción más elevado que el código fuente.
  4. Restructuración de código: Llevar a cabo esta actividad requiere analizar el código fuente empleando una herramienta de restructuración, se indican las violaciones de las estructuras de programación estructurada, y entonces se re estructura el código (esto se puede hacer automáticamente). El código restructurado resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalías. Se actualiza la documentación interna del código.
  5. Restructuración de datos: La restructuración de datos es una actividad de reingeniería a gran escala. En la mayoría de los casos, la restructuración de datos comienza con una actividad de ingeniería inversa. La arquitectura de datos actual se analiza con minuciosidad y se define los modelos de datos necesarios, se identifican los objetivos de datos y los atributos, y después se revisa la calidad de las estructuras de datos existentes.
    Cuando la estructura de datos es débil (por ejemplo, actualmente se implementan archivos planos, cuando un enfoque relacional simplificaría muchísimo el procesamiento), se aplica una reingeniería a los datos.
  6. Ingeniería directa: En un mundo ideal, las aplicaciones se reconstruyen utilizando un “motor de reingeniería” automatizado. En el motor se insertaría el programa viejo, que lo analizaría, restructuraría y después regeneraría la forma de exhibir los mejores aspectos de la calidad del software.
REFERENCIAS
Ariel Vargas. (jueves, 9 de diciembre de 2010). Ingenieria del Software. 12 de marzo del 2017 , de Con la tecnología de Blogger. Sitio web: https://www.blogger.com/blogger.g?blogID=2721371569767035034&pli=1#editor/target=post;postID=4715231428378438049

Sin nombre. (28 abril, 2011). Reingeniería de la Ingeniería del Software. 12 de marzo del 2017, de WordPress.com Sitio web: https://isoftwareunesum.wordpress.com

Ana Toro. (26 de abr. de 2012). Ingeniería Inversa y Reingeniería. 12 de marzo del 2017, de SlideShare Sitio web: https://es.slideshare.net/moimedinaq/ingeniera-inversa-y-reingeniera-de-software?next_slideshow=1


martes, 7 de marzo de 2017

Casa Telmex

El grupo 6IM7 el día 16 de febrero del presente año se realizó una salida a Casa Telmex, donde uno puede tomar cursos para actualizarse en área de informática o programación.

En la salida se nos dieron dos tipos de cursos, donde en cada uno de ellos nos explicaban componentes, experiencias y funcionalidades de algunas cosas de programación. En una de las sesiones en mi caso (ya que al grupo nos repartieron en dos grupos) primeramente realizamos un programa en Scratch, el cuál nos indicaron que podríamos hacer un juego de gato o un buscaminas, nos explicaron como funcionaba cada uno de los juegos y después procedimos a llevarlo a cabo.

En la segunda sesión, que cabe destacar fue una de mis partes favoritas no hablaron sobre la seguridad informática, donde tuvimos una plática con el guía donde nos explicaba que tan importante es la seguridad en los programas y como nos pueden llegar a perjudicar personas externas en nuestro proyectos, según parece la idea original era llevar a cabo una práctica en cmd pero fue tanta emoción por parte del guía, del profesor que nos acompañaba y nosotros lo alumnnos que terminamos en una intensa y muy interesante plática de seguridad informática.

Al final del día compañeros con el último guía realizaron mil y un preguntas sobre seguridad informática y en la despedida los guías nos invitaron a tomar cursos gratuitos a Casa Telmex.

domingo, 26 de febrero de 2017

Leyes de Lehman

A principios de los 80 Lehman formuló las que se conocen como leyes de la evolución del software, que escribió desde su observación de la evolución del OS/360y 370. Lehman dividió los sistemas software en tres tipos: los S (que pueden especificarse formalmente, son estáticos), los P (que no pueden ser especificados y es necesario un proceso iterativo para ello) y los E (sistemas que ya funcionan en el mundo real). 


Las leyes describen el balance entre las fuerzas que impulsan nuevos desarrollos, y las fuerzas que ralentizan el proceso. Se tienen ocho leyes que son:

  • Ley del cambio continuo 
  • Ley de la complejidad incremental 
  • Ley de la auto regulación 
  • Ley de la conservación de la estabilidad organizacional 
  • Ley de conservación de la familiaridad 
  • Ley del crecimiento continuo 
  • Ley del decremento en la calidad 
  • Ley de los sistemas de retroalimentación

Ejemplos de las Leyes de Lehman



Ley del Cambio Continuo (1ra Ley de Lehman)
Un ejemplo de esta ley puede ser como ejemplo del último vocho producido en México, especificamente, en Puebla. Este vehículo fue producido primero en Alemania y después en todo el mundo, hasta en México.

Logró gran aceptación alrededor del planeta, sin embargo, debido a que permanecio sin cambios por mucho tiempo, su producción y ventas comenzaron a decaer, hasta que en 1971 dejo de producirse en Alemania y en 2004 en todo el mundio. Esto refleja lo que quiere decir la primera ley, puesto que un sistema necesariamente tiene que cambiar o sí no se volverá menos útil para su entorno. El Volkswagen Sedán al no cumplir con esta ley y al no ser modificado, fue sacado del mercado.

Ley de la Complejidad incremental (2nda Ley de Lehman)

Esta ley puede aplicar a la última actualización de Android: Android 4.4 KitKat, en la cual se realizaron distintos cambios dentro de su código, incluyendo la máquina virtual en la que corre, ya que conforme avanzaban las actualizaciones de Android, dicho sistema comenzó a hacerse más pesado. Es por esto que Google, se dedicó a Desarrollar el Sistema operativo en celulares de gama baja, para ofrecer la mejor experiencia con las últimas novedades en su última versión.
Ley de la auto regulación (3ra Ley de Lehman)
Entre más grande sea un sistema más complicado es aplicarle mantenimiento, Windows al ser un sistema operativo, entre más complejo sea el cambio o más grande sea el número de actualizaciones, podría traer más errores como los mencionados en la noticia.

Por otro lado, si se hubieran aplicado pequeños cambios jerarquizados por relevancia, tal vez éstas actualizaciones no hubieran provocado los malos resultados que se destacan en la noticia.
Ley de la conservación de la estabilidad organizacional (4ta Ley de Lehman)
Podemos comparar las organizaciones que tienen distintas empresas de software, en este caso compararé dos de los proyectos más grandes de Microsoft, Windows y Windows Phone, ambos a pesar de ser sistemas operativos para el usuario estas divididos en su desarrollo. Microsoft dedica muchas más personas a el desarrollo de una versión de Windows para PC que para Windows Phone, ya que la cuota de usuarios que debe de cubrir Windows es mayor, además de que comprende de mayor dificultad realizar un Sistema Operativo de Escritorio que uno móvil, es por esto que se requiere de más personal en Windows de PC para poder entregar más rápido actualizaciones y versiones nuevas.
Ley de la conservación de la Familiaridad (5ta Ley de Lehman)
Como ejemplo de esta ley puede ser el desbordamiento de un canal de aguas negras en Torreón provocado por el aumento poblacional en las áreas alrededor de este.

Mencionan que debido a la saturación de las líneas que cruzan por el lugar, así como el aumento de materiales sólidos que al acumularse en cierto punto, bloquean el flujo normal de las aguas hacia la planta tratadora, y hacen que las aguas se desborden. Se puede notar la primera ley en que el aumento a un sistema, en este caso una civilización, provoca defectos en el mismo, y se debe dar una segunda "entrega" y reparar los mismos.
Ley del crecimiento continuo (6ta Ley de Lehman)
Android desde sus versiones primitivas (1.0 hasta 2.1), mantenía una experiencia que aun dejaba mucho que desear, no presentaba una interfaz amigable para el usuario común, ya que iba un poco más dedicado a empresarios que consultaban sus correos, navegaban en internet entre otras cosas. En versiones posteriores se intentó mejorar esto, pero aún seguía con ciertas cosas que parecían bastante complicadas para los usuarios, hasta que llegó Android 4.0, el cual unificó las plataformas (Tabletas y Celulares) en las que ya estaba instalado Android, con una nueva y renovada interfaz muchísimo más familiar. En esta se ofrecían distintas opciones de personalización, además de novedosas funciones, incluyendo Android Beam y Google Now, funciones bastante importantes y útiles que ahora no resultan ninguna dificultad al usarlos.
Ley del decremento en la calidad (7a Ley de Lehman)
En este caso podemos poner como ejemplo de las redes sociales, algunas redes sociales se actualizaron de una manera eficiente, por ejemplo, Facebook sobresalió ya que cumplió las demandas de los usuarios, un servicio de mensajería instantánea (Chat), en cambio algunas otras redes sociales que no se actualizaron dejaron de ser usadas tal como Hi5, MySpace, SkyRock, etc.

Ley de los sistemas de retroalimentación (8a Ley de Lehman)

En Windows 8, cuando salió a la luz, los usuarios tenían muchísimos problemas, ya que en esta última versión el sistema cambió completamente de interfaz, añadiendo distintas funcionalidades y quitando algunas otras. Esto molestó a muchos usuarios de Windows, por lo que las redes sociales de Microsoft y su sistema de Soporte Técnico se llenó de quejas. Es por ello que Microsoft lanzó una encuesta a principios de 2013 para saber qué es lo que los usuarios necesitarían en la próxima versión de Windows, y gracias a dicha encuesta, así fue cómo surgió Windows 8.1, con varias mejoras que solucionarios las molestias de los usuarios, además, en dicha versión se incluyó una app de “Ayuda y Soporte” en la cual se puede hacer FeedBack y hacer distintas sugerencias, todo esto con el fin de analizarlas e implementarlas en su próxima versión: Windows 8.2.


REFERENCIAS


domingo, 19 de febrero de 2017

Mantenimiento se Software, Soporte de Software y Soporte Técnico.

SOPORTE DE TÉCNICO

La noción de
soporte se utiliza para nombrar a algo que brinda un respaldo, que puede ser físico o simbólico. 

Lo técnico, por otra parte, se asocia a aquello que se aplica en la ciencia o una disciplina artística.

Entonces tenemos que en el software, el Soporte Técnico un rango de servicios por medio del cual se proporciona asistencia a los usuarios al tener algún problema al utilizar un producto o servicio, ya sea este el hardware o software de una computadora o cualquier otro equipo o dispositivo, es decir, es aquella existencia que se le brinda a un usuario. 
Este puede ser de 2 formas el soporte técnico presencial y el soporte técnico de distancia. El técnico en soporte debe cumplir ciertas características:
     
     1. Estar especializado en soporte.
     2. Poseer un alto grado de ética.
     3. Contar con una licencia o permiso para eje ser dicha actividad.
     4. Contar con el equipo adecuado para efectuar el trabajo.

Este servicio por lo general se brinda con motivo de obtener un ingreso económico y lo ofrecen algunas empresas que dan una garantía con respecto al servicio brindado o también lo pueden brindar personas naturales capacitadas que es un poca menos confiable pero también
mas económico.

Tipos de Soportes Técnicos:

Resultado de imagen para soporte tecnico definicion
  • Soporte técnico vía telefónica: por lo general se brinda este servicio para averías físicas simples(cables mal conectados) o problemas de software simple (configuraciones básicas), y se trata de recibir indicaciones de un técnico por vía telefónica.
  • Soporte técnico vía correo electrónico: consiste en que un personal capacitado te envié un correo electrónico con información, gráficos e instrucciones para solucionar algún inconveniente que hemos reportado previamente.
  • Soporte técnico vía chat: es casi lo mismo que el soporte técnico vía correo electrónico a diferencia que este es a tiempo real y así se puede interactuar con el personal que nos da las indicaciones pero esta ves por chat.
  • Soporte técnico vía asistencia técnica personal: es mas recomendado para problemas de hardware complejos que necesariamente se necesita la presencia de un técnico.
REFERENCIAS

MANTENIMIENTO DE SOFTWARE

El estándar IEEE 1219 [IEEE, 1993] define el Mantenimiento del Software como “la modificación de un producto software después de haber sido entregado [a los usuarios o clientes] con el fin de corregir defectos, mejorar el rendimiento u otros atributos, o adaptarlo a un cambio en el entorno”.
Resultado de imagen para mantenimiento de software definicion
El mantenimiento del software involucra cambios al software para corregir defectos encontrados durante sus uso o la adición de nueva funcionalidad mejorando la usavilidad y la aplicabilidad del software.

A medida que pasa el tiempo, las aplicaciones de software deben ser sometidas a procesos de modificación que extiendan su vida útil o mejoren sus características. Corrección de bugs (errores), adaptación a los nuevo entornos tecnológicos o agregando su funcionalidad son algunas tareas que incluye el mantenimiento de software.

El mantenimiento de software es también una de las fases en el ciclo de vida de desarrollo de sistemas (SDLC, sigla en inglés de system development life cycle), que se aplica al desarrollo de software. La fase de mantenimiento es la fase que viene después del despliegue (implementación) del software en el campo.

TIPOS DE MANTENIMIENTO DE SOFTWARE 

  • Mantenimiento preventivo: Consiste en la revisión constante del software para detectar
    posibles focos de problemas que puedan surgir en el futuro.
  • Mantenimiento predictivo: Evalúa el flujo de ejecución del programa para predecir con certeza el momento en el que se producirá la falla, y así determinar cuándo es adecuado realizar los ajustes correspondientes.
  • Mantenimiento correctivo: Corrige los defectos encontrados en el software, y que originan un comportamiento distinto al deseado. Estas fallas pueden ser de procesamiento, rendimiento (por ejemplo, uso ineficiente de los recursos de hardware), programación (inconsistencias en la ejecución), seguridad o estabilidad, entre otras.
  • Mantenimiento adaptativo: Si se requiere cambiar el entorno de uso de la aplicación (que incluye al sistema operativo, a la plataforma de hardware o, en el caso de las aplicaciones web, al navegador), puede ser indispensable modificarla para mantener su plena funcionalidad en estas nuevas condiciones.
  • Mantenimiento evolutivo: Es un caso especial donde la adaptación resulta prácticamente obligatoria, ya que de lo contrario el programa quedaría obsoleto con el paso del tiempo. Por ejemplo, el cambio de versión en un navegador (muchas veces impuesto sin el consentimiento del usuario) suele obligar a realizar ajustes en plugins y aplicaciones web.
  • Mantenimiento perfectivo: Por distintas razones, el usuario puede solicitar el agregado de nuevas funcionalidades o características no contempladas al momento de la implementación del software. El mantenimiento perfectivo adapta la aplicación a este requerimiento.
ACTIVIDADES DE MANTENIMIENTO 

El desconocimiento de las actividades que implica el mantenimiento del software puede inducir a minusvalorar su importancia, y se tiende a asociar el mantenimiento del software con la corrección de errores en los programas.

Por esta causa, la impresión mas generalizada entre los gestores, usuarios, e incluso entre los propios informáticos, es que la mayor parte del mantenimiento que se realiza en el mundo es de tipo correctivo. Sin embargo, varios autores ([McKee, 1984], [Frazer, 1992], [Basili et al., 1996]) indican que esta impresión es equivocada, mostrando cómo los mayores porcentajes de esfuerzo se dedican a mantenimiento perfectivo (véase Figura 3, tomada de Frazer [1992]).

Tipos de Actividades de Mantenimiento:

  • Análisis de impacto y de costes/beneficios: se dedica esta actividad a analizar diferentes alternativas de implementación y/o a comprobar su impacto en la planificación, coste y facilidad de operación. 
  •  Comprensión del cambio: puede consistir en localizar el error y determinar su causa, o en comprender los requisitos de una mejora solicitada. 
  • Diseño del cambio: se refiere al diseño propuesto para el cambio, pudiéndose incluir un rediseño del sistema. 
  • Codificación y pruebas unitarias: se codifica y prueba el funcionamiento de cada componente modificado. 
  • Inspección, certificación y consultoría: esta actividad se dedica a inspeccionar el cambio, comprobar otros diseños, reuniones de inspección, etc. 
  • Pruebas de integración: se refiere a comprobar la integración de los componentes modificados con el resto del sistema. 
  • Pruebas de aceptación: en esta actividad, el usuario comprueba, junto al personal encargado del mantenimiento, la adecuación del cambio a sus necesidades. 
  • Pruebas de regresión: en esta actividad se somete el software modificado a casos de pruebas previamente almacenados y por los que ya pasó. 
  • Documentación del sistema: se revisa y reescribe, en caso necesario, la documentación del sistema para que se ajuste al producto software ya modificado. 
  • Otra documentación (del usuario, por ejemplo): se revisa y reescribe, en caso necesario, los diferentes manuales de usuario y otra documentación, excepto la documentación del sistema. 

REFERENCIAS 

SOPORTE DE SOFTWARE


Aunque no se cuenten con muchas referencias para poder describir a ciencia cierta lo que es el Soporte de Software podemos describirlo como el mantenimiento de éste aunado al soporte técnico de algún programa o bien SOFTWARE.

Resultado de imagen para soporte de software conceptoResultado de imagen para soporte de software que es

jueves, 24 de noviembre de 2016

El Internet

INTERNET


El Internet es una red global conformada por redes de dispositivos conectados entre sí. Son redes de computadores y dispositivos que están físicamente unidos por cables que conectan puntos de todo el mundo, de esta manera, conformando una gran nube de de maquinas con distintas funciones cada una distribuidas por el mundo y conectada por diversos medios. Con estas bases, se forman dos principios principales del Internet, que son:
  1. La red no es una red centralizada: No existe un nodo central para la comunicación de los dispositivos.
  2. La red es neutral: Sin importar el peso de algún dato, el sistema o cualquier otra cosa, todos los dispositivos conectados a Internet se tratan de la misma manera.

Cada uno de estos dispositivos cuentan con una IP que es un identificador que el servicio de ISP te proporciona cuando te conectas a la red, para de estar forma identificar el dispositivo conectado.

¿CÓMO FUNCIONA INTERNET?


Internet funciona porque los estándares abiertos permiten que todas las redes se conecten a todas las redes.

Esto es lo que hace posible que cualquiera pueda crear contenido, ofrecer servicios y vender productos sin necesitar el permiso de una autoridad central.

Iguala el campo para todos y es la razón por la cual tenemos la rica diversidad de aplicaciones y servicios que muchos de nosotros disfrutamos hoy en día


BIBLIOGRAFÍAS

https://www.derechosdigitales.org/wp-content/uploads/Como-funciona-internet-ebook.pdf
http://www.internetsociety.org/es/c%C3%B3mo-funciona
https://www.gcfaprendelibre.org/tecnologia/curso/como_usar_internet/que_es_internet/2.do
http://es.ccm.net/contents/282-tcp-ip


domingo, 16 de octubre de 2016

Cifrado Simétrico, Cifrado Asimétrico, Certificado Digital, Firma Digital, Sello Digital, Clave Pública y Clave Privada.


CIFRADO ASIMÉTRICO
Cifrado Asimétrico, también conocido como "Criptografía de Llave Pública", emplea dos llaves (o claves) en vez de una para ejercer las funciones de cifrado y descifrado de la información (de ahí el nombre de criptografía asimétrica).
Una clave es utilizada para cifrar y otra para descifrar:
  • La clave pública: se podrá difundir sin ningún problema a las personas que necesiten un mensaje cifrado (utilizada para cifrar la información).
  • La clave privada: únicamente debe ser conocida por el propietario (utilizada para descifrar la información).
Resultado de imagen para cifrado simetricoCada ususario tendrá una clave pública y otra privada. La clave privada tendrá que ser protegida y guardada por el propio usuario, será secreta y no la deberá conocer nadie.La clave pública será accesible a todos los usuarios del sistema de comunicación. Hay dos tipos de actores en este papel, el emisor y el receptor.

El emisor envía una clave secreta, generada aleatoriamente, cifrada con la clave pública del receptor, el único capaz de decifrarla usando su correspondiente clave privada. El receptor es quien recibe el mensaje y únicamente puede decifrar el mensaje con la llave privada

Cabe destacar que una vez que el emisor ha cifrado el mensaje, solamente con la clave privada del destinatario se puede descrifrar, ni siquiera el que ha cifrado el mensaje puede decrifrarlo.

CIFRADO SIMÉTRICO

El cifrado simétrico también conocido como "cifrado de clave privada o cifrado de clave secreta" consiste en utilizar la misma clave para el cifrado y el descifrado.

El cifrado consiste en aplicar una operación (un algoritmo) a los datos que se desea cifrar utilizando la clave privada para hacerlos ininteligibles. El algoritmo más simple (como un OR exclusivo) puede lograr que un sistema prácticamente a prueba de falsificaciones (asumiendo que la seguridad absoluta no existe).
Resultado de imagen para cifrado simetrico
Entre los algoritmos de cifrado simétricos podemos mencionar DES, 3DES, AES y RC4. Los algoritmos 3DES y AES son utilizados comúnmente por el protocolo ISPEC para establecer conexiones de VPN. El algoritmo RC4 es utilizado en tecnologías de redes inalámbricas para el cifrado de información en los protocolos de seguridad WEP y WPA versión 1.
La ventaja del cifrado simétrico es su rapidez y sencillez en comparación con su contraparte el cifrado asimétrico. Igualmente su poca complejidad intrínseca permite la fácil implementación de esta técnica de cifrado a nivel hardware.

La mayor desventaja de un criptosistema de clave secreta está relacionada con el intercambio de las claves. El cifrado simétrico se basa en el intercambio de un secreto (las claves). Surge, entonces, el problema de la distribución de las claves:

Así, un usuario que desea comunicarse con varias personas y garantizar al mismo tiempo niveles separados de confidencialidad debe utilizar el mismo número de claves privadas que de personas. Para un grupo de una cantidad N de personas que utilizan un criptosistema de clave secreta, es necesario distribuir una cantidad de claves equivalente a N* (N-1) / 2.

SELLO DIGITAL

El sello digital es un elemento básico en la factura electrónica es el que señala la relación entre emisor y receptor y que permite al SAT comprobar que no han falsificados los datos del comprobante. De tal manera el sello digital funge como elemento clave para las finanzas de la empresa, porque estaremos seguros de que el receptor no ha cambiado nada, y del estado, que evitará los fraudes fiscales.

El sello digital produce una cadena de indescifrables caracteres cada vez que hay una transacción. Esta cadena siempre estará presente en la factura digital.

CERTIFICADO DIGITAL

El Certificado Digital es el único medio que permite garantizar técnica y legalmente la identidad de una persona en Internet. Se trata de un requisito indispensable para que las instituciones puedan ofrecer servicios seguros a través de Internet. Además:

El certificado digital permite la firma electrónica de documentos El receptor de un documento firmado puede tener la seguridad de que éste es el original y no ha sido manipulado y el autor de la firma electrónica no podrá negar la autoría de esta firma.

El certificado digital permitecifrar las comunicaciones. Solamente el destinatario de la información podrá acceder al contenido de la misma.

Un Certificado Digital consta de una pareja de claves criptográficas, una pública y una privada, creadas con un algoritmo matemático, de forma que aquello que se cifra con una de las claves sólo se puede descifrar con su clave pareja.

La clave pública forma parte de lo que se denomina Certificado Digital en sí, que es un documento digital que contiene la clave pública junto con los datos del titular, todo ello firmado electrónicamente por una Autoridad de Certificación, que es una tercera entidad de confianza que asegura que la clave pública se corresponde con los datos del titular.

El formato de los Certificados Digitales está definido por el estándar internacional ITU-T X.509. De esta forma, los certificados pueden ser leídos o escritos por cualquier aplicación que cumpla con el mencionado estándar.

Otra utilidad de los Certificados Digitales es que posibilitan el envío de mensajes cifrados: utilizando la clave pública de un Certificado, es posible cifrar un mensaje y enviarlo al titular del Certificado, quien será la única persona que podrá descifrar el mensaje con su clave privada.

FIRMA DIGITAL

Es un método criptográfico que asocia una identidad ya sea de una persona en particular o de un equipo a un mensaje enviado a través de transmisión por la red. Su uso puede ser diferente dependiendo de lo que queramos hacer con la firma ya que tendremos posibilidad de validar que el documento es emitido por nosotros, expresar conformidad con algún documento de tipo legal como podría ser la firma de un contrato laboral e incluso asegurar que no podrá modificarse el contenido del mensaje. La firma digital nos permitirá tener más seguridad a la hora de emitir un documento de manera íntegra a través de su sitio web. La firma digital es el resultado de aplicar a un documento, en línea, un procedimiento matemático que requiere datos que exclusivamente conoce la persona que firma, encontrándose ésta bajo su absoluto control.

Con la firma digital debe cumplirse que el receptor debe ser capaz de verificar la identidad del sujeto transmisor. El transmisor no puede rechazar el contenido del mensaje que ha expedido. El receptor no deber ser capaz de poder construir el mensaje el mismo.

La firma digital debe ser susceptible a verificación por terceras partes, de manera tal que dicha verificación permita, simultáneamente, identificar al firmante y detectar cualquier cambio al documento digital posterior a su firma. Podemos mencionar también que la firma digital tendrá idéntica validez y eficacia a la firma manuscrita, siempre que esté debidamente autenticada por claves u otros procedimientos seguros de acuerdo a la tecnología informática. Es necesario una autoridad certificadora que regule y valide la firma digital, en los sitios de comercio electrónico es fundamental contar con un certificado SSL para poder brindar seguridad a sus clientes.

CLAVE PÚBLICA

El cifrado de clave pública utiliza un par de claves relacionadas matemáticamente. Un mensaje cifrado con la primera clave debe descifrarse con la segunda clave y un mensaje cifrado con la segunda clave debe descifrarse con la primera clave.

Cada participante en un sistema de claves públicas dispone de un par de claves. Una clave se designa como clave privada y se mantiene secreta. La otra clave se distribuye a quien lo desee; esta clave es la clave pública.

Cualquier usuario puede cifrar un mensaje utilizando su clave pública, pero sólo usted puede leerlo. Cuando recibe el mensaje, lo descifra utilizando la clave privada.

De forma parecida, puede cifrar un mensaje para cualquier otro utilizando su clave pública y, a continuación, descifrándola utilizando su clave privada. Entonces podrá enviar el mensaje de forma segura a través de una conexión no segura.

Este tipo de cifrado tiene características que lo hacen muy adecuado para su uso general:
El cifrado de clave pública sólo requiere dos claves por participante.
La necesidad de mantener el secreto es más fácil de cumplir: únicamente debe mantenerse secreta la clave privada y puesto que no necesita compartirse, es menos vulnerable al robo en la transmisión que la clave compartida en un sistema de claves simétricas.
Las claves públicas pueden publicarse, lo que elimina la necesidad de compartir previamente una clave secreta antes de la comunicación. Cualquiera que conozca la clave pública puede utilizarla para enviar un mensaje que sólo el usuario implicado puede leer.

El cifrado de clave pública también se denomina cifrado asimétrico, porque no puede utilizarse la misma clave para cifrar y descifrar el mensaje. A cambio, se utiliza una clave de un par de claves para deshacer el trabajo del otro.

Con el cifrado de clave simétrica, debe ir con cuidado con las claves robadas o interceptadas. En el cifrado de clave pública, en el que cualquier puede crear un par de claves y publicar la clave pública, el reto consiste en verificar que identidad del propietario de la clave pública. Nada impide que un usuario cree un par de claves y publique la clave pública bajo un nombre falso. El propietario listado de la clave pública no puede leer mensajes que están cifrados con dicha clave porque el propietario no posee la clave privada correspondiente. Si el creador de la clave pública falsa puede interceptar estos mensajes, dicha persona puede descifrar y leer mensajes que están pensados para alguien más. Para contrarrestar el potencial de claves olvidadas, los sistemas de claves públicas proporcionan mecanismos para validar claves públicas e información adicional con certificados digitales y firmas digitales.

CLAVE PRIVADA

Los sistemas de cifrado de clave privada utilizan una sola clave que comparten el remitente y el destinatario. Ambos deben poseer la clave; el remitente cifra el mensaje mediante la clave y el destinatario descifra el mensaje con la misma clave. Para poder establecer una comunicación privada, tanto el remitente como el destinatario deben mantener la clave en secreto. Este tipo de cifrado tiene características que lo hacen inadecuado para su uso general:
El cifrado de clave privada requiere una clave para cada par de personas que necesitan comunicarse de forma privada. El número necesario de claves aumenta considerablemente a medida que se incrementa el número de participantes.
Las claves se deben compartir por pares de comunicadores, por lo que las claves se deberán distribuir a los participantes. La necesidad de transmitir claves secretas las hace vulnerables al robo.
Los participantes sólo pueden comunicarse mediante un acuerdo previo. No puede enviar un mensaje cifrado utilizable a alguien de forma espontánea. Tanto una como la otra persona deben establecer acuerdos para comunicarse compartiendo claves.

El cifrado de clave privada también se denomina cifrado simétrico, porque se utiliza la misma clave para cifrar y descifrar el mensaje.

DICCIONARIO


SAT: El Servicio de Administración Tributaria (SAT) es un órgano desconcentrado de la Secretaría de Hacienda y Crédito Público, que tiene la responsabilidad de aplicar la legislación fiscal y aduanera, con el fin de que las personas físicas y morales contribuyan proporcional y equitativamente al gasto público; de fiscalizar a los contribuyentes para que cumplan con las disposiciones tributarias y aduaneras; de facilitar e incentivar el cumplimiento voluntario, y de generar y proporcionar la información necesaria para el diseño y la evaluación de la política tributaria.

CERTIFICADO SSL: sirve para brindar seguridad al visitante de su página web, una manera de decirles a sus clientes que el sitio es auténtico, real y confiable para ingresar datos personales. Las siglas SSL responden a los términos en inglés (Secure Socket Layer), el cual es un protocolo de seguridad que hace que sus datos viajen de manera íntegra y segura, es decir, la transmisión de los datos entre un servidor y usuario web, y en retroalimentación, es totalmente cifrada o encriptada.

REFERENCIAS


http://www.criptored.upm.es/intypedia/docs/es/video3/DiapositivasIntypedia003.pdf
https://mariiss15.wordpress.com/2012/11/14/algoritmos-de-encriptacion-simetrica-y-asimetrica/
https://support.microsoft.com/es-mx/kb/246071?OSMCSignIn=true&lc=2058
http://www.genbetadev.com/seguridad-informatica/tipos-de-criptografia-simetrica-asimetrica-e-hibrida
http://blog.capacityacademy.com/2013/08/16/seguridad-informatica-cifrado-simetrico-asimetrico-hashing/
http://es.ccm.net/contents/126-criptografia-de-clave-privada-o-clave-secreta
https://www.reachcore.com/sello-digital/
https://www.certsuperior.com/FirmasDigitales.aspx
http://www.upv.es/contenidos/CD/info/711545normalc.html
https/www.ibm.com/support/knowledgecenter/es/SSMKHH_9.0.0/com.ibm.etools.mft.doc/ac55940_.html
http://es.ccm.net/s/Claves+p%C3%BAblicas?qlc#k=f5a80edba74a384d297912b357510ef3
https://www.certsuperior.com/QueesunCertificadoSSL.aspx
http://www.sat.gob.mx/que_sat/Paginas/default.aspx