Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

QARMA

From Wikipedia, the free encyclopedia

QARMA (fromQualcommARMAuthenticator[1]) is alightweighttweakableblock cipher primarily known for its use in theARMv8 architecture for protection of software as acryptographic hash for thePointer Authentication Code.[2] The cipher was proposed by Roberto Avanzi in 2016.[2][3] Two versions of QARMA are defined: QARMA-64 (64-bit block size with a 128-bitencryption key) and QARMA-128 (128-bit block size with a 256-bit key). The design of the QARMA was influenced byPRINCE andMANTIS.[3] The cipher is intended for fully-unrolled hardware implementations with low latency (likememory encryption). Unlike theXTS mode, the address can be directly used as a tweak and does not need to be whitened with the block encryption first.

Architecture

[edit]
QARMA overview (anoverbar indicates an inverse transformation)

QARMA is anEven–Mansour cipher using three stages, withwhitening keysw0 andw1XORed in between:

  1. permutation F is usingcore keyk0 and parameterized by a tweakT. It hasr rounds inside (r = 7 for QARMA-64, r = 11 for QARMA-128);
  2. "central" permutation C is using keyk1 and is designed to be reversible via a simple key transformation (contains twocentral rounds);
  3. the third permutation is an inverse of the first (r more rounds).

All keys are derived from themaster encryption key K usingspecialisation:

  • K is partitioned into halves as w0Concatenation k0, each will havehalfsize 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 specialinvolutary matrix. This construct is similar to thealpha reflection in PRINCE.
QARMA details. Rounds ofϝ{\displaystyle \digamma } are at the top, rounds ofϝ¯{\displaystyle {\overline {\digamma }}} are at the bottom,C{\displaystyle C} is on the right. Inner path describes the transformation of the internal state, outer path corresponds to the tweak update.ci areround constants.

The data is split into 16cells (4-bitnibbles for QARMA-64, 8-bitbytes 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ϝ{\displaystyle \digamma }, the state is transformed via operationsτ,M,S{\displaystyle \tau ,M,S}:

The tweak for each round is updated usingh,ω{\displaystyle h,\omega }:

  • h{\displaystyle h} is a cell permutation from MANTIS ([ 6, 5, 14, 15, 0, 1, 2, 3, 7, 12, 13, 4, 8, 9, 10, 11]);
  • ω{\displaystyle \omega } is anLFSR applied to each of the cells with numbers [0, 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ϝ¯{\displaystyle {\overline {\digamma }}} consist of inverse operationsτ¯,M¯,S¯,h¯,ω¯{\displaystyle {\overline {\tau }},{\overline {M}},{\overline {S}},{\overline {h}},{\overline {\omega }}}.Central rounds, in addition to two rounds (τ,M,S{\displaystyle \tau ,M,S} andτ¯,M¯,S¯{\displaystyle {\overline {\tau }},{\overline {M}},{\overline {S}}}), include multiplication of the state by an involutary matrixQ.

References

[edit]
  1. ^Qameleon v. 1.0: A Submission to the NIST Lightweight Cryptography Standardization Process
  2. ^abZong & Dong 2016.
  3. ^abAvanzi 2016.

Sources

[edit]

External links

[edit]
Retrieved from "https://en.wikipedia.org/w/index.php?title=QARMA&oldid=1257480102"
Category:

[8]ページ先頭

©2009-2026 Movatter.jp