This repository contains the code and resources accompanying the paper:
"Construction of Differential-Neural Distinguishers Based on SKNet for SPECK and SIMON"
Chinese Journal of Electronics, vol 35, no. 3, pp. 1-10, 2026.
This repository provides implementations and experimental resources for constructing differential-neural distinguishers for the SPECK and SIMON block ciphers using Selective Kernel Networks (SKNet). It includes:
- Implementations of the SPECK and SIMON ciphers.
- Experiments exploring the impact of convolutional kernel sizes on distinguisher performance.
- SKNet and ResNet network implementations with training code.
- State-of-the-art (SOTA) differential-neural distinguisher models and training logs.
-
ciphers/
Implementations of the SPECK and SIMON block ciphers used in the experiments. -
kernel_size_explore/
Code and data analyzing the effect of different convolutional kernel sizes on the performance of differential-neural distinguishers. -
sknet_vs_resnet/
Implementations of SKNet and ResNet architectures, along with training scripts for differential-neural distinguishers.sknet_vs_resnet/trained_sknets/
Pre-trained SOTA distinguisher models (SKNet-based) and their training logs.
-
Gohr_key_recovery/
Code and experimental logs for performing actual key recovery attacks.
The implementation is adapted from agohr/deep_speck.
The following software and libraries are required to run the code in this repository:
- Python: 3.9.15
- TensorFlow-GPU: 2.10.0
- CUDA Toolkit: 11.2.2
- cuDNN: 8.4.1.50
- NumPy: 1.26.4
- Additional dependencies listed in
requirements.txt
Ensure your system has a compatible GPU and drivers to support TensorFlow-GPU with the specified CUDA and cuDNN versions.
- Cipher Implementations: Explore SPECK and SIMON implementations in
ciphers/. - Kernel Size Experiments: Run scripts in
kernel_size_explore/to analyze kernel size impacts. - Training and Evaluation: Use scripts in
sknet_vs_resnet/to train or evaluate distinguishers. Pre-trained models are available insknet_vs_resnet/trained_sknets/. - Training Logs: Review logs in
sknet_vs_resnet/trained_sknets/for model performance details. - Key Recovery Attack: Execute the script
Gohr_key_recovery/test_key_recovery_sknet.pyto perform actual key recovery attacks.
If you use this code or models in your research, please cite:
@article{XZ26,
title={Construction of Differential-Neural Distinguishers Based on SKNet for Speck and Simon},
author={Xu Haiyi and Zhang Lei},
journal={Chinese Journal of Electronics},
volume={35},
number={3},
pages={1-10}
year={2026}
}For questions or issues, please open an issue on this repository or contact the authors at 1455096897@qq.com.
This project is licensed under the MIT License - see the LICENSE file for details.