Skip to content

feat(Crypto): add security games - #1069

Open
SamuelSchlesinger wants to merge 2 commits into
samschles/crypto-pr-03-statistical-distance-tsumfrom
samschles/crypto-pr-07-security-games
Open

SamuelSchlesinger wants to merge 2 commits into
samschles/crypto-pr-03-statistical-distance-tsumfrom
samschles/crypto-pr-07-security-games

Conversation

@SamuelSchlesinger

@SamuelSchlesinger SamuelSchlesinger commented Oct 4, 2026 •

Copy link
Copy Markdown
Collaborator

Adds Cslib.Crypto.Game, representing Boolean experiments as PMF Bool. Distinguishing advantage is the absolute difference of acceptance probabilities, following Boneh and Shoup, §3.1.

Game.Secure requires negligible advantage for each admissible adversary, with admissibility applied to the whole adversary before choosing a security parameter. Game.SecureWithError gives a common concrete bound for all admissible adversaries.

Includes symmetry and game-hopping lemmas, restriction of admissible adversaries, asymptotic security reductions, and conversion from a negligible concrete bound to asymptotic security. These definitions let PRG games and experiments over infinite sample spaces share one security API.

Depends on #1065.

Composed with Claude Code; reviewed and restacked with Codex.

@SamuelSchlesinger
SamuelSchlesinger added this pull request to stack #1064 October 4, 2026 22:18
@SamuelSchlesinger
SamuelSchlesinger force-pushed the samschles/crypto-pr-07-security-games branch 2 times, most recently from 0cb3fa2 to 3f0179f Compare October 4, 2026 23:33
@SamuelSchlesinger
SamuelSchlesinger removed this pull request from stack #1064 October 5, 2026 20:06
@SamuelSchlesinger
SamuelSchlesinger added this pull request to stack #1077 October 5, 2026 20:07
@SamuelSchlesinger
SamuelSchlesinger force-pushed the samschles/crypto-pr-07-security-games branch from 3f0179f to 38b42fe Compare October 5, 2026 20:19
@SamuelSchlesinger
SamuelSchlesinger removed this pull request from stack #1077 October 5, 2026 20:20
@SamuelSchlesinger
SamuelSchlesinger added this pull request to stack #1080 October 5, 2026 20:20
@SamuelSchlesinger
SamuelSchlesinger removed this pull request from stack #1080 October 5, 2026 20:43
@SamuelSchlesinger
SamuelSchlesinger added this pull request to stack #1082 October 5, 2026 20:43
Adds `Cslib.Crypto.Game`. A `Game` is a `PMF Bool`, the distribution of a Boolean experiment, and `advantage` is the absolute difference of acceptance probabilities ([BonehShoup2023] §3.1). It satisfies the triangle inequality used in game hopping.

`Game.Secure real ideal Admissible` says that every admissible adversary has negligible advantage, with admissibility checked before the security parameter is chosen. `Game.SecureWithError` asks instead for a common concrete bound at each parameter. Both come with monotonicity, symmetry, transitivity, and reduction lemmas.

Stating these once lets finite primitives such as the PRG games and computational definitions over infinite sample spaces share one advantage convention.
@SamuelSchlesinger
SamuelSchlesinger force-pushed the samschles/crypto-pr-07-security-games branch from 38b42fe to 9b855eb Compare October 5, 2026 20:56
@SamuelSchlesinger
SamuelSchlesinger removed this pull request from stack #1082 October 5, 2026 20:57
@SamuelSchlesinger
SamuelSchlesinger changed the base branch from samschles/crypto-pr-06-negligible to samschles/crypto-pr-03-statistical-distance-tsum October 5, 2026 20:57
@SamuelSchlesinger
SamuelSchlesinger added this pull request to stack #1084 October 5, 2026 20:57
@SamuelSchlesinger
SamuelSchlesinger removed this pull request from stack #1084 October 5, 2026 21:02
@SamuelSchlesinger
SamuelSchlesinger added this pull request to stack #1085 October 5, 2026 21:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant