BEPAC: Best Effort and Practice Activation Codes

Milk Activation Code

Activation Codes are used in many different digital services and known by many different names including voucher, e-coupon and discount code. In this paper we focus on a specific class of ACs that are short, human-readable, fixed-length and represent value. Even though this class of codes is extensively used there are no general guidelines for the design of Activation Code schemes. We discuss different methods that are used in practice and propose BEPAC, a new Activation Code scheme that provides both authenticity and confidentiality.

  • The BEPAC paper is available from

The accompanying software implementation of the paper is written in C++. It makes use of the OpenSSL crypto library. So this needs to be installed whenever you try to compile the code. The BEPAC software exists of:

  • an attack on a 3-round Feistel network:
      make blackrog
  • an example implementation of BEPAC:
      make ac
  • an example DES implementation using a clear Feistel structure:
      make destest

The C++ code can be downloaded here:

Real-life example of an Activation Code:

Activation Code