summaryrefslogtreecommitdiff
path: root/src/add_vhdltbc/decrypt/ii-128
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@airbus.com>2019-03-26 15:20:53 +0100
committerKévin Le Gouguec <kevin.legouguec@airbus.com>2019-03-26 15:44:53 +0100
commitef905e42e625f54ed5b9d9042387d9a8e2510fa0 (patch)
tree2a59d03ecb22c3d09a8ac2c438adc7aa464ad33d /src/add_vhdltbc/decrypt/ii-128
parenta555bb68a86a8d57cd3cae3d5e3c14acfda6fd6d (diff)
downloadlilliput-ae-implem-ef905e42e625f54ed5b9d9042387d9a8e2510fa0.tar.xz
[implem-vhdl] Déplacement dans SOUMISSION_NIST
Diffstat (limited to 'src/add_vhdltbc/decrypt/ii-128')
-rw-r--r--src/add_vhdltbc/decrypt/ii-128/const_pack.vhd17
-rw-r--r--src/add_vhdltbc/decrypt/ii-128/tb/top_tb.vhd95
2 files changed, 112 insertions, 0 deletions
diff --git a/src/add_vhdltbc/decrypt/ii-128/const_pack.vhd b/src/add_vhdltbc/decrypt/ii-128/const_pack.vhd
new file mode 100644
index 0000000..064663a
--- /dev/null
+++ b/src/add_vhdltbc/decrypt/ii-128/const_pack.vhd
@@ -0,0 +1,17 @@
+library IEEE;
+library work;
+use IEEE.STD_LOGIC_1164.ALL;
+
+
+package const_pack is
+ constant ROUND_NB : integer;
+ constant TWEAK_LEN : integer;
+ constant KEY_LEN : integer;
+end const_pack;
+
+
+package body const_pack is
+ constant ROUND_NB : integer := 32;
+ constant TWEAK_LEN : integer := 128;
+ constant KEY_LEN : integer := 128;
+end const_pack; \ No newline at end of file
diff --git a/src/add_vhdltbc/decrypt/ii-128/tb/top_tb.vhd b/src/add_vhdltbc/decrypt/ii-128/tb/top_tb.vhd
new file mode 100644
index 0000000..9d77558
--- /dev/null
+++ b/src/add_vhdltbc/decrypt/ii-128/tb/top_tb.vhd
@@ -0,0 +1,95 @@
+library IEEE;
+library work;
+use IEEE.numeric_std.all;
+use IEEE.std_logic_1164.all;
+use work.crypt_pack.all;
+
+
+entity top_tb is
+end top_tb;
+
+architecture top_tb_arch of top_tb is
+
+component top is port (
+ start_i : in std_logic;
+ clock_i : in std_logic;
+ reset_i : in std_logic;
+ data_i : in bit128;
+ key_i : in bit_key;
+ data_o : out bit128;
+ tweak_i : in bit_tweak;
+ liliput_on_out : out std_logic
+ );
+end component;
+
+signal start_i_s, clock_i_s, reset_i_s : std_logic := '0';
+signal data_i_s : bit128;
+signal key_i_s : bit_key;
+signal tweak_i_s : bit_tweak;
+signal data_o_s : bit128;
+signal liliput_on_o_s : std_logic;
+
+begin
+DUT : top
+port map(
+ start_i => start_i_s,
+ clock_i => clock_i_s,
+ reset_i => reset_i_s,
+ data_i => data_i_s,
+ key_i => key_i_s,
+ tweak_i => tweak_i_s,
+ data_o => data_o_s,
+ liliput_on_out => liliput_on_o_s
+);
+
+
+-----------KEY128 TWEAK128----------
+data_i_s <= X"ddb2ef63ab68a803679590e8c85888ca";
+key_i_s <= X"0F0E0D0C0B0A09080706050403020100";
+tweak_i_s <= X"0F0E0D0C0B0A09080706050403020100";
+----RESULT X"0F0E0D0C0B0A09080706050403020100";
+
+----------KEY128 TWEAK192----------
+--data_i_s <= X"e5ce0026af060b52c2ceb2e610a2958d";
+--key_i_s <= X"0F0E0D0C0B0A09080706050403020100";
+--tweak_i_s <= X"17161514131211100F0E0D0C0B0A09080706050403020100";
+----RESULT X"0F0E0D0C0B0A09080706050403020100";
+
+-----------KEY192 TWEAK128----------
+--data_i_s <= X"31a0db08b76a1f7c646cbe506860b103";
+--key_i_s <= X"17161514131211100F0E0D0C0B0A09080706050403020100";
+--tweak_i_s <= X"0F0E0D0C0B0A09080706050403020100";
+----RESULT X"0F0E0D0C0B0A09080706050403020100";
+
+-----------KEY192 TWEAK192----------
+--data_i_s <= X"75f7fe11677769882102d57daac1464d";
+--key_i_s <= X"17161514131211100F0E0D0C0B0A09080706050403020100";
+--tweak_i_s <= X"17161514131211100F0E0D0C0B0A09080706050403020100";
+--RESULT X"0F0E0D0C0B0A09080706050403020100";
+
+-----------KEY256 TWEAK128----------
+--data_i_s <= X"4ecbf0236fbf05cefff41d9900efab8a";
+--key_i_s <= X"1f1e1d1c1b1a191817161514131211100F0E0D0C0B0A09080706050403020100";
+--tweak_i_s <= X"0F0E0D0C0B0A09080706050403020100";
+----RESULT X"0F0E0D0C0B0A09080706050403020100";
+
+-----------KEY256 TWEAK192----------
+--data_i_s <= X"3084f49f1927b4c090f9612718ff35d3";
+--key_i_s <= X"1f1e1d1c1b1a191817161514131211100F0E0D0C0B0A09080706050403020100";
+--tweak_i_s <= X"17161514131211100F0E0D0C0B0A09080706050403020100";
+----RESULT X"0F0E0D0C0B0A09080706050403020100";
+
+clock_i_s <= not(clock_i_s) after 100 ns;
+start_i_s <= '1';
+reset_i_s <= '0' , '1' after 100 ns;
+
+end top_tb_arch;
+
+configuration top_tb_conf of top_tb is
+ for top_tb_arch
+ for DUT : top
+ use entity work.top(top_arch);
+ --use configuration lib_sources.roundexe_arch;
+ end for;
+ end for;
+end configuration top_tb_conf;