Skip to main content

Password Info

Plaintext wordlist sources/ideas, hash types, and other info from this year.

Data Sets

Plaintexts this year were generated from a number of different ideas and source materials, then spread across the hash types below.

Plaintexts

Each different bucket/idea/wordlist we used; the Pro and Street groups show how many hashes of each were in play and the percentage cracked across all teams in that class.

Idea Pro Hashes Street Hashes Description
Total Crack % Total Crack %
back252553.8252225.5Words and phrases about back, return, repeat; multilingual.
compliance500211.449986.8Generated 3/4 policy compliant passwords, re-mangled.
databreach144213.4144110.7Words and phrases about privacy, data breaches, digital rights; multilingual.
haikus32208.732182.0Phrases from haikus in video games.
longwords1286412.4128604.5Long words, rotated with chaff; multilingual.
movieroman6870.06850.0Movie titles and their copyright year; multilingual.
oldcontests657629.5657316.7Plains pulled from past CMIYC, mostly uncracked.
patentlist150020.0150020.0Patent IDs spliced into phrases from their titles.
produce49950.049920.0Grocery produce codes, mutated.
snapple8230.18200.0Snapple Facts, mutated.
toots178668.5178511.6Every public toot by CMIYC, mutated.
zipcodes500100.0500100.0US zipcodes, first-5 and random last-4.
attractions5000.05000.0Sports teams, etc. from that zipcode, mutated.
patentwords131260.0131260.0Words from some user-tracking patents, mutated.
jfkfiles46935.846827.4Names and SSNs published by the National Archives, mutated.
teamnames170.0170.0Word/phrase association with registered CMIYC teams.
bonjovi63699.56350.0Bon Jovi song lyrics, one full line each.
DaMaGed105680.0105680.0Simple all-numeric passwords, inside unsupported dmg files.

For long inputs (sentences, etc.) phrases of random length (such as 2 to 4 words, maybe removing articles first) were chosen starting at a random offset, in order, and wrapping around. Sometimes a single entry would be sampled multiple times to seed more than one password, sometimes with iterating usernames (user, user2, etc.) so they can be grouped.

Plaintext Mutations

Various mutations were then performed.

In addition to the usual suspects, we tried to brainstorm password-manipulation techniques that could be taught to a non-technical user population, that they could learn as a fairly simple rule and remember without too much difficulty, but which current tools/rules/mindsets are not optimized for.

Most ideas/wordlists had multiple mutations applied probablistically, like "40% chance of rotating a word, 20% chance of krad substitutions; 30% chance of spelling out each number as a word; max of 2 mutations". "Multilingual" means there were language-specific targets (of words, replacement characters, keyboard layouts, etc.); non-English users have stereotypical surnames for their country/language.

Here are just some of them.

Mutation Example Description
char_sub foobar -> f0.b4r Randomly replace some characters with krad/lookalike-ish characters. Language-aware - only use keys available for the language of the user.
extract_phrases Live mice sit on us -> on us Live Pick a variable length phrase from an input starting at a random position and wrapping if necessary.
key_shift password -> 0qww294e Type a word-as is after moving hands one spot in any direction on the keyboard. Multilingual/keyboard-layout-aware.
pig_latin contest -> ontestcay I think you know what Piglatin is. Arbitrarily decided that words have to start with a letter to be eligible.
romanify MCMLXXXV -> MCMLXXXfive Look for roman numeral numbers and randomly spell out individual "digits" (yes the name is backwards). Multilingual.
rotate_word abbreviators -> ators2abbrevi Take a long word containing minimal embedded smaller words, tack 0-2 non-alpha chars on the end, pick a random offset and rotate/wrap the word around itself. Per-language wordlists (with usernames suggesting language).
spell_numbers 867-5309 -> eight67-V3Zero9 Pick random digits to spell out in English, roman numerals, or a user-specific language/character set (hinted by the username).

There might be others that you will see again later...

Hash Types

Each set of mutated plains was then striped across multiple hash types of varying difficulty (usually). The Pro and Street groups show how many hashes of each type were in play and the percentage cracked by any team in that division.

Hash Type Pro Hashes Street Hashes Prefix Description
Total Crack % Total Crack %
gost_yescrypt48346.448330.3$gy$Combined standard yescrypt with GOST
cmiyc63699.56350.0$cmiyc$Custom memory-hard scalable KDF using SHA512
yescrypt41244.341221.0$y$Memory-hard scalable hash based on scrypt
argon2id162613.316255.6$argon2id$Memory-hard hash built on BLAKE2b
scrypt18801.318791.2$7$Memory-hard password hash
raw-sha256236940.0236940.0[none]Unsalted single round SHA256
bcrypt59959.559941.9$2a$Hash built on Blowfish (lower cost than default)
sha512crypt21928.021905.2$6$SHA512 based crypt (higher rounds than default)
sm3crypt506310.450602.6$sm3$SM3crypt hashes used by some Linux distributions
sha1crypt82623.982601.5$sha1$NetBSD/Juniper SHA1 crypt
md5crypt600714.960056.2$1$FreeBSD MD5 crypt
openssha578413.257796.4{SSHA}Salted single-round (Salted-SHA1, NSLDAPS)
raw-sha384296838.9296428.7[none]Unsalted single round SHA384
raw-md5767335.1767019.2[none]Unsalted single round MD5

You may have noticed that raw-sha256 is worth way too many points for being such a simple hash. That is because the only way to get those hashes is to crack some challenge files; the fast easy points are the reward.

Encrypted Files

As the contest progressed various encrypted challenge files were released. Unlike password hashes which were different for Pro vs Street, challenge files and contents were the same for all players... mostly.

Bundle Time Offset Description
cmiyc_2026_challenge_1.pgp +7h First challenge bundle. Two different, related hashes per user.
cmiyc_2026_challenge_2.tar.pgp +7.5h Second challenge bundle. 7z archives using unsupported password-protection modes, with easy hashes inside.
cmiyc_2026_challenge_3.pgp +11h Third challenge bundle. Executable implementing the custom $cmiyc$ hash type.
cmiyc_2026_challenge_4.tar.xz.pgp +27.5h Final challenge bundle. Encrypted DMG disk images, containing lots of easy hashes inside.

Test Hashes

As usual, the test hashes released during pre-registration were designed to hint at aspects of the upcoming contest.

More info coming soon...