Kalyna / Калина
DSTU 7624:2014 · block cipherблочний шифр
verified
верифіковано
"kalyna" — guelder rose / viburnum, a plant name
«калина» — назва рослини, символічної для української культури
All 5 block/key-size variants; full DSTU 7624 mode coverage
(ECB/CBC/CFB/OFB/CTR/CMAC/KW/CCM/GCM/GMAC/XTS).
Усі 5 варіантів блоку/ключа; повне покриття режимів DSTU 7624
(ECB/CBC/CFB/OFB/CTR/CMAC/KW/CCM/GCM/GMAC/XTS).
Official test vectors, cross-checked against real
Bouncy Castle (Java & .NET). CCM/GCM modes are dual-oracle but not yet confirmed
against the primary DSTU 7624 text itself — see the callout below.
Офіційні тестові вектори, звірені з реальною Bouncy
Castle (Java і .NET). Режими CCM/GCM пройшли подвійний оракул, але ще не звірені з самим
первинним текстом DSTU 7624 — див. примітку нижче.
Kupyna / Купина
DSTU 7564:2014 · hash functionгеш-функція
verified
верифіковано
"kupyna" — literally "bush"
«купина» — буквально «кущ»
256- and 512-bit output, one-shot digest and streaming
update/finalize.
Вихід 256 і 512 біт, одноразовий дайджест і потокові
update/finalize.
Official test vectors, cross-checked against real
Bouncy Castle (Java & .NET).
Офіційні тестові вектори, звірені з реальною Bouncy
Castle (Java і .NET).
Strumok / Струмок
DSTU 8845:2019 · stream cipherпотоковий шифр
verified
верифіковано
"strumok" — brook, a small stream
«струмок» — невеликий потік води, струмочок
256- and 512-bit keystream generation.
Генерація keystream, 256 і 512 біт.
Confirmed against DSTU 8845:2019's own worked examples
(Додаток Д) — a genuine library scan, all 8 official cases match the implementation's output
byte-for-byte. Its Ti[a]/Mulα/Mulα-1 constant
tables are spot-checked against the same scan too (zero mismatches on ~100 sampled entries,
not a full transcription); the S-box is shared with Kalyna/Kupyna and already cross-checked
there against real Bouncy Castle.
Звірено із власними прикладами для перевіряння ДСТУ
8845:2019 (Додаток Д) — справжній бібліотечний скан, усі 8 офіційних прикладів збігаються з
виходом реалізації побайтно. Таблиці констант Ti[a]/Mulα/Mulα-1
теж точково звірені з тим самим сканом (жодних розбіжностей на ~100 вибіркових значеннях, не
повна транскрипція); S-box спільний з Калиною/Купиною і вже звірений там з реальною Bouncy
Castle.
DSTU 4145
DSTU 4145-2002 · digital signatureцифровий підпис
verified
верифіковано
ECDSA-style signatures on a national elliptic curve
ECDSA-подібний підпис на національній еліптичній кривій
crypto_sign: deterministic, Kupyna-KMAC-derived
nonce — no caller-supplied randomness to get wrong.
crypto_sign: детермінований nonce, похідний від
Kupyna-KMAC — немає користувацької випадковості, яку можна зіпсувати.
Vector-confirmed against the primary standard text.
Звірено з первинним текстом стандарту за тестовими
векторами.
DSTU 9041
DSTU 9041:2020 · asymmetric encryptionасиметричне шифрування
verified
верифіковано
Hybrid encryption over twisted Edwards curves
Гібридне шифрування на скручених кривих Едвардса
crypto_box: the libsodium crypto_box_seal
equivalent — a KEM wraps a random seed, which derives the key for the actual message via
crypto_secretstream.
crypto_box: аналог crypto_box_seal з
libsodium — KEM обгортає випадкове зерно, яке породжує ключ для самого повідомлення через
crypto_secretstream.
Vector-confirmed against the standard's own worked
examples (Додаток Г) for both the recommended l(p)=256/E256/1 curve and its
l(p)=512/E512/1 sibling (crypto_box512) — the standard also defines
384- and 768-bit variants, not yet implemented. The crypto_box composition
itself (KEM + KDF + crypto_secretstream) isn't DSTU-specified, so it has no
vector oracle of its own — verified by property and tamper testing instead, the same posture
as crypto_secretstream.
Звірено з власними прикладами стандарту (Додаток Г) для
рекомендованої кривої l(p)=256/E256/1 і для її сестри l(p)=512/
E512/1 (crypto_box512) — стандарт також визначає варіанти на 384 і 768 біт, ще
не реалізовані. Сама композиція crypto_box (KEM + KDF +
crypto_secretstream) не визначена стандартом, тож не має власного тестового
оракула — верифікована властивісними тестами й тестами на підробку, як і
crypto_secretstream.
Two constructions worth reading the fine print on
Дві конструкції, варті уваги в деталях
Kalyna-CCM/GCM (used by the mid-level kalyna-ccm
CLI command and by crypto_secretbox): dual-oracle verified, but not yet
confirmed against the primary DSTU 7624 text for these specific modes. The AEAD
framing behind uacrypt encrypt/decrypt
(crypto_secretstream) is provisional in a stronger sense still — it's an
original, chunked-streaming construction with no DSTU standard defining anything like it, so
no official vector can ever exist for it. It's verified instead by property, tamper, and
misuse testing, not by a vector match.
Kalyna-CCM/GCM (використовується у CLI-команді
kalyna-ccm та в crypto_secretbox): пройшли подвійний оракул, але ще
не звірені з первинним текстом DSTU 7624 саме для цих режимів. AEAD-обгортка за
uacrypt encrypt/decrypt (crypto_secretstream)
— попередня в ще сильнішому сенсі: це власна, чанкована потокова конструкція, для якої в
DSTU взагалі немає відповідника, тож офіційний тестовий вектор для неї в принципі не може
існувати. Її перевіряють властивісними тестами, тестами на підробку та тестами на
хибне використання — а не звірянням із вектором.
Looking for something familiar?
Шукаєш щось знайоме?
Rough orientation for readers who don't know these standards by name — not a claim
of cryptographic equivalence. Real differences exist under every row below.
Приблизний орієнтир для тих, хто не знає ці стандарти на пам'ять — не твердження
про криптографічну еквівалентність. Під кожним рядком є реальні відмінності.