diff --git a/src/main.rs b/src/main.rs index fb63d5e..16b0eec 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,7 +6,9 @@ use aes::{ cipher::{BlockEncrypt, KeyInit, generic_array::GenericArray}, }; use clap::Parser; -use rayon::iter::{IntoParallelIterator, ParallelIterator}; +use rayon::iter::{ + IndexedParallelIterator, IntoParallelIterator, IntoParallelRefMutIterator, ParallelIterator, +}; use std::{ io::{BufRead, Read}, path::{Path, PathBuf}, @@ -75,14 +77,13 @@ fn calculate_models(ciphertexts: &[[u8; 16]]) -> Vec<[Vec; 16]> { }) .collect(); - for k in 0..16 { - for j in 0..256 { + r.par_iter_mut().enumerate().for_each(|(j, r)| { + for k in 0..16 { for (i, c) in ciphertexts.iter().enumerate() { - r[j][k][i] = RSBOX[(c[k] ^ (j as u8)) as usize]; + r[k][i] = RSBOX[(c[k] ^ (j as u8)) as usize]; } } - } - + }); r }