from custom.custom_models.neural_networks import * from aisy.sca_deep_learning_aes import AisyAes aisy = AisyAes() aisy.set_database_name("database_ascad.sqlite") aisy.set_dataset("ascad-variable.h5") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_batch_size(400) aisy.set_epochs(20) aisy.set_neural_network(mlp) aisy.run( save_to_npz=["aes_attack"] )
from custom.custom_models.neural_networks import * from aisy.sca_deep_learning_aes import AisyAes aisy = AisyAes() aisy.set_database_name("database_ascad.sqlite") aisy.set_dataset("ascad-variable.h5") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_batch_size(400) aisy.set_epochs(20) aisy.set_neural_network(mlp) aisy.run(visualization=[4000])
from aisy.sca_deep_learning_aes import AisyAes aisy = AisyAes() aisy.set_dataset("ascad-variable.h5") aisy.set_database_name("database_ascad.sqlite") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_number_of_profiling_traces(100000) aisy.set_number_of_attack_traces(1000) aisy.set_batch_size(400) aisy.set_epochs(10) # for each hyper-parameter, specify the options in the grid search grid_search = { "neural_network": "mlp", "hyper_parameters_search": { # 'conv_layers': [1, 2], # 'kernel_1': [4, 8], # 'kernel_2': [2, 4], # 'stride_1': [1], # 'stride_2': [1], # 'filters_1': [8, 16], # 'filters_2': [8, 16], # 'pooling_type_1': ["Average", "Max"], # 'pooling_type_2': ["Average", "Max"], # 'pooling_size_1': [1, 2], # 'pooling_size_2': [1, 2], # 'pooling_stride_1': [1, 2], # 'pooling_stride_2': [1, 2], 'neurons': [100, 200], 'layers': [3, 4], 'learning_rate': [0.001],
from aisy.sca_deep_learning_aes import AisyAes aisy = AisyAes() aisy.set_dataset("ascad-variable.h5") aisy.set_database_name("database_ascad.sqlite") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_number_of_profiling_traces(100000) aisy.set_number_of_attack_traces(2000) aisy.set_batch_size(400) aisy.set_epochs(20) # for each hyper-parameter, specify the options in the grid search grid_search = { "neural_network": "mlp", "hyper_parameters_search": { 'neurons': [50, 100], 'layers': [2, 3], 'learning_rate': [0.001, 0.0001], 'activation': ["relu", "selu"] }, "metric": "guessing_entropy", "stop_condition": False, "stop_value": 1.0, "train_after_search": True } aisy.run( key_rank_attack_traces=1000, grid_search=grid_search, ensemble=[10], probability_rank_plot=True
from custom.custom_models.neural_networks import * from aisy.sca_deep_learning_aes import AisyAes def mlp(classes, number_of_samples, neuron, layer, activation, learning_rate): model = Sequential(name="my_mlp") for l_i in range(layer): if l_i == 0: model.add(Dense(neuron, activation=activation, input_shape=(number_of_samples,))) else: model.add(Dense(neuron, activation=activation)) model.add(Dense(classes, activation=None)) model.add(Activation(activation="softmax")) model.summary() optimizer = Adam(lr=learning_rate) model.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['accuracy']) return model aisy = AisyAes() aisy.set_dataset("ascad-variable.h5") aisy.set_database_name("database_ascad.sqlite") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_batch_size(400) aisy.set_epochs(50) aisy.set_neural_network(mlp(9, 1400, 200, 3, "relu", 0.001)) aisy.run()
from custom.custom_models.neural_networks import * from aisy.sca_deep_learning_aes import AisyAes aisy = AisyAes() aisy.set_dataset("ascad-variable.h5") aisy.set_database_name("database_ascad_early_stopping.sqlite") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_number_of_profiling_traces(100000) aisy.set_number_of_attack_traces(2000) aisy.set_batch_size(400) aisy.set_epochs(25) aisy.set_neural_network(mlp) early_stopping = { "metrics": { "accuracy": { "direction": "max", "class": "accuracy", "parameters": [] }, "loss": { "direction": "min", "class": "loss", "parameters": [] }, "number_of_traces": { "direction": "min", "class": "number_of_traces", "parameters": [] }, "success_rate": {
from custom.custom_models.neural_networks import * from aisy.sca_deep_learning_aes import AisyAes from custom.custom_tables.tables import * from app import databases_root_folder aisy = AisyAes() aisy.set_dataset("ascad-variable.h5") aisy.set_database_name("database_ascad.sqlite") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_number_of_profiling_traces(10000) aisy.set_number_of_attack_traces(1000) aisy.set_batch_size(400) aisy.set_epochs(20) aisy.set_neural_network(mlp) aisy.run() start_custom_tables(databases_root_folder + "database_ascad.sqlite") session = start_custom_tables_session(databases_root_folder + "database_ascad.sqlite") db_inserts = aisy.get_db_inserts() new_insert = CustomTable(value1=10, value2=20, value3=30, analysis_id=aisy.get_analysis_id()) session.add(new_insert) session.commit()
from custom.custom_models.neural_networks import * from aisy.sca_deep_learning_aes import AisyAes aisy = AisyAes() aisy.set_database_name("database_ascad.sqlite") aisy.set_dataset("ascad-variable.h5") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_batch_size(400) aisy.set_epochs(20) aisy.set_neural_network(mlp) aisy.run(probability_rank_plot=True)
from custom.custom_models.neural_networks import * from aisy.sca_deep_learning_aes import AisyAes from lottery_ticket_pruner import LotteryTicketPruner epochs = 50 aisy = AisyAes() aisy.set_dataset("ascad-variable.h5") aisy.set_database_name("database_ascad.sqlite") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_number_of_profiling_traces(100000) aisy.set_number_of_attack_traces(2000) aisy.set_batch_size(400) aisy.set_epochs(epochs) aisy.set_neural_network(mlp) initial_weights = aisy.get_model().get_weights() param1 = 0 custom_callbacks = [{"class": "SaveWeights", "parameters": [param1]}] aisy.run(callbacks=custom_callbacks, visualization=[5000]) custom_callbacks = aisy.get_custom_callbacks() callback_weights = custom_callbacks["SaveWeights"] trained_weights = callback_weights.get_weights()[epochs - 1] aisy.set_neural_network(mlp) model = aisy.get_model()
from custom.custom_models.neural_networks import * from aisy.sca_deep_learning_aes import AisyAes from custom.custom_data_augmentation.data_augmentation import * aisy = AisyAes() aisy.set_dataset("ascad-variable.h5") aisy.set_database_name("database_ascad.sqlite") aisy.set_aes_leakage_model(leakage_model="HW", byte=2) aisy.set_batch_size(400) aisy.set_epochs(20) aisy.set_neural_network(mlp) aisy.run(data_augmentation=[data_augmentation_gaussian_noise, 100])