瀏覽代碼

README-es.md edited online with Bitbucket

Jose R Ortiz Ubarri 8 年之前
父節點
當前提交
ff00d1b31d
共有 1 個檔案被更改,包括 21 行新增21 行删除
  1. 21
    21
      README-es.md

+ 21
- 21
README-es.md 查看文件

@@ -4,9 +4,9 @@
4 4
 ![main2.png](images/main2.png)
5 5
 ![main3.png](images/main3.png)
6 6
 
7
-[Verano 2016 - Ive]
7
+[Verano 2016 - Ive - Tatiana]
8 8
 
9
-Una de las ventajas de utilizar programas de computadoras es que podemos realizar tareas repetitivas fácilmente. Los ciclos como `for`, `while`, y `do-while` son estructuras de control que nos permiten repetir un conjunto de instrucciones. A estas estructuras también se les llama *estructuras de repetición*.  En la experiencia de laboratorio de hoy completarás una aplicación de esteganografía para practicar el uso de ciclos anidados en la manipulación de arreglos bi-dimensionales.
9
+Una de las ventajas de utilizar programas de computadoras es que podemos realizar tareas repetitivas fácilmente. Los ciclos como `for`, `while`, y `do-while` son estructuras de control que nos permiten repetir un conjunto de instrucciones. A estas estructuras también se les llama *estructuras de repetición*.  En la experiencia de laboratorio de hoy, completarás una aplicación de esteganografía para practicar el uso de ciclos anidados en la manipulación de arreglos bi-dimensionales.
10 10
 
11 11
 
12 12
 ## Objetivos:
@@ -22,10 +22,9 @@ Una de las ventajas de utilizar programas de computadoras es que podemos realiza
22 22
 
23 23
 Antes de llegar al laboratorio debes haber:
24 24
 
25
-
26 25
 1. Repasado los conceptos básicos relacionados a estructuras de repetición, arreglos bi-dimensionales y estructuras de control.
27 26
 
28
-2. Estudiado los conceptos de componentes de color de los pixeles de imágenes.
27
+2. Estudiado los conceptos de componentes de color de los píxeles de imágenes.
29 28
 
30 29
 3. Estudiado la representación binaria de caracteres.
31 30
 
@@ -33,7 +32,7 @@ Antes de llegar al laboratorio debes haber:
33 32
 
34 33
 5. Estudiado los conceptos e instrucciones de la sesión de laboratorio.
35 34
 
36
-6. Tomado el quiz Pre-Lab que se encuentra en Moodle.
35
+6. Tomado el quiz Pre-Lab, disponible en Moodle.
37 36
 
38 37
 ---
39 38
 
@@ -43,14 +42,14 @@ Antes de llegar al laboratorio debes haber:
43 42
 
44 43
 ## Esteganografía
45 44
 
46
-La esteganografía es la ciencia de camuflar la presencia de mensajes ocultos en portadores legítimos (archivos que parecen inofensivos). Esta ciencia ha sido utilizada por delincuentes cibernéticos para ocasionar daños a sistemas de computadoras, y por terroristas para codificar mensajes ocultos en transmisiones de internet. Se dice que Al-Qaeda puede haber utilizado esteganografía para codificar mensajes en imágenes y luego transportarlos por correo electrónico, y posiblemente por USENET, para preparar y ejecutar los ataques terroristas del 11 de septiembre de 2001.
45
+La esteganografía es la ciencia de camuflar la presencia de mensajes ocultos en portadores legítimos (archivos que parecen inofensivos). Esta ciencia ha sido utilizada por delincuentes cibernéticos para ocasionar daños a sistemas de computadoras, y por terroristas para codificar mensajes ocultos en transmisiones de internet. Se dice que Al-Qaeda puede haber utilizado la esteganografía para codificar mensajes en imágenes y luego transportarlos por correo electrónico, posiblemente por USENET, para preparar y ejecutar los ataques terroristas del 11 de septiembre de 2001.
47 46
 
48 47
 La esteganografía también tiene algunos usos legales [1]:
49 48
 
50 49
 * Un laboratorio de imágenes médicas puede empotrar información del paciente en las imágenes y así prevenir fraude y/o errores en los diagnósticos del paciente.
51
-* Podemos usar información oculta para identificar los dueños legítimos de un documento o imagen. Si el documento se filtra o se distribuye sin autorización, se puede trazar su origen hasta el dueño legítimo y quizás descubrir quién rompió el acuerdo de distribución.
50
+* Podemos usar información oculta para identificar los dueños legítimos de un documento o una imagen. Si el documento se filtra o se distribuye sin autorización, se puede trazar su origen hasta el dueño legítimo y quizás descubrir quién rompió el acuerdo de distribución.
52 51
 
53
-En esta experiencia de laboratorio implementarás un algoritmo simple para extraer mensajes ocultos en imágenes usando técnicas de esteganografía.
52
+En esta experiencia de laboratorio, implementarás un algoritmo simple para extraer mensajes ocultos en imágenes usando técnicas de esteganografía.
54 53
 
55 54
 ---
56 55
 
@@ -61,7 +60,7 @@ En esta experiencia de laboratorio, recuperarás un mensaje secreto que ha sido
61 60
 
62 61
 ### Píxeles
63 62
 
64
-Al elemento más pequeño de una imagen se le llama un *píxel*. Esta unidad consiste de un solo color. Como cada color es una combinación de tonalidades de los colores primarios rojo, verde y azul,   se codifica como un entero sin signo cuyos bytes  representan los tonos de rojo, verde y azul del pixel  (Figura 1). A esta combinación se le llama el *RGB* del color por las siglas de "Red-Green-Blue". Por ejemplo, un píxel de color rojo (puro) tiene una representación RGB `0x00ff0000`, mientras que un píxel de color blanco tiene una representación RGB de `0x00FFFFFF` (ya que el color blanco es la combinación de los tonos rojo, verde y azul en toda su intensidad).
63
+Al elemento más pequeño de una imagen se le llama *píxel*. Esta unidad consiste de un solo color. Como cada color es una combinación de tonalidades de los colores primarios rojo, verde y azul, se codifica como un entero sin signo cuyos bytes representan los tonos de rojo, verde y azul del píxel  (Figura 1). A esta combinación se le llama el *RGB* del color por las siglas de "Red-Green-Blue". Por ejemplo, un píxel de color rojo (puro) tiene una representación RGB `0x00ff0000`, mientras que un píxel de color blanco tiene una representación RGB de `0x00FFFFFF` (ya que el color blanco es la combinación de los tonos rojo, verde y azul en toda su intensidad).
65 64
 
66 65
 ---
67 66
 
@@ -75,7 +74,7 @@ En `Qt` se utiliza el tipo `QRgb` para representar valores `RGB`.  Utilizando la
75 74
 
76 75
 ### Biblioteca
77 76
 
78
-La experiencia de laboratorio de hoy utilizará la clase `QImage`. Esta clase permite acceder a los datos de los pixeles de una imagen para poder manipularla. La documentación de la clase `QImage` se encuentra en http://doc.qt.io/qt-4.8/qimage.html.
77
+La experiencia de laboratorio de hoy utilizará la clase `QImage`. Esta clase permite acceder a los datos de los píxeles de una imagen para poder manipularla. La documentación de la clase `QImage` se encuentra en http://doc.qt.io/qt-4.8/qimage.html.
79 78
 
80 79
 El código que te proveemos en el archivo `steganography.cpp` contiene los siguiente objetos de la clase `QImage`:
81 80
 
@@ -109,7 +108,7 @@ Las siguientes funciones te serán útiles para trabajar con datos de tipo `QRgb
109 108
     `int greenContent = qGreen(origImage.pixel(1,1));`.
110 109
 
111 110
 
112
-3. El siguiente programa crea un objeto de clase `QImage` e imprime los componentes rojo, verde y azul del pixel en el centro de la imagen. La imagen utilizada es la que se especifica dentro del paréntesis durante la creación del objeto, esto es, el archivo `chuck.png`.
111
+3. El siguiente programa crea un objeto de clase `QImage` e imprime los componentes rojo, verde y azul del píxel en el centro de la imagen. La imagen utilizada es la que se especifica dentro del paréntesis durante la creación del objeto, esto es, el archivo `chuck.png`.
113 112
 
114 113
         #include <QImage>
115 114
         #include <iostream>
@@ -123,7 +122,7 @@ Las siguientes funciones te serán útiles para trabajar con datos de tipo `QRgb
123 122
 
124 123
            cout << hex;
125 124
 
126
-           cout << “Los componentes rojo, verde y azul del pixel central son: “
125
+           cout << “Los componentes rojo, verde y azul del píxel central son: “
127 126
                 << qRed(centralPixel) << “, “
128 127
                 << qGreen(centralPixel) << “, “
129 128
                 << qBlue(centralPixel) << endl;
@@ -135,7 +134,7 @@ Las siguientes funciones te serán útiles para trabajar con datos de tipo `QRgb
135 134
 
136 135
 Uno de los métodos más simples para esconder un mensaje en una imagen es codificando el mensaje en los bits menos significativos de los componentes de los colores de los píxeles de la imagen. Este método esconde el mensaje en la imagen eficientemente porque el efecto al cambiar el bit menos significativo en un color de 8 bits es casi imperceptible para el ojo humano.
137 136
 
138
-Por ejemplo, la Figura 2 muestra dos píxeles gigantes, el de la izquierda  es de color `0xff0000`y el de la derecha es de color `0xfe0101`. Recuerda que el **byte** más significativo (esto es, los dos dígitos hexadecimales más a la izquierda) representan la intensidad del color rojo, el segundo **byte** representa la intensidad del color verde, y el **byte** menos significativo representa la intensidad del color azul. En la Figura 2, los **bits** menos significativos de los componentes rojo, verde y azul de los dos píxeles son diferentes, sin embargo, ambos píxeles se ven del mismo color. El píxel de la derecha es el resultado de codificar el mensaje de tres bits `011` en los bits menos significativos de cada color en el píxel original. Esto es, codificar el `0` en el bit menos significativo del componente rojo, codificar el `1` en el bit menos significativo del componente verde, y  codificar el `1` en el bit menos significativo del componente azul del píxel.
137
+Por ejemplo, la Figura 2 muestra dos píxeles gigantes, el de la izquierda es de color `0xff0000` y el de la derecha es de color `0xfe0101`. Recuerda que el **byte** más significativo (esto es, los dos dígitos hexadecimales más a la izquierda) representan la intensidad del color rojo, el segundo **byte** representa la intensidad del color verde, y el **byte** menos significativo representa la intensidad del color azul. En la Figura 2, los **bits** menos significativos de los componentes rojo, verde y azul de los dos píxeles son diferentes, sin embargo, ambos píxeles se ven del mismo color. El píxel de la derecha es el resultado de codificar el mensaje de tres bits `011` en los bits menos significativos de cada color en el píxel original. Esto es, codificar el `0` en el bit menos significativo del componente rojo, codificar el `1` en el bit menos significativo del componente verde, y  codificar el `1` en el bit menos significativo del componente azul del píxel.
139 138
 
140 139
 ---
141 140
 
@@ -245,12 +244,11 @@ Explica tu respuesta.
245 244
 
246 245
 ## Sesión de laboratorio:
247 246
 
248
-En la experiencia de laboratorio de hoy completarás una aplicación de esteganografía para extraer mensajes ocultos en imágenes.
247
+En la experiencia de laboratorio de hoy, completarás una aplicación de esteganografía para extraer mensajes ocultos en imágenes.
249 248
 
250 249
 ### Ejercicio 1 - Extraer el mensaje binario
251 250
 
252
-#### Instrucciones:
253
-
251
+#### Instrucciones
254 252
 
255 253
 1. Carga a `QtCreator` el proyecto `Steganography`. Hay dos maneras de hacer esto:
256 254
 
@@ -259,7 +257,7 @@ En la experiencia de laboratorio de hoy completarás una aplicación de estegano
259 257
 
260 258
      El proyecto contiene el esqueleto de una aplicación para recuperar mensajes empotrados en imágenes. Los mensajes que estarás recobrando se empotraron utilizando la técnica del bit menos significativo. El final de cada mensaje se codificó utilizando el caracter ASCII con código binario `00000000`.
261 259
 
262
-2. Compila y corre el programa. Debes obtener una interface que luce parecida a:
260
+2. Compila y corre el programa. Debes obtener una interfaz que luce parecida a:
263 261
 
264 262
      ![img1.png](images/img1.png)
265 263
 
@@ -277,7 +275,7 @@ En la experiencia de laboratorio de hoy completarás una aplicación de estegano
277 275
       Nota que tu algoritmo debe tener algún mecanismo para detectar si el último bloque de 8 caracteres extraídos eran todos `0`. Cuando esto pase, el algoritmo debe parar de leer los píxeles.
278 276
 
279 277
       
280
-      El "string" de dígitos binarios debe ser enviado a otra función `binaryStringToMessage` (ver Ejercicio 2) que interprete los `0`'s  y `1`'s como los bits de caracteres ASCII. En el ejemplo, si pasaras  el argumento `”010001000110111101100111000000000”` a la función  `binaryStringToMessage`, debería devolver "Dog" (porque `01000100` corresponde a `D`, `01101111` es 'o',  `01100111` es 'g', y un `00000000` simboliza que se terminó el “string”.)
278
+      El "string" de dígitos binarios debe ser enviado a otra función `binaryStringToMessage` (ver Ejercicio 2) que interprete los `0`'s  y `1`'s como los bits de caracteres ASCII. En el ejemplo de arriba, si pasaras el argumento `”010001000110111101100111000000000”` a la función  `binaryStringToMessage`, debería devolver "Dog" (porque `01000100` corresponde a `D`, `01101111` es 'o',  `01100111` es 'g', y un `00000000` simboliza que se terminó el “string”.)
281 279
 
282 280
 
283 281
       Para poder implementar el algoritmo de extracción del mensaje, debes entender cómo fue empotrado el mensaje. Si es necesario, repasa la sección “Empotrando un mensaje en una imagen”.
@@ -285,10 +283,10 @@ En la experiencia de laboratorio de hoy completarás una aplicación de estegano
285 283
 
286 284
 ### Ejercicio 2 - Interpretar el mensaje
287 285
 
288
-#### Instrucciones:
286
+#### Instrucciones
289 287
 
290 288
 
291
-1. Completa la función `binaryStringToMessage` que recibe el "string" de `0`'s y `1`'s extraido de la imagen para que devuelva el mensaje oculto. Puedes aprovechar la función `binStringToChar` para convertir "substrings" de 8 `0`'s y `1`'s en el caracter que le corresponde.
289
+1. Completa la función `binaryStringToMessage` que recibe el "string" de `0`'s y `1`'s extraidos de la imagen para que devuelva el mensaje oculto. Puedes aprovechar la función `binStringToChar` para convertir "substrings" de 8 `0`'s y `1`'s en el caracter que le corresponde.
292 290
 
293 291
 2. Prueba tu código usando las siguientes imágenes
294 292
 
@@ -308,7 +306,7 @@ En la experiencia de laboratorio de hoy completarás una aplicación de estegano
308 306
 
309 307
 ##Entrega
310 308
 
311
-Utiliza "Entrega" en Moodle para entregar el archivo `steganography.cpp` que contiene las funciones `ExtractMessage` y `binaryStringToMessage`. Recuerda utilizar buenas prácticas de programación, incluir el nombre de los programadores y documentar tu programa.
309
+Utiliza "Entrega" en Moodle para entregar el archivo `steganography.cpp` que contiene las funciones `ExtractMessage` y `binaryStringToMessage`. Recuerda utilizar buenas prácticas de programación, incluye el nombre de los programadores y documenta tu programa.
312 310
 
313 311
 
314 312
 ---
@@ -325,3 +323,5 @@ Utiliza "Entrega" en Moodle para entregar el archivo `steganography.cpp` que con
325 323
 ---
326 324
 
327 325
 ---
326
+
327
+