Wbeaching / 16b-gfs-as-search

16-branch GFS Active S-box Search

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

16-branch GFS Active S-box Search

Note: If you use/modify the code in this repository for your own research and publish it, please cite the paper:

J. Chen, J. Teh, Z. Liu, C. Su, A. Samsudin, Y. Xiang, "Towards Accurate Statistical Analysis of Security Margins: New Searching Strategies for Differential Attacks," IEEE Transactions on Computers, Vol. 66:10, 2017. DOI: https://doi.org/10.1109/TC.2017.2699190


Description:

The following program will generate a file that contains truncated differences, the number of rounds, the number of AS and permutation pattern for each sample. Special thanks to Yeoh Wei Zhu (https://github.com/yeohweizhu) and Lee Ting Rong (https://github.com/trlee) for earlier versions of the code. Note that the program may have redundant code from another full differential search algorithm.

All parameters to control the program are under the "Control Panel" in common.h.

NROUNDS = Number of block cipher rounds

HW_LIMIT = Maximum hamming weight of random samples generated for testing

MAX_SAMPLES = Maximum number of samples to generate before automatically stopping the search

SBOX_BOUND = Set bound to current AS + SBOX_BOUND. If a tight bound is required, set to 0.

SBOX_ERROR = Set to SBOX_BOUND when generating dataset for machine learning. Set to around 2 if trying to find min AS

SAMPLE_LIMIT = Limit number of samples per input difference (to get a wider variety of inputs)

perm[16] = The permutation involved in the GFS. Note that the permutation takes into account that the MSB is 15 and LSB is 0 - {15,14,...,2,1,0}.

Output file columns : Input truncated diff, output truncated diff, active s-boxes , number of rounds, permutation pattern (as 16 columns where the LSB is 0 and MSB is 15 - {15,14,13,...,2,1,0)

About

16-branch GFS Active S-box Search


Languages

Language:C++ 96.1%Language:C 3.9%