One of the coolest features of our app is the color recognition camera that can detect standard colors, making it easy to input the colors of your puzzle. Simply point the camera at the cube and let the app do the rest! In addition to solving your favorite puzzles, we also offer a variety of additional features to enhance your solving experience.
CUBE supports only the mandatory cipher suites for TLS implementation. From Cisco IOS15.6(1)T release onwards, CUBE supports TLS v1.2 which is backward compatible. Following are the cipher suites added:
This paper proposes a new quasi-involutive lightweight design called CUBE cipher family. The design has been carefully chosen to be easily masked. The basic building block is a cube of size n n n on which are applied SPN transformations followed by a cube mapping.
But for a school project this is actually a pretty nice example of how to design a practical transposition cipher. And I can imagine someone can use it as a part of a game or for sending semi-secret messages between students in the class.
The trifid cipher is a classical cipher invented by Félix Delastelle and described in 1902.[1] Extending the principles of Delastelle's earlier bifid cipher, it combines the techniques of fractionation and transposition to achieve a certain amount of confusion and diffusion: each letter of the ciphertext depends on three letters of the plaintext and up to three letters of the key.
The trifid cipher uses a table to fractionate each plaintext letter into a trigram,[2] mixes the constituents of the trigrams, and then applies the table in reverse to turn these mixed trigrams into ciphertext letters. Delastelle notes that the most practical system uses three symbols for the trigrams:[3]
As discussed above, the cipher requires a 27-letter mixed alphabet: we follow Delastelle by using a plus sign as the 27th letter.[4] A traditional method for constructing a mixed alphabet from a key word or phrase is to write out the unique letters of the key in order, followed by the remaining letters of the alphabet in the usual order.[5] For example, the key FELIX MARIE DELASTELLE yields the mixed alphabet FELIXMARDSTBCGHJKNOPQUVWYZ+.
The encryption protocol divides the plaintext into groups of fixed size (plus possibly one short group at the end): this confines encoding errors to the group in which they occur,[6] an important consideration for ciphers that must be implemented by hand. The group size should be coprime to 3 to get the maximum amount of diffusion within each group: Delastelle gives examples with groups of 5 and 7 letters. He describes the encryption step as follows:[7]
We start by writing vertically under each letter, the numerical trigram that corresponds to it in the enciphering alphabet: then proceeding horizontally as if the numbers were written on a single line, we take groups of three numbers, look them up in the deciphering alphabet, and write the result under each column.
Lightweight cryptography has recently gained importance as the number of Internet of things (IoT) devices connected to Internet grows. Its main goal is to provide cryptographic algorithms that can be run efficiently in resource-limited environments such as IoT. To meet the challenge, the National Institute of Standards and Technology (NIST) announced the Lightweight Cryptography (LWC) project. One of the finalists of the project is the TinyJAMBU cipher. This work evaluates the security of the cipher. The tool used for the evaluation is the cube attack. We present five distinguishing attacks DA1-DA5 and two key recovery attacks KRA1-KRA2. The first two distinguishing attacks (DA1 and DA2) are launched against the initialisation phase of the cipher. The best result achieved for the attacks is a distinguisher for an 18-bit cube, where the cipher variant consists of the full initialisation phase together with 438 rounds of the encryption phase. The key recovery attacks (KRA1 and KRA2) are also launched against the initialisation phase of the cipher. The best key recovery attack can be applied for a cipher variant that consists of the full initialisation phase together with 428 rounds of the encryption phase. The attacks DA3-DA5 present a collection of distinguishers up to 437 encryption rounds, whose 32-bit cubes are chosen from the plaintext, nonce, or associated data bits. The results are confirmed experimentally. A conclusion from the work is that TinyJAMBU has a better security margin against cube attacks than claimed by the designers.
There is an interesting case when PS(I) stays constant (0 or 1) for all secret keys. Then the polynomial PS(I) is called a distinguisher that allows to differentiate the cipher from a truly random one. Cubes that generate distinguishers are called cube testers9.
The LWC Standardisation Project2 is an initiative of the US National Institute of Standards and Technology (NIST). It was launched in 2013 and aims to evaluate and select standards for LWC. The project is currently in its final round3. Ten finalists were announced in March 2021. They are: ASCON, Elephant, GIFT-COFB, Grain-128AEAD, ISAP, PHOTON-Beetle, Romulus, Sparkle, TinyJAMBU and Xoodyak. There is a need for a third-party analysis of the LWC finalists. The analysis provides a crucial service to the community at large as it helps to determine secure and efficient LWC standards. This work contributes to the analysis and evaluates security of the TinyJAMBU cipher. In particular, it assesses the strength of TinyJAMBU against cube attacks.
TinyJAMBU4 is a sponge-based stream cipher that provides authenticated encryption with associated data (AEAD). There are two versions of the cipher. The first is the original submission to the LWC Project. The second was released in May 2021 and is called TinyJAMBUv25. The cube attacks presented in the paper are applied against the first version of TinyJAMBU. However, some attacks (DA2 with reduced cube space, KRA2, DA3, DA4, and DA5) are still applicable to TinyJAMBUv2 as the tweaks in the second version do not affect our attacks. For the rest of the paper, unless explicitly specified, TinyJAMBU refers to the first version of the cipher.
The cube attack is a generalisation of the higher-order differential attack6 and the algebraic IV differential attack (AIDA)7. It was proposed by Dinur and Shamir at EUROCRYPT 20098. The attack sums output values of a black box polynomial \(\mathcal P\) over all possible values of a chosen collection of input variables. It aims to reduce the degree of \(\mathcal P\). The collection of input variables is called a cube \(\mathcal C\). The cube is uniquely determined by a set I of input variable indices. A polynomial \(\mathcal P_S(I)\) obtained after summation over \(\mathcal C\) is called a superpoly. In 2009 Dinur and Shamir applied the cube attack against the Trivium stream cipher8. Since then, the attack has been used to analyse many other stream ciphers, see references9,10,11,12,13,14,15,16,17,18, for example.
TinyJAMBU is a sponge-based AEAD stream cipher. When considering an AEAD stream cipher, the cube attack may be applicable to different cipher phases. A typical stream cipher has the following phases: initialisation, associated data processing, encryption, finalisation, decryption and verification. Application of cube attacks against different cipher phases requires specific security assumptions. In general, each attack aims to recover some secret information about the cipher. The following list identifies typical attacks against AEAD stream ciphers.
For the DA1 attack, it is possible to design distinguishers for cubes, whose sizes range from 3 to 20 bits. They work if an adversary is able to observe the keystream after the full initialisation phase (with 2176 rounds). Note that after initialisation, TinyJAMBU employs a set of permutation rounds before producing the keystream. We extend DA1 by including additional permutation rounds (reduced) in the encryption phase of TinyJAMBU. The attack extension is referred to as DA2. For the DA2 attack, we find random distinguishers from a cube space of \(2^96\), which use 15 and 25 bit cubes. They work for the total number of 2592 rounds. We also show a DA2 that selects cube from a reduced cube space of \(2^32\). The attack works for up to 2614 rounds with a 18-bit cube.
A cube attack is a relatively recent cryptanalytic technique. To describe it, we follow the presentation given by Dinur and Shamir at EUROCRYPT 20098. The idea behind the attack is to represent a keystream output by a polynomial over secret and public variables. In the cube attack, we assume that an adversary can evaluate the polynomial for public variables. The evaluation allows the adversary to reduce the degree of the polynomial. For AEAD stream ciphers, public variables include bits of the initialisation vector, associated data, and plaintext. It is assumed that the public variables can be chosen by the adversary in an arbitrary way. Unlike algebraic attacks, cube attacks treat the keystream polynomial as a black box.
where each term of \(q(k_0, \cdots , k_i-1, v_0, \cdots , v_j-1)\) does not contain at least one public variable from the maxterm \(t_I\). \(\mathcal P_S(I)\) is called a superpoly of the index set I if it does not contain any constant or any term that has a common factor with the maxterm \(t_I\). We denote the cardinality of I by I and the size of a cube by \(\ell _c\). Observe that \(I=\ell _c\). Interestingly enough, if \(I=deg-1\), then the degree of the superpoly \(\mathcal P_S(I)\) is guaranteed to be linear.
Cube attacks work by summing the values of a polynomial \(\mathcal P\) over all possible \(2^\) Boolean values for variables indexed by I (or alternatively over all values of the cube). If the cube is big enough, i.e., \(\ell _c=deg-1\), then the degree of \(\mathcal P\) is reduced to one. This means that the superpoly \(\mathcal P_S(I)\) becomes linear. If we repeat the above procedure many times but for different cubes, we can generate a system of linear equations involving the secret variables. After a sufficient number of equations, we can solve a system of linear equations and discover the secret variables/key. In general, the cube attack is run in two stages, namely pre-processing and online.
df19127ead