[
  {
    "id": "svp",
    "acronym": "SVP",
    "name": "Shortest Vector Problem",
    "group": "Lattices",
    "description": "Find a shortest nonzero lattice vector.",
    "color": "#b8ed68",
    "familyId": "lattices"
  },
  {
    "id": "cvp",
    "acronym": "CVP",
    "name": "Closest Vector Problem",
    "group": "Lattices",
    "description": "Find the lattice point closest to a target.",
    "color": "#79d7c5",
    "familyId": "lattices"
  },
  {
    "id": "sis",
    "acronym": "SIS",
    "name": "Short Integer Solution",
    "group": "Lattices",
    "description": "Find a short nonzero modular relation.",
    "color": "#8ebeff",
    "familyId": "lattices"
  },
  {
    "id": "lwe",
    "acronym": "LWE",
    "name": "Learning With Errors",
    "group": "Lattices",
    "description": "Recover or distinguish a noisy linear system.",
    "color": "#bba3fa",
    "familyId": "lattices"
  },
  {
    "id": "isd",
    "acronym": "Binary decoding",
    "name": "Decoding random binary codes",
    "group": "Codes",
    "description": "Decode a random binary linear code at a specified rate and error weight.",
    "color": "#f1b788",
    "familyId": "codes"
  },
  {
    "id": "uov",
    "acronym": "UOV",
    "name": "Unbalanced Oil and Vinegar",
    "group": "Multivariate",
    "description": "Key recovery and forgery for UOV systems.",
    "color": "#d0b0f4",
    "familyId": "multivariate"
  },
  {
    "id": "dgs",
    "acronym": "DGS",
    "name": "Discrete Gaussian Sampling",
    "group": "Lattices",
    "description": "Sample lattice vectors according to a discrete Gaussian.",
    "color": "#82ceb5",
    "familyId": "lattices"
  },
  {
    "id": "bdd",
    "acronym": "BDD",
    "name": "Bounded Distance Decoding",
    "group": "Lattices",
    "familyId": "lattices",
    "description": "Decode a target promised to be close to a lattice, with its radius and preprocessing model fixed.",
    "color": "#8ebeff"
  },
  {
    "id": "mq",
    "acronym": "MQ",
    "name": "Multivariate quadratic equations",
    "group": "Multivariate",
    "familyId": "multivariate",
    "description": "Solve a system of m quadratic equations in n variables over a specified finite field.",
    "color": "#a6a6ad"
  },
  {
    "id": "minrank",
    "acronym": "MinRank",
    "name": "MinRank",
    "group": "Multivariate",
    "familyId": "multivariate",
    "description": "Find a low-rank linear combination of given matrices; dimensions, rank and field must be specified.",
    "color": "#a6a6ad"
  },
  {
    "id": "supersingular-isogeny",
    "acronym": "SSIP",
    "name": "Supersingular isogeny search",
    "group": "Isogenies",
    "familyId": "isogenies",
    "description": "Construct an explicit isogeny between two supersingular elliptic curves.",
    "color": "#a6a6ad"
  },
  {
    "id": "ordinary-isogeny",
    "acronym": "Ordinary isogeny",
    "name": "Ordinary isogeny search",
    "group": "Isogenies",
    "familyId": "isogenies",
    "description": "Construct an isogeny between ordinary curves with the same endomorphism ring.",
    "color": "#a6a6ad"
  },
  {
    "id": "sidh-key-recovery",
    "acronym": "SIDH",
    "name": "SIDH key recovery",
    "group": "Isogenies",
    "familyId": "isogenies",
    "description": "Recover a secret isogeny using a SIDH public key, including its auxiliary torsion-point images.",
    "color": "#a6a6ad"
  },
  {
    "id": "cm-action-inversion",
    "acronym": "CM action",
    "name": "CM class-group action inversion",
    "group": "Isogenies",
    "familyId": "isogenies",
    "description": "Invert the commutative ideal-class-group action, including CRS and CSIDH settings.",
    "color": "#a6a6ad"
  },
  {
    "id": "qary-decoding",
    "acronym": "q-SD",
    "name": "Decoding random q-ary codes",
    "group": "Codes",
    "familyId": "codes",
    "description": "Hamming-metric syndrome decoding over a specified finite field. Alphabet, rate, error weight and cost unit must be fixed.",
    "color": "#a89de8"
  },
  {
    "id": "rank-decoding",
    "acronym": "Rank-SD",
    "name": "Rank syndrome decoding",
    "group": "Codes",
    "familyId": "codes",
    "description": "Syndrome decoding in the rank metric over F_(q^m); n, m, k and rank weight are separate parameters.",
    "color": "#a89de8"
  },
  {
    "id": "goppa-decoding",
    "acronym": "Goppa-SD",
    "name": "Decoding binary Goppa codes",
    "group": "Codes",
    "familyId": "codes",
    "description": "Recover an error from a public scrambled binary-Goppa parity-check matrix and syndrome, without the private decoding trapdoor.",
    "color": "#a89de8"
  },
  {
    "id": "goppa-key-recovery",
    "acronym": "Goppa-KR",
    "name": "Goppa-code key recovery",
    "group": "Codes",
    "familyId": "codes",
    "description": "Recover equivalent hidden support and Goppa polynomial from the public code. This is distinct from decoding a single ciphertext.",
    "color": "#a89de8"
  },
  {
    "id": "integer-factorization",
    "acronym": "IFP",
    "name": "Integer factorization",
    "group": "Factoring & RSA",
    "familyId": "factoring",
    "description": "Find the prime factorization of a composite integer N; distinguish input length log N from the integer N itself.",
    "color": "#c8b892"
  },
  {
    "id": "small-factor",
    "acronym": "Small-factor IFP",
    "name": "Finding small prime factors",
    "group": "Factoring & RSA",
    "familyId": "factoring",
    "description": "Find a prime divisor p of an integer N; running time can depend on p independently of the bitlength of N.",
    "color": "#c8b892"
  },
  {
    "id": "rsa-factorization",
    "acronym": "RSA factoring",
    "name": "Factoring RSA moduli",
    "group": "Factoring & RSA",
    "familyId": "factoring",
    "description": "Factor balanced semiprimes without supplied structure or partial key information. Asymptotic bounds are separate from concrete challenge factorizations.",
    "color": "#c8b892"
  },
  {
    "id": "generic-dlog",
    "acronym": "Generic DLP",
    "name": "Generic-group discrete logarithms",
    "group": "DLog",
    "familyId": "dlog",
    "description": "Recover an exponent in a cyclic group from group operations; generic algorithms do not exploit a field or curve representation.",
    "color": "#9bacbf"
  },
  {
    "id": "finite-field-dlog",
    "acronym": "Finite-field DLP",
    "name": "Finite-field discrete logarithms",
    "group": "DLog",
    "familyId": "dlog",
    "description": "Compute discrete logarithms in multiplicative groups of finite fields, separating prime fields, characteristic growth and extension structure.",
    "color": "#9bacbf"
  },
  {
    "id": "elliptic-curve-dlog",
    "acronym": "ECDLP",
    "name": "Elliptic-curve discrete logarithms",
    "group": "ECC",
    "familyId": "ecc",
    "description": "Compute discrete logarithms in elliptic-curve groups; distinguish ordinary cryptographic curves from anomalous or other exceptional families.",
    "color": "#b2a0bd"
  },
  {
    "id": "lpn",
    "acronym": "LPN",
    "name": "Learning Parity with Noise",
    "familyId": "codes",
    "group": "Codes",
    "description": "Recover a binary secret from uniformly random binary linear equations corrupted by independent Bernoulli noise.",
    "color": "#d6b36b"
  }
]
