Minimizing Cache Timing Attack Using Dynamic Cache Flushing (DCF) Algorithm

Abstract —Rijndael algorithm was unanimously chosen as the Advanced Encryption Standard (AES) by the panel of researchers at National Institute of Standards and Technology (NIST) in October 2000. Since then, Rijndael was destined to be used massively in various software as well as hardware entities for encrypting data. However, a few years back, Daniel Bernstein [2] devised a cache-timing attack that was capable enough to break Rijndael’s seal that encapsulates the encryption key. In this paper, we propose a new Dynamic Cache Flushing (DCF) algorithm which shows a set of pragmatic software measures that would make Rijndael impregnable to cache timing attack. The simulation results demonstrate that the proposed DCF algorithm provides better security by encrypting key at a constant time. Keywords- dynamic cache flushing, Rijndael algorithm, timing attack. I. I NTRODUCTION Rijndael is a block cipher adopted as an encryption standard by the U.S. government. It has been analyzed extensively and is now used widely worldwide as was the case with its predecessor, the Data Encryption Standard (DES). Rijndael, the AES standard is currently used in various fields. Due to its impressive efficiency [8], it’s being used in high-speed optical networks, it’s used in military applications that encrypt top secret data, and it’s used in banking and financial applications wherein secured and real-time transfer of data is a top-priority. Microsoft has embraced Rijndael and implemented Rijndael in its much talked about DotNet (.NET) Framework. DotNet 3.5 has Rijndael implementation in System.Security.Cryptography namespace. DotNet framework is used by millions of developers around the world to develop software applications in numerous fields. In other words, software implementation of Rijndael is touching almost all the fields that implements cryptography through the DotNet framework. Wireless Network Security has no exception. Wired Equivalent Privacy (WEP) is the protocol used in wireless networks to ensure secure environment. When WEP is turned on in a wireless network, every packet of data that is transmitted from one station to another is first encrypted using Rijndael algorithm by taking the packets’ data payload and a secret encryption key called WEP key. The encrypted data is then broadcasted to stations registered on that wireless network. At the receiving end, the “wireless network aware stations” utilize the WEP key to decrypt data using Rijndael algorithm. Rijndael supports a larger range of block and key sizes; AES has a fixed block size of 128 bits and a key size of 128, 192 or 256 bits, whereas Rijndael can be specified with key and block sizes in any multiple of 32 bits, with a minimum of 128 bits and a maximum of 256 bits [6]. This algorithm implements the input, output, and cipher key where each of the bit sequences may contain 128, 192 or 256 bits with the condition that the input and output sequences have the same length. However, this algorithm provides the basic framework to make the code scalable. Look up tables have been used to make Rijndael algorithm faster and operations are performed on a two dimensional array of bytes called states. State consists of 4 rows of bytes, each of which contains Nb bytes, where Nb is the input sequence length divided by 32. During the start or end phase of an encryption or decryption operation, the bytes of the cipher input or output are copied from or to this state array. The several operations that are implemented in this algorithm are listed below [9]: • Key Schedule: It is an array of 32-bit words that is initialized from the cipher key. The cipher iterates through a number of the cycles or rounds, each of which uses Nk words from the key schedule. This is considered as an array of round keys, each containing Nk words.