Hi,
I ran into two bugs during simulation of GIFT-COFB_first_order:
First, in GIFT128.vhd, the variable "round_Num" ran out of bounds by one. By changing the definition line 199 to signal round_Num: natural range 0 to 40;, it was fixed.
And second, during encryption the outputted tag was always zero. After investigating the problem, I implemented a workaround and then the cipher implementation finally passed the tests.
My condition is in GIFTCOFB_Controller line 153: is now ((bdi_type = HDR_MSG or bdi_type = HDR_CT) and state /= output_tag)
I used random test vectors generated by cryptotvgen.
Can you confirm the problems?
Hi,
I ran into two bugs during simulation of GIFT-COFB_first_order:
First, in GIFT128.vhd, the variable "round_Num" ran out of bounds by one. By changing the definition line 199 to
signal round_Num: natural range 0 to 40;, it was fixed.And second, during encryption the outputted tag was always zero. After investigating the problem, I implemented a workaround and then the cipher implementation finally passed the tests.
My condition is in GIFTCOFB_Controller line 153: is now
((bdi_type = HDR_MSG or bdi_type = HDR_CT) and state /= output_tag)I used random test vectors generated by cryptotvgen.
Can you confirm the problems?