Add CFI CFG
Add CFI CFG
len np.load np.load np.load tuple dict id id id id id id id id id id id if const.V_TRACES == id(all_traces) and const.V_PLAIN == id(pt return np.cov(x, y)[0][1] range range for i in range(len(tracesTrain)): np.zeros for i in range(9): np.zeros np.zeros for HW in range(9): np.zeros np.zeros for j in range(len(tracesTest)): raise return input
(not (const.V_TRACES == id(all_traces) and const.V_PLAIN == id(pt) and const.V_TRACES == id(all_traces) and const.V_PLAIN == id(pt
range(len(tracesTrain)) calls range(9) calls calls range(9) calls range(len(tracesTest))
const.V_KEY == id(knownkey))) ) and const.V_KEY == id(knownkey)
tracesTrain = all_traces[0:number_of_training]
print('Datasets have been r...') ptTrain = pt[0:number_of_training] HW = outputSboxHW[i]
bin.count range zip len TracesHW = [np.array(TracesHW[HW]) for HW in range(9)] range len SumDiff = np.zeros(len(tracesTrain[0])) Means[i] = np.average(TracesHW[i], 0) range range pooled_covMatrix = covMatrix.mean(axis=0) for i in range(numFeatures): range test_X = [tracesTest[j][features[i]] for i in range(len(features))] default call
assert True == False tracesTest = all_traces[9000:9000 + number_of_tesing] TracesHW[HW].append(tracesTrain[i])
ptTest = pt[9000:9000 + number_of_tesing]
calls True == False calls calls calls calls calls calls calls range(numFeatures) calls
print np.array range if id(intermediate) == const.ADDR_INTERMEDIATE and len(intermediate TracesHW.append len np.zeros for i in range(9): np.average covMatrix.mean if id(intermediate) == const.ADDR_INTERMEDIATE and len(intermediate range meanMatrix[HW][i] = Means[HW][features[i]] len range for kguess in range(0, 256):
id(intermediate) == const.ADDR_INTERMEDIATE and len(intermediate (not (id(intermediate) == const.ADDR_INTERMEDIATE and len(intermediate) == id(intermediate) == const.ADDR_INTERMEDIATE and len(intermediate (not (id(intermediate) == const.ADDR_INTERMEDIATE and len(intermediate) ==
range(9) calls calls range(0, 256)
) == const.LEN_INTERMEDIATE const.LEN_INTERMEDIATE)) ) == const.LEN_INTERMEDIATE const.LEN_INTERMEDIATE))
print('Top 10 guesses: ', P_k.argsort()[-10:...'t')
print( tarefs = np.argsort(P_k)[::-1] HW = hamming[sbox[ptTest[j][subkey] ^ kguess]]
SumDiff_old = SumDiff.copy()
print('The intermediate dic...') intermediate['pooled_covMatrix'] = pooled_covMatrix 'The intermediate dic...' key_rank[subkey] = list(tarefs).index(knownkey[j][subkey]) rv = multivariate_normal(meanMatrix[HW], pooled_covMatrix)
for subkey in range(16): intermediate['TracesHW'] = TracesHW len features = [] for j in range(i): range for j in range(numFeatures): len range
assert True == False intermediate['meanMatrix'] = meanMatrix ) print('Highest GE: ', key_rank[subkey], ...' p_kj = rv.pdf(test_X)
featureSpacing = featureSpacing
assert True == False P_k[kguess] += np.log(p_kj)
')
calls range(16) calls True == False calls calls range(i) calls True == False calls range(numFeatures) calls calls calls calls calls calls calls
x = TracesHW[HW][:, (features[i])]
range print('subkey[%d]' % subkey) print SumDiff.copy for i in range(numFeatures): range SumDiff += np.abs(Means[i] - Means[j]) print range y = TracesHW[HW][:, (features[j])] print print np.argsort list.index multivariate_normal rv.pdf np.log
covMatrix[HW, i, j] = cov(x, y)
HammingClassGenerator(tracesTrain, ptTrain, subkey) print('The function has bee...') intermediate['features'] = features print('The intermediate dic...')
id features.append max min SumDiff.argmax for j in range(featureMin, featureMax):
TracesHW = intermediate['TracesHW'] assert True == False intermediate['Means'] = Means assert True == False
calls calls True == False calls range(featureMin, featureMax) calls True == False
if id(FeatureSelector) == const.F_F2:
FeatureSelector print
if id(MatrixGenerator) == const.F_F3:
MatrixGenerator print
if id(SubkeyGuessing) == const.F_F4:
print SubkeyGuessing
CFIonTA