# PynKode pynkode is a tutorial of how nkode works. There are jupyter notebooks in /notebooks covering these topics: - dispersion - nkode enrollment, login, and renewal - split shuffle ## Installation - Python version 3.10 or greater is required - Install conda (or your preferred tool) for environment management ### Using conda ```bash conda env create -f environment.yml conda activate pynkode ``` ## Starting a Jupyter Notebook ### Option 1: Using classic Jupyter Notebook ```bash # Ensure your environment is activated # For conda: conda activate pynkode # For pyenv: (should be automatic if in the directory) # Start the Jupyter Notebook server jupyter notebook ``` ### Option 2: Using JupyterLab ```bash # Ensure your environment is activated # Start JupyterLab jupyter lab ``` ## Explore the Docs You can find documentation in the [docs](docs) folder. 1. [Enrollment](docs/enrollment_diagram.md) 2. [Login](docs/login_diagram.md) 3. [nKode Cipher](docs/encipher_decipher_renew_nkode.md#nkode-cipher) 4. [nKode Validation](docs/encipher_decipher_renew_nkode.md#validate-nkode) 5. [Renew](docs/encipher_decipher_renew_nkode.md#renew-nkode) ### Tutorials You can find tutorials in the [notebooks](notebooks) directory. Recommended order: 1. [Enrollment_Login_Renewal_Simplified.ipynb](notebooks/Enrollment_Login_Renewal_Simplified.ipynb) - Learn the basics of the nKode API 2. [Enrollment_Login_Renewal_Detailed.ipynb](notebooks/Enrollment_Login_Renewal_Detailed.ipynb) - Learn the nKode API in detail 3. [Dispersion.ipynb](notebooks/Dispersion.ipynb)- Understand the basic concepts of dispersion in nkode 4. [Split_Shuffle.ipynb](notebooks/Split_Shuffle.ipynb) - Explore the split shuffle functionality ## Tabletop Discussion [notes](docs/tabletop-discussion.md)