From 2f0436a95946cbf115da3d96281b70c6f749c662 Mon Sep 17 00:00:00 2001 From: jz8u17 <j.zhan@soton.ac.uk> Date: Thu, 7 Apr 2022 12:02:38 +0800 Subject: [PATCH] Updated figure presentation in exploration --- aes/aesa.c | 8 ++++---- aes/main.c | 12 ++++++----- lib/opta/config.h | 4 ++-- .../design_comparison/design_comparison.py | 19 ++++++++---------- scripts/design_comparison/voltage_traces.pdf | Bin 0 -> 31223 bytes 5 files changed, 21 insertions(+), 22 deletions(-) create mode 100644 scripts/design_comparison/voltage_traces.pdf diff --git a/aes/aesa.c b/aes/aesa.c index 9d6078b..ce1acad 100644 --- a/aes/aesa.c +++ b/aes/aesa.c @@ -11,8 +11,8 @@ // 128-bit encryption void aes_128_enc(uint8_t* key, uint8_t* iv, uint8_t* plaintext, uint8_t* ciphertext, uint8_t num_blocks) { - // atom_func_start(AES_128_ENC); - atom_func_start_linear(AES_128_ENC, num_blocks / 16); + atom_func_start(AES_128_ENC); + // atom_func_start_linear(AES_128_ENC, num_blocks / 16); // Reset AES Module (clears internal state memory) AESACTL0 = AESSWRST; @@ -68,8 +68,8 @@ void aes_128_enc(uint8_t* key, uint8_t* iv, uint8_t* plaintext, while (!(DMA0CTL & DMAIFG)) {} DMA0CTL &= ~DMAIFG; - // atom_func_end(AES_128_ENC); - atom_func_end_linear(AES_128_ENC, num_blocks / 16); + atom_func_end(AES_128_ENC); + // atom_func_end_linear(AES_128_ENC, num_blocks / 16); } // 128-bit decryption, old diff --git a/aes/main.c b/aes/main.c index 2ebbbce..5d9351f 100644 --- a/aes/main.c +++ b/aes/main.c @@ -133,8 +133,8 @@ unsigned char __attribute__((section(".persistent"))) input[4096] = unsigned char __attribute__((section(".persistent"))) output[4096]; // unsigned char __attribute__((section(".persistent"))) output2[4096]; -uint8_t __attribute__((section(".persistent"))) rd_arr[50] = {15, 5, 7, 11, 13, 5, 3, 7, 3, 5, 12, 8, 4, 6, 10, 13, 8, 4, 5, 5, 7, 4, 2, 7, 10, 14, 5, 9, 6, 8, 9, 14, 5, 12, 10, 11, 15, 4, 3, 11, 6, 2, 10, 7, 6, 10, 8, 7, 9, 11}; -uint8_t __attribute__((section(".persistent"))) rd_i = 0; +// uint8_t __attribute__((section(".persistent"))) rd_arr[50] = {15, 5, 7, 11, 13, 5, 3, 7, 3, 5, 12, 8, 4, 6, 10, 13, 8, 4, 5, 5, 7, 4, 2, 7, 10, 14, 5, 9, 6, 8, 9, 14, 5, 12, 10, 11, 15, 4, 3, 11, 6, 2, 10, 7, 6, 10, 8, 7, 9, 11}; +// uint8_t __attribute__((section(".persistent"))) rd_i = 0; // void dummy_function(uint16_t cnt) { // atom_func_start_linear(0, cnt); @@ -176,9 +176,11 @@ int main(void) { // uart_init(); // Init UART for printing // uint16_t j = 1; // For dummy function test for (;;) { + // ******* Linear adaptation test ******* // aes_128_enc(key, iv, input, output, 16 * rd_arr[rd_i]); - aes_256_enc(key, iv, input, output, 16 * rd_arr[rd_i]); - if (++rd_i == 50) rd_i = 0; + // aes_256_enc(key, iv, input, output, 16 * rd_arr[rd_i]); + // if (++rd_i == 50) rd_i = 0; + // ******* Dummy function test ******* // dummy_function(j); // if (++j == 10) { @@ -191,7 +193,7 @@ int main(void) { // aes_128_enc(key, iv, input, output, 16); // Encrypt 256B data // aes_128_enc(key, iv, input, output, 32); // Encrypt 512B data - // aes_128_enc(key, iv, input, output, 64); // Encrypt 1KB data + aes_128_enc(key, iv, input, output, 64); // Encrypt 1KB data // aes_128_enc(key, iv, input, output, 96); // Encrypt 1.5KB data // aes_128_enc(key, iv, input, output, 128); // Encrypt 2KB data // aes_128_enc(key, iv, input, output, 160); // Encrypt 2.5KB data diff --git a/lib/opta/config.h b/lib/opta/config.h index 8d21ff1..1f9a28f 100644 --- a/lib/opta/config.h +++ b/lib/opta/config.h @@ -24,11 +24,11 @@ #define COMPARATOR_DELAY __delay_cycles(280) // 35us -#define DEFAULT_HI_THRESHOLD 56 // Value from threshold table +#define DEFAULT_HI_THRESHOLD 66 // Value from threshold table #define DEFAULT_LO_THRESHOLD 95 // Value from threshold table // Should be 2V // otherwise our ADC doesn't work -#define PROFILING_THRESHOLD 21 // Index from threshold table, initial threshold +#define PROFILING_THRESHOLD 15 // Index from threshold table, initial threshold #define FIXED_THRESHOLD 35 // Used in test #define THRESHOLD_TABLE_MAX_INDEX 28 #define ADC_STEP 32 diff --git a/scripts/design_comparison/design_comparison.py b/scripts/design_comparison/design_comparison.py index 858dfdf..d1b0ab7 100644 --- a/scripts/design_comparison/design_comparison.py +++ b/scripts/design_comparison/design_comparison.py @@ -317,29 +317,26 @@ def main_single(): ax1 = fig.add_subplot(gs[0, 0]) ax1.plot(t_trace, v_trace_samoyed) ax1.tick_params(direction='in', top=True, right=True) - ax1.set_title('Samoyed', fontname="Times New Roman") - ax1.set_xlabel('Time (s)', fontname="Times New Roman") - ax1.set_ylabel('Voltage (V)', fontname="Times New Roman") + ax1.xaxis.set_ticklabels([]) + ax1.set_ylabel('Samoyed\nVoltage (V)', fontname="Times New Roman") ax1.set_xlim([0, 2]) - ax1.set_ylim([1.5, 3]) + ax1.set_ylim([1.7, 3]) ax2 = fig.add_subplot(gs[1, 0]) ax2.plot(t_trace, v_trace_debs_high) ax2.tick_params(direction='in', top=True, right=True) - ax2.set_title('DEBS High', fontname="Times New Roman") - ax2.set_xlabel('Time (s)', fontname="Times New Roman") - ax2.set_ylabel('Voltage (V)', fontname="Times New Roman") + ax2.xaxis.set_ticklabels([]) + ax2.set_ylabel('DEBS High\nVoltage (V)', fontname="Times New Roman") ax2.set_xlim([0, 2]) - ax2.set_ylim([1.5, 3]) + ax2.set_ylim([1.7, 3]) ax3 = fig.add_subplot(gs[2, 0]) ax3.plot(t_trace, v_trace_repa) ax3.tick_params(direction='in', top=True, right=True) - ax3.set_title('Adaptive', fontname="Times New Roman") ax3.set_xlabel('Time (s)', fontname="Times New Roman") - ax3.set_ylabel('Voltage (V)', fontname="Times New Roman") + ax3.set_ylabel('OPTIC Oracle\nVoltage (V)', fontname="Times New Roman") ax3.set_xlim([0, 2]) - ax3.set_ylim([1.5, 3]) + ax3.set_ylim([1.7, 3]) # plt.show() plt.savefig('voltage_traces.pdf') diff --git a/scripts/design_comparison/voltage_traces.pdf b/scripts/design_comparison/voltage_traces.pdf new file mode 100644 index 0000000000000000000000000000000000000000..89b0406993f912ca98ca8daf128f6bd0d2435b31 GIT binary patch literal 31223 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 Y6_+Fym4J&ZV*>*NV=h%ySARDy0B{66-2eap literal 0 HcmV?d00001 -- GitLab