Vous êtes sur la page 1sur 9

PKCS

Public Key Cryptography Standards

Rapport de TP

Réalisé Par :

Aymen MAHMOUDI Amphi B G 03

Hamdi KADRI Amphi B G 02


PKCS
“Public Key Cryptgraphic Standards” : Standards Cryptographiques à Clé Publique.

Ensemble de Standards définis par la société RSA Security, sise à Bedford,


Massachussets.

PKCS est la suite du développement et de la promotion de l’algorithme RSA.

Retour sur RSA


• R = RIVEST, Ronald

• S = SHAMIR, Adi

• A = ADLEMAN, Leonard

RSA : Algorithme de Cryptage à Clé Publique, développé par les chercheurs


mentionnées.

Naissance officielle : 1977

Bréveté par le MIT : 1983 jusqu’à 2001

Définition de RSA
RSA : Algorithme asymétrique de cryptographie à clé publique.

Très utilisé pour les applications des commerce électronique et dans les échanges
des données confidentielles.

Fonctionne en trois étapes :

• Création des deux clés (privée et publique)

• Chiffrement du messages

• Déchiffrement du message

Fonctionnement détaillé

Ronald Rivest, Adi Shamir et Leonard Adleman, dans A Method for Obtaining Digital
Signatures and Public-key Cryptosystems, ont publié l'idée d'utiliser les anneaux et le
petit théorème de Fermat pour obtenir des fonctions trappes, ou fonctions à sens
unique à brèche secrète. RSA repose sur le calcul dans les groupes , plus
précisément sur l'exponentiation modulaire. Voici une description des principes
mathématiques sur lesquels repose l'algorithme RSA.

Toutefois, le passage des principes à la pratique requiert de nombreux détails


techniques qui ne peuvent pas être ignorés, sous peine de voir la sécurité du système
anéantie. Par exemple, il est recommandé d'encoder le message en suivant l'OAEP (en
anglais Optimal Asymmetric Encryption Padding).

Création des Clés

Choisir p et q, deux nombres premiers distincts

Noter leur produit, appelé « module de chiffrement » : n=pq

Calculer l'indicatrice d'Euler de n :

Choisir , un entier premier avec , appelé « exposant de chiffrement ».

Comme est premier avec , il est, d'après le théorème de Bachet-Bézout,


inversible , c'est-à-dire qu'il existe un entier tel que . est
l'exposant de déchiffrement.

Le couple est appelé clef publique, alors que le couple est appelé clef privée.
Chiffrement/Déchiffrement

Si est un entier inférieur à représentant un message, alors le message chiffré sera


représenté par

Déchiffrement : Se référer à R. Rivest, A. Shamir, L. Adleman. A Method for Obtaining Digital


Signatures and Public-Key Cryptosystems. Communications of the ACM, Vol. 21 (2), pp.120–
126. 1978

La sécurité de cet algorithme repose sur deux conjectures :

« casser » RSA nécessite la factorisation du nombre n,

la factorisation est un problème difficile, car il n'existe pas d'algorithme suffisamment


rapide. De façon plus précise, les mathématiciens affirment qu'il n'existe pas
d'algorithme ayant une complexité polynomiale en temps qui donne les facteurs
premiers d'un nombre quelconque.

Il est possible que l'une des deux conjectures soit fausse, voire les deux. Si c'est le
cas, alors RSA n'est pas sûr. Cela fait néanmoins maintenant plus de 25 ans que RSA
est cryptanalysé et il n'a pas encore été « cassé ». On peut donc raisonnablement le
considérer comme un algorithme sûr. Cependant si une personne venait à trouver un
moyen « rapide » de factoriser ce nombre n, tous les algorithmes de chiffrement
fondés sur ce principe seraient remis en cause ainsi que toutes les données chiffrées
auparavant à l'aide de ces algorithmes.

En 2005, le plus grand nombre factorisé, en utilisant une méthode de calculs


distribués à la pointe de la technologie, était long de 663 bits. Les clefs RSA sont
habituellement de longueur comprise entre 1024 et 2048 bits. Quelques experts
croient possible que des clefs de 1024 bits seront cassées dans un proche avenir
(bien que ce soit controversé), mais peu voient un moyen de casser des clefs de 4096
bits dans un avenir prévisible. On présume donc que RSA est 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 heures 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 2048 bits.

PKCS de nouveau
RSA Security a développé les PKCS pour permettre à ses clients d’implanter des
solutions de cryptographie à clé publique.

On effet, PKCS ne sont pas vraiment des standards puisque RSA Security n’est pas
un organisme de normalisation.

PKCS exlpose
L’adoption des PKCS par le milieu informatique les a transformé, par les efforts du
groupe du travail PKIX de l’IETF(Internet Engineering Task Force, qui produit les
normes d’internet) en des RFC (Request for Comments, une sorte de document qui
standardise les technologies Internet : tout les standards de Internet sont des RFC,
alors que l’inverse est faux).

PKCS Aujourd’hui
PKCS enveloppe aujourd’hui 15 standards don’t 3 sont obsolètes. Parmi les restants,
6 sont des RFC et 2 sont encore en cours de développement.

Voici alors la liste exhaustive de ces PKCS et leur significations :

PKCS #1 (RFC 3447)


Nom : Standard de Cryptographie RSA.

Rôle : Définit la Cryptographie RSA

Version courante : 2.1

PKCS #2 (Obsolète)
Décrivait le chiffrement RSA des résumés de messages.

A été intégrée au PKCS #1

PKCS #3
Nom : Standard d’échange des clés Diffie – Hellman.

Version courante : 1.4

l'échange de clés Diffie-Hellman, du nom de ses auteurs Whitfield DIFFIE et Martin


HELLMAN, est une méthode par laquelle deux personnes nommées
conventionnellement Alice et Bob peuvent se mettre d'accord sur un nombre (qu'ils
peuvent utiliser comme clé pour chiffrer la conversation suivante) sans qu'une
troisième personne appelée Ève puisse découvrir le nombre en écoutant.
Le concept utilise la notion de groupe multiplicatif avec des entiers (modulo p) avec p
un nombre premier. En gros, les opérations mathématiques (multiplication, puissance,
division) sont utilisées telles quelles mais le résultat doit être divisé par pn pour
obtenir le reste le plus petit ([modulo]). Les groupes ayant la propriété de l'association
des puissances, l'égalite (gb)a [p] = (ga)b [p] est valide et les deux parties obtiennent
bel et bien la même clé secrète.

La sécurité de ce protocole réside dans la difficulté du problème du logarithme discret


: pour que Ève retrouve gab à partir de ga et gb, elle doit élever l'un ou l'autre à la
puissance b ou à la puissance a respectivement. Mais déduire a (resp. b) grâce à ga
[p] (resp. gb [p]) est un problème que l'on ne sait pas résoudre efficacement. Ève est
donc dans l'impossibilité (calculatoire) de déduire gab [p].

Il faut toutefois que le groupe de départ soit bien choisi et que les nombres utilisés
soient suffisamment grands pour éviter une attaque par recherche exhaustive. À
l'heure actuelle, un nombre premier p de l'ordre de 300 chiffres ainsi que a et b de
l'ordre de 100 chiffres sont tout simplement impossibles à casser même avec les
meilleurs algorithmes de résolution du logarithme discret (source ?). Si une solution
pratique pour résoudre un logarithme discret venait à apparaître, d'autres systèmes
cryptographiques pourraient tomber, notamment ElGamal qui repose sur ce principe.

PKCS #4 (Obsolète)
Décrivait la syntaxe de clé RSA, mais a été intégré dans PKCS#1.

PKCS #5 (RFC 2898)


Nom : Standard de chiffrement des mots de passe.

Version courante : 2.0

PKCS #6 (Obsolète)
Définissait les extensions de l'ancienne spécification de certificat X.509 v1.

Dernière version : 1.5

PKCS #7 (RFC 2315)


Nom : Standard de syntaxe de message cryptographique.

Utilisé pour signer et/ou chiffrer des messages dans le cadre d'une infrastructure à
clés publiques. Sert également à la transmission de certificats (notamment en réponse
à un message PKCS#10)

Version courante : 1.5

PKCS #8 (RFC 5208)


Nom : Standard de syntaxe d'information de clé privée.
Utilisé par Apache pour le chargement des clés des certificats privés. Sans cryptage.

Version courante : 1.2

PKCS #9 (RFC 2985)


Nom : Types d’attribus sélectionnées :

Dans les certificats étendus du PKCS #6

Dans les messages signés numériquement du PKCS #7

Dans les informations de clé privée du PKCS #8

Dans les demandes de signature des certificats du PKCS #10

Version courante : 2.0

PKCS #10 (RFC 2986)


Nom : Standard de Requête de Certificat.

Rôle : Définir le format des messages envoyés à une autorité de certification et


demandant la signature d'une paire de clés.

Version courante : 1.7

PKCS #11
Nom : Interface de périphérique cryptographique (cryptoki).

Rôle : Une API définissant une interface générique pour périphérique


cryptographique.

Version courante : 2.20

PKCS #12
Nom : Standard de syntaxe d'information personnelle.

Rôle : Définit un format de fichier généralement utilisé pour stocker la clé privée et le
certificat de clé publique correspondant en les protégeant par un mot de passe.

Version courante : 1.0

PKCS #13 (Phase de Dév.)


Nom : Standard de Cryptographie sur les courbes elliptiques.

En cryptographie, les courbes elliptiques, des objets mathématiques, peuvent être


utilisées pour des opérations asymétriques comme des échanges de clés sur un canal
non-sécurisé ou un chiffrement asymétrique, on parle alors de cryptographie sur les
courbes elliptiques ou ECC (de l'acronyme anglais Elliptic curve cryptography).
L'usage des courbes elliptiques en cryptographie a été suggéré, de manière
indépendante, par Neal Koblitz et Victor Miller en 1985.

Les clés employées pour un chiffrement par courbe elliptique sont plus courtes
qu'avec un système fondé sur le problème de la factorisation comme RSA. De plus
l'ECC procure un niveau de sécurité équivalent ou supérieur aux autres méthodes. Un
autre attrait de l'ECC est qu'un opérateur bilinéaire peut être défini entre les groupes.
Cet opérateur se base sur le couplage de Weil ou le couplage de Tate. Les opérateurs
bilinéaires se sont récemment vus appliqués de nombreuses façons en cryptographie,
par exemple pour le chiffrement basé sur l'identité. Un point négatif est que les
opérations de chiffrement et de déchiffrement peuvent avoir une plus grande
complexité que pour d'autres méthodes.

La résistance d'un système fondé sur les courbes elliptiques repose sur le problème
du logarithme discret dans le groupe correspondant à la courbe elliptique. Les
développements théoriques sur les courbes étant relativement récents, la
cryptographie sur courbe elliptique n'est pas très connue et souffre d'un grand
nombre de brevets qui empêchent son développement.

PKCS #14 (Phase de Dév.)


Nom : Générateur de nombres pseudo-aléatoires.

Très utiles pour la cryptographie et même d’autres domaines, comme la suppression


sécurisée d’un fichier par sur-écriture (Overwriting).

PKCS #15
Nom : Standard de format d'information sur les périphériques cryptographiques.

Rôle : Définit un standard permettant aux utilisateurs de périphériques


cryptographiques de s'identifier auprès des applications, indépendamment de
l'implantation de la cryptoki par l'application (PKCS #11) ou une autre API.

Version courante : 1.1

Qu’apporte le PKCS ?
Comme chaque standard, norme ou spécification, le PKCS offre une organisation et
une rigueur à la sécurité informatique surtout dans le réseau.

Il facilite le développement collaboratif et la compatibilité des application sécurisées.

Il renforce l’algorithme RSA.


I- Améliorer la sécurité
Avec les risques et les dangers d’échange des informations sur Internet, PKCS offre
des commandements, des guidelines pour ne pas créer des failles de sécurité dans le
système d’échange de l’information.

II- Faciliter le développement


Dans des application d’e-commerce ou de réseau militaire ou de recherche, il est
important d’avoir une norme bien définie pour l’intéractions de plusieurs applications
étendues. (Banques, WebStores, Bases de Connaissances, Fournisseurs de Publicité,
etc.)

Une norme permet d’offrir une solution de migration et d’insertion pour tout élément
mentionné ci-dessus.

III- Renforcer RSA


Outre les attaques traditionnelles (comme l’injection des paquets), une
communication utilisant le chiffrement RSA peut subir d’autres attaques spécifiques,
dans certains cas particulers (attaques de Hastad, par chronométrage, de Wiener, par
chiffrement choisi, etc.)

PKCS garantit l’exclusion de ces cas particulier avec chaque Release.

Conclusion
PKCS est aujourd’hui indissociable du Net. Avec le cryptage RSA, il garantit un
maximum pratique de confidentialité.

Malgré la réputation de ses produits comme la Bibliothèque B-SAFE et le ticket


d’identification SecurID, RSA et PKCS sont la plus grande contribution de RSA
Security dans le domaine de l’informatique.

Ressources :
RSA Labs : www.rsa.com/rsalabs/default.asp

IETF : www.ietf.org

Robert Churchhouse : Codes & Ciphers, Cambridge University Press.

Wikipedia : www.wikipedia.org

And Google tells more!

Vous aimerez peut-être aussi