-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KAS-ECC Fixed Info Construction for SP 800-56Ar3 #1211
Comments
Honestly the SP is a bit frustrating when it comes to the fixed info construction, there's a fair amount of "SHALL"s mixed in with "SHOULD"s, "REQUIRED"s and "MAY"s. To answer your specific question, we are not requiring the AlgorithmId for testing against ACVP, it MAY be registered as a part of fixed info construction, though we are using a random value for its place, rather than the built value described in the above snippet from the SP (that relied on uses of "MAY" in a "REQUIRED" field - part of the reason it's not being used as a required field in the ACVP testing). There is also an outstanding issue #1177 that will change a bit about some of the fields in fixed info construction, in that it will allow the specification of lengths to be used for some of fields.
The above is missing the ephemeral data proceeding the serverId, the
where the two additionally concatenated bitstrings are the
Yes, but with the same issue as the previous section in that the ephemeral data from the other party should be included as the concatenated field of |
Just to clarify, my understanding is there is no ephemeral data in 0e, 2s. Should the concat use the static public key of party U? |
One thing that has quite frustrating about the test development is that there is such a yuge amount of translating from the sp to the acvp nomenclature. The sp uses C(xe, xs) to describe the schemes, and it seems to me to be the right level of abstraction. The sp rarely, if ever, uses the words "initiator" or "responder" to describe the roles, where ACVP uses partyU and partyV rarely (only in the fixed info pattern). Final rant: the ACVP uses server and iut when it should say partyU and partyV. The SP is more clear than the ACVP. My hope is that with acvVersion 2.0, the ACVP will map more closely to the sp. |
I don't think there was anything outstanding on this issue, but feel free to reopen/update if there was. |
Thanks for the explanation. |
Protocol Section
ACVP documenation
https://pages.nist.gov/ACVP/draft-hammett-acvp-kas-ecc-sp800-56ar3.html#name-fixedinfopatternconstructio
NIST Special Publication 800-56A Revision 3
https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf
Protocol Question
Are there discrepancies in fixed info pattern construction between SP 800-56Ar3 and ACVP coverage? For example, r3 states that AlgorithmID is required for OneStep KDF. ACVP does not require it.
From section 5.8.2.1 One-step Key Derivation
"AlgorithmID: A required non-null subfield that indicates how the derived keying material
will be parsed and for which algorithm(s) the derived secret keying material will be used.
For example, AlgorithmID might indicate that bits 1-112 are to be used as a 112-bit
HMAC key and that bits 113-240 are to be used as a 128-bit AES key."
Follow up question 1
Given the test group below, is the correct fixed info bit string the following? (I added the concat symbols for clarity; they would not be used in the shared secret computation.)
60CDCBA8230F3B9C63FE37E68A06F726||123456ABCD||434156536964
Follow up question 2
For the C(0e, 2s) scheme, party U is required to generate a Nonce. Given the same algorithmId, partyU and partyV, is the dkmNonce concatenated as follows?
dkmNonce
96C0B308DA641336026C918A83E2893370CD6BEE1AB3E80036AD73CED499FA2A7A1349F78882BD498A288EC31CD3FFCC
60CDCBA8230F3B9C63FE37E68A06F726||123456ABCD||96C0B308DA641336026C918A83E2893370CD6BEE1AB3E80036AD73CED499FA2A7A1349F78882BD498A288EC31CD3FFCC||434156536964
The test session group with one test case.
The text was updated successfully, but these errors were encountered: