Agent skill

writing-crypto

Write cryptography prose and notation using the project's bibsp.sty + preamble.tex conventions (acro + biblatex footnote citations and standardized math macros). Use proactively when: (1) writing/editing cryptography sections in .tex files, (2) introducing or using crypto acronyms such as IND-CPA, IND-CCA, AE, MAC, PRF, ZK, and DH, (3) defining schemes/algorithms/variables in math notation, (4) adding citations for security notions or standard primitives, (5) writing security proofs or reductions, (6) user mentions biblatex, crypto notation, or security proof in cryptographic context.

Stars 1
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/dbosk/claude-skills/tree/main/writing-crypto

SKILL.md

Writing Crypto With bibsp

Overview

This project uses bibsp.sty (loaded from preamble.tex) to keep cryptography writing consistent: acronyms expand correctly and cite the right source, and common crypto notation is standardized via macro factories.

Quick Start

  1. Load the standard preamble (already done in the thesis):
latex
\input{preamble}
  1. Use acronyms for crypto terms and security notions:
latex
We model the adversary as \ac{PPT} and require \ac{IND-CPA} security.
We use \ac{DH} to establish a shared key and authenticate with a \ac{MAC}.
  1. Use \autocite{...} for non-acronym citations in running text.

Core Conventions

Acronyms With Built-in Citations (acro + biblatex)

  • bibsp.sty declares many crypto acronyms via \DeclareAcronym{...}{...}.
  • Many entries include cite = {<bibkey>}. When the acronym is used, acro can attach a citation.
  • In this project, preamble.tex should set:
    • \usepackage{bibsp}
    • \acsetup{cite/cmd=\autocite}
    • biblatex is configured so \autocite{...} produces footnote citations.

Practical rule: if an acronym exists in bibsp.sty, prefer \ac{...} over spelling it out manually, and let the citation happen automatically when configured.

Crypto Notation Macro Factories (Schemes, Algorithms, Variables, Sets)

Use the bibsp.sty factories to define consistent notation in the preamble for each paper/chapter.

Schemes

Define a scheme identifier that typesets as \mathsf{...} and supports optional “method” suffixes:

latex
\NewScheme{\AE}{AE}

Use it like:

latex
\AE[Enc] \textand \AE[Dec]

Algorithms and Functions

Define algorithm/function macros that behave like operators and accept optional argument lists.

latex
\NewAlgorithm{\Enc}{Enc}
\NewAlgorithm{\Dec}{Dec}
\NewFunction{\Hash}{H}

Usage patterns:

latex
c \gets \Enc[m]
\qquad
m \gets \Dec[c]
\qquad
h \gets \Hash[m]

The [...] optional argument adds parentheses, automatically using \left and \right.

Star form convention: most of these macros support a starred form (e.g., \Enc*) that draws an overline, used for “idealized/modified/adversarial” variants when you need that notation.

Variables and Sets

latex
\NewVariable{\pk}{pk}
\NewVariable{\sk}{sk}
\NewSet{\UU}{U}

Variables typeset as math italic; sets as calligraphic.

Proof(-Of-Knowledge) Notation

Prefer the built-in statement macros for proofs:

latex
We use a \ac{ZKPK} of knowledge:
$\PK[(w)]{\mathrm{stmt}(w)}$.

For Schnorr-style statements, use $\SPK[...]$ when appropriate.

(Exact \PK/\SPK usage depends on whether you include a witness list and/or side conditions; see bibsp.sty definitions if you need a specific shape.)

Common Patterns

Security Notions

  • Prefer the acronym if available: \ac{IND-CPA}, \ac{IND-CCA}, \ac{SUF-CMA}, \ac{INT-CTXT}, etc.
  • If you need the plain text tag in math/prose (without acronym management), bibsp.sty also provides helpers like \indcpa, \indcca.

Crypto Citations

  • If the concept is an acronym with a cite field in bibsp.sty, use \ac{...} and avoid adding a second manual citation.
  • Otherwise use \autocite{BibKey} in prose.

Notes For This Repository

  • Source of truth for the setup:
    • /home/dbosk/phd/thesis/preamble.tex
    • /home/dbosk/phd/thesis/bibsp.sty
  • Typical usage in body text across the thesis: .tex files use \autocite{...}, \citeauthor{...}, and \ac{...}.

Expand your agent's capabilities with these related and highly-rated skills.

dbosk/claude-skills

latex-writing

Guide LaTeX document authoring following best practices and proper semantic markup. Use proactively when: (1) writing or editing .tex files, (2) writing or editing .nw literate programming files, (3) literate-programming skill is active and working with .nw files, (4) user mentions LaTeX, BibTeX, or document formatting, (5) reviewing LaTeX code quality. Ensures proper use of semantic environments (description vs itemize), csquotes (\enquote{} not ``...''), and cleveref (\cref{} not \S\ref{}).

1 0
Explore
dbosk/claude-skills

canvas-quiz

Write and review Canvas LMS quiz JSON files (INL1Quiz-*.json) for the tilkry cryptography course. Use proactively when: (1) creating, editing, or reviewing INL1Quiz JSON files, (2) user asks to write quiz questions for a lecture topic, (3) user asks to review quiz quality, redundancy, or distractor balance, (4) user mentions Canvas quiz, INL1Quiz, quiz JSON, or quiz questions. Covers JSON structure, question design, scoring, redundancy analysis, and validation.

1 0
Explore
dbosk/claude-skills

didactic-notes

Document pedagogical design decisions in educational materials using the didactic LaTeX package and \ltnote command. Use proactively when (1) writing or editing educational LaTeX materials with pedagogical content, (2) adding variation theory labels or patterns to student-facing content, (3) explaining design trade-offs or choices in educational materials, (4) documenting why specific examples or exercises are sequenced in a particular way. Invoke when user mentions didactic notes, \ltnote, pedagogical reasoning, learning theory notes, educational design documentation, variation theory labels in student content, or asks to move pedagogical reasoning to instructor notes. CRITICAL: Pedagogical reasoning (variation/invariance labels, pattern names, design rationale) should be in \ltnote{}, NOT in student-facing text.

1 0
Explore
dbosk/claude-skills

literate-programming

CRITICAL: ALWAYS activate this skill BEFORE making ANY changes to .nw files. Use proactively when: (1) creating, editing, reviewing, or improving any .nw file, (2) planning to add/modify functionality in files with .nw extension, (3) user asks about literate quality, (4) user mentions noweb, literate programming, tangling, or weaving, (5) working in directories containing .nw files, (6) creating new modules/files that will be .nw format. Trigger phrases: 'create module', 'add feature', 'update', 'modify', 'fix' + any .nw file. Never edit .nw files directly without first activating this skill to ensure literate programming principles are applied. (project, gitignored)

1 0
Explore
dbosk/claude-skills

try-first-tell-later

Structure educational content using try-first-tell-later pedagogy where students predict, attempt, or reflect before receiving explanations. Creates active learning through cognitive engagement and variation theory's contrast patterns. Use when writing educational materials, designing exercises, creating lecture notes, structuring tutorials, writing teaching examples with LaTeX/Beamer, developing problem sets, or when user mentions try-first, predict-first, productive failure, Socratic method, question-before-answer, exercise-driven learning, or inquiry-based teaching.

1 0
Explore
dbosk/claude-skills

skill-management

IMPORTANT: Activate this skill BEFORE modifying any skill in ~/.claude/skills/. Guide for creating, updating, and maintaining Claude Code skills following best practices. Use proactively when: (1) creating a new skill, (2) modifying an existing skill in ~/.claude/skills/, (3) user requests to create, improve, update, review, or refactor a skill, (4) discussing skill quality or effectiveness. Always commit skill changes to the skills git repository after making modifications.

1 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results