Analysis and Improvements of the Full Spritz Stream Cipher

Subhadeep BANIK  Takanori ISOBE  Masakatu MORII  

IEICE TRANSACTIONS on Fundamentals of Electronics, Communications and Computer Sciences   Vol.E100-A   No.6   pp.1296-1305
Publication Date: 2017/06/01
Online ISSN: 1745-1337
DOI: 10.1587/transfun.E100.A.1296
Type of Manuscript: PAPER
Category: Cryptography and Information Security
RC4,  Spritz,  stream cipher,  short-term bias,  long-term bias,  distinguishing attack,  plaintext recovery attack,  state recovery attack,  

Full Text: PDF(870.2KB)>>
Buy this Article

Spritz is a stream cipher proposed by Rivest and Schuldt at the rump session of CRYPTO 2014. It is intended to be a replacement of the popular RC4 stream cipher. In this paper we propose distinguishing attacks on the full Spritz, based on a short-term bias in the first two bytes of a keystream and a long-term bias in the first two bytes of every cycle of N keystream bytes, where N is the size of the internal permutation. Our attacks are able to distinguish a keystream of the full Spritz from a random sequence with samples of first two bytes produced by 244.8 multiple key-IV pairs or 260.8 keystream bytes produced by a single key-IV pair. These biases are also useful in the event of plaintext recovery in a broadcast attack. In the second part of the paper, we look at a state recovery attack on Spritz, in a special situation when the cipher enters a class of weak states. We determine the probability of encountering such a state, and demonstrate a state recovery algorithm that betters the 21400 step algorithm of Ankele et al. at Latincrypt 2015. Finally we propose a simple fix that removes the bias in the first two keystream bytes. The countermeasure requires only one additional memory access and hence does not diminish software performance substantially, and in fact the loss in software speed is only around 1.5%.