17.01.2015 Views

Généralités sur les systèmes d'exploitation traitement Entrées Sorties

Généralités sur les systèmes d'exploitation traitement Entrées Sorties

Généralités sur les systèmes d'exploitation traitement Entrées Sorties

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Réponse :<br />

Puisque n = p.q il vient :<br />

Φ(n) = (p - 1)(q - 1) = (p - 1)(n/p -1) = n - p - n/p +1<br />

2°) En déduire une équation du deuxième ordre en p que l'on résoudra.<br />

Réponse :<br />

p.Φ(n) = (p - 1)(n - p) = (n+1)p -p 2 - n<br />

Soit : p 2 + p(Φ(n) - (n + 1)) + n = 0<br />

2<br />

n + 1− Φ( n) ± ( n + 1− Φ( n))<br />

− 4n<br />

Il vient p =<br />

2<br />

et donc si le calcul de p ne pose pas de problème, la factorisation de n est immédiate.<br />

Exercice 5<br />

On trouve <strong>sur</strong> INTERNET le programme suivant pour craquer <strong>les</strong> mots de passe. Dire en quelques mots ce<br />

qu'il fait.<br />

/* TinyCrack v1.0 by Bluesman@cyberspace.org 1/95<br />

If your tired of having to use gigantic password crackers for a quick-fix,<br />

then you might try using this program. It does the basics. It scans for<br />

nulls, tries usernames and account names and of course it runs with any<br />

wordlist dictionary. TO COMPILE: gcc -O2 tc.c -o tc<br />

*/<br />

#include /* It's not the best, but hey, you can allmost memorize */<br />

#include /* it. For greater speed, compile ufc-crypt with this */<br />

#define fetch(a,b,c,d) { fgets(a,130,b); c=strtok(a,":"); d=strtok('\0',":");}<br />

main() {<br />

FILE *p,*o,*w;<br />

char i[50]; char pes[130],pas[50],pps[50],pws[50];<br />

char *es=pes,*as=pas,*ps=pps,*ws=pws;<br />

/* This took me a few hours to write */<br />

printf("\nTinyCrack v1.0 Bluesman 1/95\n\n");<br />

printf("Password File: ");<br />

gets(i);<br />

p=fopen(i,"r");<br />

printf("WordList File: ");<br />

gets(i);<br />

w=fopen(i,"r");<br />

printf("Results File : ");<br />

gets(i);<br />

o=fopen(i,"w"); /* Most time optimizing */<br />

fprintf(o,"*** TINYCRACK v1.0 ***\n\n*** PASS 1: NULL PASSWORDS ***\n");<br />

while(ps){<br />

fetch(es,p,as,ps);<br />

if(ps)<br />

if(ps[-1]==':') /* I don't normally */<br />

fprintf(o,"| User [%s] has no password!\n",as);<br />

}<br />

fflush(o);<br />

rewind(p);<br />

fprintf(o,"*** PASS 2: ACCOUNT NAMES ***\n");<br />

do {<br />

fetch(es,p,as,ps);<br />

if(ps)<br />

if(!strcmp((char *)crypt(as,ps),ps))<br />

/* write code in this format */<br />

fprintf(o,"| User [%s] has password [%s]\n",as,as);<br />

} while(ps);<br />

fflush(o);<br />

rewind(p);<br />

fprintf(o,"*** PASS 3: DICTIONARY WORDS ***\n");<br />

do{<br />

rewind(w);<br />

fetch(es,p,as,ps);<br />

43 / 51 Travaux Dirigés LO 14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!