Skip to content

docs: enhance documentation for Quantum Threat Tracker modules and features #52

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

Merged
merged 1 commit into from
May 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/source/algorithms/crypto_attacks/index.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
Cryptographic Attacks
=====================

This package contains modules related to different cryptographic attacks.
Each cryptographic attack is a quantum algorithm that can be used to break a specific cryptographic primitive.
We currently have implementations to estimate quantum resources for the following primitives:

.. toctree::
:maxdepth: 2

Expand Down
8 changes: 5 additions & 3 deletions docs/source/algorithms/index.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
Algorithms Package
==================
Algorithms Module
=================

This package contains modules related to different quantum algorithms.
This sub module provides a suite of modular quantum algorithms for analyzing and breaking cryptographic primitives.
Each algorithm conforms to the interface defined in the :doc:`Quantum Algorithm Module <algorithms>` section.
To add a new algorithm, simply create a new class under the `algorithms` sub module, implement the required methods.

.. toctree::
:maxdepth: 2
Expand Down
54 changes: 54 additions & 0 deletions docs/source/background.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
Background Concepts
===================

This section provides background on key concepts relevant to the Quantum Threat Tracker.

Understanding the Quantum Threat
--------------------------------

Modern digital security heavily relies on public key cryptography (e.g., RSA,
Diffie-Hellman, elliptic-curve cryptography). These systems are secure because
the underlying mathematical problems (like integer factorization and discrete
logarithms) are computationally intractable for classical computers.

However, the advent of quantum computing, particularly Shor's algorithm (Shor, 1997),
presents a significant challenge. A sufficiently powerful quantum computer could
solve these problems efficiently, potentially compromising encrypted data,
digital signatures, and secure communications. Therefore, understanding the
quantum resource requirements for breaking these protocols is crucial.

While Shor's algorithm laid the theoretical groundwork, ongoing research focuses
on refining and optimizing such quantum algorithms (e.g., Chevignard et al., 2024;
May & Schlieper, 2019; Regev, 2023) for practical quantum hardware.
Implementing these algorithms at scale remains challenging due to the current
limitations of quantum hardware, such as error rates and qubit counts.

Despite these hurdles, continuous advancements in quantum hardware and error
correction suggest that public key encryption systems will face vulnerabilities
in the medium to long term. This necessitates tools like QTT to dynamically
assess these evolving threats based on progress in quantum hardware, error
correction, and algorithmic improvements.

Quantum Resource Estimation (QRE)
---------------------------------

While quantum algorithms like Shor's theoretically demonstrate how to break
public-key cryptography, determining the actual size and capabilities of a
quantum computer needed to execute these algorithms is a complex task. This
complexity arises from the differences between idealized algorithmic assumptions
and the realities of practical quantum computers, which are expected to be
error-prone, have limited connectivity between qubits, and non-negligible gate
operation times.

Quantum error correction (QEC) will be essential for running algorithms like
Shor's, but QEC introduces significant overhead in both the number of physical
qubits required and the overall algorithm runtime.

**Quantum Resource Estimation (QRE)** is the field dedicated to quantifying these
requirements. It involves analyzing quantum algorithms to determine the necessary
resources (such as number of qubits, gate counts, circuit depth, and execution time)
to run them on fault-tolerant quantum computers. QRE is a fundamental tool for
understanding the practical implications of quantum algorithms and is central to
the QTT's goal of assessing the timescales for Cryptographically Relevant
Quantum Computing (CRQC). The QTT leverages and builds upon concepts from QRE
to provide its estimations and threat assessments.
51 changes: 49 additions & 2 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,62 @@
Quantum Threat Tracker documentation
====================================

Welcome to my docs! Here’s how to install!
Welcome to the Quantum Threat Tracker (QTT)!

The Quantum Threat Tracker (QTT) is a Python package designed to provide a
comprehensive overview of quantum threats to cryptographic systems. It helps
researchers, developers, and practitioners understand the potential impact of
quantum computing on current cryptographic standards by estimating the quantum
resources required to break various cryptographic primitives.

The Quantum Threat Tracker (QTT)
---------------------------------

The QTT addresses these challenges by providing a modular framework to:

1. Estimate the quantum resources required for cryptanalysis.
2. Provide actionable insights into the vulnerabilities of cryptographic systems.

It achieves this by first determining the quantum resources needed to run a
cryptographically relevant algorithm. Then, by considering quantum computing
hardware roadmaps, it helps estimate when such resources might become available.
Finally, it allows for an assessment of the maximum potential of given quantum
hardware to compromise cryptographic systems, supporting informed decision-making.

For a deeper understanding of the quantum threat landscape and the principles
behind quantum resource estimation, please see our :doc:`background` information.

Overview of QTT Features
------------------------

The QTT is offers three core functionalities:

* **Quantum Resource Estimation (QRE):** The QTT quantifies the quantum
resources (e.g., qubit count, runtime) needed to execute
cryptographic-breaking algorithms like Shor’s for specific protocols and
key sizes.

* **Threat Report Generation:** The QTT generates comprehensive threat
reports predicting when cryptographic systems might become vulnerable. These
reports are based on hardware roadmaps and algorithmic advancements.

* **Specification Requirement Estimation:** The QTT allows users to input
a maximum number of available qubits and determine the hardware
specifications required to break a given cryptographic protocol.

These features collectively provide a versatile tool for assessing quantum threats.

.. Add your content using ``reStructuredText`` syntax. See the
`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_
documentation for details.

.. toctree::

background

.. toctree::
:maxdepth: 2
:caption: Contents:
:caption: Sub Modules

algorithms/index
lifespan_estimator
Expand Down
36 changes: 8 additions & 28 deletions docs/source/lifespan_estimator.rst
Original file line number Diff line number Diff line change
@@ -1,34 +1,14 @@
Lifespan Estimator
==================

The Lifespan Estimator module is a core component of the Quantum Threat Tracker (QTT).
It generates a primary output of the QTT, which is a threat timeline.
Given a roadmap for particular quantum computing hardware modalities and the
specifications of cryptographic protocols of interest, this module outputs
an estimate of when the cryptographic protocols are predicted to be broken,
along with the expected resource requirements over time.

.. automodule:: quantumthreattracker.lifespan_estimator
:members:
:show-inheritance:
:undoc-members:

.. Submodules
.. ----------

.. lifespan\_estimator.hardware\_roadmap module
.. --------------------------------------------

.. .. automodule:: quantumthreattracker.lifespan_estimator.hardware_roadmap
.. :members:
.. :show-inheritance:
.. :undoc-members:

.. lifespan\_estimator.lifespan\_estimator module
.. ----------------------------------------------

.. .. automodule:: quantumthreattracker.lifespan_estimator.lifespan_estimator
.. :members:
.. :show-inheritance:
.. :undoc-members:

.. Module contents
.. ---------------

.. .. automodule:: quantumthreattracker.lifespan_estimator
.. :members:
.. :show-inheritance:
.. :undoc-members:
:show-inheritance:
5 changes: 5 additions & 0 deletions docs/source/optimizer.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Optimizer Package
=================

The Optimizer module performs a grid search over a defined parameter space to
evaluate quantum algorithm configurations. This helps identify resource
requirements under various conditions by exploring parameters specified
during algorithm definition.

.. automodule:: quantumthreattracker.optimizer
:members:
:show-inheritance:
Expand Down
4 changes: 4 additions & 0 deletions docs/source/spec_req_estimator.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
Specification Requirement Estimator
===================================

The Specification Requirement Estimator (SpecReqEstimator) module estimates the
minimum device specifications (e.g., gate error rate) required to break a given
cryptographic protocol using a specified number of physical qubits.

.. automodule:: quantumthreattracker.spec_req_estimator.spec_req_estimator
:members:
:show-inheritance:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""Class for estimmating quantum computer specification requirements."""
"""Class for estimating quantum computer specification requirements."""

from qsharp.estimator import EstimatorError, EstimatorParams

Expand Down