Vous êtes sur la page 1sur 127

N° d’ordre : 2913

THÈSE DE DOCTORAT
Présentée par :

Zaïd KARTIT
Discipline: Sciences de l’ingénieur
Spécialité : Informatique et Télécommunications

Titre :

Contribution à la sécurité du Cloud Computing : Application des


algorithmes de chiffrement pour sécuriser les données dans le
Cloud Storage

Soutenue le 22/10/2016, devant le jury composé de :

Président :
Mr. Moulay Driss RAHMANI PES, Faculté des Sciences de Rabat

Examinateurs :
Mr. Mohamed EL MARRAKI PES, Faculté des Sciences de Rabat
Mr. Chafik NACIR PES, Ecole Normale Supérieure de
l’Enseignement Technique de Rabat
Mr. Abdelalim SADIQ PH, Faculté des Sciences de Kenitra
Mr. Youssef FAKHRI PH, Faculté des Sciences de Kenitra

Invité :
Mr. Ali RADI Docteur, Ingénieur à Maroc Telecom

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 1
Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 2
Avant-propos

Les travaux présentés dans ce mémoire de thèse ont été effectués au Laboratoire de
Recherche en Informatique et Télécommunications (LRIT), à la Faculté des Sciences de
Rabat (FSR) Université Mohammed V, Unité associée au CNRST (URAC29), sous la
direction du Professeur Mohamed EL MARRAKI.

Je tiens à remercier vivement :

Monsieur Mohamed El MARRAKI, professeur de l’enseignement supérieur à la faculté


des sciences de Rabat pour m'avoir encadré avec un grand intérêt ainsi que pour ses
encouragements, son ouverture d'esprit, sa disponibilité et bien sûr ses qualités scientifiques
exceptionnelles, qui grâce à sa disponibilité et rigoureux conseils, j'ai pu entamer, développer
et mener à terme ce travail. Qu'il trouve ici l'expression de toute ma gratitude.

Monsieur Ali RADI, Docteur, Ingénieur Qualité Réseau à Maroc Telecom, pour avoir co-
encadré ce travail de thèse, son aide, ses recommandations, sa patience et ses qualités
humaines. Sans oublier bien sûr, le partage inconditionnel de ses connaissances avec le monde
de la recherche.

Monsieur Moulay Driss RAHMANI, Professeur d'enseignement supérieur à la faculté des


sciences de Rabat, pour avoir accepté de présider le jury de thèse.

Monsieur Chafik NACIR, professeur de l’enseignement supérieur à L´Ecole Normale


Supérieure de l'Enseignement Technique de Rabat, pour avoir rapporté et examiné ce
manuscrit. Ses remarques constructives m'ont beaucoup aidé à améliorer ce manuscrit.

Monsieur Abdelalim SADIQ, Professeur Habilité à la faculté des sciences de Kenitra, pour
avoir accepté de rapporter et d'examiner ce travail. Ses suggestions lors de la lecture de ma
thèse m'ont permis d'apporter des améliorations à la qualité de cette dernière.

Monsieur Youssef FAKHRI, Professeur Habilité à la faculté des sciences de Kenitra, pour
avoir examiné mon rapport.

Monsieur Driss ABOUTAJDINE, Professeur d'enseignement supérieur à la faculté des


sciences de Rabat, Directeur du Centre National pour la Recherche Scientifique et Technique
(CNRST), Responsable du Laboratoire de Recherche en Informatique et Télécommunications

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 3
(LRIT) associé au CNRST (URAC29) pour la confiance qu'il m'a accordée en m'autorisant à
mener mes travaux de recherche dans ce laboratoire.

Je remercie chaleureusement ma femme Hedda MOHDACH et mes deux enfants


MASSINE et ILYAS, ainsi qu’à toute ma famille qui ont supporté toutes les difficultés
morales et matérielles pour me soutenir tout au long de mes études et pour leurs félicitations
lors de mes réussites...

Tous les membres du laboratoire LRIT, Professeurs et Doctorants, pour leur esprit de groupe.
Qu'ils trouvent ici le témoignage de toute mon estime et ma sincère sympathie.

En fin, merci à ceux que je n'ai pas pu les citer, mais auxquels je réitère mes sincères
Remerciements.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 4
Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 5
Résumé

Le Cloud Computing, ou informatique en nuages, a émergé comme un nouveau paradigme


pour offrir des ressources informatiques à la demande et pour externaliser des infrastructures
logicielles et matérielles. De l’autre côté La protection de la vie privée est un des enjeux
majeurs de la société moderne dans laquelle Internet est omnipotent. La motivation principale
de cette thèse est de mettre en place des solutions à la problématique du stockage
dématérialisé qui permettent d’assurer la protection et la sécurité des données confidentielles.
Nous nous intéressons ainsi à protéger les données stockées dans l’environnement Cloud tout
en permettant à leur propriétaire de les partager avec les personnes autorisées. Les systèmes
de chiffrements proposés par la cryptographie, est la solution que nous décidons de retenir.
Tout d’abord, nous donnons une approche améliorée pour l’implémentation de la politique
de sécurité du firewall permettant de sécuriser le Datacenter d’un Cloud Computing. Ensuite
nous proposons un modèle qui permet de chiffrer les données avant de les stocker dans le
Cloud, cette approche est basée sur les algorithmes de chiffrement symétriques (AES) et
asymétriques (RSA), pour sécuriser les données stockées dans des serveurs externes. Nous
traitons aussi les systèmes de chiffrements Homomorphiques afin de permettre d’effectuer des
opérations avec le contenu chiffré dans le Cloud pour pouvoir bénéficier des forces de calculs
du Cloud et éviter la saturation de la bande passante, qui peut causer la dégradation de la
qualité de service d’autres applications métiers. Enfin, nous avons appliqué ce concept pour
réaliser un système de vote électronique sécurisé qui mirent en œuvre les systèmes de
chiffrements Homomorphiques additifs (EL Gamal, Paillier) en utilisant les plateformes du
Cloud.

Mots-clés: Cloud Computing, Stockage, Sécurité, pare-feu, Politique de sécurité,


Datacenter, Cryptographie, Chiffrement Homomorphiques, Vote électronique

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 6
Abstract

Cloud Computing has emerged as a new paradigm that permits to deliver IT resources on
demand and outsource software and hardware infrastructure. On other hand, protection of
privacy is one of the major challenges of modern society in which Internet is omnipotent. The
main motivation of this thesis is to develop solutions to the problem of dematerialized storage
to ensure the protection and security of confidential data. We’re interested to protect data
stored in the Cloud environment while allowing the owner to share them with authorized
persons. The ciphers systems offered by cryptography are the solution that we decided to
choose.
First, we give an improved approach for the implementation of the firewall security policy
in order to secure a Datacenter. Then we propose a model which encrypts data before storing
them in the Cloud, this approach is based on symmetric encryption algorithms (AES) and
asymmetric (RSA) to secure data stored in external servers. We also deal with ciphers
homomorphic systems that allow performing operations with the encrypted content in the
Cloud to benefit from Cloud’s calculation power and avoid saturation of bandwidth, which
can cause degradation of the QoS of other business applications. Finally, we applied this
concept to achieve an electronic voting system that uses an additive homomorphic encryption
system (EL Gamal, Paillier), and we have proposed a model for achieving secure vote using
Cloud platforms.

Keywords: Cloud Computing, Storage, firewall, Security Policy, Datacenter, Data


security, cryptography, Homomorphic encryption, E-voting

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 7
TABLE DES Matières

Introduction générale
1- Introduction …………………………………………………………….………..….17
2- Contexte……………………………………………………………………………..18
3- Motivation…………………………………………………………………...............19
4- Contribution ………………………………………………………………...............20
5- Organisation de la thèse …………………………………………………...………..21

Chapitre I : Généralités sur le Cloud Computing

1.1 Introduction ……………………………………………………………………..…..23


1.2 Historique………………………………………………………………...…............24
1.3 Définition du Cloud ………………………………………………………………...26
1.4 Caractéristiques………..………………………………………………...…………..28
1.5 Auteurs …………………………………………………………………...…............31
1.6 Technologies connexes ……………………………………………….…………….32
1.7 Type de service du Cloud Computing………………………...…………...………..34
1.8 Modèles de déploiement…………………………………………………….………37
1.9 Avantages du Cloud Computing………………………………..……………...……38
1.10 Obstacles au Cloud Computing .……………………..……………..………..……39
1.11 Challenges de recherche dans l’environnement Cloud…………………...…….....39
1.11.1 Migration des données .………………………………..…………….....39
1.11.2 Sécurité de données et confidentialité…………………..…...………….39
1.11.3Migration de machines virtuelles……..……………………….…………40
1.11.4 Consolidation de serveurs………..………………………………….…..40
1.11.5Gestion de l’énergie……………………………………………………...40
1.11.6 Ordonnancement………..…………………………………………….…41
1.13 Conclusion ………….…………………..………………………………………..41

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 8
Chapitre II : Sécurité dans le Cloud Computing

2.1 Introduction……………………………………………………….……………..…42
2.2 Terminologies et principes……………………………………………….…….......42
2.3 Exigences de sécurité pour l’architecture………………………………………......45
2.4 Sécurité physique…………………………………………………………………...46
2.5 Normes et stratégies de sécurité du Cloud………………….………………………47
2.6 Modèles de sécurité……………………………………………….………………..48
2.7 Déploiement des politiques de sécurité au sein du firewall d’un
Datacenter ……….…………………………………………….……………………...48
2.7.1 Centre de données (Datacenter) …………………………….………………...49
2.7.2 Firewall…………………………………………………………….……..…...50
2.7.2.1 Pare-feu et politique de sécurité ………………………………………....51
2.7.2.2 Déploiement des politiques de sécurité …………………..………..….....52
2.7.2.2.1 Déploiement de type I …………………………………..……..53
2.7.2.2.2 Déploiement de type II ……………………………..……….....53
2.8 Equilibrage de charge (Load balancing) ………….………………..………..……..56
2.8.1 Load Balancing et le Cloud Computing……………………….….….…..56
2.8.3Métriques du Load Balancing ………………………………..………..….57
2.8.4 Algorithmes du Load Balancing………………………………..….……..58
1.12.5 Approche proposée…………………………….……............…….60
2.8 Conclusion ………………………………………………………….……….……..62

Chapitre III : Sécurisation des données dans le Cloud Storage

3.1 Introduction ……………………………………………………………….……………...64


3.2 Énoncé du problème et objectifs …………………………………………..………..........64
3.3 La confidentialité des données dans le Cloud …………………………………….……...66
3.4 Fondamentale sur la Cryptographie ……………………………………………...............68
3.4.1 Définition …………………………………………………………….…….......68
3.5 Crypto système ……………………………………………………….……………….….69
3.5.1 Définition ……………………………………….………………………….......69
3.5.2 Cryptographie symétrique …………………………….……………….…...…..69

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 9
3.5.2.1 Algorithme de chiffrement AES ………………….…………..………71
3.5.3 Cryptographie asymétrique (à clé publique) …………………….……..………72
3.5.3.1 Algorithme RSA …………………………………………….…….….74
3.5.3.2 Sécurité de RSA ………………………………………….……….….76
3.5.3.3 Algorithme de Diffie-Hellman …………………..…………………...79
3.5.3.4 PGP de Philip Zimmermann …………………………..……………...80
3.5.2 Signatures numériques ………………………………………………..………..80
3.5.3 Fonctions de hachage ……………………………………….………..………...81
3.5.4 Certificats numériques …………………………………………….…..………..81
3.5.5 Validité et confiance ……………………………………………..……….…….83
3.6 Notre contribution pour de stockage sécurisé de données …………………..…………...83
3.6.1 Algorithme proposé ………………………………………………….………....85
3.6.1.1 Algorithme de stockage des données ………………..………………85
3.6.1.2 Algorithme de récupération des données …………………..…….….86
3.6.1.3 Implémentation et analyse des résultats …………………………..…87
3.7 Conclusion ……………………………………………………………………..…….......89

Chapitre IV : Chiffrement Homomorphique et vote électronique

4.1 Introduction …………………………………………………………………..…………..91


4.2 Homomorphisme …………………………………………………………………..….....92
4.2.1 Définition ……………………………….……………………………………..92
4.3 Système de chiffrement homomorphique ……………….……………………………….92
4.3.1 Définition …………………………………………….………………………...92
4.3.2 Aperçu historique ………………………………………….…………………...93
4.3.3 Systèmes Homomorphiques Partielles ………………………….……………...93
4.3.3.1 Cryptosystème de RSA ……………………………..………………...94
4.3.3.2 Cryptosystème d’EL GAMAL …………………………….…………95
4.3.3.3 Cryptosystème de Paillier …………………………….………………97
4.3.4 Sécurité d’un cryptosystème homomorphique ………………………..………..99
4.3.5 Les limites théoriques d’un crypto système homomorphique …………….…..101
4.3.6 Attaque contre le cryptosystème homomorphique.……………………….…...101
4.4 PHE et vote électronique dans l’environnement Cloud ………………………………...102

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 10
4.5 Travaux existants et contributions ……………………………………………………...103
4.6 Scenario du vote électronique …………………………...…………………………..….104
4.6.1 Description du scenario ………………………………………………….........106
4.6.2 Algorithme proposé pour notre scénario de vote …………………………..…106
4.6.3 Exemple d’un vote électronique avec EL Gamal ……………………………..107
4.6.4 Avantages de notre proposition ……………………………………….…........109
4.6.5 Complexité et Résultat de l’implémentation de notre système ……………… 110
4.7 Conclusion ……………………………………………………………………...…..…..113

Conclusion générale et perspectives


1- Conclusion générale ……………………………………………………...…..….114
2- Contribution ……………………………………………………………………...114
3- Perspectives ………………………………………………………….……..…....115
Annexe1 ………………………….………………………………………….……......….....116
Références …...………………………………………...……………………………..……..118

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 11
Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 12
LISTE DES FIGURES

Figure 1.2 : Prévisions de la taille du marché du Cloud Computing public………………….25


Figure 1.3 : Vue générale de l’environnement Cloud Computing …………………………...27
Figure 1.4 : illustration des services Cloud…………………………………………………...28
Figure 1.5 : Caractéristiques du Cloud Computing…………………………………………...30
Figure1.6 : Différentes avancées menant à l'avènement du Cloud………………....……….34
Figure 1.7 : Types de service Cloud Computing…………………………………………......35
Figure 1.8 : Modèles de déploiement Cloud Computing……………………………………..38
Figure 2.1 : Sécurité : principe et qualité…………………………………………………..…45
Figure 2.2 : Modélisation d’un Datacenter…………………………………………………...50
Figure 2.3 : Architecture avec firewall……………………………………………….............51
Figure 2.4 : Comparaison du nombre d’opérations par taille de la politique de sécurité pour les
02 algorithmes………………………………………………………………………………...56
Figure 2.5 : Architecture Proposée pour le Load Balancing……………………….................62
Figure 3.1 : Vue d'ensemble du stockage …………………………………………………….67
Figure 3.2 : Schéma du chiffrement symétrique……………………………………………...70
Figure 3.3: Illustration de l'algorithme AES………………………………………….............71
Figure 3.4: Vitesse de l’AES par taille de la clé : 128, 192 et 256…………………………...72
Figure 3.5 : Schéma du chiffrement asymétrique…………………………………………….73
Figure 3.6 : Temps de déchiffrement par longueur de la clé RS…………………………..….75
Figure 3.7 : Modèle Proposé de stockage de données dans le Cloud……………………....85
Figure 3.8: Graphe du temps de l'exécution avec différentes tailles du fichier……………....88
Figure 3.9: Graphe du temps de l'exécution avec différentes tailles de la clé AES…………..89
Figure 4.1 : Scénario d’attaque à clairs choisis……………………………………………….99
Figure 4.2 : Scénario d’attaque à chiffrés choisis…………………………………………...100
Figure 4.3 : Scénario d’attaque adaptative à chiffrés choisis………………………………..101
Figure 4.5: Schéma du vote électronique…………………………………………................104
Figure 4.6: Comparaison des délais du chiffrement d’El Gamal avec Paillier……………...111
Figure 4.7: Comparaison des délais du déchiffrement d’El Gamal avec Paillier…………...112
Figure4.8 : Graphe des délais d’exécution du chiffrement du vote par nombre de
votants……………………………………………………………………………………….113

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 13
LISTE DES TABLEAUX

Tableau 1.1 : Les abréviations à base de ’*aaS’ …………………………………………….36


Tableau 2.1 : Exemple de Deux politiques d’un pare-feu…………………………………….52
Tableau 2.2 : Caractéristique des algorithmes du Load balancing …………………………..59
Tableau 3.1 : Temps d'exécution par taille du fichier en upload et en download ...…….........87
Tableau 3.2 : Temps d'exécution par taille du fichier et taille de la clé AES……………...…88
Tableau 4.1 : Aperçu historique de chiffrement homomorphique …………………...……....94
Tableau 4.2: Comparaison des performances des schémas El Gamal et Paillier...………….111
Tableau 4.4 : Temps de chiffrement du vote par nombre de votants ...……………………..112

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 14
LISTE DES ALGORITHMES

Algorithme 2.1: ENHANCED-Greedy-2-Phase Deployment………………………………..53


Algorithme 2.2: IMPROVED-Greedy-2-Phase Deployment……………………………...…55
Algorithme 3.1: FILEUPLOAD……………………………………………………………...86
Algorithme 3.1: FILEDOWNLOAD…………………………………………………………86
Algorithme 4.1: Génération de la clé RSA…………………………………………………...95
Algorithme 4.2: Chiffrement RSA……………………………………………………………95
Algorithme 4.3: Déchiffrement RSA…………………………………………………………95
Algorithme 4.4: Génération de la clé EL Gamal……………………………………………...96
Algorithme 4.5: Chiffrement EL Gamal……………………………………………………...97
Algorithme 4.6: Déchiffrement EL Gamal…………………………………………………...97
Algorithme 4.7: Génération de la clé Paillier…………………………………………………98
Algorithme 4.8: Chiffrement Paillier…………………………………………………………98
Algorithme 4.9: Déchiffrement Paillier………………………………………………………98
Algorithme 4.10: VOTE PROCESS………………………………………………………...106

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 15
Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 16
1. Introduction
Depuis plusieurs décennies, IT a acquis une place de choix dans la plupart des domaines de
notre société et surtout dans nos communications. Ordinateurs, Smartphones ou tablettes
électroniques sont devenus des intermédiaires essentiels permettant aux gens de surmonter des
distances pour parler à l'autre ou de gagner du temps en effectuant des procédures
administratives en ligne sans avoir à faire la queue dans les bâtiments officiels. Ils ont aussi
tendance à remplacer l'interaction humaine dans les opérations très sensibles comme les
virements bancaires ou les paiements. Que ce soit par leur vitesse, la facilité d'utilisation, ou
le fait qu'ils permettent aux gens de rester connectés au monde entier, peu importe où ils sont,
ces dispositifs ont devenus, parfois, sans remettre en cause, une véritable confiance chargé de
secrets tels que les numéros de comptes bancaires, informations de carte de crédit, les détails
privés, etc.

Indéniablement, la technologie de l'internet se développe d'une manière exponentielle


depuis sa création. Au cours de la dernière décennie, avec la standardisation d’Internet, le
développement des réseaux à haut débit, le paiement à l’usage et la quête sociétale de la
mobilité, le monde informatique a vu se populariser un nouveau paradigme, le Cloud. Cette
nouvelle technologie a fait son apparition dans le monde de l'IT. Ce nouveau concept offre
des opportunités aux sociétés de réduire leurs coûts d'investissements dans les infrastructures
et dans les logiciels.

Le Cloud Computing, ou « informatique des nuages », est un nouveau modèle


informatique qui consiste à proposer les services informatiques sous forme de services à la
demande, accessibles de n'importe où, n'importe quand et par n'importe qui. Cette approche
n’est pas tout à fait nouvelle (modèle ASP, IBM on demand). La réelle nouveauté réside dans
son approche systématique.

Il y a quelques années, on nommait ASP (Application Service Provider) le fait de proposer


une application sous forme de service. En remontant un peu plus loin en arrière, dans les
années 60, IBM proposait déjà l'informatique « on-demand ». Les années 80 furent aussi le

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 17
début des concepts de virtualisation. Tous ces concepts ont amené, petit à petit, à inventer une
nouvelle manière de proposer l'informatique « comme un service ».
Dans un contexte économique où nous cherchons à rentabiliser au maximum les
investissements et limiter l'empreinte écologique (Green IT), le Cloud Computing prétend à
devenir, la solution de demain.

Dans un tel contexte, développeurs, administrateurs et décideurs ne peuvent plus ignorer


l'émergence de ce nouveau marché, et doivent comprendre et analyser ces nouvelles
technologies afin de mieux anticiper ce nouveau virage qu’est le Cloud Computing dans notre
IT de demain. Cependant, n’imaginez pas un marché 100 % Cloud à court terme, il y aura une
cohabitation entre le Cloud et l’informatique locale.

Le recours au Cloud est de plus en plus remarquable compte tenu de plusieurs facteurs,
notamment ses architectures rentables, prenant en charge la transmission, le stockage et le
calcul intensif de données.

Cependant, ces services de stockage prometteurs soulèvent la question de la protection des


données et de la conformité aux réglementations, qui sous-tend le problème de la perte de
maîtrise et de gouvernance. Cette dissertation vise à surmonter ce dilemme, tout en tenant
compte de deux préoccupations de sécurité des données, à savoir la confidentialité des
données et l’intégrité des données.

2. Contexte
L'informatique dématérialisée, couramment désignée par le terme anglais Cloud, consiste à
ne plus gérer ses données sur son propre dispositif (ordinateur, téléphone, . . .) mais à en
confier la gestion à une entité tierce accessible par Internet. De nos jours, on entend souvent
parler de l'avènement du Cloud avec les nouveaux produits technologiques qui sont connectés
en permanence à Internet, comme les Smartphones/tablettes, et avec des connexions réseaux
de plus en plus performantes (3G/4G, ADSL/Fibre, . . .). Les utilisateurs peuvent ainsi
accéder à leurs données de n'importe où et à n'importe quel moment. Cependant, un des
risques majeurs de ces technologies est la perte de confidentialité de leurs données
puisqu'elles sont confiées à une entité tierce, qui leur est souvent inconnue.

L'informatique dématérialisée est divisée en deux catégories :

 Le calcul dématérialisé, de l'anglais Cloud Computing, où le traitement des données


est confié à l'entité tierce.
 Le stockage dématérialisé, de l'anglais Cloud Storage, où le stockage des données
est assuré par cette même entité.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 18
Ces deux informatiques peuvent être compatibles entre elles, comme le propose, par exemple,
le système Amazon Cloud Drive [1]. Nous décidons cependant de nous focaliser sur le
stockage dématérialisé et de concevoir une réalisation de celui-ci possédant certaines
propriétés :

 un utilisateur doit pouvoir partager ses données avec les utilisateurs en qui il a
confiance.
 un utilisateur non autorisé ne doit pas pouvoir accéder aux données, notamment le
serveur qui est un utilisateur non autorisé.
 un utilisateur stockant des données dans un serveur doit pouvoir gérer les droits
d'accès comme il le souhaite.

3. Motivation
Le Cloud Storage consiste à offrir aux utilisateurs la possibilité de stocker des données sur
un serveur distant. L'intérêt d'un tel système est que le serveur va a priori être connecté en
permanence à Internet. De n'importe où et à n'importe quel moment, un utilisateur pourra
accéder à ses données, en récupérer et en stocker, en passant par les différents réseaux de
connexion. Ceci est d'autant plus intéressant lorsque le dispositif qu'il utilise dispose de peu
de mémoire, comme par exemple un téléphone mobile. Toutefois, la question de la sécurité
des données doit encore être résolue de manière adéquate.

Même si cette technologie est bien connue depuis de nombreuses années par le public, les
gens ne sont pas toujours conscients des risques. L'un d'eux est l’usurpation d'identité. En
France, selon une étude du CREDOC [2] en 2009, le nombre de vols d'identité signalés était
d'environ 250 milles. Il repose principalement sur la possibilité pour une personne
malveillante de récupérer des informations personnelles et utile à propos de quelqu'un sur de
nombreux documents qui pourraient être stocké sans protection. Ainsi, bien que ce problème
ne soit pas inhérent à cette nouvelle technologie, le nombre croissant de documents officiels,
bancaires ou des informations personnelles stocké dans le Cloud Storage offre de nouvelles
possibilités pour les individus malveillants pour atteindre leurs objectifs. En effet, le CIFAS
[3] service de prévention de la fraude au Royaume-Uni, rapporte un nombre toujours croissant
de fraudes d'identité, de 2007 à 2012.

Ces menaces posent quelques questions: Comment ces systèmes fonctionnent? Comment
sont-ils protégés contre les attaques potentielles [11c] [11d]? Comment pouvons-nous faire
confiance aux garanties de sécurité réclamées par le système? Pour garantir la confidentialité
et la sécurité des données sur les différents réseaux et plateformes.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 19
Les données stockées dans le Cloud sont confidentielles et peuvent être sensibles à
l'entreprise et sont susceptibles d'être exploitées par un tierce non autorisées. Actuellement, la
plupart des utilisateurs du Cloud Storage ne protègent pas leurs données, d’autres utilisent des
contrats SLA (Service Level Agreement). Ces Contrats sont basés, généralement, sur la
confiance et la réputation du fournisseur. Cette faiblesse nous a motivé à réfléchir à des
solutions qui permettent aux utilisateurs de sécuriser leurs données pour éviter leurs
utilisations malveillantes.

4. Contribution

Lors de la définition des solutions pour la confidentialité des données stockées dans le
Cloud, nous prenons en considération les aspects suivants: la facilité de déploiement, de la
robustesse, et de performances (délai d’exécution). En considérant les constatations et les
objectifs cernés dans la section précédente, nous avons défini les contributions majeures ci-
dessous :

 Au niveau du chapitre II qui aborde la problématique du déploiement de la


politique de sécurité du firewall d’un Datacenter : Beaucoup de travaux de recherche
ont traité de la spécification des politiques, la détection des conflits et le problème
d’optimisation, mais très peu de travaux se sont intéressés au déploiement de
politiques de sécurité au niveau du firewall [88]. Nous avons fourni des approches qui
permettent de déployer une politique de sécurité cible afin qu’elle remplace celle en
cours d’exécution. Nos principales contributions sont les suivantes :

- Contribution 1 :

 Développement d’un nouvel algorithme plus efficace et sécuritaire pour


l'actualisation de la politique de sécurité du firewall, Ce travail a fait l’objet
d’une publication dans un journal international [1].

 Développement d’un algorithme améliorant notre première approche [2], la


valeur ajoutée de cette évolution est de sécurisé davantage l’algorithme,
renforcer sa fiabilité et le rendre plus rapide.

 Au niveau du chapitre III qui concerne la sécurisation des données stockées
dans un Cloud Storage : Lorsque on discute des solutions sur la confidentialité des
données stockées par un fournisseur externe, on prend en considération les aspects
suivants: la facilité de déploiement, la robustesse, la rapidité de traitement et de
performances. Nos contributions sont résumées comme suit:

- Contribution 2 :

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 20
 Proposition d'un schéma pour le stockage dans le Cloud, basé sur l’utilisation
originale de la cryptographie [3] [4]. Tout d'abord, le schéma proposé garantit
la confidentialité meilleure de données. Notre algorithme [5] [6] vise à fournir
une solution qui assure le stockage des données en toute sécurité dans le Cloud.
Les données doivent être cryptées avant de les envoyer. Nous avons utilisé
l'algorithme de chiffrement symétrique AES afin de bénéficier de ses avantages
en termes de robustesse et de la rapidité de traitement. Ce modèle hybride que
nous avons proposé permet de sécuriser les données et de les protéger contre
les attaques.

 Développement d’une autre solution sécurisé, fiable et rapide pour sécuriser les
données stockées dans le Cloud Storage. Cette solution, qui améliore notre
première approche [7] [8], est basée sur le chiffrement EL GAMAL.

 Au niveau du Chapitre IV : Plusieurs travaux ont vu le jour récemment sur le


vote électronique et qui utilise la force de calcul des plates-formes du Cloud
Computing. Nos principales contributions, dans ce domaine, sont les suivantes:

- Contribution 3 :

 Nous avons proposé un système de vote électronique basé sur le chiffrement


Homomorphique et qui permet d’assurer la confidentialité et la sécurité dans le
vote [10a] [10b] [11a]. Nous présentons un nouveau système de vote
électronique qui utilise le concept du chiffrement homomorphique, qui permet
d'effectuer des opérations spécifiques au niveau des votes chiffrés sans les
déchiffrer, au lieu d'un cryptage traditionnel. Notre proposition profite de tous
les avantages des systèmes de chiffrement Homomorphiques additif
notamment le côté sécurité et robustesse.

5. Organisation de la thèse

Dans ce mémoire, nous nous intéresserons à la problématique du stockage externalisé


assurant la protection des données sensibles. Ma thèse est organisée comme suit :

Tout d'abord, Le premier chapitre donne une introduction du Cloud Computing, y compris
la définition, l'architecture, les modèles de déploiement, les services de Cloud Computing et
ses origines depuis l'informatique utilitaire en passant par les grilles de calculs, ainsi que les
différents types de Cloud qui existent à l'heure actuelle et les différents types d'utilisateurs
visés par les solutions de Cloud Computing et les besoins qui leur sont reliés.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 21
Le deuxième chapitre aborde les principes, les exigences, les normes, les stratégies et les
modèles de la sécurité dans le Cloud Computing. Ensuite, ce chapitre traite la politique de
sécurité, les problèmes de formalisation et d’évaluation de politiques, décrit les techniques
d’optimisation d’une telle politique et en fin, présente les problèmes liés au déploiement de
ces politiques au sein d’un pare-feu d’un Datacenter. Ensuite nous abordons la question de
l’équilibrage de charge dans le Cloud qui permet de distribuer la charge entre plusieurs
ressources dans un système distribué ou en parallèle afin d'égaliser les charges de travail de
manière efficace et d'améliorer le temps d'exécution d'une tâche afin d’améliorer les
performances et la disponibilité.

Le troisième chapitre met l'accent sur la problématique du stockage de données dans le


Cloud Computing, compte tenue de la confidentialité des données qui deviennent plus
compliquées avec le partage de données souple entre un groupe d'utilisateurs dynamiques, et
exige le caractère secret des données externalisées et un partage efficace des clés de
décryptage entre les différents utilisateurs autorisés. Nous avons mis en place des solutions à
la problématique du stockage dématérialisé qui permettent d’assurer la protection et la
sécurité des données confidentielles. Notre solution s’appuie sur les algorithmes de
chiffrement symétriques et asymétriques, pour sécuriser les données stockées dans des
serveurs externes.

Le quatrième et dernier chapitre aborde les chiffrements Homomorphiques et leurs


applications dans le traitement des données chiffrées dans le Cloud, ce concept permet
d’exécuter, au sein même du Cloud, une recherche ou une manipulation sur les données sans
devoir, à chaque fois, déchiffrer et re-chiffrer. Ensuite nous appliquons les avantages de ces
systèmes de chiffrement Homomorphiques pour réaliser un modèle du vote électronique dans
le Cloud Computing.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 22
CHAPITRE I

1.1 Introduction
Les progrès technologiques récents soulagent une croissance explosive des contenus
numérique. International Data Corporation (IDC) aux Etats-Unis proclament que l'univers
numérique se développera par un facteur de 300, jusqu'à 40 trillion de giga-octets de données
repliées d'ici 2020 [GR12]. Cette prolifération d'univers numérique continue à monter la
demande de nouvelles utilités de stockage et de réseau, avec un besoin croissant d'utilisation
plus rentable des capacités de stockage et la largeur de bande de réseau pour le transfert des
données. En soi, l'utilisation des systèmes de stockage à distance gagne un intérêt en
expansion, à savoir les services basés sur le Cloud Storage, puisqu'ils fournissent des
architectures rentables. Ces architectures soutiennent la transmission, le stockage, et le calcul
intensif des données externalisées dans un modèle d'affaires pay-per-use.
Cet intérêt répandu pour des services du Cloud Storage émane principalement des
associations d'entreprises et des organismes gouvernementaux cherchant des systèmes plus
rentables et plus élastiques. C'est-à-dire, les avantages de l'adoption du Cloud sont très réels
dans une nouvelle ère de la réactivité et de l'efficacité dans la prestation de service de
technologie de l'information. Par conséquent, il n'y a plus le besoin de dépenser un grand
nombre de capital pour acheter un logiciel d'application cher ou un matériel sophistiqué dont
ils pourraient ne jamais avoir besoin encore. Ces avantages économiques présentent les
motivations essentielles principales pour l'adoption de nuage comme ils aident des entreprises
réduisant les dépenses d'investissement (CapEx), réservées pour acheter l'immobilisation fixe
et la dépense opérationnelle (OpEx) qui est un coût actuel pour exploiter un produit, une
affaire, ou un système.

Cependant, malgré toutes ces caractéristiques attrayantes, ce nouveau paradigme apporte


plusieurs problèmes de sécurité spécifiques au Cloud, en particulier en raison de ses
caractéristiques de sous-traitance et de la multi-location.

Faire face à ces questions de plus près, nous percevons que la plupart des problèmes de
sécurité dans le Cloud sont essentiellement des anciens problèmes des réseaux dans un nouvel
arrangement. Par exemple, les partenariats d'entreprise et l'externalisation offshore impliquent
la confiance similaire et des questions de réglementation. De même, les logiciels open source
permettent aux services informatiques de construire et déployer rapidement des applications,

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 23
mais au détriment du contrôle et de la gouvernance. En outre, les attaques de machines
virtuelles et les vulnérabilités des services Web existaient bien avant le Cloud Computing, et
est devenu à la mode. Ainsi, la diversité de ces services fournis par des infrastructures de
Cloud Computing accroît leur vulnérabilité aux incidents de sécurité et les attaques. Par
conséquent, ces défis doivent être abordés tout en respectant la sécurité et de la confidentialité
dans le contexte du Cloud.

1.2 Historiques

Il n'y a pas de date-clé à laquelle nous puissions dire que le Cloud Computing est né !
La notion de Cloud fait référence à un nuage, tel que l'on a l'habitude de l'utiliser dans des
schémas techniques lorsque l’on veut représenter Internet. Un réseau comme Internet est
constitué d'une multitude de systèmes fournissant des services et des informations. Le Cloud
Computing est dans cette lignée : un ensemble de services et de données consommables.

Cette notion de consommation a été proposée en 1961, lors d'une conférence au MIT
(Massachusetts Institute of Technology), par John McCarthy aussi connu comme l'un des
pionniers de l'intelligence artificielle (dont il proposa le nom en 1955) et pour avoir inventé
du LISP en 1958. John McCarthy suggéra que la technologie informatique partagée (« time-
sharing ») pouvait construire un bel avenir dans lequel la puissance de calcul et même les
applications spécifiques pouvaient être vendues comme un service public.

Cette idée, très populaire dans les années 60, disparu au milieu des années 70 : à l'époque, les
technologies matérielles, logicielles et réseaux n'étaient tout simplement pas prêtes.

Le Cloud Computing met en œuvre l'idée d'informatique utilitaire du type service public,
proposée par John McCarthy. Il peut aussi être comparé au cluster de calcul dans lequel un
groupe d'ordinateurs se relient pour former un ordinateur virtuel unique permettant le calcul
de haute performance (HPC), mais aussi à l'informatique en grille (Grid Computing) où des
ordinateurs reliés et répartis géographiquement permettent la résolution d’un problème
commun. C'est dans cette philosophie, que depuis les années 70, on inventa la notion de «
service bureau » pour qualifier une entreprise louant des lignes téléphoniques, répondeurs,
services informatiques etc. Généralement, les clients des « services bureau » n'ont ni l'ampleur
ni l'expertise pour intégrer en interne ces services, c’est pourquoi ils passent par un
prestataire.

À l'époque, le coût d'achat et d'exploitation de mainframes IBM était hors de prix. C’est
pourquoi, des solutions permettant aux entreprises de pouvoir exploiter ces technologies à
moindre frais avec la notion de « paiement à la consommation » furent proposées.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 24
Les ASP, « Application Service Provider » ont aussi leur part dans l'historique du Cloud
Computing. Une ASP désigne une application fournie comme un service, c'est ce que l'on
nomme maintenant SaaS pour « Software as a Service » dans la terminologie actuelle du
Cloud Computing.
C'est ensuite, vers la fin des années 90, que ce concept a pris de l'importance avec
l’avènement du Grid Computing [22]. Le terme Cloud est une métaphore exprimant la
similarité avec le réseau électrique, dans lequel l'électricité est produite dans de grandes
centrales, puis disséminée à travers un réseau jusqu'aux utilisateurs finaux. Ici, les grandes
centrales sont les Datacenter, le réseau est le plus souvent celui d'Internet et l'électricité
correspond aux ressources informatiques. Le Cloud Computing n'est véritablement apparu
qu'au cours de l’année 2006 [23] avec l'apparition d'Amazon EC2 (Elastic Compute Cloud).
C'est en 2009 que la réelle explosion du Cloud survint avec l'arrivée sur le marché de sociétés
comme Google (Google App Engine), Microsoft (Microsoft Azure), IBM (IBM Smart
Business Service), Sun (Sun Cloud) et Canonical Ltd (Ubuntu Enterprise Cloud). D'après une
étude menée par Forrester [21], le marché du Cloud Computing s'élevait à environ 5,5
milliards de dollars en 2008, il devrait atteindre plus de 150 milliards d'ici 2020, comme
l’illustre la figure 1.1.

Figure 1.1 : Prévisions de la taille du marché du Cloud Computing public [21].

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 25
La virtualisation a été la première pierre vers l'ère du Cloud Computing. En effet, cette
notion permet une gestion optimisée des ressources matérielles dans le but de pouvoir y
exécuter plusieurs systèmes « virtuels » sur une seule ressource physique et fournir une
couche supplémentaire d’abstraction du matériel. Les premiers travaux peuvent être attribués
à IBM, qui dans les années 60, travaillait déjà sur les mécanismes de virtualisation en
développant dans les centres de recherche de Cambridge et de Grenoble, CMS (Conversation
Monitor System), le premier hyperviseur.

Avec les différents progrès technologiques réalisés durant ces 50 dernières années, tant sur
le plan matériel, logiciel et conceptuel, aux avancées des mécanismes de sécurité, à
l'élaboration de réseaux complexes mais standardisés comme Internet, et à l'expérience dans
l'édition et la gestion de logiciels, services, infrastructures et stockage de données, nous
sommes maintenant prêts à entrer dans l’ère du Cloud Computing, telle que rêvait par John
McCarthy en 1961.

1.3 Définition du Cloud


Comme nous l'avons vu plus haut, le Cloud Computing est un nuage de services et de
données. Plus précisément, c’est un paradigme, et à ce titre il est difficile de lui donner une
définition exacte et de dire avec certitude s’il s'agit ou non de Cloud.

Beaucoup de gens sont confus au sujet de ce que le Cloud Computing est, d'autant plus que
le terme est galvaudé. En gros, il décrit les ressources hautement évolutives fournies comme
un service externe via l'Internet sur un paiement à l'utilisation. Cloud Computing peut être
défini comme un modèle spécialisé de calcul distribué, qui est configuré dynamiquement et
livré à la demande. Ce nouveau paradigme massivement évolutif est différent des réseaux
traditionnels. Il est très abstrait pour offrir trois niveaux de services.
Economiquement, l'attrait principal du Cloud Computing est que les utilisateurs utilisent
seulement ce dont ils ont besoin, et ne paient que pour ce qu'ils utilisent réellement. Des
ressources sont disponibles pour être accessible, à tout moment, et en tout lieu à travers les
réseaux. Il n'y a pas besoin de vous soucier de comment les choses sont maintenues.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 26
Figure 1.3 : Vue générale de l’environnement Cloud Computing

Il existe de nombreuses définitions du terme Cloud Computing (CC) et il y a peu de


consensus sur une seule et universelle définition. Cette multitude de définitions reflète en soi
la diversité et la richesse technologique du Cloud Computing. Dans ce qui suit, nous citons
quelques une des plus pertinentes. Selon [13], [14], [15], qui se basent sur une vision
rapprochée des grilles de calcul ’Grid Computing’, le Cloud Computing se base
principalement sur le paradigme de l’informatique distribuée à grande échelle afin d’assurer
un service à la demande accessible à travers Internet. Une deuxième définition, proposée dans
[16, 17] et qui est plus abstraite, définit le Cloud Computing par l’utilisation des ressources
informatiques (matériels et logiciels) qui sont offertes en tant que service à travers un réseau
(typiquement Internet). Une troisième définition, élaborée par un groupe de travail de la
commission européenne [18], considère le Cloud Computing comme un environnement
d’exécution élastique de ressources impliquant de multiples acteurs pour offrir un service
tarifié avec un certain niveau de qualité de service. Cette définition a été étendue dans [19] en
prenant en considération les perspectives des différents acteurs de l’écosystème Cloud
Computing (fournisseur, développeur, utilisateur).
Cependant, la définition proposée par la National Institute of Standards and Technology
(NIST) dans [12] et [20], qui a été reprise par plusieurs travaux, est devenue quasi la référence
et communément acceptée par le public. NIST définit le Cloud Computing comme étant un
modèle qui permet l’accès via un réseau d’une façon simple et à la demande à un ensemble de
ressources informatiques mutualisées et configurables (ex réseaux, serveurs, stockage,
applications et services). Ces ressources informatiques peuvent être allouées et libérées
rapidement avec le minimum d’effort de gestion ou d’interaction avec les fournisseurs de
services. De plus, NIST précise que le Cloud Computing est composé de cinq caractéristiques

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 27
essentielles, trois modèles de services et quatre modèles de déploiement (figure 1.3 et figure
1.4). Ces éléments sont énumérés par la suite.

Figure 1.4 : illustration des services Cloud

1.4 Caractéristiques

Les utilisateurs de Cloud Computing sont portés à un niveau d'abstraction qui cache les
détails de matériel ou de logiciels, les infrastructures déployées pour soutenir le calcul intensif
et le stockage de données. De cette définition, trois principaux points clés doivent être pris en
considération. Tout d'abord, le NIST décrit le développement de technologies qui prennent en
charge un nouveau modèle d'affaires omniprésent, universel et appropriée. Deuxièmement,
elle implique l'importance des techniques d'accès au réseau à des ressources partagées qui
assurent une interaction fluide entre les fournisseurs du Cloud et de leurs clients.
Troisièmement, cette définition met l'accent sur le modèle de tarification associée du Cloud
qui permet aux utilisateurs de ne payer que les ressources consommées.

Pour mieux comprendre les concepts de base et des technologies dans le Cloud, nous
extrayons du document de définition de NIST cinq attributs. Ces attributs décrivent un
système basé sur le Cloud comme un modèle général fournissant des services mesurés et à la
demande des clients. Généralement, un service, une solution ou un environnement

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 28
d’exécution devrait satisfaire une liste de caractéristiques pour qu’il soit considéré comme
étant du Cloud Computing. Parmi ces caractéristiques, il y a celles qui sont reconnues comme
fondamentales. Par exemple, NIST définit cinq caractéristiques essentielles qui sont [12] et
[20] :

 Ressources à la demande :
Un utilisateur peut allouer unilatéralement des ressources informatiques (serveurs,
réseau, capacités de stockage, environnement d’exécution, application et des
performances de calcul) au besoin, de façon automatique et sans nécessité
d’interaction humaine avec chaque fournisseur de services.

 Large accès réseau


Les ressources Cloud Computing sont disponibles à travers le réseau et accessibles via
des mécanismes standards qui favorisent leurs utilisations à partir des appareils clients
hétérogènes, voire légères (ex ordinateurs portables, téléphones, tablettes).
Néanmoins, les réseaux publics sont considérés comme non fiable, et donc, plusieurs
attaques peuvent être pertinents dans le contexte du Cloud, comme Man In The
Middle attacks (MITMs).

 Mutualisation des ressources


Les ressources informatiques du fournisseur Cloud Computing sont mutualisées pour
servir plusieurs clients en utilisant un modèle multi-tenant. Nous devons noter qu'il n'y
a pas de ressources dédiées à un client spécifique. Ces ressources, physiques ou
virtuelles, sont allouées et libérées dynamiquement selon la demande du
consommateur. Généralement, l’utilisateur n’a ni le contrôle ni la connaissance de
l’emplacement exact des ressources allouées. Dans certains cas, il peut choisir
l’emplacement géographique à un niveau haut (ex par pays, continent ou Datacenter).
La propriété des ressources partagées est supportée par les différents fournisseurs en
se basant sur la technique de la virtualisation, où les multiples systèmes d'exploitation
résident sur la même machine physique. Cependant, les machines virtuelles (VM) co-
résidantes ont soulevé certaines exigences de sécurité, à savoir l'isolation des données
et des processus.

 Élasticité rapide
Les ressources sont allouées et libérées d’une façon élastique, idéalement d’une façon
automatiquement, pour s’adapter rapidement à la demande qu’elle soit croissante ou
décroissante. Pour le consommateur, les ressources disponibles à l’allocation
apparaissent comme illimitées et peuvent s’allouer à tout moment. Cette propriété
démontre une évolutivité des ressources plus importantes.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 29
 Services mesurés
Toutes les ressources allouées peuvent être surveillées et contrôlées afin de mesurer
leurs consommations avec un niveau d’abstraction approprié selon le type du service
(ex stockage, temps de calcul, bande passante).

Figure 1.5 : Caractéristiques du Cloud Computing

En plus des cinq caractéristiques définies par NIST, il y a d’autres caractéristiques dont
nous citons les plus pertinentes Figure 1.5 :

 Autonome :
Le Cloud Computing est un système autonome et géré de façon transparente pour les
utilisateurs. Le matériel, le logiciel et les données au sein du Cloud peuvent être 10
automatiquement reconfigurés, orchestrés et consolidés en une seule image qui sera
fournie à l’utilisateur [24].

 Paiement à l’usage :
La consommation des ressources dans le Cloud s’adapte au plus près aux besoins de
l’utilisateur. Le fournisseur est capable de mesurer de façon précise la consommation
(en durée et en quantité) des différents services (CPU, stockage, bande passante,…).
Cela lui permettra de facturer l’utilisateur selon sa réelle consommation [25].

 Fiabilité et tolérance aux pannes :


Les environnements Cloud tirent parti de la redondance intégrée du grand nombre de
serveurs qui les composent en permettant des niveaux élevés de disponibilité (l’accès
réseau aux ressources doit être assuré à plein temps sans aucune interruption) et de

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 30
fiabilité (Par exemple, la probabilité de perte de donnée doit être quasi nulle, de
l’ordre de ) pour les applications qui peuvent en bénéficier [26].

 Évolutivité :
Les services de type Cloud Computing devraient être évolutifs et doivent satisfaire
toute demande de croissance de la part des utilisateurs selon le besoin des services et
des ressources allouées. Cette évolutivité doit se faire d’une façon automatique et en
cours d’exécution.

 Simplicité d’utilisation :
L’allocation, la gestion et l’utilisation des ressources Cloud Computing doivent être
simples. Idéalement, elles doivent se faire à travers des interfaces et des Application
Programming Interfaces(APIs) efficaces et génériques.

 Garantie QoS :
Les environnements de Cloud peuvent garantir la qualité de service pour les
utilisateurs, par exemple, la performance du matériel, comme la bande passante du
processeur et la taille de la mémoire [27].

 Basé-SLA :
Les Clouds sont gérés dynamiquement en fonction des contrats d’accord de niveau de
service (SLA) [26] entre le fournisseur et l’utilisateur. Le SLA définit des politiques,
telles que les paramètres de livraison, les niveaux de disponibilité, la maintenabilité, la
performance, l'exploitation, ou autres attributs du service, comme la facturation, et
même des sanctions en cas de violation du contrat. Le SLA permet de rassurer les
utilisateurs dans leur idée de déplacer leurs activités vers le Cloud, en fournissant des
garanties de QoS.

1.6 Acteurs
L’écosystème du Cloud Computing est composé principalement par cinq acteurs majeurs
(Cloud Provider, Cloud Consumer, Cloud Carrier, Cloud Broker, Cloud Auditor) :

 Cloud Provider :
Le fournisseur des ressources Cloud Computing. Il est responsable de fournir un
service Cloud Computing qui satisfait les caractéristiques définies dans la précédente
section, tout en respectant les Service Level Agreements (SLAs) établies avec les
autres acteurs (en particulier le Cloud Consumer). Le Cloud Provider a comme activité
l’allocation, l’orchestration et la gestion des ressources qu’il offre tout en assurant le
bon niveau de sécurité.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 31
 Cloud Consumer :
L’utilisateur des ressources Cloud Computing. Cet utilisateur peut être un utilisateur
final ou un développeur selon le type du service Cloud alloué. Cet utilisateur peut être
une personne, un groupe de personnes, les petites et moyennes entreprises, les
multinationales ou les gouvernements.

 Cloud Carrier ou Network Provider :


Le fournisseur de réseau est l’intermédiaire qui assure principalement la connectivité
entre les ressources Cloud Computing et la liaison entre les acteurs de l’écosystème
Cloud Computing (en particulier entre le Cloud Provider et le Cloud Consumer). Cet
utilisateur peut jouer un simple rôle d’acheminements des paquets, comme il peut
jouer un rôle plus important en offrant des fonctionnalités avancées dans le réseau.
Ces fonctionnalités sont basées sur des SLAs établies avec les autres acteurs de
l’écosystème.

 Cloud Broker :
Le courtier Cloud est un intermédiaire qui négocie la relation entre les Cloud
Providers et les Cloud Consumers. Il peut offrir de nouveaux services qui simplifient
les tâches de gestion du Cloud Consumer. Ce dernier peut demander les ressources
Cloud Computing auprès du Cloud Broker au lieu du Cloud Provider directement.

 Cloud Auditor :
L’auditeur Cloud s’occupe de la vérification et l’audition des services Cloud
Computing. Il évalue les services offerts par les Cloud Providers, Cloud Carriers et
Cloud Brokers du point de vue performances et sécuritaires. Le but principal est de
vérifier que les fournisseurs respectent bien les SLAs qu’ils proposent.

1.7 Technologies connexes

Le Cloud Computing utilise des technologies telles que la virtualisation, l'architecture


orientée services et les services web. Le Cloud est souvent confondu avec plusieurs
paradigmes informatiques, tels que le Grid Computing, l’Utility Computing et l’
Autonomic Computing, dont chacun partage certains aspects avec le Cloud Computing. La
figure 1.6 montre la convergence des technologies qui ont contribué à l'avènement du Cloud
Computing.

- Grid Computing
Le Grid Computing est un paradigme de calcul réparti qui coordonne des ressources
autonomes et géographiquement distribuées pour atteindre un objectif de calcul commun. Le

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 32
Grid est basé sur le partage dynamique des ressources entre des participants, des organisations
et des entreprises dans le but de pouvoir les mutualiser, et faire ainsi exécuter des applications
scientifiques, qui sont généralement des calculs intensifs ou des traitements de très gros
volumes de données. Le Cloud Computing est similaire au Grid Computing : les deux
adoptent le concept d’offrir les ressources sous forme de services. Toutefois, ils sont
différents dans leur finalité : tandis que la technologie des grilles vise essentiellement à
permettre à des groupes différents de partager l’accès en libre-service à leurs ressources, le
Cloud a pour objectif de fournir aux utilisateurs des services « à la demande », sur le principe
du « paiement à l’usage ». De plus le Cloud exploite les technologies de virtualisation à
plusieurs niveaux (matériel et plateforme d'application) pour réaliser le partage et
l'approvisionnement dynamique des ressources.

- Utility Computing (informatique utilitaire).


L’utility Computing est simplement une délocalisation d'un système de calcul ou de
stockage. Il présente un modèle d’affectation des ressources à la demande et facturation des
utilisateurs en fonction de leur usage. Le Cloud Computing peut être perçu comme une
réalisation de l'informatique utilitaire. Il adopte un système de tarification basé sur l'utilité,
entièrement pour des raisons économiques. Avec l'approvisionnement des ressources à la
demande et le paiement à l’usage, les fournisseurs de services peuvent maximiser l'utilisation
des ressources et minimiser leurs coûts d'exploitation.

- L'Autonomic Computing
L’Autonomic Computing vise à construire des systèmes informatiques capables de s’auto-
administrer en s’adaptant à des changements internes et externes sans intervention humaine.
Le but de l'informatique autonome est de surmonter la complexité de la gestion des systèmes
informatiques d'aujourd'hui. Bien que le Cloud Computing présente certaines caractéristiques
autonomes, telles que l’approvisionnement automatique des ressources, son objectif est de
diminuer le coût des ressources, plutôt que de réduire la complexité du système.

- Virtualisation
La virtualisation est une technologie qui fait abstraction des détails du matériel physique et
fournit des ressources virtualisées pour les applications de haut niveau. En effet, la
virtualisation regroupe l’ensemble des techniques matérielles ou logicielles permettant de
faire fonctionner, sur une seule machine physique, plusieurs configurations informatiques
(systèmes d’exploitation,…), de sorte à former plusieurs machines virtuelles, qui reproduisent
le comportement des machines physiques. La virtualisation constitue le socle du Cloud
Computing, car elle offre la possibilité de mettre en commun des ressources informatiques à
partir de clusters de serveurs, et ainsi d’affecter ou réaffecter dynamiquement des machines
virtuelles aux applications à la demande. Le moniteur de machine virtuelle (VMM),
également appelé hyperviseur, partitionne la ressource physique du serveur physique sous-

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 33
jacente en plusieurs machines virtuelles différentes, chacune fonctionnant sous un système
d'exploitation distinct et une pile de logiciels utilisateur.

Figure 1.6 : Différentes avancées menant à l'avènement du Cloud.

1.7 Type de service du Cloud Computing

Afin de mieux définir la classification selon le type du service Cloud Computing et comme
illustré dans la figure 2.3, un environnement informatique standard peut être composé par
plusieurs couches qui partent du bas niveau (le matériel physique) vers le haut niveau (les
applications à utiliser). Ces couches sont : Calcul, Réseau, Stockage, Virtualisation, Système
d’exploitation, Intergiciel, Environnement de développement, Environnement d’exécution,
Données et Applications. La classification selon le type du service correspond au niveau de
responsabilité dans la gestion de ces couches que ce soit par les fournisseurs ou par les
utilisateurs. Traditionnellement, toutes les couches sont gérées par l’utilisateur lui-même.
Avec le Cloud Computing, l’utilisateur n’a plus en charge la totalité des couches et en
fonction du niveau des sous-ensembles de couche nous distinguons le type de service. Selon
NIST [20] et comme illustré dans la figure 2.3, il y a principalement trois types de services
Cloud Computing qui sont Infrastructure as a Service (IaaS), Platform as a Service (PaaS) et
Software as a Service (SaaS) :

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 34
Figure 1.7 : Types de service Cloud Computing

 Infrastructure as a Service (IaaS)


Les services Cloud Computing de type IaaS correspondent à des ressources infrastructures
offertes à la demande. Ces ressources sont des ressources de calculs, de stockage ou de réseau
et peuvent être soit virtuelles, soit physiques. Le fournisseur a la gestion des couches Calcul,
Stockage, Réseau et Virtualisation. L’utilisateur des ressources IaaS est responsable de la
gestion de toutes les couches à partir et au-dessus du système d’exploitation. L’utilisateur n’a
ni le contrôle, ni la gestion, ni la visibilité de l’infrastructure sous-jacente. Exemples des
fournisseurs IaaS : Amazon EC2, VPC, IBM Blue Cloud, Eucalyptus, FlexiScale, Joyent, Rackspace
Cloud, etc.

 Platform as a Service (PaaS)


Les services Cloud Computing de type PaaS correspondent principalement à des
environnements de développement offerts à la demande. L’utilisateur n’a plus en charge que
les couches de données et d’applications. Pour ce faire, il y a utilisation des librairies,
langages et outils offerts par le fournisseur pour structurer ses données et développer ses
applications. Une fois développé, le fournisseur doit déployer et maintenir le bon
fonctionnement de l’application et cela en gérant toutes les couches basses allant de
l’infrastructure jusqu’aux environnements d’exécution. Les examples typiques du PaaS sont:
Google App Engine, Windows Azure, Engine Yard, Force.com, Heroku, MTurk.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 35
 Software as a Service (SaaS)
Les services Cloud Computing de type SaaS correspondent tout simplement à des
applications prêtes à l’utilisation offertes à la demande. L’utilisateur n’a qu’à utiliser le
service Cloud Computing offert. Il n’a rien à gérer et c’est le fournisseur qui a toute la
responsabilité de maintenir le service en gérant toutes les couches. Parmi les exemples
d’applications d’entreprise offertes par cette couche on trouve : CRM, outils collaboratifs,
messagerie, Business Intelligence, ERP, etc.

Il y a une correspondance entre le type de déploiement et le niveau de l’utilisateur. Le type


SaaS correspond au niveau utilisateur, le PaaS correspond au niveau développeur et le IaaS
correspond au niveau utilisateur d’infrastructure.

Bien que les trois types de services Cloud Computing (IaaS, PaaS et SaaS) soient la base
de distinction du type de service, le style de nomenclature * as a Service » a été utilisé ailleurs
pour caractériser des services et ressources Cloud Computing. Chacune des nouvelles
abréviations peut-être vues comme un sous-ensemble d’un ou plusieurs des trois types de
base. Parmi ces abréviations, nous citons quelqu’une d’entre elles dans le tableau 2.1.

Abréviation Nom complet de l’abréviation


APaaS Application Platform as a Service
BaaS Backup as a Service
BaaS Backend as a Service
CaaS Communication as a Service
DaaS Data as a Service
DaaS Desktop as a Service
DBaaS Database as a Service
DCaaS Data Center as a Service
DPaaS Database Platform as a Service
DRaaS Disaster Recovery as a Service
HaaS Hardware as a Service
HPCaaS High Performance Computing as a Service
IDaaS Identity as a Service
IPaaS Integration Platform as a Service
MaaS Monitoring as a Service
MaaS Management as a Service
NaaS Network as a Service
PRaaS Process as a Service
RaaS Resource as a Service
SECaaS Security as a Service
STaaS Storage as a Service
XaaS Everything as a Service
Tableau 1.1 : Les abréviations à base de ’*aaS’

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 36
1.8 Modèles de déploiement

Selon la définition du Cloud Computing donnée par le NIST, il existe quatre modèles de
déploiement des services de Cloud, à savoir : Cloud privé, Cloud communautaire, Cloud
public et Cloud hybride, comme illustré dans la figure 1.8.

 Cloud privé :
L’ensemble des ressources d’un Cloud privé est exclusivement mis à disposition d’une
entreprise ou organisation unique. Le Cloud privé peut être géré par l’entreprise elle-même
(Cloud privé interne) ou par une tierce partie (Cloud privé externe). Les ressources d’un
Cloud privé se trouvent généralement dans les locaux de l’entreprise ou bien chez un
fournisseur de services. Dans ce dernier cas, l’infrastructure est entièrement dédiée à
l’entreprise et y est accessible via un réseau sécurisé (de type VPN). L’utilisation d’un Cloud
privé permet de garantir, par exemple, que les ressources matérielles allouées ne seront jamais
partagées par deux clients différents.

 Cloud public :
L’infrastructure d’un Cloud public est accessible à un large public et appartient à un
fournisseur de services. Ce dernier facture les utilisateurs selon la consommation et garantit la
disponibilité des services via des contrats SLA.

 Cloud hybride :
L’infrastructure d’un Cloud hybride est une composition de plusieurs Clouds (privé,
communautaire ou public). Les différents Clouds composant l’infrastructure restent des
entités uniques, mais sont reliés par une technologie standard ou propriétaire permettant ainsi
la portabilité des données ou des applications déployées sur les différents Clouds.

 Cloud communautaires :
L’infrastructure d’un Cloud communautaire est partagée par plusieurs organisations
indépendantes ayant des intérêts communs. L’infrastructure peut être gérée par les
organisations membres ou par un tiers. L’infrastructure peut être située, soit au sein des dites
organisations, soit chez un fournisseur de services.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 37
Figure 1.8 : Modèles de déploiement Cloud Computing

1.9 Avantages du Cloud Computing

Le Cloud Computing offre de nombreux avantages que plusieurs travaux ont listés [28],
[29]. Parmi ces avantages on trouve :

 Réduction des coûts d’infrastructure.


 Réduction des coûts de développement.
 Réduction des coûts des logiciels.
 Des ressources et services plus rapide à allouer et plus simple à utiliser.
 Accès aux ressources plus flexible.
 Meilleure utilisation, plus efficace, des ressources.
 Augmentation de la puissance de calcul.
 Grande capacité de stockage (quasi illimitée).
 Moins de problèmes d’entretien.
 Gestion des mises à jour plus simple et rapide.
 Pas de perte de données.
 Tout est considéré comme un service défini par un SLA.
 Infrastructure allouée et disponible juste à temps.
 Réduction du temps de mise sur le marché.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 38
1.10 Obstacles du Cloud Computing

Le Cloud Computing n’a pas que des avantages, il possède quelques obstacles et désavantages
qui sont abordés dans [30], [31], [32]. Parmi ces obstacles, il y a :

 Données Lock-in.
 Confidentialité des données.
 Chiffrement des données.
 Nécessité d’un accès réseau constant.
 Mauvais fonctionnement avec les connexions à basse vitesse.
 Faible niveau de la qualité de service dans le réseau.
 Risque d’engorgements lors des transferts de données.
 Problème d’interopérabilité.
 Problème de portabilité.
 Faible contrôlabilité.
 Manque de fonctionnalités d’audit.
 Des contrats de service SLAs non normalisés.

1.11 Challenges de recherche dans l’environnement Cloud

Même si certaines des caractéristiques essentielles du Cloud Computing ont été réalisées
par des efforts commerciaux et universitaires, de nombreux problèmes existants n'ont pas été
pleinement pris en compte, et d’autres nouveaux défis continuent d'émerger [33]. Dans ce
chapitre, nous résumons quelques enjeux de recherche dans le Cloud Computing.

1.11.1 Migration des données entre les environnements non standards


La plupart des fournisseurs de services de Cloud Computing utilisent des applications
Cloud propriétaires. Ces applications ne sont pas interopérables, ce qui rend très difficile pour
les utilisateurs de faire passer leurs données à un autre fournisseur de Cloud ou de revenir à
leur machines.

1.11.2 Sécurité de données et confidentialité


Dans le Cloud Computing, les données doivent être transférées entre les dispositifs de
l'utilisateur et les Datacenter des fournisseurs de services de Cloud Computing, ce qui les
rendra cible facile pour les pirates. La sécurité des données et la confidentialité doivent être
garanties, que ce soit sur le réseau ou encore dans les Datacenter de Cloud où elles seront
stockées.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 39
1.11.3 Migration de machines virtuelles
La virtualisation peut offrir des avantages importants dans le Cloud Computing en
permettant la migration de machine virtuelle pour équilibrer la charge de travail entre les
Datacenter. Elle permet un approvisionnement robuste et très réactif dans les Datacenter. Les
principaux avantages de la migration de VM est d'éviter les points chauds (hot spots);
Toutefois, cela n'est pas simple à réaliser. Actuellement, la détection de points chauds et
l’initiation d’une migration manque de souplesse pour répondre aux changements brusques de
charge de travail [33].

1.11.4 Consolidation de serveurs


La consolidation de serveurs est une approche efficace pour maximiser l'utilisation des
ressources, tout en minimisant la consommation d'énergie dans un environnement de Cloud
Computing. La technologie de migration de VM est souvent utilisée pour consolider les
machines virtuelles se trouvant sur plusieurs serveurs sous-utilisés sur un seul serveur, de
sorte à mettre ces derniers en mode d'économie d'énergie. Le problème de la consolidation
optimale des serveurs est un problème d'optimisation NP-complet. Cependant, les activités de
consolidation de serveurs ne devraient pas affecter les performances de l'application. Il est
connu que l'utilisation des ressources de machines virtuelles individuelles peut varier au cours
du temps [34]. Pour les ressources du serveur qui sont partagées entre les machines virtuelles,
comme la bande passante, la mémoire cache et les E/S disques, consolider au maximum un
serveur peut entraîner la congestion des ressources quand une machine virtuelle change son
utilisation de ressource sur le serveur. Par conséquent, il est parfois important d'observer les
fluctuations des traces de VM et d’utiliser cette information pour une consolidation efficace
de serveurs. Enfin, le système doit réagir rapidement aux congestions de ressources, quand
elles se produisent [34].

1.11.5 Gestion de l’énergie


Améliorer l'efficacité énergétique est un autre enjeu majeur dans le Cloud Computing. Il a
été estimé que le coût de l'alimentation et du refroidissement compte pour 53% des dépenses
de fonctionnement total des Datacenter [35]. En 2006, les Datacenter aux États-Unis ont
consommé plus de 1,5% de l'énergie totale produite dans l'année, ce pourcentage devrait
croître de 18% par an. Ainsi, les fournisseurs d'infrastructure doivent prendre des mesures
pour réduire la consommation d'énergie. L'objectif est non seulement de réduire le coût de
l'énergie dans les Datacenter, mais aussi pour répondre aux réglementations
gouvernementales et aux normes environnementales. Concevoir des Datacenter économes en
énergie a récemment reçu une attention considérable. Ce problème peut être abordé dans
plusieurs directions. Par exemple, l'efficacité énergétique des architectures matérielles,
permettant de ralentir la vitesse (fréquence et tension) du processeur et d’éteindre les
composants matériels partiels, est devenue très pertinente.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 40
L’ordonnancement des tâches intégrant une gestion de l’énergie et la consolidation des
serveurs sont deux autres façons de réduire la consommation d'énergie. Un défi majeur dans
toutes les méthodes ci-dessus est de trouver un bon compromis entre l’économie d'énergie et
les performances des applications.

1.11.6 Ordonnancement
L’ordonnancement est un enjeu important qui influence considérablement les
performances de l'environnement de Cloud Computing. Il existe plusieurs niveaux
d’ordonnancement dans le Cloud, notamment : l’ordonnancement au niveau application et
l’ordonnancement au niveau infrastructure. Le premier consiste en l’ordonnancement
(affectation) des tâches composant les applications des utilisateurs sur les services IaaS ou
Haas du Cloud, et le deuxième niveau concerne l’affectation de machines virtuelles sur les
infrastructures physiques (machines physiques) du Cloud. Les deux niveaux
d’ordonnancement sont des problèmes complexes.

Dans cette thèse, notre intérêt porte sur le volet de la sécurité et la confidentialité des
données.

1.13 Conclusion
Dans ce chapitre, nous avons abordé le concept du Cloud Computing, nous avons présenté
la définition objective et générale de la notion de l’informatique dans le nuage, le modèle de
déploiement et les caractéristiques essentielles. Cloud Computing est encore un paradigme en
évolution, il intègre de nombreuses technologies existantes, c’est vrai qu’il est un modèle de
prestation de services, où le logiciel, la plate-forme, l'infrastructure, les données, le matériel
peut être livré directement en tant que service aux clients finaux. Une brève rétrospective de
l'histoire de son évolution nous aide à clarifier les conditions, les opportunités et les défis
existants dans son développement. Ces définitions, ces attributs et ces caractéristiques
évolueront et changer au fil du temps. Les efforts actuels sont à la base pour le développement
de ce concept. Après avoir analysé les produits commerciaux existants et des projets de
recherche, plusieurs défis en termes de sécurité, middleware, modèle de programmation,
gestion des ressources et le modèle d'affaires sont mis en évidence. Ces lacunes inspirent
notre intérêt pour nos recherches futures. Les chapitres suivants traitent le problème de la
sécurité. En particulier, des questions telles que le stockage sécurisé des données dans le
Cloud Storage.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 41
CHAPITRE II

2.1 Introduction

Le recours au Cloud est de plus en plus remarquable compte tenu de plusieurs facteurs,
notamment ses architectures rentables, prenant en charge la transmission, le stockage et le
calcul intensif de données. Il est devenu incontournable dans la mise en place et la fourniture
des services informatiques. Parmi ces services on trouve le stockage externalisé des données.
Storage as a service (STaaS) est un modèle permettant à un fournisseur de services de louer
de l'espace dans son infrastructure de stockage à des individus ou à des entreprises. Au cours
des dernières années, STaaS dans le Cloud a gagné en popularité chez les entreprises et les
utilisateurs privés. Il permet à l'utilisateur final de profiter de la capacité de calcul maximale
avec des configurations matérielles minimales requises. Toutefois, les questions de
confidentialité des données, de sécurité, de fiabilité et d'interopérabilité doivent encore être
résolus de manière adéquate. Mais le problème le plus important est la sécurité des données et
de la conformité aux réglementations, considérablement due à la perte de maîtrise et de
gouvernance. Cet obstacle a limité la propagation de ce service. Les données stockées dans le
Cloud peuvent être sensibles à l'entreprise et sont susceptibles d'être exploitées par le
fournisseur lui-même ou d'autres personnes non autorisées. Actuellement, la plupart des
utilisateurs du Cloud Storage protègent leurs données avec des contrats SLA. Ces Contrats
sont basés, généralement, sur la confiance et la réputation du fournisseur. Cette faiblesse nous
a motivé à réfléchir à des solutions qui permettent aux utilisateurs de sécuriser leurs données
pour éviter leurs utilisations malveillantes.

Dans ce chapitre nous présentons La problématique de la sécurité dans le Cloud, les


exigences de sécurité pour l’architecture Cloud et les modèles de sécurité.

2.2 Terminologies et principes


Avant d’envisager la sécurité dans le contexte du Cloud, nous devons donner les
définitions de base et établir les faits en lien étroit avec les domaines de sécurité :

 Sécurité de l’information. Ce terme fait référence à un domaine vaste qui


concerne la protection des informations et des systèmes informatiques. Les racines

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 42
historiques de la sécurité de l’information plongent dans le chiffrement, le
subterfuge et d’autres pratiques dont l’objectif était de protéger la confidentialité
des messages écrits. La sécurité de l’information inclut généralement des domaines
qui sont impliqués dans la sécurité des systèmes d’information ainsi que les
processus non informatique qui interagissent avec les systèmes d’information.
L’objectif est de protéger les informations et les systèmes d’information contre les
accès, les utilisations, les divulgations, les interruptions, les modifications ou les
destructions non autorisés

 Sous domaine de la sécurité de l’information. Nous trouvons parmi ces sous-


domaines la sécurité de l’ordinateur, la sécurité du réseau, la sécurité de la base de
données et la sécurité de l’information. Pour la sûreté de l’information. Pour la
sécurité du Cloud, nous aborderons le domaine de la sécurité des données stockées
dans un environnement Cloud.

 Confidentialité, intégrité et disponibilité. L’objectif général de la sécurité peut


être réduit à la triade : protéger la confidentialité, l’intégrité et la disponibilité des
informations. Voici les définitions données par le FISMA (Federal information
security Management Act) :

o Confidentialité. Maintenir les restrictions autorisées sur l’accès et la


divulgation des informations, y compris les moyens de protéger la vie privée et
les informations propriétaires… Une perte de la confidentialité est une
divulgation non autorisé des informations.
o Intégrité. Protéger contre une modification ou une destruction impropre des
informations, et inclure une garantie de non répudiation et d’authenticité des
informations … une perte d’intégrité est une modification ou une destruction
non autorisé des informations.
o Disponibilité. Garantir un accès opportun et fiable aux informations et à leur
utilisation… une perte de disponibilité est une interruption de l’accès à
l’information ou à son utilisation ou au système d’information.

 Principe du moindre privilège. Les utilisateurs ou les processus qui travaillent


pour leur compte doivent opérer avec des privilèges minimaux. Cela dans le but
d’éviter une utilisation généralisée des privilèges ou de droits d’accès à l’intérieur
des systèmes d’information.
 Authentification. Les moyens d’établir l’identité d’un utilisateur, généralement en
présentant des informations d’identification comme un nom d’utilisateur et un mot
de passe. Il existe de nombreux mécanismes, comme les systèmes biométriques et

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 43
les certificats. La gestion des identités peut devenir très complexe sur de nombreux
points.
 Autorisation. Les droits ou les privilèges qui sont accordés à une personne, un
utilisateur ou un processus. Leurs versions électroniques peuvent prendre plusieurs
formes. les listes de contrôles d’accès (ACL) sont de simple liste d’utilisateurs
accompagnées de leurs droits comme écriture, lecture modification, suppression ou
exécution sur des ressources ou de classe de ressources spécifiques.
 Cryptographie. Le chiffrement correspond au processus de conversion des
informations en texte clair en un texte codé, le déchiffrement est l’opération
inverse. La cryptographie informatique moderne se mesure en plusieurs
dimensions. Elle demande des ressources de calcul importantes, mais, en général,
plus l’algorithme est résistant, plus le surcoût est élevé. La cryptographie présente
bien d’autres usages en informatique, par exemple les signatures numériques, grâce
auxquelles un individu ou une entité peut authentifier des données en les signant.
Cela peut également servir à authentifier deux parties ou plus qui communiquent.
on va détailler ces notions dans les chapitres qui suivent.
 Audit. Ce sujet comprend différentes activités qui englobent la génération, la
collecte et l’analyse d’évènements du réseau, d’un système et d’une application de
manière à maintenir une vue actuelle sur la sécurité. La surveillance de la sécurité
informatique se fonde sur une estimation automatisée de ces données d’audit. Il se
focalise sur les contrôles de sécurité, les procédures de la sécurité, les procédures
de sauvegarde, les plans de secours, la sécurité du Datacenter et d’autres domaines.
 Traçabilité. L’objectif est de déterminer a posteriori qui fait quoi, quand et
comment. La traçabilité dépend de l’identité et de l’audit. Si ce point est important,
nous devons protéger de manière appropriée toutes les données et contrôler les
informations utilisées pour accorder les accès, sans oublier d’en faire un audit.

En fonction des besoins, des exigences règlementaires et d’autres demandes générales, nous
placerons plus ou moins d’emphase sur les contrôles de sécurité de manière à assurer la
confidentialité, l’intégrité et la disponibilité. Autrement dit, selon le domaine dont lequel nous
travaillons (banque, finance, recherche et développement, gouvernement, défense, etc.), nos
besoins de sécurité du Cloud varieront. Une solution de sécurité est un assemblage qui peut
être difficile ou facile à vérifier, qui peut afficher une simplicité d’utilisation bonne ou
mauvaise et qui peut ou non introduire une configuration et une gestion constantes. La figure
2.1 illustre ces relations.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 44
Figure 2.1 : Sécurité : principe et qualité

La sécurité implique des compromis. Autrement dit, les contrôles doivent être à la mesure
de la valeur à protéger. Puisque toutes les menaces et les vulnérabilités ne seront pas connues
à l’avance, nous expliquons parfois que la sécurité à trois objectifs indépendants : prévention,
détection et réponse. En production, nous ferons des économies du coût si nous protégeons
contre les risques de sécurité au lieu de répondre perpétuellement aux incidents de sécurité qui
auraient pu être évités.

2.3 Exigences de sécurité pour l’architecture


L’architecture de sécurité du Cloud doit être cohérente avec les objectifs de la stratégie de
sécurité. Par conséquent, la première exigence sera de développer une stratégie de sécurité
pour le Cloud. La seconde sera de rédiger des formules provisoires pour chaque document et
standard indiqués à la section précédente. À un certain stade, il faudra identifier les exigences
préliminaires au développement de l’architecture de sécurité du Cloud. Cette section passe en
revue les exigences architecturales d’une implémentation de Cloud type. Plusieurs éléments
motiveront ces exigences :

 Coûts et ressources.
Les ressources financières du fournisseur de Cloud vont délimiter ses possibilités
d’investissements dans les technologies, notamment dans les contrôles de sécurité.
Toutefois, il est important de reconnaître que des ressources limitées vont obliger à bien
réfléchir à la conception, à l’architecture et à la construction. Par exemple, si vous savez
que votre équipe sera réduite, vous serez obligé d’aller vers une amélioration des

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 45
procédures et une plus grande automatisation. De la même manière, le coût sert
également de motivation aux clients des services en nuage. La nature de ces contraintes
tend à un développement des services dont les caractéristiques opérationnelles ne sont
pas adaptées à tous les clients.

 Fiabilité.
Cette qualité définit jusqu’à quel point vous pouvez compter sur un système pour
fournir les services annoncés. La fiabilité peut être vue comme la garantie que la
technologie sous-jacente est capable de fournir des services.

 Performances.
La mesure d’une ou plusieurs qualités qui sont en rapport avec l’utilité d’un système.
Par exemple, les mesures classiques comprennent la réactivité du système aux entrées et
la charge qu’il est capable de supporter.

 Le trio de la sécurité.
Les principes fondamentaux de la sécurité (confidentialité, intégrité et disponibilité)
s’appliquent à la plupart des systèmes. L’architecte sécurité doit mettre en
correspondance les contrôles de sécurité et les exigences de sécurité qui sont parfois
dictées par le besoin d’assurer les trois autres éléments fondamentaux (fiabilité,
performances et coûts).

 Contraintes légales et réglementaires.


Les contraintes légales et réglementaires, peuvent conduire à de nombreuses
exigences supplémentaires qui sont en rapport avec, entre autres, les contrôles de
sécurité techniques, les stratégies d’accès et la conservation des données.

2.4 Sécurité physique

En commençant par le bâtiment dans lequel le Datacenter du Cloud est hébergé, la sécurité
physique est aussi importante que tout autre contrôle qui vise à protéger la sécurité et
l’exploitation du Cloud. Les locaux font l’objet de différentes menaces, y compris les dangers
naturels, les actions humaines et les désastres. Construire le Datacenter de votre Cloud dans
une zone inondable est aussi imprudent qu’accorder des accès privilégiés à tous les
utilisateurs.
Les éléments de la sécurité physique doivent être soutenus par des procédures appropriées
et mises en œuvre par un personnel professionnel expérimenté.

2.5 Normes et stratégies de sécurité du Cloud

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 46
Certaines exigences de sécurité seront probablement uniques à l’implémentation d’un
Cloud, mais il est important qu’elles soient cohérentes avec les standards appropriés, comme
l’ISO 27001 et l’ISO 27002, si vous voulez bénéficier de nombreuses expériences pratiques et
de meilleures pratiques. Par ailleurs, tous les aspects de la sécurité doivent être intégrés à la
stratégie de sécurité d’un Cloud, qu’il est préférable de concevoir sous forme d’un document
formel ayant reçu l’approbation et la bénédiction totale de la direction. Une stratégie de
sécurité sert de référence à partir de laquelle sont déduites les exigences de sécurité. Elle ne
doit pas détailler les approches techniques ou architecturales, car elles risquent de changer
plus fréquemment que la stratégie, mais doit présenter les exigences sous-jacentes d’un point
de vue organisationnel ou métier. Par exemple, elle doit expliquer la nécessité d’utiliser un
chiffrement standard par l’intermédiaire d’un produit commercial qui aura été évalué, plutôt
qu’indiquer l’utilisation de TLS (Transport Layer Security), de SSL (Secure Sockets Layer)
ou de tout autre mécanisme de sécurisation des communications.

La stratégie de sécurité doit également amener à la rédaction de plusieurs documents


connexes :
 Un ensemble de directives pour mettre en place la sécurité dans le développement du
logiciel d’infrastructure, dans les procédures de gestion de l’infrastructure et dans les
procédures d’exploitation.
 Une politique d’utilisation acceptable pour chaque catégorie d’utilisateurs, des
opérations internes à l’administration en passant par les locataires et les utilisateurs
finaux. Ce document doit identifier les catégories d’utilisations interdites, les raisons
de cette interdiction et les conséquences de toute infraction.
 Un ensemble de normes de sécurité pour tous les aspects du Cloud, du développement
à l’exploitation. Vous devez y indiquer les éléments suivants :

- Contrôles d’accès. Ils doivent être donnés à un niveau de granularité qui


permet de guider la mise en œuvre des accès physiques aux bâtiments et les
accès logiques aux systèmes et aux applications.
- Gestion et réponse aux incidents. Vous devez détailler les rôles et les
responsabilités des différentes parties, ainsi que les procédures et la
chronologie de la détection au rapport postmortem.
- Sauvegardes de la configuration du système et du réseau. Il est important de
disposer d’une copie actuelle et officielle de toutes les configurations,
notamment des composants d’infrastructure, des serveurs et des commutateurs,
ainsi que de tous les systèmes hébergés.
- Tests de la sécurité. Le fournisseur du Cloud doit effectuer des tests initiaux et
périodiques de la sécurité et documenter les résultats. Ce document doit

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 47
comprendre les rôles et les responsabilités, et préciser à quel moment les tests
et les comptes rendus des tiers doivent être réalisés.
- Chiffrement des données et des communications. Ce standard doit détailler
les domaines fonctionnels (comme le trafic du serveur web), les algorithmes
cryptographiques approuvés et la longueur requise pour les clés.
- Standards pour les mots de passe. Ce document doit préciser les
caractéristiques des mots de passe acceptables, notamment leur longueur et leur
forme, et la manière dont le fournisseur du Cloud en vérifiera la conformité.
- Surveillance en continu. Vous devez détailler la manière dont la gestion de la
configuration et le contrôle des changements sont effectués de manière à
garantir une sécurité permanente de la base de référence alors qu’elle évolue et
est mise à jour.

Plusieurs autres aspects sous le contrôle du fournisseur de Cloud bénéficieront du


développement de standards formels. Il s’agit notamment de la fermeture des sessions
inactives, de la définition des rôles et des responsabilités du personnel du Cloud, de la rotation
des fonctions et de la planification des vacances, de la gestion des supports optiques et
électroniques, y compris les procédures de destruction garantie pour les supports qui ne
peuvent plus être effacés, du retrait ou de l’utilisation hors site des équipements, de la
suppression opportune des privilèges d’utilisateurs, ainsi que de la reprise sur désastre et de la
continuité de l’activité.

2.6 Modèles de sécurité

La sécurité des technologies de l’information a été confrontée à des problèmes


comparables lorsqu’elle a adopté des approches architecturales. Des architectures et des
modèles de sécurité ont découlé de différents travaux de processus, d’ingénierie et de
modélisation. Il existe une large gamme de modèles et de standards qui s’applique au cycle de
développement d’un système de sécurité.

2.7 Déploiement des politiques de sécurité au sein du firewall d’un


Datacenter
La sécurité du Cloud repose en premier lieu sur la sécurité de ses centres de données, le
pare-feu est un dispositif indispensable pour sécuriser le Datacenter. Il abrite la politique de
sécurité conçue par les décideurs du Cloud. Actuellement, les politiques de pare-feu peuvent
contenir de milliers de règles et ce à cause de la taille énorme et la structure complexe des
réseaux modernes. De ce fait, ces politiques nécessitent des outils automatiques fournissant un
environnement convivial pour spécifier, configurer et déployer en sûreté une politique cible.
Beaucoup de travaux de recherche ont traité la spécification des politiques, la détection des

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 48
conflits et le problème d’optimisation, mais très peu de travaux se sont intéressés au
déploiement de politiques.
Dans ce chapitre, nous allons proposer des stratégies de déploiement pour les deux
importantes catégories d’édition de politiques. Ensuite, nous fournissons deux algorithmes
corrects, efficaces et sûrs pour le déploiement de politiques de sécurité.

2.7.1 Centre de données (Datacenter)

Un centre de traitement de données en anglais « Datacenter » est un site physique sur


lequel se regroupent des équipements constituants du système d'information de l'entreprise
(mainframes, serveurs, baies de stockage, équipements réseaux et de télécommunications,
etc.) (Figure 2.2). Comme son nom l'indique, il sert surtout à stocker les informations
nécessaires aux activités d'une entreprise. Par exemple, une banque peut recourir à un tel
centre, lui confiant les informations relatives à ses clients. En pratique, presque toutes les
entreprises de taille moyenne utilisent un tel centre. Quant aux grandes entreprises, elles en
utilisent souvent plusieurs.
Il peut être interne ou externe à l'entreprise, exploité ou non avec le soutien de prestataires.
Il comprend en général un contrôle sur l'environnement (climatisation, système de prévention
contre l'incendie, etc.), une alimentation d'urgence et redondante, ainsi qu'une sécurité
physique élevée. Cette infrastructure peut être propre à une entreprise pour une utilisation
interne ou à des fins commerciales. Ainsi, des particuliers ou des entreprises peuvent venir y
stocker leurs données suivant des modalités bien définies.

Figure 2.2 : Modélisation d’un Datacenter

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 49
Les bases de données étant souvent cruciales au fonctionnement des entreprises, celles-ci
sont très sensibles à leur protection. Pour cette raison, ces centres maintiennent de hauts
niveaux de sécurité et de service dans le but d'assurer l'intégrité et le fonctionnement des
appareils sur place. Le Datacenter est composé de plusieurs équipements « réseau »
notamment : les routeurs, les commutateurs, les passerelles, les IDS, les firewalls …
Le firewall est utilisé pour sécuriser le Datacenter contre les attaques et permet le filtrage
du trafic suivant les politiques de sécurité adoptée par l’administrateur.

2.7.2 Firewall
Un pare-feu (firewall en anglais), est un logiciel et/ou un matériel, permettant de faire
respecter la politique de sécurité du réseau, celle-ci définissant quels sont les types de
communications autorisés sur ce réseau informatique. Il mesure la prévention des applications
et des paquets. Le pare-feu est considéré comme une des pierres angulaires de la sécurité d'un
réseau informatique. Il a pour principale tâche de contrôler le trafic entre différentes zones de
confiance, en filtrant les flux de données qui y transitent. Généralement, les zones de
confiance incluent Internet (une zone dont la confiance est nulle) et au moins un réseau
interne (une zone dont la confiance est plus importante) figure 2.3. Le but est de fournir une
connectivité contrôlée et maîtrisée entre des zones de différents niveaux de confiance, grâce à
l'application de la politique de sécurité d'un modèle de connexion basé sur le principe du
moindre privilège.
S
F TP DN www

DMZ

Server
Open network

Router
Host

Firewall
PC

Figure 2.3 : Architecture avec firewall

Le filtrage se fait selon divers critères. Les plus courants sont :

 l'origine ou la destination des paquets (adresse IP, ports TCP ou UDP, interface
réseau, etc.)

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 50
 les options contenues dans les données (fragmentation, validité, etc.)
 les données elles-mêmes (taille, correspondance à un motif, etc.)
 les utilisateurs pour les plus récents.

Un pare-feu fait souvent office de routeur et permet ainsi d'isoler le réseau en plusieurs zones
de sécurité appelées zones démilitarisées ou DMZ. Ces zones sont séparées suivant le niveau
de confiance qu'on leur porte.

2.7.2.1 Pare-feu et politique de sécurité

Une politique de pare-feu est une liste ordonnée de règles. Une règle r de pare-feu définit
une action, généralement accepter ou rejeter, pour l'ensemble des paquets correspondant à ses
critères. La majorité des firewalls filtre le trafic en fonction de la sémantique de la première
correspondance, lorsqu’ un paquet p arrive, il est comparé à des règles de haut en bas jusqu'à
ce qu'une règle de correspondance est trouvée et le processus est répété pour le paquet
suivant. Toutes les politiques ont une règle invisible par défaut « match-all » à la fin. Par
conséquent, quand un paquet ne correspond pas à une règle de la politique, l'action par défaut
est appliquée. Dans la plupart des firewalls, la règle par défaut est « deny-all », mais la règle
par défaut « permit-all » est également possible. La majorité des firewalls ne permettent pas
de règles identiques dans la même politique. Par conséquent, nous supposons que cette
restriction ne permet pas la duplication des règles dans une politique. Une règle est un
ensemble de champs, chaque champ peut avoir une valeur atomique ou une plage de valeurs.
Il est possible d'utiliser n'importe quel champ de l’entête IP, UDP et TCP. Toutefois, les cinq
champs suivants sont les plus couramment utilisés: le type de protocole, l'adresse IP source, le
port source, l’adresse IP de destination et le port destination [46].

Tout le champ de l’en-tête de paquet peut être utilisé pour le processus de correspondance.
Cependant, les cinq champs qu’on a cités auparavant sont les plus couramment utilisés. Dans
un paquet, chacun de ces champs a une valeur atomique. Si tous les champs d'un paquet p
coïncident avec les champs correspondants d'une règle r, alors p est accepté ou rejeté selon la
décision de r. Si p ne correspond pas à aucune règle en matière de politique, alors la valeur
par défaut « match-all » de la règle est appliquée. Le tableau 2.1 donne un exemple de deux
politiques d’un firewall basées sur le langage des firewalls PIX.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 51
Tableau 2.1 : Exemple de Deux politiques d’un pare-feu

2.7.2.2 Déploiement des politiques de sécurité

Le déploiement de la politique est le processus par lequel les commandes d'édition de


politique sont émises sur les pare-feux afin que la politique cible devient la politique en cours
d'exécution. Un administrateur réseau ou un outil de gestion ajoute des commandes au sein de
pare-feu pour transformer la politique cible T en une politique en cours d'exécution R. Le
déploiement doit être correcte et doit satisfaire les trois caractéristiques suivantes : la
confidentialité, la sécurité et la vitesse. L'ensemble des commandes qu’un pare-feu prend en
charge est appelé son langage d’édition de politique. Généralement, un pare-feu utilise un
sous-ensemble des commandes d'édition suivant [47]:

(app r) : ajoute la règle r à la fin de la politique R.


(del r) : supprime la règle r de la politique R.
(del i) : supprime la règle de la position i de la politique R.
(ins i r) : insère la règle r à la position i.
(mov i j) : déplace la i ème règle vers la jème position dans R.

Les langages d'édition de politique peuvent être classés en deux catégories: Type I et Type II.

2.7.2.2.1 Déploiement de type I

Le langage d’édition type I prend en charge deux commandes uniquement, ajouter et


supprimer (append and delete). La commande (app r) ajoute une règle r à la fin de la politique
R qui est en cours d'exécution, sauf si r est déjà dans la politique R, dans ce cas, la commande
échoue. La commande (del r) supprime la règle r de la politique R, si elle est présente. Le
langage d’édition type I peut transformer toute politique en cours d'exécution en une politique
cible [47], il est donc complet. La plupart des anciens pare-feux et certains qui sont récents,
tels que FWSM 2.x [48] et JUNOSe 7.x [49], seuls supportent le langage d’édition type I.

2.7.2.2..2 Déploiement de type II

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 52
Le langage d’édition type II autorise la modification aléatoire de la politique du pare-feu. Il
prend en charge trois opérations: la commande (ins i r) insère la règle r comme la ième règle
dans la politique en cours d’exécution R, sauf si la règle r est déjà présente; la commande (del
i) supprime la ième règle de R et enfin la commande (mov i j) déplace la ième règle à la jème
position dans R. Le langage d’édition type II peut transformer toute politique en cours
d'exécution en une politique cible sans accepter des paquets illégaux ou rejeter paquets légaux
[47], par conséquent, il est à la fois complet et sûr. Il est évident que pour un ensemble donné
de politiques initiales et cibles, un déploiement de Type II utilise normalement moins de
commandes d’édition que son équivalent utilisant le déploiement de type I. SunScreen 3,1
Lite et Enterasys Matrix X [51] sont des exemples de pare-feu utilisant le langage d’édition
type II.

Notre algorithme ci-dessous propose une solution correcte pour le déploiement d’une
politique de sécurité dans un firewall [1] :

Algorithm 2.1: ENHANCED-Greedy-2-Phase Deployment

1. ENHANCEDTwoPhaseDeployment (I, T) {

2. /* algorithm to calculate a safe type II deployment */

3. /* to transform firewall policy I into T */

4.

5. /* Phase 1: insert and move */

7. for t←1 to SizeOf(T) do

8. if T[t] I then

9. IssueCommand(ins t T[t])

11. else

12. IssueCommand( mov IndexOf(T[t] , I) t)

13.

14. /* Phase 2: backward delete */

14. for i←SizeOf(I) down to 1 do

16. if I[i] T then

17. IssueCommand( del i )

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 53
18. }.

Malgré que cet algorithme est correcte, mais on a détecté par la suite qu’il contient les
anomalies ci-dessous :

- Cette approche de déploiement de la politique de sécurité peut temporairement avoir des


failles de sécurité et le Datacenter peut être ouvert au trafic indésirable. Du fait qu’un accès
illégal peut utiliser un trou de sécurité dans ce moment délicat.

- D'autre part, la complexité de cet algorithme est quadratique . Cela aura un impact
sur la vitesse de déploiement, et durera plus longtemps au cours de la mise à jour. Ceci est
indésirable parce que le pare-feu peut être dans l'état instable de la sécurité au moment de la
mise à jour.

Par conséquent, nous avons amélioré notre première contribution, et nous avons proposé
un nouveau algorithme 2.2 plus sécurisé et plus rapide [2].

Algorithm 2.2: IMPROVED-Greedy-2-Phase Deployment

1. IMPROVEDTwoPhaseDeployment (I, T) {

2. /* algorithm to calculate a safe type II deployment */

3. /* to transform firewall policy I into T */

4.

5. /* Phase 1: insert new policy */

7. for t←1 to SizeOf(T) do

8. {

9. IssueCommand(ins t T[t])

10. }

11. /* Phase 2: delete old policy */

12. for i←(SizeOf(T)+ SizeOf(I)) down to (SizeOf(T)+1) do

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 54
13. {

14. IssueCommand( del i )

15. }.

16. }.

Cet algorithme apporte les avantages ci-dessous :

- Réduire la période de mise à jour. Cela signifie que nous avons gagné en termes de
performance, puisque la complexité de l'algorithme est devenue linéaire (voir figure
2.4).
- La nouvelle politique T est insérée au début de la politique en cours d'exécution, cette
mesure nous permet de garder toutes les règles de l'ancienne sécurité de la politique au
cours de la mise en œuvre de la nouvelle politique. La suppression des anciennes
règles ne commence qu’après l'insertion totale de la nouvelle politique T. Cette étape
de transition garde la robustesse du système et ne l'expose pas à des vulnérabilités.

1200

1000
Nombre d'opération *1000

800

600
Algorithme 2
400 Algorithme 1

200

0
0k 1k 10k 20k 30k 40k
Nombre de régles de la politique

Figure 2.4 : Comparaison du nombre d’opérations par taille de la politique de sécurité


pour les deux algorithmes

1.12 Equilibrage de charge (load balancing)

L'équilibrage de charge représente le fait de distribuer la charge entre plusieurs ressources


dans un système distribué ou en parallèle afin d'égaliser les charges de travail de manière

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 55
efficace et d'améliorer le temps d'exécution d'une tâche [36], [37]. En fait, il évite une
situation où certains nœuds sont fortement chargés tandis que d'autres nœuds ne font aucun
travail. L’équilibrage de charge garanti que tous les processeurs du système ou de chaque
nœud fournissent des efforts du travail, approximativement, égaux à tout instant.
Ce concept ramène d'abord à décomposer le calcul globale en tâches et assigner les tâches
aux nœuds [38]. Les étapes de décomposition et d'affectation sont ainsi souvent appelés
partitionnement. L'objectif d'optimisation par le partitionnement est d'équilibrer la charge
entre les nœuds et de minimiser les besoins de communication entre eux. L'exécution d'une
tâche dans cet environnement distribué nécessite la cartographie des processus de nœuds. Le
nombre de ressources générées par l'étape de séparation peut ne pas être égal au nombre total
de nœuds. Ainsi, un nœud peut être ralenti ou chargé avec de multiples emplois.
Comme l'a démontré avant et sur la base [39], [40].

Les objectifs d'équilibrage de charge sont:

 Pour améliorer les performances de manière significative


 Pour redistribuer les tâches de nœuds dans le cas où les derniers souffrent de
surcharge, dysfonctionnement ou une panne
 Pour maintenir la stabilité du système
 modularité et flexibilité: le système distribué, dans lequel l'algorithme est mis en
œuvre peut changer de taille ou de la topologie. Donc, l'algorithme doit être
évolutive et suffisamment souple pour autoriser de telles modifications à être
manipulés facilement.
 Priorité: priorisation des ressources ou des emplois qui doit être fait au préalable
par l'algorithme lui-même pour un meilleur service aux emplois importants ou
prioritaires élevés en dépit de la fourniture d'un service égal pour tous les
emplois, indépendamment de leur origine.

1.12.1 Equilibrage de charge et le Cloud Computing

L'indice fondamental du Cloud Computing est de fournir des actifs tels que les machines
virtuelles comme des services à la demande. L’affectation de la machine virtuelle efficace à la
demande s’effectue à l’aide des algorithmes d'équilibrage de charge dans le Cloud Computing
[40]. L'algorithme d'équilibrage de charge joue un rôle important lors de la détermination de
la MV à attribuer à l’occasion de la demande de l'utilisateur.
Les fournisseurs du Cloud se basent sur les services d'équilibrage de charge automatique
[41], qui permettent aux clients d'accroître le nombre de processeurs, la mémoire ou le disque
dur pour leurs ressources. Ce service est implicite et dépend des exigences professionnelles
des clients. Donc, le Load balancing fournit deux bases importantes, principalement à

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 56
promouvoir la disponibilité des ressources et secondairement de maintenir une performance
globale, ainsi qu’à l'économie de l’énergie en cas de sous charge.
Un système d’équilibrage de charge est dit parfait s’il peut mesurer la charge d’un nœud
spécifique. La sélection de l'algorithme d'équilibrage de charge n’est pas facile, car il
implique des restrictions supplémentaires tels que la sécurité, la fiabilité, le débit, etc. Par
conséquent, l'objectif principal d'un algorithme d’équilibrage de charge dans un
environnement de Cloud Computing est d'améliorer le temps de réponse en simplifiant
l'interaction entre les nœuds, en choisissant la nature des travaux à transférer et en
sélectionnant les nœuds possibles qui pourraient contenir la tâche ou le processus et de le
déplacer en cas de défaillance de son nœud d'hébergement.

1.12.3 Métriques du Load Balancing

L'objectif de l'équilibrage de charge est de répartir efficacement la charge du travail entre


les ressources disponibles, afin de maximiser le rendement de ces ressources et de minimiser
le temps de réponse et de traitement pour les demandes des clients. Il est fait de manière à
rendre l'utilisation des ressources efficace, en évitant d’avoir certains nœuds surchargés tandis
que d’autres ne le sont pas [42].
Pour évaluer la qualité d'une technique d'équilibrage de charge, l'architecture ou un
système, de nombreux paramètres peuvent être utilisés. Certains d'entre eux doit être
maximisé tandis que d'autres doivent être réduits au minimum, afin de disposer d'un système
d'équilibrage de charge efficace. Les plus courantes sont décrites par Dash, M et al dans [43],
comme suit:

 Le débit : est utilisé pour calculer le nombre de tâches dont l'exécution est
terminée. Il doit être élevé afin d'améliorer la performance du système.
 Le coût général impliqué en mettant en œuvre un algorithme d'équilibrage
de charge : Il est composé des frais généraux en raison du mouvement de
tâches, inter-processeur et de la communication interprocessus. Cela devrait
être réduit au minimum afin que la technique d'équilibrage de charge puisse
fonctionner efficacement.
 la tolérance aux pannes : c’est à dire la capacité d'un algorithme pour
effectuer l'équilibrage de la charge uniforme en dépit de nœud arbitraire ou
défaillance de la liaison. L'équilibrage de charge devrait être une bonne
technique à tolérance de pannes.
 Le temps de migration : est le temps de migrer les emplois ou les
ressources d'un nœud à un autre. Il devrait être minimisé afin d'améliorer les
performances du système.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 57
 Temps de réponse : est la quantité du temps nécessaire pour répondre par
un algorithme d'équilibrage de charge dans un système distribué. Ce
paramètre doit être minimisé.
 Utilisation des ressources : il sert à vérifier l'utilisation des ressources et
doit être optimisé pour un équilibrage de charge efficace.
 La performance : est utilisée pour vérifier l'efficacité du système et doit
être amélioré à un coût raisonnable, par exemple, de réduire les temps de
réponse des tâches en gardant les délais acceptables.

1.12.4 Algorithmes du Load Balancing

Afin de parvenir à une répartition équitable des ressources entre les tâches exigeantes et
d'avoir une certaine performance dans l'ensemble du système, le Load balancing est recours à
différents algorithmes d'ordonnancement. Puisque la recherche dans ce domaine est dans ses
débuts, aucune technique ne peut être considérée comme la meilleure. Par conséquent,
l'algorithme choisi à utiliser dépend de nombreux facteurs, en particulier la taille du système
Cloud, de la nature des demandes, le montant des ressources disponibles ...
Ces algorithmes peuvent être classés de différentes façons. Ainsi, ils peuvent être classés
en deux catégories : statique ou dynamique. Un algorithme d'équilibrage de charge statique ne
tient pas compte de l'état antérieur ou le comportement d'un nœud lors de la répartition de la
charge. D'autre part, l’algorithme d’équilibrage de charge dynamique vérifie l'état précédent
d'un nœud lors de la répartition de la charge. L'algorithme d'équilibrage de charge dynamique
est appliqué soit comme distribués ou non distribués.
Le Load balancing peut fonctionner de deux manières: coopératif et non coopératif. En
mode coopération : les nœuds fonctionnent simultanément afin d'atteindre l'objectif commun
pour optimiser le temps de réponse global. En mode non-coopératif : les tâches sont exécutées
de manière indépendante dans le but d'améliorer le temps de réponse des tâches locales.
Les algorithmes les plus connus sont répertoriés par Mathew, T et al [54] dans le tableau 2.2.
Comme le montre ce tableau, chaque algorithme a ses propres caractéristiques, les avantages
et les inconvénients. Ainsi, il est selon le contexte dans lequel un algorithme est choisie pour
effectuer l'équilibrage de charge, tels que le type de demande, si elles sont toutes de même
nature ou non, ...

Scheduling Parameters Advantages Disadvantages


Method Considered
First Come First Serve Arrival time Simple in Implementation Doesn’t consider any other criteria
for scheduling
Round Robin Arrival time, Time quantum Less complexity and load is balanced Pre-emption is required
more fairely
Opportunistic Load balancing Better resource Poor makespan

Minimum
Load Balancing
Execution Time Expected execution time Selects the fastest machine for
Utilization Load imbalanced
Algorithm scheduling

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 58
Minimum Completion Time Expected completion Load balancing is Considered Optimization in selection of best
Algorithm time, Load balancing resource is not there
Min-Min, Max-Min Makespan, Expected completion Better makespan compared to other Poor load balancing and QoS
time algorithms factors are not considered
Genetic Algorithm Makespan, Efficiency, Better performance and efficiency in Complexity and long time
Performance, Optimization terms of makespan consumption
Simulated Annealing Makespan, Optimization Finds more poorer solutions in large QoS factors and heterogeneous
solution space, better makespan environments can be considered
Switching Algorithm Makespan, Load balancing, Schedules as per load of the system, Cost and time consumption in
Performance better makespan switching as per load
K-percent Best Makespan, Performance Selects the best machine for Resource is selected based on the
scheduling completion time only
Sufferage Heuristic Minimum completion time, Better makespan along with load Scheduling done is only based on a
Reliability balancing sufferage value
Benefit Driven, Power Best Fit, Energy Consumption, Cost, Load Power consumption is reduced and Other QoS factors and completion
Load Balancing balancing cost is reduced even more number of time of tasks are less considered
servers used
Energy efficient method using Energy Consumption, Makespan, Energy saving as per load in the Cost and implementation
DVFS Execution time system producing better makespan complexity can be make
better in future
DENS Traffic load balancing, Congestion, Communication load is considered Consider only data intensive
Energy Consumption and job consolidation is done to save applications with less
energy computational needs
e-STAB Energy efficiency, Network Load balancing and energy efficiency QoS factors can be considered for
awareness, QoS, performance is achieved based on traffic load, improvement in overall
congestion and delay are avoided. performance
Task Scheduling & Server Energy Consumption, Energy is reduced meeting the Makespan and cost are less
Provisioning Task response time, deadline of tasks considered here
Deadline
Improved Cost Based Algorithm Processing cost, Makespan Resource cost and computation Dynamic Cloud environment and
performance is considered before other QoS attributes are not
scheduling considered
Priority based Job Scheduling Priority of tasks, Expected Priority is considered for scheduling. Makespan, consistency and
Algorithm completion time Designed based on multiple criteria complexity of the proposed
decision making model method can be considered for
improvement
Job Scheduling based on Fault tolerance, Load balancing, Probabilistic assignment based on Algorithm never mentions how the
Horizontal Load Balancing Response time, Resource cost. Highest probable resource and total completion time of the tasks
utilization, Cost, Execution time task are selected for assignment. will remain
User Priority guided Min- Min Priority , Makespan, Resource Prioritized is given to users improving Rescheduling of tasks to perform
Utilization, Load balancing load balancing and without increasing load balancing will increase the
total completion time. complexity and time
WLC based Scheduling Load balancing, Efficiency, Dynamic task assignment strategy Considering only load
Processing Speed proposed, task heterogeneity is balancing feature
considered
Cost Based Multi QoS Based Load balancing, Makespan, QoS, DLT based optimization model is Machine failure, communication
DLT scheduling Performance, Cost designed for getting better overall overheads and dynamic workloads
performance are not considered
Enhanced Max-Min Algorithm Makespan, Load balance, Average Improves makespan and load Parameters considered are limited
execution time balancing when large difference and only theoretical analysis is
occurres in the length of longest task performed
and other tasks or speed of
processors

Tableau 2.2 : Caractéristique des algorithmes du Load balancing

Les paramètres et les algorithmes ci-dessus ont pour but de relever le défi qui est de
réaliser un partage de charge parfait dans le Cloud Computing. Ainsi, pour ce faire, les
objectifs suivants doivent être atteints:

 L'amélioration de la performance globale, qui est l'objectif principal de l'équilibrage


de charge dans son ensemble.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 59
 Eviter la famine des tâches traitées, ceci peut être réalisé en améliorant le
rendement et en minimisant la réponse ainsi que les temps de migration.
 Fiabilité, qui peut être obtenu par une approche à tolérance de panne.
 Les problèmes de sécurité, ce qui est un côté important du système. Les flux de
données et de la communication doivent être protégés de toute forme d'activités
indésirables.

Pour réaliser ces objectifs, tout en prenant en considération les défis associés, nous avons
proposé une approche multi-cluster. La section suivante détaille cette approche et décrit
comment il traite les difficultés énoncées.

2.5 Approche proposée

Avec la propagation de l'utilisation du Cloud Computing et la demande croissante des


services fournis par l'intermédiaire de cette nouvelle technologie, de nombreuses techniques et
approches sont proposées par les chercheurs pour faire face à cette demande. La plupart des
travaux ont tendance à travailler sur des algorithmes d'équilibrage de charge pour améliorer
les performances et allouer les ressources disponibles le plus efficacement possible. Pourtant,
en raison de l'hétérogénéité et les disparités entre les environnements et architectures, toutes
les techniques laissent certains problèmes non résolus. Notre objectif est de résoudre certains
de ces problèmes. Les problèmes que nous avons traités sont:

Un Load balancing entre les différents nœuds est considéré efficace s’il traite les tâches client,
de manière sécurisée, ainsi que l'élimination du possible point unique de défaillance et de
préserver l'utilisation continue de toutes les ressources disponibles, en fait, aucune ressource
ne peut pas rester inutilisé en raison de tout type de problème, comme l'échec de l'équilibreur
de charge centrale par exemple, qui peut conduire à l’arrêt partiel ou total du système (nœuds
de ressources). Ainsi, la méthode proposée a l’avantage de l’équilibrage de charge efficace.
Elle assure la disponibilité continue du service en sécurisant les flux de données entre les
nœuds du système. La description détaillée de l'architecture ci-dessus est la suivante [9] :

Les éléments d'équilibrage de charge sont (Figure 2.5) :

 L’équilibreur de charge principal (MLB : Main Load Balancer) : Il est le nœud


central et est considéré comme le coordinateur du système, traite les demandes des
clients, applique l’algorithme pour affecter à chaque demande de client un cluster
approprié.
 les clusters des ressources et un élément d'authentification, afin de disposer de
données sécurisée des flux entre les deux éléments précédents.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 60
Il a sa propre table de clusters, chaque cluster avec un poids représentant sa capacité
moyenne de traitement, donc le principal équilibreur de charge peut choisir le bon cluster pour
transférer une demande de client et la charge est assez partagée entre tous les clusters. Aucune
file d’attente n’est nécessaire à ce niveau, et que chaque groupe a sa propre file d'attente
locale.

Chaque cluster se compose d'un groupe de nœuds (ressources), il a son propre équilibreur
de charge locale (LLB), ce dernier reçoit des demandes de la MLB et traite l'équilibrage de
charge à l'intérieur de son groupe local. Il a une file d'attente où les demandes à venir sont
stockées jusqu'à ce qu'un nœud à l'intérieur du groupe soit disponible pour les traiter. Les
équilibreurs de charge locaux utilisent un algorithme d'ordonnancement pour effectuer
l'équilibrage de charge, ils gardent aussi une table de ressource qui est constamment mis à
jour s'il y a un changement dans les nœuds du cluster correspondant (par exemple, en cas de
défaillance d'un nœud, l'ajout de un nouveau nœud ...). En fonction des changements dans ce
tableau, le poids du cluster est mis à jour dans la table MLB. Le tableau d'équilibrage de
charge local contient également le poids de chaque nœud, d'où la charge locale est assez
équilibrée entre les éléments du cluster.

Pour assurer la disponibilité du système et d’éliminer les points de défaillance uniques, une
autre fonctionnalité proposée de cette architecture est de faire de chaque LLB un candidat
MLB, il remplacera la MLB dans le cas où il vient d'échouer. Dans ce cas, la première LLB
qui détecte l'échec MLB, devient le nouveau MLB, il informe les autres de ce changement,
recueille des données sur les autres LLBs, distribue les nœuds de ses clusters entre les autres
clusters et commence de fonctionner en tant que nouvelle MLB en envoyant les éléments dans
sa file d'attente aux autres LLBs. Cela garantit la disponibilité continue du système et
l’utilisation efficace des ressources.

La gestion d’une couche d'authentification de la sécurité est nécessaire, de sorte que seuls
les utilisateurs authentifiés peuvent envoyer des tâches par le biais de notre architecture
d'équilibrage de charge.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 61
Figure 2.5 : Architecture Proposée pour le Load Balancing

2.8 Conclusion

Dans ce chapitre nous avons présenté deux volets, le premier concerne les exigences, la
stratégie et les modèles de la sécurité dans le Cloud, on peut conclure que si on arrive à
maitriser la faiblesse de la sécurité, les solutions IT de l’avenir seront du Cloud et les
dirigeants des entreprises décideront de migrer vers le Cloud Computing. Le deuxième volet
s’intéresse au déploiement des politiques de sécurité de pare-feu d’un Datacenter et dont nous
avons montré que les approches récentes [88] pour le déploiement de stratégies de pare-feu
contiennent des erreurs critiques. En effet, ces approches peuvent présenter des failles de

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 62
sécurité temporaires qui autorisent le trafic illégal et/ou interrompent des services de réseau en
bloquant le trafic légal lors d'un déploiement. Nous avons proposé une formalisation pour le
déploiement sûr et nous avons utilisé cette formalisation comme une base pour fournir des
algorithmes sûrs, efficaces et rapides. Les chapitres qui viennent traitent les solutions de
sécurisation des données stockées dans l’environnement Cloud.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 63
CHAPITRE III

3.1 Introduction
Le Cloud Storage consiste à ne plus gérer ses données sur son propre dispositif (serveur,
ordinateur, téléphone, . . .) mais à en corner la gestion à une entité tierce accessible par
Internet. De nos jours, on entend souvent parler de l'avènement du Cloud avec les nouveaux
produits technologiques qui sont connectes en permanence à Internet, comme les
smartphones/tablettes, et avec des connexions réseaux de plus en plus performantes (3G/4G,
ADSL/fibre/satellite . . .). Les utilisateurs peuvent ainsi accéder à leurs données de n'importe
où et à n'importe quel moment. Ceci est d'autant plus intéressant lorsque le dispositif qu'il
utilise dispose de peu de mémoire, comme par exemple un téléphone mobile. Bon nombre de
systèmes proposent ce type de service. C'est le cas de DropBox, Amazon, google, HP, IBM,
Microsoft, iCloud ….

Dans ce chapitre, nous présentons notre contribution, basée sur les avantages des deux
catégories de la Cryptographie : symétrique et asymétrique pour un stockage sécurisé de
données dans le Cloud.

3.2 Énoncé du problème et objectifs


La confidentialité des données des clients dans les environnements du Cloud Computing
est la préoccupation essentielle, en raison du fait que les données des clients résident dans les
serveurs distants répartis, gérés par des fournisseurs de Cloud potentiellement non fiables. Par
conséquent, il y a des risques potentiels que les données confidentielles ou des
renseignements personnels soient divulgués à des entités non autorisées. De toute évidence,
afin de garantir la préservation de la vie privée, la confidentialité et l'intégrité deviennent
essentiels, en veillant à ce que les données et le calcul soient gardés secrètes et inaltéré.

Les services de stockage de données dans le Cloud apportent de nombreux problèmes de


conception complexes, considérablement en raison de la perte de contrôle physique. Ces défis
ont une influence notable sur la sécurité des données et les performances des systèmes du
Cloud. Autrement dit, les données du Cloud sont souvent soumises à un grand nombre de
vecteurs d'attaque.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 64
D’un côté, la préservation de la confidentialité des données, dans des environnements
multi-tenants, devient plus difficile et conflictuelle. Ceci est largement dû au fait que les
utilisateurs stockent leurs données dans des serveurs distants contrôlés par des fournisseurs de
service (CSP) non fiables. Il est communément admis que le chiffrement des données, du côté
client, est une bonne solution garantissant la confidentialité des données [62] et [63].

Ainsi, le client conserve les clés de déchiffrement, loin de la portée du fournisseur de


Cloud. Néanmoins, cette approche suscite plusieurs problèmes de gestion de clés, tels que, le
stockage et le maintien de la disponibilité des clés. En outre, la préservation de la
confidentialité devient plus compliquée avec un partage de données dynamique entre un
groupe d’utilisateurs. Premièrement, il faut un partage efficace des clés de déchiffrement entre
les différents utilisateurs autorisés. Le défi consiste à définir un mécanisme efficace
permettant la révocation d’un membre sans avoir besoin de mettre à jour tous les secrets des
autres membres. Deuxièmement, les politiques de contrôle d’accès doivent être souples et
permettent de distinguer des privilèges différents selon les utilisateurs pour accéder aux
données. En effet, les données peuvent être partagées par différents utilisateurs ou groupes, et
les utilisateurs peuvent appartenir à des différents groupes.

D’un autre côté, l’intégrité des données est considérée comme une préoccupation
majeure, dans des environnements Cloud. Afin de renforcer la résilience, les fournisseurs de
service ont généralement recours à la distribution des fragments de données selon des
politiques de réplication. Néanmoins, afin de réduire les coûts d’exploitation et de libérer des
capacités de stockage, les fournisseurs malhonnêtes pourraient volontairement négliger ces
procédures de réplication, entraînant des erreurs irréversibles ou même des pertes de données.
Même lorsque les fournisseurs de Cloud mettent en œuvre une politique de tolérance aux
pannes, les clients n’ont pas les moyens techniques pour vérifier que leurs données ne sont
pas vulnérables. Il pourrait y avoir des implémentations de vérification, à distance de
l’intégrité et la possession des données externalisées, selon trois niveaux, comme suit:

 Entre un client et un CSP : un client devrait avoir un moyen efficace, lui permettant
d’effectuer des vérifications périodiques d’intégrité à distance, sans garder les
données en local. En outre, le client doit également détecter la violation du SLA,
par rapport à la politique de stockage. La préoccupation de ce client est accentuée
par ses capacités de stockage et de calcul limitées, et de la grande taille des données
externalisées.

 Au sein du CSP : il est important pour un fournisseur de Cloud de vérifier


l’intégrité des blocs de données stockés sur plusieurs nœuds de stockage, afin de
réduire le risque de perte de données, dû à la défaillance du matériel.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 65
 Entre deux CSPs : dans un environnement des Clouds imbriqués, où les données
sont réparties sur de différentes infrastructures de Cloud, un CSP, à travers sa
passerelle, doit périodiquement vérifier l’authenticité de blocs de données
hébergées par une autre plate-forme de service.

Ces problèmes de sécurité sont d’autant plus importants, que les règlements à venir
prévoient des mesures de protection plus sévères et rigides pour protéger efficacement les
données à caractère personnel qui sont externalisées sur des serveurs distants.

3.3 Confidentialité des données stockées dans le Cloud

En confiant la tâche de stockage de données à une tierce partie, l’assurance de la


confidentialité et la protection de la vie privée deviennent plus difficiles. La protection de la
vie privée est une préoccupation majeure des utilisateurs du Cloud (figure 3.1), du fait que
leurs données soient stockées dans des serveurs publiques distribués. Par conséquent, il y a un
risque potentiel de divulgation des informations confidentielles (par exemple, les données
financières, dossiers de santé, secret professionnel) ou des informations personnelles (par
exemple, profil personnel). Quant à la confidentialité, elle implique que les données des
clients doivent être gardées secrètes et ne doivent pas être divulguées à des personnes non
autorisées, à savoir le fournisseur de service ou d’autres utilisateurs malveillants.
Dans cette section, nous nous concentrons sur la confidentialité des données, un enjeu
important étant donné le besoin d’assurer un partage de données flexible au sein d’un groupe
dynamique d’utilisateurs. Cet enjeu exige, par conséquence, un partage efficace des clés entre
les membres du groupe.

Cependant, un des risques majeurs de ces technologies est la perte de confidentialité de


leurs données puisqu'elles sont confiées à une entité tierce, qui leur est souvent inconnue.
L'informatique dématérialisée est divisée en deux catégories :

 Le calcul dématérialise ou le traitement des données est confié à l'entité tierce.


 Le stockage dématérialisé ou le stockage des données est assuré par cette même entité.

Ces deux informatiques peuvent être compatibles entre elles, comme le propose, par
exemple, le système Amazon Cloud Drive. Nous décidons cependant de nous focaliser sur le
stockage dématérialisé et de concevoir une réalisation de celui-ci possédant certaines
propriétés :

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 66
 Un utilisateur doit pouvoir partager ses données avec les utilisateurs en qui il a
confiance.
 Un utilisateur non autorisé ne doit pas pouvoir accéder aux données, notamment le
serveur qui est un utilisateur non autorisé.
 Un utilisateur stockant des données dans un serveur doit pouvoir gérer les droits
d'accès comme il le souhaite.

Les préoccupations de sécurité des données stockées dans le Cloud ont émergé pour
devenir d'un intérêt croissant d’une grande importance dans la communauté de recherche en
cryptographie et informatique appliquée. En effet, Les serveurs du Cloud agissent comme des
boîtes noires distribuées du point de vue du client. Dans ce chapitre, nous donnons un aperçu
sur les fondamentaux de cryptographie, nous étudions l'utilisation de mécanismes
cryptographiques dans des environnements Cloud et ensuite nous allons proposer une
architecture et modèle de sécurité des données permettant de répondre aux difficultés citées
ci-dessous afin d’établir un service efficace et digne de confiance.

Figure 3.1 : Vue d'ensemble du stockage

Architecture

L’architecture d’un service de stockage dans un Cloud s’appuie sur les entités suivantes,
permettant à un client de stocker, récupérer et partager des données avec plusieurs utilisateurs:

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 67
 Fournisseur de service Cloud (CSP) – un CSP dispose de ressources importantes
pour contrôler les serveurs de stockage. Il fournit également une infrastructure
virtuelle pour héberger des services d’application. Ces services peuvent être utilisés
par le client pour gérer ses données stockées dans les serveurs Cloud.
 Client (C) – un client est le propriétaire de données. Il utilise les ressources du
fournisseur de service pour stocker, récupérer et partager des données avec
plusieurs utilisateurs.
 Utilisateurs (U) – les utilisateurs sont en mesure d’accéder au contenu stocké dans
le nuage, en fonction de leurs droits d’accès s’agissant des autorisations accordées
par le client, comme les droits de lecture et d’écriture. Ces droits d’accès
permettent de déterminer plusieurs groupes d’utilisateurs.

3.4 Fondamentale sur la Cryptographie

3.4.1 Définition

La cryptographie est la science qui utilise les mathématiques pour chiffrer et déchiffrer des
données. La cryptographie vous permet de stocker des informations sensibles ou de les
transmettre à travers des réseaux non sûrs (comme Internet) de telle sorte qu’elles ne puissent
être lues par personne à l’exception du destinataire convenu.
Alors que la cryptographie est la science de la sécurisation des données, la cryptanalyse est
la science de l’analyse et du cassage des communications sécurisées. La cryptanalyse
classique mêle une intéressante combinaison de raisonnement analytique, d’application
d’outils mathématiques, de découverte de redondances, de patience, de détermination, et de
chance. Les cryptanalystes sont aussi appelés attaquants. La cryptologie embrasse à la fois la
cryptographie et la cryptanalyse.

Depuis de nombreuses années, la cryptographie était le domaine exclusif des militaires, des
services diplomatiques et gouvernementales secrètes, et a été utilisé pour fournir
principalement des propriétés de sécurité, telles que la confidentialité des données, l'intégrité
des données et l'authentification de l'origine des données [56]. Présentée comme l'art de
codage de l'information dans les secrets, la cryptographie permet aux récepteurs à récupérer le
contenu original des messages. Au cours de la deuxième partie du XXe siècle, le domaine de
la cryptographie a élargi en raison de la prolifération des ordinateurs et des réseaux et
l'apparition de nouveaux systèmes cryptographiques.

Un algorithme cryptographique, ou chiffre, est une fonction mathématique utilisée dans le


processus de chiffrement et de déchiffrement. Un algorithme cryptographique fonctionne en
combinaison avec une clé pour chiffrer le texte clair. Le même texte clair se chiffre en un

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 68
texte chiffré différent si l’on utilise des clés différentes. La sécurité des données chiffrées est
entièrement dépendante de deux choses: la force de l’algorithme cryptographique et le secret
de la clé. Un algorithme cryptographique et toutes les clés possibles et tous les protocoles qui
le font fonctionner constituent un cryptosystème.

En 1976, Diffie Hellman a effectué des changements radicaux dans la cryptographie,


présentant le premier algorithme de cryptographie asymétrique [57]. En 1978, Rivest, Shamir
et Adelman ont défini leur algorithme bien connu RSA [58]. Parallèlement, Koblitz et Miller
ont proposé un nouveau schéma cryptographique basé sur des structures de courbes
elliptiques. Récemment, la cryptographie quantique apparaît comme la cryptographie de
l'avenir, car il ne repose pas sur la théorie de l'algèbre et les groupes abstraits, mais sur les
théories optiques et de lumière, où chaque bit est représenté par la polarisation d'un photon.

5.5 Cryptosystème

Le but de la cryptographie, est de permettre à Bob d’envoyer des messages à Alice avec
des garanties sur :
 L’intégrité du message : le message n’a pas été modifié entre son envoi et sa
réception
 la confidentialité : seuls Bob et Alice connaissent le contenu du message
 la non-répudiation : il est possible de prouver que Bob est bien l’expéditeur du
message
Nous ne nous intéresserons pas aux autres aspects de la sécurité informatique tels que
l’authentification, la disponibilité, ou le contrôle d’accès.

3.5.1 Définition
Un cryptosystème est un ensemble d’algorithmes permettant de chiffrer et déchiffrer des
messages. Éventuellement, un cryptosystème pourra être accompagné d’un algorithme
permettant la génération des clés de chiffrement et déchiffrement.

3.5.1.1 Cryptographie symétrique

Les algorithmes à clés symétriques sont une classe d'algorithmes de cryptographie qui
utilisent les mêmes clés cryptographiques pour le chiffrement du texte en clair et le dé
chiffrement du texte chiffré. Les clés, dans la pratique, représentent un secret partagé entre
deux ou plusieurs parties qui peuvent l’utiliser pour maintenir un lien d'information privée.
Cette exigence que les deux parties doivent partager la clé secrète est l'un des principaux
inconvénients de chiffrement à clé symétrique, par rapport au chiffrement à clé publique.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 69
La cryptographie asymétrique est basée sur l'utilisation de deux algorithmes connexes pour
le chiffrement des messages et le déchiffrement (Figure 3.2).
Soit C : l’espace des messages chiffrés, M : l’espace des messages en clair et K l'espace
des clés. On désigne par E l'algorithme de chiffrement, et D l'algorithme de déchiffrement,
défini comme suit:

 L'algorithme de chiffrement E: M C prend en entrée le message en clair m,


et la clé secrète k, et renvoie le message chiffré c. E est souvent aléatoire.
 L'algorithme de déchiffrement D: C K M prend en entrée le message chiffré c
et la clé k, et renvoie le message initiale m. D est toujours déterministe.

Nous disons qu'un système de cryptographie symétrique est bien défini, si elle remplit
l'équation suivante :

On a D(E(m, k); k) = m

Figure 3.2 : Schéma du chiffrement symétrique

Les algorithmes de chiffrement symétrique ont des avantages. En général, ils sont très
rapides. D'une part, ils ont une complexité moins élevée qu'un algorithme de chiffrement à clé
publique tel que RSA et, d'autre part, ces algorithmes sont souvent très bien adaptés à
l'architecture du processeur utilisé. Ils sont donc très bien appropriés au chiffrement de grande
quantité de données. Les plus connus sont les algorithmes DES et AES.

En revanche, les cryptosystèmes symétriques ont des inconvénients, notamment :

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 70
 Problème de gestion des clés : Le nombre de clés nécessaire augmente
considérablement avec le nombre d'utilisateurs.
 Problème de la distribution de la clé : Comment communiquer la clé au destinataire
sans que personne ne puisse l’intercepter? Pour cette raison, la combinaison
cryptosystème publique et privé est très employée. Les cryptosystèmes publiques
permettent une distribution efficace des clés tandis que les cryptosystèmes privés
servent à chiffrer à proprement dit les données avec les clés distribuées
précédemment.

3.5.1.2 Algorithme de chiffrement AES

L'AES est une variante de Rijndael qui a une taille de bloc fixe de 128 bits et d'une taille de
clé de 128, 192 ou 256 bits. La taille de la clé utilisée pour un chiffrement AES indique le
nombre de répétitions de transformations rounds. Le nombre de cycles de répétition est la
suivante (voir figure 3.3):

• 10 cycles de répétition pour les clés de 128 bits.


• 12 cycles de répétition pour les clés de 192 bits.
• 14 cycles de répétition pour les clés de 256 bits.

Figure 3.3: Illustration de l'algorithme AES

Les avantages de l'AES sont nombreux. L’AES n’est pas sensible à toute attaque.
Cependant, Brute Force attaque n’est pas une tâche facile, même pour un super-ordinateur. En
effet, la taille de la clé de cryptage utilisée par l'algorithme AES est de l'ordre de 128, 192 ou
256 bits, ce qui conduit à des milliards de permutations et combinaisons. La rapidité et la
faible exigence de la RAM étaient des critères du processus de sélection de l’AES [3] :

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 71
 AES fonctionne bien sur une grande variété de matériel, de 8 bits des cartes à puce
à des ordinateurs de haute performance.
 AES est également beaucoup plus rapide que les algorithmes traditionnels (voir
figure 3.4).

Récemment S-box AES Compact est conçu pour être plus efficace [59].

Figure 3.4: Vitesse de l’AES par taille de la clé : 128, 192 et 256

3.5.1.3 Cryptographie asymétrique (à clé publique)

En cryptographie asymétrique, Alice possède une paire de clés, une publique, l’autre
privée. Tout le monde peut envoyer des messages à Alice en les chiffrant avec sa clé
publique, seule Alice peut les déchiffrer en utilisant sa clé privée.

Un système de chiffrement asymétrique consiste en trois algorithmes :

1. KeyGen(λ) : prend en entrée un paramètre de sécurité λ, retourne une paire de clés


(pk; sk) où pk désigne la clé publique utilisée pour chiffrer les messages et sk la clé
privée utilisée pour déchiffrer.
2. Enc(m,pk) : prend en entrée le message m à chiffrer et la clé publique pk, retourne
un message chiffré c
3. Dec(c,sk) : prend en entrée un message chiffré c et la clé privée sk, retourne le
message déchiffré m

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 72
Les chiffrements asymétriques utilisent un système de paires de clefs. L'utilisateur génère
une clef aléatoire dite clef publique que l'utilisateur distribue par exemple via un serveur de
clefs. De cette clef est déduite la seconde, appelée clef privée qu'il est seul à connaître. La clé
publique est utilisée pour chiffrer un message ou pour vérifier une signature numérique; tandis
que la clé privée est utilisée pour déchiffrer un texte chiffré ou pour créer une signature
numérique.

La cryptographie asymétrique assure plusieurs propriétés de sécurité, à savoir la


confidentialité des données, la non-répudiation et l'authentification, tout en échangeant des
informations sur un canal non sécurisé. Contrairement à la cryptographie symétrique où deux
entités communicantes doivent partager la même clé secrète, la cryptographie à clé publique
repose sur deux clés connexes pour sécuriser les informations échangées.

Cette paire de clés est définie sur une relation mathématique. La résolution de cette
équation mathématique vient de briser un problème de calcul dur. En fait, le domaine de la
cryptographie à clé publique a motivé un certain nombre de problèmes de calcul complexes,
tels que la factorisation entière liée au cryptosystème bien connu RSA [60]. La supposition
que ces problèmes engendrent en général des délais de calculs très importants et difficiles à
résoudre en temps polynomial définit les systèmes cryptographiques les plus contemporains.

Figure 3.5 : Schéma du chiffrement asymétrique

Le principal avantage de la cryptographie à clé publique est qu’elle permet à des gens qui
n’ont pas d’accord de sécurité préalable d’échanger des messages de manière sûre. La
nécessité pour l’expéditeur et le destinataire de partager des clés secrètes via un canal sûr est

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 73
éliminée, toutes les communications impliquent uniquement des clés publiques, et aucune clé
privée n’est jamais transmise ou partagée.
D’autre part la cryptographie à clé publique permet la facilité de gestion du parc des clés
des utilisateurs. En effet, l'augmentation du nombre d'utilisateurs ne complexifie pas le
protocole. De plus, l'arrivée de nouveaux utilisateurs et leur intégration demande très peu
d'efforts et ne modifie en rien les paramètres des autres. Pour le groupe d'utilisateurs il suffit,
de manière simplifiée, de :

 choisir un administrateur digne de confiance qui sera chargé de gérer les clés.
 chaque utilisateur demande à l'administrateur son inscription
 pour chaque utilisateur, l'administrateur crée une paire de clés (clé privée / clé
publique)
 l'administrateur informe secrètement chaque utilisateur de sa clé privée
 il publie toutes les clés publiques dans un annuaire

Si un nouvel utilisateur arrive, il suffit de lui créer une paire de clés et de la distribuer.
Ainsi, la cryptographie à clé publique résout le problème de distribution des clés que l'on
peut rencontrer dans la cryptographie à clé privée. En effet, dans le cas symétrique, chaque
membre du groupe doit s'entendre avec tout autre membre pour convenir d'une clé commune.
Essayez de trouver le nombre de clés nécessaires pour un groupe de 10 personnes. Pour la
cryptographie asymétrique, c'est très simple, il suffit de 10 couples de clés soit 20 clés. On
vous laisse tracer un schéma pour voir qu'avec la cryptographie symétrique, 45 clés sont
nécessaires. Cet écart grandira de façon impressionnante avec l'augmentation du nombre
d'utilisateurs.

Néanmoins, les techniques asymétriques souffrent de leur grande lenteur (voir figure 3.5
pour le cas du RSA). Bien sûr, il ne faut pas une heure pour chiffrer un message mais c'est
bien 100 à 1000 fois plus lentes que certaines techniques symétriques. Dans la pratique, la
cryptographie symétrique et asymétrique est souvent combinée et on exploite leurs avantages
du mieux possible pour rendre les systèmes performants. La cryptographie symétrique sert à
chiffrer les messages puisque cette fonction est très rapide et la cryptographie asymétrique
sert à échanger les clés entre deux utilisateurs puisqu'il faut leur donner des clés identiques et
de manières sûres pour qu'ils chiffrent et déchiffrent leur message. Comme l'échange de clés
ne se fait qu'une seule fois, le système n'en est que très peu ralenti.

3.5.1.2.1 Algorithme RSA

Peu après l’algorithme à empilement de Merkle et Hellman, le premier algorithme à clef


publique grandeur nature apparut. Il fonctionne pour le chiffrement aussi bien que pour les

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 74
signatures numériques : RSA. C’est un algorithme facile à comprendre et à réaliser. C’est le
plus populaire. Il a été inventé par les mathématiciens Ronald Rivest, Adi Shamir et Léonard
Adlman. Il a résisté depuis à des années de cryptanalyse. Bien que la cryptanalyse n’ait jamais
prouvé la sécurité ou la non-sécurité de RSA, cela inspire un certain niveau de confiance dans
l’algorithme.
La sécurité de RSA dépend de la difficulté de factoriser des grands nombres. Les clefs
publique et privée sont des fonctions d’une paire de grands nombres premiers (plus de 200
chiffres). Retrouver le texte en clair à partir d’une des clefs et du texte chiffré est supposé
équivalent à la factorisation du produit des deux nombres premiers. La figure 3.6 représente le
délai de déchiffrement par longueur de la clé RSA.

Figure 3.6 : Temps de déchiffrement par longueur de la clé RSA

Génération des clefs


Pour commencer, il faut choisir deux nombres premiers p et q très grands, calculez le
produit :
n = pq.
On choisit ensuite une clef de chiffrement e telle que e et (n) = (p-1) (q-1) soient premiers
entre eux. Les nombres n et e forment la clef publique du cryptosystème. Finalement, on
utilise l’algorithme d’Euclide étendu pour calculer la clef de déchiffrement d telle que :
ed 1mod (n)

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 75
En d’autres termes d est l’inverse modulaire de e modulo (n).
Le nombre d est la clef privée. Les deux nombres premiers p et q ne sont plus nécessaires. Ils
peuvent être écartés mais jamais révélés.
Grâce aux algorithmes probabilistes, on sait engendrer des nombres premiers de plusieurs
milliers de chiffres de long en peu de temps ; le calcul de p et q est donc rapide. Trouver e et d
est aussi une opération rapides car l’algorithme d’Euclide qui permet de calculer ces deux
nombres est un algorithme peu difficile à exécuter. En conclusion, la constitution d’un
quadruplet (p, q, e, d) est donc une opération rapide pour un ordinateur, même si l’on souhaite
que p et q aient quelques milliers de chiffres.

Chiffrement

Pour chiffrer un message M, on le découpe en blocs numériques tels que chaque bloc ait
une représentation unique modulo n (avec des données binaires, on choisit la plus grande
puissance de 2 inférieur à n). Ainsi, si p et q sont tous deux des nombres premiers de 100
chiffres, alors n aura tout juste moins de 200 chiffres et chaque bloc de message doit avoir
juste moins de 200 chiffres. Le message chiffré C sera constitué de manière similaire de
blocs. La formule de chiffrement est simplement :

= mod (n)

Déchiffrement

Pour déchiffrer un message, il faut effectuer l’opération inverse, c’est à dire pour chaque
on calcule :
= mod (n)

3.5.1.2.2 Sécurité de RSA

Il faut distinguer les attaques par la force brute, qui consistent à retrouver p et q sur base de
la connaissance de n uniquement, et les attaques sur base de la connaissance de n mais aussi
de la manière dont p et q ont été générés, du logiciel de cryptographie utilisé, d'un ou
plusieurs messages éventuellement interceptés etc.
La sécurité de l'algorithme RSA contre les attaques par la force brute repose sur deux
conjectures :

 « Casser » RSA de cette manière nécessite la factorisation du nombre n en le produit


initial des nombres p et q,

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 76
 Avec les algorithmes classiques, le temps que prend cette factorisation croît
exponentiellement avec la longueur de la clé.
Il est possible que l'une des deux conjectures soit fausse, voire les deux. Jusqu'à présent, ce
qui fait le succès du RSA est qu'il n'existe pas d'algorithme connu de la communauté
scientifique pour réaliser une attaque force brute avec des ordinateurs classiques.
Le 12 décembre 2009, le plus grand nombre factorisé par ce moyen, en utilisant une
méthode de calculs distribués, était long de 768 bits. Les clés RSA sont habituellement de
longueur comprise entre 1 024 et 2 048 bits. Quelques experts croient possible que des clés
de 1 024 bits seront cassées dans un proche avenir, mais peu voient un moyen de casser de
cette manière des clés de 4 096 bits dans un avenir prévisible. On peut néanmoins présumer
que RSA reste sûr si la taille de la clé est suffisamment grande. On peut trouver la
factorisation d'une clé de taille inférieure à 256 bits en quelques minutes sur un ordinateur
individuel, en utilisant des logiciels librement disponibles. Pour une taille allant
jusqu'à 512 bits, et depuis 1999, il faut faire travailler conjointement plusieurs centaines
d'ordinateurs. Par sûreté, il est couramment recommandé que la taille des clés RSA soit au
moins de 2 048 bits.
Si une personne possède un moyen « rapide » de factoriser le nombre n, tous les
algorithmes de chiffrement fondés sur ce principe seraient remis en cause ainsi que toutes les
données chiffrées dans le passé à l'aide de ces algorithmes.
En 1996, un algorithme permettant de factoriser les nombres en un temps non exponentiel
a été écrit pour les ordinateurs quantiques. Il s'agit de l'algorithme de Shor. Les applications
des ordinateurs quantiques permettent théoriquement de casser le RSA par la force brute, ce
qui a activé la recherche sur ce sujet ; mais actuellement ces ordinateurs génèrent des erreurs
aléatoires qui les rendent inefficaces.
Les autres types d'attaques, beaucoup plus efficaces, visent la manière dont les nombres
premiers p et q ont été générés, comment e a été choisi, si l'on dispose de messages codés ou
de toute autre information qui peut être utilisée. Une partie de la recherche sur ce sujet est
publiée mais les techniques les plus récentes développées par les entreprises
de cryptanalyse et les organismes de renseignement comme la NSA restent secrètes.
Il faut enfin noter que casser une clé par factorisation du nombre n ne nécessite pas
d'attendre d'avoir un message chiffré à disposition. Cette opération peut débuter sur base de la
connaissance de la clé publique seulement, qui est généralement libre d'accès. Dans ces
conditions, si n est factorisé, la clé privée s'en déduit immédiatement. Les conséquences de
cette observation sont également qu'un code peut être cassé avant même son utilisation.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 77
3.5.1.2.3 Algorithme de Diffie-Hellman

En 1976, Whitfield Diffie et Martin Hellman ont proposé l'algorithme de Diffie Hellman
(DH). Cet algorithme est maintenant célèbre son 40ème anniversaire pendant qu'il joue encore
un rôle actif dans les protocoles Internet d'aujourd'hui.
DH est un mécanisme d'échange en toute sécurité d’un secret partagé entre deux entités
communicantes, Alice et Bob, en temps réel sur un réseau non sécurisé. Un secret partagé est
important entre deux parties qui peuvent ne pas avoir jamais communiquées précédemment.
Les éléments publics fournis à chaque partie est un grand nombre premier p et un générateur g
non nul de .

Tout d'abord, Alice et Bob génèrent, respectivement, leurs valeurs publiques et


de leurs clés secrètes et . Les clés privées sont choisis au hasard à . Et les
valeurs publiques satisfont à la relation suivante:

{ } mod(p))

Après avoir échangé ces valeurs publiques, Alice et Bob utilisent leurs clés privées, encore
une fois pour calculer

= mod(p)) et = mod(p)) , respectivement. Ces valeurs


sont égales puisque :

mod(p)) = mod(p)) = = mod(p)) = mod(p))

La principale faiblesse de l'algorithme de DH est l'attaque « Homme du Milieu » ou bien


« Man In the Middle attack » (MIM). Autrement dit, Eve peut créer un secret partagé avec
Alice et Bob en se faisant passer comme Bob pour Alice et comme Alice pour Bob. La
contremesure de cette attaque MIM est possible lorsqu’Alice et Bob signent leurs éléments
publics sélectionnés.

Bien que l'algorithme d'échange de clés Diffie Hellman fournit une méthode pour partager
publiquement une clé secrète aléatoire, il n'a pas atteint l'objectif d'être pleinement un système
cryptographique à clé publique qui permet d'échanger des messages, pas seulement une
chaîne aléatoire de bits.
Le premier système cryptographique à clé publique qui a utilisé l’algorithme de Diffie
Hellman est celui proposé par Taher EL Gamal en 1985 [61]. La sécurité de DH est basée sur

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 78
la définition de deux problèmes de calcul, à savoir le problème de Diffie Hellman (DHP) et le
problème du logarithme discret (DLP),

3.5.1.2.4 PGP (Pretty Good Privacy) de Philip Zimmermann

PGP [Pretty Good Privacy] est un cryptosystème inventé par Philip Zimmermann, il combine à la
fois les meilleures fonctionnalités de la cryptographie conventionnelle et de la cryptographie à
clé publique. PGP est un cryptosystème hybride.
Quand un utilisateur chiffre du texte clair avec PGP, PGP compresse d’abord le texte clair.
La compression de données économise du temps de transmission par modem et de l’espace
disque et, ce qui est plus important, renforce la sécurité cryptographique. La plupart des
techniques de cryptanalyse exploitent les redondances trouvées dans le texte clair pour
craquer le texte chiffré. La compression réduit ces redondances dans le texte clair, ce qui
augmente grandement la résistance à la cryptanalyse. (Les fichiers qui sont trop petits pour
être compressés ou qui ne se compressent pas bien ne sont pas compressés.) PGP crée ensuite
une clé de session, qui est une clé secrète qui ne sert qu’une fois. Cette clé est un nombre
aléatoire généré à partir des mouvements aléatoires de la souris et des touches du clavier sur
lesquelles on tape. Cette clé de session fonctionne avec un algorithme de chiffrement
conventionnel très sûr et rapide qui chiffre le texte clair; le résultat est le texte chiffré. Une
fois que les données sont chiffrées, la clé de session est elle-même chiffrée avec la clé
publique du destinataire. Cette clé de session chiffrée par la clé publique est transmise avec le
texte chiffré au destinataire.

Le déchiffrement fonctionne de la manière inverse. La copie de PGP du destinataire utilise


la clé privée de celui-ci pour retrouver la clé de session temporaire, que PGP utilise ensuite
pour déchiffrer le texte chiffré de manière conventionnelle.

La combinaison des deux méthodes de chiffrement associe la commodité du chiffrement à


clé publique avec la vitesse du chiffrement conventionnel. Le chiffrement conventionnel est
environ 1000 fois plus rapide que le chiffrement à clé publique. Le chiffrement à clé publique
fournit quant à lui une solution aux problèmes de distribution de la clé et de transmission des
données. Utilisées toutes les deux, la performance et la distribution de la clé sont améliorées
sans aucun sacrifice sur la sécurité.

Les clés

Une clé est une valeur qui est utilisée avec un algorithme cryptographique pour produire un
texte chiffré spécifique. Les clés sont, à la base, de très grands nombres. La taille d’une clé se
mesure en bits; et le nombre qui peut être représenté par une clé de 1024 bits est vraiment

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 79
immense. En matière de cryptographie à clé publique, plus la clé est grande, plus le
chiffrement est sûr. Cependant, la taille d’une clé publique n’est absolument pas comparable
avec la taille des clés secrètes employées en cryptographie conventionnelle.
Une clé conventionnelle de 80 bits offre une sécurité équivalente à celle d’une clé publique
de 1024 bits. Une clé conventionnelle de 128 bits équivaut à une clé publique de 3000 bits.
Encore une fois, plus grande est la clé, plus grande est la sécurité, mais les algorithmes utilisés
pour chaque type de cryptographie sont très différents, et donc, comparer les tailles de clés
revient à comparer des pommes et des oranges.
Bien que la clé publique et la clé privée soient liées, il est très difficile de déduire la clé
privée en partant de la seule clé publique; toutefois, il est toujours possible de déduire la clé
privée si l’on dispose de suffisamment de temps et de puissance de calcul. Il est donc très
important de choisir une clé d’une taille convenable; assez grande pour être sûre, mais
suffisamment petite pour pouvoir être utilisée relativement rapidement. De surcroît, vous
devez prendre en considération la nature des attaquants susceptibles de vouloir lire vos
fichiers, leur détermination, le temps dont ils disposent, et leurs ressources éventuelles.
Les clés les plus grandes resteront crypto graphiquement sûres pour une plus longue
période. Si ce que vous chiffrez doit rester caché de nombreuses années, vous voudrez sans
doute utiliser une clé très grande. Qui peut dire en effet combien de temps il faudra pour
casser votre clé en utilisant les ordinateurs du futur, plus rapides et plus efficaces? Il fut un
temps où une clé symétrique de 56 bits était considérée comme extrêmement sûre.

Les clés sont stockées sous forme chiffrée. PGP stocke les clés dans deux fichiers sur votre
disque dur; l’un pour les clés publiques et l’autre pour les clés privées. Ces fichiers sont
appelés des trousseaux de clés. Quand vous utiliserez PGP, vous ajouterez les clés publiques
de vos correspondants à votre trousseau public. Vos clés privées sont stockées dans votre
trousseau privé. Si vous perdez votre trousseau privé, vous serez incapable de déchiffrer tout
message destiné à l’une des clés qui était dans ce trousseau.

3.5.2 Signatures numériques

Un des avantages majeurs de la cryptographie à clé publique est qu’elle procure une
méthode permettant d’utiliser des signatures numériques. Une signature est une primitive
cryptographique introduite par Diffie et Hellman et qui permet d'authentifier une donnée.
Les signatures numériques permettent à la personne qui reçoit une information de contrôler
l’authenticité de son origine, et également de vérifier que l’information en question est intacte.
Ainsi, les signatures numériques des systèmes à clé publique permettent l’authentification et
le contrôle d’intégrité des données. Une signature numérique procure également la non-
répudiation, ce qui signifie qu’elle empêche l’expéditeur de contester ultérieurement qu’il a
bien émis cette information.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 80
Ces éléments sont au moins aussi importants que le chiffrement des données, sinon
davantage. Une signature numérique a le même objet qu’une signature manuelle. Toutefois,
une signature manuelle est facile à contrefaire. Une signature numérique est supérieure à une
signature manuelle en ce qu’elle est pratiquement impossible à contrefaire et, de plus, elle
atteste le contenu de l’information autant que l’identité du signataire.

3.5.3 Fonctions de hachage

Le système décrit ci-dessus comporte des inconvénients. Il est lent, et il produit un volume
énorme de données – il double au minimum la taille de l’information originale. Une
amélioration de ce concept est l’addition d’une fonction de hachage à sens unique dans le
processus. Une fonction de hachage à sens unique utilise une entrée de longueur variable –
dans notre cas, un message de n’importe quelle longueur, jusqu’à des milliers ou millions de
bits – et produit une sortie de longueur fixe, par exemple 160 bits. La fonction de hachage
assure que, si l’information était changée en quoi que ce soit – même d’un seul bit – une sortie
totalement différente serait produite.

PGP applique une fonction de hachage crypto graphiquement robuste, sur le texte clair que
l’utilisateur veut signer. Ceci génère comme résultat une donnée de longueur fixe appelée
contraction de message. (Encore une fois, toute modification du contenu du message
produirait un condensé totalement différent.) Ensuite, PGP utilise le condensé et la clé privée
pour créer la “signature”. PGP transmet la signature et le texte clair ensemble. A la réception
du message, le destinataire utilise PGP pour recalculer le condensé, et le comparer avec celui
reçu avec le message, ce qui permet de vérifier la signature. PGP peut chiffrer le texte clair ou
non; signer un texte clair est utile si certains destinataires ne sont pas désireux de vérifier la
signature, ou pas équipés pour le faire. Tant qu’une fonction de hachage sûre est utilisée, il
n’y a aucun moyen de recopier la signature de quelqu’un sur un document pour l’attacher à un
autre, ni d’altérer en quoi que ce soit un document signé. Le plus petit changement dans un
document signé provoquerait l’échec de la vérification de la signature.
Les signatures numériques jouent un rôle majeur dans l’authentification et la validation des
clés PGP des autres utilisateurs.

3.5.4 Certificats numériques

Un problème, avec les crypto systèmes à clés publiques, est que les utilisateurs doivent être
constamment vigilants pour s’assurer qu’ils chiffrent leurs messages en utilisant la véritable
clé de leur destinataire. Dans un environnement où l’on peut échanger des clés à travers des
serveurs publics, les attaques utilisant une personne interposée sont un danger potentiel. Dans
ce type d’attaque, un imposteur fournit une clé bidon portant le nom et l’identifiant
d’utilisateur du destinataire réel des messages de l’utilisateur. Les données chiffrées pour – et
interceptées par – le vrai propriétaire de cette fausse clé, seront tombées en de mauvaises

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 81
mains. Dans un environnement de clés publiques, il est vital que vous vous assuriez que la clé
publique que vous vous apprêtez à utiliser pour chiffrer un message appartient bien au
destinataire désiré, et n’est pas une contrefaçon. Vous pourriez vous limiter à utiliser les clés
publiques qui vous ont été remises physiquement, de la main à la main, par leur propriétaire.
Mais supposez que vous deviez échanger des informations avec des gens que vous n’avez
jamais rencontrés; comment vous assurer que vous en possédez les véritables clés?

Les certificats numériques [ou signatures], ou sert simplifient la tâche d’établir la réelle
appartenance d’une clé à son propriétaire supposé. Le dictionnaire de Webster définit un
certificat comme “un document contenant une affirmation certifiée, spécialement quant à la
véracité de quelque chose”. Un certificat est une sorte de pièce d’identité. Comme par
exemple votre passeport, votre carte de Sécurité Sociale, ou votre extrait de naissance.
Chacun de ces certificats contient des informations vous identifiant, et la signature d’une
autorité qui certifie cette identité. Certaines de ces pièces d’identité, comme votre permis de
conduire, sont suffisamment importantes pour que vous preniez soin de ne pas les perdre,
pour éviter que quelqu’un ne puisse usurper votre identité. Un certificat numérique fonctionne
en gros comme une pièce d’identité matérielle. Un certificat numérique est une information
attachée à une clé publique, et qui permet de vérifier que cette clé est authentique, ou valide.
Les certificats numériques sont utilisés pour contrecarrer les tentatives de substituer une clé
falsifiée à la clé véritable.
Un certificat numérique comporte trois éléments:

Une clé publique


Une information de certification (“l’identité” de l’utilisateur, comme son nom, son
adresse e-mail, etc.)
Une ou plusieurs signatures numériques

L’objet de la signature numérique sur un certificat est de garantir que les informations de
certification ont été contrôlées par une autre personne ou organisme. La signature numérique
ne garantit pas l’authenticité du certificat complet, elle garantit seulement que les
informations d’identité ainsi signées correspondent bien à la clé publique à laquelle elles sont
attachées. Bien que certains experts en sécurité considèrent qu’il n’est pas de bonne pratique
de mélanger des informations d’identité personnelles et professionnelles sur une même clé,
mais qu’il vaut mieux utiliser une clé séparée pour chacune, vous rencontrerez néanmoins des
certificats contenant une clé publique à laquelle sont associées plusieurs identités diverses
(comme par exemple, le nom complet d’une utilisatrice avec son adresse e-mail
professionnelle, son surnom avec une adresse email personnelle, un “nom de jeune fille” avec
une adresse e-mail universitaire – le tout dans un seul et même certificat). La liste des
signatures validant chacune de ces identités peut être différente; chaque signature n’atteste
l’authenticité que de l’une de ces identités, mais pas forcément des trois.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 82
Par exemple, supposez que votre collègue Alice vous demande de signer sa clé. Vous la
recherchez sur le serveur, et vous vous apercevez qu’elle a deux informations d’identité
distinctes attachées à cette clé. La première est “Alice Petrucci <alice@societesure.com>”. La
seconde est “Cleopatra <cleo@cheops.org>”. En fonction de votre connaissance d’Alice, vous
choisirez peut-être de ne signer que son identité telle que vous la connaissez au bureau.

3.5.5 Validité et confiance

Chaque utilisateur d’un système à clés publiques court le risque de confondre une clé
falsifiée (certificat) avec une véritable. La validité est la créance qu’une clé donnée appartient
réellement à son propriétaire supposé. La validité est essentielle dans un environnement à clés
publiques où l’on doit à chaque instant être en mesure d’établir l’authenticité d’un certificat
donné. Quand vous vous êtes assuré qu’un certificat qui appartient à autrui est valide, vous
pouvez en signer la copie dans votre trousseau pour attester le fait que vous avez contrôlé ce
certificat, et qu’il est valide. Si vous voulez que d’autres personnes puissent savoir que vous
avez donné à ce certificat votre propre approbation, vous pouvez exporter la signature que
vous lui avez apposée vers un serveur de certificats, afin que d’autres puissent la voir.
Certaines sociétés désignent une ou plusieurs Autorités de Certification (A.C.), dont le rôle
est de vérifier la validité de tous les certificats à l’intérieur de l’organisation, et de signer ceux
qui sont valides. L’A.C. est le grand Manitou de la validation à l’intérieur de l’organisation,
en qui tout le monde a confiance et, dans certains environnements à clés publiques, aucun
certificat n’est considéré comme valide s’il n’a pas été certifié par l’A.C.

3.6 La contribution du stockage sécurisé de données

Pour protéger les données stockées sur des serveurs publiques de Cloud, Après s’être
authentifié avec succès avec le CSP, le client démarre le processus de stockage. Notre
protocole repose sur le chiffrement hybride, un mécanisme de chiffrement qui présente deux
niveaux: le chiffrement symétrique des données et le chiffrement asymétrique de la clé:

 Chiffrement symétrique des données : avant de stocker les données sur les serveurs
du Cloud, le déposant chiffre le contenu des fichiers, en utilisant un algorithme
symétrique. Par conséquent, les capacités de stockage sont conservées puisque le
même contenu sera chiffré de la même manière.

 Chiffrement asymétrique de la clé : le déposant chiffre la clé de déchiffrement, en


se basant sur un algorithme asymétrique, tout en utilisant la clé publique du serveur
des clés. En effet, n’importe quel destinataire autorisé peut accéder au serveur des
clés, afin de récupérer la clé symétrique de données chiffrées.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 83
La figure 3.7 illustre les différents échanges entre le client et son fournisseur de Cloud. Le
scénario de stockage se base sur les étapes suivantes :

- L’authentification au niveau du Cloud et au niveau du serveur des clés.


- Chiffrement du fichier à l’aide du système de chiffrement symétrique (AES dans notre
cas).
- Envoyer le fichier chiffré au Cloud.
- Chiffrer la clé AES avec RSA et l’envoyer au serveur des clés.

Le scénario de récupération des données dans le Cloud se base sur les étapes suivantes :

- L’authentification au niveau du Cloud et au niveau du serveur des clés.


- Récupération de la clé du serveur et la déchiffrer.
- Récupération du fichier du Cloud et le déchiffrer à l’aide de la clé récupérée
précédemment.

Encrypt with
AES Algorithm
4
Cipher text
1 Host 1
Clair text

2
Encrypt AES key
with RSA Algorithm
Data owner
5 3

Access control
veerr policies
sseerrv
cloud
9 8
DB
DB
Decrypt AES key
with RSA Algorithm
6
Users
10 Host 2
Clair text
Cipher text
7

Decrypt Cipher text


with AES key : Authentication

Figure 3.7 : Modèle Proposé de stockage de données dans le Cloud

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 84
3.6.1 Algorithme proposé

Notre idée consiste à utiliser la cryptographie pour sécuriser les données dans le Cloud. En
fait, notre proposition bénéficie des avantages des deux systèmes de chiffrements : symétrique
et asymétrique, à savoir la rapidité du système de chiffrement symétrique et la sécurité de la
communication des clés du système de chiffrement asymétrique.

3.6.1.1 Algorithme de stockage des données

Notre algorithme a deux phases. Dans la première phase, l'algorithme encrypte le texte en
clair avec le chiffrement AES. Dans la deuxième phase, nous chiffrons la clé AES en utilisant
l'algorithme RSA-1024.

Nous avons utilisé un ensemble de fonctions suivantes:

NumberOfBlock(F) : Retourne le nombre de bloc dans le fichier F.


ENCAES (B,K) : Chiffre le bloc B par le système de chiffrement AES avec la clé K.
SendtoCloud(F’) : Envoyer le fichier chiffré F’ dans le Cloud Storage.
ENCRSA(k) : Chiffre la clé k en utilisant l’algorithme RSA.
Saveinserver(K’) : Sauvegarde la clé AES chiffrée K’ dans le serveur des clés.

Algorithm 3.1: FILEUPLOAD

1. Encryptfile (F) {
2. /* algorithm to encrypt file onto Cloud storage */
3. /* to transform Clair text in file F into Cipher text in file F’ */
4.
5. /* Phase 1: Encrypt Clair text with AES Algorithm */
6.
7. For B←1 to numberOfBlock(F) do
8. {
9. B’=ENCAES(B,K)
10. }
11. sendtoCloud(F’)
12. /* Phase 2: Encrypt AES key with RSA Algorithm */
13. For k←1 to SizeOf(K) do
14. {
15. k’=ENCRSA(k)
16. }.
17. Saveinserver(K’)

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 85
18. }.

3.6.1.2 Algorithme de récupération des données

Cet algorithme a également deux phases. Dans la première phase, l'algorithme déchiffre la
clé AES en utilisant le RSA. Dans la deuxième phase, il déchiffre le texte chiffré en utilisant
la clé AES récupérés à partir du serveur.

Notre algorithme utilise un ensemble de fonctions suivantes:

NumberOfBlock(F) : Retourne le nombre de bloc dans le fichier F.


DECRSA(k’) : Déchiffre la clé k’ en utilisant l’algorithme RSA.
DECAES(B’,K) : Déchiffre le bloc B’ par le système AES avec la clé K.

Algorithm 3.2: FILEDOWNLOAD

1. Decryptfile (F’) {
2. /* algorithm to decrypt file downloaded from Cloud storage */
3. /* to transform Cipher text in file F’ into Clair text in file F */
4.
5. /* Phase 1: Decrypt AES Key with RSA Algorithm */
6.
7. For k’←1 to SizeOf(K’) do
8. {
9. k=DECRSA(k’)
10. }
11. return(K)
12.
13. /* Phase 2: Decrypt Cipher text with AES Algorithm */
14. For B’←1 to numberOfBlock(F’) do
15. {
16. B=DECAES(B’,K)
17. }.
18. return(F)
19. }.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 86
3.6.1.3 Implémentation et analyse des résultats

La mise en œuvre de notre approche met en évidence le temps d’exécution en upload et en


download des fichiers avec des tailles différentes et avec différentes tailles de la clé AES.
Notre application est développée en Java 7. Le résultat ci-dessous (Tableau 3.1, Figure 3.8,
Tableau 3.2 et Figure 3.9) est obtenu en utilisant un hp PC Compaq dc 5800 avec les
spécifications suivantes: Intel (R) Core (TM) 2 Duo CPU E6550 @ 2,33 GHz (2 processeurs),
avec 3072 Mo de RAM. Le temps de récupération d’un fichier est plus grand du temps de
stockage, ceci est expliqué par l'addition du temps de récupération de la clé sur le serveur [3]
[5] [7].

File size (Kb) 128 256 512 1024 2048

Time in Upload
0,2025 0,4051 0,8118 1,6201 3,2903
(second)
Time in download
0,4225 0,8452 1,6905 3,3802 6,7711
(second)

Tableau 3.1 : Temps d'exécution par taille du fichier en upload et en download

Figure 3.8: Graphe du temps de l'exécution avec différentes tailles du fichier

La figure 3.8 et le tableau 3.2 montrent le temps d'exécution requis par différents fichiers
de différentes tailles avec différentes tailles des clés AES pour le processus du chiffrement.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 87
File size
Key size 128 256 512 1024 2048

128 0,198 0,397 0,794 1,587 3,1744


192 0,224 0,448 0,896 1,792 3,584
256 0,25 0,499 0,998 1,997 3,9936
Tableau 3.2 : Temps d'exécution par taille du fichier et taille de la clé AES

Figure 3.9: Graphe du temps de l'exécution avec différentes tailles de la clé AES

Notre approche présente les avantages et les points forts suivants:

 Les données sont cryptées de bout en bout c’est-à-dire de la machine source jusqu’à
la machine de destination et la clé de déchiffrement n’est pas communiqué dans le
Cloud.
 Algorithme AES utilisé est un algorithme symétrique rapide sûr et est l'un des
algorithmes de chiffrement les plus sûrs. Il n'a pas été brisé à ce jour. Cela signifie
que notre algorithme est rapide dans les deux sens: upload et download.
 Possibilité de changer la clé symétrique fréquemment pour améliorer la sécurité.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 88
 La clé AES utilisé pour le chiffrement des données est cryptée par un algorithme
RSA-1024 robuste et n'a jamais été rompu.
 Le décryptage des données nécessite une double authentification. L'utilisateur doit
disposer des droits d'accès au serveur des clés et au Cloud.

3.7 Conclusion

Nous avons présenté dans ce travail quatre contributions, pour pallier à deux besoins de
sécurité dans des environnements de stockage en nuage, à savoir la confidentialité des
données. Notre objectif consiste à définir de nouvelles méthodes pour améliorer la
confidentialité des données dans des applications Cloud, tout en améliorant le partage
dynamique entre les utilisateurs. En réponse à cet objectif, nous avons proposé une approche
basée sur l’utilisation de la cryptographie hybride. Les résultats expérimentaux ont montré
l’efficacité de notre solution en termes de sécurité et de performance. Nos perspectives de
recherche consistent à définir de nouvelles méthodes pour améliorer l’intégrité des données
dans des applications Cloud.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 89
CHAPITRE IV

4.1 Introduction
Le service de stockage du Cloud Computing permet la sauvegarde des données dans les
serveurs d’un fournisseur de Cloud. On a vu dans le chapitre précèdent que, pour sécuriser
davantage ces données, les données sont chiffrées au préalable avant leurs envoi afin
d’assurer la confidentialité. Par contre, dans le cas d'un service de Cloud Computing du genre
SaaS (Software as a Service) ou encore de type IaaS (Infrastructure as a Service), bien que les
données puissent être chiffrées lors de la phase du transfert, celles-ci se doivent d'être en clair
lorsqu'elles sont dans le Cloud. Ce que nous avons fait répond seulement à la confidentialité
des données, mais dans le cas de l’entreperçage de données chiffrées et stockées dans un
Cloud, le client a besoin de pouvoir exécuter, au sein même du Cloud, une recherche ou une
manipulation sur les données sans devoir, à chaque fois, déchiffrer et re-chiffrer tout. Ce tas
de chose engendre les délais de traitement importants et consomme les ressources matériels et
réseaux (Bande passante, capacité de calcul, RAM, routage,…). Les algorithmes de
chiffrements bruts symétriques ne sont pas efficaces dans ce type d’opérations. Pour remédier
à ce problème une solution théorique est développée, il s’agit des systèmes de chiffrements
Homomorphiques.
Le système de chiffrement homomorphique permet de traiter, au sein du Cloud, des
requêtes sur les données chiffrées, sans devoir les téléchargées, les décryptées et ensuite les
re-chiffrées et les envoyées au Cloud.il permet de protéger les données des utilisateurs à tout
moment, tout en conservant certaines propriétés utiles de services Cloud comme la recherche
des chaînes dans les fichiers. En effet, il peut permettre à des opérations et des fonctions pour
être préformés sur des données chiffrées, ce qui signifie que les données ne sont jamais en
clair à l'extérieur de l'environnement de l'utilisateur. Il empêche les employés malveillants des
fournisseurs de services de Cloud d'accéder aux données privées. Un rapport [64] d'un
employé à Google en 2010 décrit qu’un ancien ingénieur a abusé de ses privilèges pour
afficher des informations privées. Il a utilisé ces informations pour traquer les adolescentes et
espionner leurs sessions de chat. De nombreux employés de services de Cloud Computing ont
les privilèges nécessaires pour voir nos données, et nous avons besoin de prévenir de tels
incidents pour qu’elles ne se reproduisent.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 90
Il y a deux variantes de chiffrement homomorphique : partiel et complet. On dit que Le
chiffrement homomorphique est Partiel (PHE) si une seule opération peut être effectuée sur le
texte chiffré, par exemple, l'addition ou la multiplication, exemple de RSA, El Gamal,
Pailier...etc. Cependant, de nombreux services de Cloud Computing ont besoin de plus de
fonctionnalités que l’addition ou la multiplication. C'est là où le système de chiffrement
Homomorphique complet, Fully Homomorphic Encryption (FHE), aussi connu comme le
«Saint Graal» du chiffrement, a commencé à jouer un rôle énorme dans la sécurisation des
services de Cloud Computing. FHE peut prendre en charge les opérations multipliables
(additions et multiplications), ce qui permet plus de flexibilité des calculs à effectuer sur des
données chiffrées.

4.2 Homomorphisme

4.2.1 Définition
Soit deux groupes (G,+) et (H,*). On note et les éléments neutres respectifs de G
et H. On dit qu'une application f : G H est un homomorphisme de groupe si:
 f( )=
 Si x et y sont éléments de G, f (x + y) = f (x) * f (y).

Propriété :

Soit f : G G' un homomorphisme de groupes.


Alors :
1) f ( ) =
2) Pour tout élément x de G, f ( ) =
3) Pour tout entier non nul n, f ( ) =
Et si on définit par ( , f( )=

4.3 Système de chiffrement homomorphique

4.3.1 Définition
Un système de chiffrement homomorphique est un cryptosystème permettant de faire des
calculs sur les données chiffrées. Formellement, si (respectivement ) est un chiffré de
(respectivement ), il existe deux opérations et ○ telles que :

Dec( ) = Dec( ) ○ Dec( ) = ○

Typiquement, sera une addition ou une multiplication modulaire, mais ce n’est pas
toujours le cas. Un système de chiffrement homomorphe Complet n’est rien d’autre qu’un
système de chiffrement homomorphe où toute fonction peut être évaluée sur les données

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 91
chiffrées. Comme toute fonction peut être exprimée comme un polynôme et qu’un polynôme
consiste en une série d’additions et de multiplications, un système de chiffrement sera
complètement homomorphe dès lors qu’il permettra d’évaluer un nombre arbitraire
d’additions et de multiplications sur les données chiffrées.

4.3.2 Aperçu historique

La recherche d'un schéma de chiffrement homomorphique remonte à l'année 1978, peu de


temps après l'invention du RSA: la malléabilité accidentelle de RSA conduit Rivest, Adleman
et Dertouzos [65] pour former l'idée de réaliser les calculs sur les données cryptées.
L'existence d'un tel mécanisme était inconnu à l'époque et considéré comme un problème
ouvert.
La question de l'existence d'un mécanisme non-interactif a été reformulé par Feigenbaum
et Merritt [66] en 1991, qui a proposé la notion de algébriques schémas cryptographiques
homomorphes qui pourraient solidement évaluer Enc ( ) et Enc ( )
uniquement à partir de , Enc ( ) et Enc ( ) , sans interaction entre aucune
partie, et sans connaissance de la clé secrète. Un tel système homomorphic permet des calculs
arbitraires sur les données cryptées.
Cependant, les premiers cryptosystèmes homomorphes apparues permis seulement
addition ou la multiplication, mais pas les deux. Le premier connu, si nous laissons de côté
RSA qui est incertain dans sa version non rembourrée, est le schéma de Goldwasser et Micali
[67] en 1982. Beaucoup d'autres systèmes permettant une opération ont été proposés, parmi
lesquels les plus connus sont EL Gamal [68] en 1985 et Paillier [69] en 1999.
Début des années 2000, des cryptosystèmes homomorphes qui permettent plus d'une
opération ont commencé à apparaître. MGH [70] peut effectuer de nombreux opérations
d’additions et "plusieurs" multiplications.
En 2009, le premier chiffrement entièrement homomorphique (FHE) a été inventé dans le
sens de Feigenbaum et Merritt, permettant un nombre illimité d’additions et multiplications.
La thèse de Gentry [71] a apporté le premier résultat théorique pour le faire, en se basant sur
la sécurité des problèmes difficiles dans des lattices idéals.
Depuis lors, Gentry a été impliqué dans plusieurs différents schémas pour FHE (Gentry,
2009b [72]. Van Dijk et al, 2010 [73]. Gentry et al, 2013 [74]), pour améliorer
progressivement les schémas, mais encore à ce jour ne sont pas suffisamment efficaces pour
être utilisé dans le monde réel. La brève histoire donnée dans cette section est résumée dans le
tableau 1.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 92
Homomorphic encryption from learning with errors: Conceptually
2013 simpler, asymptotically faster, attribute-based (Gentry et al., 2013)

2010 Fully homomorphic encryption over the integers (Van Dijk et al., 2010)
A fully homomorphic encryption scheme (Gentry, 2009a) Fully
2009 homomorphic encryption using ideal lattices (Gentry, 2009b)
A new approach for algebraically homomorphic encryption (Armknecht
2008 and Sadeghi, 2008)
A provably secure additive and multiplicative privacy homomorphism
2002 (Domingo-Ferrer, 2002)
1996 A new privacy homomorphism and applications (Ferrer, 1996)
1988 On privacy homomorphisms (Brickell and Yacobi, 1988)
1987 Processing encrypted data (Ahituv et al., 1987)
A database encryption scheme that allows the computation of statistics
1985 using encrypted data (Blakley and Meadows, 1985)
Signature protocols for RSA and Other Public-Key Cryptosystems
1982 (Denning, 1982)

1978 On data banks and privacy homomorphisms (Rivest et al., 1978b)

Tableau 4.1 : Aperçu historique de chiffrement homomorphique

4.3.3 Systèmes Homomorphiques Partielles


Les algorithmes du chiffrement Homomorphiques permettant l'idée ont été l’objet de
discussion depuis un certain temps. Même si ce système de chiffrement ne permet pas la
manipulation de plusieurs opérations sur les données chiffrées, mais il est capable d’être
utilisé dans des cas spécifiques, par exemple dans le cas du vote électronique qu’on va
détailler dans le prochaine chapitre. Dans cette section, deux régimes de PHE, EL Gamal
(1985) et PAILLIER (1999), seront étudiés.

4.3.3.1 Cryptosystème de RSA

Le système RSA est système de chiffrement homomorphique partiel (multiplicatif) nous


considérons deux messages chiffrés et alors on a :

* mod n= = modn

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 93
Algorithme du chiffrement multiplicatif RSA

Algorithme 4.1: Génération de la clé RSA

Output: Clé publique et clé privée


1. Fonction KeyGen()
2. Choisir deux larges nombres premier p q
3. n = p.q
4. (n) = (p- 1).(q-1)
5. Choisir un entier a {2... (n) -1}
6. Trouver b = mod (n)
7. Retourner = (n, a) et =b
8. Fin

Algorithme 4.2: Chiffrement RSA

Input: Clé publique = (n, a) et le message m


Output: texte chiffré c
1. Fonction Encrypt(m)
2. c= mod (n)
3. Retourner c
4. Fin

Algorithme 4.3: Déchiffrement RSA

Input: Clé privée = b et le texte chiffré c


Output: message m
1. Fonction DECRYPT(c)
2. m= mod (n)
3. Retourner m
4. Fin

4.3.3.2 Cryptosystème d’EL GAMAL Additif


Le système de chiffrement d'El Gamal a été proposé en 1985 par Taher EL Gamal [75]. La
sécurité de ce système de chiffrement est basée sur la complexité de la résolution de

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 94
logarithmes discrets. Conceptuellement, El Gamal supporte les opérations de multiplication
sur des données chiffrées. Il est utilisé par le logiciel libre GNU Privacy Guard, les versions
récentes de PGP et d'autres systèmes de chiffrement, et n'a jamais été sous la protection d'un
brevet contrairement à RSA. Il peut être utilisé pour le chiffrement, mais aussi pour la
signature électronique.

Implémentation:
Pour commencer, Bob choisis un élément aléatoire du groupe, et il l’envoie à Alice avec
l’ordre p et le générateur du groupe. Il garde secret le paramètre a, où . En utilisant
les paramètres publiques, Alice calcule les deux éphémères clés et la clé de
masquage .
Elle utilise la clé de masquage pour chiffrer y encrypt( , et envoie la clé
éphémère pour Bob pour avoir un avantage en essayant de décrypter son message. Son
cryptogramme est alors c=(x, y).
Bob calcule ensuite . Il doit alors effectuer une recherche de force
brute pour récupérer le message m.
En ce qui concerne le déchiffrement, il peut être utile de noter que la correction est
obtenue par l'expansion ci-dessous, où la récupération de m à partir de est supposé être
efficacement mis en œuvre [76].

Homomorphisme:
Étant donné deux messages clairs et deux cryptogrammes correspondants =
Encrypt( ) = ( , ) et = Encrypt( ) = ( , ), nous pouvons calculer

Encrypt( )* Encrypt( )= ( , )
=( )
=( )
= Encrypt( )

Ainsi, on peut obtenir un chiffrement de la somme des textes en clair à partir du produit par
morceaux des cryptogrammes.

Algorithme du chiffrement EL Gamal Additif

Algorithme 4.4: Génération de la clé EL Gamal

Output: Clé publique et clé privée

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 95
1. Fonction KeyGen()
2. Choisir un large nombre premier p
3. Choisir un élément primitif
4. Choisir un entier a {0,...p-2}
5.
6. Retourner = (p, , ), =a
7. Fin

Algorithme 4.5: Chiffrement EL Gamal

Input: Clé publique =(p, , ) et le message m


Output: Texte chiffré c
1. Fonction ENCRYPT(m)
2. Choisir k {2,...p-2}
3.
4.
5. Retourner c = (x, y)
6. Fin

Algorithme 4.6: Déchiffrement EL Gamal

Input: Clé privée = a et texte chiffré c = (x, y)


Output: message m
1. Fonction DECRYPT(c)
2. =
3. Retrouver m à partir de =
4. Retourner m
5. Fin

4.3.3.3 Cryptosystème de Paillier

Proposé en 1999 par Paillier (1999) [69], le cryptosystème Paillier est basée sur le
problème que le calcul de n classes de résidus est de calcul intensif. La nature de l'algorithme
permet des opérations d'addition homomorphique pour produire la réponse courante une fois
décryptée. La génération de clés pour le cryptosystème Paillier est donnée dans l'algorithme 2,
est un peu plus compliqué que celui d'El Gamal.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 96
Pour chiffrer un message, le message est utilisé comme exposant pour g, une valeur
aléatoire est portée à l'autre clé publique de valeur n, comme illustré dans l'algorithme. Cela
produit une valeur de chiffrement modulo . Le décryptage est à nouveau une équation
simple et est donnée dans l'algorithme. A noter que la définition de est donnée avec la
génération des clés.

La preuve du cryptage et le décryptage sera maintenant donnée pour montrer comment les
valeurs clés publiques et privées s’annulent. Ceci est important car il aidera à montrer
pourquoi le Cryptosystème Paillier peut prendre en charge des opérations d'addition
homomorphes.

Algorithme du chiffrement Paillier

Algorithme 4.7: Génération de la clé Paillier

1: Choisir deux larges nombres premiers p et q avec ( )


2: Calculer
3: Calculer
4: Sélectionner g entier aléatoire et g
5: Définir L(x) =
6: Assurer que n divise l'ordre de g en vérifiant l'existence de l'inverse multiplicatif
modulaire suivant :
7: )
8: Public Key =
9: Private Key = (

Algorithme 4.8: Chiffrement Paillier

Chiffrer le message M avec M


1: Choisir r un entier aléatoire où r
2: Calculer

Algorithme 4.9: Déchiffrement Paillier

Déchiffrer le message c où c
1: Calculer )×u

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 97
4.3.4 Sécurité d’un cryptosystème homomorphique

Un crypto système est dit indistingable (IND) si un attaquant ne peut reconnaître lequel des
deux messages, qu’il a préalablement choisis, a été chiffré. C’est-à-dire il envoie au système
deux message { , }, le système renvoi le crypté de l’un de ces messages, et l’attaquant ne
peut pas savoir le message qui a été chiffré.
Nous allons présenter les différents types d’indistingabilité et voir dans quelles mesures ils
peuvent ou non s’appliquer aux systèmes de chiffrement homomorphe.

– IND-CPA: INDistinguishability under Chosen Plaintext Attack

Dans ce cas l’attaquant choisit deux messages clairs, les envoient au système, ce dernier
retourne le chiffré de l’un d’eux, si l’attaquant ne peut pas connaitre le message qui a été
chiffré par le système, on dit que ce cryptosystème résiste à cette attaque, et est dit IND-CPA
Secure, c’est la plus faible des formes de sécurité (Figure 4.1 ).

Figure 4.1 : Scénario d’attaque à clairs choisis

– IND-CCA : INDistinguishability under Chosen Ciphertext Attack

Dans ce cas même procédure que le dernier mais avant d’envoyer les deux clairs,
l’attaquant a la possibilité d’effectuer plusieurs cryptages et décryptages mais dès que le
système envoie le chiffré (défit), l’accès au décryptions oracle (système qui permet de
décrypter) est suspendu. Lorsqu’un crypto système résiste à cette attaque, il est dit IND-CCA1
Secure (Figure 4.2).

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 98
Figure 4.2 : Scénario d’attaque à chiffrés choisis

– IND-CCA2 : INDistinguishability under Adaptive Chosen Ciphertext Attack

C’est comme l’autre la différence c’est que après que le système envoie le défi l’attaquant
e m 
peut crypter et décrypter n’importe qu’il chiffre sauf le défi k b . On dit qu’un crypto
système est IND-CCA2 Secure s’il résiste à cette attaque. Cette forme de sécurité est la plus
forte (Figure 4.3).

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 99
Figure 4.3 : Scénario d’attaque adaptative à chiffrés choisis

4.3.5 Les limites théoriques d’un crypto système homomorphique

On voit qu’aucun crypto système homomorphique ne peut être IND-CCA2 secure


c’est à cause de sa malléabilité, en effet lorsque l’attaquant reçoit le défi , il peut
calculer le crypté d’une constante c et ensuite utiliser les propriétés de l’homomorphique :
et ensuite connaitre avec le décryptage de .
Si un cryptosystème homomorphique est IND-CCA2 Secure sans l’utilisation des
propriétés homomorphique alors il est IND-CCA1 même si on utilise ces propriétés.

4.3.6 Attaque contre le cryptosystème homomorphique

Les opérations homomorphique permet à un adversaire de casser un cryptosystème


homomorphique. On va présenter des exemples expliquant quelques attaques. Ahituv, Lapid,
et Neumann ont démontré une attaque, avec un chiffré choisi, contre un crypto système
homomorphique dans le cas où l’opération est dans les chiffrés et le clair est l’addition :

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 100
On considère les messages suivants tel que est la fonction qui crypte un message de n-
bits :

ek (a1 )  1,0, 0, . . . , 0
ek (a 2 )  0,1, 0, . . . , 0
.
.
ek (a m )  0,0,0, . . . , 1

Si un adversaire peut connaitre le clair de ces message (les ), il peut ensuite connaitre le
clair de n’importe quel chiffré. En effet soit le chiffré c = pour un message m, avec c=
[ ], l’adversaire peut connaitre m avec le calcule : m=∑
Cette attaque marche car le chiffré choisi est une base pour l’espace des chiffrés, et le
clair pour chaque élément de base est connu, et la fonction de chiffrement est linéaire.

4.4 PHE et vote électronique dans l’environnement Cloud

Dans une société démocratique, une des choses les plus importantes est la liberté de choisir
quelque chose de mieux pour vous. Dans tous les pays démocratiques, le processus de vote est
un événement très important où les gens choisissent le nouveau gouvernement pour les
prochaines années. Avec un tel progrès puissant des technologies de l'information, les gens
commencent à proposer d'élever ce processus de vote à un nouveau niveau, un niveau de vote
électronique où les électeurs peuvent être sûrs que leur vote ne sera pas manipulé ou d'autres
personnes ne savent pas pour quel candidat il ont voté. Le vote électronique est un moyen qui
maintient en secrètes les opinions individuelles.

Dans notre cas, nous allons réfléchir à l'amélioration de sa confidentialité en chiffrant


chaque vote des électeurs et le calcul de la somme des résultats sans le déchiffrant [77]. Ce
vote se fait dans les SaaS partie de Cloud Computing, il est comme le vote du Ballon d'Or de
la FIFA, mais il est confidentiel et professionnel. Supposons que le nombre d'électeurs est
connu, en utilisant les propriétés de chiffrement homomorphique, on va calculer et donner
des résultats de chaque candidat sans décryptage. Les objectifs de la mise en œuvre de ce type
de vote sont l'augmentation de la sécurité dans la façon de rendre plus difficile de relier
l'électeur avec le vote émis, la permission du vote à des personnes à partir de leurs maisons,
donc il n'y a pas besoin de préparer des maisons de vote, en suite chaque électeur aura la
possibilité de vérifier si son vote émis a été compté correctement. Donc, le vote électronique
rend le processus de vote plus simple pour le gouvernement et pour les citoyens.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 101
4.5 Travaux existants et contributions

Trois approches dominent la littérature scientifique concernant le vote électronique.


Plusieurs méthodes sont basées sur les mix-nets introduits par David Chaum [78]. Ils
permettent de dissimuler le lien entre le votant et son bulletin au travers de nombreuses
permutations. Plusieurs applications sont présentées dans les articles suivants : [79] [80].

D’autres méthodes se basent sur le protocole des signatures aveugles proposées par Chaum
[81]. Le votant chiffre et masque son bulletin avant de le présenter à une autorité électorale
pour validation. Son bulletin est accompagné de la preuve de son droit de vote. Après que
l’autorité responsable ait valide le bulletin, le votant enlève le masque sur le message chiffré
et signé afin de récupérer un bulletin signé qui ne peut pas être associe au message chiffré
original [82] [83].
Notre approche s’articule sur les méthodes basées sur le chiffrement homomorphique [5]
[10a][11a] font usage de certaines propriétés des cryptosystèmes probabilistes, ou l’on a
démontré l’existence de correspondances entre les opérations sur un certain groupe dans
l’espace des messages en clair et les opérations sur le groupe correspondant dans l’espace des
messages chiffres.
Etant donné que de nouveaux cryptosystèmes efficaces avec d’intéressantes propriétés
Homomorphiques ont été proposés dans la littérature (El Gamal [68], et Paillier [69]), les
systèmes de vote électronique basés sur cette méthode ont gagné en attention. Dans la
littérature, ces propriétés homomorphique ont le plus souvent été utilisées pour compter les
votes comme des agrégats, sans déchiffrer un seul vote (ce qui assure la, ou pour combiner les
parties du bulletin d’un votant).
Des approches hétérodoxes du vote électronique ont également été proposées. L’article
[84] présente une méthode probabiliste ou la robustesse au sens fort n’est pas atteinte, du fait
que les résultats sont seulement valides de manière probabiliste.
Un premier challenge pour les protocoles électroniques est le format des bulletins.
Plusieurs protocoles parmi les plus robustes et plus pratiques ont été conçus à la base pour de
simples choix binaires. Avec le temps, ils ont été modifiés pour supporter les choix multiples.
Plus récemment, ces protocoles ont commencé à prendre en compte les questions ouvertes. Il
est également souhaitable de garantir l’absence de reçu et le fait que le système prévienne les
comportements coercitifs (menaces envers le votant, corruption, achat ou vente de votes, . . .).
Beaucoup de protocoles ont atteint ces propriétés en s’aidant d’hypothèses physiques (comme
des canaux anonymes ou prives, des cartes à puce, des boites noires offrant du chiffrement, . .
.) ou de partis tiers honnêtes en qui l’on a confiance. Les questions ouvertes augmentent
encore la difficulté de concevoir un système empêchant toute coercition. Une personne
désirant acheter le vote d’un électeur, ou une personne menaçant un votant peut demander à
ce dernier d’inclure dans son vote une chaine de caractères identifiable de manière unique, de
façon à ce que le vote puisse être reconnu plus tard.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 102
Une grande partie des protocoles théoriques se sont concentrés sur le concept de
vérifiabilité universelle plutôt que sur le comptage pratique, vérifiable par le votant.
Néanmoins, plusieurs critiques récentes font ressentir le besoin de bulletins physiques, de
traces auditables dans les implémentations des systèmes électroniques utilisés, ainsi que de
mécanismes compréhensibles par un être humain.

4.6 Scenario du vote électronique

La figure 4.4 montre notre système de vote électronique. Dans ce schéma, nous avons
utilisé un cryptage homomorphique additif et nous avons besoin d’une paire de clés unique
pour le chiffrement et le déchiffrement. Les électeurs s’authentifient en utilisant des
algorithmes d'authentification sécurisée qui existent actuellement.

Figure 4.4: Schéma du vote électronique

4.6.1 Description du scenario:

Le nombre d'électeurs est connu et il sera noté E


Le nombre de candidats : n
On choisit un entier secret b> E
Les candidats ont les identifiants suivants:

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 103
Candidat N ° 1 a l'identificateur
Candidat N ° 2 a l'identificateur

Candidat N ° n a l'identifiant

Notes:

 Un identifiant peut être ajouté pour les personnes qui ne veulent pas voter à aucun
candidat: identificateur de vote neutre avec 1≤j≤n.
 Nous pouvons appliquer cet algorithme pour le vote multiple. Si l'électeur vote
pour m candidats. Nous prenons m × b au lieu de b.
 b est gardé secret pour éviter les attaques.

Soit : une fonction du chiffrement homomorphique tel que k est la clé de


chiffrement et (d + b) = /d,b

L'électeur j sélectionne un candidat i par son identifiant :


Notre système chiffre l'identificateur ( = ( )) et l'envoie au serveur de stockage. Enfin,
pour calculer le résultat du vote, nous calculons le produit de tous les chiffrés :
Supposons qu’on a v électeurs qui ont vraiment voté tels que v ≤ E. alors :

C= ( ) *…* ( ) * ( ) *…* ( ) * …* ( )
*…* ( )
Nous pouvons écrire C sous la forme suivante :

C =∏ such as : : {1,2,…,v} {1,...,n }


Et on a:
(d + b) =

Donc :
C=∏ = ∑ )= ∑

Tel que: = card( ({i})) = le nombre de votes du candidat i.


Calculons :

Déchiffrons C : (C) = (∑ )
=∑ = P(b)
Et P polynôme de degré n
Afin de trouver ki on ava utiliser notre théorème ci-dessous :

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 104
Théorème:

Soit P un polynôme à une variable x et à coefficients entiers, et b . P(x)= ∑


Si P(b) est connu et on a : ∑
( ( ))
Alors =

Preuve :
Soit P [x] : P(b) ∑
Donc P(b) mod(bi) =k1 b1 + ….+ki-1 bi-1
Parce que ∑
=> k1+…+ki-1 < b
=> k1 b1 +…+ki-1 bi-1 < bi-1 ( k1+…+ki-1) < bi
Puis P(b) –(p(b) mod(bi)) =ki bi+…+kn bn
( ( ))
Alors Ki+ki+1 b+….+kn bn-i
( ( ))
Ensuite =ki

De cette façon, le décryptage du produit des bulletins chiffrés donne le résultat du vote
sans déchiffrer individuellement chaque bulletin.

4.6.2 Algorithme proposé pour notre scénario de vote

Notre algorithme, ci-dessous, proposé pour la gestion du processus de vote utilise un


ensemble des fonctions suivantes:
Enc(v) : Chiffre la valeur v en utilisant un algorithme de chiffrement homomorphic additif.
sendtopublicCloud() : Permet d’envoyer le vote chiffré Ci dans le Cloud Storage.
Dec(C) : Déchiffre C.
Displayresult(ki) : Permet d’afficher le résultat du vote pour le candidate i.

Algorithm 7.1: VOTE PROCESS

1. VoteManaging()
2. /* algorithm for managing the voting process */
3. {
4. Encryptvote(v)
5. Processingvote()
6. Treatmentvote()

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 105
7. }
8. /* Phase 1: Encrypt vote At the voting machine */
9.
10. Encryptvote(v)
11. {
12. for i←1 to E do
13. {
14. Ci ← Enc(v = )
15. sendtopublicCloud(Ci)
16. }
17. }
18. /* Phase 2 : processing the vote in public Cloud */
19. Processingvote()
20. {
21. C← 1
22. for j←1 to E do
23. {
24. C ← C * Cj
25. }
26. sendtoprivateCloud(C)
27. }
28. /* Phase3 : decrypt, treatment and displaying results*/
29. Treatmentvote(C)
30. {
31. D← Dec(C)
32.
33. for i←1 to n do
34. {
( ( ))
35. =
36. }
37. Displayresult(ki)
38. }

4.6.3 Exemple d’un vote électronique avec EL Gamal

L’exemple que nous allons étudier utilise le système de chiffrement Homomorphique


additif EL Gamal que nous avons présenté dans le chapitre précédent.

Dans ce cas, nous choisissons le nombre premier p tel que : p> Max (P (b))

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 106
Généralement pour maximiser P(b) nous supposons que tous les électeurs votent pour le
candidat ayant le grand Id = bn
Alors Max(P(b))=E * bn et E <b donc Max(P(b)) <bn +1
Ensuite, nous pouvons choisir p >bn+1

Dans cet exemple, nous supposons que nous avons deux candidats et trois électeurs.

Pour ce case b=4 (nombre d’électeurs +1)


Candidate 1 a Id = b1 =4
Candidate 2 a Id = b2 =16

Pour choisir une bonne valeur du paramètre p, on suppose que les trois électeurs votent
pour le deuxième candidat
Le résultat sera M=42+42+42=48
Pour chiffrer 48 nous devons choisir un premier p> 48

To encrypt 48 we must choose a prime p> 48

Key Generation:

p=53 ; α=2 ; a= 3
β=2 3 =8

Public key kpub={53,2,8}

Private key kp=3

Chiffrement de m=4 (1er électeur pour le premier candidat) :

On choisit k=3 ( k <= p-2)


3
x=2 mod 53 = 8 mod 53
y= αm * βk mod 53 = 24 * 83 mod 53 =30 mod 53
C1=(x1 mod p, y1 mod p)=(8 mod 53 , 30 mod 53)

Chiffrement de m=4 (2ème électeur pour le premier candidat) :

On choisit k =4 (k <= p-2)


4
x=2 mod 53 = 16 mod 53
y= αm * βk mod 53 = 24 * 84 mod 53 =28 mod 53
C1=(x1 mod p, y1 mod p)=(16 mod 53 , 28 mod 53)

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 107
Chiffrement de m=16 (3ème électeur pour le deuxième candidat) :

On choisit k=2 (k < =p-2)


x=2 2mod 53 = 4 mod 53
y= αm * βk mod 53 = 216 * 82mod 53 =43 mod 53
C2=(x2 mod p ,y2 mod p)=(4 mod 53,43 mod 53)

Calcul de C :
C=C1 * C2*C1
C=(512 mod 53 ,36120 mod 53)
C=(35 mod 53 ,10 mod 53)

Déchiffrement de C :
On a Kp=a=3
m*=44-3 * 10 mod 53
m*= αm =2m
So 35-3 * 27 mod 53 =2m (Equation)
La solution de l’équation est P(b)=m=24

Ensuite, nous avons les résultats comme suit:

P(b)=m=k1 * 41 +k2 *42 =24 and k1 < 4, k2 <4


En calculant les ki on trouve k1=2 and k2=1

Finalement :
Le candidat 1 à deux voix (k1=2)
Le candidat 2 à une voix (k2=1)

4.6.4 Avantages de notre proposition

Notre système de vote électronique proposé possède de nombreux avantages, dont on peut
citer l’essentiel ci-dessous:

 Les opérations dans nos systèmes sont très rapides, parce que nous avons
manipulé m opérations de chiffrement (m nombre d'électeurs) et une opération
de déchiffrement, par contre d’autres conceptions de vote électronique utilisent
un vecteur de n valeurs (n nombre de candidats) basés sur le vecteur

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 108
homomorphique de vote à distance [85], conduit à n×m opérations de
chiffrement et n opérations de déchiffrement.

 Notre approche profite des avantages des ressources de Cloud public en termes
de force de calcul pour faire la multiplication des messages chiffrés. En plus
cet environnement Cloud ne peut pas infecter la vie privée de notre système de
vote.

 L'administrateur des élections (ou le comité de vote) déchiffre avec la clé


privée le chiffre reçu du Cloud public et calcule les résultats dans un système
automatique mis en œuvre dans un Cloud privé sécurisé. Cela garantit la
confidentialité et la transparence des élections.
 Notre algorithme est valable pour tous les algorithmes de chiffrement
homomorphes additifs comme EL Gamal, Paillier et Coubes Elliptiques.
 Les protocoles de vote électronique permettent d’effectuer les élections à
travers des réseaux de communication sans exiger que les participants se
déplacent aux bureaux de votes. Ces systèmes réduisent le coût économique
d'une élection et permettent de compter, de manière rapide et sans erreur, les
bulletins de vote.

4.6.6 Complexité et Résultat de l’implémentation de notre système

- Complexité

La théorie de la complexité informatique se concentre sur la classification des problèmes


en fonction de leur dureté de calcul. Le but de la théorie de la complexité est de déterminer la
quantité de ressources de calcul nécessaires pour résoudre un tel problème et de classer les
problèmes en fonction de leur difficulté. Il existe différentes ressource concernées par cette
classification. La ressource la plus souvent utilisée est le temps. Une autre ressource de calcul
possible est la mémoire (l'espace disque). Les classes de complexité utilisées sont presque
toujours dépendant du temps.

Dans notre solution, nous utilisons les schémas Homomorphiques additifs comme El
Gamal et Paillier. Le problème avec cette modification est que m= αm, présentant le problème
du logarithme discret dans le déchiffrement. Pour les assez grands textes, cela devient
impossible. Par conséquent, nous aimerions un autre cryptosystème qui tire parti de cette
propriété additive d’exponentiation, sans des délais de déchiffrement supplémentaire. La
solution de ce problème est le Cryptosystème Paillier.
Le tableau 4.2 [86] présente la comparaison de la complexité des protocoles des deux
régimes EL Gamal et Paillier.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 109
Schema Complexité de Complexité de déchiffrement
chiffrement du vote
El Gamal O((log(n))3) O((log(n))3)
additif et le problème du logarithme discret avec la Complexité
de l’algorithme de Schanks [87] : O (√p . (log(n))3)

Paillier O((log(n))3) O((log(n))3)

Tableau 4.2: Complexité d’El Gamal et Paillier

La performance pour les systèmes d’EL Gamal additif et de Paillier est donnée par
Virginia Tech et est présenté dans le tableau 4.3, Figure 4.5 et Figure 4.6. Dans [89], les
auteurs choisissent Paillier qui a un niveau de sécurité à peu près équivalent de celui d’EL
Gamal à 2048 bits.

Scheme Addition Encryption Decryption

ElGamal 0.22ms 115.71ms 79.63 sec

Paillier 0.013ms 25.90 ms 24.90 ms

Tableau 4.3: Comparaison des performances des schémas EL Gamal et Paillier

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 110
Encryption
140

115,71
120

100
Time (Millisecond)

80

60

40
25,9
20

0
ElGamal Paillier

Figure 4.5: Comparaison des délais du chiffrement d’El Gamal avec Paillier

Decryption
90
79,63
80
70
60
Time (second)

50
40
30
20
10
0,0249
0
ElGamal Paillier

Figure 4.6: Comparaison des délais du déchiffrement d’El Gamal avec Paillier

D'après le tableau 4.3, nous pouvons voir que le système de Paillier est environ 4 fois plus
rapide que celui d’El Gamal additif en chiffrement dans des niveaux de sécurité comparables.
Aussi la performance de décryptage d’El Gamal additif est visiblement très lent que celui de
Paillier.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 111
- Implémentation

L’implémentation de notre solution met en évidence les délais de l’exécution de


l’opération du vote. Notre application est développée en Java en utilisant l’éditeur Eclipse
(voir en annexe 1 les principales fonctions utilisées dans notre application).
Les résultats obtenus, dans le tableau 4.4 et la figure 4.8, ont été réalisées en utilisant un
PC Acer Aspire 7750G avec les spécifications suivantes: un CPU Intel Core i5-2410M
2,3GHz (5 processeurs), avec 4Go de RAM. Le temps de calcul du résultat du vote dépend du
nombre des votants.

Nombre de
10 20 30 40 50 60 70 80 90 100
votants
Temps de
chiffrement du 0,3 0,45 0,7 1,25 2,04 3,27 4,7 6,06 8,17 10,48
vote (s)

Tableau 4.4 : Temps de chiffrement du vote par nombre de votants

120

100
Nombre de votants

80

60

40

20

0
0,3 0,45 0,7 1,25 2,04 3,27 4,7 6,06 8,17 10,48
temps de chiffrement du vote (s)

Figure 4.8 : Graphe des délais d’exécution du chiffrement du vote par nombre de votants

Le graphe de la figure 4.9 représente une comparaison entre notre méthode et la méthode
de MATEU. Il est clair que le temps du vote de note méthode est optimale avec
l’augmentation du nombre d’électeurs. Cela est expliqué par l’utilisation du vecteur par la
méthode MATEU, par contre nous nous chiffrons une valeur unique pour chaque vote.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 112
Comparaison
60

50
Temps d'éxecution (s)

40

30
Notre Méthode

20 Méthode MATEU

10

0
10 20 30 40 50 60 70 80 90 100
Nombre de votant

Figure 4.9 : Comparaison du délai d’exécution de notre méthode et celle de MATEU par
nombre de votants

4.7 Conclusion

Ce chapitre a donné un aperçu sur les schémas de chiffrement homomorphes. Il a fourni


des preuves pour montrer que ses systèmes peuvent supporter les opérations homomorphes.
Le chiffrement homomorphique deviendra plus essentiel pour les services du Cloud afin
d’améliorer les performances des systèmes.
Le chiffrement homomorphique dans le Cloud est encore relativement jeune et est
seulement en cours d'adoption à un rythme lent. Même si le FHE n’est actuellement pas
plausible à mettre en œuvre pour les scénarios du monde réel. Le chiffrement homomorphique
est une réponse viable au Cloud Computing qui exige un niveau accru de sécurité. Certaines
solutions du Cloud ont déjà réalisé cela, mais dans un proche avenir, on espère que ces
concepts seront utilisés dans la grande envergure. De l’autre part, Nous avons présenté un
nouveau système de vote électronique qui utilise un système de chiffrement homomorphique
additif. Nous avons choisi des algorithmes de chiffrement homomorphique au lieu des
algorithmes de chiffrement traditionnel, car il permet d'effectuer des opérations spécifiques au
niveau des votes chiffrés sans les déchiffrer. En outre, les processus d'authentification
biométriques peuvent également être utilisés dans ce schéma proposé, cela rendra plus
difficile pour les malveillants de compromettre le système.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 113
1. Conclusion

Cette thèse s'est intéressée aux challenges liés au Cloud Computing et en particulier à la
problématique de la sécurité des données stockées dans les Datacenters du fournisseur du
Cloud. Nous avons étudié la cryptographie ainsi que son utilisation pour la réalisation d'un
stockage de données sécurisé sur serveur. Cette conclusion est l'occasion de rappeler les
différentes contributions de ce mémoire et de donner quelques perspectives pour la recherche
future.

2. Contributions

Dans le premier chapitre, nous sommes focalisés sur le concept du Cloud Computing nous
avons présenté la définition objective et générale de la notion de l’informatique dans le nuage,
Ensuite on a décrit l'architecture du système, le modèle de déploiement et les caractéristiques
essentielles. Nous avons aussi clarifié les conditions, les opportunités et les défis existants
dans son développement, ainsi qu’aux obstacles qui entravent l’adoption de cette nouvelle
solution par les professionnels.

Au deuxième chapitre, nous avons présenté les exigences de la sécurité dans l’architecture
Cloud, les normes et stratégies de la sécurité. Nous avons abordé les stratégies de déploiement
pour les deux importantes catégories d’édition de politiques, et nous avons proposé deux
algorithmes corrects, efficaces et sûrs pour le déploiement de politiques de sécurité. Ensuite,
nous avons proposé notre approche concernant le Load balancing dans le Cloud Computing
permettant de réaliser le partage de charge et d’assurer la disponibilité du service.

Le troisième chapitre met l'accent sur la problématique de la confidentialité des données


stockées dans le Cloud. Nous avons mis en place un modèle qui garantit la confidentialité
des données. Ces données doivent être chiffrées avant d’être envoyé au Cloud. Ce modèle
hybride qui permet de sécuriser les données et de les protéger contre les attaques. Il utilise,
d’une part, l'algorithme de chiffrement symétrique AES afin de bénéficier de ses avantages
en termes de robustesse et de la rapidité de traitement, et d’autre part, l’algorithme de
chiffrement asymétrique RSA/EL GAMAL pour échanger les clés.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 114
Le dernier et quatrième chapitre traite les systèmes de chiffrement Homomorphiques. Nous
avons montré que ces systèmes permettent aux utilisateurs de réaliser des opérations avec le
contenu chiffré dans le Cloud, ce concept fait bénéficier l’utilisateur des forces de calculs du
Cloud et évite les va et vient des données qui a un impact flagrant sur la bande passante et
peut causer la dégradation de la qualité de service d’autres applications métiers. Enfin, nous
avons appliqué ce concept pour réaliser un système de vote électronique sécurisé dans
l’environnement Cloud.

3. Perspectives

Pour la première partie : Compte tenu des limites des firewalls recensées au niveau de la
sécurisation du trafic contre de nouveaux types d’attaques, nous aimerons développer un
système de détection d’intrusions dédié et spécifique au Cloud (IDS) [11b].

Pour la deuxième partie : D'un point de vue théorique, l'un des problèmes majeurs évoque
dans de nombreux articles est de trouver un schéma permettant de sécuriser les données
stockées, et garantissant la confidentialité dans l’environnement Cloud et qui soit IND-CCA
secure dans le modèle standard. Un autre problème est de concevoir des schémas qui
permettent de contrôler l’intégrité des données. Il serait alors intéressant d'étudier la
cryptographie fondée sur les signatures numériques, les empreintes, le hachage..., il est donc
théoriquement envisageable de l'utiliser pour s’assurer que les données ne sont pas altérées.
De cette manière, on pourrait espérer obtenir un schéma qui soit plus efficace.

Pour la troisième partie : le schéma du vote électronique que nous avons proposé s’articule
sur les polynômes. Il pourrait être intéressant de construire un autre schéma basé sur les
nombres premiers atteignant une meilleure sécurité, En outre, les processus d'authentification
biométriques peuvent également être utilisés dans ce schéma proposé, cela rendra plus
difficile pour les malveillants de compromettre le système. Ce sera une perspective
souhaitable d'avoir le résultat d'une application entièrement crypté dans le niveau SaaS de
Cloud.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 115
Annexe 1

1- Fonction main () :

public class Main {

public static void main(String[] args) {

ParametresGlobales fenetre = new ParametresGlobales();



}

2- Fonction informations des candidats :

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class CandidateInformations extends JFrame implements ActionListener{

public CandidateInformations
public void actionPerformed(ActionEvent arg0)

}

3- Fonction serveur (génération des clés et chiffrement/déchiffrement du vote) :

public class Serveur {

static void keyGen()


static void decryption()
static void statistic()
static void traitement()
decryption();
statistic();
resultat fenetre = new resultat();

}

4- Fonction vote du candidat :

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 116
public class UserVote extends JFrame implements ActionListener{

public void encryption(int m)


public UserVote(int numeroVoter)
public void actionPerformed(ActionEvent arg0)

}

5- Fonction Affichage des résultats :

import java.awt.Color;
import java.awt.Font;
import java.text.DecimalFormat;
import javax.swing.*;
public class resultat extends JFrame
public resultat();

}

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 117
[1] A.Kartit, Z.Kartit, M. El Marraki, “Towards a New Algorithm More Efficient for
Updating Firewall Policies”, Journal of Theoretical and Applied Information
Technology), ISSN: 1992-8645, Volume 59, n°2, pages 250–254, 20th January 2014.
(SCOPUS)

[2] Zaid KARTIT., IDRISSI, H. KAMAL, EL MARRAKI, M. et al. IMPROVEMENT


OF ALGORITHM FOR UPDATING FIREWALL POLICIES. Journal of Theoretical
& Applied Information Technology, 2014, vol. 66, no 1. (SCOPUS)

[3] Zaid KARTIT, and Mohamed EL MARRAKI, "Applying Encryption Algorithm to


Enhance Data Security in Cloud Storage," Engineering Letters, vol. 23, no.4, pp277-
282, 2015 (SCOPUS)

[4] Kartit Zaid, Azougaghe Ali, El Marraki Mohammed, “Using Encryption Algorithm
to enhance the Data Security in Cloud storage”, La 5ème édition des Journées
Nationales de la Sécurité (JNS5), IEEE, 07-08 Mai 2015, ENSA Kenitra, Maroc.

[5] Zaid Kartit, Ali Azougaghe, H. Kamal Idrissi, M. El Marraki, M. Hedabou, M.


Belkasmi and A. Kartit “Applying Encryption Algorithm for Data Security in Cloud
storage ”, The International Symposium On Ubiquitous Networking (UNet’15), ISI
Proceedings, Springerlink, DBLP and SCOPUS, 8-10 September 2015, ENSEM,
Casablanca, Morocco.

[6] Zaid Kartit and M. El Marraki, “Sécurisation des données dans un environnement
Cloud ” Journée doctorales 2015, Faculté des sciences de Rabat, Maroc.

[7] Ali Azougaghe, Zaid Kartit, M. Hedabou, M. Belkasmi, M. El Marraki “An efficient
algorithm for data security in Cloud storage” The International Conference on
Intelligent Systems Design and Applications (ISDA 15) 14-16 December,
IEEE,DBLP Marrakesh, Morocco.

[8] Zaid Kartit, Kamal Idrissi Hamza and Mohamed El Marraki “Application des
algorithmes de chiffrements pour sécuriser les données dans un Cloud Computing ”,
Journée URAC'15, 28 novembre 2015 à l'Institut Scientifique, Rabat, Maroc.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 118
[9] Kartit Ali, Kamal Idrissi Hamza and Mohamed Belkhouraf and KARTIT Zaid, “A
secured load balancing architecture for Cloud Computing based on multiple clusters”,
International Conference on Cloud Computing Technologies and Applications
(CLOUDTECH’15), , 2-4 June 2015, Marrakech, Maroc (SCOPUS)

[10a] Zaid KARTIT, M.El Marraki and A.AZOUGAGHE, M.BELKASMI “Towards a


Secure Electronic Voting in Cloud Computing Environment Using Homomorphic
Encryption Algorithm” International Journal of Applied Engineering Volume 10,
Number 16 (2015) pp 36498-36503 (SCOPUS)

[10b] Zaid Kartit and M. El Marraki, “ For an Efficient E-voting system in a Cloud
Environment Using Homomorphic Encryption” Journée doctorales 2016, Faculté des
sciences de Rabat, Maroc.

[11a] Ali AZOUGAGHE, Zaid KARTIT, Mustapha HEDABOU, Mostafa BELKASMI,


Mohamed El Marraki. “An efficient electronic voting system in a Cloud Computing
environment” International Review on Computers and Software (IRECOS) Volume
10, n°11 (SCOPUS)

[11b] Kamal Idrissi, H., Zaid KARTIT, Mohamed El Marraki. “CKMSA: An anomaly
detection process based on K-means and simulated annealing algorithms”
International Review on Computers and Software (IRECOS) SCOPUS, Volume 11,
n°1 2016

[11c] Kartit Zaid, Hamza Kamal Idrissi, El Marraki Mohammed and Kartit Ali, “Network
Issues in Cloud Computing and countermeasures”, La quatrième édition des Journées
Nationales de la Sécurité (JNS4), IEEE, 12-13 Mai 2014, FS Tetuan, Maroc.

[11d] Zaid Kartit and M. El Marraki, “ Security Issues in Cloud Computing and
countermeasures ”Journéedoctorales2014, Faculté des sciences de Rabat, Maroc.

[12] M. Peter and G. Tim. The NIST Definition of Cloud Computing. National Institute of
Standards and Technology, 53(6):50, 2009.

[13] Ian Foster, Yong Zhao, Ioan Raicu, and Shiyong Lu. Cloud Computing and Grid
Computing 360-Degree Compared. In 2008 Grid Computing Environments Workshop,
volume abs/0901.0, pages 1–10. Ieee, Ieee, 2008.

[14] Luis M. Vaquero, Luis Rodero-Merino, Juan Caceres, and Maik Lindner. A break in
the Clouds Towards a Cloud Definition. ACM SIGCOMM Computer Communication
Review, 39(1):50, 2009.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 119
[15] Hassan Rajaei and Jeffrey Wappelhorst. Clouds & grids : a network and simulation
perspective. In Proceedings of the 14th Communications and Networking Symposium,
CNS ’11, pages 143–150. Society for Computer Simulation International, 2011.

[16] DS Kushwaha and A Maurya. Cloud Computing-A Tool For Future. International
Journal Of Mathematics and Computer Research, 1(1) :09–14, 2013

[17] Mohiuddin Ahmed, Abu Sina, Raju Chowdhury, Mustaq Ahmed, and Mahmudul
Hasan Rafee. An Advanced Survey on Cloud Computing and State-of-the-art
Research Issues. IJCSI International Journal of Computer Science Issues, 9(1) :201–
207, 2012.

[18] Lutz Schubert, Keith Jeffery, and Burkhard Neidecker-Lutz. The Future of Cloud
Computing - Opportunities for European Cloud Computing beyond 2010. Technical
report, European Commission, 2010.

[19] Lutz Schubert and Keith Jeffery. Advances in Clouds - Research in Future Cloud
Computing. Technical report, European Commission, 2012.

[20] Peter Mell and Timothy Grance. The NIST Definition of Cloud Computing. Technical
Report 6, National Institute of Standards and Technology, 2011.

[21] Ried, S., Kisker, H., Matzke, P., Bartels, A. and Lisserman, M. Understanding and
quantifying the future of Cloud Computing. Technical report, 2011.

[22] Foster, I. and Kesselman, C. The grid: blueprint for a new Computing infrastructure
Morgan Kaufmann Publishers Inc., 1999.

[23] Vouk, M. A. Cloud Computingissues, research and implementations. Journal of


Computing and Information Technology, 16(2008)235-246.

[24] Yang, Y., Liu, K., Chen, J., Liu, X., Yuan, D. and Jin, H. An Algorithm in SwinDeW-
C for Scheduling Transaction-Intensive Cost-Constrained Cloud Workflows, Proc. of
4th IEEE Int. Conf. on e-Science, pages 374-375, Indianapolis, USA, December 2008.

[25] Armbrust, M., Fox, A., Griffith, R., Joseph, A.D., Katz, R. Konwinski, A., Lee, G.
Patterson, D., Rabkin, A. and Stoi, I. Above the Clouds: A Berkeley View of Cloud
Computing, Technical Report, UCB/EECS-2009-28, UC Berkeley Reliable Adaptive

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 120
Distributed Systems Laboratory, EECS Department, University of California,
Berkeley, February, 2009.

[26] Buyya, R. Yeo, C. S. and Venugopal, S. Market-Oriented Cloud and Atmospheric


Computing : Hype, Reality, and Vision, Proc. of 10th IEEE Int. Conf. on High
Performance Computing and Communications (HPCC-08), 5-13, Dalian, China,
September, 2008.

[27] Wang, L., Tao, J., Kunze, M., Castellanos, A., C. Kramer, D. and Karl, W. Scientific
Cloud Computing : Early Definition and Experience, Proc. of the 10th IEEE Int. Conf.
on High Performance Computing and Communications, pages 825-830, Washington,
DC, USA, September, 2008.

[28] Keke Gai and Saier Li. Towards Cloud Computing : A Literature Review on Cloud
Computing and Its Development Trends. In 2012 Fourth International Conference on
Multimedia Information Networking and Security, pages 142–146. IEEE, 2012.

[29] Robert F Roggio, Tetiana Bilyayeva, and James R Comer. Everyday Cloud Computing
with SaaS. In The 2012 International Conference on Software Engineering Research
and Practice SERP12, 2012.

[30] Shivaji P Mirashe and N V Kalyankar. Cloud Computing. Journal of Computing, 2(3)
:78–82, 2010.

[31] By Armbrust, Rean Griffith, Anthony D Joseph, Randy Katz, Andy Konwinski,
Gunho Lee, David Patterson, and Ariel Rabkin. A view of Cloud Computing.
Communications of the ACM, 53(4) :50–58, 2010.

[32] Michael Armbrust, Anthony D Joseph, Randy H Katz, and David A Patterson. Above
the Clouds : A Berkeley View of Cloud Computing. Technical Report UCB/EECS-
2009-28, EECS Department, University of California, Berkeley, 2009.

[33] Zhang, Y., Sharon X., Hu, D., Chen, Z. Task scheduling and voltage selection for
energy minimization. In: Design Automation Conf., pages 183-188, New Orleans,
Louisiana, USA, June 10-14, 2002,

[34] Wood, T., Shenoy, P., Venkataramani, A., Yousif, M. Black-box and gray-box
strategies for virtual machine migration, Proceedings of the 4th USENIX conference
on Networked systems design & implementation, pages 17-17, Cambridge, MA, April
11-13, 2007.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 121
[35] Hamilton, J. Cooperative expendable micro-slice servers (CEMS): low cost, low
power servers for Internet-scale services, In: Proc of CIDR, 2009.

[36] A. S. N and M. Hemalatha, “An Approach on Semi-Distributed Load Balancing


Algorithm for Cloud Computing System,” Int. J. Comput. Appl., vol. 56, no. 12, pp.
5–10, Oct. 2012.

[37] R. P. Padhy, “Load balancing in Cloud Computing systems,” National Institute of


Technology, Rourkela, 2011.

[38] C. Xu and F. C. Lau, Load Balancing in Parallel Computers: Theory and Practice.
Norwell, MA, USA: Kluwer Academic Publishers, 1997.

[39] A. M. Alakeel, “A guide to dynamic load balancing in distributed computer systems,”


Int. J. Comput. Sci. Inf. Secur., vol. 10, no. 6, pp. 153–160, 2010.

[40] M. M. D. Shah, M. A. A. Kariyani, and M. D. L. Agrawal, “Allocation Of Virtual


Machines In Cloud Computing Using Load Balancing Algorithm,” Int. J. Comput. Sci.
Inf. Technol. Secur. IJCSITS ISSN, pp. 2249–9555, 2013.

[41] Soumya Ray, “Execution Analysis of Load Balancing Algorithms in Cloud


Computing Environment,” Int. J. Cloud Comput. Serv. Archit., vol. 2, no. 5, pp. 1–13,
Oct. 2012.

[42] R. Gupta and R. Bhatia, “An Enhanced and Secure Approach of Load Balancing in
Cloud Computing,” 2014.

[43] M. Dash, A. Mahapatra, and N. R. Chakraborty, “Cost Effective Selection of Data


Center in Cloud Environment,” Int. J. Adv. Comput. Theory Eng. IJACTE, vol. 2, pp.
2319–2526, 2013.

[44] S. S. Moharana, R. D. Ramesh, and D. Powar, “Analysis of load balancers in Cloud


Computing,” Int. J. Comput. Sci. Eng., vol. 2, no. 2, pp. 101–108, 2013.

[45] T. Mathew, K. C. Sekaran, and J. Jose, “Study and analysis of various task scheduling
algorithms in the Cloud Computing environment,” in Advances in Computing,
Communications and Informatics (ICACCI, 2014 International Conference on, 2014,
pp. 658–664

[46] S. Cobb. ICSA Firewall Policy Guide v2.0. Technical report, NCSA Security White
Paper Series, 1997.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 122
[47] C. C. Zhang, M. Winslett, and C. A. Gunter. On the Safety and Efficiency of Firewall
Policy Deployment. In SP ’07: Proceedings of the 2007 IEEE Symposium on Security
and Privacy, pages 33–50,Washington, DC, USA, 2007. IEEE Computer Society.

[51] Juniper Network and Security Manager.


http://www.juniper.net/us/en/local/pdf/datasheets/1100018-en.pdf.

[52] A. Kartit and M. El Marraki “On the Correctness of Firewall Policy Deployment”,
Journal of Theoretical and Applied Information Technology, ISSN: 1817-3195,
Volume 19, n°1, pages 22 – 27, 2010.

[53] M. Englund. Securing systems with host-based firewalls. In Sun BluePrints Online,
September 2001.

[54] T. Mathew, K. C. Sekaran, and J. Jose, “Study and analysis of various task scheduling
algorithms in the Cloud Computing environment,” in Advances in Computing,
Communications and Informatics (ICACCI, 2014 International Conference on, 2014,
pp. 658–664.

[56] ISO/IEC. Iso 7498-2:1989, information processing systems - open systems


interconnection - basic reference model - part 2: Security architecture. Information
Processing Systems – Open Systems Interconnection – Basic Reference Model, 1989.

[57] W. Diffie and M. Hellman. New directions in cryptography, 1976.

[58] R. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital signatures and
public-key cryptosystems. Commun. ACM, 21(2):120–126, 1978.

[59] Xiaoqiang ZHANG, Ning WU, Gaizhen YAN, and Liling DONG, "Hardware
Implementation of Compact AES S-box," IAENG International Journal of Computer
Science, vol. 42, no.2, pp125-131, 2015

[60] R. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital signatures
and public-key cryptosystems. Commun. ACM, 21(2):120–126, 1978.

[61] T Elgamal. A public key cryptosystem and a signature scheme based on discrete
logarithms. Information Theory, IEEE Transactions on, 31(4):469–472, 1985.

[62] S. Kamara and K. Lauter. Cryptographic Cloud storage. In Proceedings of the 14th
international conference on Financial cryptograpy and data security, FC’10,
Berlin, Heidelberg, 2010. Springer-Verlag.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 123
[63] R. Chow, P. Golle, M. Jakobsson, E. Shi, J. Staddon, R. Masuoka, and J. Molina.
Controlling data in the Cloud: outsourcing computation without outsourcing control.
In Proceedings of the 2009 ACM workshop on Cloud Computing security, pages 85–
90. ACM, 2009.

[64] Chen, A., 2010. Google Engineer Stalked Teens, Spied on Chats, Published on
Gawker, september 2010. [Online] http://gawker.com/5637234/gcreep-google-
engineer-stalkedteens- spied-on-chats (accessed 26/08/14).

[65] R.L. Rivest, L. Adleman, and M.L. Dertouzos. On data banks and privacy
homomorphisms. In Foundations on Secure Computation, Academia Press, pages
169–179, 1978.

[66] Joan Feigenbaum and Michael Merritt. Distributed Computing and Cryptography,
volume 2 of DIMACS Series in Discrete Mathematics and Theoretical Computer
Science, chapter Open Questions, Talk Abstracts, and Summary of Discussions, pages
1–45. The American Mathematical Society, 1991.

[67] Shafi Goldwasser and Silvio Micali. Probabilistic encryption & how to play mental
poker keeping secret all partial information. In Proceedings of the fourteenth annual
ACM symposium on Theory of Computing, STOC ’82, pages 365–377, New York,
NY, USA, 1982. ACM.

[68] Taher ElGamal. A public key cryptosystem and a signature scheme based on discrete
logarithms. In GeorgeRobert Blakley and David Chaum, editors, Advances in
Cryptology, volume 196 of LNCS, pages 10–18. Springer Berlin Heidelberg, 1985.

[69] Pascal Paillier. Public-key cryptosystems based on composite degree residuosity


classes. In Proceedings of the 17th international conference on Theory and
application of cryptographic techniques, EUROCRYPT’99, pages 223–238, Berlin,
Heidelberg, 1999. Springer-Verlag.

[70] Carlos Aguilar Melchor, Philippe Gaborit, and Javier Herranz. Additively
homomorphic encryption with d-operand multiplications. In Proceedings of the 30th
annual conference on Advances in cryptology, CRYPTO’10, pages 138–154, Berlin,
Heidelberg, 2010. Springer-Verlag.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 124
[71] Craig Gentry. A Fully Homomorphic Encryption Scheme. PhD thesis, Stanford
University, 2009.

[72] Gentry, C., 2009b. Fully homomorphic encryption using ideal lattices. In: Proceedings
of the 41st Annual ACM Symposium on Symposium on Theory of Computing—
STOCn’09. ACM Press, New York, p. 169.

[73] Van Dijk, M., Gentry, C., Halevi, S., Vaikuntanathan, V., 2010. Fully homomorphic
encryption over the integers. In: Advances in Cryptology—EUROCRYPT 2010,
Springer, Berlin, pp. 24–43.

[74] Gentry, C., Sahai, A., Waters, B., 2013. Homomorphic encryption from learning with
errors: conceptually-simpler, asymptotically-faster, attribute-based. In: Advances in
Cryptology— CRYPTO 2013, Springer, Berlin, pp. 75–92.

[75] Taher ElGamal. A public key cryptosystem and a signature scheme based on discrete
logarithms. IEEE Transactions on Information Theory, 469-472, 1985.

[76] Rebecca Meissen, A Mathematical Approach to Fully Homomorphic Encryption, A


Major Qualifying Project Report Submitted to The Faculty of the Worcester
Polytechnic Institute.

[77] MATEU, Víctor, SEBÉ, Francesc, et VALLS, Magda. Constructing credential-based


e-voting systems from offline e-coin protocols. Journal of Network and Computer
Applications, 2014, vol. 42, p. 39-44.

[78] D. Chaum, Untraceable electronic mail, return addresses, and digital pseudonyms,
Communications of the ACM, (1981), p. 84–88.

[79] C. Park, K. Itoh et K. Kurosawa, All-nothing election scheme and anonymous channel,
EUROCRYPT ’93, (1993), p. 248–269.

[80] B. Pfitzmann, Breaking an efficient anonymous channel, Lecture Notes in Computer


Science, 950 (1995), p. 332–340.

[81] D. Chaum, Blind signatures for untraceable payments, Advances in Cryptology -


Crypto ’82, (1983), p. 199–203.

[82] M. Ohkubo, F. Miura, M. Abe, A. Fujioka et T. Okamoto, An improvement on a


practical secret voting scheme, ISW ’99, (1999), p. 225–234.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 125
[83] T. Okamoto, Receipt-free electronic voting schemes for large scale elections, Security
Protocols Workshop, (1997), p. 25–35.

[84] H. Kikuchiy, J. Akiyamaz, H. Gobio et G. Nakamuraz, stochastic voting protocol to


protect voters privacy, (1998).

[85] MATEU, Víctor, MIRET, Josep M., et SEBÉ, Francesc. A hybrid approach to vector-
based homomorphic tallying remote voting. International Journal of Information
Security, 2015, p. 1-11.
[86] Ibtissem Zaafrani and Michael Bulois, Cryptographie, June 30, 2014

[87] D. Shanks, "Class number. A theory of factorization and genera," in: Proc. Symp. Pure
Math., Vol. 20, AMS (1970), pp. 415-440.

[88] C. C. Zhang, M. Winslett, and C. A. Gunter. On the Safety and Efficiency of Firewall
Policy Deployment. In SP ’07: Proceedings of the 2007 IEEE Symposium on Security
and Privacy, pages 33–50,Washington, DC, USA, 2007. IEEE Computer Society.

[89] HU, Yin. Improving the Efficiency of Homomorphic Encryption Schemes. 2013.
Thèse de doctorat. Virginia Tech.

UNIVERSITÉ MOHAMMED V

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 126
FACULTÉ DES SCIENCES

Rabat

DOCTORAT

Résumé de la Thèse

Discipline : Sciences de l’ingénieur


Spécialité : Informatique et Télécommunications
Laboratoire : Laboratoire de Recherche en Informatique et Télécommunications
(LRIT) associée au CNRST (URAC29)
Responsable du Laboratoire: Mr Driss ABOUTAJEDINE
Période d’accréditation : 2013/2016

Titre de la thèse : Contribution à la sécurité du Cloud Computing : Application des


algorithmes de chiffrements pour sécuriser les données dans le Cloud Storage

Prénom, Nom : Zaid KARTIT

Le Cloud Computing, ou informatique en nuages, a émergé comme un nouveau


paradigme pour offrir des ressources informatiques à la demande et pour externaliser
des infrastructures logicielles et matérielles. De l’autre côté La protection de la vie
privée est un des enjeux majeurs de la société moderne dans laquelle Internet est
omnipotent. La motivation principale de cette thèse est de mettre en place des
solutions à la problématique du stockage dématérialisé qui permettent d’assurer la
protection et la sécurité des données confidentielles. Nous proposons une approche
améliorée pour l’implémentation de la politique de sécurité d’un firewall permettant de
sécuriser le Datacenter d’un Cloud Computing. Ensuite nous donnons une approche
basée sur les algorithmes de chiffrement symétriques (AES) et asymétriques (RSA),
pour sécuriser les données stockées dans des serveurs externes. Enfin, nous appliquons
le concept du système chiffrement homomorphique additif (EL Gamal, Paillier) pour
réaliser un modèle permettant un vote électronique sécurisé en utilisant les
plateformes du Cloud.

Mots-clefs (9): Cloud Computing, Stockage, Sécurité, pare-feu, Politique de sécurité,


Datacenter, Cryptographie, Chiffrement Homomorphiques, Vote électronique.

Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel: 0537 77 18 34/35/38, Fax: 05 37 77 42 61, http://www.fsr.ac.ma 127