CRMar 25, 2021
CUDA Tutorial -- Cryptanalysis of Classical Ciphers Using Modern GPUs and CUDAMiroslav Dimitrov, Bernhard Esslinger
CUDA (formerly an abbreviation of Compute Unified Device Architecture) is a parallel computing platform and API model created by Nvidia allowing software developers to use a CUDA-enabled graphics processing unit (GPU) for general purpose processing. This 90-pages tutorial introduces the CUDA concepts in an easy-to-grasp and interactive way with ready-to-run code samples tested on Windows and Linux. Starting from scratch, a complete stand-alone GPU tool is implemented which automatically performs a ciphertext-only attack on ciphertexts encrypted by monoalphabetic substitution and columnar transposition. Throughout this process, you will learn how to architect the tool, what optimizations could significantly accelerate the routines, why the choice of an adequate metaheuristic is critical, and how to draw sketches to enlighten the design process. This tutorial will be incorporated in the CrypTool book as chapter 13.
CRJun 18, 2020
On the Design of Chaos-Based S-boxesMiroslav Dimitrov
Substitution boxes (S-boxes) are critical nonlinear elements to achieve cryptanalytic resistance of modern block and stream ciphers. Given their importance, a rich variety of S-box construction strategies exists. In this paper, S-boxes generated by using chaotic functions (CF) are analyzed to measure their actual resistance to linear cryptanalysis. The aforementioned papers emphasize on the average nonlinearity of the S-box coordinates only, ignoring the rest of the S-box components in the process. Thus, the majority of those studies should be re-evaluated. Integrating such S-boxes in a given cryptosystem should be done with a considerable caution. Furthermore, we show that in the context of nonlinearity optimization problem the profit of using chaos structures is negligible. By using two heuristic methods and starting from pseudo-random S-boxes, we repeatedly reached S-boxes, which significantly outperform all previously published CF-based S-boxes, in those cryptographic terms, which the aforementioned papers utilize for comparison. Moreover, we have linked the multi-armed bandit problem to the problem of maximizing an S-box average coordinate nonlinearity value, which further allowed us to reach near-optimal average coordinate nonlinearity values significantly greater than those known in literature.