Vous êtes sur la page 1sur 13

Introduction

Dans ce chapitre, nous allons décrire le processus de la réalisation de notre simulation qui a pour
objectif de mettre en œuvre la solution décrite dans le chapitre précédent. Pour ce faire, nous allons
commencer par la définition de l’environnement matériel et logiciel utilisés dans le développement
de notre simulation. Ensuite, nous décrivons l’implémentation des différents algorithmes
nécessaires. Enfin, nous allons présenter les principales interfaces graphique de notre application.

Environnement et outils utilisés

Dans cette section, nous décrirons les différentes ressources matérielles et logicielles utilisées dans
le processus de la réalisation de notre simulation.

Les ressources matérielles

Tout le travail est réalisé sur un PC portable lenovo-ThinkPad-W540 caractérisé par : Processeur :
Intel® Core™ i7-4800MQ CPU @ 2.70GHz × 8
Système d’exploitation : Ubuntu 18.04.4
Type de système d’exploitation : 64 bits
RAM :16 Go

Les ressources logicielles

protocoles applicatifs Sockets :


socket est un protocole de communication, fournissant des canaux de communication
bidirectionnelle sur le réseau via des connexions TCP/UDP au sein d’une même machine ou
éventuellement entre deux ou plusieurs machines distantes. Chaque socket a une adresse spécifique.
Cette adresse est composée d'une adresse IP et d'un numéro de port entre 1024 et 65535. Les
sockets sont généralement utilisés dans les applications client-serveur. Le serveur crée un socket,
l'attache à l'adresse du port réseau, puis attend que le client s'y connecte. Le client crée un socket,
puis essaie de se connecter au socket du serveur. Lorsque la connexion est établie, les données sont
transférées.

Pycharm
PyCharm est un environnement de développement intégré utilisé pour programmer en Python. Il
permet l'analyse de code et contient un débogueur graphique. c'est un logiciel multi-plateforme qui
fonctionne sous Windows, Mac OS X et Linux.
PyCharm permet également la gestion des tests unitaires, l'intégration de logiciel de gestion de
versions, et supporte le développement web.Il aide également les programmeurs à utiliser Python de
manière plus efficace dans les projets Big Data et Data Science. Il supporte plusieurs bibliothèques
scientifiques largement utilisées pour Python.
Trois versions sont disponibles . La figure 4.1 montre le logo de PyCharm.
-  PyCharm CE (la version gratuit Community Edition, diffusé sous licence Apache. : c'est cette
version que nous allons utiliser)
- PyCharm Pro (la version professionnelle du logiciel, diffusé sous
licence propriétaire)
- PyCharm Edu (la version éducative du logiciel)

Langage Python
Python est un langage de programmation interprété populaire multi-paradigme et multi plateformes,
offrant des outils de haut niveau et une syntaxe simple à utiliser. Il favorise la programmation
impérative structurée, fonctionnelle et orientée objet.. La version majeure la plus récente de Python
que nous avons utilisé est Python3.

Bibliothèques importées:
Une bibliothèque est un ensemble de fonctions qui sont regroupées et mises à disposition afin
qu'elles puissent être utilisées sans avoir à les réécrire , parmi les bibliothèque importants que nous
avons utilisée sont :

Charm :
Charm est un framework permettant de prototyper rapidement des cryptosystèmes avancés. Basé
sur le langage Python, Cette bibliothèque comprend des schémas de cryptage à clé publique, des
schémas de cryptage basés sur l'identité, des schémas de cryptage basés sur des attributs, des
signatures numériques. Il a été conçu dès le départ pour minimiser le temps de développement et la
complexité du code tout en favorisant la réutilisation des composants. Elle est utilisée pour fournir
l’algorithme CP-ABE.
Crypto :
Est une bibliothèque qui fournit des outils de cryptographie primitive implémentés en langage
Python. Elle est utilisée pour fournir l’algorithme AES.
Tkinter :
Est la bibliothèque graphique libre d'origine pour le langage Python, permettant la création
d'interfaces graphiques.

Matplotlib :
Est une bibliothèque du langage de programmation Python destinée à tracer et visualiser des
données sous formes de graphiques. Elle offre un export possible en de nombreux formats
matriciels (PNG, jPEG…).

Implémentation de l’algorithme CP-ABE :

Pour la construction du chiffrement CP-ABE dans notre application, nous avons prévu 3 utilisateurs
avec des ensembles d’attributs spécifique pour chacun d’eux comme illustre la figure 4. 2. Ces derniers
peuvent accéder à la plateforme de localisation des objets connectés mobiles afin que chacun d’entre
eux puisse localiser ses propres objets seulement ou bien il a les droits de privilèges pour effectuer cette
action.

Figure 4.2

Pour cela nous avons désigner le premier utilisateur (user1) comme un propriétaire de données qui a
prés définit la politique d’accès utilisée pour le chiffrement des données de localisation de tous ses
objets connectés mobiles afin d’autoriser uniquement qui peut voir la localisation de ses objets.
Notre politique d’accès est constituée d’une sélectionne de quatre attributs (DRAR, DSI, AT, BEK)
et de trois ports logiques comme montre la figure 4.3 :

Figure 4.3

Présentation des interfaces de l’application :


l’interface principale
Dans cette section nous allons présenter quelques interfaces de la plateforme en expliquant les
scénarios possibles. On commence par l’interface principale de démarrage de l’application (voir
figure4.4) :

Figure 4.4

Cette interface a été développée dans le but de faciliter la gestion du l’application par la création de
deux boutons :
- Le bouton démarrer permet d’accéder au plan de positionnement des objets connectés mobiles,
l’autorité d’attribut et le Cloud.
- Le bouton annuler permet de quitter l’application.

Plan de mouvement des objets connectés mobiles :

Au niveau de cette section nous allons expliqués les différents étapes qui nous offre la possibilité de
visualiser comment se déroule le scénario de déplacement de nos objets connectés mobiles et les
processus de chiffrement nécessaires qui ont été mis en œuvre pour protéger leurs données de
localisation :

a- Avant l’appuie sur le bouton start :


La figure 4. 5 représente l’interface qui permet de lancer le plan de mouvement des objets connectés
mobiles.

Cette interface est constituée de :

- Plan (X,Y,Z=0) qui nous permettre de visualiser le déplacement de nos objets ainsi l’envoie de
chaque donnée de localisation.Nous présentons la donnée de localisation par les coordonnées
longitude et latitude qui sont donnée par le couple X et Y récupérés du plan de mouvement. Tels
que chaque couple représente un nouveau emplacement de l’objet.

- Espace de saisie pour le nombre d’objets connectés : cette dernière va nous permettre de saisir le
nombre d’objets qu’on souhaite suivre leur emplacement selon la demande de chaque utilisateur.
- Un bouton start qui permet de lancer le mouvement des objets connectés et d’autres
fonctionnalités que nous allons les voir par la suite une fois nous appuyons sur start.

Figure 4. 5

b- Après l’appuie sur le bouton start :

lorsque nous cliquant sur le bouton start que nous avons expliqué son rôle précédemment nous
allons obtenir :

premièrement nous visualisons au niveau du terminal de tous les processus de générations de clés et
le chiffrement de la politique d’accès qui sont été établies avec succès, ces derniers sont illustrés ci-
dessous :

1-Préparation des clés :


la génération des clés a été bien expliqué dans le chapitre 3 de ce mémoire,
nous allons commencer par l’affichage des clés générées pour le chiffrement CP-ABE à savoir PK,
MSK, SK. Ces derniers sont représentés dans les figures 4.a 4.b 4.c respectivement

2- Chiffrement et déchiffrement de la politique d’accès :

La figure 4.10 montre la réussite de processus de chiffrement de la politique d’accès avec


l’algorithme AES au niveau de l’objet et le processus de déchiffrement de cette dernière au niveau
de l’autorité.

Lorsque l’autorité d’attribut réussit à déchiffrer cette politique d’accès, elle l’utilise pour le
chiffrement de CP-ABE, cette dernière donne un contrôle d’accès sur qui peut déchiffrer la clé
symétrique Ks.

3- Chiffrement de la clé symétrique Ks :

Deuxièmement, après le passage par toutes ces processus avec succès nous allons visualiser le
positionnement de l’autorité d’attributs et le cloud suivant des positions fixes sur le plan que nous
avons assignées pour toute exécution du programme. Par ailleurs, nous visualisons que les objets
connectés mobiles circulent suivant des trajectoires aléatoires avec une vitesse .
En effet lorsque l’objet commence a se déplacer sur la trajectoire, il est synchronisé a récupérer
périodiquement chaque 20pas de la trajectoire sa donnée de localisation qui est représentée par des
coordonnées (x,y) de ce plan (la période de récupération peut être changer selon l’utilisateur).
Cette étape est primordiale pour protéger la donnée de localisation de l’objet qui a été récupérée
précédemment. La figure suivante représente le résultat du processus de chiffrement de la donnée
de localisation au niveau de l’objet connecté par l’algorithme AES en utilisant la clé symétrique
Ks.

Puis cette donnée chiffrée elle sera envoyée vers le cloud pour le stockage. Tandis que le moment de
l’écoute de cette communication entre l’objet et le cloud est exprimé par des liens tracés
périodiquement en rouge comme est illustrée dans la figure 4.6. Par conséquent, cette dernière
montre la donnée de localisation de l’objet récupérer au niveau des coordonnées suivante (X= , Y=).
cette donnée est chiffrée comme suit ensuite elle est stockée dans le cloud.

Au niveau de cette interface, deux boutons seront fonctionnels tel que :


- Bouton Pause : permet de suspendre l'animation des objets connectés.
- Bouton Continuer : permet de reprendre l'animation du point où est arrêtée.
Figure 4.6

En liaison avec l’interface précédente, l’interface illustrée dans la figure 4.7 représente le
déplacement de l’objet connecté.

Figure 4.7

Préparation des clés :


la génération des clés a été bien expliqué dans le chapitre 3 de ce mémoire, comment se fait la
génération des clés dans le chapitre précédent, la figure 4.8 représente la simulation de la
génération des clés de chiffrement CP-ABE à savoir PK, MSK, SK.
Figure 4.8

Chaque clé de l’algorithme CP-ABE a été générée pour effectuer une tache spécifique :
la clé publique PK a été utilisée pour le chiffrement de la clé symétrique Ks.
La clé principale MSK a été utilisée pour la génération de la clé SK avec l’association de la liste
d’attributs de chaque utilisateur.
Et la clé SK a été utilisée pour le déchiffrement de la clé symétrique Ks si seulement si elle satisfait
la politique d’accès.

La figure 4.10 montre la réussite de processus de chiffrement de la politique d’accès au niveau de l’objet
et le processus de déchiffrement de cette dernière au niveau de l’autorité.

Ainsi,la figure 4.9 représente la génération de la paire de clés ECDHE utilisée pour la génération de
la clé symétrique Ks.

figure 4.9

La figure 4.10 montre la réussite de processus de chiffrement de la politique d’accès au niveau de l’objet
et le processus de déchiffrement de cette dernière au niveau de l’autorité.

Figure 4.10
Chiffrement de la donnée  :

La clé symétrique ks est chiffrée par l’algorithme CP-ABE comme suit : ks chiffrée=(PK, A, ks).
L’affichage illustré dans la figure ci-dessous est une vue du print dans le terminal sur le résultat du
processus de chiffrement de la clé Ks au niveau de l’autorité d’attribut à l’aide de l’algorithme CP-
ABE.

Figure 4.11

Le temps moyen consommé pour le chiffrement :

la figure 4.12 suivante présente les résultats obtenus lors des tests d’évaluation effectués, nous
avons fait une comparaison entre le temps de chiffrement pris par l’algorithme AES et CP-ABE
respectivement. Nous remarquons que le temps de chiffrement pris par le nœud IoT pour chiffrer la
politique d’accès et sa donnée de localisation avec le chiffrement symétrique en utilisant
l’algorithme AES n’a pas dépassé les 150 nS. Par contre le temps pris par le chiffrement par attribut
CP-ABE pour chiffrer la clé Ks au niveau de l’autorité dépasse 0.03mS , cette valeur est
comparable avec le temps pris par le chiffrement AES . Cela montre la rapidité et l’efficacité de
l’algorithme AES qui ne consomme pas trop de ressources des nœuds IoT .Avec l’hétérogénéité
d’un environnement IoT cela est approprié ,surtout lorsque nous avons un nœud IoT mobiles qui
est limité en ressources (capacité de calcul, énergie ). Nous pouvons, donc, dire que la notion de
temps réel est respectée avec ce résultat.
Figure 4.12
Espace utilisateur

Dans notre application on a trois utilisateurs par défaut. Par conséquent, nous avons prévu un
pseudo et un mot de passe pour chacun d'eux à savoir user1 , user2 , user3 (qui sont déjà ajoutées
dans un fichier- text qui représente la liste des utilisateurs.

Figure 4.13

Interface d’authentification

Cet espace d'authentification est dédie à l’utilisateur, il constitue la fenêtre d'accueil de notre
application de côté de l’utilisateur, il permet à ce dernier de se connecter à l’application par
l’insertion de son pseudo et mot de passe, Cette étape permet de vérifier la disponibilité du compte
utilisateur et nous lui attribuons les droits et privilèges nécessaires. Pour cela deux cas de figure
peuvent se présenter :

Premier cas :
-Si l'utilisateur fait une erreur lors de la saisie de son mot de passe ou de son pseudo ou bien il n’est
pas enregistré sur la plateforme un message d’erreur s’affiche (voir figure 4.15). Il doit donc saisir à
nouveau ces informations correctes afin de pouvoir accéder à ses fonctionnalités.

Figure
4.14

figure
4.15

Deuxième cas :
-Si l’utilisateur est enregistré et fait entrer correctement ses informations de connexion, il peut
accéder à l’espace suivant.
Figure 4.16
Suivre la localisation de mes objets IoT :

C’est au niveau de cette interface que l’utilisateur va permettre de récupérer les données de
localisation de ses objets connectés mobiles après avoir transmis
données d’une manière sécurisé de l’expéditeur (objet) jusqu’au destinataire (utilisateur).
Pour que l’utilisateur récupère les données il doit passer par les étapes qui constitue cette
interface suivante comme illustre la figure 4.17 :

figure 4.17
1- la barre
« Choisir un objet
connecté » : à cette
étape il doit choisir l’objet qu’il souhaite localiser en fonction de l’identifiant ID de son objet
désiré , l’affichage de cette liste est lié au nombre d’objet connectés choisis au niveau de l’interface
du plan de mouvement.
2- le bouton « Demander la CT » : il doit cliquer sur ce bouton pour lancer la demande de la liste
qui contient toutes les positions traversé par son objet auprès du cloud. Lorsqu’il reçoit cette liste, il
sera en mesure de sélectionner la position qu’il veut la récupérer.
3- Le bouton «  Demander la Ks » : En s'appuyant sur ce bouton , une demande de la clé Ks sera
envoyé au près du cloud. Puis , lorsque l'utilisateur reçoit cette clé chiffrée ,un message 'bien reçu.."
sera affiché.
Cette clé sera principalement utilisée par la suite pour le chiffrement de la donnée de localisation.

4- le bouton « Demander la SK » : il doit cliquer sur ce bouton pour lancer la demande de la clé
SK. Cette demande est effectué auprès de l’autorité d’attribut. Ensuite dés qu’il reçoit la clé, un
message de confirmation de réception est affiché à son niveau.

5- le bouton ‘Déchiffrer la CT’ : lorsque un utilisateur s’appuie sur ce bouton deux scénario
peuvent se présenter :

1er scénario :
Si l’utilisateur qui a demandé cette donnée est le propriétaire de donnée (user1) ou l’utilisateur
autorisé par ce dernier (user3),le déchiffrement de l’emplacement de l’objet choisi réussira.
Autrement dit, l’utilisateur possède une clé SK avec des attributs qui satisfont la politique d’accès
ce qui lui permet de déchiffrer la clé symétrique Ks chiffrée par le CP-ABE avec sa clé SK. Ensuite
il utilise cette clé symétrique pour déchiffrer la donnée de localisation avec l’algorithme AES et
l’obtiendra en clair comme montre la figure 4.18

figure 4.18

2 eme scénario :

Dans ce cas,l’utilisateur authentifié (user2) est autorisé à accéder à la plateforme de suivie de


localisation des objets mobiles mais cependant il n’a pas les droits et les privilèges de récupérer
l’emplacement de l objet qui a choisi au début car le propriétaire de donnée ne l’autorise pas à
accéder à son emplacement. En effet, il ne possède pas la clé SK avec les attributs qui satisfont la
politique d’accès choisie par le propriétaire de données donc il va recevoir un message de d’erreur
‘erreur clé SK’ comme montre la figure. En d’autre terme, il ne peut pas déchiffrer la clé symétrique
Ks chiffrée par le CP-ABE avec sa clé SK et par conséquent il ne peut pas récupérer la donnée
chiffrée par le AES avec la clé Ks tant qu’il ne pourra pas récupérer cette dernière en clair.

Figure 4.19
Conclusion :

A travers ce chapitre nous avons pu appliquer les notions théoriques acquises, nous avons mis en
exergue les différentes étapes de processus de simulation de notre solution tout en respectant la
conception élaborée. En spécifiant les outils de développement et les librairies utilisés. Nous avons
présenté les différentes interfaces graphiques qui composent notre application tout en exposant les
fonctions qui constituent chaque espace de l’application.

Vous aimerez peut-être aussi