Given a curve, I am trying to limit the private key space to ultimately cut down the Schnorr signature size as follows:
Assume an elliptic curve $E$ over a field $F$ with generator point $G$ and the main subgroup's order being $\ell$. Field $F$ can be assumed to be secure. (For the sake of an example, it may be assumed that the parameters are those for Curve25519, but I am looking for a generic, canonical answer.)
I am looking at Schnorr signatures in particular, but the answer to my question will likely extend to EdDSA and its variants as well. Summarizing the signing process for private key $k$ (scalar) and message $M$ (sequence of bytes)
- Randomly select a scalar value $r$ (nonce) as ephemeral random scalar in the range $0 < r < \ell$.
- Generate the ephemeral curve point $R = [r]G$.
- Generate the hash value $c = H(\underline{R} || M)$, where $H$ is a cryptographic hash function, $\underline{R}$ denotes the serialized form of the point $R$ as a sequence of bytes and $||$ denotes concatenation. Interpret the sequence of bytes $c$ as a scalar integer.
- Compute the scalar value $S = r + ck \mod \ell$.
- The signature is now the tuple $(c, S)$.
Note how $S$ is the result of an addition and a multiplication taken modulo $\ell$. By limiting the private key space (i.e. the artificially reducing the possible range of $k$), it is therefore also possible to limit the size of the resulting $S$.
Assume now that the upper limit for $k$ is reduced from $\ell$ to $2^n$; within this reduced space, $k$ is still picked uniformly at random. The nonce value $r$ is picked in the normal space $0 < r < \ell$ in any case.
Given this background, my questions are:
- How does reducing the upper limit for $k$ improve an attacker's chances to learn $k$ other than the obvious reduction in brute force search space for any given $n \le \log_2 \ell$?
- How does reducing the upper limit for $k$ from $\ell$ to $2^n$ interact with short Schnorr signatures? I take “short Schnorr signatures” to mean trimming the hash value $c$ is trimmed to $b$, where $b$ is the strength of an elliptic curve in bits (e.g. for Curve25519, that would mean using a 128-bit hash value for $c$; see also Schnorr's original paper on p. 242 in particular as well as the subsequent analysis by Gregory Neven, Nigel P. Smart, Bogdan Warinschi. Hash Function Requirements for Schnorr Signatures, Journal of Mathematical Cryptology 3(1), 2009, pp. 69–87, which ends with an uncomfortably loose security reduction, but should be assumed safe for the purpose of this question).
- Assuming a curve over a prime field $F_q$, where $q$ is a 256-bit number, how much could the space for $k$ be reduced and still meet a target security level of 80-bit symmetric equivalent strength?
This is interesting for efficiency reasons: If the space for $k$ can be lowered significantly, the final computation $\mod \ell$ can be either skipped entirely or at least simplified, yielding speed increases at signing time.
I am aware that BLS signatures exist and yield short signatures (e.g. BLS12-381 gives 48-byte signatures), but they are significantly more complex to implement and compute. Similarly, I am aware that some multivariate cryptography schemes yield very short signatures (Gui comes to mind, though patented). If I just wanted very short signatures, I would look into schemes that are not Schnorr signatures.
A similar question has been posted before; “64 bit Elliptic Curve Key”. However, the answers there generally assumed either creation of a new curve over a 64-bit field or truncating the public key, neither of which apply here, as I am reducing the range for the private key, leaving the public key and the field as-is.