Bonjour,
J'ai implémenté un programme de chiffrement XOR simple.
- lecture du fichier message
-lecture du fichier clé
-chiffrement XOR (^)
-écriture dans le fichier chiffrement
j'ai testé mon algorithme sur une clé de 8 caractère (donc 64 bits) avec un texte de 500ko
est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!! presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je précis que le programme chiffre et déchiffre correctement.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thomas Pornin
According to kabina :
presque 30min pour un algorithme qu'on dit rapide. est ce normal??
Un processeur Intel genre Pentium ou suivant de base peut faire un XOR bit-à-bit sur un mot de 32 bits en un demi-cycle d'horloge (i.e. il peut en faire deux par cycles). Les variantes récentes (les Intel Core-truc et les AMD équivalents) pourraient en faire six par cycle. Mettons quatre par cycle. Pour 500 Ko, ça fait 125000 mots de 32 bits, donc environ 31000 cycles d'horloge. Si ça prend 1500 secondes, alors ça veut dire que votre PC est cadencé à 20 Hz. Si c'est vraiment le cas, alors chapeau, parce que c'est le genre de cadence qu'on avait avant 1950 ; c'est plus d'un _milliard_ de fois plus lent que ce qu'un banal PC-de-la-FNAC fait par défaut, et, plus significatif, c'est un million de fois plus lent que la cadence minimale à laquelle le processeur est censé pouvoir tourner en mode d'économie d'énergie maximale.
Donc il y a un bug quelque part.
De toutes façons, le XOR lui-même est censé être plus rapide que le simple fait d'amener les données au processeur, donc même si le fichier est entièrement en RAM (cache disque), la vitesse du XOR sera celle de la lecture du fichier. Cette remarque est valide pour beaucoup d'algorithmes de chiffrement. Mon PC peut faire de l'AES à environ 128 Mo/s sur un seul de ses quatre coeurs, alors que le disque plafonne à 105 Mo/s. Ne parlons même pas du réseau, c'est du 100baseT, donc à peine mieux que 10 Mo/s.
Mais 500 Ko en 30 minutes pour lire un fichier, c'est plus que misérable, c'est inquiétant. C'est comme si Kennedy avait demandé à la NASA une fusée lunaire et que la NASA avait livré un skateboard. Donc XOR ou pas, c'est fort louche. M'est avis que votre code est moult buggué.
je précis que le programme chiffre et déchiffre correctement.
(Précisons tout de même que le chiffrement par XOR avec une clé de taille fixe, c'est connu pour être bien faible ; Edgar A. Poe, auteur bien connu, les cassait à la main il y a plus d'un siècle.)
--Thomas Pornin
According to kabina <kabina@domain-xyz.in>:
presque 30min pour un algorithme qu'on dit rapide. est ce normal??
Un processeur Intel genre Pentium ou suivant de base peut faire un XOR
bit-à-bit sur un mot de 32 bits en un demi-cycle d'horloge (i.e. il peut
en faire deux par cycles). Les variantes récentes (les Intel Core-truc
et les AMD équivalents) pourraient en faire six par cycle. Mettons
quatre par cycle. Pour 500 Ko, ça fait 125000 mots de 32 bits, donc
environ 31000 cycles d'horloge. Si ça prend 1500 secondes, alors ça veut
dire que votre PC est cadencé à 20 Hz. Si c'est vraiment le cas, alors
chapeau, parce que c'est le genre de cadence qu'on avait avant 1950 ;
c'est plus d'un _milliard_ de fois plus lent que ce qu'un banal
PC-de-la-FNAC fait par défaut, et, plus significatif, c'est un million
de fois plus lent que la cadence minimale à laquelle le processeur est
censé pouvoir tourner en mode d'économie d'énergie maximale.
Donc il y a un bug quelque part.
De toutes façons, le XOR lui-même est censé être plus rapide que le
simple fait d'amener les données au processeur, donc même si le fichier
est entièrement en RAM (cache disque), la vitesse du XOR sera celle de
la lecture du fichier. Cette remarque est valide pour beaucoup
d'algorithmes de chiffrement. Mon PC peut faire de l'AES à environ
128 Mo/s sur un seul de ses quatre coeurs, alors que le disque plafonne
à 105 Mo/s. Ne parlons même pas du réseau, c'est du 100baseT, donc
à peine mieux que 10 Mo/s.
Mais 500 Ko en 30 minutes pour lire un fichier, c'est plus que
misérable, c'est inquiétant. C'est comme si Kennedy avait demandé à la
NASA une fusée lunaire et que la NASA avait livré un skateboard. Donc
XOR ou pas, c'est fort louche. M'est avis que votre code est moult
buggué.
je précis que le programme chiffre et déchiffre correctement.
(Précisons tout de même que le chiffrement par XOR avec une clé de
taille fixe, c'est connu pour être bien faible ; Edgar A. Poe, auteur
bien connu, les cassait à la main il y a plus d'un siècle.)
presque 30min pour un algorithme qu'on dit rapide. est ce normal??
Un processeur Intel genre Pentium ou suivant de base peut faire un XOR bit-à-bit sur un mot de 32 bits en un demi-cycle d'horloge (i.e. il peut en faire deux par cycles). Les variantes récentes (les Intel Core-truc et les AMD équivalents) pourraient en faire six par cycle. Mettons quatre par cycle. Pour 500 Ko, ça fait 125000 mots de 32 bits, donc environ 31000 cycles d'horloge. Si ça prend 1500 secondes, alors ça veut dire que votre PC est cadencé à 20 Hz. Si c'est vraiment le cas, alors chapeau, parce que c'est le genre de cadence qu'on avait avant 1950 ; c'est plus d'un _milliard_ de fois plus lent que ce qu'un banal PC-de-la-FNAC fait par défaut, et, plus significatif, c'est un million de fois plus lent que la cadence minimale à laquelle le processeur est censé pouvoir tourner en mode d'économie d'énergie maximale.
Donc il y a un bug quelque part.
De toutes façons, le XOR lui-même est censé être plus rapide que le simple fait d'amener les données au processeur, donc même si le fichier est entièrement en RAM (cache disque), la vitesse du XOR sera celle de la lecture du fichier. Cette remarque est valide pour beaucoup d'algorithmes de chiffrement. Mon PC peut faire de l'AES à environ 128 Mo/s sur un seul de ses quatre coeurs, alors que le disque plafonne à 105 Mo/s. Ne parlons même pas du réseau, c'est du 100baseT, donc à peine mieux que 10 Mo/s.
Mais 500 Ko en 30 minutes pour lire un fichier, c'est plus que misérable, c'est inquiétant. C'est comme si Kennedy avait demandé à la NASA une fusée lunaire et que la NASA avait livré un skateboard. Donc XOR ou pas, c'est fort louche. M'est avis que votre code est moult buggué.
je précis que le programme chiffre et déchiffre correctement.
(Précisons tout de même que le chiffrement par XOR avec une clé de taille fixe, c'est connu pour être bien faible ; Edgar A. Poe, auteur bien connu, les cassait à la main il y a plus d'un siècle.)
--Thomas Pornin
kabina
kabina a écrit le 01/02/2009 à 21h24 :
Bonjour, J'ai implémenté un programme de chiffrement XOR simple. - lecture du fichier message -lecture du fichier clé -chiffrement XOR (^) -écriture dans le fichier chiffrement j'ai testé mon algorithme sur une clé de 8 caractère (donc 64 bits) avec un texte de 500ko est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!! presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je précis que le programme chiffre et déchiffre correctement.
merci à vous
salut,
j'ai juste enlevé la fonction d'écriture dans un fichier et MIRACLE j'ai obtenu 24ms !!!!! Est ce qu'une simple fonction d'écriture ( byte par byte) pour ralentir à ce point???
kabina a écrit le 01/02/2009 à 21h24 :
Bonjour,
J'ai implémenté un programme de chiffrement XOR simple.
- lecture du fichier message
-lecture du fichier clé
-chiffrement XOR (^)
-écriture dans le fichier chiffrement
j'ai testé mon algorithme sur une clé de 8 caractère (donc
64 bits) avec un texte de 500ko
est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!!
presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je
précis que le programme chiffre et déchiffre correctement.
merci à vous
salut,
j'ai juste enlevé la fonction d'écriture dans un fichier et MIRACLE j'ai obtenu 24ms !!!!! Est ce qu'une simple fonction d'écriture ( byte par byte) pour ralentir à ce point???
Bonjour, J'ai implémenté un programme de chiffrement XOR simple. - lecture du fichier message -lecture du fichier clé -chiffrement XOR (^) -écriture dans le fichier chiffrement j'ai testé mon algorithme sur une clé de 8 caractère (donc 64 bits) avec un texte de 500ko est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!! presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je précis que le programme chiffre et déchiffre correctement.
merci à vous
salut,
j'ai juste enlevé la fonction d'écriture dans un fichier et MIRACLE j'ai obtenu 24ms !!!!! Est ce qu'une simple fonction d'écriture ( byte par byte) pour ralentir à ce point???
kabina
kabina a écrit le 01/02/2009 à 21h24 :
Bonjour, J'ai implémenté un programme de chiffrement XOR simple. - lecture du fichier message -lecture du fichier clé -chiffrement XOR (^) -écriture dans le fichier chiffrement j'ai testé mon algorithme sur une clé de 8 caractère (donc 64 bits) avec un texte de 500ko est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!! presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je précis que le programme chiffre et déchiffre correctement.
merci à vous
salut c'était une erreur de programmation, j'avais mis ma fonction d'écriture à l'intérieur d'un while
bonne journée
kabina a écrit le 01/02/2009 à 21h24 :
Bonjour,
J'ai implémenté un programme de chiffrement XOR simple.
- lecture du fichier message
-lecture du fichier clé
-chiffrement XOR (^)
-écriture dans le fichier chiffrement
j'ai testé mon algorithme sur une clé de 8 caractère (donc
64 bits) avec un texte de 500ko
est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!!
presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je
précis que le programme chiffre et déchiffre correctement.
merci à vous
salut
c'était une erreur de programmation, j'avais mis ma fonction d'écriture à l'intérieur d'un while
Bonjour, J'ai implémenté un programme de chiffrement XOR simple. - lecture du fichier message -lecture du fichier clé -chiffrement XOR (^) -écriture dans le fichier chiffrement j'ai testé mon algorithme sur une clé de 8 caractère (donc 64 bits) avec un texte de 500ko est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!! presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je précis que le programme chiffre et déchiffre correctement.
merci à vous
salut c'était une erreur de programmation, j'avais mis ma fonction d'écriture à l'intérieur d'un while
bonne journée
YBM
kabina a écrit :
kabina a écrit le 01/02/2009 à 21h24 :
Bonjour, J'ai implémenté un programme de chiffrement XOR simple. - lecture du fichier message -lecture du fichier clé -chiffrement XOR (^) -écriture dans le fichier chiffrement j'ai testé mon algorithme sur une clé de 8 caractère (donc 64 bits) avec un texte de 500ko est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!! presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je précis que le programme chiffre et déchiffre correctement.
merci à vous
salut,
j'ai juste enlevé la fonction d'écriture dans un fichier et MIRACLE j'ai obtenu 24ms !!!!! Est ce qu'une simple fonction d'écriture ( byte par byte) pour ralentir à ce point???
Oui, ça fait quand même un appel système (entrée dans le noyau de l'OS) par octet avec tout ce que ça implique comme changement de contexte du processeur, de traitement côté pilote du système de fichiers, du disque, etc.
kabina a écrit :
kabina a écrit le 01/02/2009 à 21h24 :
Bonjour,
J'ai implémenté un programme de chiffrement XOR simple.
- lecture du fichier message
-lecture du fichier clé
-chiffrement XOR (^)
-écriture dans le fichier chiffrement
j'ai testé mon algorithme sur une clé de 8 caractère (donc
64 bits) avec un texte de 500ko
est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!!
presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je
précis que le programme chiffre et déchiffre correctement.
merci à vous
salut,
j'ai juste enlevé la fonction d'écriture dans un fichier et MIRACLE j'ai obtenu
24ms !!!!! Est ce qu'une simple fonction d'écriture ( byte par byte) pour
ralentir à ce point???
Oui, ça fait quand même un appel système (entrée dans le noyau de l'OS)
par octet avec tout ce que ça implique comme changement de contexte du
processeur, de traitement côté pilote du système de fichiers, du disque,
etc.
Bonjour, J'ai implémenté un programme de chiffrement XOR simple. - lecture du fichier message -lecture du fichier clé -chiffrement XOR (^) -écriture dans le fichier chiffrement j'ai testé mon algorithme sur une clé de 8 caractère (donc 64 bits) avec un texte de 500ko est j'ai obtenu un temps d'exécution un peu bizzard 1500468 milis!!!!!!! presque 30min pour un algorithme qu'on dit rapide. est ce normal?? je précis que le programme chiffre et déchiffre correctement.
merci à vous
salut,
j'ai juste enlevé la fonction d'écriture dans un fichier et MIRACLE j'ai obtenu 24ms !!!!! Est ce qu'une simple fonction d'écriture ( byte par byte) pour ralentir à ce point???
Oui, ça fait quand même un appel système (entrée dans le noyau de l'OS) par octet avec tout ce que ça implique comme changement de contexte du processeur, de traitement côté pilote du système de fichiers, du disque, etc.