From 1fd84c7dc70a0a6e6d8651fafa50c51dd697ae77 Mon Sep 17 00:00:00 2001 From: Benedict Date: Thu, 2 Feb 2017 00:32:26 +0100 Subject: added random stuff which hasn't beend added because yeah --- set3/task17.c | 59 ++++++++++++++++++++++++++++++++++++++++++++ set3/task17_0 | 1 + set3/task17_1 | 1 + set3/task17_2 | 1 + set3/task17_3 | 1 + set3/task17_4 | 1 + set3/task17_5 | 1 + set3/task17_6 | 1 + set3/task17_7 | 1 + set3/task17_8 | 1 + set3/task17_9 | 1 + set3/task19.c | 35 ++++++++++++++++++++++++++ set3/task19_data/task19_00 | 1 + set3/task19_data/task19_01 | 1 + set3/task19_data/task19_02 | 1 + set3/task19_data/task19_03 | 1 + set3/task19_data/task19_04 | 1 + set3/task19_data/task19_05 | 1 + set3/task19_data/task19_06 | 1 + set3/task19_data/task19_07 | 1 + set3/task19_data/task19_08 | 1 + set3/task19_data/task19_09 | 1 + set3/task19_data/task19_10 | 1 + set3/task19_data/task19_11 | 1 + set3/task19_data/task19_12 | 1 + set3/task19_data/task19_13 | 1 + set3/task19_data/task19_14 | 1 + set3/task19_data/task19_15 | 1 + set3/task19_data/task19_16 | 1 + set3/task19_data/task19_17 | 1 + set3/task19_data/task19_18 | 1 + set3/task19_data/task19_19 | 1 + set3/task19_data/task19_20 | 1 + set3/task19_data/task19_21 | 1 + set3/task19_data/task19_22 | 1 + set3/task19_data/task19_23 | 1 + set3/task19_data/task19_24 | 1 + set3/task19_data/task19_25 | 1 + set3/task19_data/task19_26 | 1 + set3/task19_data/task19_27 | 1 + set3/task19_data/task19_28 | 1 + set3/task19_data/task19_29 | 1 + set3/task19_data/task19_30 | 1 + set3/task19_data/task19_31 | 1 + set3/task19_data/task19_32 | 1 + set3/task19_data/task19_33 | 1 + set3/task19_data/task19_34 | 1 + set3/task19_data/task19_35 | 1 + set3/task19_data/task19_36 | 1 + set3/task19_data/task19_37 | 1 + set3/task19_data/task19_38 | 1 + set3/task19_data/task19_39 | 1 + set3/task19_data/task19_all | 40 ++++++++++++++++++++++++++++++ set3/task20_data/20.txt | 60 +++++++++++++++++++++++++++++++++++++++++++++ set3/task20_data/task20_00 | 1 + set3/task20_data/task20_01 | 1 + set3/task20_data/task20_02 | 1 + set3/task20_data/task20_03 | 1 + set3/task20_data/task20_04 | 1 + set3/task20_data/task20_05 | 1 + set3/task20_data/task20_06 | 1 + set3/task20_data/task20_07 | 1 + set3/task20_data/task20_08 | 1 + set3/task20_data/task20_09 | 1 + set3/task20_data/task20_10 | 1 + set3/task20_data/task20_11 | 1 + set3/task20_data/task20_12 | 1 + set3/task20_data/task20_13 | 1 + set3/task20_data/task20_14 | 1 + set3/task20_data/task20_15 | 1 + set3/task20_data/task20_16 | 1 + set3/task20_data/task20_17 | 1 + set3/task20_data/task20_18 | 1 + set3/task20_data/task20_19 | 1 + set3/task20_data/task20_20 | 1 + set3/task20_data/task20_21 | 1 + set3/task20_data/task20_22 | 1 + set3/task20_data/task20_23 | 1 + set3/task20_data/task20_24 | 1 + set3/task20_data/task20_25 | 1 + set3/task20_data/task20_26 | 1 + set3/task20_data/task20_27 | 1 + set3/task20_data/task20_28 | 1 + set3/task20_data/task20_29 | 1 + set3/task20_data/task20_30 | 1 + set3/task20_data/task20_31 | 1 + set3/task20_data/task20_32 | 1 + set3/task20_data/task20_33 | 1 + set3/task20_data/task20_34 | 1 + set3/task20_data/task20_35 | 1 + set3/task20_data/task20_36 | 1 + set3/task20_data/task20_37 | 1 + set3/task20_data/task20_38 | 1 + set3/task20_data/task20_39 | 1 + set3/task20_data/task20_40 | 1 + set3/task20_data/task20_41 | 1 + set3/task20_data/task20_42 | 1 + set3/task20_data/task20_43 | 1 + set3/task20_data/task20_44 | 1 + set3/task20_data/task20_45 | 1 + set3/task20_data/task20_46 | 1 + set3/task20_data/task20_47 | 1 + set3/task20_data/task20_48 | 1 + set3/task20_data/task20_49 | 1 + set3/task20_data/task20_50 | 1 + set3/task20_data/task20_51 | 1 + set3/task20_data/task20_52 | 1 + set3/task20_data/task20_53 | 1 + set3/task20_data/task20_54 | 1 + set3/task20_data/task20_55 | 1 + set3/task20_data/task20_56 | 1 + set3/task20_data/task20_57 | 1 + set3/task20_data/task20_58 | 1 + set3/task20_data/task20_59 | 1 + 114 files changed, 304 insertions(+) create mode 100644 set3/task17.c create mode 100644 set3/task17_0 create mode 100644 set3/task17_1 create mode 100644 set3/task17_2 create mode 100644 set3/task17_3 create mode 100644 set3/task17_4 create mode 100644 set3/task17_5 create mode 100644 set3/task17_6 create mode 100644 set3/task17_7 create mode 100644 set3/task17_8 create mode 100644 set3/task17_9 create mode 100644 set3/task19.c create mode 100644 set3/task19_data/task19_00 create mode 100644 set3/task19_data/task19_01 create mode 100644 set3/task19_data/task19_02 create mode 100644 set3/task19_data/task19_03 create mode 100644 set3/task19_data/task19_04 create mode 100644 set3/task19_data/task19_05 create mode 100644 set3/task19_data/task19_06 create mode 100644 set3/task19_data/task19_07 create mode 100644 set3/task19_data/task19_08 create mode 100644 set3/task19_data/task19_09 create mode 100644 set3/task19_data/task19_10 create mode 100644 set3/task19_data/task19_11 create mode 100644 set3/task19_data/task19_12 create mode 100644 set3/task19_data/task19_13 create mode 100644 set3/task19_data/task19_14 create mode 100644 set3/task19_data/task19_15 create mode 100644 set3/task19_data/task19_16 create mode 100644 set3/task19_data/task19_17 create mode 100644 set3/task19_data/task19_18 create mode 100644 set3/task19_data/task19_19 create mode 100644 set3/task19_data/task19_20 create mode 100644 set3/task19_data/task19_21 create mode 100644 set3/task19_data/task19_22 create mode 100644 set3/task19_data/task19_23 create mode 100644 set3/task19_data/task19_24 create mode 100644 set3/task19_data/task19_25 create mode 100644 set3/task19_data/task19_26 create mode 100644 set3/task19_data/task19_27 create mode 100644 set3/task19_data/task19_28 create mode 100644 set3/task19_data/task19_29 create mode 100644 set3/task19_data/task19_30 create mode 100644 set3/task19_data/task19_31 create mode 100644 set3/task19_data/task19_32 create mode 100644 set3/task19_data/task19_33 create mode 100644 set3/task19_data/task19_34 create mode 100644 set3/task19_data/task19_35 create mode 100644 set3/task19_data/task19_36 create mode 100644 set3/task19_data/task19_37 create mode 100644 set3/task19_data/task19_38 create mode 100644 set3/task19_data/task19_39 create mode 100644 set3/task19_data/task19_all create mode 100644 set3/task20_data/20.txt create mode 100644 set3/task20_data/task20_00 create mode 100644 set3/task20_data/task20_01 create mode 100644 set3/task20_data/task20_02 create mode 100644 set3/task20_data/task20_03 create mode 100644 set3/task20_data/task20_04 create mode 100644 set3/task20_data/task20_05 create mode 100644 set3/task20_data/task20_06 create mode 100644 set3/task20_data/task20_07 create mode 100644 set3/task20_data/task20_08 create mode 100644 set3/task20_data/task20_09 create mode 100644 set3/task20_data/task20_10 create mode 100644 set3/task20_data/task20_11 create mode 100644 set3/task20_data/task20_12 create mode 100644 set3/task20_data/task20_13 create mode 100644 set3/task20_data/task20_14 create mode 100644 set3/task20_data/task20_15 create mode 100644 set3/task20_data/task20_16 create mode 100644 set3/task20_data/task20_17 create mode 100644 set3/task20_data/task20_18 create mode 100644 set3/task20_data/task20_19 create mode 100644 set3/task20_data/task20_20 create mode 100644 set3/task20_data/task20_21 create mode 100644 set3/task20_data/task20_22 create mode 100644 set3/task20_data/task20_23 create mode 100644 set3/task20_data/task20_24 create mode 100644 set3/task20_data/task20_25 create mode 100644 set3/task20_data/task20_26 create mode 100644 set3/task20_data/task20_27 create mode 100644 set3/task20_data/task20_28 create mode 100644 set3/task20_data/task20_29 create mode 100644 set3/task20_data/task20_30 create mode 100644 set3/task20_data/task20_31 create mode 100644 set3/task20_data/task20_32 create mode 100644 set3/task20_data/task20_33 create mode 100644 set3/task20_data/task20_34 create mode 100644 set3/task20_data/task20_35 create mode 100644 set3/task20_data/task20_36 create mode 100644 set3/task20_data/task20_37 create mode 100644 set3/task20_data/task20_38 create mode 100644 set3/task20_data/task20_39 create mode 100644 set3/task20_data/task20_40 create mode 100644 set3/task20_data/task20_41 create mode 100644 set3/task20_data/task20_42 create mode 100644 set3/task20_data/task20_43 create mode 100644 set3/task20_data/task20_44 create mode 100644 set3/task20_data/task20_45 create mode 100644 set3/task20_data/task20_46 create mode 100644 set3/task20_data/task20_47 create mode 100644 set3/task20_data/task20_48 create mode 100644 set3/task20_data/task20_49 create mode 100644 set3/task20_data/task20_50 create mode 100644 set3/task20_data/task20_51 create mode 100644 set3/task20_data/task20_52 create mode 100644 set3/task20_data/task20_53 create mode 100644 set3/task20_data/task20_54 create mode 100644 set3/task20_data/task20_55 create mode 100644 set3/task20_data/task20_56 create mode 100644 set3/task20_data/task20_57 create mode 100644 set3/task20_data/task20_58 create mode 100644 set3/task20_data/task20_59 (limited to 'set3') diff --git a/set3/task17.c b/set3/task17.c new file mode 100644 index 0000000..d2bb7e0 --- /dev/null +++ b/set3/task17.c @@ -0,0 +1,59 @@ +#include "../lib/lib.h" +#include "../lib/lib2.h" +#include "../lib/lib3.h" +#include + +/** + * First we try to break the last byte of a block. + * Do this by trying every byte + * + * Good description of the attack: + * https://blog.cloudflare.com/padding-oracles-and-the-decline-of-cbc-mode-ciphersuites/ + */ + +#define BLOCKSIZE 16 +int main() +{ + // intialize + srand(time(NULL)); + generate_random_bytes(key, 16); + generate_random_bytes(iv, 16); + + int length = 0, i; + char *encrypted = challenge17_encrypt(&length); + + // detecting the length of the padding (need at least two blocks) + int nr_blocks = length / BLOCKSIZE; + nr_blocks--; + + printf("length: %i, blocks: %i\n", length, nr_blocks); + + char *tmp = malloc(length); + char *decrypted = malloc(length);; + memset(decrypted, 0xAA, length); + // try to break the last byte of the first block + char j; + int k; + for(k=nr_blocks-1;k>=0;k--) { + memcpy(tmp, encrypted, length); + printf("k is %i\n", k); + for(j=1;j<=BLOCKSIZE;j++) { + // created the right padding for the last j bytes + for(i=1;i + +#define CHALLENGE19_FILE_NR 40 +int main() +{ + int i; + char **file = malloc(sizeof(char *)*CHALLENGE19_FILE_NR); + int length_file[CHALLENGE19_FILE_NR]; + int length[CHALLENGE19_FILE_NR]; + char **plaintext= malloc(sizeof(char *)*CHALLENGE19_FILE_NR); + char **ciphertext= malloc(sizeof(char *)*CHALLENGE19_FILE_NR); + char filename[] = "./task19_data/task19_00"; + + char nonce[16]; + generate_random_bytes(key, 16); + generate_random_bytes(nonce, 16); + + for(i=0;i