
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
Archivio: crypto@sikurezza.org Soggetto: Salve a tutti... Mittente: Steve Data: 1 Dec 2000 17:55:52 -0000
Premetto che ho appena iniziato il I anno di Informatica e che le mie
nozioni sul C sono alquanto limitate...
Ho fatto un programma di crittografia che rielabora il discorso trito e
ritrito dello xor del testo in chiaro con una chiave implementando un
elementarissimo generatore di numeri casuali... Il seed varia da 0 a 888886
e ho verificato che tutti i numeri in quel range, dopo aver definito il seme
iniziale(il seed appunto) vengono coperti...
Il programma è il seguente:
............................................................................
................................
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char password[50];
char stringa[2];
long seed=0;
long casual;
long multiplier;
long addition;
long i=0;
char leggi;
long file;
long modulo;
int p=0;
int p2=0;
FILE *fp;
FILE *fp2;
main(int argc, char *argv[])
{
if(argc<2)
{
fprintf(stderr,"\nSintassi: critta nomefile.xxx...\n");
exit(0);
}
modulo=888887;
strcpy(stringa,"nsa");
fp=fopen(argv[1],"rb");
if(fp==NULL)
{
fprintf(stderr,"\nErrore in apertura file origine...\n");
exit(1);
}
fp2=fopen("xyzk.xyzk","wb");
if(fp2==NULL)
{
fprintf(stderr,"\nDisco protetto da scrittura o errore in scrittura
file...\n");
exit(1);
}
fseek(fp,0,SEEK_END);
file=ftell(fp);
rewind(fp);
printf("Password: ");
scanf("%s",password);
p=strlen(password);
if(argc>2)
{
if(strcmp(argv[2],stringa)==0)
{
printf("\nInserisci un numero tra 0 e 888886: ");
scanf("%d",&seed);
}
}
else
{
while(p2!=p)
{
seed=seed+password[p2++];
}
}
seed=seed%modulo;
p2=0;
multiplier=18773;
addition=666667;
while(!(i==file))
{
leggi=fgetc(fp);
casual=(((multiplier*seed)+addition)%modulo);
seed=casual;
if (p2==p)
p2=0;
casual=casual^password[p2];
leggi=leggi^casual;
fwrite(&leggi,sizeof(leggi),1,fp2);
i++;
p2++;
}
fclose(fp);
fclose(fp2);
remove(argv[1]);
rename("xyzk.xyzk",argv[1]);
return 0;
}
............................................................................
......................
Esistono attacchi crittanalitici ad un programma di questo genere?(se sì mi
potreste dire dove trovarli?)...
Pensate che per una sicurezza di tipo casalingo un programma di questo
genere sia sufficente?(ad esempio inserendo una password di 12 caratteri?)
(per intenderci: è craccabile nel giro di qualche
minuto, ora , secondo o può tenere per diciamo almeno un mese?)
Ovviamente so benissimo di non poter competere con Triple Des o
IDEA(hehehe) ma le mie limitatissime conoscenze matematiche e informatiche
al momento mi permettono solo questo...
Al massimo qualcuno mi saprebbe dire dove potrei trovare un buon tutorial
(in italiano) che spieghi per esempio come funzioni il sistema IDEA e le sue
implementazioni(sul sito del dsi di milano ho visto che c'era un corso
riguardo la crittografia ma non ho trovato nient'altro che il programma...)?
Grazie
Stefano
--------------------------------------------------------------------------
informazioni sui comandi supportati da questa ml: http://www.sikurezza.org
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005