keys = [int(key, 16) for key in sys.argv[1].split()] numTraces = int(sys.argv[2]) numBits = int(sys.argv[3]) ptextFile = sys.argv[4] tracesFile = sys.argv[5] duplication = int(sys.argv[6]) parallelism = int(sys.argv[7]) algorithm = sys.argv[8] f = open(ptextFile, 'r') f1 = open(tracesFile, 'r') if algorithm == 'Algo1': dpa = AlgoDPA(keys, numTraces, numBits, duplication, parallelism) elif algorithm == 'nlf': dpa = NLFDPA(keys, numTraces, numBits, duplication, parallelism) ########################################################## ## Generates Synthetic Traces Based On Prediction Model ## ########################################################## dpa.doSimulation(f) dpa.findLeakage(f1, peaks=0, index=None) correlations = dpa.attackSamples(dpa.peaks) #correlations = dpa.attackPeaks(dpa.peaks) #correlations = dpa.attackSelectedPeaks(dpa.peaks, 110)
from AlgoDPA import * import sys, sqlite3 if len(sys.argv) < 5: print 'Usage: <keys> <num_traces> <num_bits> <ptext_file> <traces_file>' exit() keys = [int(key, 16) for key in sys.argv[1].split()] numTraces = int(sys.argv[2]) numBits = int(sys.argv[3]) ptextFile = sys.argv[4] tracesFile = sys.argv[5] dpa = AlgoDPA(keys[0], numTraces, numBits) print 'reading files..' f = open(ptextFile, 'r') for j, line in enumerate(f): if j == numTraces: print 'done with simulations...' break if j%100 == 0 and j!=0: print 'Generating Simulation for '+str(j)+'th plain-text...' ptext = int(line, 2) dpa.generatePowerSimulationModel1(ptext) f1 = open(tracesFile, 'r') print 'finding peak values...' peaks = dpa.findPeaks(f1) print 'attacking...'
log.addHandler(ch) log.addHandler(fh) log.setLevel(logging.INFO) f = open(ptextFile, 'r') try: dpa = pickle.load(open(sys.argv[9], 'rb')) except (IOError, IndexError) as e: if duplication == 1: keys = [keys[0]] if algorithm == 'Algo1': dpa = AlgoDPA(keys, numTraces, numBits, duplication, parallelism) # elif algorithm == 'sbox1': # dpa = Sbox1DPA(keys, numTraces, duplication) elif algorithm == 'nlf': dpa = NLFDPA(keys, numTraces, numBits, duplication, parallelism) dpa.doSimulation(f) dpa.computeDeltas() f1 = open(tracesFile, 'r')
import sys import matplotlib.pyplot as plt sys.path.append('/home/barberkn/research/attack/Algo1/scripts') from AlgoDPA import * keys = [int(sys.argv[1], 16)] numBits = int(sys.argv[2]) ptextFile = sys.argv[3] leakageFile = sys.argv[4] duplication = int(sys.argv[5]) parallelism = int(sys.argv[6]) dpa = AlgoDPA(keys, 1, numBits, duplication, parallelism) dpa.loadLeakage(open(leakageFile, 'r')) f = open(ptextFile, 'r') ptext = f.readline().strip() chosenKey = None numTraces = 1 attacks = {} keyCorrelations = [] keys = dpa.unformatKey(keys) while ptext != '' and numTraces <= 250: #and chosenKey != keys: