Re: How to select the ASN.1 structure of EC-SDSA (Schnorr signature with ECC)?
Michael StJohns <[email protected]> Mon, 22 Aug 2022 16:27:40 -0400
| Newsgroups | gmane.ietf.x509 |
|---|---|
| Message-ID | <[email protected]> |
On 8/22/2022 3:04 PM, Ernst G Giessmann wrote:
> Hi folks,
> TLDR;
> is anywhere in PKIX the ASN1 format of the EC based Schnorr digital
> signature algorithm EC-SDSA
> (aka https://oid-rep.orange-labs.fr/get/1.0.14888.3.0.13)
> defined?
>
AFAICT, not explicitly, but the German version of the spec
https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TR03111/BSI-TR-03111_V-2-1_pdf.pdf?__blob=publicationFile&v=1
suggests that the r field of a ECSDSA signature is still an integer,
converted from the R value using the OS2I primitive on formation, and
the I2OS primitive for verification. That works for both the simple
r||s and ASN1 encodings.
Mike
>
> This signature algo has the advantage, that it provides the full
> strength of the hash function used, regardless of the strength (bit
> length) of the underlying curve.
>
> Just to recall, it is defined as follows:
>
> Input:
> base point G of an elliptic curve
> privat key X (integer)
> public key [X]∙G (point on the curve)
> message to be signed M (octet string)
>
> Signing:
> (FE2BS is the straight-forward field element to bit string conversion,
> and BS2I the conversion of a base 2 representation to an integer)
> select a random integer K
> compute the pre-signature P = [K]∙G (point on the curve)
> witness R is computed as the hash of the x-coordinate PX of
> point P concatenated with the message M:
> R = h(FE2BS(PX) || M).
> the second part S of the signature (R,S) is computed as
> S = K + BS2I(R)X
>
> Verification:
> recompute the pre-signature
> P' = S∙G – BS2I(R)∙Y
> recompute the witness
> R' = h(FE2BS(P'X) || M)
> accept if R = R'
>
> In contrast to EC-DSA, where the elements R and S of the signature are
> both integers, we got here the full length (no truncation as for
> EC-DSA) hash value as a bit string R and an integer S.
>
> So I guess that the ASN.1 structure for EC-SDSA should be defined as
>
> ECSDSA-Sig-Value ::= SEQUENCE {
> r BIT STRING,
> s INTEGER }
>
> Is that correct?
>
> Thanks for any suggestions
> /Ernst.
>
> _______________________________________________
> pkix mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/pkix
_______________________________________________
pkix mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/pkix