Skip to content

RSASP1 differences between ACVP and CAVS #714

@smuellerDD

Description

@smuellerDD

Barring detailed implementation knowledge, we derived the following results from studying the test vectors using the standard key type:

  • CAVS: a valid key pair is generated using e=0x10001 from which n and d are sent to the IUT

  • ACVP: seemingly random values for n and d are generated without using a known e and without using p and q factors to construct d.

Our IUT has an issue with the ACVP approach: The modular exponentiation logic requires a valid key (n, d) as otherwise the key components are not accepted. Changing this logic for testing is not possible as it would completely alter the IUT which would make the test results irrelevant for the real-life logic.

Further, our IUT implements an additional step which requires the knowledge of e. It is certainly possible to deactivate the additional step for testing if the ACVP implementation cannot be changed.

Thus, may we ask:

  • the (n, d) key should be a valid key derived from proper p/q values

  • if possible, the (n, d) key pair should have a fixed e

Note: the ACVP test vectors for RSASP1 do not work with https://nmichaels.org/rsa.py whereas CAVS does.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions