Skip to main content

pypuf: Cryptanalysis of Physically Unclonable Functions

pypi DOI

pypuf is a toolbox for simulation, testing, and attacking Physically Unclonable Functions.

Getting Started

Please check out the pypuf hello world in the documentation.

Studies and Results

pypuf is used in a number of PUF-related research projects. If you would like to add your project to the list, please open an issue or send an email. In reverse chronological order:

Please check out the archived version of pypuf v1 to find the original code used some of the older projects.

Citation

To refer to pypuf, please use DOI 10.5281/zenodo.3901410. pypuf is published via Zenodo. Please cite this work as

Nils Wisiol, Christoph Gräbnitz, Christopher Mühl, Benjamin Zengin, Tudor Soroceanu, Niklas Pirnay, Khalid T. Mursi, & Adomas Baliuka. pypuf: Cryptanalysis of Physically Unclonable Functions (Version 2, June 2021). Zenodo. https://doi.org/10.5281/zenodo.3901410

or use the following BibTeX:

@software{pypuf,
  author       = {Nils Wisiol and
                  Christoph Gräbnitz and
                  Christopher Mühl and
                  Benjamin Zengin and
                  Tudor Soroceanu and
                  Niklas Pirnay and
                  Khalid T. Mursi and
                  Adomas Baliuka},
  title        = {{pypuf: Cryptanalysis of Physically Unclonable
                   Functions}},
  year         = 2021,
  publisher    = {Zenodo},
  version      = {v2},
  doi          = {10.5281/zenodo.3901410},
  url          = {https://doi.org/10.5281/zenodo.3901410}
}

Contribute

Testing, linting, licensing. When first contributing, make sure to update the author lists in README.md (2x), index.rst of the docs (2x), and CITATION.cff (1x).

Run Tests

  1. install sphinx-build xdoctest
  2. xdoctest pypuf
  3. cd docs
  4. make clean
  5. make doctest && make html
  6. cd to project root
  7. python3 -m pytest test

Maintainer: Prepare New Release

  1. Make sure author lists are up-to-date.
  2. Make sure docs are testing and building without error (see above)
  3. Commit all changes
  4. Clean up dist/ folder
  5. Set up new release version: RELEASE=x.y.z
  6. Update version to x.y.z in setup.py and docs/conf.py
  7. Commit with message "Release Version vx.y.z": git commit -p -m "Release Version v$RELEASE"
  8. Tag commit using git tag -as v$RELEASE -m "Release Version v$RELEASE"
  9. If applicable, adjust dev and/or stable tags.
  10. Push
    1. branch: git push
    2. tag: git push origin v$RELEASE
  11. Set environment variables GITHUB_TOKEN to a GitHub token, TWINE_USERNAME and TWINE_PASSWORD to PyPi credentials.
  12. Publish using publish nils-wisiol pypuf
  13. At zenodo.org, make sure the author list is up to date.

Release files for pypuf 3.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypuf 3.2.1
File Size Uploaded
pypuf-3.2.1.tar.gz 75.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pypuf 3.2.1
File Interpreter ABI Platform
pypuf-3.2.1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 132.6 kB

Release files / pypuf-3.2.1.tar.gz

Download URL pypuf-3.2.1.tar.gz
Size 75.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4ef3ab91ede06f3d9234741fd0d63ea59421e3f76b61535fafbcc754975a4c80
BLAKE2b-256 checksum
How to use checksums
6828f79236a83ba056009715d8c559b59f2737f8d1674937ab6c9063c7206b7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.5.0.1 requests/2.22.0 requests-toolbelt/0.8.0 tqdm/4.51.0 CPython/3.8.10

Release files / pypuf-3.2.1-py2.py3-none-any.whl

Download URL pypuf-3.2.1-py2.py3-none-any.whl
Size 57.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
f65beb13de69f375b705ca11369469bcbc88859fc45db9af6a884e1843e6712d
BLAKE2b-256 checksum
How to use checksums
3b5320de7912ab162a8e7a0e73cb3a14e449f6840e690057feed5dc5b3286e21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.5.0.1 requests/2.22.0 requests-toolbelt/0.8.0 tqdm/4.51.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

3.2.1 This release

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page