Blake-Haydon / Lamport-Signatures

Lamport Signatures (one-time signatures) implemented in python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lamport Signatures (one-time signatures)

Lamport Signatures are a digital signature scheme that uses a one-way function (hash function) to generate a signature. This is a one-time signature scheme, meaning that the same message cannot be signed twice. See wikipedia for more information.

Lamport signatures are interesting as they are assumed to be secure against quantum computers. This is because the one-way function used is a hash function, which is assumed to be secure against quantum computers.

These notebooks are used for my own learning and are not intended to be a complete reference. They are based on the original paper by Lamport.

Notebooks

  • Single Bit Signing: Simple example of signing a single bit message
  • Naive Lamport Signatures: A basic implementation of the original Lamport Signatures paper with uncompressed public and private keys
  • Short Private Keys: Lamport Signatures with a short private key (48 bytes) by using a CSPRNG to generate the private key instead of random bits
  • Short Public Keys: Lamport Signatures with a short public key (32 bytes) by using a vector commitment (Merkle root) instead of the full public key

Interface Images

References:

About

Lamport Signatures (one-time signatures) implemented in python

License:MIT License


Languages

Language:Jupyter Notebook 100.0%