OVH Cloud OVH Cloud

chiffrement assymétrique

7 réponses
Avatar
eric76
bonsoir à tous
existe-t il des possibilité de chiffrement assymétrique n'utilisant
pas la factorisation des grands nombres premiers?
je me pose la question pour le cas ou le problème de la factorisation
des grands nombres premiers serait résolu ,ce qui rendrait caduque
tout le système rsa

7 réponses

Avatar
Roland Le Franc
Tu n'es pas le seul à te poser la question.
Et il y a des réponses: Diffie Hellman (ancien) et ECC/Elliptic
Curves/courbes elliptiques (récent et en vogue) qui sont basés sur le
logarithme discret, i.e. la difficulté d'inverser l'exponentiation
modulo N, qui est une fonction à sens unique.


bonsoir à tous
existe-t il des possibilité de chiffrement assymétrique n'utilisant
pas la factorisation des grands nombres premiers?
je me pose la question pour le cas ou le problème de la factorisation
des grands nombres premiers serait résolu ,ce qui rendrait caduque
tout le système rsa


Avatar
Ludovic FLAMENT
bonsoir à tous
existe-t il des possibilité de chiffrement assymétrique n'utilisant
pas la factorisation des grands nombres premiers?
je me pose la question pour le cas ou le problème de la factorisation
des grands nombres premiers serait résolu ,ce qui rendrait caduque
tout le système rsa


Il y a notamment les courbes elliptiques qui sont de plus en plus
utilisées pour diverses raisons comme le fait que la taille de la clef
est plus petite pour une sécurité équivalente (une clef "ECC" de 160
bits équivaut à une clef RSA de 1024 bits), que les algorithmes "ECC"
sont généralement plus rapide, ...

Tu peux trouver des références aux algorithmes utilisant les courbes
elliptiques dans la documentation du produit que j'ai réalisé ;-)

--
Ludovic FLAMENT
http://ludovic.flament.free.fr


Avatar
pornin
According to eric76 :
existe-t il des possibilité de chiffrement assymétrique n'utilisant
pas la factorisation des grands nombres premiers?


Le chiffrement El-Gamal utilise la difficulté du logarithme discret.
Ça marche comme ça :

Paramètres de clé :
p est un grand nombre premier
q est un nombre premier plus petit, tel que q divise p-1
g est un générateur d'ordre q (2 <= g < p, et g^q = 1 mod p)

Clé privée :
x nombre modulo q (2 <= x < q)

Clé publique :
y = g^x mod p

(Les paramètres de clé peuvent être partagés entre plusieurs personnes
sans problème de sécurité. C'est pour cela qu'on les appelle des
paramètres de clé.)


Soit un message M qu'on a représenté sous la forme d'un entier m
modulo p (0 <= m < p). Pour chiffrer :

On choisit k aléatoire non nul modulo q (0 < k < q).
On calcule :
r = g^k mod p
t = m * y^k mod p
Le message chiffré est composé de r et t.

Pour déchiffrer, on calcule :
t * r^(-x) mod p
ce qui donne m.


Ça, c'est le schéma de base El-Gamal. Il admet de nombreuses variantes.
Il marche en fait sur n'importe quel groupe où l'équivalent du
logarithme discret est difficile. Par exemple sur une courbe elliptique.



À part ça, il y a eu historiquement les systèmes fondés sur les
"sac à dos" mais tous les systèmes vraiment intéressants (du point
de vue performances) ont été cassés. Il reste quelques sac à dos
multiplicatifs, comme le "Naccache-Stern".


NTRU utilise la réduction de réseau. Il y a aussi des propositions avec
la résolution de systèmes quadratiques ("Oil-and-vinegar", HFE...). Et
j'en oublie certainement beaucoup...


je me pose la question pour le cas ou le problème de la factorisation
des grands nombres premiers serait résolu, ce qui rendrait caduque
tout le système rsa


RSA est le seul algorithme de chiffrement assymétrique qui dispose d'un
_standard_ qui est une condition sine qua non pour toute application
pratique de grande ampleur. En effet, les descriptions mathématiques,
c'est bien, mais au moment d'implémenter, il faut savoir exactement où
va chaque octet. Si ces conventions ne sont pas prises et acceptées
universellement, il n'y a pas d'interopérabilité qui tienne.

Un tel standard existe pour RSA parce que RSA Labs (enfin, la boîte
fondée par Rivest, Shamir et Adleman) s'est auto-proclamée "éditrice
de standards" et a pondu les "PKCS", gratuitement et de son propre
chef, il y a une quinzaine d'années. Les PKCS sont le standard requis
par l'industrie. Ceci explique le fait que RSA soit partout, bien que
d'autres systèmes de chiffrement asymétrique existent depuis quasiment
aussi longtemps (El-Gamal, par exemple).

Si RSA était cassé sans espoir de réparation, il y aurait une petite
période de flottement, le temps que de nouveaux standards soient écrits,
avec d'autres algorithmes.


Notons que dans le cas des algorithmes de signature, il existe un autre
algorithme, utilisant le logarithme discret, qui a un standard clair et
net : DSS. DSS est d'ailleurs une variante de El-Gamal.

Dans tout cela, j'ai aussi ignoré Diffie-Hellman, qui n'est pas un
système de chiffrement asymétrique mais d'échange de clé (on peut le
voir comme un chiffrement où on ne choisit pas ce qu'on chiffre). Pour
beaucoup d'usages, l'échange de clé suffit (par exemple SSL).


--Thomas Pornin

Avatar
Ludovic FLAMENT
Thomas Pornin wrote:


RSA est le seul algorithme de chiffrement assymétrique qui dispose d'un
_standard_ qui est une condition sine qua non pour toute application
pratique de grande ampleur. En effet, les descriptions mathématiques,
c'est bien, mais au moment d'implémenter, il faut savoir exactement où
va chaque octet. Si ces conventions ne sont pas prises et acceptées
universellement, il n'y a pas d'interopérabilité qui tienne.

Un tel standard existe pour RSA parce que RSA Labs (enfin, la boîte
fondée par Rivest, Shamir et Adleman) s'est auto-proclamée "éditrice
de standards" et a pondu les "PKCS", gratuitement et de son propre
chef, il y a une quinzaine d'années. Les PKCS sont le standard requis
par l'industrie. Ceci explique le fait que RSA soit partout, bien que
d'autres systèmes de chiffrement asymétrique existent depuis quasiment
aussi longtemps (El-Gamal, par exemple).


Bonjour,

A signaler quand même : la technologie ECC a été elle aussi supportée
par la boite de Mr Scott A. Vanstone, aka Certicom depuis 1985. Tout
comme RSA Security Inc., ils ont eu aussi déposé des brevets sur leur
technologie. Tout comme RSA Security Inc. (mais un peu plus tard il faut
l'avouer), ils ont eux aussi participé à un effort de standardisation
avec la création du SECG "Standards for Efficient Cryptography Group".
Des algorithmes comme ECDSA, ECDH ou ECMQV ont par la suite été
standardisés par le NIST, ANSI and IEEE (Certes, certains de ces algos
sont toujours protégés par des brevets ... tout comme RSA l'a été
jusqu'en 2000).
A noter aussi que les technologies ECC ont récemment été adoptées par
des entreprises comme Research In Motion, Unysis ou même NSA.
Je ne suis pas un expert en implémentation crypto ... Les documents du
SECG sont-ils aussi pertinents que les PKCS ? Sinon est ce le fait d'une
tardive apparition des standards qui a fait que ECC tarde a être
implémentée en industrie ?

Tibo


Même si les documents SECG ne sont pas aussi pertinents (dans le sens
reconnus), les algorithmes utilisant les courbes elliptiques sont
standardisés par l'IEEE (standard P1363-2000), qui est une source reconnue.

Ce qui fait que les ECC tarde à être utilisé dans l'industrie est, pour
moi, le simple fait que depuis plus de 15 ans les entreprises utilisent
quasi exclusivement le RSA comme algorithme de chiffrement et de
signature (le DSA est peut utilisé). Cela a pour conséquence, que tous
les produits du marché (navigateurs, serveurs web, clients mails, ...)
sont compatibles entre-eux et tous les protocoles (IPSEC, SSL,...)
utilisent le RSA.
Il faut noter qu'effectivement les bonnes compatibilités des produits
proviennent de la reconnaissance des PKCS en terme de "référence
d'implémentation".

Utiliser les ECC impliquent l'implémentation des algorithmes dans les
produits et protocoles (cette démarche est en cours depuis un moment
mais demande du temps et de l'argent). C'est pour cela que tant que le
RSA ne montrera pas ses limites (sécurité, ressources nécessaires, ...),
il restera massivement utilisé (ne serait-ce que pour la compatibilité
avec un produit existant).

Mais cela n'empêche pas, dans le cadre du développement de nouveau
produit, de se poser la question sur l'utilisation des ECC à la place du
RSA !

--
Ludovic FLAMENT
http://ludovic.flament.free.fr



Avatar
Fabrice Bacchella
On Thu, 20 Jan 2005 09:17:25 +0100, Ludovic FLAMENT
wrote:
Il y a notamment les courbes elliptiques qui sont de plus en plus
utilisées pour diverses raisons comme le fait que la taille de la clef
est plus petite pour une sécurité équivalente (une clef "ECC" de 160
bits équivaut à une clef RSA de 1024 bits), que les algorithmes "ECC"
sont généralement plus rapide, ...


Je vais peut-être dire une connerie, mais les courbes elliptique,
c'est pas une autre façon de faire des calculs entiers, avec des algos
de chiffrement standard ? Style RSA.

Avatar
Ludovic FLAMENT
On Thu, 20 Jan 2005 09:17:25 +0100, Ludovic FLAMENT
wrote:

Il y a notamment les courbes elliptiques qui sont de plus en plus
utilisées pour diverses raisons comme le fait que la taille de la clef
est plus petite pour une sécurité équivalente (une clef "ECC" de 160
bits équivaut à une clef RSA de 1024 bits), que les algorithmes "ECC"
sont généralement plus rapide, ...



Je vais peut-être dire une connerie, mais les courbes elliptique,
c'est pas une autre façon de faire des calculs entiers, avec des algos
de chiffrement standard ? Style RSA.


En fait c'est vrai et faux à la fois. Les courbes elliptiques peuvent
être effectivement vue comme un groupe particulier dans lequel on
effectue des calculs entiers (cas des courbes définies sur GF(p) avec p
premier). Mais ce n'est pas le seul cas, on peut également définir des
courbes elliptiques sur GF(2^m) et dans ce cas les calculs se font avec
des polynômes à coefficient entier.

Il est à noter que seul les algorithmes basés sur le problème du
logarithme discret (dont ne fait pas parti RSA qui est basé sur le
problème de la factorisation de grands nombres) peuvent être transposés
dans une "version" courbes elliptiques. C'est par exemple le cas pour
l'authentification Diffie-Hellman, l'algorithme de signature DSA,...

Ce qui fait également l'intérêt du "groupe" courbes elliptiques est que
le problème du logarithme discret est plus rapidement complexe.

--
Ludovic FLAMENT
http://ludovic.flament.free.fr

Tél : 06 98 41 67 21


Avatar
Jean-Marc Desperrier
Ludovic FLAMENT wrote:
Ce qui fait que les ECC tarde à être utilisé dans l'industrie est,
pour moi, le simple fait que depuis plus de 15 ans les entreprises
utilisent quasi exclusivement le RSA comme algorithme de chiffrement et
de signature (le DSA est peut utilisé).


Aussi le fait d'essayer de protéger la techno avec des brevets.

Par exemple, la librairie crypto NSS (utilisée dans Firefox, OpenOffice)
comporte une implémentation complète des ECC, mais qui n'est pas
compilée par défaut et donc pas disponible dans les binaires des
produits précédents, à cause de ce problème là.

RSA avait fait la même chose en terme de brevets, mais a eu l'énorme
avantage d'être les premiers. Protéger avec des brevets n'a géné qu'un
peu RSA car il n'y avait pas trop de choix plausible ailleurs, mais gène
beaucoup plus le déploiement des solutions SECG.