178 words
1 minutes
SCSC2026 Final - ROT - Cryptography Writeup

Category: Cryptography

Flag: scsc26{4hh_0v3rth1nk5_t00_much}

Description: flag format: scsc26{…}

The challenge gave a small ZIP file. Triage showed it contained README.md and enc.txt, with the encrypted text stored in both files.

unzip -o '/home/rei/Downloads/SCSC2026Final/Crypto_2.zip' -d '/home/rei/Downloads/SCSC2026Final/CTFChan_Cryptography_SCSC2026Final_ROT'
Archive:  /home/rei/Downloads/SCSC2026Final/Crypto_2.zip
  inflating: /home/rei/Downloads/SCSC2026Final/CTFChan_Cryptography_SCSC2026Final_ROT/README.md
  inflating: /home/rei/Downloads/SCSC2026Final/CTFChan_Cryptography_SCSC2026Final_ROT/enc.txt

README.md gave the story clue. Julius Caesar pointed to a Caesar shift, and 18 senator Romawi gave another rotation hint. The file ended with the ciphertext.

Pada tahun 44 SM, sesaat sebelum pengkhianatan besar terjadi, Julius Caesar menerima sebuah gulungan pesan misterius dari 18 senator Romawi.
Namun, karena takut pesannya dibaca orang lain, senator tersebut menggunakan metode rahasia yang hanya diketahui oleh kalangan tertentu di Roma.
Caesar mencoba membaca pesan tersebut, tetapi semua huruf tampak kacau dan tidak bermakna.
Bantulah Julius Caesar mengungkap isi pesan berikut:

fpfp71{9uu_5i8egu6ax0_g55_zhpu}

enc.txt contained the same ciphertext.

fpfp71{9uu_5i8egu6ax0_g55_zhpu}

The known flag prefix was scsc26{...}. The ciphertext prefix fpfp71 maps to it with ROT13 on letters and ROT5 on digits: f becomes s, and 7 becomes 2. Applying that to the whole string produced the flag.

s='fpfp71{9uu_5i8egu6ax0_g55_zhpu}'
out=''
for c in s:
    if 'a'<=c<='z': out+=chr((ord(c)-97+13)%26+97)
    elif 'A'<=c<='Z': out+=chr((ord(c)-65+13)%26+65)
    elif '0'<=c<='9': out+=chr((ord(c)-48+5)%10+48)
    else: out+=c
print(out)
scsc26{4hh_0v3rth1nk5_t00_much}
SCSC2026 Final - ROT - Cryptography Writeup
https://blog.rei.my.id/posts/151/scsc2026-final-rot-cryptography-writeup/
Author
Reidho Satria
Published at
2026-05-16
License
CC BY-NC-SA 4.0