Cryptography Reference
In-Depth Information
30
for(m=0; m < MAXPLAIN; ++m) key[m] = ((len+1+m)^wp[m]^b[m])
& 0xff;
31
/* test on period */
32
for(m = MAXPLAIN-len; m--; )
33
if(wp[m] != 0x100 && wp[m+len] != 0x100 && key[m] !=
key[m+len])
34
break;
35
if(m >= 0) continue;
36
/* possible keyword found */
\ %2d:
\ "", len);
37
printf("len =
38
/* reconstruct keyword */
39
for(m=0; m < len; ++m)
40
{
41
bad = 0;
42
k = key[m];
43
if(wp[m] == 0x100)
/* not unique, test on another
known byte */
44
{
45
for(k=m; k < MAXPLAIN; k += len)
46
if(wp[k] != 0x100)
47
{
48
k = key[k];
49
break;
50
}
51
if(bad = (k >= MAXPLAIN))
/* trial failed, use
statistics */
52
{
53
int cnt[256];
54
int l, max, indx;
Figure 3.10: ( continued )
Search WWH ::




Custom Search