OVH Cloud OVH Cloud

temps d'exécution du AES et du RSA

38 réponses
Avatar
kabina
Bonjour,

j'ai calculé les différents temps d'exécution des algorithmes AES et RSA et voici ce que j'ai obtenu:

AES 128 bits de clé, 2,58 Mo de fichier à chiffrer avec un temps de 203 ms
AES 128 bits de clé, 9,16 Mo de fichier à chiffrer avec un temps de 500 ms et RAM utilisé 21695k

RSA 2048 bits de clé, 2,58 Mo de fichier à chiffrer avec un temps de 21621 ms et RAM 8590 k
RSA 2048 bits de clé, 9,16 Mo de fichier à chiffrer avec un temps de 74583 ms et RAM 22665 k

notez que je calcule juste le temps de l'opération de chiffrement et pas les entrées/sorties(lecture du fichier à chiffré et enregistrement du fichier chiffré) ni la récupération des certificat .cer et .p12 (clé publique et clé privée)

A votre avis est ce que c'est cohérent !!!!

merci à vous et bonne soirée.

10 réponses

1 2 3 4
Avatar
Mehdi Tibouchi
Sylvain SF wrote in message <4a35551c$0$17747$:

Les deux sont des permutations pseudo-aléatoires (enfin, pour le textbook
RSA ce n'est pas vrai mais passons), donc si, la comparaison a un sens.



AES est une permutation déterministe et RSA un calcul numérique.
je ne comprends pas votre résumé.



Savez-vous ce qu'est une permutation pseudo-aléatoire ? Si oui, je ne
comprends pas ce que vous ne comprenez pas. Sinon, Wikipedia devrait
répondre à votre question.

Après tout, on pourrait se demander pourquoi on n'utilise pas RSA aussi
pour faire du chiffrement symétrique avec les deux parties partageant une
même clef secrète.



"clef secrète" signifiant "algo. symétrique", je ne me demande pas
pourquoi on n'utilise pas RSA.



Je pense que vous voyez très bien de quelle façon on peut utiliser RSA
comme algorithme de chiffrement symétrique par blocs. Il y a plusieurs
bonnes raisons pour ne pas le faire, et l'une d'entre elle est le temps
de calcul, mais je ne vois pas le mal qu'il y aurait à essayer pour s'en
rendre compte.

je n'ai pas une généralité de 65537, je l'ai indiqué comme conséquence
à l'hypothèse (non confirmée par le PO) du traitement par une clé
*publique*, si le PO avait utilisé un exposant privé "long" (de l'ordre
de 2048 bits) pour son calcul, il n'aurait pas mis 74 sec pour traiter
10Mo mais plutôt une durée proche de l'heure!
ceci relativisant également la portée de la dite comparaison.



Il n'y a pas de différence entre un chiffrement par une clef publique
aléatoire et un déchiffrement par une clef privée également aléatoire. Et
on peut parfaitement faire en sorte que l'une ou l'autre soit petite (et
si l'on n'a pas étudié précisément le problème, les deux sont de
mauvaises idées).
Avatar
kabina
Sylvain SF a écrit le 14/06/2009 à 22h17 :
kabina a écrit :




Je n'arrive pas à ne pas citer tout le texte dites moi comment vous
faites.




ben on le sélectionne et on l'efface, tout simplement.
(sauf si vous postez depuis une page ouèbe qui l'empêche peut
être).

Je persiste et je suis signe que je fais une comparaison en terme de VITESSE
et
stop entre AES et RSA.




c'était clair.

Dans ce petit exercice, Je n'utilise pas le RSA pour la signature mais bien
même s'il n'est pas recommander pour le chiffrement. Alors pourquoi je
fais ceci
et bien parce que dans le cours on a vu le chiffrement symétrique avec
ses
avantages et ses inconvénients (comme le transfert de la clé
secrète ).




c'est un inconvénient, mais il existe des solutions pour chaque type
d'usage.

en effet vous n'utilisez pas la signature (lire la clé privée)
pourtant
votre exemple / comparaison devrait inclure le déchiffrement par le
destinataire, celui-ci réalisera un calcul tout à fait
équivalent à
une génération de signatures - soit un temps de calcul de 50
à 100 fois
plus important que le chiffrement avec la clé publique.

les raisons pour lesquelles la crypto asymétrique à vu le jour
c'est de trouver
une solution à ce problème de transfert d'où clé
publique clé privée or tout
n'est pas parfait parmi les inconvénients du RSA il y a le temps de
chiffrement.




euh non, la crypto. asymétrique n'est pas née pour
répondre au transfert
de clé secrètes, mais elle (dont le RSA) s'y prète assez
bien.

Finalement on a compris qu'il serai mieux de combiner les deux avec la
clé
symétrique chiffrement du message ensuite avec RSA chiffrement de la
clé
symétrique




c'est en effet comme cela que fonctionne 100% des systèmes (y compris
SSL, y compris échange inter-serveurs, ...).
la clé symétrique est un simple aléa qui est
communiqué au destinataire
"wrappé" (chiffré) par sa clé publique.

tout ce qui vient d'être dit je souhaite le réaliser moi
même donc chiffré un
texte avec AES et avec RSA et sortir avec la conclusion que le mieux c'est de
combiner les deux.




le "mieux" dépends de l'opération exacte et des
contraintes externes;
en ce sens il n'y avait pas de véhémence mais il n'y a pas non
plus
de prosélytisme pour un couplage systématique.

si vous souhaitez protéger des informations "courtes" (un
fichier d'un
centaine d'octets) vous pouvez tout à fait le chiffrer directement avec
votre clé publique; si, autre cas, le stockage de la clé RSA
privée
(qui mérite au moins autant d'attention que celui d'une clé
secrète
partagée) ne peut pas être garanti ou encore si le calcul par
clé privé
ne peut pas être fait (un PC le fait sans problème, un win-phone
un peu
moins aisément), la clé symétrique peut aussi être
généré à partir d'un
mot de passe (Cf crypto dite "PBE" (password based encryption)), elle
n'est alors plus directement partagée mais
regénérée.

Sylvain.


"les raisons pour lesquelles la crypto asymétrique à vu le jour
c'est de trouver
une solution à ce problème de transfert d'où clé
publique clé privée or tout
n'est pas parfait parmi les inconvénients du RSA il y a le temps de
chiffrement.
euh non, la crypto. asymétrique n'est pas née pour
répondre au transfert
de clé secrètes, mais elle (dont le RSA) s'y prète assez
bien."

j'ai pas dit les raisons j'ai dit parmi les raisons.

"c'est un inconvénient, mais il existe des solutions pour chaque type
d'usage."

bien évidement .

"en effet vous n'utilisez pas la signature (lire la clé privée)
pourtant
votre exemple / comparaison devrait inclure le déchiffrement par le
destinataire, celui-ci réalisera un calcul tout à fait
équivalent à
une génération de signatures - soit un temps de calcul de 50
à 100 fois
plus important que le chiffrement avec la clé publique."

je ne pense pas parce que dans mon exemple le destinataire déchiffre avec sa clé privée le texte chiffré en entier alors que dans une signature l'émetteur chiffre avec sa clé privée l'empreinte digital.

merci à vous
Avatar
Sylvain SF
kabina a écrit :

je ne pense pas parce que dans mon exemple le destinataire déchiffre avec sa
clé privée le texte chiffré en entier alors que dans une signature l'émetteur
chiffre avec sa clé privée l'empreinte digital.



?!? dans votre exemple vous chiffrez 2,58 ou 9,16 Mo avec la clé
publique, si ces data n'ont pas vocation a être déchiffré par
quelqu'un autant ne pas les chiffrer.

pour une signature, il ne signera que "l'empreinte" en effet,
celle-ci sera courte (160, 256, au pire 256 bits) et résulte d'un
calcul "one-way" ayant (en moyenne) des performances comparables
à un cipher symétrique.

Sylvain.
Avatar
Sylvain SF
Mehdi Tibouchi a écrit :
Sylvain SF wrote in message <4a35551c$0$17747$:
Les deux sont des permutations pseudo-aléatoires (enfin, pour le textbook
RSA ce n'est pas vrai mais passons), donc si, la comparaison a un sens.


AES est une permutation déterministe et RSA un calcul numérique.
je ne comprends pas votre résumé.



Savez-vous ce qu'est une permutation pseudo-aléatoire ? Si oui, je ne
comprends pas ce que vous ne comprenez pas. Sinon, Wikipedia devrait
répondre à votre question.



oui je sais ce que sais. par contre (je répète) je ne comprends
pas le but de cette remarque (de cette porte ouverte); de votre
complément je dois peut être comprendre que je peux googler 3000
réponses possibles ou wikipédier à loisir pour essayer de donner
un sens à votre texte; désolé mais je n'ai pas envie (le temps)
de jouer.

Après tout, on pourrait se demander pourquoi on n'utilise pas RSA aussi
pour faire du chiffrement symétrique avec les deux parties partageant une
même clef secrète.


"clef secrète" signifiant "algo. symétrique", je ne me demande pas
pourquoi on n'utilise pas RSA.



Je pense que vous voyez très bien de quelle façon on peut utiliser RSA
comme algorithme de chiffrement symétrique par blocs. Il y a plusieurs
bonnes raisons pour ne pas le faire, et l'une d'entre elle est le temps
de calcul, mais je ne vois pas le mal qu'il y aurait à essayer pour s'en
rendre compte.



pourquoi jouez-vous à l'avocat d'une cause jamais mise en question ?
personne n'a indiqué qu'il était mal de ci ou ça.

Il n'y a pas de différence entre un chiffrement par une clef publique
aléatoire et un déchiffrement par une clef privée également aléatoire.



pas de différence algorithmique ? certes, juste une différence
de temps de calcul.

on peut parfaitement faire en sorte que l'une ou l'autre soit petite (et
si l'on n'a pas étudié précisément le problème, les deux sont de
mauvaises idées).



vous pouvez faire en sorte d'avoir un exposant privé de 17 bits et un
exp. public de 2048 bits, si cela vous chante; cela ne changera rien
au fait que les temps de calcul utilisant l'un ou l'autre exposant
seront très différents et qu'une opération de chiffrement/déchiffrement
ne peux pas être évaluer avec le seul calcul le moins lourd.

Sylvain.
Avatar
Mehdi Tibouchi
Sylvain SF wrote in message <4a35689c$0$12640$:

Savez-vous ce qu'est une permutation pseudo-aléatoire ? Si oui, je ne
comprends pas ce que vous ne comprenez pas. Sinon, Wikipedia devrait
répondre à votre question.



oui je sais ce que sais.



Alors vous savez que, pour une clef aléatoire, AES, comme tout bon block
cipher, cherche à être une permutation pseudo-aléatoire. Le premier
résultat qui distingue, de manière très théorique, AES d'une permutation
aléatoire a d'ailleurs été annoncé seulement très récemment.

RSA n'est pas une permutation pseudo-aléatoire, mais ce n'est pas
complètement immédiat, et si l'on rajoute un padding, on s'en rapproche
beaucoup.

Il n'y a pas de différence entre un chiffrement par une clef publique
aléatoire et un déchiffrement par une clef privée également aléatoire.



pas de différence algorithmique ? certes, juste une différence
de temps de calcul.



« Aléatoire », ici, signifie en particulier que la clef publique et la
clef secrète font toutes les deux essentiellement 2048 bits. C'est la
bonne façon d'utiliser RSA quand on veut que les preuves de sécurité
s'appuyant sur la difficulté du problème RSA standard s'appliquent.
Avatar
kabina
Sylvain SF a écrit le 14/06/2009 à 22h53 :
kabina a écrit :

je ne pense pas parce que dans mon exemple le destinataire déchiffre
avec sa
clé privée le texte chiffré en entier alors que dans une
signature l'émetteur
chiffre avec sa clé privée l'empreinte digital.




?!? dans votre exemple vous chiffrez 2,58 ou 9,16 Mo avec la clé
publique, si ces data n'ont pas vocation a être déchiffré
par
quelqu'un autant ne pas les chiffrer.

pour une signature, il ne signera que "l'empreinte" en effet,
celle-ci sera courte (160, 256, au pire 256 bits) et résulte d'un
calcul "one-way" ayant (en moyenne) des performances comparables
à un cipher symétrique.

Sylvain.


"?!? dans votre exemple vous chiffrez 2,58 ou 9,16 Mo avec la clé
publique, si ces data n'ont pas vocation a être déchiffré
par
quelqu'un autant ne pas les chiffrer."

je pense que vous avez mal lu ce que j'ai écris, il y a difference entre

"je ne pense pas que dans mon exemple le destinataire déchiffre avec sa
clé privée le texte chiffré en entier"

qui veut bien dire que le destinataire ne déchiffre pas avec sa clé privé, et ce que moi j'ai écris:

"je ne pense pas parce que dans mon exemple le destinataire déchiffre avec sa clé privée le texte chiffré en entier"

pour expliquer qu'il déchiffre tout le texte contrairement à la signature.

merci à vous
Avatar
Sylvain SF
kabina a écrit :

"je ne pense pas parce que dans mon exemple le destinataire déchiffre avec sa
clé privée le texte chiffré en entier"



ok, mal lu (ça commence à être en effet fatiguant à lire cette purée
giganews).

donc il déchiffrera l'ensemble par bloc de 256 octets pour récupérer
248 octets de clair à la fois, et cela lui prendra une heure (retour
à mon post n - 3).

pour expliquer qu'il déchiffre tout le texte contrairement à la signature.



"contrairement à une signature" ou RSA ignore complètement ce
qu'était le message d'origine et sa taille ?!???
vous avez raison c'est tout contraire.

Sylvain.
Avatar
kabina
Sylvain SF a écrit le 14/06/2009 à 21h53 :
Mehdi Tibouchi a écrit :
Sylvain SF wrote in message <4a352b95$0$12617$:
je n'ai pas parlé (non plus) de jugement subjectif de valeur.
j'ai dit que la comparaison n'a pas de sens




Les deux sont des permutations pseudo-aléatoires (enfin, pour le
textbook
RSA ce n'est pas vrai mais passons), donc si, la comparaison a un sens.




AES est une permutation déterministe et RSA un calcul numérique.
je ne comprends pas votre résumé.

Après tout, on pourrait se demander pourquoi on n'utilise pas RSA aussi
pour faire du chiffrement symétrique avec les deux parties partageant
une
même clef secrète.




"clef secrète" signifiant "algo. symétrique",
je ne me demande pas
pourquoi on n'utilise pas RSA.

J'ai un peu de mal à comprendre la véhémence avec
laquelle a été
accueillie cette question. Il est vrai que de prime abord elle méritait
une clarification, mais sachant qu'elle a été apportée,
c'est bon, on a
compris qu'il s'agissait juste d'un exercice à vocation
pédagogique.




j'ai un peu de mal à voir où il y aurait une
véhémence.

Au passage, je trouve inquiétante l'idée qu'un chiffrement RSA,
c'est
forcément avec un exposant de 2 ou 3 bits. Je sais bien que certaines
normes imposent e = 3 ou 65537, mais merci de ne pas en faire une règle
générale (RSA avec petit exposant public a des faiblesses
notoires que
n'a pas RSA avec exposant public aléatoire).




je n'ai pas une généralité de 65537, je l'ai
indiqué comme conséquence
à l'hypothèse (non confirmée par le PO) du traitement par
une clé
*publique*, si le PO avait utilisé un exposant privé
"long" (de l'ordre
de 2048 bits) pour son calcul, il n'aurait pas mis 74 sec pour traiter
10Mo mais plutôt une durée proche de l'heure!
ceci relativisant également la portée de la dite comparaison.

Sylvain.


"je n'ai pas une généralité de 65537, je l'ai
indiqué comme conséquence
à l'hypothèse (non confirmée par le PO) du traitement par
une clé
*publique*, si le PO avait utilisé un exposant privé
"long" (de l'ordre
de 2048 bits) pour son calcul, il n'aurait pas mis 74 sec pour traiter
10Mo mais plutôt une durée proche de l'heure!
ceci relativisant également la portée de la dite comparaison."

j'ai téléchargé un certificat d'une pki taille de la clé 2048 bits
Avatar
Sylvain SF
Mehdi Tibouchi a écrit :

« Aléatoire », ici, signifie en particulier que la clef publique et
la clef secrète font toutes les deux essentiellement 2048 bits.



c'est un jeu ou tu sais (pense savoir) de quoi tu parles ??

le terme "clé secrète" n'a aucun sens ici, c'est une clé
privée.

l'exposant publique ('e' habituellement) doit satisfaire
GCD(p - 1, e) == 1 cette condition est d'autant plus dure
à satisfaire que e est grand, à moins que e ne soit premier
mais tu n'incluais pas cette hypothèse.


C'est la
la bonne façon d'utiliser RSA quand on veut que les preuves de sécurité
s'appuyant sur la difficulté du problème RSA standard s'appliquent.



j'ai juste quelque doutes sur ce que tu pourrais penser être
"une bonne façon" ...
je vois bien un "problème RSA standard" résultant du choix de
p et q - qui eux sont de tailles comparables - mais moins
du choix de e (on évitera quand même de choisir 1 pour donner
en clair ce que l'on croyait chiffré), peux-tu détailler ton
affirmation ?

Sylvain.
Avatar
Mehdi Tibouchi
Sylvain SF wrote in message <4a35924c$0$12637$:

c'est un jeu ou tu sais (pense savoir) de quoi tu parles ??



Non, oui.

l'exposant publique ('e' habituellement) doit satisfaire
GCD(p - 1, e) == 1 cette condition est d'autant plus dure
à satisfaire que e est grand, à moins que e ne soit premier
mais tu n'incluais pas cette hypothèse.



L'exposant e est choisi aléatoire parmi les nombres _premiers à phi(N)_
entre 2 et phi(N). Ce n'est pas une condition compliquée à réaliser, et
elle n'est pas spécialement plus dure à satisfaire pour e grand. Ce n'est
pas elle qui va prendre le plus de temps pendant la génération de clef.

je vois bien un "problème RSA standard" résultant du choix de p et q -
qui eux sont de tailles comparables - mais moins du choix de e (on
évitera quand même de choisir 1 pour donner en clair ce que l'on
croyait chiffré), peux-tu détailler ton affirmation ?



Le problème RSA pour e (ou d) petit est, selon toute vraisemblance, plus
simple à résoudre que RSA pour e et d aléatoires. Les schémas de
chiffrement ou de signature dont la sécurité prouvée repose sur la
difficulté du problème RSA standard supposent en général e distribué
aléatoirement pour que la réduction fonctionne (cf. par exemple
les papiers de Hohenberger et Waters cette année).
1 2 3 4