KCDSA (Корейський алгоритм цифрового підпису на основі сертифіката) — це алгоритм цифрового підпису, створений групою під керівництвом (KISA). Це варіант ElGamal, аналогічний Алгоритму цифрового підпису та . Стандартний алгоритм реалізовано над , але також вказано варіант на еліптичних кривих (EC-KCDSA).
Для KCDSA потрібна колізійно стійка криптографічна хеш-функція, яка може створювати вихідні дані змінного розміру (від 128 до 256 біт із кроком 32 біт). , інший корейський стандарт, є запропонованим вибором.
Параметри
: велике просте таке, що для . : основний множник такий, що для . : базовий елемент порядку в .
Параметри користувача
: особистий ключ підпису підписувача такий, що . : відкритий ключ перевірки підписувача, обчислений де . : хеш-значення даних сертифіката, тобто .
У специфікації 1998 року неясно, який саме формат «Даних сертифіката». У переглянутій специфікації z визначається як B нижніх бітів відкритого ключа y, де B — розмір блоку хеш-функції в бітах (зазвичай 512 або 1024). Ефект полягає в тому, що перший вхідний блок відповідає y mod 2B.
: молодші B бітів y.
Хеш-функція
: колізійно стійка хеш-функція з |q|-бітовими дайджестами.
Підписання
Підписувач навмання вибирає ціле число і обчислює Потім обчислює першу частину: Потім обчислює другу частину: Якщо , процес потрібно повторити спочатку. Підписом є кортеж
Перевірка
Верифікатор перевіряє це і і відхиляє підпис як недійсний, якщо ні. Верифікатор обчислює Потім він перевіряє, чи
Посилання
Специфікація та аналіз KCDSA