DSA Postquantum standardisation candidate reported here: https://crypto-kantiana.com/main_papers/main_Signature.pdf
- gcc compiler >= 9.2.1
- OpenSSL library development package
Clone the repository files to some folder, e.g. ~/PQS
, then execute the following commands to compile a project:
cd ~/PQS/Signature/
make
Run PQS testing script
./pqs_test
All the desired parameters for testing script as well as the signature parameters itself could be adjusted in header files config.h
, params.h
.
In order to use this implementation in external project, please include sign.h
header file to your project and follow the instructions below.
#include "~/PQS/Signature/sign.h"
- Allocate memory for public key, private key and a signature by declaring variables having special data types
vk_t
,sk_t
,sig_t
respectively; - Generate a keypair by calling
PQS_keygen(vk, sk);
- Load a message to be signed to an array
unsigned char m[]
of lengthint mlen
bytes - Sign a message by calling
PQS_sign(sig, &m[0], sizeof(m), sk, vk);
- Verify a signature stored in a
sig
by calling a verification procedure
bool success = PQS_verify(sig, &m[0], sizeof(m), vk);
Please refer to the following paper for more details: https://crypto-kantiana.com/main_papers/main_Signature.pdf