VOOZH about

URL: https://en.wikipedia.org/wiki/EC-KCDSA

⇱ KCDSA - Wikipedia


Jump to content
From Wikipedia, the free encyclopedia
(Redirected from EC-KCDSA)

KCDSA (Korean Certificate-based Digital Signature Algorithm) is a digital signature algorithm created by a team led by the Korea Internet & Security Agency (KISA). It is an ElGamal variant, similar to the Digital Signature Algorithm and GOST R 34.10-94. The standard algorithm is implemented over 👁 {\displaystyle GF(p)}
, but an elliptic curve variant (EC-KCDSA) is also specified.

KCDSA requires a collision-resistant cryptographic hash function that can produce a variable-sized output (from 128 to 256 bits, in 32-bit increments). HAS-160, another Korean standard, is the suggested choice.

Domain parameters

[edit]

The revised version of the spec additional requires either that 👁 {\displaystyle (p-1)/(2q)}
be prime or that all of its prime factors are greater than 👁 {\displaystyle q}
.

User parameters

[edit]

The 1998 spec is unclear about the exact format of the "Cert Data". In the revised spec, z is defined as being the bottom B bits of the public key y, where B is the block size of the hash function in bits (typically 512 or 1024). The effect is that the first input block corresponds to y mod 2^B.

Hash Function

[edit]

Signing

[edit]

To sign a message 👁 {\displaystyle m}
:

The specification is vague about how the integer 👁 {\displaystyle w}
be reinterpreted as a byte string input to hash function. In the example in section C.1 the interpretation is consistent with 👁 {\displaystyle r=h(I2OSP(w,|q|/8))}
using the definition of I2OSP from PKCS#1/RFC3447.

Verifying

[edit]

To verify a signature 👁 {\displaystyle (r,s)}
on a message 👁 {\displaystyle m}
:

EC-KCDSA

[edit]

EC-KCDSA is essentially the same algorithm using Elliptic-curve cryptography instead of discrete log cryptography.

The domain parameters are:

The user parameters and algorithms are essentially the same as for discrete log KCDSA except that modular exponentiation is replaced by point multiplication. The specific differences are:

External links

[edit]