Test vectors are so very important. Whenever possible, I try to verify all of my circuits. I was verifying the AES S-Box implementation and randomly picked: 0x00, 0x04, 0x10, 0xFF. Everything worked out except 0xFF, and due to the small data size, I can actually test every option. The resulting logic output for my S-Box follows:
Most of these entries are incorrect; however, I only noticed because the 0xFF value was off. This is just a good reminder of why I test every value if possible and why it's good to design test vectors. Now to determine if it is in my multiplicative inverse unit or the affine transform. (I'm betting the affine circuit because if the multiplicative inverse circuits were bad, 0x00 wouldn't have mapped to 0x63)
No comments:
Post a Comment