Latest News

April 22, 2017
Alan Kaminsky published a paper in the Cryptology ePrint Archive.

Additional Information

Parallel Computing:





RIT Links


Cryptography Expertise

MK-3 Encryption Algorithm — SHA-3 — Statistical Analysis — SAT Solver Attacks

MK-3 Encryption Algorithm

I am part of a team of Rochester Institute Technology professors and students sponsored by Harris Corporation to design a proprietary authenticated encryption algorithm named MK-3. Two aspects of MK-3 make it unique: it utilizes 16-bit substitution boxes (S-boxes), and it supports customized versions that are as secure as the original version. (Other encryption algorithms use 4- or 8-bit S-boxes and are not customizable.) The algorithm has been published in two conference papers. The algorithm has been patented by Harris.


The U.S. National Institute of Standards and Technology (NIST) held a multi-year competition to choose the next U.S. government standard cryptographic hash algorithm, designated SHA-3. Of 51 candidate algorithms submitted to the first round of the competition in 2008, NIST chose 14 to advance to the second round of the competition in 2009, and chose five to advance to the third and final round in December 2010. The five finalists were BLAKE, Grøstl, JH, Keccak, and Skein. After intensive public scrutiny and analysis by the cryptographic community, NIST announced Keccak as the winning SHA-3 algorithm on October 2, 2012.

In a paper published in the MILCOM 2008 conference at the start of the SHA-3 competition, my RIT computer science colleague Stanislaw Radziszowski and I argued that parallelizability must be a key requirement for the winning SHA-3 hash algorithm.

Statistical Analysis

To be secure, cryptographic primitives such as block ciphers, stream ciphers, and hash functions must behave as random functions. I am studying the statistical behavior of cryptographic primitives using the cube test of Aumasson et al. The cube test probes the primitive’s internal polynomial structure to look for weaknesses. While the cube test requires exponentially many evaluations of the primitive (2n for some n), the evaluations can be performed in a massively parallel fashion. I developed a framework for cube testing of cryptographic primitives on a hybrid parallel computer using the Parallel Java Library. I also developed a framework in C/CUDA for statistical testing and cube testing of cryptographic primitives on a graphics processing unit (GPU) supercomputer. I have analyzed the five SHA-3 finalist candidate hash algorithms BLAKE, Grøstl, JH, Keccak, and Skein, as well as CubeHash (a SHA-3 second-round candidate).

I am also developing CryptoStat, a new statistical test suite that uses a Bayesian methodology specifically designed for testing block ciphers and message authentication codes (MACs). CryptoStat is a parallel program written in Java using the Parallel Java 2 Library.

SAT Solver Attacks

To be secure, cryptographic primitives must also resist attacks, such as finding the secret key for a cipher or a collision for a hash function. Most cryptographic attacks require considerable human ingenuity and effort to devise. An alternative attack methodology, which promises to require less effort, is to express the attack as a Boolean satisfiability (SAT) problem, then use a general purpose SAT solver program to carry out the attack and find the secret key or the collision. I am currently developing a parallel SAT solver to run on a hybrid parallel computer using the Parallel Java 2 Library. I will use the parallel SAT solver to investigate attacks on block ciphers and SHA-3 candidate hash algorithms.

For further information about my cryptography research, see my Parallel Crypto page.