QARMA
   HOME

TheInfoList



OR:

QARMA (from Qualcomm ARM AuthenticatorQameleon v. 1.0: A Submission to the NIST Lightweight Cryptography Standardizaࢼon Process
/ref>) is a
lightweight Lightweight is a weight class in combat sports and rowing. Boxing Professional boxing The lightweight division is over 130 pounds (59 kilograms) and up to 135 pounds (61.2 kilograms) weight class in the sport of boxing. Notable lightweight boxe ...
tweakable
block cipher In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called ''blocks''. Block ciphers are specified cryptographic primitive, elementary components in the design of many cryptographic protocols and ...
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 reduced instruction set computer (RISC) instruction set architectures for computer processors, configured ...
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 fixed size of n bits) that has special properties desirable for cryptography: * the probability of a particular n-bit output re ...
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 c ...
) 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. Th ...
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 and tropical habitats. They ha ...
. 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 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 discussion ...
, 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 or exclusive disjunction is a logical operation that is true if and only if its arguments differ (one is true, the other is false). It is symbolized by the prefix operator J and by the infix operators XOR ( or ), EOR, EXOR, , ...
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, formal language theory and computer programming, string concatenation is the operation of joining character string (computer science), character strings wikt:end-to-end, end-to-end. For example, the concatenation of "sno ...
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 In mathematics, an involutory matrix is a square matrix that is its own inverse. That is, multiplication by the matrix A is an involution if and only if A2 = I, where I is the ''n'' × ''n'' identity matrix. Involutory ma ...
. This construct is similar to the
alpha reflection Prince is a block cipher targeting low latency, unrolled hardware implementations. It is based on the so-called FX construction. Its most notable feature is the alpha reflection: the decryption is the encryption with a related key which is very ch ...
in PRINCE. The data is split into 16 ''cells'' (4-bit
nibble In computing, a nibble (occasionally nybble, nyble, or nybl to match the spelling of byte) is a four-bit aggregation, or half an octet. It is also known as half-byte or tetrade. In a networking or telecommunication context, the nibble is oft ...
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 unit ...
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 Sha ...
. 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 In computing, a linear-feedback shift register (LFSR) is a shift register whose input bit is a linear function of its previous state. The most commonly used linear function of single bits is exclusive-or (XOR). Thus, an LFSR is most often a sh ...
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 web , 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 , publisher=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