Prototyping Cryptographic Protocols With Charm

Prototyping Cryptographic Protocols With Charm – Matt Cheung


Modern cryptographic research uses a variety of lesser known primitives like homomorphic encryption, sigma protocols, oblivious transfer, and bilinear groups. Charm is a Python framework that implements many of these primitives and makes it easy to implement your own. In this workshop, I will discuss the primitives and demonstrate how they can be used. If you would like to follow along you can clone the charm repo from


Matt Cheung started developing his interest in cryptography during an internship in 2011. He worked on implementation of a secure multi-party protocol by adding elliptic curve support to an existing secure text pattern matching protocol. From this experience he has given talks and workshops at the Boston Application Security Conference, DEF CON, and the DEF CON Crypto and Privacy Village.