def encrypt(seed, sens_priv_num, c_factor, sensor_data): data_size = np.size(sensor_data) sensing_matrix = Utility.generate_sensing_matrix( seed, round((1 - c_factor) * data_size), data_size) compressed_data = np.dot(sensing_matrix, sensor_data) return compressed_data * Utility.generate_secret_value( seed, sens_priv_num)
def decrypt(seed, sensor_priv_num, org_data_len, n_nonzero_coefs, enc_data): enc_data /= Utility.generate_secret_value(seed, sensor_priv_num) enc_data_size = np.size(enc_data) sensing_matrix = Utility.generate_sensing_matrix(seed, enc_data_size, org_data_len) omp = orthogonal_mp(sensing_matrix, enc_data, n_nonzero_coefs = n_nonzero_coefs) return omp