Dale:
Thank you for the careful review.
> Summary:
>
> This draft is in great shape and ready for publication as a
> proposed standard RFC, with only a few editorial nits.
Good to hear.
> Nits/editorial comments:
>
> 2.2. Leighton-Micali Signature (LMS)
>
> The [HASHSIG] specification supports five tree sizes:
>
> LMS_SHA256_M32_H5;
> LMS_SHA256_M32_H10;
> LMS_SHA256_M32_H15;
> LMS_SHA256_M32_H20; and
> LMS_SHA256_M32_H25.
>
> This text seems redundant with the description in the preceding
> paragraph.
True. The intent was to provide the identifiers for the five tree sizes.
Perhaps the two paragraphs should be merged, with the sentence before the list
saying:
... As a result, the [HASHSIG] specification supports
five tree sizes; they are identified as:
> The LMS public key is the string consists of four elements: the
>
> Perhaps "An LMS public key consists of ...".
Yes, that reads better.
> u32str(lms_algorithm_type) || u32str(otstype) || I || T[1]
>
> The notation "T[1]" seems to be undefined (although the intended value
> is described clearly in the preceding paragraph).
Good catch. How about:
... and the m-byte string associated with the root
node of the tree (T[1]).
> 2.3. Leighton-Micali One-time Signature Algorithm (LM-OTS)
>
> n - The number of bytes associated with the hash function.
> [HASHSIG] supports only SHA-256 [SHS], with n=32.
>
> "associated" seems to me to be vague. Perhaps "The length in bytes of
> the output of the hash function."
Okay. How about:
n - The length in bytes of the hash function output. ...
> ls - The number of left-shift bits used in the checksum function,
> which is defined in Section 4.4 of [HASHSIG].
>
> "The number of left-shift bits" is not quite right. Perhaps "The
> number of bits of left-shifting used in ..." or "The amount/size of
> the left-shift used in ...".
These words were taken directly from Section 4.1 of RFC 8554. That said, I
think you are right that it could be more clear. How about:
ls - The number of bits that are left-shifted in the final step of
the checksum function, which is defined in Section 4.4
of [HASHSIG].
> 5. Signed-data Conventions
>
> This paragraph has to be a number of minor wording issues, which I
> have described interline:
>
> As specified in [CMS], the digital signature is produced from the
> message digest and the signer's private key. The signature is
> computed over different value depending on whether signed attributes
>
> s/value/values/
Fixed.
> are absent or present. When signed attributes are absent, the
> HSS/LMS signature is computed over the content. When signed
>
> It might help the reader to put a paragraph break before "When signed
> attributes are present..."
Okay. Done.
> attributes are present, a hash is computed over the content using the
> same hash function that is used in the HSS/LMS tree, and then a
> message-digest attribute is constructed with the resulting hash
>
> I would replace "with" with "containing" or "whose value is"
How about:
... a message-digest attribute is constructed to contain the
resulting hash value, and ...
> value, and then DER encode the set of signed attributes, which MUST
>
> For parallelism, this clause should start with a subject and a passive
> verb. Perhaps "the DER encoding is constructed of ...".
How about:
... and then the result of DER encoding the set of signed
attributes, which ...
>
> include a content-type attribute and a message-digest attribute, and
>
> It might be clearer if the clause "which MUST ... attribute" was put
> in parentheses.
Okay. There are a lot of commas in this sentence.
> then the HSS/LMS signature is computed over the output of the DER-
> encode operation. In summary:
>
> You can probably change "the output of the DER-encode operation" with
> "the DER encoding".
How about:
... then the HSS/LMS signature is computed over the
DER-encoded output.
> The paragraph contains four clauses joined by three successive "and
> then". You probably want to change that, perhaps breaking it out as a
> numbered/bulleted list. (What does the Editor recommend?)
I think the text is accurate. I wil wait for the RFC Editor to propose a
different format if they want to do so.
> And in this computation:
>
> IF (signed attributes are absent)
> THEN HSS_LMS_Sign(content)
> ELSE message-digest attribute = Hash(content);
>
> I think you want to add a hyphen:
> s/message-digest attribute/message-digest-attribute/
No. This is the way that the attributes are talked about in RFC 5652.
(See the indented paragraphs on Page 15 of RFC 5652 as an example.)
>
> HSS_LMS_Sign(DER(SignedAttributes))
Thanks again for the careful review.
Russ
_______________________________________________
Gen-art mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/gen-art