Bimodal Lattice Signature Scheme (BLISS) » History » Version 1
Andreas Steffen, 12.12.2014 21:39
1 | 1 | Andreas Steffen | h1. Bimodal Lattice Signature Scheme (BLISS) |
---|---|---|---|
2 | 1 | Andreas Steffen | |
3 | 1 | Andreas Steffen | BLISS is a post-quantum signature scheme based on the CRYPTO 2013 paper "Lattice Signatures and Bimodal Gaussians":https://eprint.iacr.org/2013/383 by Léo Ducas, Alain Durmus, Tancrède Lepoint, and Vadim Lyubashevsky. Starting with the strongSwan [[5.2.2]] release we offer BLISS as an IKEv2 public key authentication method and added full BLISS key and certificate generation support to the strongSwan [[IpsecPki|pki]] tool. |
4 | 1 | Andreas Steffen | |
5 | 1 | Andreas Steffen | h2. BLISS Private Key Generation |
6 | 1 | Andreas Steffen | |
7 | 1 | Andreas Steffen | strongSwan currently supports the BLISS-I, BLISS-III, and BLISS-IV schemes with a cryptographic strength of 128 bits, 160 bits and 192 bits, respectively. Using the [[IpsecPki|pki]] tool a private BLISS key can be generated as follows: |
8 | 1 | Andreas Steffen | <pre> |
9 | 1 | Andreas Steffen | pki --gen --type bliss --size 1 --debug 2 > key1.der |
10 | 1 | Andreas Steffen | |
11 | 1 | Andreas Steffen | mgf1 based on sha1 is seeded with 20 octets |
12 | 1 | Andreas Steffen | mgf1 generated 240 octets |
13 | 1 | Andreas Steffen | mgf1 based on sha1 is seeded with 20 octets |
14 | 1 | Andreas Steffen | mgf1 generated 240 octets |
15 | 1 | Andreas Steffen | l2 norm of s1||s2: 771, Nk(S): 47150 (46479 max) |
16 | 1 | Andreas Steffen | |
17 | 1 | Andreas Steffen | mgf1 based on sha1 is seeded with 20 octets |
18 | 1 | Andreas Steffen | mgf1 generated 220 octets |
19 | 1 | Andreas Steffen | mgf1 based on sha1 is seeded with 20 octets |
20 | 1 | Andreas Steffen | mgf1 generated 240 octets |
21 | 1 | Andreas Steffen | l2 norm of s1||s2: 771, Nk(S): 43332 (46479 max) |
22 | 1 | Andreas Steffen | |
23 | 1 | Andreas Steffen | secret key generation succeeded after 2 trials |
24 | 1 | Andreas Steffen | </pre> |
25 | 1 | Andreas Steffen | When generating the private key consisting of the two polynomials s1 and s2, the Nk(S) metric must be fulfilled. This means that often several trials are needed in order to obtain a valid BLISS private key. |
26 | 1 | Andreas Steffen | |
27 | 1 | Andreas Steffen | With the command |
28 | 1 | Andreas Steffen | <pre> |
29 | 1 | Andreas Steffen | pki --print --type bliss-priv --in key1.der |
30 | 1 | Andreas Steffen | |
31 | 1 | Andreas Steffen | private key with: |
32 | 1 | Andreas Steffen | pubkey: BLISS 128 bits strength |
33 | 1 | Andreas Steffen | keyid: d1:a3:fb:04:8d:1b:86:4f:fa:a7:d8:45:ec:e3:e3:ec:ef:7b:85:ca |
34 | 1 | Andreas Steffen | subjkey: e3:fc:6b:59:9a:ee:81:d5:10:3a:58:9f:e2:99:f7:7f:5c:3b:1c:96 |
35 | 1 | Andreas Steffen | </pre> |
36 | 1 | Andreas Steffen | information on the BLISS private key is displayed. |