Project

General

Profile

Bimodal Lattice Signature Scheme (BLISS) » History » Version 2

Andreas Steffen, 12.12.2014 21:43

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 2 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.
37 2 Andreas Steffen
38 2 Andreas Steffen
Let's now generate a BLISS-IV key with 192 bit cryptographic strength in base64-encoded PEM format
39 2 Andreas Steffen
<pre>
40 2 Andreas Steffen
pki --gen --type bliss --size 4 --outform pem  > key4.pem
41 2 Andreas Steffen
secret key generation succeeded after 4 trials
42 2 Andreas Steffen
</pre>
43 2 Andreas Steffen
The PEM key format is printable
44 2 Andreas Steffen
<pre>
45 2 Andreas Steffen
 cat key4.pem
46 2 Andreas Steffen
-----BEGIN BLISS PRIVATE KEY-----
47 2 Andreas Steffen
MIIFGgYLKwYBBAGCoCoFAgQDggOBACUkEElEU1wx3rTZLRp7ejCQl7beNwsiFfMs
48 2 Andreas Steffen
WWtH2EbLR1KxExmkc07Wp6GwEgQQVh5iHQaq0cX8aRSWUpne27elaBgfnv2lKIIY
49 2 Andreas Steffen
YRBechxMh7YGYVQl/8se1EeCZqqZiR7hEHyYCFogDiCM7aW8RTw0ZtbJBK37UkTR
50 2 Andreas Steffen
ZDoNjk9kyYEhZdoEsjGo0h5DBFLcxExk6Git+9e8xsJL4rdjLImGezgBOczbhTow
51 2 Andreas Steffen
migPmqQx4bi441BAIC65oIoSdQwdMmLnaHi6CAT314jGS8UG6hcTL6qO5iaoaKFA
52 2 Andreas Steffen
AVSX9EPRCtIxVq/IgqBKybK+bO9LWqQ1Pcn5u2KitXioNYg10YPcko0XNitUik/v
53 2 Andreas Steffen
VSQPW1EJ6ZJ9v/bTZZFi7QjTtKq8GoIld0Vhh1TFnfEOblOCSsi7B+TxJHAf5BkR
54 2 Andreas Steffen
ia1oxEN8iDA9xNL2ohzUJurdO/wCsCAstVC9HOKooqAR7EiFP7CEQwxXpxuw8Kv9
55 2 Andreas Steffen
2/0L8jy4Sq0thxlrSbtSdZGq1/gNYLqNII7oZJH0HfhpC6oMnq0t6GILZIME3Pti
56 2 Andreas Steffen
9Kj9WMxZMCxOTC6Fl5IvzsCV1vHgNoB4MgUaJy6MUJyU+LdAhYmjso9rNdBah0Ku
57 2 Andreas Steffen
drJh1o1uS7ERUohYkJtlzky9XuS2pjwTELxpAsrPz6VM6ZXiZAZCuqF00crUoy2K
58 2 Andreas Steffen
yjiOpS5/4nKKEYyGez3QepLjTYzMapC7TXw7sD80H0S8BuSW+HJMFy4BWMXP5bps
59 2 Andreas Steffen
Chw7tFsWMa5i1oiXPUDoYlW740Zj5YwIY6e2oeBiEceU/5TkNXcbBJ4gojaKxwdz
60 2 Andreas Steffen
oOExefSthX91OcHhq2W0GSyZ9I+aUngseEdcYjKk2IL76kxWrdwoM95feDGY925r
61 2 Andreas Steffen
sRV0tpqiSKh04K1gV0wSRzT7w82lVwPwQlY9Hw1nVfVU99bzujoHSfiEFVUURFlQ
62 2 Andreas Steffen
jWAMBq32hwdfeghOEkLBLQYqRjWOyWSi7I1GWMJ/P7CaBiKiM096NCJiYJyUuj6l
63 2 Andreas Steffen
yM0gJJ0iiNNSF6oqQIQcwFOP9HTQk9DNE3AplGqrJptROtN8lvFlpnhQt6YQBHQX
64 2 Andreas Steffen
qAUCx47EsrN8W+m+XQKrdMOKhz3JxB+tcJOoQSsoZ1AT9eUaM5VxLoRGY3GMmG3e
65 2 Andreas Steffen
J3SETcNggvZlP25VgapsCInEWbnAJmPQ7ydTov8yF0EQdiiZYUQlHXvktTPpHgFP
66 2 Andreas Steffen
Vcc6A9TFA4HBAAQOAeOAdsAACDxyADyADyPwAOAR+CSuBxzweASQCBwRwQgCBxx+
67 2 Andreas Steffen
QAQSAMAAeDwQAfyOTiST+AASOODuBx/wACQiOAASQeOACQB/9yAgOASDjyDwCQfw
68 2 Andreas Steffen
N+AeOAOOACPwQBwsAPwPzwMcCCCQADwSACCBx+DwQAPwASABwOOgBvwQCQDwPwAQ
69 2 Andreas Steffen
SBwFwOESSAef+QCT+ACPwAAeRyBsfwAAQAABgPwUAQOehweRwN+eNwDx/yDiOFyQ
70 2 Andreas Steffen
AOOABwEQAOBwAQOBwQDngAH9DAcg/hHoAlAE8AAfckfrgYkccA/IgAcEgY/gEIfk
71 2 Andreas Steffen
cHgEEEHjkgcfkjgDgYfj4AEAAAkAAgFcf8Dj/hEggADEBADjjjAgnjADogDj8/8f
72 2 Andreas Steffen
kjgAcAAAAEAcAA/gf/gg8cAALjkAcAEEgEYjk8AEDgcj8EAH/kEEcA7ggAADkcA8
73 2 Andreas Steffen
AEkAkgAk/AAAEngEAgAAD8HkA8kEAjgA8A8YFcjoAAgD//jA8c/8cf/j8cAngAAc
74 2 Andreas Steffen
AHgHgkBE/nj8kcDgIAE=
75 2 Andreas Steffen
-----END BLISS PRIVATE KEY-----
76 2 Andreas Steffen
</pre>