Make num traces argument
This commit is contained in:
parent
fc9133056c
commit
92e741ba77
1 changed files with 5 additions and 6 deletions
11
src/main.rs
11
src/main.rs
|
|
@ -118,14 +118,12 @@ fn read_msgs(path: impl AsRef<Path>) -> (Vec<[u8; 16]>, [u8; 16]) {
|
|||
(r, last_round_key(key))
|
||||
}
|
||||
|
||||
const TRACES: usize = 87;
|
||||
|
||||
fn read_traces(path: impl AsRef<Path>, capacity: usize) -> Vec<Vec<u8>> {
|
||||
fn read_traces(path: impl AsRef<Path>, num_traces: usize, capacity: usize) -> Vec<Vec<u8>> {
|
||||
let file = std::fs::File::open(path).unwrap();
|
||||
|
||||
let bufreader = std::io::BufReader::new(file);
|
||||
|
||||
let mut r: Vec<Vec<u8>> = (0..TRACES).map(|_| vec![0; capacity]).collect();
|
||||
let mut r: Vec<Vec<u8>> = (0..num_traces).map(|_| vec![0; capacity]).collect();
|
||||
|
||||
for (i, l) in bufreader.lines().enumerate() {
|
||||
let l = l.unwrap();
|
||||
|
|
@ -235,6 +233,7 @@ fn key_schedule(mut key: [u8; 16], round: usize) -> [u8; 16] {
|
|||
|
||||
#[derive(Debug, Parser)]
|
||||
struct Args {
|
||||
num_traces: usize,
|
||||
#[arg(default_value = "./alan/Task-3-example_traces/test_msgs.csv")]
|
||||
msgs: PathBuf,
|
||||
#[arg(default_value = "./alan/Task-3-example_traces/test_traces.csv")]
|
||||
|
|
@ -254,7 +253,7 @@ fn main() {
|
|||
println!("calculate models: {:?}", start.elapsed());
|
||||
|
||||
let start = std::time::Instant::now();
|
||||
let traces = read_traces(args.traces, cyphertext.len());
|
||||
let traces = read_traces(args.traces, args.num_traces, cyphertext.len());
|
||||
println!("read traces: {:?}", start.elapsed());
|
||||
|
||||
let start = std::time::Instant::now();
|
||||
|
|
@ -262,7 +261,7 @@ fn main() {
|
|||
let (max_index, max) = (0..256)
|
||||
.into_par_iter()
|
||||
.map(|key_hypothesis| {
|
||||
let m = (0..TRACES)
|
||||
let m = (0..args.num_traces)
|
||||
.map(|trace_index| {
|
||||
correlation(bit, key_hypothesis, trace_index, &models, &traces).abs()
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue