Photo by Christian Wiediger on Unsplash

Crypto Pairing: Putting Privacy At The Core of our Digital World

--

In 2019, I finally really understood elliptic curve cryptography (ECC), I found something that allowed me to see a clearer future: pairing-based cryptography. Within this, I could see new ways of preserving privacy, and where we could prove things, without revealing our secrets. In the end, my best find was the MIRACL library [here], and which allowed me to experiment with state-of-the-art methods in most of the available software language. So while our crypto researcher — Will Abramson — went for Rust, I plucked for the language that is most like C, but which allows me to integrate with GitHub: Go.

As I was learning pairing cryptography, I used MIRACL to build little test cases, in order for me to understand the core principles:

  • BN254 for pairing with MIRACL. Pairing. BN254 using Go for pairing of e(aU,bV)=e(abU,V)
  • BN254 for pairing with MIRACL. Pairing. BN254 using Go for pairing of e(aU,bV)=e(U,V)ab
  • BN254 for pairing with MIRACL. Pairing. BN254 using Go for pairing of e(U1+U2,V)=e(U1,Ve(U2,V)
  • BN254 for pairing with MIRACL. Pairing. BN254 using Go for pairing of e(aU,bV)=e(bU,aV)

With these under my belt, I moved onto the standard tests for pairing-based crypto, such as for tripartite key sharing:

--

--

Prof Bill Buchanan OBE FRSE
ASecuritySite: When Bob Met Alice

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. Based in Edinburgh. Old World Breaker. New World Creator. Building trust.