# SIMECK-T: An Ultra-Lightweight Encryption Scheme for Resource-Constrained Devices
## 2 Methodology
### Implementation
Analyzing these characteristics helps assess the security of the cipher. Rotational differences capture the effect of cyclic shifts in the position of the bits. [PERSON] et al. [80] introduces a rotational cryptanalysis of the cipher THREEFISH [56]. When RC5 [9] was published, the authors stated that 100 million trials with random pairs of keys and text were used to check whether the data-dependent rotation amounts were related to every bit in the text. The test verified whether flipping a bit in the text determined that some intermediate rotation was a rotation of a different amount [9]. In our implementation of differential cryptanalysis, the largest number of random pairs used for finding trails is \(10^{7}\). The result of rotating a value \(v_{1}\) left by bits \(k\), denoted as \(v_{1}\) ROL \(k\), shifts all bits \(k\) to the left and wraps any overflow bits around to the right end. The result of rotating a value \(v_{2}\) right by bits \(k\), denoted as \(v_{2}\) ROR \(k\), shifts all bits \(k\) to the right and wraps any overflow bits around to the left end. The rotational difference between \(v_{1}\) and \(v_{2}\) can be defined as follows:

\[\Delta v_{\text{rot}}=(v_{1}\text{ ROL }k)-(v_{2}\text{ ROR }k)\]

or, in code-like notation,

\[\text{result}[0]=(v_{1}[0]\text{ ROL }k)-(v_{2}[0]\text{ ROR }k)\]

This rotation-based differential provides insight into how the bit positions shift through the rounds of a cipher. The primary goal of rotational difference cryptanalysis is to understand how small changes in rotation impact the propagation of differences. Differential cryptanalysis based on additive operator introduces an approach for analyzing block ciphers by examining how differences defined by addition propagate through the cipher. Unlike traditional XOR-based differentials, additive differentials use integer addition or subtraction to define and track differences, taking into account modular arithmetic properties. This method is particularly useful in ciphers that involve modular addition or rely heavily on arithmetic operations. In additive differential cryptanalysis, the difference between two values \(v_{1}\) and \(v_{2}\) is defined as follows:

\[\Delta v_{\text{add}}=(v_{1}-v_{2})\text{ mod }2^{32}\]

This expression, equivalent to computing

\[\text{result}[0]=(v_{1}[0]-v_{2}[0])\wedge 0 xFFFFFF\]in practical implementations, ensures that the result wraps around modulo \(2^{32}\) (32-bit unsigned integer arithmetic). This definition captures the signed difference between two values under modular conditions. Additive differentials are particularly relevant for analyzing ciphers where addition is a primary operation, such as in Feistel networks or ARX (Addition-Rotation-XOR) cipher designs. Additive differentials introduce unique properties compared to XOR-based differentials. Unlike XOR, which captures bitwise differences, additive differentials focus on the cumulative effect of subtracting values under a modulus. This accumulation highlights specific propagation patterns in ciphers structured around integer addition. When defined with modular subtraction (mod \(2^{32}\)), additive differences exhibit wrap-around effects as the values reach the boundary of \(2^{32}\). This wrap-around affects the propagation of differences, particularly in ARX-based designs where modular addition is central to the cipher. OR-Based Cryptanalysis

The effect of the OR operator on pairs of bits introduces a distinct set of properties that affect propagation patterns. For two binary values \(X_{1}\) and \(X_{2}\), we define the OR difference as follows:

\[\Delta X_{\text{OR}}=X_{1}\mid X_{2}\]

where \(\mid\) represents the bitwise OR operator and \(\Delta X_{\text{OR}}\) provides a \"union\" of bits where at least one bit is set. Unlike XOR, where each bit can cancel out, OR-based differences tend to accumulate bits. This affects the diffusion process of the cipher. Once a bit is set to 1 in an OR-based difference, it remains set through all operations unless explicitly reset by the cipher's structure.