000
02.12.2002, 17:28 Uhr
Bruder Leif
dances with systems (Operator)
|
Moin!
Bin mir nicht ganz sicher, ob das hier nicht eher in den Projektebereich gehört... bitte nicht schlagen ;-) Gibt es in diesem Hash-Algorithmus Schwachstellen, wenn ja, könnten diese ausgenutzt werden, um auf Teile oder Eigenschaften des ursprünglichen Strings zu schließen? Sprich, ist der Algo kryptographisch sicher?
C++: |
#include <stdio.h>
#define byte unsigned char
void vsh(byte* bIn, byte* bOut, unsigned long ulInputSize, int iSBoxSize) { int i, r; byte Xt; int a, b; unsigned long t;
// init for(i=0; i<iSBoxSize; i++) bOut[ i ] = (i + bIn[ i % ulInputSize]) & 255;
// rounds... for(r=0; r<iSBoxSize; r++) { for(t=0, i=0; t<ulInputSize; t++) { Xt = bIn[t]; a = bOut[ i ] + Xt + i; b = a + bOut[a % iSBoxSize]; bOut[ i ] = b & 255; i = (b + (t & 1)) % iSBoxSize; } } }
int main() { int i; byte bOut[8]; char szInput[256];
printf("Enter a string to hash: "); gets(szInput);
// hash user input vsh(szInput, bOut, strlen(szInput), 8);
// output as a hex string for(i=0; i<8; i++) printf("%2.2x", bOut[ i ]); printf("\n");
return 0; }
|
-- Mit 40 Fieber sitzt man nicht mehr vor dem PC. Man liegt im Bett. Mit dem Notebook. |