From 58aad98659ac50e76989dc612619f57541f99bdd Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 23 Apr 2015 09:30:44 +0200 Subject: Added test vectors --- test-vectors.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 test-vectors.py (limited to 'test-vectors.py') 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 -- cgit v1.2.3