Please download to get full document.

View again

of 10
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information Report



Views: 4 | Pages: 10

Extension: PDF | Download: 0

Related documents
  Fault attack on theDVB Common Scrambling Algorithm Kai Wirt Technical University DarmstadtDepartment of Computer ScienceDarmstadt, Germany wirt@informatik.tu-darmstadt.de Abstract.  The Common Scrambling Algorithm (CSA) is used to en-crypt streams of video data in the Digital Video Broadcasting (DVB)system. The algorithm uses a combination of a stream and a block cipher,apparently for a larger security margin. However these two algorithmsshare a common key.In this paper we present a fault attack on the block cipher which can belaunched without regarding the stream cipher part. This attack allows usto reconstruct the common key and thus breaks the complete Algorithm. Keywords:  block cipher, cryptanalysis, fault attack, dvb, paytv 1 Introduction The DVB Common Scrambling Algorithm is used to secure MPEG-2 transportstreams. These are used for example for digitally transmitted Pay-TV in Europe.The algorithm was specified by ETSI and adopted by the DVB consortium inMay 1994. However the exact srcin and date of the design is unclear. Interest-ingly, licensees were not allowed to implement the algorithm in software and itwas only available under a Non-Disclosure Agreement from an ETSI custodian.As was pointed out, this was due to “security reasons”. Only very little infor-mation like an ETSI Technical Report [Eur96] and patent applications [Bew98],[WAJ98] were available to the public until 2002. In the fall of 2002 a Windowsprogram called FreeDec which implemented the CSA in software was releasedand quickly reverse–engineered. The results were published on a web site [Pse03]and details on the algorithm became available to the public.For keying the CSA, so called  control words   are used. These control wordsare generated from encrypted control messages contained in the DVB trans-port stream by a  conditional access mechanism  . Examples for these mechanismsare Irdeto, Betacrypt, Nagravision, Cryptoworks and many others. They varybetween broadcasters and are usually implemented on a smart card which isrequired to view encrypted pay tv transmissions.The actual key for the CSA is called  common key   and is usually changed every10–120 seconds. The great relevance of CSA lies in the fact, that every encrypted  digital Pay-TV transmission in Europe is secured using CSA. A practical breakof CSA would thus affect all broadcasters which would have to exchange thehardware used to decrypt the transport streams.The scrambling algorithm is a combination of two cryptographic primitives:a 64-bit block cipher and a stream cipher which both are keyed with the samecommon key. Thus a key recovery attack on one of the two primitives wouldbreak the complete algorithm.In this paper we present a fault attack on the block cipher part which allowsthe recovery of the key.The rest of this paper is organized as follows. In Section 2 we present thenotation used in this paper, section 3 gives a short overview over side-channelattacks and sections 4 and 5 describe CSA resp. the block cipher part. OurAttack is presented in section 6 and final remarks are given in section 7. Tablesand figures are combined in an appendix. 2 Definitions In the rest of this paper we use the following notation: K   the common key. A 64 bit key used for both the stream and theblock cipher k i  denotes the  i -th bit of   K K  E  denotes the running key which is derived through the key scheduleof the block cipher s i  denotes the value held in register  is ji  is the value held in register  i  at round  j p i ,c i  denote a plain text resp. cipher text byte x  is the faulted value  x 3 Side-Channel attacks Conventional attacks try to find weaknesses in a cipher construction itself. Thereare various methods to do so, like observing the distribution of ciphertexts orattacking the structure of a cipher with algebraic methods. In contrast, sidechannel attacks are used to find weaknesses in an actual implementation of acipher system. They are more powerful than conventional attacks, because of thefact, that the attacker can get additional information by observing side channelslike the time required to encrypt certain plaintexts or the power usage of theencryption device.One certain type of side channel attacks are so called fault attacks, where theattacker introduces errors in the encryption or decryption process. The attackerthen gains informations on the Key by observing the difference between the  actual and the faulty result. There are various results showing, that these attacksare very powerful and feasible like [BDJ97] and [ABF + 02].Fault attacks are often combined with observations on other side channels,because the faults have to be introduced at specific points in the encryption/decryption process or at a specific register value. To simplify things one specifieswhat values can be affected when by the attacker.This type of side channel attacks was first applied to symmetric crypto sys-tems by Eli Biham and Adi Shamir in [BS97]. Our attack is a variant using aslightly different setting, than in [BS97] and [BDJ97]. In the setting we inves-tigate in this paper, the attacker is capable of changing the value of a specificregister to a random value in one specific round. However, we will show, thatif the attacker is only able to introduce a random error, where the exact errorlocation is evenly distributed over the whole decryption process (i.e. the settingused by Boneh et. al) our attack still works.One possibility to inject such errors is to do it by laser. It is possible to targetat a specific part of the device performing the cryptographic operations and thusaffect for example a certain register. We believe that changing the value storedin such a register to a random value is possible. Moreover we believe that usingshort flashes of the laser and precise equipment it is possible to do so in a certainround. We therefor believe, that the presented attack is an actual threat to thecommon scrambling algorithm. An overview and further references on how torealize fault attacks can be found in [BS03] where the first fault attack on theAdvanced Encryption Standard is given. 4 Overview over CSA The common scrambling algorithm can be seen as a cascade of two differentcryptographic primitives, namely a block cipher and a stream cipher. Both ci-phers use the same 64-bit key  K  , which is called the  common key  . In this sectionwe will describe how the block and the stream cipher are combined, whereas thenext section is focussing on the block cipher.In the encryption process a  m -byte packet is first divided into blocks ( DB i )of 8 bytes each. It is possible that the length of the packet is not a multiple of 8 bytes. If so, the last block is called  residue  .The sequence of 8-byte blocks is encrypted in reverse order with the blockcipher in CBC mode. The initialization vector is always equal to zero. Note, thatthe residue is left untouched in this encryption step.The last output of the chain  IB 0  is then used as a nonce for the streamcipher. The first  m − 8 bytes of keystream generated by the stream cipher areXORed to the encrypted blocks ( IB i ) i ≥ 1  followed by the residue to produce thescrambled blocks  SB i .Figure 1 on page 8 depicts the descrambling process.Note, that since we are interested in introducing errors in the decryptionprocess of the block cipher and in comparing the actual decrypted output with  the faulty output we can completly ignore the chaining mode and the streamcipher part taking only the decryption process of the last block cipher applica-tion into account. For more details on the overall design and an analysis of thestream cipher as well as an overview of properties of the block cipher we referto [WW04]. 5 The DVB CSA block cipher CSA uses an iterated block cipher that operates bytewise on 64-bit blocks of data. In each round of the cipher the same round transformation is applied tothe internal state. We will denote this transformation by  φ .  φ  takes the 8-bytevector representing the current internal state, along with a single byte of therunning key, to produce the next internal state. This round transformation isapplied 56 times. The key schedule  Let  ρ  be the bit permutation on 64-bit strings as defined intable 2 on page 8. The 448-bit running key  K  E  = ( k E  0  ,...,k E  447 ) is recursivelycomputed as follows: k E  0 ,..., 63  =  k 0 ,..., 63 k E  64 i,..., 64 i +63  =  ρ ( k E  64( i − 1) ,..., 64 i − 1 ) ⊕ 0x0 i 0 i 0 i 0 i 0 i 0 i 0 i 0 i  for all 1 ≤ i ≤ 6where the expression  0x0 i 0 i 0 i 0 i 0 i 0 i 0 i 0 i  is to be interpreted as a hexadecimalconstant. The round function  The round transformation uses two non-linear permuta-tions on the set of all byte values  π  and  π  . These permutations are related byanother permutation  σ , i.e.  π  =  σ ◦ π . The bit permutation  σ  maps bit 0 to 1,bit 1 to 7, bit 2 to 5, bit 3 to 4, bit 4 to 2, bit 5 to 6, bit 6 to 0 and bit 7 to 3.See table 4 on page 9 for the actual values described by  π .Let  S   = ( s 0 ,...,s 7 ) be the vector of bytes representing the internal state of the block cipher in an arbitrary round. The function  φ  taking the internal state S   from round  i  to round  i  + 1 is given by φ ( s 0 ,...,s 7 ,k ) = ( s 1 ,s 2 ⊕ s 0 ,s 3 ⊕ s 0 ,s 4 ⊕ s 0 ,s 5 ,s 6 ⊕ π  ( k ⊕ s 7 ) ,s 7 ,s 0 ⊕ π ( k ⊕ s 7 )). The inverse round transformation for the decryption of a message block is then φ − 1 ( s 0 ,...,s 7 ,k ) = ( s 7 ⊕ π ( s 6 ⊕ k ) ,s 0 ,s 7 ⊕ s 1 ⊕ π ( s 6 ⊕ k ) ,s 7 ⊕ s 2 ⊕ π ( s 6 ⊕ k ) ,s 7 ⊕ s 3 ⊕ π ( s 6 ⊕ k ) ,s 4 ,s 5 ⊕ π  ( s 6 ⊕ k ) ,s 6 )
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks