From fc9133056cd74cd94533b4456b9c17e64253c6bc Mon Sep 17 00:00:00 2001 From: hal8174 Date: Tue, 8 Jul 2025 22:40:41 +0200 Subject: [PATCH] Parallelize calculate models --- src/main.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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 }