diff options
Diffstat (limited to 'set1/task8.c')
| -rw-r--r-- | set1/task8.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/set1/task8.c b/set1/task8.c index 98b3380..d3aa8a8 100644 --- a/set1/task8.c +++ b/set1/task8.c @@ -4,9 +4,9 @@ int main(int arc, char **argv) { // detect AEC in ECB mode, do NOT break it - int number_blocks, i, j, k, read = 0; + int read = 0; size_t len = 0; - int max_hits = 0, hits = 0, line_number= 0, aes_ecb_line = 0; + int line_number= 0, aes_ecb_line = 0; char *line_hex = NULL; // read file FILE *f = fopen("8.txt", "r"); @@ -19,29 +19,12 @@ int main(int arc, char **argv) while( (read = getline(&line_hex, &len, f)) != -1) { // line is hex encoded char *line = malloc(read/2+1); - decode_hex_string(line_hex, line); - - number_blocks = read / 2 / 16; - // count 16 byte blocks which are equal - for(i=0;i<number_blocks;i++) { - for(j=1;j<number_blocks;j++) { - for(k=0;k<16;k++) { - if(line[i*16+k] != line[j*16+k]) - break; - - if ( k == 15) - hits++; - } - } - } - printf("line: %i, hits: %i\n", line_number, hits); - if (hits > max_hits) { - max_hits = hits; + printf("line %i: ", line_number); + if (string_is_ecb_encrypted(line, read/2+1, 16)) { aes_ecb_line = line_number; } line_number++; - hits = 0; free(line_hex); free(line); // set line and len to null @@ -49,7 +32,7 @@ int main(int arc, char **argv) len = 0; } - printf("found AES-128-ECB at line: %i\n with %i hits", aes_ecb_line, max_hits); + printf("found AES-128-ECB at line: %i\n", aes_ecb_line); return 0; } |
