Octobre 2023
REPUBLIQUE DEMOCRATIQUE DU CONGO
ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE
INGENIERIE PAR LA METHODES UP D'UN SYSTEME
DE CERTIFICATION DES DOCUMENTS NUMERIQUE A L'AIDE DE LA
CRYPTOGRAPHIE
Musampa Elie Elie
Mémoire soumis pour l'obtention du diplôme de
Licence en Sciences Informatiques à l'Université
Protestante de Lubumbashi
Promotion : Bac 3 Ingénierie de système information
Matricule : 2020020054
Octobre 2023
REPUBLIQUE DEMOCRATIQUE DU CONGO
ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE
INGENIERIE PAR LA METHODES UP D'UN SYSTEME
DE CERTIFICATION DES DOCUMENTS NUMERIQUE A L'AIDE DE LA DE
CRYPTOGRAPHIE
Musampa Elie Elie
Mémoire soumis pour l'obtention du diplôme de
Licence en Sciences Informatiques à l'Université
Protestante de Lubumbashi
Directeur : CT. Daniel Katual Kapend
Co-directeur : Ass. Grace Mukoma
Promotion : Bac 3 Ingénierie de système information
Matricule : 2020020054
DEDICACE
i
Je dédie humblement mon travail de fin d'études
à ma grand-mère bien-aimée, Agnès Mbuyi
Kalombo.
ii
REMERCIEMENT
En premier lieu, je veux exprimer ma profonde gratitude
à mon Dieu, lui qui a guidé mes pas et m'a
béni de sa grâce infinie. C'est grâce à sa
présence et son amour que je suis là où je suis
aujourd'hui.
Je souhaite également remercier mes parents,
DIDIER KALEKA et CHRISTELLE KAJ, pour leur amour
inconditionnel, leur soutien constant et les sacrifices qu'ils ont consentis
pour moi. Leur présence dans ma vie est une source de force et
d'inspiration.
Un immense merci à ma la Famille
KABANGU, qui a toujours été là pour moi,
m'encourageant et me soutenant dans toutes ces parcours académiques.
Leur amour et leur soutien inébranlables sont inestimables.
Enfin, je tiens à mentionner spécifiquement
Silvie Mukundi, Mireille Kalela, Anacle Kabangu, Delou Ilunga Kabangu,
Nfund Rubemb Ruth, Ngoie Rubemb Rebecca, Karumb Mbang Espe, Felly Mbuyi,
qui ont été des piliers de soutien dans ma vie. Leur
présence et leurs encouragements ont été d'une importance
capitale et je leur suis infiniment reconnaissant.
Je tiens à remercier mon directeur Daniel
Katual Kapend ainsi que mon codirecteur Grace Mukoma
pour la codirection de notre travail.
La liste et bien long, mais a tout ce qui m'ont soutenue,
aider financièrement, Moralement ou en toutes autres forme d'aide sache
à quel point vous êtes importants à mes yeux et combien je
suis reconnaissant de vous avoir dans ma vie.
iii
TABLE DE MATIERE
DEDICACE I
JE DÉDIE HUMBLEMENT MON TRAVAIL DE FIN
D'ÉTUDES À MA GRAND-MÈRE
BIEN-AIMÉE, AGNÈS MBUYI
KALOMBO.REMERCIEMENT I
INTRODUCTION GENERALE 1
1.1.1 Concept 1: Ingénierie 1
1.1.2 Concept 2: Methode UP (Unified Process) 1
1.1.3 Concept 3: Système de certification des documents
numériques 2
1.1.4 Concept 4: Cryptographie 2
Enoncée du problème et questions de la
recherche 2 Hypothèse 3
Présentation et limitations des solutions
existantes 3
Motivation de la recherche et objectifs 4
1.1.5 Motivation de la recherché 4
1.1.6 Objectifs de la recherche 4
Méthodologie de la recherche 5
Subdivision du travail 6
CHAPTER 1 REVUE DE LITERATURE. 6
1.1.2 Présentation Générale de la
Cryptographie 9
CHAPTER 2 CONCEPTION DE L'ARCHITECTURE DU SYSTEME
CERT-
DOCUEMENT 16
Analyse de l'architecture du système
Cert-Document 16
2.1.1 Identification de Besoin Fonctionnelle du système
17
Identification de Besoin Non-Fonctionnels du
système 18
21 21 21 21 21
2.1.2 Description Fonctionnel de L'application 19
- Gères les comptes utilisateurs,
- S'authentifier
- Surveille les activités du système
- Saisir les donnes de l'étudiant.
- Uploader les donnes dès l'utilisateur
21
21
- Gere la plateforme
22
- Vérifie les donne d'un utilisateur (client),
etc
24
? Diagramme de cas d'utilisation
25
? Diagramme de cas d'utilisation Administrateur
26
? Diagramme de cas d'utilisation Recruteur
27
? Diagramme de classes
28
? Diagramme d'activités Administrateur
29
? Diagramme d'activite Utilisateur
? Diagramme de sequence autentification
Diagramme Représentative du Système de
certification de document numérique 30
iv
CHAPTER 3 IMPLEMENTATION DU SYSTEME DOC-VERIFY
31
V
3.1 Les Outils de Développement 31
CHAPTER 4 RESULTAT DE LA RECHERCHE 37
CONCLUSION GENERALE. 41
BIBLIOGRAPHIE 44
ANNEXE 45
vi
LISTE DES TABLES
Tableau 1 : Acteurs 21
Tableau 2: Description de acteur 22
vii
LISTE DES FIGURES
Figure 1: Fonction du Hash dans la certification de document
numérique 13
Figure 2: Concept du hachage 14
Figure 3: Exemple du certification d'un document
numérique 15
Figure 4: Diagramme de cas d'utilisation 23
Figure 5: diagramme de cas d'utilisation Administrateur 24
Figure 6: Diagramme de cas d'utilisation Recruteur 25
Figure 7: diagramme de classes 26
Figure 8; Diagramme d'activites Administrateur 27
Figure 9: diagramme d'activites utilisateur 28
Figure 10: diagramme de sequence authentification 29
Figure 11: architecture du systeme 30
Figure 12: Page d'acceuil 51
Figure 13 : Interface de application 51
Figure 14: Interface Menu 52
Figure 15: Interface de creation de compte 52
Figure 16: Interface d'authentification 53
Figure 17: interface d'inscription 53
Figure 18: page d'uploading 54
Figure 19: resultat D'uploading 55
Figure 20: resultat d'uploading 55
Figure 21: page de verificataion recruteur 56
viii
Figure 22: resultat de verification d'un recruteur 56
1
INTRODUCTION GENERALE
Les documents numériques sont très
répandus de nos jours. Ils incluent des choses comme des textes, des
images, des vidéos et des courriels. Cependant, il est important de
s'assurer que ces documents sont authentiques et sécurisés. La
Certification des documents numériques consiste à vérifier
qu'ils sont réels et qu'ils proviennent bien de la personne ou de
l'organisation prétendue. Pour sécuriser un document
numérique, ils existent plusieurs moyens et méthodes pour y
parvenir. Dans ce contexte, nous allons développer une application web
de Certification de documents numérique, sécuriser par la
Cryptographie à l'aide d'une empreint numérique
génère par le Hachage. Cette application sera conçue pour
faciliter le processus d'authentification des documents numérique que
fournis les différentes organisations ou personne, toutes en ajoutant
une couche de sécurité supplémentaire.
1.1.1 Concept 1: Ingénierie
Notre premier concept c'est L'ingénierie.
L'ingénierie est l'application des connaissances scientifiques et des
principes mathématiques pour concevoir, développer,
améliorer et maintenir des systèmes, des structures, des
dispositifs ou des processus. L'ingénierie sera utilisée dans
notre travail, pour concevoir et développer un système de
certification des documents numériques en suivant un processus
systématique et itératif. Les principes de l'ingénierie
seront appliqués pour s'assurer que le système est conçu
de manière efficace, fiable et sécurisée.
1.1.2 Concept 2: Methode UP (Unified Process)
. Il s'agit d'un cadre de travail qui guide les équipes
de développement dans la planification, l'analyse, la conception, la
mise en oeuvre et le déploiement d'un système logiciel. Dans
notre travail le concept de l'ingénierie par la méthode UP sera
utilisée pour concevoir et développer un système de
certification des documents numériques à l'aide de la
cryptographie. La méthode UP nous guideras dans le développement
et la planification, l'analyse, la conception, la mise en oeuvre de c'est
système. Elle nous permettra d'assurer que toutes les étapes du
processus de développement sont effectuées de manière
systématique et itérative.
2
1.1.3 Concept 3: Système de certification des
documents numériques
Un système de certification des documents
numériques est un ensemble de méthodes, de procédures et
de technologies utilisées pour garantir l'intégrité,
l'authenticité et la confidentialité des documents
numériques. Il permet de vérifier l'origine et
l'intégrité des documents numériques, ainsi que d'assurer
leur non-répudiation.
1.1.4 Concept 4: Cryptographie
La cryptographie est l'étude des techniques permettant
de sécuriser les communications en rendant l'information illisible pour
toute personne non autorisée. Elle utilise des algorithmes et des
clés pour chiffrer et déchiffrer les données, assurant
ainsi la confidentialité, l'authenticité et
l'intégrité des informations. La cryptographie sera
utilisée pour sécuriser les communications en rendant
l'information illisible pour toute personne non autorisée. Elle
permettra d'assurer la confidentialité, l'authenticité et
l'intégrité des informations échangées dans le
système de certification des documents numériques.
Enoncée du problème et questions de la
recherche
La sécurité des documents numériques est
une préoccupation majeure. Les cybercriminels menacent
l'intégrité, la confidentialité et l'authenticité
des données. Les documents numériques sont vulnérables au
piratage, à la falsification et au vol d'identité. Renforcer la
sécurité est essentiel. L'intégrité des
documents est un défi. Ils peuvent être modifiés
sans laisser de traces. Garantir leur validité est crucial pour
maintenir la confiance. L'authentification des documents pose problème.
Falsifier leur origine est possible. La certification et la signature
numérique sont nécessaires pour vérifier
l'identité de l'émetteur et l'intégrité du
document. La confidentialité est primordiale. Les
informations sensibles doivent être protégées. La
sécurité des documents numériques est essentielle.
Les menaces de cybercriminalité, l'intégrité,
l'authentification et la confidentialité sont des problématiques
à résoudre. Des mesures de sécurité robustes sont
nécessaires pour protéger les données et maintenir la
confiance.
Comme question de la recherche nous, nous somme poser deux
question de départ. Nos questions sont le suivant :
i.
3
Comment peut ont ajouter une couche de sécurité
aux documents numériques dans le domaine numérique ?
ii. Quels sont les mécanismes de certification
disponibles pour garantir l'intégrité et l'authenticité
des documents numériques, et comment la cryptographie peut-elle
être utilisée pour renforcer ces mécanismes ?
Hypothèse
Pour répondre nos questions de l'hypothèse, nous
suggérons d'ajouter un mécanisme de sécurité lors
de la distribution de document. Pour ce faire nous pouvons faire appeler
à la cryptographie avec son fonctionnement du hachage.
En appliquant des mesures de sécurité robustes
telles que l'utilisation la technologie de la cryptographie dans la
certification numérique, il est possible de réduire efficacement
les risques liés à la sécurité des documents
numériques, en assurant leur intégrité, leur
authenticité et leur confidentialité, tout en maintenant la
confiance dans l'échange d'informations à l'ère
numérique.
Présentation et limitations des solutions
existantes
Plusieurs méthodes et technique ont déjà
étais inventé. De technique tels que l'Horodatage, la
cryptographie symétrie, la cryptographie asymétrie, la
certification de donner par la technologie Blockchain, ont déjà
été inventer pour certifier de document, elles comportent tous
des avantages et de limitations dans la certification de document.
Les horodatages sont utilisés pour
enregistrer la date et l'heure exactes de la création ou de la
modification d'un document numérique. Cependant, les horodatages peuvent
être falsifiés si les horloges des différents ordinateurs
ne sont pas synchronisées ou si le système d'horodatage
lui-même est compromis. La Blockchain et
considère comme très sécuriser pour la certification de
document numérique, elle représente également de limites.
L'unes de principale limites de la technologie blockchain est la question de
vérification de document lie à l'identité de partie
implique dans la transaction. C'est qui fait fonctionner la blockchain c'est de
programme appelé contrat intelligent. Alors si un programme intelligent
et mal écrit, la vérification de donnée peuvent entrainer
de failles de sécurités. La cryptographie symétrie
qui chiffre le donne en utilisant une clé publique
4
cette clé est utilisée pour protéger les
données sensibles en les rendant illisibles pour les personnes non
autorisées. Cependant, le chiffrement peut être compromis si la
clé de chiffrement est compromise ou si une méthode de
chiffrement faible. La cryptographie Asymétrie est un
concept qui utilise deux pair de clé. une clé public et une
clé privée. La clé publique sera utilisée pour
chiffre le donne du document et la clé prive seras utiliser pour
déchiffre le donner. Elle est limitée dans la certification de
document numérique par la confiance de clé publique. Cette
clé est libre a partagé mais sa fiabilité reste en cause.
De ce fait nous avons préfères travailler sur
Le Hachage, dans le contexte de la
cryptographie, est une fonction mathématique qui prend en entrée
des données de taille variable et qui génère une sortie de
taille fixe. Cette sortie est appelée "empreinte". La
fonction de hachage a la particularité d'être déterministe,
ce qui signifie que pour une même entrée, elle produit toujours la
même sortie. Le Hachage et utiliser pour vérifier
l'Intégrité des données, pour vérifier
l'authenticité de donne. Ce concept sera utilisé pour notre
hypothèse.
Motivation de la recherche et objectifs
1.1.5 Motivation de la recherché
La motivation de cette recherche est d'explorer l'utilisation
de la cryptographie comme moyen de renforcer la sécurité des
documents numériques. La cryptographie offre des techniques
avancées de hachage, qui permettent de garantir
l'intégrité des données et d'assurer la
confidentialité des informations sensibles. En exploitant la
cryptographie, nous allons apprendre le principe de la cryptographie dans la
certification de document numérique.
Dans le cadre de cette recherche, nous allons étudier
bravement les différentes techniques de cryptographie adaptées
à la certification de document numérique. Nous allons explorer 2
algorithmes de chiffrement. SHA-1 et le SHA-256.
1.1.6 Objectifs de la recherche
L'objectif de ce travail et de nous familiariser avec le
concept de la cryptographie. Nous allons viser une branche spécifique
qui nous aideras à comprendre le concept de Hachage sur un fichier
numérique.
5
1.1.6.1 Objectif primaire
L'objectif primaire de notre travail et de nous familiariser
avec l'algorithme de hachage SHA-256. Nous allons le tester et
voir son implication dans l'attribution d'une empreint numériques. La
méthode UP ainsi que la technologie de Cryptographie avec son concept de
hachage pour la sécurisation de document.
1.1.6.2 Objectif secondaire
Notre objectif est de mettre en place une application web qui
nous serviras à Certifier les document numérique grâce
à la cryptographie. Cette application aura 3 acteurs principale.
L'Administrateur, l'utilisateur ainsi que le recruteur. L'utilisateur seras la
personne qui détient un document (client, Etudiant, Agent, etc.) Sous
ficher électronique. Le Recruteur seras la personne qui veut
vérifier un document numérique cette personne peut-être un
(un Inspecteur, un Recruteur, un formateur, etc.) L'application auras des
interfaces qui vont s'interconnecter dépendant de l'acteur qui
l'utilise. L'application auras une interface d'accueil, une interface de
renseignement, une de vérification de document, une interface d'upload
de document, une interface de création de compte selon les acteurs
disponibles.
Méthodologie de la recherche
Dans notre travail, nous allons utiliser la
méthode UP. La méthode UP (Unified Process) seras
utiliser pour la résolution de ce travail. Cette méthode et une
méthode de développement de logiciel itérative et
incrémentale qui nous permettra de concevoir une solution informatique
en nous concentrons sur les besoins des utilisateurs. Cela permettrait de mieux
gérer les risques et d'assurer que le système est
développé de manière efficace. Les différentes
phases de la méthode UP telles que, la conception, l'analyse,
l'implémentation, le test ainsi que le
déploiement du système nous aiderais dans la
démarche de la résolution de notre recherche.
Dans notre travail de recherche Scientifique, La
méthodes UP nous aideras dans le Etape suivant :
- La conception de l'architecture du système.
- L'analyse de nos besoin (fonctionnelle et non fonctionnelle)
6
- L'implémentation de ce système - Ainsi que le
test du système.
Subdivision du travail
Pour chuter, hormis l'introduction générale et
la conclusion générale, notre travail sera divisé en
quatre grands chapitres dont nous pouvons le résumer de manière
suivante :
? Le premier chapitre intitulé : " Revue de
Littérature " : Dans ce chapitre nous allons parler sur les
Généralités d'un système de Certification de
Documents numérique, la Technologie (Cryptographie) que nous allons
utiliser pour sécuriser cette application, ainsi que la méthode
(UP) que nous allons utiliser pour réaliser cette application. Nous
allons décrire les étapes que nous allons utiliser pour la
réalisation de cette application.
? Le second chapitre intitulé : " Conception du
système Doc-Verify ". Dans ce Chapitre nous allons Concevoir ce
système avec notre méthodes (UP) ainsi que notre technologie de
cryptage de donne.
? Le troisième chapitre intitulé :
Implémentation du système Doc-Verify. Dans ce
chapitre nous montrerons les différentes étapes des
installations, des configurations ainsi que les différents tests qui
seront réalisés. Nous allons faire la Conception
détaillée du système en utilisant l'approche UP.
? Le quatrième chapitre intitule :
Résultat de la Recherche. Dans ce Chapitre nous allons
présenter les résultats de notre recherche sur base de l'objectif
fixer.
CHAPTER 1 REVUE DE LITERATURE.
Les systèmes de Certification de documents varient de
deux façons. Nous avons les systèmes de Certification
Traditionnelle et le système de Certification
numérique. Ces systèmes sont conçus pour garantir
l'authenticité des documents délivrés par les
établissements ou organisation. Les systèmes traditionnels
utilisent des documents papier, tandis que les systèmes
électroniques utilisent des fichiers numériques, des
7
documents numériques, et des technologies
numériques pour stocker et vérifier les donnes de ces documents.
Les systèmes d'authentification de documents traditionnels ont
été utilisés pendant des décennies. Ces
systèmes sont basés sur des documents papier tels que des
certificats, des diplômes, des relevés de côtes, de facture,
de contrat, de document de ventes, etc. Les établissements ou
organisation délivrent ces documents aux différentes personnes,
une fois en possession de ce document. Des exigences s'implique à savoir
si réellement ce document sont vrais ou faux. Les employeurs et les
autres parties intéressées peuvent vérifier
l'authenticité de ces documents en contactant directement les
établissements ou la différente organisation. Cependant, les
systèmes d'authentification de documents traditionnels présentent
des inconvénients. Les documents papier peuvent être facilement
falsifiés ou perdus, les délais et les coûts
associés à la vérification manuelle des documents ce qui
peut rendre difficile là lors de la vérification de
l'authenticité se documents. (BCdiploma, 2023) Avec l'évolution
de l'informatique, de format de fichier ont évoluer pour inclure de
fichier tels que le : le PDF, DOCX, le XLSX, le JPG, le MP3, etc., D'où
le document numérique est né.
Le de document numérique facilite la tâche
à l'homme. Elles sont avantagées pour le stockage, la
rapidité du partage, la facilite à l'Access au information sur ce
document, la facilite de la Gestion, etc. mais ce document comprend aussi
d'inconvénient lorsqu'il agissais de leur authenticité. Avec
l'évolution de l'informatique, de logiciels de traitement de texte ont
apparus et peuvent facilement changer le contenue d'un document
numérique. Pour résoudre ce problème de système
d'authentification de documents numérique ont apparu. Les
systèmes d'authentification de documents numérique ont
été développés pour répondre à ces
problèmes. Ces systèmes utilisent des technologies
numériques pour stocker et vérifier les données de ces
documents. Les établissements et organisation émettent des
documents électroniques aux utilisateur une fois qu'ils ont satisfait
aux exigences requise. Ces documents électroniques sont stockés
dans des systèmes d'information sécurisés et peuvent
être vérifiés en ligne. Les systèmes
électroniques offrent plusieurs avantages par rapport aux
systèmes traditionnels, notamment une plus grande sécurité
et une plus grande facilité d'accès aux informations sur les
documents. L'authentification des données est un enjeu majeur dans le
monde de l'éducation et de l'emploi. Les documents telle que de
certificat, de diplômes, des factures, de contrat etc. (BCdiploma,
2023)
8
Dans ce chapitre nous commencerons par expliquer les principes
fondamentaux de la cryptographie et de la notion du hachage qui serons utiliser
pour notre travail. Nous discuterons également dès l'utilisations
du hachage dans la certification de document numérique.
1.1.1.1 Présentation General de la certification
Numérique
La certification de document numérique est le processus
par lequel on atteste de l'intégrité et de l'authenticité
d'un document électronique. Contrairement aux documents physiques qui
peuvent être protégés par des sceaux ou des signatures
manuscrites, les documents numériques nécessitent des
méthodes spécifiques pour garantir leur validité et leur
inviolabilité.
La certification vise à garantir que le document n'a
pas été modifié depuis sa création ou certification
initiale, et qu'il peut être considéré comme authentique et
fiable. La certification d'un document numérique repose sur plusieurs
éléments clés telle que:
? Intégrité du document:
Le document doit être protégé contre toute
altération non autorisée. Pour cela, on utilise des fonctions de
hachage qui calculent une empreinte numérique unique du document. Toute
modification apportée au document entraînera une modification de
cette empreinte, ce qui permet de détecter les altérations.
? Authenticité :
La certification vise également à garantir
l'authenticité du document, c'est-à-dire à s'assurer de
son origine légitime. Cela peut être réalisé en
utilisant des techniques de signature numérique. Une signature
numérique est une empreinte cryptographique créée à
l'aide d'une clé privée qui lie le document à son auteur
ou à l'entité responsable de sa certification. (Yousign,
20203)
? Vérification de la certification:
Une fois qu'un document est certifié, il est
généralement possible de vérifier sa certification
ultériv eurement. Cela implique de recalculer l'empreinte
numérique du document et de vérifier si elle correspond à
celle qui a été certifiée précédemment.
On
9
peut également vérifier la validité de la
signature numérique en utilisant la clé publique correspondante.
La certification de document numérique est couramment utilisée
dans de nombreux domaines, tels que la gestion de contrats, la conservation de
documents officiels, les transactions électroniques et la
sécurité des données. Elle permet de renforcer la
confiance dans l'authenticité et l'intégrité des documents
électroniques, en offrant des garanties de sécurité et de
non-altération. Il convient de noter que les exigences et les
procédures de certification peuvent varier en fonction du contexte et
des réglementations spécifiques à chaque domaine. Il est
donc important de se conformer aux normes et aux bonnes pratiques en vigueur
lors de la mise en oeuvre de la certification de document numérique.
(IBM, 2023)
1.1.2 Présentation Générale de la
Cryptographie
La cryptographie est la science qui utilise les
mathématiques pour le cryptage et le décryptage de
données. Elle permet ainsi de stocker des informations confidentielles
ou de les transmettre sur des réseaux non sécurisés (tels
que l'Internet), afin qu'aucune personne autre que le destinataire ne puisse
les lire. La cryptographie est un domaine de la science qui se consacre
à la sécurisation des informations en les transformant de
manière à ce qu'elles soient inintelligibles pour les personnes
non autorisées. Elle repose sur des techniques mathématiques et
informatiques avancées pour protéger la confidentialité,
l'intégrité et l'authenticité des données. L'un des
concepts clés de la cryptographie est celui du hachage, qui joue un
rôle essentiel dans la certification des documents numériques. (
Raport-gratuit.com, 2019)
· La cryptographie traditionnelle est l'étude des
méthodes permettant de transmettre des données de manière
confidentielle. Afin de protéger un message, on lui applique une
transformation qui le rend incompréhensible, qui, à partir d'un
texte en clair, donne un texte chiffré. Dans la cryptographie moderne,
les transformations sont des fonctions mathématiques, appelés
algorithmes cryptographiques, qui dépendent d'un paramètre
appelé clé.
· La cryptanalyse, à l'inverse, est
l'étude des procédés cryptographiques dans le but de
retrouver des faiblesses et, en particulier, de pouvoir décrypter des
textes chiffrés. Elle consiste surtout à retrouver le texte en
clair sans connaître la clé de déchiffrement. (
Raport-gratuit.com, 2019)
10
? Mécanismes de la cryptographie :
Un algorithme de cryptographie ou de chiffrement est une
fonction mathématique qui est utilisée pour le processus de
cryptage et de décryptage. Il est associé à une
clé, qui peut être un mot, un nombre ou une phrase, afin de
crypter le texte en clair. L'utilisation de différentes clés
entraînera des résultats de cryptage différents. La
sécurité des données cryptées dépend de deux
éléments essentiels : la robustesse de l'algorithme de
cryptographie utilisé et la confidentialité de la clé
utilisée. Un système de cryptographie est composé d'un
algorithme de cryptographie, ainsi que de toutes les clés et protocoles
nécessaires à son fonctionnement.. (
Raport-gratuit.com, 2019)
? LA cryptographie symétrique :
La cryptographie à clé symétrique,
également appelée cryptographie conventionnelle, repose sur
l'utilisation d'une clé unique pour le chiffrement et le
déchiffrement des messages. À la fois l'émetteur et le
destinataire doivent posséder cette clé, appelée
clé privée, et la garder secrète pour assurer la
confidentialité des échanges. Cependant, la transmission
sécurisée de cette clé entre les parties constitue un
défi. Si la clé est compromise, la sécurité du
chiffrement est compromise. La durée nécessaire pour casser le
chiffrement dépend de la longueur de la clé utilisée.
? La cryptographie asymétrique
La cryptographie à clé asymétrique,
également connue sous le nom de cryptographie à clé
publique, a été développée pour éliminer la
nécessité d'un échange préalable de clés
secrètes. Elle repose sur l'utilisation d'une paire de clés : une
clé privée, conservée secrète par son
propriétaire, et une clé publique, diffusée publiquement.
Les clés publique et privée sont complémentaires, ce qui
signifie qu'un document chiffré avec la clé publique ne peut
être déchiffré qu'avec la clé privée
correspondante, et vice versa. Cette approche permet de communiquer de
manière sécurisée avec un grand nombre d'interlocuteurs
sans nécessiter d'échange préalable de clés
secrètes. Les clés publiques sont généralement
accessibles à tous via des annuaires en ligne. La durée
nécessaire pour casser le chiffrement dépend également de
la longueur de la clé utilisée. (
Raport-gratuit.com, 2019)
1.1.2.1 Concept du Hachage de Document
Le hachage de document numérique est
un processus qui permet de créer une empreinte numérique unique
et représentative d'un document donné. Il utilise des algorithmes
de hachage qui calculent une valeur de hachage en fonction du contenu du
document. Cette valeur de hachage est de taille fixe, peu importe la taille du
document d'origine. Les algorithmes de Hachage sont de fonction
mathématique qui prend l'information qu'on veut hacher pour calculer
sont empreint numériques. Le calcule de cette information fait
référence au processus de transformation des données
d'entre à l'aide d'un algorithme de Hachage pour générer
une sortie spécifique appelé Empreinte. Un exemple et illustre
sur la figure 2.
L'objectif principal du hachage de document est de garantir
l'intégrité des données. Dans le domaine de la
sécurité des données, la certification de documents
numériques est cruciale pour garantir l'intégrité et
l'authenticité des informations. Pour atteindre cet objectif, les
algorithmes de hachage sont largement utilisés. Pour comprendre la
notion d'Algorithme nous allons, parle de deux algorithme. Nous allons les
étudier brièvement. Nous allons parler de L'algorithme SHA-1 et
SHA-256. Nous examinerons leurs caractéristiques, leurs
différences et leur pertinence dans un système de certification
de documents numériques.
? SHA-1 (Secure Hash Algorithm 1) :
SHA-1 est un algorithme de hachage cryptographique qui prend
en entrée un message de taille variable et génère une
empreinte numérique de 160 bits (20 octets). Cet algorithme a
été largement utilisé par le passé, mais il est
maintenant considéré comme obsolète en raison de ses
vulnérabilités.
? Les vulnérabilités de SHA-1:
En 2005, des chercheurs ont découvert des failles de
sécurité significatives dans SHA-1, remettant en question son
utilisation pour les applications sensibles à la sécurité.
Ces vulnérabilités ont conduit à des attaques pratiques
telles que les collisions, où deux messages différents produisent
la même empreinte. Ainsi, un attaquant pourrait potentiellement falsifier
des documents certifiés en créant une collision.
11
? SHA-256 (Secure Hash Algorithm 256 bits) :
12
SHA-256 est un algorithme de hachage plus récent et
sécurisé faisant partie de la famille des algorithmes SHA-2.
Contrairement à SHA-1, il génère une empreinte
numérique de 256 bits (32 octets). SHA-256 est actuellement
considéré comme sûr pour les applications
cryptographiques.
? Les avantages de SHA-256 :
SHA-256 offre plusieurs avantages par rapport à SHA-1.
Tout d'abord, il résout les vulnérabilités de collision
présentes dans SHA-1. De plus, la taille de l'empreinte numérique
SHA-256 est plus grande, ce qui augmente la résistance aux attaques par
force brute. L'algorithme SHA-256 est également plus rapide que son
prédécesseur SHA-1, ce qui le rend plus pratique pour le
traitement de grands volumes de données.
1.1.2.1.1 Propriétés du Hachage
L'une des propriétés fondamentales du hachage
est l'unicité. Deux documents différents ne doivent pas
générer la même valeur de hachage. En outre, une
modification mineure apportée au document d'origine doit entraîner
une valeur de hachage complètement différente. Cela garantit que
le hachage est sensible aux changements et qu'il peut détecter toute
altération ou corruption des données.
1.1.2.1.2 Application Pratique de la cryptographie et
du Hachage
Lorsqu'un utilisateur souhaite certifier un document,
l'application calcule le hachage du document à l'aide d'un algorithme de
hachage tel que SHA-256. Le résultat est une valeur de hachage unique
qui représente le contenu du document. Le Hachage nous permet d'avoir
une empreint numérique d'un document peut importes sont objet. Un
document et Hacher de cette façon, Le document et représenter
sous forme de ficher électronique et se ficher passe par un algorithme
de hachage qui n'est qu'une équation mathématique, équipe
de fonctions qui nous permet de lire le contenu d'un fichier et d'en ressortir
une empreinte numérique. Le ficher étant une entité de
stockage qui contient une nombre d'octet qui représentant le contenu de
se ficher. Grace à cette information, l'algorithme lus cette
information, le découpe en une taille fixe et attribue une signature
à se ficher.
13
Figure 1: Fonction du Hash dans la certification de
document numérique
1.1.2.1.3 Principe de Sécurité appliques
aux Fonction de hachage ? Signature Numérique:
Pour garantir l'authenticité du document,
l'application utilise la cryptographie à clé publique.
L'utilisateur génère une paire de clés, une clé
privée et une clé publique. La clé privée est
gardée secrète et utilisée pour signer le hachage du
document. La signature numérique est le résultat du hachage avec
la clé privée. Elle lie le document au propriétaire de la
clé privée.
14
Figure 2: Concept du hachage
? Vérification de
l'Intégrité:
Lorsqu'un document certifié est partagé ou
consulté ultérieurement, son intégrité peut
être vérifiée. L'application recalculera le hachage du
document à l'aide du même algorithme de hachage. Ensuite, la
clé publique correspondante à la clé privée
utilisée pour la signature est utilisée pour vérifier si
la signature numérique correspond au hachage recalculé. Si les
deux correspondent, cela indique que le document n'a pas été
altéré depuis sa certification.
? Securisation de Donnees :
La cryptographie et le hachage jouent un rôle essentiel
dans la sécurisation des données. Lorsque les documents sont
certifiés, seules les personnes possédant la clé publique
correspondante peuvent vérifier l'intégrité des documents.
De plus, même si un attaquant parvient à obtenir le hachage d'un
document, il est extrêmement difficile de retrouver le document d'origine
à partir de cette empreinte numérique. La cryptographie et le
hachage sont des outils puissants pour garantir la confidentialité,
l'intégrité et l'authenticité des données
numériques. La certification de documents numériques en utilisant
ces concepts permet de créer un système de confiance où
l'intégrité des documents peut être vérifiée
de manière fiable. En comprenant ces concepts et en les appliquant
correctement, tu
15
peux développer des applications
sécurisées et fiables pour la certification de documents
numériques. (IBM, 2023)
Figure 3: Exemple du certification d'un document
numérique
1.1.2.1.4 Conclusion Partielle
Dans ce chapitre nous avons parlé de
généralité de la cryptographie, de document
numérique et de l'utilisation du hachage dans la certification de
document numérique. Nous avons présenté le concept du
hachage comme étant, un processus crucial dans notre travail. Nous avons
donné u exemple qui démontre le fonctionnement du hachage sur un
document numérique (Ficher). Nous avons vue comme Le hachage est un
processus de cryptographie qui permet de transformer un document
numérique en une série de caractères
alphanumériques appelée "empreinte" ou
"hash". Cette empreinte est unique pour chaque document et est
générée à partir d'un algorithme de hachage. Le
changement de donner sur un document numérique entraine un changement de
Hash. A l'aide d'exemple donner dans ce chapitre, nous allons passer à
la conception de l'architecture d'un système de certification de
document numérique à l'aide de la cryptographie. Dans ce chapitre
nous allons utiliser la méthode UP (Unified Process) avec ce 4 phase
nous allons faire l'analyse de besoins, la conception de l'architecture ainsi
que l'implémentation. Nous n'allons pas déployer notre
système.
16
CHAPTER 2 CONCEPTION DE L'ARCHITECTURE DU SYSTEME
CERT-DOCUEMENT
Nous abordons maintenant la partie cruciale de notre travail,
celle qui comporte une importance capitale. Dans le chapitre
précédent, nous avons exploré divers
éléments techniques du fonctionnement de la cryptographie
(Hachage) ainsi que ses caractéristiques même si les concepts
généraux ont été introduits dans le chapitre
précèdent. Les Algorithm du Hachage, ont ouvert la voie à
l'implémentation de toute sorte d'applications sécuriser. Nous
faisons usage de la cryptographie pour la vérification des documents
numérique. La mise en place de ce système répondras au
besoin de sécurisation des documents numérique. Dans ce chapitre,
nous commencerons par présenter les spécifications des besoins
fonctionnels, les spécifications de besoin non fonctionnel, une
représentation des acteurs et leur rôle. Ainsi que le
découpage de différentes taches de l'architecture de ce
système. Enfin, nous vous présenterons les résultats de
l'architecture du système.
Analyse de l'architecture du système
Cert-Document
Notre application sera mise en oeuvre selon une
séquence logique de phases et d'étapes, allant de la
spécification des besoins fonctionnels à l'implémentation
ou à la réalisation (écriture et tests des programmes).
Cette approche de conception met en évidence les algorithmes qui serons
impliqués ainsi que leur comportement. Dans cette phase, nous avons
besoin d'interface qui nous permettras de bien suivre une Etape précis
:
? Certifier le document :
Dans la certification de documents nous devons avoir la
possibilité de vérifier si les documents que nous recherchons
sont déjà disponible dans le système et que si les
documents que nous recherchons ont était attribuer à un individu
qui prétend l'avoir obtenue.
17
2.1.1 Identification de Besoin Fonctionnelle du
système
Dans cette étape nous allons marquer l'identification
des acteurs du système et leurs rôles. En outre il y a lieu de
faire une conception des acteurs et leur fonctionnement dans le système
afin de faciliter la réalisation de l'application. Les besoins de notre
application sont:
? La Gestion des Documents numérique
:
L'application doit permettre la création de compte
pour l'authentification de l'utilisateur. Comme utilisateur, nous aurons.
? L'administrateur:
L'administrateur et la personne qui certifieras les donner du
document et ses informations sur les utilisateurs de document. Les informations
saisies doivent être enregistrées de manière précise
et cohérente. Le processus d'inscription inclue la vérification
de l'identité de l'utilisateur, dans notre cas nous avons son nom
complet, email ainsi qu'un mot de passe. Le l'administrateur doit donc
créer des comptes personnels pour accéder à l'application.
Ces donner serons enregistré sur la base de donner, de ce fait une
garantie seras donner pour l'authentification de documents
? Utilisateur :
L'utilisateur et le détenteur d'un document
électronique. Lui aussi doit pouvoir crée son compte pour ne pas
laisser n'importe qui avoir acer a ce document. Le processus d'inscription
inclue la vérification de l'identité de l'utilisateur, dans notre
cas nous avons son nom complet, email ainsi qu'un mot de passe. Ces documents
peuvent être une facture, un certificat, un diplôme, un document de
ventes, un contrat, un document médical, etc.
? Recruteur:
Celui-ci est un agent qui veut vérifier les donner
d'un document électronique. Lui aussi doit pouvoir crée son
compte pour avoir l'Access a l'application. Le processus d'inscription inclue
la vérification de l'identité de l'utilisateur, dans notre cas
nous avons
18
son nom complet, email ainsi qu'un mot de passe. Après
s'être authentifier il aura la possibilité de vérifier un
document quelconque.
Identification de Besoin Non-Fonctionnels du
système
Ces besoins ne sont totalement recommandés mais sont
automatiquement requis, est comme besoin non fonctionnelle nous avons de taches
telle que :
? La sécurité
L'application a besoin d'une sécurité fiable
pour ce donner. La demande de sécurité exige qu'elle soit
idéale pour l'application. L'application doit garantir la
confidentialité et l'intégrité des données des
utilisateurs. Les informations sensibles, telles que les documents et les
données d'identification, doivent être stockées de
manière sécurisée et protégées contre les
accès non autorisés. Les mécanismes de cryptage doivent
être mis en place pour sécuriser les communications entre
l'application et les utilisateurs, ainsi que pour protéger les
données stockées. Parmi ce besoin nous avons de :
? Facilité d'utilisation :
L'interface utilisateur de l'application doit être
facile et intuitive, facilitant la navigation et l'utilisation des
fonctionnalités. Les actions courantes, telles que la
vérification de l'intégrité des documents, doit être
simples et rapides à effectuer, avec des instructions claires pour
guider toutes les utilisateurs tout au long du processus.
? Performances :
L'application doit être performante pour offrir une
expérience utilisateur fluide. Les opérations, telles que le
chargement de documents, la génération d'empreintes
numériques et la recherche, doivent être rapides et efficaces.
L'application doit être capable de gérer un grand nombre
d'utilisateurs et de documents sans compromettre ses performances.
? Scalabilité :
L'application doit être capable de s'adapter à
une augmentation du nombre d'utilisateurs et de documents sans compromettre ses
performances ou sa disponibilité. L'architecture de l'application doit
être conçue de manière à permettre l'ajout de
ressources supplémentaires, telles que des serveurs, pour
répondre à la demande croissante.
? Interopérabilité :
L'application doit prendre en charge différents types de
documents numériques couramment utilisés, tels que les fichiers
PDF, les images, les fichiers texte, etc.
L'application doit être compatible avec les normes et les
protocoles de l'industrie pour permettre l'échange de documents avec
d'autres systèmes ou applications.
? Disponibilité :
L'application doit être disponible et accessible aux
utilisateurs de manière fiable. Les temps d'arrêt planifiés
doivent être réduits au minimum et les problèmes techniques
doivent être résolus rapidement pour assurer une
disponibilité maximale.
2.1.2 Description Fonctionnel de L'application
? Creation de compte:
Permet aux utilisateurs de créer un compte sur
l'application en fournissant des informations personnelles et des identifiants
de connexion ainsi qu'un mot de passe prive.
? Authentification :
Permet aux utilisateurs de s'authentifier en utilisant leurs
identifiants de connexion (nom d'utilisateur, mot de passe.) pour
accéder à leur compte.
? Stockage sécurisé des documents
:
L'application doit fournir un espace de stockage
sécurisé pour les documents numériques soumis par les
utilisateurs, en utilisant des mesures de sécurité telles que le
cryptage des données et des mécanismes de contrôle
d'accès.
Recherche de documents :
Permet aux utilisateurs de rechercher des documents dans leur
bibliothèque personnelle en utilisant des critères tels que le
nom du document, les métadonnées associées, etc.
19
? Administration du système :
20
L'application offre aux administrateurs des
fonctionnalités de gestion globale du système, telles que la
création et la gestion d'utilisateurs, la définition des
autorisations, la configuration des paramètres de
sécurité, etc.
? Génération de rapports d'activité
:
Permet aux administrateurs de générer des rapports
détaillés sur l'activité du système, comme les
connexions des utilisateurs, les vérifications de documents, les
modifications de métadonnées, etc.
2.1.2.1 Model UML (Unifie Moderling Language)
La méthode UP (Unified Process) utilise le langage UML
(Unified Modeling Language) pour la modélisation des systèmes
logiciels. UML est un langage de modélisation graphique qui permet de
représenter visuellement les différents aspects d'un
système logiciel, tels que les cas d'utilisation, les classes, les
objets, les relations, les activités, etc. UP utilise UML pour
décrire et documenter les différentes étapes de
développement du logiciel, de la conception à la mise en
oeuvre.
2.1.2.1.1 Identification des Acteurs et leurs
rôles
Pendant la phase d'analyse, il est nécessaire de
recueillir un ensemble d'exigences provenant de différentes parties
prenantes qui interagissent avec le système. Ensuite, une série
d'ateliers est organisée afin de comprendre comment la technologie de la
cryptographie et sont fonctionnement du hachage peuvent apporter des avantages
dans la gestion des cursus académique, et pour identifier les acteurs,
les rôles et les responsabilités.
21
Administrateur
|
|
- Gères les comptes utilisateurs,
- S'authentifier
|
|
- Surveille les activités du
système
|
|
- Saisir les donnes de l'étudiant.
|
|
- Uploader les donnes dès
l'utilisateur
|
|
- Gere la plateforme
|
|
- S'occupe de la Résolution des problèmes
techniques.
|
Recruteur (Inspecteur)
|
- Cree un compte
|
|
- S'authentifie
|
|
- Vérifie les donne d'un utilisateur (client),
etc.
|
Utilisateur(Client, Agent, etc.)
|
- Cree un compte,
- S'authentifie,
- Soumettent des requêtes,
- Gères leurs documents,
- Consulte se documents
|
|
Tableau 1 : Acteurs
2.1.2.1.2 Description Textuel de acteurs
Comme acteurs nous avons trois (3) acteurs, nous avons
l'Administrateur qui et pour notre cas un établissement
ou une Organisation, nous avons l'Utilisateur et nous avons le
un Recruteur. L'administrateur gère la plateforme. Il a
la possibilité de se connecter à la plateforme, s'authentifier
pour ne pas permettre à n'importe qui d'avoir l'Access au donnée,
remplie les donne d'un Utilisateur et les upload sur la Plateforme. A chaque
fois que l'administrateur uploaderas un document, un clé hash seras
attribuer à ce donner qui les rendras impossible à modifier ou
à supprimer. Ensuite nous avons L'utilisateur, cette actrice n'as la
possibilité que de crée un compte et vérifier si se donne
existe. Pour chuter nous avons un Inspecteur (recruteur) qui a son tour
crée un compte pour être enregistre dans la Base de donne et
ensuite vérifie les donnes de l'utilisateur.
22
Acteur
Précondition
|
Flux Principale
|
Description
|
Administrateur
|
L'administrateur doit s'authentifié dans
le système
|
·
·
|
Upload un document Certifie un document
|
·
|
Gérer plateforme
|
Utilisateur
|
· L'utilisateur doit s'enregistre
|
·
|
Télécharge un document
|
·
|
Et gerer par
l'admin
|
|
· Doit avoir un compte utilisable
|
|
|
|
|
Recruteur
|
· L'utilisateur doit s'enregistre
|
·
|
L'utilisateur accède à
l'interface de vérification de document.
|
·
|
Et gerer par
l'admin
|
|
· Doit avoir un compte utilisable ·
|
·
|
L'utilisateur saisit ses
identifiants (nom
d'utilisateur/mot de
passe).
|
|
|
|
|
·
|
Le système vérifie les identifiants et
authentifie
l'utilisateur ou
l'inspecteur.
|
|
|
|
|
·
|
|
|
|
|
Tableau 2: Description de acteur
2.1.2.1.3 Diagramme de l'architecture du
système Cert-Document
· Diagramme de cas d'utilisation
Le diagramme de contexte est un modèle conceptuel qui
permet d'avoir une vision globale des interactions entre le système et
les liens avec l'environnement extérieur. Il permet aussi de
délimiter le champ d'étude. Dans notre cas le diagramme de
contexte est donné par la figure suivante :
23
Figure 4: Diagramme de cas d'utilisation
24
? Diagramme de cas d'utilisation
Administrateur
Figure 5: diagramme de cas d'utilisation
Administrateur
25
? Diagramme de cas d'utilisation Recruteur
Figure 6: Diagramme de cas d'utilisation
Recruteur
26
? Diagramme de classes
Figure 7: diagramme de classes
27
? Diagramme d'activités Administrateur
Figure 8; Diagramme d'activites
Administrateur
28
? Diagramme d'activite Utilisateur
Figure 9: diagramme d'activites utilisateur
29
? Diagramme de sequence autentification
Figure 10: diagramme de sequence
authentification
30
Diagramme Représentative du Système de
certification de document numérique
Figure 11: architecture du système
Conclusion Partielle :
Notre système de certification de documents
numériques vise à résoudre les problèmes de
sécurité, d'authenticité, de conservation à long
terme, de gestion des droits d'accès, de confidentialité et
d'intégrité des données. Nous avons identifié les
besoins fonctionnels et non-fonctionnels du système, tels que la gestion
des documents numériques, l'authenticité des documents,
l'interface de vérification des documents, la sécurité, la
facilité d'utilisation, les performances, la Scalabilité,
l'interopérabilité, la disponibilité et la
traçabilité. Nous avons également décrit les
fonctionnalités clés de l'application, telles que la
création de compte, l'authentification, le stockage
sécurisé des documents, la recherche de documents,
l'administration du système, la génération de rapports
d'activité, les notifications et alertes, ainsi que l'intégration
avec d'autres systèmes.
31
CHAPTER 3 IMPLEMENTATION DU SYSTEME
DOC-VERIFY
Ce chapitre se concentre sur l'implémentation de notre
système de certification de document numérique,
Doc-Verify qui sera le nom de notre application, reposeras sur la
technologie de cryptographie. La cryptographie, connue pour son utilisation
dans la conversion de messages peut-être utiliser dans plusieurs
domaines. Elle peut-être utiliser pour la sécurisation de document
numérique en utilisant sa fonction du hachage. Nous allons
implémenter un système de certification de document
numérique à l'aide de la cryptographie pour pallier au
différents problèmes que nous rencontrons dans la
sécurité de donner. L'objectif de ce système est
d'éliminer les risques de falsification et de manipulation des documents
numériques en fournissant une preuve d'intégrité,
d'authenticité et de traçabilité. Grâce à la
cryptographie, chaque document est associé à une empreinte
numérique unique, appelée "hachage", qui est
enregistrée dans une base de donnée. Ce bloc contient
également des informations telles que l'horodatage, l'identifiant du
document et la signature cryptographique. Toute modification ultérieure
du document entraînera une modification du hachage, ce qui sera
détecté par le système d'authentification.
Ce chapitre se propose de présenter une
méthodologie détaillée pour la mise en place d'un
système de certification de document numérique utilisant la
technologie de cryptage de donnée. En combinant les
propriétés immuables Horodatage avec les techniques de
cryptographie modernes, nous pouvons créer un environnement de confiance
pour la gestion des documents numériques, ouvrant ainsi de nouvelles
perspectives pour la transformation numérique et la sécurisation
des documents.
3.1 Les Outils de Développement
Les différents logiciels et langages de programmation
utilisés pour développer cette application :
? MongoDB
32
MongoDB est une base de données de
documents, ce qui signifie qu'elle stocke les données dans des documents
de type JSON. C'est la façon la plus naturelle de penser aux
données, et qu'elle est beaucoup plus expressive et puissante que le
modèle traditionnel de ligne/colonne.
Le modèle de document de MongoDB est simple à
apprendre et à utiliser pour les développeurs, tout en offrant
toutes les fonctionnalités nécessaires pour répondre aux
exigences les plus complexes à n'importe quelle échelle. Il
fournit des pilotes pour plus de 10 langues, et la communauté en a
construit des dizaines d'autres. Dans ce projet, MongoDB sera utiliser pour
stocker le document numérique.
? Node.Js :
Node.js est un environnement d'exécution JavaScript
côté serveur, construit sur le moteur JavaScript V8 de Google
Chrome. Il permet d'exécuter du code JavaScript en dehors d'un
navigateur web, ce qui ouvre la porte au développement d'applications
web côté serveur.
? JavaScript :
JavaScript est un langage de Script utilisé pour le
développement web côté client et côté serveur.
Dans ce projet, JavaScript est utilisé pour la logique et le traitement
des données côté client et côté serveur.
? EJS :
EJS (Embedded JavaScript) est un langage de templating
utilisé pour générer des vues HTML dynamiques
côté serveur. Dans ce projet, EJS est utilisé pour
générer les pages HTML basées sur les données
récupérées de la plateforme.
? CSS :
CSS (Cascading Style Sheets) est un langage utilisé
pour décrire la présentation et le style des pages web. Dans ce
projet, CSS est utilisé pour styliser les pages HTML
générées par EJS.
3.1.1.1 Les interfaces de l'application
Nous allons maintenant présenter les différentes
interfaces de l'application.
? Page d'accueil
Lorsqu'un utilisateur se connecte sur la plateforme une page
d'accueil reçoit l'utilisateur avec une petite interface simple.
? Menu :
Le menu de notre application nous offre la possibilité de
choisir le différentes Option que l'application fournis. La
différente option de cette application est :
? A propos : Ce bouton nous envoi sur une page de renseignement
de l'application. ? Se connecter : Ce bouton nous envoi sur une page de
connexion.
? Contactez-nous : Ce bouton nous envoi sur une page de
renseignement de développer de l'application.
33
Le résultat et afficher dans l'annexe sur la figure :
34
? Authentication
Nous avons deux sort d'authentification pour notre
application, dans le cadre ou les utilisateurs ont déjà leur
compte, il s'authentifie directement. Chaque utilisateur doit s'authentifier,
et selon son rôle il va être renvoyé vers son espace
approprié (Il y a une vérification des identifiants du compte, si
le compte n'existe pas ou n'est pas encore activé ou si un des
identifiants est erroné le système affiche un message d'erreur).
Comme nous pouvons le voir sur la figuer 23 ont a le choix entre un nouveau
utilisateur et un
ancien. et la figure 24 nous montre
comment s'authentifier quand on a déjà un compte.
? S'inscrire :
Toutes utilisateur (Gestionnaire, Recruteur, Utilisateur) doit
s'authentifier pour avoir l'Access a l'application ainsi qu'aux avantage que
celle-ci fournis. Dans le cas où c'est un nouvel utilisateur, celle-ci
doit créer un compte avec ce donner ainsi qu'un mot de passe.
Nous avons la possibilité de crée de compte en
tant que, Administarteur, utilisateur, ou inspecteur. Le Gestionnaire a la
possibilité d'ajouter (Uploader) un document sur la plateforme.
L'utilisateur a la possibilité d'utiliser seulement la plateforme,
vérifier se donner et se renseigner en cas de difficulté.
L'inspecteur tout comme l'utilisateur peut vérifier simplement es donner
d'un utilisateur.
Profil de l'utilisateur :
? Uploader :
L'utilisateur a accès à son profil et se
avantage. Par example dans cette figure, L'administrateur ici saisie le donner
d'un utilisateur en commencons par sont matricule, sont etablisment, la
description du document ensuite il choisie l'emplacement du document a uploader
ensuit, il l'upload. La figure 25, nous montre cette interface et les
differentes option qu'elle fournis.
? Recruteur :
Le recruteur, lui de qu'il se connecte il a droit à une
interface de vérification document que les utilisateurs sur la
plateforme ont. L'interface et simple et elle détient les
différentes ID que les utilisateurs ont. Pour vérifier un
Document il va simplement sur le nom qu'il
35
recherche et il a l'autorité de voir le donner de cette
utilisatrice mais il ne peut pas le changer.
3.1.1.2 Test du Système
Après avoir développé notre application
web de certification de documents numériques en utilisant l'algorithme
de hachage SHA-256, nous avons effectué des tests approfondis pour
évaluer son fonctionnement. Malheureusement, lors de ces tests, nous
avons constaté que l'algorithme ne parvenait pas à
reconnaître correctement les clés de hachage qu'il attribuait aux
différents fichiers. Cette limitation a un impact significatif sur la
fiabilité et l'intégrité du processus de certification des
documents.
Lorsque nous avons examiné de plus près
l'implémentation de l'algorithme de hachage, nous n'avons pas pu
identifier des erreurs dans la logique qui affectaient la reconnaissance des
clés. Mais plutôt, nous pensons que cette algorithme manque
certaine fonctionnalité. Malgré nos efforts pour résoudre
ces problèmes, nous n'avons pas encore pu parvenir à une solution
complète et fonctionnelle.
La reconnaissance correcte des clés de hachage est une
étape essentielle pour garantir l'authenticité et
l'intégrité des documents numériques certifiés.
Sans cette reconnaissance précise, il devient difficile pour les
utilisateurs de vérifier l'origine et l'intégrité des
documents. Cela compromet la confiance dans notre application et limite son
utilité.
Cependant, il est important de souligner que notre travail
jusqu'à présent n'a pas été vain. Nous avons
réussi à développer une infrastructure robuste et une
interface utilisateur conviviale pour notre application de certification de
documents numériques. Ces réalisations constituent une base
solide sur laquelle nous pouvons continuer à travailler et à
améliorer.
Pour résoudre le problème de reconnaissance des
clés de hachage, nous prévoyons d'effectuer des recherches
supplémentaires et d'explorer d'autres alternatives. Cela pourrait
inclure l'exploration d'autres algorithmes de hachage ou l'ajout de
mécanismes de vérification supplémentaires pour renforcer
la précision de la reconnaissance des clés.
36
3.1.1.3 Conclusion Partielle
Ce chapitre a présenté l'implémentation
de Cert-Document, un système de certification de
document numérique basé sur la technologie de cryptographie. Nous
avons vu comment la cryptographie a étais utiliser pour certifier un
document numérique. Sur la figure 20, ont démontré comment
une clé Hash a étais attribuer à ce document.
L'application n'est pas complète et fiable. Certainement, le document a
été Hacher mais la reconnaissance de cette signature n'est pas
reconnue par l'application. L'algorithme elle, signe le document mais cette
même algorithme n'as pas reconnu la clé qu'elle a attribuer, ce
qui fait de cette algorithme incomplet. Le résultat de toutes cette
interface et afficher dans la partie Annexe. Bien que nous ayons
rencontré des limitations dans la reconnaissance des clés de
hachage dans notre application de certification de documents numériques,
d'autre chercheur pourrons s'inspirer de ce travail pour y ajouter une solution
concrète a la résolution.
Nous avons également présenté les
différents outils de développement utilisés pour
développer l'application, tels que MongoDB, Node.js, JavaScript,
EJS et CSS. Enfin, nous avons exploré les différentes
interfaces de l'application, notamment l'authentification, l'inscription,
l'interface d'uploader et les interfaces pour les recruteurs et les
utilisateurs. Il faut noter que cette application n'a pas été
implémenter que par nous, une aide supplémentaire nous a
étais donne, dans l'interconnexion de la base de donne en ligne et
l'interface de l'application. Nous avons réussi de l'aide de
Gloire Ilunga. Etudiant à L'Université
Protestante de Lubumbashi. Nous avons réussi de l'aide de
Malonga Mutiti Pacific Etudiant Informaticien à
L'Université Protestante de Lubumbashi.
37
CHAPTER 4 RESULTAT DE LA RECHERCHE
4.1.1.1 INTRODUCTION
Ce chapitre et consacre au résultat de notre recherche.
Dans ce chapitre nous allons parler de nos difficultés que nous avons
rencontrées, nos limitations ainsi que le résultat de notre
recherche en nous basent sur l'hypothèse que nous, nous somme faite
ainsi que nos questions de recherche faite a l'introduction. Dans notre
question de recherche. Nous, nous somme baser sur deux question de recherche
à savoir :
- Comment peut ont ajouter une couche de
sécurité aux documents numériques dans le domaine
numérique ?
- Quels sont les mécanismes de certification
disponibles pour garantir l'intégrité et l'authenticité
des documents numériques, et comment la cryptographie peut-elle
être utilisée pour renforcer ces mécanismes ?
Ces questions ont été la base de notre
recherche. Pour y palier nous avons fait une hypothèse. Dans notre
Hypothèse nous avons dit que en intégrant la Cryptographie dans
la gestion des documents numériques, il nous sera possible de renforcer
la sécurité, l'authenticité et l'intégrité
des données dans un document numérique. Un document et
représenter comme étant un fichier numérique. Le hachage
d'un fichier numérique est un processus qui consiste à utiliser
un algorithme de hachage pour générer une empreinte
numérique unique du fichier. Cette empreinte est une suite de
caractères qui représente le contenu du fichier, mais qui ne peut
pas être utilisée pour reconstituer le fichier lui-même. Le
processus de hachage est généralement utilisé pour
vérifier l'intégrité des fichiers numériques. Le
hachage de fichiers est également utilisé dans la signature
numérique, comme expliqué précédemment dans le
premier chapitre. Le hachage d'un fichier numérique est un processus qui
permet de générer une empreinte unique du contenu du fichier.
Cette empreinte peut être utilisée pour vérifier
l'intégrité des fichiers ou pour créer des signatures
numériques liées aux fichiers d'origine.
Cette technologie va répondant ainsi aux
problématiques de cyberattaques, de confidentialité et à
la conservation à long terme de document numérique. Avec son
fonction du hachage, le document peut être crypte à l'aide d'une
clé publique et être décrypte à l'aide d'une
clé privée et se mécanisme et appelé fonction du
hachage. La
38
cryptographie offre des mécanismes de
sécurité qui peuvent répondre à nos questions de
recherche.
Pour représenter le résultat de cette recherche
nous allons les représenter se résultat en 3 sous grand point.
- Le premier point sera de Confirmer ou affirmer notre
hypothèse de travail et la validité de notre
recherche.
- Notre deuxième point sera de Structurer notre
conclusion finale.
- Pour chuter, dans notre dernier point, nous allons
Distinguer la limite de notre résultat.
Ces points démontreront le contenue du travaille entier
allant de de l'hypothèse au limitation rencontre dans cette
recherche.
4.1.1.2 Vérification de l'hypothèse de
travail et de la validité de la recherche
En intégrant la cryptographie dans la gestion des
documents numériques, il est possible de renforcer la
sécurité, l'authenticité et l'intégrité des
données d'un document numérique. En effet, la technologie de la
cryptographie offre des mécanismes de sécurité tels que la
fonction de hachage qui permet de créer une empreinte numérique
d'un document à l'aide d'un algorithme de hachage. Cette empreinte peut
être utilisée pour vérifier l'intégrité ainsi
que l'authenticité d'un document. De plus, la cryptographie offre
également des solutions pour la conservation à long terme des
documents numériques. Cependant, il est important de noter que
l'efficacité de cette technologie dépendra de la qualité
de sa mise en oeuvre et de la robustesse des algorithmes utilisés. Nous
affirmons que cette technologie répond à nos hypothèses et
quelle valide le résultat de notre recherche.
4.1.1.2.1 Structuration de la conclusion finale
La conclusion générale sera structurée en
abordant les différents points mentionnés dans le chapitre
précèdent, elle sera structure en suivant le point suivant:
1. Rappel de l'objectif du projet : Dans
cette conclusion, nous allons récapituler l'objectif principal de notre
projet, qui était de concevoir et d'implémenter un système
de certification de document numérique.
2.
39
Résumé des chapitres
précédents : Nous allons passer en revue les principaux
points abordés dans chaque chapitre du projet. Nous commencerons par
rappeler le premier chapitre sur la cryptographie et la fonction de hachage des
fichiers numériques. Ensuite, nous évoquerons le deuxième
chapitre sur la conception du système en utilisant la méthode UP
avec le langage de modélisation UML et la création des
différents diagrammes. Enfin, nous mentionnerons le troisième
chapitre qui parle de l'implémentation du système et des
problèmes rencontrés liés à la reconnaissance de la
clé attribuée.
3. Analyse des résultats : Nous
discuterons des résultats obtenus lors de notre projet. Nous mettrons en
évidence les avantages de l'utilisation de la cryptographie pour
renforcer la sécurité, l'authenticité et
l'intégrité des données dans un document numérique.
Nous mentionnerons également les limites que nous avons
identifiées, notamment les problèmes rencontrés lors de
l'implémentation du système.
4. Perspectives futures : Nous conclurons en
évoquant les perspectives futures pour notre projet. Nous pourrions
suggérer des améliorations possibles pour résoudre les
problèmes rencontrés et rendre l'algorithme complet. Nous
pourrions également recommander d'approfondir la recherche sur d'autres
mécanismes de sécurité et d'explorer d'autres
méthodes de conception et d'implémentation. Voici une proposition
de modification du texte en utilisant les informations que vous avez fournies
:
4.1.1.2.2 Identification des limites de nos
résultats
Dans notre recherche, nous avons identifié certaines
limites de notre solution de certification de documents numériques
basée sur la cryptographie. Bien que notre application ait
été capable de chiffrer le document à l'aide d'un
algorithme de hachage et d'afficher la date, l'heure et la clé de
chiffrement, nous avons rencontré une difficulté importante. Nous
avons constaté que l'algorithme n'était pas complet et ne
reconnaissait pas correctement la clé attribuée. Malgré
nos efforts pour résoudre cette difficulté, nous n'avons pas pu
trouver de solution satisfaisante. Cette limite rendait notre solution peu
pratique pour les utilisateurs qui souhaitaient vérifier la
certification d'un document. Cependant, il est important de souligner que
malgré cette limite, la cryptographie reste
40
une méthode efficace pour garantir la
sécurité et la certification des documents numériques.
Notre recherche a permis d'identifier cette limite et souligne la
nécessité d'améliorer l'utilisation de cette technologie
pour répondre aux besoins des utilisateurs. Notre recherche a permis
d'identifier une limite importante de notre solution de certification de
documents numériques basée sur la cryptographie. Malgré
nos efforts pour résoudre cette difficulté, nous n'avons pas pu
trouver de solution satisfaisante. Ces résultats soulignent l'importance
d'optimiser l'utilisation de la cryptographie pour répondre aux besoins
des utilisateurs.
41
CONCLUSION GENERALE.
L'objectif de ce travail a étais de nous familiariser
avec le concept de la sécurité numérique dans un domaine
d'étude spécifique. Notre objectif principal est de comprendre la
méthode UP ainsi que la technologie de cryptographie, notamment le
concept de hachage, pour sécuriser les documents. Cependant, il est
important de noter que la mise en place d'une application web pour certifier
les documents numériques à l'aide de la cryptographie reste
hypothétique. L'idée de développer une application avec
trois principaux acteurs - l'administrateur, l'utilisateur et le recruteur -
semble prometteuse, mais sa réalisation pratique peut être
complexe. L'application devrait comporter plusieurs interfaces, telles qu'une
interface d'accueil, une interface de renseignement, une interface de
vérification de documents, une interface d'upload de documents et une
interface de création de compte pour les différents acteurs
impliqués.
Cependant, la mise en oeuvre de cette solution demande une
réflexion approfondie et une expertise technique considérable. Il
faudrait prendre en compte divers aspects tels que la conception de
l'architecture logicielle, le développement des fonctionnalités
requises, la gestion sécurisée des données personnelles,
ainsi que la mise en place de mesures de sécurité robustes pour
éviter les vulnérabilités et les attaques potentielles.
La création d'une telle application
nécessiterait également une équipe de développement
compétente et des ressources adéquates pour mener à bien
le projet. Il faudrait effectuer des tests rigoureux pour garantir la
fiabilité et la sécurité de l'application avant de la
déployer. Bien que l'idée de développer une application
web pour certifier les documents numériques à l'aide de la
cryptographie soit intéressante, sa mise en place nécessiterait
une analyse approfondie des défis techniques et une planification
minutieuse. Il est essentiel de prendre en compte la complexité de la
tâche avant de conclure que cette solution ne peut être facilement
réalisée.
Dans les premiers chapitres de notre travail, nous avons
abordé la généralité de la cryptographie, des
documents numériques et de l'utilisation du hachage dans la
certification de documents. Nous avons expliqué en détail le
concept du hachage, montrant comment il transforme un document en une empreinte
unique à l'aide d'un
42
algorithme de hachage. Nous avons souligné que tout
changement dans le document entraîne un changement dans son empreinte.
Dans le deuxième Chapitre nous avons parlé de la
conception de l'architecture du système. Nous avons
représenté le différent diagramme de modélisation
de notre système. Nous avons ensuite présenté la
méthode UP (Unified Process) pour la conception de l'architecture d'un
système de certification de documents numériques, en passant par
l'analyse des besoins, la conception et l'implémentation.
Dans le troisième chapitre, nous avons abordé
l'implémentation de notre système de certification de documents
numériques, appelé Cert-Document. Nous avons
démontré comment la cryptographie a été
utilisée pour certifier un document numérique en attribuant une
clé de hachage. Cependant, nous avons également mentionné
que l'application n'est pas complète et fiable, car la reconnaissance de
la signature par l'application n'est pas fonctionnelle. Nous avons
décrit les outils de développement utilisés et les
différentes interfaces de l'application, tout en mentionnant l'aide
supplémentaire reçue de Gloire Ilunga et Malonga Mutiti Pacific,
des étudiants en informatique de l'Université Protestante de
Lubumbashi.
L'ors du test de notre système
Cert-Document, Nous avons pu constater que l'application n'est
pas complète et fiable, car elle présente des limitations dans la
reconnaissance des clés de hachage attribuées aux documents
certifiés. Bien que l'algorithme de hachage puisse signer les documents,
il ne parvient pas à reconnaître la clé qu'il a
attribuée, ce qui rend l'algorithme incomplet.
Il est important de souligner que malgré ces
limitations, notre travail a apporté des contributions significatives.
Nous avons développé une infrastructure fonctionnelle et des
interface utilisateur conviviale pour notre application de certification de
documents numériques. Ces réalisations peuvent servir de base
pour d'autres chercheurs et développeurs qui souhaitent apporter une
solution concrète à la résolution de ces limitations. Nous
avons également présenté les différents outils de
développement utilisés pour mettre en oeuvre l'application, tels
que MongoDB, Node.js, JavaScript, EJS et CSS. De plus, nous avons
bénéficié de l'aide précieuse de Gloire Ilunga et
de Malonga Mutiti Pacific, étudiants en informatique à
l'Université Protestante de Lubumbashi, notamment dans l'interconnexion
de la base de données en ligne et l'interface de
43
l'application. Bien que notre système de certification
de documents numériques présente des limitations dans la
reconnaissance des clés de hachage, nous avons réussi à
développer une infrastructure solide et à fournir une interface
utilisateur fonctionnelle. Notre travail peut servir de point de départ
pour des améliorations futures afin de garantir la fiabilité et
l'intégrité des documents certifiés. Nous reconnaissons
l'importance de poursuivre les efforts de développement et de recherche
pour résoudre ces limitations et fournir une solution complète
aux utilisateurs.
Les perspectives futures de notre projet de certification de
document numérique basé sur la cryptographie sont prometteuses.
En suggérant des améliorations possibles pour résoudre les
problèmes rencontrés et rendre l'algorithme complet, La voie a
été ouvertes par de chercheur qui suggères
d'amélioration nous n'est somme pas le première à avoir
parlé de ce propos mais la voie à d'autres solution et ouvertes
au chercheurs pour explorer et améliorer davantage notre solution.
Les chercheurs pourront ainsi s'appuyer sur notre travail pour
développer de nouvelles solutions encore plus performantes, en utilisant
des méthodes de conception et d'implémentation innovantes, tout
en explorant d'autres mécanismes de sécurité pour
répondre aux besoins des utilisateurs.
44
BIBLIOGRAPHIE
BCdiploma. (2023, janvier 3). Comment et pourquoi authentifier
un diplome grace au
numerique. la fraude aux
diplomes.
IBM. (2023, Aout 14). Présentation de la
création de certificats numériques.
Récupéré sur IBM:
https://www.ibm.com/docs/fr/rpt/10.5.0?topic=overview-digital-certificate-creation
Raport-gratuit.com. (2019).
Notion générale sur la cryptographie.
Récupéré sur Raport-gratuit.com:
https://www.rapport-gratuit.com/notion-generale-sur-la-cryptographie/
Verlhiac, N. (2022, Avril 14). Fonctions de hachage et valeur
hachées expliquées simplement. Récupéré
sur
Ostraca.fr:
https://blog.ostraca.fr/blog/fonctions-de-hachage/
Yousign. (20203, Septembre 6). Le blog de la
digitalisation des PME . Récupéré sur
Yousign.com.
45
ANNEXE
Le résultat de l'implémentation de ce travail et
afficher ici. Nous cette partie contient du code source ainsi que les
différentes interfaces de l'application.
4.1.1.3 Le code Sources
Cette partie et réserve au code source les plus
important pour la certification de document numérique. Nous allons
afficher le code source de l'algorithme SHA-256. Nous allons
expliquer comment cette algorithme fonctionnement sur la certification de
ficher numérique.
Code :
/**
* A JavaScript implementation of the Secure Hash Algorithm,
SHA-256, as defined
* in FIPS 180-2
* Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 -
2009.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar,
Lostinet
*
*/
var inherits = require('inherits')
var Hash = require('./hash')
var Buffer = require('safe-buffer').Buffer
var K = [
0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x39565B,
0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE,
0x550C7DC3,
46
0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1,
0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC,
0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3,
0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC,
0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C92E, 0x92722C85, 0xA2BFE8A1,
0xA81A664B, 0x4B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585,
0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3,
0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814,
0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
]
var W = new Array(64)
function Sha256 () { this.init()
this._w = W // new Array(64)
Hash.call(this, 64, 56)
}
inherits(Sha256, Hash)
Sha256.prototype.init = function () {
47
this._a = 0x6a09e667 this._b = 0xbb67ae85 this._c = 0x3c6ef372
this._d = 0xa54ff53a this._e = 0x510e527f this._f = 0x9b05688c this._g =
0x1f83d9ab this._h = 0x5be0cd19
return this }
function ch (x, y, z) { return z " (x & (y " z)) }
function maj (x, y, z) { return (x & y) | (z & (x | y))
}
function sigma0 (x) {
return (x >>> 2 | x << 30)
|
" (x >>>
|
13
|
| x <<
|
19)
|
" (x >>>
|
22
|
| x <<
|
10)
|
}
|
|
|
|
|
|
|
|
|
function sigma1 (x) {
|
|
|
|
|
|
|
|
|
return (x >>> 6 | x << 26)
|
" (x >>>
|
11
|
| x <<
|
21)
|
" (x >>>
|
25
|
| x <<
|
7)
|
}
48
function gamma0 (x) {
return (x >>> 7 | x << 25) " (x >>> 18 |
x << 14) " (x >>> 3) }
function gamma1 (x) {
return (x >>> 17 | x << 15) " (x >>> 19 |
x << 13) " (x >>> 10) }
Sha256.prototype._update = function (M) {
var W = this._w
var a = this._a | 0 var b = this._b | 0 var c = this._c | 0
var d = this._d | 0 var e = this._e | 0 var f = this._f | 0 var g = this._g | 0
var h = this._h | 0
for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] +
gamma0(W[i - 15]) + W[i - 16]) | 0
for (var j = 0; j < 64; ++j) {
var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0 var T2 =
(sigma0(a) + maj(a, b, c)) | 0
h = g
49
g = f
f = e
e = (d + T1) | 0
d = c
c = b
b = a
a = (T1 + T2) | 0
}
this._a = (a + this._a) | 0 this._b = (b + this._b) | 0
this._c = (c + this._c) | 0 this._d = (d + this._d) | 0 this._e = (e + this._e)
| 0 this._f = (f + this._f) | 0 this._g = (g + this._g) | 0 this._h = (h +
this._h) | 0
}
Sha256.prototype._hash = function () {
var H = Buffer.allocUnsafe(32)
H.writeInt32BE(this._a, 0) H.writeInt32BE(this._b, 4)
H.writeInt32BE(this._c, 8) H.writeInt32BE(this._d, 12) H.writeInt32BE(this._e,
16) H.writeInt32BE(this._f, 20)
50
H.writeInt32BE(this._g, 24) H.writeInt32BE(this._h, 28)
return H
}
module.exports = Sha256
Explication:
Ce code est une implémentation en JavaScript de
l'algorithme de hachage sécurisé SHA-256. Il s'agit d'une
fonctionnalité de hachage cryptographique utilisée pour
générer des condensés de taille fixe à partir de
données d'entrée.
Ce code est une implémentation en JavaScript de
l'algorithme de hachage sécurisé SHA-256. L'algorithme SHA-256
est utilisé pour générer des condensés (hash) de
taille fixe à partir de données d'entrée. Le code
définit une classe appelée "Sha256" qui hérite de la
fonctionnalité de la classe "Hash". La classe "Sha256" contient des
méthodes pour initialiser les variables internes, mettre à jour
le hachage avec les données d'entrée et générer le
résultat final du hachage. Le code utilise également des
fonctions auxiliaires pour effectuer les opérations nécessaires
dans le processus de hachage. En résumé, ce code permet de
calculer le hachage SHA-256 d'un ensemble de données en utilisant
JavaScript.
Les interfaces de l'application
Nous allons maintenant présenter les différentes
interfaces de l'application. ? Page d'accueil
Figure 12: Page d'acceuil
Figure 13 : Interface de application
51
? Page Menu
Figure 14: Interface Menu
? Page Création de Compte :
Figure 15: Interface de creation de compte
52
? Page S'auttentifier
Figure 16: Interface d'authentification
53
Figure 17: interface d'inscription
54
Figure 18: page d'uploading
? Page Uploader document
Lorsqu'un admin upload un document, dans notre cas prenons un
exemple d'une liste d'effectif de étudiants en Bac 3 isi. L'admin ajoute
les noms de l'utilisateur, Remplis la description de l'établissement qui
a fournis cette application. Et choisie l'emplacement du document et l'upload.
Alors comment est-ce que le document obtient le une clé Hash ?
Pour répondre à cette question nous allons nous
diriger dans le code source. Alors le premier constat que nous allons faire ce
que, une clé Hash a étais attribuer juste après que nous
avons Uploader le donner. Cette clé et privée, elles ne peuvent
jamais se ressemble avec une autre. Le résultat et démontre sur
la Figure 28 et 29.
Sur cette image nous voyons dans le terminal le résultat
de l'upload. Ce résultat montre la description du processus.
Figure 19: resultat D'uploading
55
Figure 20: resultat d'uploading
Figure 21: page de verificataion recruteur
56
Figure 22: résultat de vérification d'un
recruteur
|