J'essaye de développer un petit algorithme pour crypter/décrypter un
fichier de n'importe quel type. C'est plus ou moins clair dans ma tête (une
partie oui, une partie non). J'essaye de mettre ça en forme avec TURBO
PASCAL, mais j'ai des gros problèmes pour programmer (en raison de la
compatibilité des fichiers entre MS-DOS et WINDOWS).
En gros, je voulais vous expliquer un peu mon idée, et voir votre avis
là-dessus.
Ce que je veux faire : un programme (et donc un algo :) qui permette de
crypter un fichier de n'importe quel nature, s'il n'est pas trop gros
(maximum 1 à 5 Mo). En raison des contraintes imposées par le langage, on ne
peut crypter qu'un fichier à la fois. J'ai déjà fait des petits programmes
de cryptage, mais c'était des petits trucs de bricolage. Là, sans avoir
envie de pondre du DES ou quoi, j'ai quand même envie de faire quelque chose
de 'sérieux', je veux dire quelque chose qui soit vraiment dur à casser.
Il y a deux parties dans l'algorithme.
1. L'encodage.
On décompose le fichier en blocs de 8 octets (ça tombe toujours juste,
c'est arrangé...), ça nous donne un tableau 8x8 rempli de 0 ou de 1 (plus
précisément, chaque ligne comporte le code binaire d'un octet). On répète 10
fois l'ensemble suivant :
- on retourne chaque tableau individuellement ;
- on déplace les octets d'un tableau à un autre. Le résultat est assez
complexe (si on cherche à voir où les octets atterrissent).
Après l'encodage, les bits sont complètement mélangés, et on a reformé
un fichier de caractères.
2. Le cryptage.
Là, c'est un peu moins clair dans mon esprit. Je pense prendre une clef
de 16 caractères (donc en gros 255 possibilités par caractère de la clef,
moins une vingtaine (entrée, supprimer, etc.) inutilisables, donc en gros
220^16 clefs possibles). Avec cette clef, on génère une liste de nombre
pseudo-aléatoires longue (probablement 1024 octets). On code le résultat de
l'encodage avec cette clef au moyen d'un XOR. Certes, il y a répétition,
mais d'une part, la chaîne est très longue, et d'autre part, l'encodage a
complètement brouillé les bits. Je ne pense pas qu'une telle répétition
porte préjudice à la sécurité du code.
Voilà. Le principe de cryptage est très simple, en lui-même, mais il est
assez solide, je pense, du fait que la chaîne avec laquelle on code est
longue (on peut encore la rallonger), et d'autre part du fait du grand
nombre de clefs possibles qui rend très difficile le cassage par force
brute. D'autre part, l'extrême simplicité de ce procédé garantit au moins
une chose : il n'y a pas de trappe dans l'algorithme (volontaire ou
involontaire).
Alors, deux questions :
1. Est-ce que l'encodage est absolument nécessaire ? S'il est là, après
avoir testé X clefs (attaque par force brute), on reste obligé de décoder,
ça fait perdre du temps.
2. Quelle sécurité offre un algorithme de ce genre ? Les calculs ne sont
pas compliqués (donc pas longs), mais il y a un grand nombre de clefs
possibles. C'est un cryptage à combien de bits, il faudrait combien de temps
à un ordinateur classique pour casser ça par la force brute (une idée ?) ?
3. Est-ce qu'il ne vaudrait pas mieux mêler l'encodage et le cryptage,
c'est-à-dire crypter au fur et à mesure qu'on encode. Je pense que la
sécurité en serait améliorée (plus de calculs à effectuer pour un cassage
par force brute).
Merci à vous si vous prenez un peu de votre temps pour me répondre...
Comme partout, peut-être. Mais ici un peu plus qu'ailleurs, c'est vrai, mais j'ignore pourquoi...
Parce que c'est un sujet pointu et qu'il est inutile de se précipiter sur un clavier avant d'avoir digéré la littérature sur le sujet.
Dans les autres domaines fumeux de l'informatique, on peut espérer faire illusion si on se lance tête baissée dans un problème sans s'être un poil renseigné avant. En crypto, non. Dans d'autres sujets pointus non plus.
Et dans tous les domaines on gagne du temps à se cultiver avant d'agir ou de couiner que ça ne marche pas. On évite aussi aux autres d'en perdre pour expliquer des règles de survie de base dans ce monde cruel.
Je comprends... Mais cela ne m'explique toujours pas pourquoi ceux qui savent se croient (parfois, et seulement parfois, Dieu merci...) supérieurs à ceux qui veulent apprendre. Un réflexe bien humain, sans doute, de ceux-là qui me poussent à préférer ma machine à certains contacts humains oiseux voire négatifs (ce qui ne veut pas dire que je suis associal !!!), ce qui a pour conséquence de me faire préférer rester devant mon PC à chercher à apprendre quelque chose plutôt que d'aller traîner dans la rue ou au café. (Vous noterez que je n'émets pas de jugement de valeur.) Etre autodidacte, vous savez, ce n'est pas facile, surtout quand on voit que les livres sont ou trop simples, ou trop pointus, et qu'arrivé à un certain stade de compréhension d'un domaine, on se retrouve toujours coincé s'il n'y a personne pour nous apprendre. Et en particulier, ce genre de discussions nous (me) permets de faire le tri entre les choses sur lesquelles je devrais prochainement me renseigner et celles sur lesquelles il est inutile, dans l'immédiat, de me renseigner. Je suppose que vous également pouvez me comprendre...
Bien à vous, Christophe
Michel :
Comme partout, peut-être. Mais ici un peu plus qu'ailleurs, c'est vrai,
mais j'ignore pourquoi...
Parce que c'est un sujet pointu et qu'il est inutile de se précipiter
sur un clavier avant d'avoir digéré la littérature sur le sujet.
Dans les autres domaines fumeux de l'informatique, on peut espérer
faire illusion si on se lance tête baissée dans un problème sans
s'être un poil renseigné avant.
En crypto, non. Dans d'autres sujets pointus non plus.
Et dans tous les domaines on gagne du temps à se cultiver avant d'agir
ou de couiner que ça ne marche pas. On évite aussi aux autres d'en
perdre pour expliquer des règles de survie de base dans ce monde
cruel.
Je comprends...
Mais cela ne m'explique toujours pas pourquoi ceux qui savent se croient
(parfois, et seulement parfois, Dieu merci...) supérieurs à ceux qui veulent
apprendre. Un réflexe bien humain, sans doute, de ceux-là qui me poussent à
préférer ma machine à certains contacts humains oiseux voire négatifs (ce
qui ne veut pas dire que je suis associal !!!), ce qui a pour conséquence de
me faire préférer rester devant mon PC à chercher à apprendre quelque chose
plutôt que d'aller traîner dans la rue ou au café. (Vous noterez que je
n'émets pas de jugement de valeur.)
Etre autodidacte, vous savez, ce n'est pas facile, surtout quand on voit
que les livres sont ou trop simples, ou trop pointus, et qu'arrivé à un
certain stade de compréhension d'un domaine, on se retrouve toujours coincé
s'il n'y a personne pour nous apprendre.
Et en particulier, ce genre de discussions nous (me) permets de faire le
tri entre les choses sur lesquelles je devrais prochainement me renseigner
et celles sur lesquelles il est inutile, dans l'immédiat, de me renseigner.
Je suppose que vous également pouvez me comprendre...
Comme partout, peut-être. Mais ici un peu plus qu'ailleurs, c'est vrai, mais j'ignore pourquoi...
Parce que c'est un sujet pointu et qu'il est inutile de se précipiter sur un clavier avant d'avoir digéré la littérature sur le sujet.
Dans les autres domaines fumeux de l'informatique, on peut espérer faire illusion si on se lance tête baissée dans un problème sans s'être un poil renseigné avant. En crypto, non. Dans d'autres sujets pointus non plus.
Et dans tous les domaines on gagne du temps à se cultiver avant d'agir ou de couiner que ça ne marche pas. On évite aussi aux autres d'en perdre pour expliquer des règles de survie de base dans ce monde cruel.
Je comprends... Mais cela ne m'explique toujours pas pourquoi ceux qui savent se croient (parfois, et seulement parfois, Dieu merci...) supérieurs à ceux qui veulent apprendre. Un réflexe bien humain, sans doute, de ceux-là qui me poussent à préférer ma machine à certains contacts humains oiseux voire négatifs (ce qui ne veut pas dire que je suis associal !!!), ce qui a pour conséquence de me faire préférer rester devant mon PC à chercher à apprendre quelque chose plutôt que d'aller traîner dans la rue ou au café. (Vous noterez que je n'émets pas de jugement de valeur.) Etre autodidacte, vous savez, ce n'est pas facile, surtout quand on voit que les livres sont ou trop simples, ou trop pointus, et qu'arrivé à un certain stade de compréhension d'un domaine, on se retrouve toujours coincé s'il n'y a personne pour nous apprendre. Et en particulier, ce genre de discussions nous (me) permets de faire le tri entre les choses sur lesquelles je devrais prochainement me renseigner et celles sur lesquelles il est inutile, dans l'immédiat, de me renseigner. Je suppose que vous également pouvez me comprendre...
Bien à vous, Christophe
Michel Arboi
On Fri Aug 13 2004 at 11:05, Horace wrote:
Etre autodidacte, vous savez, ce n'est pas facile, surtout quand on voit que les livres sont ou trop simples, ou trop pointus, et qu'arrivé à un certain stade de compréhension d'un domaine, on se retrouve toujours coincé s'il n'y a personne pour nous apprendre.
Commencez par les livres, vous verrez bien quand vous serez coincé.
Un autre, pas cher et facile à trouver puisqu'il est en livre de poche : Histoire des codes secrets de Simon Singh.
Avec quelques belles fautes de traduction malheureusement.
-- http://arboi.da.ru FAQNOPI de fr.comp.securite http://faqnopi.da.ru/ NASL2 reference manual http://michel.arboi.free.fr/nasl2ref/
On Fri Aug 13 2004 at 11:05, Horace wrote:
Etre autodidacte, vous savez, ce n'est pas facile, surtout quand on voit
que les livres sont ou trop simples, ou trop pointus, et qu'arrivé à un
certain stade de compréhension d'un domaine, on se retrouve toujours coincé
s'il n'y a personne pour nous apprendre.
Commencez par les livres, vous verrez bien quand vous serez coincé.
Un autre, pas cher et facile à trouver puisqu'il est en livre de
poche :
Histoire des codes secrets de Simon Singh.
Avec quelques belles fautes de traduction malheureusement.
Etre autodidacte, vous savez, ce n'est pas facile, surtout quand on voit que les livres sont ou trop simples, ou trop pointus, et qu'arrivé à un certain stade de compréhension d'un domaine, on se retrouve toujours coincé s'il n'y a personne pour nous apprendre.
Commencez par les livres, vous verrez bien quand vous serez coincé.
Un autre, pas cher et facile à trouver puisqu'il est en livre de poche : Histoire des codes secrets de Simon Singh.
Avec quelques belles fautes de traduction malheureusement.
-- http://arboi.da.ru FAQNOPI de fr.comp.securite http://faqnopi.da.ru/ NASL2 reference manual http://michel.arboi.free.fr/nasl2ref/
Marc Lasson
Horace wrote:
Maintenant, je prends le cas d'un algo un peu plus sûr, où la méthode dépend en partie de la clef. Là, pour une attaque force brute (c'était le sens de ma question), 220^16, c'est beaucoup, non ?
J'estime que mon pauvre ordinateur (un 1 gigahertz) mettrait plusieurs centaines de milliards de millards d'années à compter 220^16 moutons (à la vitesse d'un mouton par cycle).
Je peux me tromper.
-- Marc.
Horace wrote:
Maintenant, je prends le cas d'un algo un peu plus sûr, où la méthode
dépend en partie de la clef. Là, pour une attaque force brute (c'était le
sens de ma question), 220^16, c'est beaucoup, non ?
J'estime que mon pauvre ordinateur (un 1 gigahertz) mettrait plusieurs
centaines de milliards de millards d'années à compter 220^16 moutons (à
la vitesse d'un mouton par cycle).
Maintenant, je prends le cas d'un algo un peu plus sûr, où la méthode dépend en partie de la clef. Là, pour une attaque force brute (c'était le sens de ma question), 220^16, c'est beaucoup, non ?
J'estime que mon pauvre ordinateur (un 1 gigahertz) mettrait plusieurs centaines de milliards de millards d'années à compter 220^16 moutons (à la vitesse d'un mouton par cycle).
Je peux me tromper.
-- Marc.
Horace
Michel :
Commencez par les livres, vous verrez bien quand vous serez coincé.
Pas grave, laissez tomber.
Un autre, pas cher et facile à trouver puisqu'il est en livre de poche : Histoire des codes secrets de Simon Singh.
Oui, c'était celui-là dont je vous parlais quelque part. Je l'ai lu !! Et ça a bien été jusqu'à la fin. Enfin, jusqu'au chapitre sur les ordinateurs quantiques.
Avec quelques belles fautes de traduction malheureusement.
Je ne sais pas, je l'ai lu en français...
Bien à vous, Christophe
Michel :
Commencez par les livres, vous verrez bien quand vous serez coincé.
Pas grave, laissez tomber.
Un autre, pas cher et facile à trouver puisqu'il est en livre de
poche :
Histoire des codes secrets de Simon Singh.
Oui, c'était celui-là dont je vous parlais quelque part. Je l'ai lu !!
Et ça a bien été jusqu'à la fin. Enfin, jusqu'au chapitre sur les
ordinateurs quantiques.
Avec quelques belles fautes de traduction malheureusement.
Commencez par les livres, vous verrez bien quand vous serez coincé.
Pas grave, laissez tomber.
Un autre, pas cher et facile à trouver puisqu'il est en livre de poche : Histoire des codes secrets de Simon Singh.
Oui, c'était celui-là dont je vous parlais quelque part. Je l'ai lu !! Et ça a bien été jusqu'à la fin. Enfin, jusqu'au chapitre sur les ordinateurs quantiques.
Avec quelques belles fautes de traduction malheureusement.
Je ne sais pas, je l'ai lu en français...
Bien à vous, Christophe
Horace
Marc :
J'estime que mon pauvre ordinateur (un 1 gigahertz) mettrait plusieurs centaines de milliards de millards d'années à compter 220^16 moutons (à la vitesse d'un mouton par cycle).
Je peux me tromper.
... pas de beaucoup ! A 1.000.000 de clef testée par seconde (c'est déjà beaucoup), il faudrait 955 millions de milliards de milliards d'années pour tout tester :*)
Bien à vous, Christophe
Marc :
J'estime que mon pauvre ordinateur (un 1 gigahertz) mettrait plusieurs
centaines de milliards de millards d'années à compter 220^16 moutons (à
la vitesse d'un mouton par cycle).
Je peux me tromper.
... pas de beaucoup !
A 1.000.000 de clef testée par seconde (c'est déjà beaucoup), il
faudrait 955 millions de milliards de milliards d'années pour tout tester
:*)
J'estime que mon pauvre ordinateur (un 1 gigahertz) mettrait plusieurs centaines de milliards de millards d'années à compter 220^16 moutons (à la vitesse d'un mouton par cycle).
Je peux me tromper.
... pas de beaucoup ! A 1.000.000 de clef testée par seconde (c'est déjà beaucoup), il faudrait 955 millions de milliards de milliards d'années pour tout tester :*)
Bien à vous, Christophe
Michel Arboi
On Sun Aug 15 2004 at 20:01, Horace wrote:
Avec quelques belles fautes de traduction malheureusement.
Je ne sais pas, je l'ai lu en français...
Le traitement hormonal censé guérir Alan Turing de son homosexualité l'aurait rendu "impotent". Je vous laisse deviner la bonne traduction. http://fr.wordreference.com/fr/Translation.asp?enfr=impotent&v=b
On Sun Aug 15 2004 at 20:01, Horace wrote:
Avec quelques belles fautes de traduction malheureusement.
Je ne sais pas, je l'ai lu en français...
Le traitement hormonal censé guérir Alan Turing de son homosexualité
l'aurait rendu "impotent".
Je vous laisse deviner la bonne traduction.
http://fr.wordreference.com/fr/Translation.asp?enfr=impotent&v=b
Avec quelques belles fautes de traduction malheureusement.
Je ne sais pas, je l'ai lu en français...
Le traitement hormonal censé guérir Alan Turing de son homosexualité l'aurait rendu "impotent". Je vous laisse deviner la bonne traduction. http://fr.wordreference.com/fr/Translation.asp?enfr=impotent&v=b