test non linearity

This commit is contained in:
2026-04-07 09:18:55 +02:00
parent 5fd41bc35e
commit 0c3876f9f5

View File

@@ -394,4 +394,26 @@ mod tests {
assert_eq!(plaintext.to_vec(), decrypted);
}
#[test]
fn test_non_linearity() {
let key = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let state = vec![0; 8];
let mut cipher = Tea3::new(key, state);
cipher.init();
let mut keystream = Vec::with_capacity(72);
for _ in 0..72 {
keystream.push(cipher.next_byte());
}
let poly = Lfsr::berlekamp_massey(&keystream);
let history = &keystream[keystream.len() - (poly.len() - 1)..];
let predicted = Lfsr::predict_next_from_poly(history, &poly);
assert_ne!(predicted, cipher.next_byte());
}
}