Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add 02loveslollipop/ctf-toolkit-bootstrap --skill "sagemath"
Install specific skill from multi-skill repository
# Description
Run SageMath computations through the existing Anaconda environment named `sage`. Use when Codex needs Sage for CTF and cryptography work such as asymmetric cryptography, finite fields, elliptic curves, lattices, polynomial algebra, modular arithmetic, discrete logs, small-root attacks, or PRNG cryptanalysis, and when execution should happen from inline code or a `.sage` file instead of plain Python.
# SKILL.md
name: sagemath
description: Run SageMath computations through the existing Anaconda environment named sage. Use when Codex needs Sage for CTF and cryptography work such as asymmetric cryptography, finite fields, elliptic curves, lattices, polynomial algebra, modular arithmetic, discrete logs, small-root attacks, or PRNG cryptanalysis, and when execution should happen from inline code or a .sage file instead of plain Python.
SageMath
Use this skill to execute SageMath reliably from the local conda environment sage.
Quick Start
Use the bundled runner:
python /home/zerotwo/.codex/skills/sagemath/scripts/run_sage.py --code 'print(factor(2^20 - 1))'
Or execute an existing .sage file:
python /home/zerotwo/.codex/skills/sagemath/scripts/run_sage.py --file /absolute/path/to/script.sage
Workflow
- Decide whether the task is best expressed as inline code or a
.sagefile. - For small one-off computations, pass the code with
--code. - For longer programs or reusable work, create a
.sagefile and pass it with--file. - For CTF crypto tasks, prefer Sage when the problem involves polynomial rings, finite fields, matrices over modular domains, lattices, or symbolic number theory operations.
- Review stdout/stderr from SageMath and report the meaningful result back to the user.
Runner Notes
- The runner always invokes
conda run -n sage sage. - For
--code, the runner writes the code into a temporary.sagefile first. This avoids quoting issues and keeps behavior aligned with file execution. - Pass
--timeout SECONDSwhen a computation may hang or run too long. - Pass
--keep-temponly when debugging generated Sage code.
Patterns
For inline calculations:
python /home/zerotwo/.codex/skills/sagemath/scripts/run_sage.py --code '
R.<x> = QQ[]
f = x^4 - 1
print(f.factor())
'
For file-based workflows:
- Create a
.sagefile in the workspace. - Run it with the bundled runner.
- If the script generates files, verify the outputs before replying.
For CTF cryptography workflows:
- Use Sage integer and modular arithmetic for RSA attacks, CRT reconstruction, inverses, and exponent relations.
- Use polynomial rings and
small_roots()for Coppersmith-style attacks when the instance is suitable. - Use
GF(p)or extension fields for ECC, finite-field equations, and structured algebraic recovery. - Use
Matrix,vector, and LLL for lattice-based recovery problems and hidden-number style attacks. - Use recurrence solving, modular equations, and matrix lifting for LCG, xorshift, and related PRNG state recovery when Sage algebra is useful.
References
- For CTF-oriented patterns and starter snippets, read references/ctf-crypto.md when the task involves RSA, ECC, lattices, or PRNG cryptanalysis.
Templates
- Copy or adapt rsa-starter.sage for modular arithmetic, CRT, and private-exponent recovery tasks.
- Copy or adapt ecc-starter.sage for finite-field and elliptic-curve exploration.
- Copy or adapt lattice-lll-starter.sage for integer-lattice and hidden-structure attacks.
- Copy or adapt lcg-state-recovery.sage for linear congruential generator recovery.
- Copy or adapt xorshift-linear-model.sage for GF(2)-linear xorshift modeling.
- Copy or adapt mersenne-twister-state-tools.sage for MT19937 tempering and state-word recovery work.
- Copy or adapt mt19937-partial-state-starter.sage for partial-state or masked-bit MT analysis.
- Copy or adapt mt19937-full-state-recovery.sage for full 624-word MT state reconstruction from outputs.
- Copy or adapt rsa-small-root-starter.sage for Coppersmith-style experimentation with
small_roots(). - Copy or adapt rsa-boneh-durfee-starter.sage for low-private-exponent setup and polynomial construction.
- Copy or adapt hidden-number-lattice-starter.sage for nonce-bias and hidden-number lattice setups.
- Copy or adapt ecdsa-nonce-reuse-starter.sage for same-nonce ECDSA private-key recovery.
- Copy or adapt ecdsa-partial-nonce-lattice-starter.sage for biased or partially leaked nonce lattice attacks.
- Copy or adapt lcg-truncated-output-starter.sage for recovering LCG state from high-bit leaks.
Resource
scripts/run_sage.py
Use this script instead of calling SageMath manually unless there is a specific reason not to. It standardizes environment selection, timeout handling, and inline-code execution.
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.