Bits, Bytes y Esquemas de Numeración

  • Posted on: 8 May 2017
  • By: ReYDeS

En las computadoras, las cosas son blancas o negras, todo es 1 o 0. Las computadoras utilizan un lenguaje llamado binario. En binario existen únicamente dos posibles resultados: un 1 o un 0. Cada 1 o 0 es llamado un bit. En términos matemáticos, binario es clasificado como un sistema de numeración base 2. En comparación, todos nosotros utilizamos un sistema de numeración base 10 conocido como decimal. Decimal utiliza los números desde el 0 al 9. Para acelerar las cosas, las computadoras trabajan con grandes colecciones de bits. Estas colecciones de datos son llamadas bytes. Un byte esta constituido de 8 bits, lo cual se visualiza de manera similar a 01101001.

¿Cómo los bytes se relacionan con letras y números?. Cada letra, número, espacio, y carácter especial es representado por un único byte. Por ejemplo, utilizando el conjunto de caracteres ASCII , 01000001 representa la letra “A”, mientras 01100001 representa la letra “a”

Para asimilar mejor este concepto, se procede a crear un archivo de texto de nombre “quijote.txt”, y luego se utiliza la herramienta “xxd” para visualizar su contenido en binario.

Hexadecimal

Hexadecimal es un sistema base 16, la cual es una forma adecuada para expresar números binarios. Hexadecimal se expresa utilizado números desde el 0 hasta el 9 y letras desde la A hasta la F. La letra “M” se expresa como “4D” en hexadecimal. La letra “a” se expresa como “61” en hexadecimal. Frecuentemente se verá un número hexadecimal expresado con el prefijo “0x”. Este prefijo o el sufijo “h” se utiliza para designar o identificar un número hexadecimal o base 16.

Se utiliza nuevamente la herramienta “xxd” para visualizar en hexadecimal el contenido del archivo “quijote.txt”. Se puede percibir la frecuencia de “20”, él cual es la representación hexadecimal del espacio.

Binario a Texto

¿Entonces como estos 1 y 0 se convierten en A y B?. Las computadoras utilizan esquemas de codificación para convertir binarios en algo lo cual los seres humanos puedan leer. Existen dos esquemas de numeración necesarios a conocer, ASCII y Unicode. ASCII (American Standart Code for Information Interchange), es el esquema de codificación utilizado para el lenguaje inglés. ASCII define 128 caracteres, de los cuales únicamente 94 son imprimibles. El resto son caracteres de control. En contraste, Unicode está hecho para representar todos los lenguajes del mundo y está constituido de miles de caracteres.

¿Porque es relevante esto para el forense digital?. En muchas instancias, los analistas forenses deben buscar datos a nivel de bits o bytes para encontrar, extraer o interpretar evidencia. Esto es más evidente en un proceso llamado “file carving” o reconstrucción de archivos. La reconstrucción de archivos se realiza ubicando y minando archivos desde un conjunto de datos amorfo, como el espacio sin asignar (también conocido como espacio libre). El primer paso para el proceso de la reconstrucción de archivos es identificar un potencial archivo. Normalmente un archivo se identifica por la cabecera, si tiene una. Una vez el “pie” es encontrado, el archivo puede ser extraído a través de una simple acción de copiar y pegar todo lo contenido entre la cabecera y el pie. Un archivo fragmentado es de hecho más difícil de recuperar. El tener la habilidad de interpretar binarios y hexadecimales hacen posible la reconstrucción de archivos.

Fuentes:

https://en.wikipedia.org/wiki/Binary_number
https://en.wikipedia.org/wiki/Hexadecimal
http://www.asciitable.com/
https://unicode-table.com/en/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense