| Literature DB >> 35915107 |
Randy Kuang1, Maria Perepechaenko2, Michel Barbeau3.
Abstract
We propose a new quantum-safe digital signature algorithm called Multivariate Polynomial Public Key Digital Signature (MPPK/DS). The core of the algorithm is based on the modular arithmetic property that for a given element g, greater than equal to two, in a prime Galois field GF(p) and two multivariate polynomials P and Q, if P is equal to Q modulo p-1, then g to the power of P is equal to g to the power of Q modulo p. MPPK/DS is designed to withstand the key-only, chosen-message, and known-message attacks. Most importantly, making secret the element g disfavors quantum computers' capability to solve the discrete logarithm problem. The security of the MPPK/DS algorithm stems from choosing a prime p associated with the field GF(p), such that p is a sum of a product of an odd prime number q multiplied with a power x of two and one. Given such a choice of a prime, choosing even coefficients of the publicly available polynomials makes it hard to find any private information modulo p-1. Moreover, it makes it exponentially hard to lift the solutions found modulo q to the ring of integers modulo p-1 by properly arranging x and q. However, finding private information modulo the components q and power x of two is an NP-hard problem since it involves solving multivariate equations over the chosen finite field. The time complexity of searching a private key from a public key or signatures is exponential over GF(p). The time complexity of perpetrating a spoofing attack is also exponential for a field GF(p). MPPK/DS can achieve all three NIST security levels with optimized choices of multivariate polynomials and the generalized safe prime p.Entities:
Year: 2022 PMID: 35915107 PMCID: PMC9343446 DOI: 10.1038/s41598-022-15843-x
Source DB: PubMed Journal: Sci Rep ISSN: 2045-2322 Impact factor: 4.996
Summary of related work.
| Classical technique | Quantum technique | ||||
|---|---|---|---|---|---|
| Classical data | Primitive | Based on | Most effective attack | NIST 3rd round finalist | |
| RSA[ | LUOV[ | UOV[ | Nested subfield attack[ | ||
| DSA | Rainbow[ | UOV[ | Min-Rank attacks[ | ||
| ECDSA[ | GeMSS[ | HFE[ | Due to Ding[ | ||
| MQDSS[ | Fiat-Shamir | Due to Kales and Zaverucha[ | |||
| Quantum data | – | QDS[ | |||
| CV-QDS[ | |||||
Proposed MPPK/DS configurations to meet corresponding NIST Security level and avert corresponding attack, with values given as .
| Attack | Complexity | Security level | ||
|---|---|---|---|---|
| Level I | Level III | Level V | ||
| 1 | (32, 32, 64, 2, 2, 1) | (32, 32, 64, 3, 2, 1) | (32, 32, 64, 4, 2, 1) | |
| 2 | (32, 32, 64, 2, 1, 1) | (32, 32, 64, 2, 2, 1) | (32, 32, 64, 2, 3, 1) | |
| 3 | (32, 32, 64, 2, 2, 1) | (32, 32, 64, 4, 2, 1) | (32, 32, 64, 6, 2, 1) | |
| 4 | (32, 32, 64, 2, 2, 1) | (32, 32, 64, 2, 2, 1) | (32, 32, 64, 2, 3, 1) | |
| 5 | (32, 32, 64, 2, 2, 1) | (32, 32, 64, 2, 2, 1) | (32, 32, 64, 2, 2, 1) | |
| 1–5 | (32, 32, 64, 2, 2, 3) | (32, 32, 64, 4, 2, 3) | (32, 32, 64, 6, 3, 2) | |
aAll the classical complexity estimations considered together.
Public Key and Signature sizes of the the MPPK/DS scheme as well as the NIST PQC Round 3 Finalists, with values given in Bytes corresponding to various NIST Security Levels.
| Signature | Public key size (B) | Signature size (B) | ||||
|---|---|---|---|---|---|---|
| Scheme | I | III | V | I | III | V |
| MPPK/DS | 192 | 288 | 288 | 80 | 120 | 160 |
| Rainbowa | 161,600 | 882,080 | 1,930,600 | 66 | 164 | 212 |
| Dilithiumb | – | 1952 | 2592 | – | 3293 | 4,595 |
| Falconc | 897 | – | 1793 | 690 | – | 1330 |
aThe rainbow1aclassic363232 primitive was measured for Level I, rainbow3cclassic683248 for Level III, and rainbow5cclassic963664 for Level V.
bDilithium does not provide primitive for NIST Level I, dilithium3 was used for Level III, and dilithium5 for Level V.
cFor Falcon, falcon512dyn was measured for Level I, no primitive was measured for Level III, falcon1024dyn was measured for Level V.
Median values given in clock cycles, corresponding to the Performance measurement of the MPPK/DS scheme as well as the NIST PQC Round 3 Finalists for various NIST Security Levels.
| Security level | Level I | Level III | Level V |
|---|---|---|---|
| MPPK/DS | 22,437 | 36,700 | 47,668 |
| Rainbowa | 20,788,655 | 123,007,216 | 263,207,040 |
| Dilithiumb | – | 322,993 | 454,373 |
| Falconc | 32,557,525 | – | 91,533,955 |
| MPPK/DS | 42,286 | 57,223 | 63,534 |
| Rainbowa | 180,675 | 898,223 | 1,491,838 |
| Dilithiumb | – | 1,163,882 | 1,041,113 |
| Falconc | 10,268,556 | – | 22,499,756 |
| MPPK/DS | 48,965 | 75,980 | 87,567 |
| Rainbowa | 21,258 | 177,094 | 332,196 |
| Dilithiumb | – | 313,009 | 482,670 |
| Falconc | 68,858 | – | 138,492 |
aThe rainbow1aclassic363232 primitive was measured for Level I, rainbow3cclassic683248 for Level III, and rainbow5cclassic963664 for Level V.
bDilithium does not provide primitive for NIST Level I, dilithium3 was used for Level III, and dilithium5 for Level V.
cFor Falcon, falcon512dyn was measured for Level I, no primitive was measured for Level III, falcon1024dyn was measured for Level V.
Public Key Sizes of the the MPPK/DS scheme as well as the NIST PQC Round 3 multivariate DS schemes, with values given in Bytes.
| Signature | Public key size (B) | Signature size (B) | ||||
|---|---|---|---|---|---|---|
| Scheme | I | III | V | I | III | V |
| MPPK/DS | 192 | 288 | 288 | 80 | 120 | 160 |
| Rainbowa | 161, 600 | 882, 080 | 1, 930, 600 | 66 | 164 | 212 |
| GeMSSb | 352, 188 | 1, 237, 964 | 3, 040, 700 | 32.25 | 51.375 | 72 |
aThe rainbow1aclassic363232 primitive was measured for Level I, rainbow3cclassic683248 for Level III, and rainbow5cclassic963664 for Level V.
bGeMSS128 primitive corresponds to values for level I, GeMSS192 corresponds to values for level III, and GeMSS256 corresponds to values for level V.
Performance of the the MPPK/DS scheme as well as the NIST PQC Round 3 multivariate DS schemes, with values given in clock cycles.
| Primitive | Level I | Level III | Level V |
|---|---|---|---|
| MPPK/DS | 22,437 | 36,700 | 47, 668 |
| Rainbowa | 20,788,655 | 123,007,216 | 263,207,040 |
| GeMSSb | 36,800,000 | 167,000,000 | 508,000,000 |
| MPPK/DS | 42,286 | 57,223 | 63,534 |
| Rainbowa | 180,675 | 898,223 | 1,491,838 |
| GeMSSb | 529,000,000 | 1720,000,000 | 2830,000,000 |
| MPPK/DS | 48,965 | 75,980 | 87,567 |
| Rainbowa | 21,258 | 177,094 | 332,196 |
| GeMSSb | 84,600 | 233,000 | 550,000 |
aThe rainbow1aclassic363232 primitive was measured for Level I, rainbow3cclassic683248 for Level III, and rainbow5cclassic963664 for Level V.
bGeMSS128 primitive corresponds to values for level I, GeMSS192 corresponds to values for level III, and GeMSS256 corresponds to values for level V.