-
Notifications
You must be signed in to change notification settings - Fork 1
Gidney 2025 #55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gidney 2025 #55
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a basic implementation of Gidney's 2025 quantum algorithm for RSA factorization. The implementation provides resource estimates for RSA key sizes from 1024 to 8192 bits using precomputed values from the referenced paper.
- Adds new
GidneyBasic
algorithm class with resource estimation for RSA factorization - Integrates the algorithm into the existing framework and testing infrastructure
- Improves threat plotting visualization with Pareto frontier filtering and enhanced formatting
Reviewed Changes
Copilot reviewed 6 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
src/quantumthreattracker/algorithms/rsa/gidney_basic.py |
Core implementation of Gidney's basic algorithm with resource estimates table |
src/quantumthreattracker/algorithms/rsa/__init__.py |
Exports the new algorithm classes |
src/quantumthreattracker/algorithms/algorithm_lister.py |
Integrates GidneyBasic into the algorithm discovery system |
tests/algorithms/test_gidney_basic.py |
Comprehensive test suite for the new algorithm |
tests/algorithms/test_algorithm_lister.py |
Updates expected algorithm list to include GidneyBasic |
src/quantumthreattracker/lifespan_estimator/lifespan_estimator.py |
Enhances threat plotting with better filtering and formatting |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
---------- | ||
crypt_params : CryptParams | ||
Cryptographic parameters. | ||
alg_params : Optional[GidneyEkeraBasicParams], optional |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The docstring references 'GidneyEkeraBasicParams' but should reference 'GidneyBasicParams' to match the actual parameter type.
alg_params : Optional[GidneyEkeraBasicParams], optional | |
alg_params : Optional[GidneyBasicParams], optional |
Copilot uses AI. Check for mistakes.
): | ||
threats.remove(threat) | ||
dominated = True | ||
break |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The break statement exits the inner loop prematurely when a dominating threat is found, but doesn't prevent checking against remaining threats. This could incorrectly mark a threat as non-dominated when a later threat actually dominates it.
Copilot uses AI. Check for mistakes.
Add a basic implementation of Gidney's 2025 algorithm.
https://arxiv.org/abs/2505.15917