Whitebox AES implementation in Java. Chow scheme.
Branch: master
Clone or download
Latest commit 2099547 Oct 17, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
ctest all boxes implemented Oct 8, 2013
src license for test files added Jan 16, 2014
.gitignore Initial commit Oct 7, 2013
.travis.yml Travis + coverity integration Dec 4, 2015
LICENSE license added, some comments added Jan 16, 2014
README.md readme update Oct 17, 2018
pom.xml GF2Matrix added, normalization ported from C++ Oct 13, 2013



Build Status Coverity Status

Whitebox cryptography AES implementation.

This repository contains a Java implementation of a complete whitebox AES-128 scheme introduced by Chow et al. It implements/uses input/output encodings, mixing bijections, external encodings.

Implementation code contains pure Java implementation of the Chow's whitebox AES scheme instance generator and instance emulator. Generated instance can be serialized.

You also might be interested in my C++ implementation of the Chow's generator & emulator. It also contains implementation of Karroumi whitebox scheme and Billet et al. key recovery attack (not implemented in Java version).


  • Maven
  • BouncyCastle (Maven should handle this dependency)


Code is licensed under new BSD license. For further details see LICENSE file.


If you would like to improve my code by extending it to AES-256 or implementing other whitebox AES schemes do not hesitate to submit a pull request. Please also consider it if you find some bug in the code. I am not actively developing this code at the moment but I will review the pull requests. Thanks!


This implementation is an open source. If you like the code or you do find it useful please feel free to donate to the author whatever amount you would like by clicking on the paypal button below. And if you don't feel like donating, that's OK too.



Monero: 47BEukN83whUdvuXbaWmDDQLYNUpLsvFR2jioQtpP5vD8b3o74b9oFgQ3KFa3ibjbwBsaJEehogjiUCfGtugUGAuJAfbh1Z