Skip to content

Generic group model, discrete log algorithms (brute force and BSGS) and lower bound - #83

Open
fharding1 wants to merge 1 commit into
Shreyas4991:mainfrom
fharding1:fharding1/generic-group-model
Open

Generic group model, discrete log algorithms (brute force and BSGS) and lower bound#83
fharding1 wants to merge 1 commit into
Shreyas4991:mainfrom
fharding1:fharding1/generic-group-model

Conversation

@fharding1

Copy link
Copy Markdown

The generic group model is a nice cryptography target for this project because you can prove some interesting lower bounds without computational assumptions. This formalization follows Maurer's.

  • Models/GenericGroup.lean - generic model. See some more discussion on the formalization in the doc-string.
  • Algorithms/DiscreteLog.lean - brute-force discrete log algorithm is correct and $\Theta(p)$ element-producing group operations (add and neg)
  • Algorithms/BabyStepGiantStep.lean - baby-step giant-step discrete log algorithm is correct and $\Theta(p^{1/2})$ element-producing group ops
  • LowerBounds/DiscreteLog.lean - any (generic) discrete log algorithm that is correct on all inputs uses $\Omega(p^{1/2})$ element-producing group ops

AI disclosure: this PR was prepared with significant AI assistance (mainly Opus 5). I scrutinized the model, algorithm descriptions, top-level theorems, doc-strings, and skimmed the proofs to make sure they were what I expected. There are also some tests in AlgoleanTests/GroupExamples.lean which are meant to give some intuition for how the model works, and show off some examples of using the algorithms.

The generic group model is a nice cryptography target for this project
because you can prove some interesting lower bounds without
computational assumptions. This formalization follows Maurer's.

* Models/GenericGroup.lean - generic model
* Algorithms/DiscreteLog.lean - brute-force discrete log algorithm is
  correct and Theta(p) element-producing group operations (add and neg)
* Algorithms/BabyStepGiantStep.lean - baby-step giant-step discrete log
  algorithm is correct and Theta(sqrt(p)) element-producing group ops
* LowerBounds/DiscreteLog.lean - any (generic) discrete log algorithm
  that is correct on all inputs uses Omega(sqrt(p)) element-producing
  group ops

AI disclosure: prepared with significant AI assistance
(mainly Opus 5). I scrutinized the model, algorithm descriptions,
top-level theorems, and skimmed the proofs to make sure they were what
I expected. There are also some tests in
AlgoleanTests/GroupExamples.lean which are meant to give some intuition
for how the model works, and show off some examples of using the
algorithms.
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