13

Published: April 2, 2026

Description

Cryptography can be easy, do you know what ROT13 is? Decrypt: cvpbPGS{abg_gbb_onq_bs_n_ceboyrz}

Solution

  1. Step 1Apply ROT13 using tr
    ROT13 rotates each letter 13 positions in the alphabet. The tr command maps A-Z to N-ZA-M and a-z to n-za-m, effectively applying ROT13. Note that 'cvpbPGS' ROT13-decodes to 'picoCTF', confirming the cipher.
    echo "cvpbPGS{abg_gbb_onq_bs_n_ceboyrz}" | tr 'A-Za-z' 'N-ZA-Mn-za-m'
    Learn more

    ROT13 (Rotate by 13) is a simple letter substitution cipher that shifts every letter forward by 13 positions in the alphabet. Because the English alphabet has 26 letters, shifting by 13 twice returns the original text -- making ROT13 its own inverse. You encrypt and decrypt with the exact same operation.

    The tr command (translate) is a Unix utility that replaces or deletes characters based on a mapping. The pattern 'A-Za-z' 'N-ZA-Mn-za-m' maps every uppercase letter to the one 13 positions ahead (wrapping A-M to N-Z and N-Z to A-M), and does the same for lowercase. This is far faster than writing a Python loop and works natively in any Unix shell.

    ROT13 has no cryptographic security -- it was historically used in Usenet groups to hide spoilers or offensive content so readers had to opt-in to see it. In CTFs it appears frequently as a trivial obfuscation layer. Recognizing the pattern cvpbPGS as ROT13 for picoCTF is a useful reflex to develop when you see apparent nonsense text that almost has the right length for a flag.

    Related tools worth knowing: rot13 command (available on some systems), CyberChef's ROT13 operation, and the codecs module in Python (str.encode("rot_13")). Any substitution cipher with a shift of 13 on a 26-character alphabet is equivalent to ROT13.

Flag

picoCTF{...}

ROT13 is its own inverse -- applying it twice returns the original. The alphabet has 26 letters so rotating by 13 twice completes a full cycle.

More Cryptography