Crypto from Brief / Брифтен криптография

Track 3 — Learn & Apply · Crypto · 300 pts

RU — Спецификация: SteppeStream cipher v1

Перед вами 2-страничная статья с описанием нестандартной симметричной криптосхемы — варианта потокового шифра с детерминированным keystream-ом на основе SHA-256.

Конструкция

  1. Seed: ASCII-строка фиксированной длины, опубликованная в спецификации (см. ниже).
  2. Keystream: первые N байт хеша SHA-256(seed), где N равно длине шифротекста в байтах.
  3. Шифрование: побайтовый XOR — ciphertext[i] = plaintext[i] XOR keystream[i].
  4. Дешифрование: ровно та же операция — plaintext[i] = ciphertext[i] XOR keystream[i].

Параметры этой задачи

Seed (ASCII, ровно эти символы):

KYZYLORDA_STREAM_2026

Ciphertext (hex, 19 байт):

cc79ef48c9e88fd7aa6459f6fa16b34a0d2d8a

Задача

  1. Вычислите SHA-256("KYZYLORDA_STREAM_2026") — любым стандартным инструментом (Python hashlib, openssl, sha256sum).
  2. Декодируйте hex-строку шифротекста в 19 байт.
  3. Возьмите первые 19 байт хеша как keystream.
  4. Побайтово XOR-ните шифротекст с keystream.
  5. Полученные 19 байт — ASCII-плейнтекст. Введите его в форму ниже заглавными буквами без пробелов.

Reference (Python)

import hashlib
seed = b"KYZYLORDA_STREAM_2026"
ct   = bytes.fromhex("cc79ef48c9e88fd7aa6459f6fa16b34a0d2d8a")
ks   = hashlib.sha256(seed).digest()[:len(ct)]
print(bytes(c ^ k for c, k in zip(ct, ks)).decode())

KK — Спецификация: SteppeStream cipher v1

Алдыңызда стандартты емес симметриялы криптосұлбаның сипаттамасы бар 2 беттік мақала — SHA-256 негізіндегі детерминирленген keystream-i бар ағынды шифр нұсқасы.

Құрылым

  1. Seed: тұрақты ұзындықтағы ASCII-жол, сипаттамада жарияланған (төменде қара).
  2. Keystream: SHA-256(seed) хешінің алғашқы N байты, мұндағы N — шифрмәтін ұзындығы (байт).
  3. Шифрлеу: байтпен-байт XOR — ciphertext[i] = plaintext[i] XOR keystream[i].
  4. Шифрды шешу: дәл сол амал — plaintext[i] = ciphertext[i] XOR keystream[i].

Бұл тапсырманың параметрлері

Seed (ASCII, дәл осы таңбалар):

KYZYLORDA_STREAM_2026

Ciphertext (hex, 19 байт):

cc79ef48c9e88fd7aa6459f6fa16b34a0d2d8a

Тапсырма

  1. SHA-256("KYZYLORDA_STREAM_2026") есептеңіз — кез келген стандартты құралмен.
  2. Шифрмәтіннің hex-жолын 19 байтқа айналдырыңыз.
  3. Хештің алғашқы 19 байтын keystream ретінде алыңыз.
  4. Шифрмәтінді keystream-мен байт бойынша XOR жасаңыз.
  5. Алынған 19 байт — ASCII-плейнтекст. Оны төмендегі формаға бас әріптермен, бос орынсыз енгізіңіз.

Claim your flag / Получите флаг / Жалаушаны алыңыз

RU: Введите расшифрованный plaintext. Сервер вернёт ваш персональный флаг.
KK: Шешілген plaintext-ті енгізіңіз. Сервер сізге жеке жалаушаны қайтарады.

(автозаполнение из ?user=<id>)


Hints / Подсказки / Кеңестер

RU: Каждая подсказка снимает баллы.
KK: Әр кеңес ұпайды кемітеді.