DSA Postquantum standardization 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 the project:
cd ~/PQS/Signature/
makeRun PQS testing script
./pqs_testAll the desired parameters for testing script as well as the signature parameters itself can be adjusted in header files config.h, params.h.
In order to use this implementation in external project, include sign.h header file into your project and follow the instructions below.
#include "~/PQS/Signature/sign.h"- Allocate memory for public key, private key and signature by declaring variables having special data types
vk_t,sk_t,signat_trespectively; - Generate a keypair by calling
PQS_keygen(vk, sk);- Load the message to be signed to array
unsigned char m[]of lengthint mlenbytes - Sign the message by calling
PQS_sign(sig, &m[0], sizeof(m), sk, vk);- Verify the signature stored in
sigby 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