Project

General

Profile

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.