KFileCoder utilise a present l'algorithme PC1 ( Pukall Cipher 1 ). C'est un algorithme utilisant des clés de 128 bits. Cet algorithme a été mis au point en 1991 en Assembleur 6809 dans le cadre d'un projet d'identification par carte magnétique. Les cartes magnétiques pouvant être réécrites, il fallait un système utilisant de la cryptographie fiable interdisant toute modification de la carte magnétique sans la rendre inutilisable.
Un algorithme sûr n'est pas suffisant si le protocole ne l'est pas lui-même. Ainsi la clé donnée en paramètre à l'algorithme n'est pas le mot de passe de l'utilisateur. Cette clé est d'abord transformée par une fonction de hachage à sens unique : PSCHF ( Pukall Stream Cipher Hash Function basée sur PC1 ).
Pour chaque fichier, la clé est unique grâce à une combinaison du mot de passe de l'utilisateur avec une génération de nombres aléatoires dépendant de divers paramètres comme le nombre de processus tournant en mémoire, la mémoire vive disponible, l'heure précise ... La génération de nombres pseudo-aléatoires est assurée par divers processus, dont l'algorithme PC2 ( Pukall Cipher 2 ), ainsi que divers passages a travers la fonction de hachage à sens unique.
Si vous connaissez l'histoire de PKZIP, vous savez que des casseurs de code
circulent pour casser PKZIP. Deux types de casseurs existent : le premier a
besoin uniquement d'avoir un fichier non codé présent en même temps dans le
fichier codé pour casser tous les autres.
Cela parce que PKZIP utilise un algorithme faible attaquable par la
cryptanalyse linéaire et différentielle et une clé unique pour tous les
fichiers.
Le deuxieme type de casseurs essaye les mots de passe les plus courants
depuis un dictionnaire.
Nous ne saurions trop recommander de ne jamais prendre de mots de passe
simples comme 'voiture', 'avion' ...
Un bon mot de passe est une phrase que vous retenez en mémoire : par
exemple
'René et moi somment partis à la pêche ce week end !'
On prend chaque lettre de chaque mot pour former le mot de passe, ce qui
donne :
'Remspalpcwe!'
Il suffit de ce souvenir de la phrase pour reformer le mot de passe dans sa tête a chaque fois qu'on en a besoin.
Enfin, KFileCoder intègre un systeme d'authentification du mot de passe
pour empecher ou tout du moins rendre extremement longue les attaques par
mot de passe, ceci en codant un buffer en memoire avec le mot de passe de
l'utilisateur puis en hachant ce buffer pour former une empreinte indiquant
si le mot de passe est correct.
Cela prend du temps, invisible a l'utilisateur mais qui devient extrêmement
long lors d'une attaque par dictionnaire, car un logiciel d'attaque ne
pourra guere tester plus de 2 ou 3 mots de passe par seconde sur un
ordinateur rapide, alors qu'avec PKZIP les logiciels d'attaque peuvent
tester 100000 mots de passe par seconde.
