QARMA
   HOME

TheInfoList



OR:

QARMA (from Qualcomm ARM AuthenticatorQameleon v. 1.0: A Submission to the NIST Lightweight Cryptography Standardization Process
/ref>) is a
lightweight Lightweight is a weight class in combat sports and rowing (sport), rowing. Boxing Professional boxing The lightweight division is over 130 pounds (59 kilograms) and up to 135 pounds (61.2 kilograms) boxing weight classes, weight class in the spor ...
tweakable
block cipher In cryptography, a block cipher is a deterministic algorithm that operates on fixed-length groups of bits, called ''blocks''. Block ciphers are the elementary building blocks of many cryptographic protocols. They are ubiquitous in the storage a ...
primarily known for its use in the
ARMv8 ARM (stylised in lowercase as arm, formerly an acronym for Advanced RISC Machines and originally Acorn RISC Machine) is a family of RISC instruction set architectures (ISAs) for computer processors. Arm Holdings develops the ISAs and lice ...
architecture for protection of software as a
cryptographic hash A cryptographic hash function (CHF) is a hash algorithm (a map of an arbitrary binary string to a binary string with a fixed size of n bits) that has special properties desirable for a cryptographic application: * the probability of a particu ...
for the Pointer Authentication Code. The cipher was proposed by Roberto Avanzi in 2016. Two versions of QARMA are defined: QARMA-64 (64-bit block size with a 128-bit
encryption key A key in cryptography is a piece of information, usually a string of numbers or letters that are stored in a file, which, when processed through a cryptographic algorithm, can encode or decode cryptographic data. Based on the used method, the key ...
) and QARMA-128 (128-bit block size with a 256-bit key). The design of the QARMA was influenced by
PRINCE A prince is a male ruler (ranked below a king, grand prince, and grand duke) or a male member of a monarch's or former monarch's family. ''Prince'' is also a title of nobility (often highest), often hereditary, in some European states. The ...
and
MANTIS Mantises are an order (Mantodea) of insects that contains over 2,400 species in about 460 genera in 33 families. The largest family is the Mantidae ("mantids"). Mantises are distributed worldwide in temperate a ...
. The cipher is intended for fully-unrolled hardware implementations with low latency (like memory encryption). Unlike the
XTS mode Disk encryption is a special case of data at rest protection when the storage medium is a sector-addressable device (e.g., a hard disk). This article presents cryptographic aspects of the problem. For an overview, see disk encryption. For discussio ...
, the address can be directly used as a tweak and does not need to be whitened with the block encryption first.


Architecture

QARMA is an Even–Mansour cipher using three stages, with whitening keys ''w0'' and ''w1''
XOR Exclusive or, exclusive disjunction, exclusive alternation, logical non-equivalence, or logical inequality is a logical operator whose negation is the logical biconditional. With two inputs, XOR is true if and only if the inputs differ (one ...
ed in between: # permutation F is using ''core'' key ''k0'' and parameterized by a tweak ''T''. It has ''r'' rounds inside (r = 7 for QARMA-64, r = 11 for QARMA-128); # "central" permutation C is using key ''k1'' and is designed to be reversible via a simple key transformation (contains two ''central rounds''); # the third permutation is an inverse of the first (''r'' more rounds). All keys are derived from the ''master'' encryption key K using ''specialisation'': * K is partitioned into halves as w0
Concatenation In formal language theory and computer programming, string concatenation is the operation of joining character strings end-to-end. For example, the concatenation of "snow" and "ball" is "snowball". In certain formalizations of concatenati ...
k0, each will have ''halfsize'' bits; * for encryption w1 = (w0 >>> 1) + (w0 >> (halfsize-1)); * for encryption k1 = k0; * for decryption, the same design can be used as long as k0+α is used as a core key, k1 = Q•k0, w1 and w0 are swapped. α here is a special constant and Q a special involutary matrix. This construct is similar to the alpha reflection in PRINCE. The data is split into 16 ''cells'' (4-bit
nibble In computing, a nibble, or spelled nybble to match byte, is a unit of information that is an aggregation of four- bits; half of a byte/ octet. The unit is alternatively called nyble, nybl, half-byte or tetrade. In networking or telecommuni ...
s for QARMA-64, 8-bit
byte The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
s for QARMA-128). Internal state also contains 16 cells, arranged in a 4x4 matrix, and is initialized by plaintext (XORed with w0). In each round of \digamma, the state is transformed via operations \tau, M, S: * \tau is ''ShuffleCells'', a
MIDORI Midori (みどり, ミドリ, , , ) is the Japanese word for "green" and may refer to: Places * Midori, Gunma * Midori-ku, Chiba * Midori-ku, Nagoya * Midori-ku, Sagamihara * Midori-ku, Saitama * Midori-ku, Yokohama People Given name * M ...
permutation of cells ( 0, 11, 6, 13, 10, 1, 12, 7, 5, 14, 3, 8, 15, 4, 9, 2; * M is ''MixColumns'': each column is multiplied by a fixed matrix M; * S is ''SubCells'': each cell is transformed using an
S-box In cryptography, an S-box (substitution-box) is a basic component of symmetric key algorithms which performs substitution. In block ciphers, they are typically used to obscure the relationship between the key and the ciphertext, thus ensuring Clau ...
. The tweak for each round is updated using h, \omega: * h is a cell permutation from MANTIS ( 6, 5, 14, 15, 0, 1, 2, 3, 7, 12, 13, 4, 8, 9, 10, 11; * \omega is an LFSR applied to each of the cells with numbers , 1, 3, 4, 8, 11, 13 For QARMA-64, the LFSR is (b3, b2, b1, b0) ⇒ (b0 + b1, b3, b2, b1), for QARMA-128, (b7, b6, ..., b0) ⇒ (b0 + b2, b7, b6, ..., b1), The rounds of \overline \digamma consist of inverse operations \overline \tau, \overline M, \overline S, \overline h, \overline \omega. Central rounds, in addition to two rounds (\tau, M, S and \overline \tau, \overline M, \overline S), include multiplication of the state by an involutary matrix ''Q''.


References


Sources

* * * * * {{cite journal , last1=Yang , first1=Dong , last2=Qi , first2=Wen-feng , last3=Chen , first3=Hua-jin , title=Impossible Differential Attack on QARMA Family of Block Ciphers , url=https://eprint.iacr.org/2018/334 , journal=Cryptology ePrint Archive , date=2018


External links


Public-domain Python implementation of QARMA-64

Open-source (MIT license) implementation of QARMA-64 in C
Block ciphers