This program generates a unique quantum resistant signature for given file.
It's implemented on Lamport Scheme which was invented by Leslie Lamport. Also it uses OpenSSL
Lamport Scheme might seem useless since it throws the private key, but it is useful since it throws the private key. You are trying to solve the reputation problem via ledger. Lamport Scheme naturally kills it. Imagine it in the blockchain. Anyway.
When you want to sign a file, you do sign ~/example/dir/file.ext
.
It will generate 2 files.
file.ext.sg.bin
and file.ext.pk.bin
.
Then you send these 2 files with the message (the signed file).
Receiver verifies it with verify file.ext file.ext.sg.bin file.ext.pk.bin
.
It uses all bytes of the message. So even metadata changes are being detected as corruption.
Example I/O:
$ sign test.c
> Signature and Public Key files have been created
$ verify test.c test.c.sg.bin test.c.pk.bin
> The signature is verified
$ echo -n " " >> test.c
$ verify test.c test.c.sg.bin test.c.pk.bin
> WARNING. File has been corrupted at byte 4