From 0c3876f9f5a6c6c0e9aabe494c04d614b8f647e1 Mon Sep 17 00:00:00 2001 From: Sam Hadow Date: Tue, 7 Apr 2026 09:18:55 +0200 Subject: [PATCH] test non linearity --- src/tea3.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/tea3.rs b/src/tea3.rs index b347c9b..633111a 100644 --- a/src/tea3.rs +++ b/src/tea3.rs @@ -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()); + } }