KCDSA
KCDSA is a digital signature algorithm created by a team led by the Korea Internet & Security Agency. It is an ElGamal variant, similar to the Digital Signature Algorithm and GOST R 34.10-94. The standard algorithm is implemented over, but an elliptic curve variant is also specified.
KCDSA requires a collision-resistant cryptographic hash function that can produce a variable-sized output. HAS-160, another Korean standard, is the suggested choice.
Domain parameters
- : a large prime such that for.
- : a prime factor of such that for.
- : a base element of order in.
User parameters
- : signer's private signature key such that.
- : signer's public verification key computed by where.
- : a hash-value of Cert Data, i.e.,.
- : the lower B bits of y.
Hash Function
- : a collision resistant hash function with |q|-bit digests.
Signing
- Signer randomly picks an integer and computes
- Then computes the first part:
- Then computes the second part:
- If, the process must be repeated from the start.
- The signature is
Verifying
To verify a signature on a message :- Verifier checks that and and rejects the signature as invalid if not.
- Verifier computes
- Verifier checks if. If so then the signature is valid; otherwise it is not valid.
EC-KCDSA
The domain parameters are:
- An elliptic curve over a finite field.
- A point in generating a cyclic subgroup of prime order.
- The public key is
- In signature generation, where
- In signature verification, the verifier tests whether