diff options
author | Camil Staps | 2015-04-23 09:30:44 +0200 |
---|---|---|
committer | Camil Staps | 2015-04-23 09:30:44 +0200 |
commit | 58aad98659ac50e76989dc612619f57541f99bdd (patch) | |
tree | 54baff08ebd950346f4e95f7ae6a3eb9826f7ff0 /test-vectors.py | |
parent | Readme (diff) |
Added test vectors
Diffstat (limited to 'test-vectors.py')
-rw-r--r-- | test-vectors.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test-vectors.py b/test-vectors.py new file mode 100644 index 0000000..2cb46d6 --- /dev/null +++ b/test-vectors.py @@ -0,0 +1,33 @@ +# Python PRIDE implementation test vectors +# Version: 1.0 +# Date: 23/04/2015 +# +# ============================================================================= +# +# Python implementation of the PRIDE cipher; test vectors +# Copyright (C) 2015 Camil Staps (info@camilstaps.nl) +# +# ============================================================================= +# +# These are the test vectors from appendix J of Block Ciphers -- Focus On The +# Linear Layer (feat. PRIDE); Martin R. Albrecht, Benedikt Driessen, Elif Bilge +# Kavun, Gregor Leander, Christof Paar, Tolga Yalçın: +# https://eprint.iacr.org/2014/453 +# +# ============================================================================= + +from pypride import Pride + +test_vectors = [ + {'key': "00000000000000000000000000000000", 'plaintext': "0000000000000000", 'ciphertext': "82b4109fcc70bd1f"}, + {'key': "00000000000000000000000000000000", 'plaintext': "ffffffffffffffff", 'ciphertext': "d70e60680a17b956"}, + {'key': "ffffffffffffffff0000000000000000", 'plaintext': "0000000000000000", 'ciphertext': "28f19f97f5e846a9"}, + {'key': "0000000000000000ffffffffffffffff", 'plaintext': "0000000000000000", 'ciphertext': "d123ebaf368fce62"}, + {'key': "0000000000000000fedcba9876543210", 'plaintext': "0123456789abcdef", 'ciphertext': "d1372929712d336e"} +] + +for vector in test_vectors: + cipher = Pride(vector['key'].decode('hex')) + encryption = cipher.encrypt(vector['plaintext'].decode('hex')) + decryption = cipher.decrypt(vector['ciphertext'].decode('hex')) + print encryption == vector['ciphertext'].decode('hex'), decryption == vector['plaintext'].decode('hex')
\ No newline at end of file |