A collection of Python tools being developed towards automatically transforming cryptographic primitives in different and interesting ways:
-
AutoBatch: an automated tool for designing batch verification algorithms.
-
AutoStrong: an automated tool for converting existentially unforgeable signatures into ones that are strongly unforgeable.
-
AutoGroup+: an automated tool for optimizing pairing-based encryption and signature schemes using SMT solver techniques.
-
CloudSource: an automated tool for outsourcing the computation of pairing-based schemes to untrusted cloud proxies.
The above tools take as input a scheme description language (SDL) of a cryptographic algorithm then performs the described transformation. See subdirectories for how to run each tool and sample SDL schemes. Please contact us if you have any questions or comments at akinyelj [ AT ] cs.jhu.edu OR mpagano [ AT ] cs.jhu.edu.
SDL is a domain-specific language for abstractly representing cryptographic schemes. In the current instantiation, SDL focuses mainly on pairing-based encryption and signature primitives. There are several SDL schemes within this repository that demonstrate the syntax and semantics of the language. For examples, click here.