kemtls-experiment

Experimental implementation of KEMTLS in Rustls

https://github.com/thomwiggers/kemtls-experiment

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (4.8%) to scientific vocabulary

Keywords

cryptography kemtls post-quantum post-quantum-tls rustls tls
Last synced: 6 months ago · JSON representation ·

Repository

Experimental implementation of KEMTLS in Rustls

Basic Info
  • Host: GitHub
  • Owner: thomwiggers
  • License: other
  • Language: Python
  • Default Branch: thesis
  • Homepage: https://wggrs.nl/p/kemtls/
  • Size: 226 KB
Statistics
  • Stars: 30
  • Watchers: 4
  • Forks: 14
  • Open Issues: 1
  • Releases: 2
Topics
cryptography kemtls post-quantum post-quantum-tls rustls tls
Created almost 6 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

Post-Quantum TLS without handshake signatures

This repository accompanies

  • Peter Schwabe, Douglas Stebila and Thom Wiggers. More efficient KEMTLS with pre-distributed public keys. ESORICS 2021.
  • Peter Schwabe, Douglas Stebila and Thom Wiggers. Post-quantum TLS without handshake signatures. ACM CCS 2020.
  • Peter Schwabe, Douglas Stebila and Thom Wiggers. More efficient KEMTLS with pre-distributed public keys. IACR Cryptology ePrint Archive, Report 2021/779. Updated online version. March 2022.
  • Peter Schwabe, Douglas Stebila and Thom Wiggers. Post-quantum TLS without handshake signatures. IACR Cryptology ePrint Archive, Report 2020/534. Updated online version. March 2022.
  • Fabio Campos, Jorge Chavez-Saab, Jesús-Javier Chi-Domínguez, Michael Meyer, Krijn Reijnders, Francisco Rodríguez-Henríquez, Peter Schwabe, Thom Wiggers. Optimizations and Practicality of High-Security CSIDH. IACR Cryptology ePrint Archive, Report 2023/793. October 2023.
  • Thom Wiggers. Post-Quantum TLS. PhD thesis, January 2024.

```bibtex @inproceedings{CCS:SchSteWig20, author = {Schwabe, Peter and Stebila, Douglas and Wiggers, Thom}, title = {Post-Quantum {TLS} Without Handshake Signatures}, year = {2020}, isbn = {9781450370899}, publisher = {Association for Computing Machinery}, address = {New York, {NY}, {USA}}, url = {https://thomwiggers.nl/publication/kemtls/}, doi = {10.1145/3372297.3423350}, booktitle = {Proceedings of the 2020 {ACM} {SIGSAC} Conference on Computer and Communications Security}, pages = {1461–1480}, numpages = {20}, keywords = {transport layer security, key-encapsulation mechanism, {NIST PQC}, post-quantum cryptography}, location = {Virtual Event, {USA}}, series = {{CCS '20}} }

@misc{EPRINT:SchSteWig20, author = {Peter Schwabe and Douglas Stebila and Thom Wiggers}, title = {Post-quantum {TLS} without handshake signatures}, year = 2022, month = mar, note = {full online version}, url = {https://ia.cr/2020/534}, }

@inproceedings{ESORICS:SchSteWig21, title = {More efficient post-quantum {KEMTLS} with pre-distributed public keys}, author = {Peter Schwabe and Douglas Stebila and Thom Wiggers}, year = 2021, month = sep, url = {https://thomwiggers.nl/publication/kemtlspdk/}, editor = {Bertino, Elisa and Shulman, Haya and Waidner, Michael}, booktitle = {Computer Security -- ESORICS 2021}, series = {Lecture Notes in Computer Science}, publisher = {Springer International Publishing}, address = {Cham}, pages = {3--22}, isbn = {978-3-030-88418-5}, doi = {10.1007/978-3-030-88418-5_1}, }

@misc{EPRINT:SchSteWig21, author = {Peter Schwabe and Douglas Stebila and Thom Wiggers}, title = {More efficient post-quantum {KEMTLS} with pre-distributed public keys}, howpublished = {Cryptology ePrint Archive, Paper 2021/779}, year = {2022}, month = mar, note = {full online version}, url = {https://eprint.iacr.org/2021/779} }

@misc{EPRINT:CCCMRRSW23, author = {Fabio Campos and Jorge Chavez-Saab and Jesús-Javier Chi-Domínguez and Michael Meyer and Krijn Reijnders and Francisco Rodríguez-Henríquez and Peter Schwabe and Thom Wiggers}, title = {Optimizations and Practicality of High-Security {CSIDH}}, howpublished = {Cryptology ePrint Archive, Paper 2023/793}, year = {2023}, url = {https://eprint.iacr.org/2023/793} }

@phdthesis{RU:Wiggers24, title = {Post-Quantum {TLS}}, author = {Thom Wiggers}, date = {2024-01-09}, school = {Radboud University}, address = {Nijmegen, The Netherlands}, url = {https://thomwiggers.nl/publication/thesis/} }

```

Overview of this repository

The below are all git submodules. If you want to make a fork of this repository, you will need to also fork the relevant submodules and update your .gitmodules. See also the notes below.

Main folders

  • rustls: modified Rustls TLS stack to implement KEMTLS and post-quantum versions of "normal" TLS 1.3
  • measuring: The scripts to measure the above
  • ring: Modified version of Ring to allow for longer DER-encoded strings than typically expected from TLS instances.
  • webpki: Modified version of WebPKI to work with PQ and KEM public keys in certificates
  • mk-cert: Utility scripts to create post-quantum PKI for pqtls and KEMTLS.

Supporting repositories

  • oqs-rs: Rust wrapper around liboqs. Contains additional implementations of schemes (notably AVX2 implementations).
  • mk-cert/xmss-rs: Rust wrapper around the XMSS reference code, with our custom parameter set (src/settings.rs) and utilities for keygen and signing.

Working with this repository

  • MAKE SURE TO CLONE WITH ALL SUBMODULES. There are submodules within submodules, so clone with --recurse-submodules.
  • If you want to make a fork of this repository, you will need to also fork the relevant submodules and update your .gitmodules.
  • The Dockerfile serves as an example of how everything can be compiled and how test setups can be created. It is used by the ./measuring/script/create-experimental-setup.sh script, which serves as an example of its use.
  • The mk-certs folder contains a python script, encoder.py, that can be used to create the required PKI. RSA certificates and X25519 certificates are available in subfolders. The certificates assume that the server hostname is servername, so put this in your /etc/hosts. Alternatively, override it using the environment variables in the file (which is also how you set which algorithms are used).
  • Experimenting with rustls can be done directly; use the rustls-mio subfolders and run cargo run --example tlsserver -- --help or cargo run --example tlsclient -- --help.
  • The measurement setup is handled in the measuring/ folder. See the ./run_experiment.sh script.
  • Processing of results is done by the ./scripts/process.py folder. It expects a data folder as produced by ./scripts/experiment.py.
  • Downloading archived results can be done through the scripts in measuring/archived-results/

Owner

  • Name: Thom Wiggers
  • Login: thomwiggers
  • Kind: user
  • Location: The Netherlands
  • Company: Radboud University

PhD candidate at Radboud University. Crypto all the things.

Citation (CITATION.bib)

@inproceedings{CCS:SchSteWig20,
  author = {Schwabe, Peter and Stebila, Douglas and Wiggers, Thom},
  title = {Post-Quantum {TLS} Without Handshake Signatures},
  year = {2020},
  isbn = {9781450370899},
  publisher = {Association for Computing Machinery},
  address = {New York, {NY}, {USA}},
  url = {https://thomwiggers.nl/publication/kemtls/},
  doi = {10.1145/3372297.3423350},
  booktitle = {Proceedings of the 2020 {ACM} {SIGSAC} Conference on Computer and Communications Security},
  pages = {1461–1480},
  numpages = {20},
  keywords = {transport layer security, key-encapsulation mechanism, {NIST PQC}, post-quantum cryptography},
  location = {Virtual Event, {USA}},
  series = {{CCS '20}}
}

@misc{EPRINT:SchSteWig20,
  author = {Peter Schwabe and Douglas Stebila and Thom Wiggers},
  title = {Post-quantum {TLS} without handshake signatures},
  year = 2022,
  month = mar,
  note = {full online version},
  url = {https://ia.cr/2020/534},
}

@inproceedings{ESORICS:SchSteWig21,
  title = {More efficient post-quantum {KEMTLS} with pre-distributed public keys},
  author = {Peter Schwabe and Douglas Stebila and Thom Wiggers},
  year = 2021,
  month = sep,
  url = {https://thomwiggers.nl/publication/kemtlspdk/},
  editor = {Bertino, Elisa and Shulman, Haya and Waidner, Michael},
  booktitle = {Computer Security -- ESORICS 2021},
  series = {Lecture Notes in Computer Science},
  publisher = {Springer International Publishing},
  address = {Cham},
  pages = {3--22},
  isbn = {978-3-030-88418-5},
  doi = {10.1007/978-3-030-88418-5_1},
}

@misc{EPRINT:SchSteWig21,
      author = {Peter Schwabe and Douglas Stebila and Thom Wiggers},
      title = {More efficient post-quantum {KEMTLS} with pre-distributed public keys},
      howpublished = {Cryptology ePrint Archive, Paper 2021/779},
      year = {2022},
      month = mar,
      note = {full online version},
      url = {https://eprint.iacr.org/2021/779}
}

@misc{EPRINT:CCCMRRSW23,
      author = {Fabio Campos and Jorge Chavez-Saab and Jesús-Javier Chi-Domínguez and Michael Meyer and Krijn Reijnders and Francisco Rodríguez-Henríquez and Peter Schwabe and Thom Wiggers},
      title = {Optimizations and Practicality of High-Security {CSIDH}},
      howpublished = {Cryptology ePrint Archive, Paper 2023/793},
      year = {2023},
      url = {https://eprint.iacr.org/2023/793}
}

@phdthesis{RU:Wiggers24,
    title = {Post-Quantum {TLS}},
    author = {Thom Wiggers},
    date = {2024-01-09},
    school = {Radboud University},
    address = {Nijmegen, The Netherlands},
    url = {https://thomwiggers.nl/publication/thesis/}
}

GitHub Events

Total
  • Watch event: 6
  • Fork event: 3
Last Year
  • Watch event: 6
  • Fork event: 3

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 14
  • Total pull requests: 3
  • Average time to close issues: 7 days
  • Average time to close pull requests: 18 days
  • Total issue authors: 6
  • Total pull request authors: 3
  • Average comments per issue: 6.14
  • Average comments per pull request: 2.33
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 4
  • Pull requests: 0
  • Average time to close issues: about 21 hours
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 6.75
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • SimonRastikian (6)
  • mouse07410 (2)
  • xianglingzhang (2)
  • radwasherif (1)
  • jjin3 (1)
  • TunZhou (1)
Pull Request Authors
  • GuilhemN (1)
  • claucece (1)
  • renovate[bot] (1)
Top Labels
Issue Labels
question (1)
Pull Request Labels

Dependencies

Dockerfile docker
  • debian bullseye build
  • rust 1.52-bullseye build