{
  "generated": "2026-04-27",
  "version": "0.2",
  "description": "Cipher Corpus benchmark baseline statistics for solver evaluation",
  "corpus_url": "https://ciphermuseum.com/cipher-corpus.html",
  "citation": {
    "cipher_corpus": {
      "title": "Cipher Corpus: Comprehensive Classical Cryptanalysis Benchmark",
      "author": "Lester, Paul",
      "year": 2026,
      "url": "https://ciphermuseum.com/cipher-corpus.html",
      "note": "17,435+ test cases across 81+ cipher algorithms"
    },
    "related_work": {
      "title": "CipherBank: Exploring the Boundary of LLM Reasoning Capabilities through Cryptography Challenges",
      "authors": "Li et al.",
      "year": 2025,
      "url": "https://arxiv.org/pdf/2504.19093",
      "note": "Foundational benchmark establishing LLM cryptanalysis evaluation methodology"
    }
  },
  "summary": {
    "total_records": 100026,
    "verified_records": 99542,
    "cipher_types": 82,
    "cipher_families": 13,
    "languages": [
      "en",
      "fr",
      "de",
      "la",
      "es",
      "it",
      "ja",
      "ru",
      "zh"
    ],
    "public_split": 69922,
    "blind_split": 30104,
    "clean_records": 99540,
    "noisy_records": 486,
    "historical_records": 54,
    "difficulty_distribution": {
      "beginner": 17007,
      "intermediate": 29410,
      "advanced": 26608,
      "expert": 27001
    },
    "language_distribution": {
      "en": 96371,
      "fr": 779,
      "de": 800,
      "la": 804,
      "es": 788,
      "it": 480,
      "ja": 2,
      "ru": 1,
      "zh": 1
    }
  },
  "solver_baselines": {
    "description": "Expected accuracy ranges for different solver types by difficulty tier",
    "methodology": "Estimated from cryptanalytic complexity, key space size, historical time-to-break, and LLM evaluation data",
    "baselines": {
      "beginner": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "intermediate": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "advanced": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "expert": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      }
    }
  },
  "per_cipher_stats": [
    {
      "cipher_type": "caesar",
      "cipher_family": "substitution",
      "difficulty": "beginner",
      "record_count": 5102,
      "public_count": 3600,
      "blind_count": 1502,
      "avg_normalized_length": 57,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "brute force",
        "frequency analysis",
        "frequency analysis (noisy)",
        "error correction"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 4992,
      "noisy_count": 110
    },
    {
      "cipher_type": "vigenere",
      "cipher_family": "polyalphabetic",
      "difficulty": "intermediate",
      "record_count": 4979,
      "public_count": 3443,
      "blind_count": 1536,
      "avg_normalized_length": 58,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "Kasiski examination",
        "index of coincidence",
        "frequency analysis",
        "Kasiski examination (noisy)"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 4867,
      "noisy_count": 112
    },
    {
      "cipher_type": "affine",
      "cipher_family": "substitution",
      "difficulty": "beginner",
      "record_count": 4635,
      "public_count": 3235,
      "blind_count": 1400,
      "avg_normalized_length": 60,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "brute force",
        "frequency analysis",
        "known plaintext",
        "algebraic attack"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 4635,
      "noisy_count": 0
    },
    {
      "cipher_type": "monoalphabetic",
      "cipher_family": "substitution",
      "difficulty": "beginner",
      "record_count": 3782,
      "public_count": 2658,
      "blind_count": 1124,
      "avg_normalized_length": 62,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "frequency analysis",
        "pattern analysis",
        "known plaintext",
        "frequency analysis (noisy)"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 3680,
      "noisy_count": 102
    },
    {
      "cipher_type": "columnar_transposition",
      "cipher_family": "transposition",
      "difficulty": "intermediate",
      "record_count": 3490,
      "public_count": 2405,
      "blind_count": 1085,
      "avg_normalized_length": 59,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "multiple anagramming",
        "probable word",
        "column reordering",
        "multiple anagramming (noisy)"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 3381,
      "noisy_count": 109
    },
    {
      "cipher_type": "playfair",
      "cipher_family": "polygraphic",
      "difficulty": "intermediate",
      "record_count": 3036,
      "public_count": 2122,
      "blind_count": 914,
      "avg_normalized_length": 55,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "bigram frequency analysis",
        "probable word",
        "digraph analysis",
        "bigram frequency analysis (noisy)"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 2985,
      "noisy_count": 51
    },
    {
      "cipher_type": "beaufort",
      "cipher_family": "polyalphabetic",
      "difficulty": "intermediate",
      "record_count": 2815,
      "public_count": 1930,
      "blind_count": 885,
      "avg_normalized_length": 59,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "Kasiski examination",
        "index of coincidence",
        "reciprocal property"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 2815,
      "noisy_count": 0
    },
    {
      "cipher_type": "enigma",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 2723,
      "public_count": 1899,
      "blind_count": 824,
      "avg_normalized_length": 62,
      "languages": [
        "en",
        "de"
      ],
      "expected_attacks": [
        "bombe attack",
        "known plaintext",
        "cribs",
        "index of coincidence"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 2723,
      "noisy_count": 0
    },
    {
      "cipher_type": "gronsfeld",
      "cipher_family": "polyalphabetic",
      "difficulty": "intermediate",
      "record_count": 2538,
      "public_count": 1768,
      "blind_count": 770,
      "avg_normalized_length": 63,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "Kasiski examination",
        "frequency analysis",
        "numeric key recovery"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 2538,
      "noisy_count": 0
    },
    {
      "cipher_type": "alberti_disk",
      "cipher_family": "disk",
      "difficulty": "expert",
      "record_count": 2141,
      "public_count": 1516,
      "blind_count": 625,
      "avg_normalized_length": 63,
      "languages": [
        "en",
        "la"
      ],
      "expected_attacks": [
        "disk alignment analysis",
        "probable word",
        "frequency analysis",
        "disk cryptanalysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 2141,
      "noisy_count": 0
    },
    {
      "cipher_type": "rail_fence",
      "cipher_family": "transposition",
      "difficulty": "intermediate",
      "record_count": 2125,
      "public_count": 1496,
      "blind_count": 629,
      "avg_normalized_length": 56,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "brute force rails",
        "pattern analysis",
        "wave pattern"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 2125,
      "noisy_count": 0
    },
    {
      "cipher_type": "bazeries",
      "cipher_family": "transposition",
      "difficulty": "advanced",
      "record_count": 1970,
      "public_count": 1362,
      "blind_count": 608,
      "avg_normalized_length": 62,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "transposition recovery",
        "frequency analysis",
        "Bazeries method"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1970,
      "noisy_count": 0
    },
    {
      "cipher_type": "autokey",
      "cipher_family": "polyalphabetic",
      "difficulty": "intermediate",
      "record_count": 1910,
      "public_count": 1356,
      "blind_count": 554,
      "avg_normalized_length": 58,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "probable word attack",
        "Kasiski variant",
        "self-key recovery",
        "index of coincidence"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 1910,
      "noisy_count": 0
    },
    {
      "cipher_type": "scytale",
      "cipher_family": "transposition",
      "difficulty": "intermediate",
      "record_count": 1860,
      "public_count": 1255,
      "blind_count": 605,
      "avg_normalized_length": 65,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "brute force diameter",
        "transposition analysis"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 1860,
      "noisy_count": 0
    },
    {
      "cipher_type": "bifid",
      "cipher_family": "fractionation",
      "difficulty": "advanced",
      "record_count": 1853,
      "public_count": 1272,
      "blind_count": 581,
      "avg_normalized_length": 54,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "bigram frequency analysis",
        "probable word",
        "Polybius square recovery",
        "Polybius recovery"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1853,
      "noisy_count": 0
    },
    {
      "cipher_type": "confederate_vigenere",
      "cipher_family": "polyalphabetic",
      "difficulty": "intermediate",
      "record_count": 1682,
      "public_count": 1186,
      "blind_count": 496,
      "avg_normalized_length": 62,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "Kasiski examination",
        "disk alignment analysis",
        "index of coincidence",
        "probable word"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 1682,
      "noisy_count": 0
    },
    {
      "cipher_type": "diana",
      "cipher_family": "polyalphabetic",
      "difficulty": "intermediate",
      "record_count": 1681,
      "public_count": 1146,
      "blind_count": 535,
      "avg_normalized_length": 62,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "Beaufort analysis",
        "reciprocal property",
        "frequency analysis",
        "index of coincidence"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 1681,
      "noisy_count": 0
    },
    {
      "cipher_type": "porta",
      "cipher_family": "polyalphabetic",
      "difficulty": "intermediate",
      "record_count": 1680,
      "public_count": 1139,
      "blind_count": 541,
      "avg_normalized_length": 62,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "reciprocal properties",
        "index of coincidence",
        "frequency analysis"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 1680,
      "noisy_count": 0
    },
    {
      "cipher_type": "adfgx",
      "cipher_family": "fractionation",
      "difficulty": "advanced",
      "record_count": 1552,
      "public_count": 1067,
      "blind_count": 485,
      "avg_normalized_length": 113,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "bigram analysis",
        "columnar transposition recovery",
        "Polybius recovery"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1552,
      "noisy_count": 0
    },
    {
      "cipher_type": "trifid",
      "cipher_family": "fractionation",
      "difficulty": "advanced",
      "record_count": 1530,
      "public_count": 1090,
      "blind_count": 440,
      "avg_normalized_length": 59,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "trigram frequency analysis",
        "probable word",
        "3D Polybius recovery"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1530,
      "noisy_count": 0
    },
    {
      "cipher_type": "fractionated_morse",
      "cipher_family": "fractionation",
      "difficulty": "advanced",
      "record_count": 1450,
      "public_count": 1003,
      "blind_count": 447,
      "avg_normalized_length": 71,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "Morse code analysis",
        "trigram frequency",
        "probable word"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1450,
      "noisy_count": 0
    },
    {
      "cipher_type": "hill",
      "cipher_family": "polygraphic",
      "difficulty": "advanced",
      "record_count": 1450,
      "public_count": 1040,
      "blind_count": 410,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "known plaintext",
        "matrix analysis",
        "modular arithmetic"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1450,
      "noisy_count": 0
    },
    {
      "cipher_type": "adfgvx",
      "cipher_family": "fractionation",
      "difficulty": "advanced",
      "record_count": 1391,
      "public_count": 951,
      "blind_count": 440,
      "avg_normalized_length": 123,
      "languages": [
        "en",
        "de"
      ],
      "expected_attacks": [
        "hexadecimal frequency",
        "columnar recovery",
        "superimposition",
        "Polybius recovery"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1391,
      "noisy_count": 0
    },
    {
      "cipher_type": "chaocipher",
      "cipher_family": "machine",
      "difficulty": "advanced",
      "record_count": 1391,
      "public_count": 956,
      "blind_count": 435,
      "avg_normalized_length": 62,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "statistical analysis",
        "probable word",
        "dual-disk recovery",
        "algorithmic reconstruction"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1391,
      "noisy_count": 0
    },
    {
      "cipher_type": "double_transposition",
      "cipher_family": "transposition",
      "difficulty": "advanced",
      "record_count": 1390,
      "public_count": 990,
      "blind_count": 400,
      "avg_normalized_length": 62,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "multiple anagramming",
        "probable word",
        "transposition analysis"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1390,
      "noisy_count": 0
    },
    {
      "cipher_type": "lorenz",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 1301,
      "public_count": 908,
      "blind_count": 393,
      "avg_normalized_length": 58,
      "languages": [
        "en",
        "de"
      ],
      "expected_attacks": [
        "statistical analysis",
        "Colossus methods",
        "Tutte reconstruction",
        "wheel pattern analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 1301,
      "noisy_count": 0
    },
    {
      "cipher_type": "four_square",
      "cipher_family": "polygraphic",
      "difficulty": "advanced",
      "record_count": 1284,
      "public_count": 883,
      "blind_count": 401,
      "avg_normalized_length": 57,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "bigram frequency analysis",
        "probable word",
        "four-square structure"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1284,
      "noisy_count": 0
    },
    {
      "cipher_type": "stager_route",
      "cipher_family": "transposition",
      "difficulty": "expert",
      "record_count": 1282,
      "public_count": 896,
      "blind_count": 386,
      "avg_normalized_length": 63,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "multiple anagramming",
        "probable word",
        "route reconstruction",
        "route analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 1282,
      "noisy_count": 0
    },
    {
      "cipher_type": "m209",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 1221,
      "public_count": 888,
      "blind_count": 333,
      "avg_normalized_length": 60,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "probable word",
        "wheel recovery",
        "pin-and-lug analysis",
        "known plaintext attack"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 1221,
      "noisy_count": 0
    },
    {
      "cipher_type": "kryptos",
      "cipher_family": "polyalphabetic",
      "difficulty": "advanced",
      "record_count": 1162,
      "public_count": 821,
      "blind_count": 341,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "Kasiski examination",
        "frequency analysis",
        "known plaintext",
        "Vigenere attack"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1162,
      "noisy_count": 0
    },
    {
      "cipher_type": "sigaba",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 1161,
      "public_count": 826,
      "blind_count": 335,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "statistical analysis",
        "pseudo-random analysis",
        "never broken",
        "rotor analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 1161,
      "noisy_count": 0
    },
    {
      "cipher_type": "fialka",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 1161,
      "public_count": 781,
      "blind_count": 380,
      "avg_normalized_length": 61,
      "languages": [
        "en",
        "ru"
      ],
      "expected_attacks": [
        "statistical analysis",
        "multi-rotor recovery",
        "Soviet methods",
        "rotor analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 1161,
      "noisy_count": 0
    },
    {
      "cipher_type": "kl7",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 1161,
      "public_count": 800,
      "blind_count": 361,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "statistical analysis",
        "notch wheel recovery",
        "TSEC methods",
        "rotor analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 1161,
      "noisy_count": 0
    },
    {
      "cipher_type": "geheimschreiber",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 1161,
      "public_count": 814,
      "blind_count": 347,
      "avg_normalized_length": 61,
      "languages": [
        "en",
        "de"
      ],
      "expected_attacks": [
        "wheel pattern analysis",
        "T52 Sturgeon methods",
        "XOR analysis",
        "statistical attack"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 1161,
      "noisy_count": 0
    },
    {
      "cipher_type": "kama_sutra",
      "cipher_family": "substitution",
      "difficulty": "intermediate",
      "record_count": 1160,
      "public_count": 817,
      "blind_count": 343,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "frequency analysis",
        "paired substitution analysis"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 1160,
      "noisy_count": 0
    },
    {
      "cipher_type": "cardano_autokey",
      "cipher_family": "polyalphabetic",
      "difficulty": "advanced",
      "record_count": 1160,
      "public_count": 821,
      "blind_count": 339,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "probable word",
        "autokey recovery",
        "frequency analysis"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1160,
      "noisy_count": 0
    },
    {
      "cipher_type": "red_type_a",
      "cipher_family": "machine",
      "difficulty": "advanced",
      "record_count": 1160,
      "public_count": 828,
      "blind_count": 332,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "vowel/consonant separation",
        "frequency analysis",
        "stepping switch"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1160,
      "noisy_count": 0
    },
    {
      "cipher_type": "typex",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 1160,
      "public_count": 837,
      "blind_count": 323,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "bombe-like attack",
        "statistical analysis",
        "Enigma-family methods"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 1160,
      "noisy_count": 0
    },
    {
      "cipher_type": "joseon_yeokhak",
      "cipher_family": "substitution",
      "difficulty": "beginner",
      "record_count": 1100,
      "public_count": 753,
      "blind_count": 347,
      "avg_normalized_length": 62,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "frequency analysis",
        "shift analysis"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 1100,
      "noisy_count": 0
    },
    {
      "cipher_type": "vic",
      "cipher_family": "substitution",
      "difficulty": "advanced",
      "record_count": 1074,
      "public_count": 742,
      "blind_count": 332,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "frequency analysis",
        "Polybius recovery",
        "Soviet VIC methods",
        "checkerboard recovery"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1074,
      "noisy_count": 0
    },
    {
      "cipher_type": "nihilist",
      "cipher_family": "fractionation",
      "difficulty": "advanced",
      "record_count": 1072,
      "public_count": 781,
      "blind_count": 291,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "Kasiski variant",
        "index of coincidence",
        "additive recovery"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1072,
      "noisy_count": 0
    },
    {
      "cipher_type": "two_square",
      "cipher_family": "polygraphic",
      "difficulty": "advanced",
      "record_count": 1072,
      "public_count": 754,
      "blind_count": 318,
      "avg_normalized_length": 56,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "bigram frequency analysis",
        "probable word"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1072,
      "noisy_count": 0
    },
    {
      "cipher_type": "geez_monastic",
      "cipher_family": "substitution",
      "difficulty": "advanced",
      "record_count": 930,
      "public_count": 671,
      "blind_count": 259,
      "avg_normalized_length": 60,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "frequency analysis",
        "keyed alphabet recovery",
        "monoalphabetic methods"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 930,
      "noisy_count": 0
    },
    {
      "cipher_type": "purple",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 872,
      "public_count": 596,
      "blind_count": 276,
      "avg_normalized_length": 61,
      "languages": [
        "en",
        "ja"
      ],
      "expected_attacks": [
        "probable word",
        "stepping switch analysis",
        "vowel/consonant separation",
        "switch analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 872,
      "noisy_count": 0
    },
    {
      "cipher_type": "copiale",
      "cipher_family": "substitution",
      "difficulty": "advanced",
      "record_count": 871,
      "public_count": 621,
      "blind_count": 250,
      "avg_normalized_length": 61,
      "languages": [
        "en",
        "de"
      ],
      "expected_attacks": [
        "homophonic frequency analysis",
        "codebook recovery",
        "symbolic analysis",
        "symbol frequency analysis"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 871,
      "noisy_count": 0
    },
    {
      "cipher_type": "wheatstone",
      "cipher_family": "polygraphic",
      "difficulty": "advanced",
      "record_count": 871,
      "public_count": 604,
      "blind_count": 267,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "bigram analysis",
        "probable word",
        "Playfair variant analysis",
        "disk analysis"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 871,
      "noisy_count": 0
    },
    {
      "cipher_type": "great_cipher",
      "cipher_family": "nomenclator",
      "difficulty": "expert",
      "record_count": 871,
      "public_count": 620,
      "blind_count": 251,
      "avg_normalized_length": 0,
      "languages": [
        "en",
        "fr"
      ],
      "expected_attacks": [
        "codebook reconstruction",
        "frequency analysis",
        "Bazeries method",
        "syllabic analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 871,
      "noisy_count": 0
    },
    {
      "cipher_type": "jn25",
      "cipher_family": "codebook",
      "difficulty": "expert",
      "record_count": 871,
      "public_count": 594,
      "blind_count": 277,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "additive recovery",
        "superencipherment analysis",
        "Pacific COMINT",
        "codebook reconstruction"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 871,
      "noisy_count": 0
    },
    {
      "cipher_type": "venona_pad_reuse",
      "cipher_family": "stream",
      "difficulty": "expert",
      "record_count": 871,
      "public_count": 611,
      "blind_count": 260,
      "avg_normalized_length": 54,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "pad reuse attack",
        "crib dragging",
        "XOR analysis",
        "Venona project"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 871,
      "noisy_count": 0
    },
    {
      "cipher_type": "straddling_checkerboard",
      "cipher_family": "substitution",
      "difficulty": "advanced",
      "record_count": 870,
      "public_count": 610,
      "blind_count": 260,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "frequency analysis",
        "Polybius recovery",
        "Soviet methods"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 870,
      "noisy_count": 0
    },
    {
      "cipher_type": "kryha",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 870,
      "public_count": 596,
      "blind_count": 274,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "statistical analysis",
        "Friedman attack",
        "index of coincidence"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 870,
      "noisy_count": 0
    },
    {
      "cipher_type": "argenti",
      "cipher_family": "nomenclator",
      "difficulty": "expert",
      "record_count": 870,
      "public_count": 639,
      "blind_count": 231,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "frequency analysis",
        "codebook recovery",
        "papal methods"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 870,
      "noisy_count": 0
    },
    {
      "cipher_type": "slidex",
      "cipher_family": "transposition",
      "difficulty": "advanced",
      "record_count": 870,
      "public_count": 612,
      "blind_count": 258,
      "avg_normalized_length": 61,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "probable word",
        "transposition analysis",
        "slide recovery"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 870,
      "noisy_count": 0
    },
    {
      "cipher_type": "solitaire",
      "cipher_family": "stream",
      "difficulty": "expert",
      "record_count": 811,
      "public_count": 571,
      "blind_count": 240,
      "avg_normalized_length": 62,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "card deck reconstruction",
        "Pontifex cryptanalysis",
        "card deck analysis",
        "keystream recovery"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 811,
      "noisy_count": 0
    },
    {
      "cipher_type": "chinese_telegraph",
      "cipher_family": "codebook",
      "difficulty": "expert",
      "record_count": 811,
      "public_count": 562,
      "blind_count": 249,
      "avg_normalized_length": 0,
      "languages": [
        "en",
        "zh"
      ],
      "expected_attacks": [
        "codebook reconstruction",
        "numeric frequency analysis",
        "frequency analysis",
        "context-based attack"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 811,
      "noisy_count": 0
    },
    {
      "cipher_type": "nomenclator",
      "cipher_family": "nomenclator",
      "difficulty": "expert",
      "record_count": 810,
      "public_count": 582,
      "blind_count": 228,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "codebook reconstruction",
        "frequency analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 810,
      "noisy_count": 0
    },
    {
      "cipher_type": "m94",
      "cipher_family": "machine",
      "difficulty": "expert",
      "record_count": 772,
      "public_count": 513,
      "blind_count": 259,
      "avg_normalized_length": 48,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "multiple anagramming",
        "disk recovery",
        "probable word",
        "column analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 772,
      "noisy_count": 0
    },
    {
      "cipher_type": "jefferson_disk",
      "cipher_family": "disk",
      "difficulty": "expert",
      "record_count": 757,
      "public_count": 522,
      "blind_count": 235,
      "avg_normalized_length": 46,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "multiple anagramming",
        "probable word",
        "disk alignment",
        "column analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 757,
      "noisy_count": 0
    },
    {
      "cipher_type": "wallis_cipher",
      "cipher_family": "nomenclator",
      "difficulty": "expert",
      "record_count": 580,
      "public_count": 411,
      "blind_count": 169,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "codebook reconstruction",
        "frequency analysis",
        "Wallis methods"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 580,
      "noisy_count": 0
    },
    {
      "cipher_type": "one_time_pad",
      "cipher_family": "stream",
      "difficulty": "expert",
      "record_count": 485,
      "public_count": 336,
      "blind_count": 149,
      "avg_normalized_length": 44,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "perfect secrecy — unbreakable with true OTP",
        "pad reuse attack",
        "perfect secrecy"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 485,
      "noisy_count": 0
    },
    {
      "cipher_type": "vernam",
      "cipher_family": "stream",
      "difficulty": "expert",
      "record_count": 485,
      "public_count": 333,
      "blind_count": 152,
      "avg_normalized_length": 44,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "XOR-based pad recovery",
        "pad reuse attack"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 485,
      "noisy_count": 0
    },
    {
      "cipher_type": "rot13",
      "cipher_family": "substitution",
      "difficulty": "beginner",
      "record_count": 405,
      "public_count": 305,
      "blind_count": 100,
      "avg_normalized_length": 52,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "ROT13 is self-inverse",
        "trivial decryption",
        "frequency analysis",
        "brute force"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 405,
      "noisy_count": 0
    },
    {
      "cipher_type": "atbash",
      "cipher_family": "substitution",
      "difficulty": "beginner",
      "record_count": 405,
      "public_count": 283,
      "blind_count": 122,
      "avg_normalized_length": 52,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "reflection property",
        "known encoding",
        "frequency analysis"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 405,
      "noisy_count": 0
    },
    {
      "cipher_type": "polybius",
      "cipher_family": "substitution",
      "difficulty": "beginner",
      "record_count": 378,
      "public_count": 274,
      "blind_count": 104,
      "avg_normalized_length": 0,
      "languages": [
        "en",
        "fr",
        "de",
        "la",
        "es",
        "it"
      ],
      "expected_attacks": [
        "frequency analysis",
        "bigram analysis",
        "known encoding",
        "known encoding scheme"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 378,
      "noisy_count": 0
    },
    {
      "cipher_type": "trithemius",
      "cipher_family": "polyalphabetic",
      "difficulty": "beginner",
      "record_count": 350,
      "public_count": 252,
      "blind_count": 98,
      "avg_normalized_length": 58,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "known plaintext",
        "progressive shift analysis"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 350,
      "noisy_count": 0
    },
    {
      "cipher_type": "running_key",
      "cipher_family": "polyalphabetic",
      "difficulty": "intermediate",
      "record_count": 348,
      "public_count": 247,
      "blind_count": 101,
      "avg_normalized_length": 17,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "probable word attack",
        "running key alignment"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 348,
      "noisy_count": 0
    },
    {
      "cipher_type": "zimmermann",
      "cipher_family": "codebook",
      "difficulty": "expert",
      "record_count": 292,
      "public_count": 219,
      "blind_count": 73,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "codebook reconstruction",
        "diplomatic code analysis",
        "Room 40 methods",
        "traffic analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 292,
      "noisy_count": 0
    },
    {
      "cipher_type": "culper_ring",
      "cipher_family": "codebook",
      "difficulty": "expert",
      "record_count": 292,
      "public_count": 203,
      "blind_count": 89,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "codebook reconstruction",
        "numeric analysis",
        "American Revolution",
        "frequency analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 292,
      "noisy_count": 0
    },
    {
      "cipher_type": "morse_code",
      "cipher_family": "encoding",
      "difficulty": "beginner",
      "record_count": 290,
      "public_count": 214,
      "blind_count": 76,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "known encoding scheme",
        "symbol frequency"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 290,
      "noisy_count": 0
    },
    {
      "cipher_type": "commercial_code",
      "cipher_family": "codebook",
      "difficulty": "expert",
      "record_count": 290,
      "public_count": 197,
      "blind_count": 93,
      "avg_normalized_length": 342,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "codebook reconstruction",
        "word frequency analysis",
        "telegraph era"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 290,
      "noisy_count": 0
    },
    {
      "cipher_type": "pigpen",
      "cipher_family": "substitution",
      "difficulty": "beginner",
      "record_count": 252,
      "public_count": 178,
      "blind_count": 74,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "symbol frequency analysis",
        "known encoding",
        "pattern matching"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 252,
      "noisy_count": 0
    },
    {
      "cipher_type": "voynich_render",
      "cipher_family": "substitution",
      "difficulty": "expert",
      "record_count": 252,
      "public_count": 175,
      "blind_count": 77,
      "avg_normalized_length": 46,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "symbol frequency analysis",
        "glyph substitution",
        "linguistic analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 252,
      "noisy_count": 0
    },
    {
      "cipher_type": "babington",
      "cipher_family": "nomenclator",
      "difficulty": "expert",
      "record_count": 249,
      "public_count": 174,
      "blind_count": 75,
      "avg_normalized_length": 23,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "codebook reconstruction",
        "frequency analysis",
        "Walsingham methods",
        "nomenclator reconstruction"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 249,
      "noisy_count": 1
    },
    {
      "cipher_type": "null_cipher",
      "cipher_family": "steganography",
      "difficulty": "advanced",
      "record_count": 234,
      "public_count": 176,
      "blind_count": 58,
      "avg_normalized_length": 65,
      "languages": [
        "en",
        "fr"
      ],
      "expected_attacks": [
        "letter position extraction",
        "statistical analysis",
        "carrier detection",
        "word selection pattern"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 234,
      "noisy_count": 0
    },
    {
      "cipher_type": "tap_code",
      "cipher_family": "substitution",
      "difficulty": "beginner",
      "record_count": 192,
      "public_count": 138,
      "blind_count": 54,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "known encoding scheme",
        "frequency analysis"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 192,
      "noisy_count": 0
    },
    {
      "cipher_type": "navajo_code",
      "cipher_family": "code",
      "difficulty": "expert",
      "record_count": 119,
      "public_count": 84,
      "blind_count": 35,
      "avg_normalized_length": 93,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "reverse dictionary lookup",
        "phonetic analysis",
        "word frequency",
        "linguistic analysis"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 119,
      "noisy_count": 0
    },
    {
      "cipher_type": "arnold_andre",
      "cipher_family": "codebook",
      "difficulty": "expert",
      "record_count": 117,
      "public_count": 81,
      "blind_count": 36,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "book identification",
        "word frequency analysis",
        "West Point treason",
        "codebook reconstruction"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 117,
      "noisy_count": 0
    },
    {
      "cipher_type": "bacon_cipher",
      "cipher_family": "steganography",
      "difficulty": "beginner",
      "record_count": 116,
      "public_count": 79,
      "blind_count": 37,
      "avg_normalized_length": 83,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "known encoding scheme",
        "pattern recognition"
      ],
      "solver_baselines": {
        "human": "95-100%",
        "automated": "95-100%",
        "llm_3shot": "80-95%",
        "llm_0shot": "60-80%"
      },
      "verified_count": 116,
      "noisy_count": 0
    },
    {
      "cipher_type": "aeneas_tacticus",
      "cipher_family": "steganography",
      "difficulty": "expert",
      "record_count": 116,
      "public_count": 79,
      "blind_count": 37,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "numeric position analysis",
        "known encoding"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 116,
      "noisy_count": 0
    },
    {
      "cipher_type": "homophonic",
      "cipher_family": "substitution",
      "difficulty": "intermediate",
      "record_count": 107,
      "public_count": 76,
      "blind_count": 31,
      "avg_normalized_length": 0,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "frequency analysis (harder)",
        "pattern analysis",
        "homophone grouping",
        "frequency analysis"
      ],
      "solver_baselines": {
        "human": "60-90%",
        "automated": "60-90%",
        "llm_3shot": "40-70%",
        "llm_0shot": "20-50%"
      },
      "verified_count": 107,
      "noisy_count": 0
    },
    {
      "cipher_type": "book_cipher",
      "cipher_family": "codebook",
      "difficulty": "expert",
      "record_count": 65,
      "public_count": 48,
      "blind_count": 17,
      "avg_normalized_length": 1,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "book identification",
        "word frequency analysis",
        "probable word",
        "Declaration of Independence mapping"
      ],
      "solver_baselines": {
        "human": "5-30%",
        "automated": "5-30%",
        "llm_3shot": "2-15%",
        "llm_0shot": "1-5%"
      },
      "verified_count": 65,
      "noisy_count": 1
    },
    {
      "cipher_type": "wallis_ciphers",
      "cipher_family": "polyalphabetic",
      "difficulty": "advanced",
      "record_count": 1,
      "public_count": 1,
      "blind_count": 0,
      "avg_normalized_length": 20,
      "languages": [
        "en"
      ],
      "expected_attacks": [
        "frequency analysis",
        "bigram analysis",
        "index of coincidence"
      ],
      "solver_baselines": {
        "human": "20-60%",
        "automated": "20-60%",
        "llm_3shot": "10-40%",
        "llm_0shot": "5-20%"
      },
      "verified_count": 1,
      "noisy_count": 0
    }
  ],
  "per_family_stats": [
    {
      "family": "substitution",
      "record_count": 21896,
      "cipher_types": [
        "caesar",
        "rot13",
        "atbash",
        "monoalphabetic",
        "affine",
        "polybius",
        "tap_code",
        "joseon_yeokhak",
        "homophonic",
        "kama_sutra",
        "straddling_checkerboard",
        "vic",
        "copiale",
        "geez_monastic",
        "pigpen",
        "voynich_render",
        "playfair",
        "babington",
        "null_cipher",
        "chaocipher"
      ],
      "difficulty_distribution": {
        "beginner": 16251,
        "intermediate": 1643,
        "advanced": 3746,
        "expert": 256
      }
    },
    {
      "family": "polyalphabetic",
      "record_count": 20307,
      "cipher_types": [
        "trithemius",
        "vigenere",
        "beaufort",
        "gronsfeld",
        "porta",
        "running_key",
        "autokey",
        "confederate_vigenere",
        "diana",
        "kryptos",
        "cardano_autokey",
        "alberti_disk",
        "wallis_ciphers",
        "wheatstone"
      ],
      "difficulty_distribution": {
        "beginner": 350,
        "intermediate": 17631,
        "advanced": 2325,
        "expert": 1
      }
    },
    {
      "family": "machine",
      "record_count": 16114,
      "cipher_types": [
        "chaocipher",
        "red_type_a",
        "enigma",
        "lorenz",
        "sigaba",
        "typex",
        "m209",
        "purple",
        "fialka",
        "kl7",
        "geheimschreiber",
        "kryha",
        "m94",
        "jefferson_disk"
      ],
      "difficulty_distribution": {
        "advanced": 2550,
        "expert": 13564
      }
    },
    {
      "family": "transposition",
      "record_count": 12988,
      "cipher_types": [
        "rail_fence",
        "columnar_transposition",
        "scytale",
        "double_transposition",
        "bazeries",
        "stager_route",
        "slidex",
        "kryptos"
      ],
      "difficulty_distribution": {
        "intermediate": 7476,
        "advanced": 4231,
        "expert": 1281
      }
    },
    {
      "family": "fractionation",
      "record_count": 8848,
      "cipher_types": [
        "bifid",
        "trifid",
        "adfgx",
        "adfgvx",
        "nihilist",
        "fractionated_morse"
      ],
      "difficulty_distribution": {
        "advanced": 8848
      }
    },
    {
      "family": "polygraphic",
      "record_count": 7336,
      "cipher_types": [
        "playfair",
        "four_square",
        "two_square",
        "hill",
        "wheatstone"
      ],
      "difficulty_distribution": {
        "intermediate": 2660,
        "advanced": 4676
      }
    },
    {
      "family": "nomenclator",
      "record_count": 3377,
      "cipher_types": [
        "great_cipher",
        "babington",
        "nomenclator",
        "argenti",
        "wallis_cipher"
      ],
      "difficulty_distribution": {
        "expert": 3377
      }
    },
    {
      "family": "disk",
      "record_count": 2896,
      "cipher_types": [
        "jefferson_disk",
        "alberti_disk"
      ],
      "difficulty_distribution": {
        "expert": 2896
      }
    },
    {
      "family": "codebook",
      "record_count": 2741,
      "cipher_types": [
        "book_cipher",
        "chinese_telegraph",
        "zimmermann",
        "culper_ring",
        "arnold_andre",
        "commercial_code",
        "jn25",
        "great_cipher",
        "navajo_code"
      ],
      "difficulty_distribution": {
        "expert": 2741
      }
    },
    {
      "family": "stream",
      "record_count": 2652,
      "cipher_types": [
        "solitaire",
        "venona_pad_reuse",
        "one_time_pad",
        "vernam"
      ],
      "difficulty_distribution": {
        "expert": 2652
      }
    },
    {
      "family": "steganography",
      "record_count": 464,
      "cipher_types": [
        "bacon_cipher",
        "null_cipher",
        "aeneas_tacticus"
      ],
      "difficulty_distribution": {
        "beginner": 116,
        "advanced": 232,
        "expert": 116
      }
    },
    {
      "family": "encoding",
      "record_count": 290,
      "cipher_types": [
        "morse_code"
      ],
      "difficulty_distribution": {
        "beginner": 290
      }
    },
    {
      "family": "code",
      "record_count": 117,
      "cipher_types": [
        "navajo_code"
      ],
      "difficulty_distribution": {
        "expert": 117
      }
    }
  ],
  "benchmark_splits": {
    "public": {
      "count": 69922,
      "description": "70% of records — available for training and development evaluation",
      "note": "Do not train and evaluate on the same split"
    },
    "blind": {
      "count": 30104,
      "description": "30% of records — held-out for honest evaluation of trained solvers",
      "note": "Blind split should only be accessed during final evaluation"
    }
  },
  "comparison_with_cipherbank": {
    "cipherbank": {
      "records": 2358,
      "cipher_types": 9,
      "historical": false,
      "live_infrastructure": false,
      "blind_splits": false
    },
    "cipher_corpus": {
      "records": 100026,
      "cipher_types": 82,
      "historical": 54,
      "live_infrastructure": true,
      "blind_splits": true,
      "multilingual": true
    },
    "note": "Cipher Corpus extends the CipherBank methodology to a broader cipher set with historical records and live benchmark infrastructure."
  }
}