KCDSA ( Algoritmo de firma digital basado en certificados coreanos ) es un algoritmo de firma digital creado por un equipo liderado por la Agencia de Seguridad e Internet de Corea (KISA). Es una variante de ElGamal , similar al Algoritmo de firma digital y GOST R 34.10-94. El algoritmo estándar se implementa en, pero también se especifica una variante de curva elíptica ( EC-KCDSA ).
KCDSA requiere una función hash criptográfica resistente a colisiones que pueda producir una salida de tamaño variable (de 128 a 256 bits, en incrementos de 32 bits). Se sugiere utilizar HAS-160 , otro estándar coreano.
Parámetros de dominio
- : un número primo grande tal quepara.
- : un factor primo dede tal manera quepara.
- : un elemento básico del ordenen.
La versión revisada de la especificación requiere adicionalmente queser primo o que todos sus factores primos sean mayores que.
Parámetros de usuario
- : clave de firma privada del firmante tal que.
- : clave de verificación pública del firmante calculada pordónde.
- : un valor hash de datos de certificado , es decir,.
La especificación de 1998 no aclara el formato exacto de los "Datos del Certificado". En la especificación revisada, z se define como los B bits inferiores de la clave pública y, donde B es el tamaño del bloque de la función hash en bits (normalmente 512 o 1024). Esto significa que el primer bloque de entrada corresponde a y mod 2^B.
- : los B bits inferiores de y.
Función hash
- : una función hash resistente a colisiones con resúmenes de |q| bits.
Firma
Para firmar un mensaje:
- El firmante elige un número entero al azar.y calcula
- Luego calcula la primera parte:
- Luego calcula la segunda parte:
- Si, el proceso debe repetirse desde el principio.
- La firma es
La especificación es vaga sobre cómo el enteroser reinterpretado como una cadena de bytes de entrada para la función hash. En el ejemplo de la sección C.1 la interpretación es consistente conutilizando la definición de I2OSP de PKCS#1/RFC3447.
Verificando
Para verificar una firmaen un mensaje:
- El verificador comprueba queyy rechaza la firma como inválida si no lo es.
- El verificador calcula
- El verificador comprueba siSi es así, la firma es válida; de lo contrario, no lo es.
EC-KCDSA
EC-KCDSA es esencialmente el mismo algoritmo, pero utilizando criptografía de curva elíptica en lugar de criptografía de logaritmo discreto.
Los parámetros del dominio son:
- Una curva elípticasobre un cuerpo finito .
- Un puntoengenerando un subgrupo cíclico de orden primo. (a menudo se denotaen otros tratamientos de criptografía de curva elíptica.)
Los parámetros de usuario y los algoritmos son esencialmente los mismos que para el KCDSA logarítmico discreto, excepto que la exponenciación modular se reemplaza por la multiplicación de puntos. Las diferencias específicas son:
- La clave pública es
- En la generación de firmas,dónde
- En la verificación de firmas, el verificador comprueba si
Enlaces externos
- Especificación y análisis de KCDSA
- esquemas de firma digital
- Criptografía de curva elíptica
- Criptografía de clave pública
- Normas de Corea del Sur
- Fragmentos de criptografía