Image for post
Image for post

Sometime soon, we need to deprecate RSA and ECC, as they will not be seen as robust in a post quantum computing world. One of the alteratives to these methods is the usage of lattice cryptography, and especially in the usage of Ring Learning With Errors (RLWE). An important application of this is within key exchange, and where Bob and Alice can exchange information, and then end-up with the same shared key. Here is a presentation which outlines this method:

Another application is within digital signatures, and where Bob will sign something with his private key, and then Alice can prove that he signed it with his public key. One post-quantum signature method is BLISS (short for Bimodal Lattice Signature Scheme). It was created by Léo Ducas, Alain Durmus, Tancrède Lepoint and Vadim Lyubashevsky in 2013 [here]:

Image for post
Image for post

While it produces a small signature and has good security, it was not entered into the NIST candidate list for standardization. It uses a Fiat-Shamir lattice signature scheme, and his an improved method for selecting samples for the parameters. It also uses Huffman coding to compress the signature.

The following is some sample code [here]:

import (
)func main() { m1:="Hello"
argCount := len(os.Args[1:]) if (argCount>0) {m1= string(os.Args[1])}
seed := make([]uint8, sampler.SHA_512_DIGEST_LENGTH)
for i := 0; i < len(seed); i++ {
seed[i] = uint8(i % 8)
entropy, _ := sampler.NewEntropy(seed)
key, _ := bliss.GeneratePrivateKey(0, entropy)
pub := key.PublicKey()
msg := []byte(m1)
sig, _ := key.Sign(msg, entropy)
fmt.Printf("Pub key: %s:\n", pub.String())
fmt.Printf("Signature: %s:\n", sig.String())
_, err := pub.Verify(msg, sig) if err == nil {
fmt.Printf("Verify signature for version\n")

And a sample run [here]:


The good money is on lattice cryptography to win the NIST competition for signatures, so go learn some lattice cryptography.

Written by

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. EU Citizen. Auld Reekie native. Old World Breaker. New World Creator.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store