Skip to content

Instantly share code, notes, and snippets.

View kobby-pentangeli's full-sized avatar

Kobby Pentangeli kobby-pentangeli

View GitHub Profile
@paulmillr
paulmillr / BLS_Signature.md
Last active August 26, 2025 00:42
BLS Signature for Busy People

BLS Signature for Busy People

bls12-381 is pairing-friendly Barreto-Lynn-Scott elliptic curve construction allowing to:

  • Construct zk-SNARKs at the ~120-bit security, as per Barbulescu-Duquesne 2017
  • Efficiently verify N aggregate signatures with 1 pairing and N ec additions: the Boneh-Lynn-Shacham signature scheme is orders of magnitude more efficient than Schnorr

BLS can mean 2 different things:

1. Converts the recipient's public key to PKCS8

ssh-keygen -f id_rsa.pub -e -m PKCS8 > id_rsa.pkcs8.pubkey

One way to obtain a recipient's public key is from GitHub, by adding .keys to their profile url, e.g. https://github.com/noamnelke.keys

2. Encrypt a string

This pipes a secret string into openssl, encrypts it with the recipient's public key and pipes the result to openssl again to transcode it into base64 (without the last step it would be binary, which is fine for a file, but harder to paste somewhere).