METHODOLOGIE EN GENIE INFORMATIQUE
Étude de cas : METHODOLOGIE EN GENIE INFORMATIQUE. Recherche parmi 300 000+ dissertationsPar ad77550 • 21 Mars 2016 • Étude de cas • 7 963 Mots (32 Pages) • 1 584 Vues
[pic 1]
COMPTE RENDU
METHODOLOGIE EN GENIE INFORMATIQUE
[pic 2][pic 3]
Sommaire
Introduction
I. Cahier des charges
II. Spécifications fonctionnelle du logiciel
1. Spécifications des fonctions appelées
2. Spécifications de la fonction
III. Conception détaillée du logiciel
1. Tests unitaires des fonctions développées sous LARP
2. Tests unitaires des fonctions développées en langage c
Conclusion
Annexes
1. LISTINGS COMMENTES DES PROGRAMME LARP
2. LISTINGS COMMENTES DES PROGRAMME EN C
Introduction
L'objectif de ce projet est de développer un système d'archivage sécurisé de documents.
Ce système d'archivage permet à l'utilisateur d'archiver et de désarchiver un fichier.
Afin d'archiver ou désarchiver, l'utilisateur devra choisir un fichier qui sera lu en mémoire de masse puis compressé, crypté et écrit en mémoire de masse.
De même que pour désarchiver, l'utilisateur devra choisir un fichier qui sera lu en mémoire de masse qui sera ensuite décrypté, décompressé puis écrit en mémoire de masse
Il existera deux types de clés :
- Les clés privées qui sont destinées au décryptage et qui est conservée par l’utilisateur
- Les clés publiques qui sont destinées au cryptage et qui est enregistré dans la base de données.
On utilisera la méthode du RSA pour le cryptage/ décryptage et la méthode du RLE pour la compression/décompression.
Une mémoire de masse : c’est une mémoire (dispositif électronique utiliser pour le stocker des informations) de grande capacité, non volatile (conservé même après avoir éteint le logiciel ou/et l'ordinateur) pouvant être lue et écrite par un ordinateur.
RSA : du nom de ces inventeurs (Rivest, Shamir et Adleman), est un algorithme de chiffrement appartenant à la grande famille "Cryptographie asymétrique".
RLE : Run-Length Encoding, appelé en français le codage par plages, est un algorithme de compression de données en informatique.
Cahier des charges
Pour réaliser le cryptage/décryptage, nous avons utilisée la méthode RSA.
Il faut d’abord énumérer les fonctions dont nous aurons besoins pour ce projet.
Nous aurons besoin :
- d’une fonction qui puise reconnaitre les utilisateurs existants dans la base de données id_user
- une fonction qui permettra d’ajouter de nouveaux utilisateurs ad_user
- une fonction qui génère les clés publiques et privé de ces nouveaux utilisateurs gen_cle.
Étant donné que nous utilisons la méthode RSA, il nous faut apporter des compléments pour permettre l’optimisation du programme qui sont pour nous les fonctions suivantes : touve_premier, premier, exponetiation, euclide, PGCD.
Spécifications fonctionnelle du logiciel
Spécifications des fonctions appelées
/*------------------------------------------ad_user--------------------------------------------*/
ad_user (REFERENCE nom: chaîne de caractères, REFERENCE e: entier, REFERENCE n: entier) : une fonction -> booléen[pic 4]
{Cette fonction crée dans la base de donnée (existante) la chaîne de caractères " nom" et lui affect les clés publiques "e" et "n" qui ont été généré pour cet utilisateur. Elle retourne 1 quand la création du nouvel utilisateur est un succès et 0 sinon}
/*------------------------------------------id_user--------------------------------------------*/
[pic 5]
id_user (nom: chaîne de caractères, REFERENCE e: entier, REFERENCE n: entier) : une fonction -> booléen
{Cette fonction recherche dans la base de données (existante) la chaîne de caractères " nom" et affect à "e" et "n" les clés publiques de cet utilisateur. Elle retourne 1 quand l'utilisateur existe/est trouvé et 0 sinon}
/*------------------------------------------ PGCD ------------------------------------------*/
PGCD (r0: entier, r1: entier) : une fonction -> entier[pic 6]
{Cette fonction retourne au programme principal le PGCD de r1 et r0}
/*------------------------------------------ euclide ------------------------------------------*/
euclide (r0: entier signé, r1: entier signé) : une fonction -> entier signé[pic 7]
{Cette fonction retourne au programme principale u0 qui est l'inverse de la multiplication de r0 modulo r1}
...