Introduction to Data Representation
Extracted from Digital Forensics(4).pdf - source PDF page(s) 5-12.

Les données peuvent être représentées dans de nombreux formats différents, et cette leçon abordera certains d'entre eux susceptibles de figurer dans les enquêtes de criminalistique numérique ou dans les travaux généraux sur la cybersécurité. Nous aborderons :
- Binaire
- Base64
- Hexadécimal
- Octal
- ASCII
Nous aborderons également l'outil épique du GCHQ, CyberChef, et comment l'une de ses nombreuses utilisations consiste à coder et à décoder facilement des informations. Après cette leçon, nous avons créé un certain nombre d'exercices liés à la représentation des données afin que vous compreniez les informations que nous abordons dans cette leçon.
Binaire
Les 0 et les 1 en binaire représentent respectivement OFF ou ON. Dans un transistor, un « 0 » représente l'absence de flux d'électricité et un « 1 » signifie que l'électricité est autorisée à circuler. De cette manière, les nombres sont représentés physiquement à l'intérieur du dispositif informatique, ce qui permet le calcul.
Un seul chiffre binaire ne peut représenter que True (1) ou False (0) dans la logique booléenne. Toutefois, plusieurs chiffres binaires peuvent être utilisés pour représenter de grands nombres et exécuter des fonctions complexes. En fait, n'importe quel entier peut être représenté en binaire.
- Un bit contient une seule valeur binaire, soit un 0, soit un 1.
- Un octet contient huit bits, ce qui signifie qu'il peut avoir 256 (2 8) valeurs différentes.
Les fichiers volumineux peuvent contenir plusieurs milliers d'octets (ou plusieurs mégaoctets) de données binaires. Une application volumineuse peut occuper des milliers de mégaoctets de données. Quelle que soit la taille d'un fichier ou d'un programme, à son niveau le plus élémentaire, il s'agit simplement d'une collection de chiffres binaires pouvant être lus par un processeur informatique. Alors si le binaire est extrêmement simple, pourquoi l'utilisons-nous ?
- Il s'agit d'un design simple et élégant.
- La méthode 0 et 1 de Binary permet de détecter rapidement un signal électrique éteint ou activé.
- Les pôles positif et négatif des supports magnétiques sont rapidement traduits en binaire.
- Le binaire est le moyen le plus efficace de contrôler les circuits logiques.
Base64
vghpCybZzW50ZW5JzSBKB2VZBID0ihJLyWxSeSbtZwFUigegBG90libTB3JyYs4=
Vous ne savez pas ce que signifie le texte ci-dessus ? Ne vous inquiétez pas, vous y arriverez à la fin de cette section !
Base64 est un algorithme de codage réversible qui permet de transformer les données du formulaire d'origine en chaînes telles que celle ci-dessus. Nous utilisons des octets de huit bits, mais auparavant, nous utilisions des octets de sept bits, six bits et trois bits. Lorsque le codage à huit bits a été approuvé en tant que norme, de nombreux systèmes utilisaient d'anciens codages et ne prenaient pas en charge la nouvelle norme, ce qui a entraîné de nombreux problèmes, tels que la perte de données lorsque d'anciens systèmes communiquaient avec de nouveaux systèmes. Un ancien problème avec les e-mails était qu'ils ne pouvaient être que du texte, ce qui signifiait qu'il était impossible d'envoyer des pièces jointes telles que des images, des vidéos et des fichiers. Base64 a été créé et fonctionne pour résoudre ce problème en transformant les images et les fichiers binaires en
chaînes de texte, qui peuvent être inversées pour récupérer les données d'origine dans leur forme d'origine.
Passons en revue un exemple à l'aide d'une image. L'image ci-dessous est un dessin que j'ai fait en discutant avec les fabricants de nos pièces d' BTL1 examen (ne vous inquiétez pas, les vraies pièces sont bien plus belles !).

Nous pouvons utiliser des outils en ligne pour l'encoder dans une chaîne Base64. Vous trouverez cidessous une capture d'écran d'une partie de la chaîne Base64 qui a été générée. Nous sommes en mesure de l'envoyer à quelqu'un, qui pourra le réassembler dans l'image d'origine.

Maintenant que nous savons que Base64 peut être utilisé pour coder des fichiers en chaînes de texte, vous pouvez imaginer comment cela pourrait figurer dans une enquête de criminalistique numérique. Peut-être qu'un individu possède du matériel explicite sur son ordinateur personnel, mais au lieu de
laisser traîner des images et des vidéos, il code le tout en Base64. Pour ceux qui ne connaissent pas cet algorithme, ils n'auraient aucune idée que le grand nombre de caractères est en fait du contenu multimédia.
Hexadécimal
L'hexadécimal, également appelé hexadécimal ou base 16, est un système que nous pouvons utiliser pour écrire et partager des valeurs numériques. En ce sens, il n'est pas différent des systèmes numériques les plus connus (celui que nous utilisons tous les jours) : le système décimal. Le système décimal est un système numérique en base 10 (parfait pour les êtres à 10 doigts) qui utilise une collection de 10 chiffres uniques, qui peuvent être combinés pour représenter des nombres de manière positionnelle.
Le hexadécimal, comme le décimal, combine un ensemble de chiffres pour créer de grands nombres. Il se trouve que le hexadécimal utilise un ensemble de 16 chiffres uniques. L'hexadécimal utilise le standard 0-9, mais il intègre également six chiffres que vous ne vous attendez pas à voir lors de la création de nombres : A, B, C, D, E et F.
Le tableau ci-dessous montre chaque chiffre hexadécimal avec les valeurs équivalentes en binaire et en denier.

Octal
L'octal est une autre façon de compter les nombres. Alors que les humains comptent normalement par dizaines et les machines par deux, il est possible d'utiliser n'importe quel nombre comme base pour le comptage et le calcul. Certaines tribus amérindiennes ont utilisé l'octal en comptant les espaces entre les doigts. Fait amusant, les personnages du film « Avatar » de 2009 utilisaient l'octal parce qu'ils avaient quatre doigts sur chaque main. L'octal est un moyen pratique d'abréger des nombres binaires. En commençant par la droite, regroupez tous les chiffres binaires en séries de trois. Si le dernier groupe de gauche ne comporte pas trois chiffres, ajoutez un zéro. Chaque groupe binaire à trois chiffres se traduit par un nombre octal à un chiffre.
Le tableau de conversion ci-dessous entre binaire et octal peut nous aider à convertir des valeurs binaires longues en valeurs octales plus courtes.

Expliquons cela à l'aide d'un exemple. Commencez par un nombre binaire :
- 1001111
Regroupez le nombre binaire en trois à partir de la droite. Ajoutez un zéro à gauche s'il ne reste que 2 chiffres :
- (0) 10-01-11
Convertissez chaque groupe à trois chiffres en nombre octal en comptant de gauche à droite :
- 2-3-7
Combinez les chiffres pour former le nombre octal :
- 237
L'utilisation d'un nombre octal au lieu d'un nombre binaire permet d'économiser des chiffres. Dans l'exemple ci-dessus, nous sommes passés de 8 chiffres à 3, mais la valeur finale signifie toujours la même chose que l'original. Au début de l'informatique, l'octal était souvent utilisé pour raccourcir des mots de 12 bits, 24 bits ou 36 bits. L'hexadécimal est désormais plus couramment utilisé en programmation, ce qui rend les représentations numériques encore plus courtes que l'octal.
Vous vous demandez probablement où l'octal est réellement utilisé. L'utilisation la plus courante concerne sans doute les Linux autorisations de fichiers et de répertoires UNIX. À l'aide de la commande chmod, les administrateurs peuvent attribuer des droits de lecture, d'écriture et d'exécution aux utilisateurs et aux groupes.
ASCII
L'ASCII (American Standard Code for Information Interchange) est le format le plus courant pour les fichiers texte sur les ordinateurs et sur Internet. Dans un fichier ASCII, chaque caractère alphabétique, numérique ou spécial est représenté par un nombre binaire de 8 bits (chaîne de huit 0 ou 1).

Les systèmes d'exploitation UNIX et DOS utilisent l'ASCII pour les fichiers texte. Windows NT et 2000 utilisent un code plus récent, Unicode. Les programmes de conversion permettent à différents systèmes d'exploitation de modifier un fichier d'un code à un autre.
Utilisation de CyberChef
https://gchq.github.io/CyberChef/
CyberChef est un outil complet développé par l'une des agences de renseignement du Royaume-Uni, le GCHQ (Government Communications Headquarters). CyberChef est un service gratuit que vous pouvez télécharger et utiliser localement ou en ligne pour convertir, analyser ou effectuer plus de 100 opérations différentes. Nous allons vous montrer comment cet outil peut être utilisé pour coder et décoder des données.