Question: https://colab.research.google.com/drive/1_w9guhY1n47Gc-kQCUiIJvK2x3hneM9J?usp=sharing Help with #3 and #4 ## Problem 3 (15 points): Power Hypothesis In this problem, you are asked to code up the routine to

https://colab.research.google.com/drive/1_w9guhY1n47Gc-kQCUiIJvK2x3hneM9J?usp=sharing

Help with #3 and #4

## Problem 3 (15 points): Power Hypothesis

In this problem, you are asked to code up the routine to calculate power hypothesis. Power hypothesis is to use the input plaintext to calculate a quantity that correlates well with the current measurements. In class, we have already discussed that one such quantity is the hamming weight (number of 1's) of output of the SBOX in the first round of AES after the input plaintext number is XORed with the corresponding key value.

The `powerHypothesis` routine should take as an input a vector `byteTrace` that corresponds to the plaintext number from each trace at a specific time - more specficially, `byteTrace` will be set to `plaintext[:,i]` where we iterate on the plaintext number from location `i` from all traces.

The output of `powerHypothesis` should be a matrix of size `numberOfTraces` x 256. Entry (i,j) of this matrix should be the hamming weight of the SBOX output of the XOR result between the plaintext number at trace i and the candidate key j.

To help you get started, I have already prepared the SBOX mapping for you.

# Declaration of the SBOX        SBOX=np.array([99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118,           202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192,           183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21,          4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117,          9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132,          83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207,          208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168,          81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210,          205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115,          96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219,          224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121,          231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8,          186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138,          112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158,          225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223,          140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22])          def powerHypothesis(byteTrace):      # Your code
Problem 4 (15 points): Correlation function In this problem, you are asked

def mycorr(A,B):
  # Your code

Problem 4 (15 points): Correlation function In this problem, you are asked to write the mycorr (A,B) that takes in the numberOfTraces x256 matrix A, the output of powerHypothesis, and the numberOfTraces X traceSize current measurement matrix B, and returns a 256x traceSize correlation matrix C. As a reminder, the correlation function is computed as follows: C(i, j) = | (A(:,i)A(:,i))'(B(:,j)B(:,j)) ||A(:,i)-A(:,i) || ||B(:,j)B(:,j) ||

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!