*********************************************************************************
****************** The Algo of the Plain Master Key Calculation *****************
************** Originaly documented by Rashid, revised by Art 2003! *************
*********************************************************************************

Hi Guys,
I've been writing my own Irdeto key calculator program following Rashid's document.
Rashid's original document was my only source of information reguarding the
decryption of Plain Master Keys, and a nudge in the right direction from some
experienced forum members saw me doing other things with this algo as well.

I found it hard to follow from a programmers point of view because the values
throughout the steps of the algorhythm are all expressed in decimal notation,
as if the document was written so the greatest amount of novices would understand.

Decimal values haven't been of much help to me, so I've converted every step of
the Master Key to Hexidecimal notation (shown in brackets), so I knew when my program
was behaving itself. The decimal values are also shown, as the original document.

I have also edited Rashid's original text in order to bring it closer to the
Australian/American tounge, since from his writing, Rashid seems to be from
a foreign country (India?). In Australia, we are also used to calling the MK
(Master Key), the EMK (Encrypted Master Key) until the beginning of the algorithm
where it is altered. This revised document is edited accordingly.

Newbies should note that throughout this document, when a key is called an MK,
it is neither an EMK, nor a PMK. The MK in this document is somewhere in the
transition from one of these keys, to the other.
It is important to realise that the EMK becomes the PMK.

Finaly, I have added an explianation of the method used to perform the reverse of
this algorithm in order to produce an EMK from a PMK and HMK, and the method used
by software to attempt a brute force of the HMK when the PMK and EMK are provided.
These calculations were not explained in the original document.

Please send questions, errors, screw-ups or suggestions to:
art@austech.info

Cheers,
Art.

**********************************************************************************
              The Algorithm Of The Irdeto Plain Master Key Calculation 
                 With thanks to Rashid for his original explanation. 
**********************************************************************************

I will explain how an original Irdeto card or Irdeto emulator must decrypt the
Encrypted Master Key (EMK), using the Hex Master Key (HMK) to get Plain Master
Key (PMK). 


Firstly, we will assume these key values: 

Hex Master Key = 11 11 11 11 11 11 11 11 11 11 
Encrypted Master Key = 22 22 22 22 22 22 22 22 

When both keys are converted to decimal notation they are expressed like this: 

Hex Master Key = 17 17 17 17 17 17 17 17 17 17 
Encrypted Master Key = 34 34 34 34 34 34 34 34 

Then we rotate the HMK one bit toward the right (bitwise rotation).
If you don't know what a bitwise rotation is, then here is an explanation.

------------------------------ The Bitwise Hex Master Key Rotation ----------------------------

The Hex Master Key consists of ten bytes, and every byte consists of eight bits.
We also know that every bit holds a value of either 0 or 1.

this is our Hex Master Key in binary notation:

00010001 00010001 00010001 00010001 00010001 00010001 00010001 00010001 00010001 00010001 

The rotation one bit toward the right means we transfer the value of every bit one position
toward the right. When we do this, the rightmost bit of the HMK (in this case '1') is moved
to the leftmost position of the HMK (otherwise there would be no value to move to the
leftmost bit. When we rotate our HMK one bit toward the right it will look like this:

10001000 10001000 10001000 10001000 10001000 10001000 10001000 10001000 10001000 10001000 

And expressed in decimal notation again: 

Hex Master Key = 136 136 136 136 136 136 136 136 136 136 

And back to hexidecimal notation:

Hex Master Key = 88 88 88 88 88 88 88 88 88 88

------------------------------------------------------------------------------------------------

Ok, let's start 

we rotate the HMK (17 17 17 17 17 17 17 17 17 17) one bit toward the right 

1-HMK=136 136 136 136 136 136 136 136 136 136 
MK =34 34 34 34 34 34 34 34 

hmk(1) xor mk(1) ==> 170 ==> 2/F4 xor mk(2) = 214 
new mk=34 214 34 34 34 34 34 34 (hex 22 D6 22 22 22 22 22 22)

-------------- 
let me clarify what this means : 

hmk (1) = first byte of the HMK 
mk (1) = first byte of the MK 

there are two constant lookup tables consisting of 256 bytes each
it is assumed these tables were originaly generated at random, hence we call them
'random hash tables'. We use the random hash tables in the calculation. 
Table 1 and table 2 are defined at the end of this document. 

During the calculation, the parity of the current HMK byte determines which table is
used for the current step.
If the current HMK byte is odd then we use table 1,
If the current HMK byte is even then we use the table 2 

In the first step above we use the table 2 because the HMK byte (136) is even.

and this is the explanation of first step : 

the first byte of HMK is XORed with the first byte of the EMK, and the result is 170.
This determines which element we use in the table 2.
The 170th byte of table 2 is F4 (start counting bytes of the tables from zero).

We will convert the hexidecimal F4 to decimal to arrive at 244.
Now we XOR 244 with the second EMK byte, and arrive at the result of 214.
214 is the result that we use as the new key byte, and is written back into the EMK,
(second byte) to start the decryption.

I think we are ready to go on...

2-hmk=136 136 136 136 136 136 136 136 136 136 
mk=34 214 34 34 34 34 34 34 
hmk(2) xor mk(2) ==> 94 ==> 2/D0 xor mk(3) = 242 
new mk=34 214 242 34 34 34 34 34 (hex 22 D6 F2 22 22 22 22 22)

3-hmk=136 136 136 136 136 136 136 136 136 136 
mk=34 214 242 34 34 34 34 34 
hmk(3) xor mk(3) ==> 122 ==> 2/C7 xor mk(4) = 229 
new mk=34 214 242 229 34 34 34 34 (hex 22 D6 F2 E5 22 22 22 22)

4-hmk=136 136 136 136 136 136 136 136 136 136 
mk=34 214 242 229 34 34 34 34 
hmk(4) xor mk(4) ==> 109 ==> 2/1E xor mk(5) = 60 
new mk=34 214 242 229 60 34 34 34 (hex 22 D6 F2 E5 3C 22 22 22)

5-hmk=136 136 136 136 136 136 136 136 136 136 
mk=34 214 242 229 60 34 34 34 
hmk(5) xor mk(5) ==> 180 ==> 2/93 xor mk(6) = 177 
new mk=34 214 242 229 60 177 34 34 (hex 22 D6 F2 E5 3C B1 22 22)

6-hmk=136 136 136 136 136 136 136 136 136 136 
mk=34 214 242 229 60 177 34 34 
hmk(6) xor mk(6) ==> 57 ==> 2/59 xor mk(7) = 123 
new mk=34 214 242 229 60 177 123 34 (hex 22 D6 F2 E5 3C B1 7B 22)

7-hmk=136 136 136 136 136 136 136 136 136 136 
mk=34 214 242 229 60 177 123 34 
hmk(7) xor mk(7) ==> 243 ==> 2/99 xor mk(8) = 187 
new mk=34 214 242 229 60 177 123 187 (hex 22 D6 F2 E5 3C B1 7B BB)

8-hmk=136 136 136 136 136 136 136 136 136 136 
mk=34 214 242 229 60 177 123 187 
hmk(8) xor mk(8) ==> 51 ==> 2/E6 xor mk(1) = 196 
new mk=196 214 242 229 60 177 123 187 (hex C4 D6 F2 E5 3C B1 7B BB)

9-hmk=136 136 136 136 136 136 136 136 136 136 
mk=196 214 242 229 60 177 123 187 
hmk(9) xor mk(1) ==> 76 ==> 2/F2 xor mk(4) = 23 
new mk=196 214 242 23 60 177 123 187 (hex C4 D6 F2 17 3C B1 7B BB)

10-hmk=136 136 136 136 136 136 136 136 136 136 
mk=196 214 242 23 60 177 123 187 
hmk(10) xor mk(4) ==> 159 ==> 2/42 xor mk(7) = 57 
new mk=196 214 242 23 60 177 57 187 (hex C4 D6 F2 17 3C B1 39 BB)

Now we bitwise rotate the current HMK one step toward the right.
Note that we rotate the HMK every 10th step.
This is the second time the HMK has been rotated right.


11-hmk=68 68 68 68 68 68 68 68 68 68 
mk=196 214 242 23 60 177 57 187 
hmk(1) xor mk(7) ==> 125 ==> 2/80 xor mk(2) = 86 
new mk=196 86 242 23 60 177 57 187 (hex C4 56 F2 17 3C B1 39 BB)

12-hmk=68 68 68 68 68 68 68 68 68 68 
mk=196 86 242 23 60 177 57 187 
hmk(2) xor mk(2) ==> 18 ==> 2/A8 xor mk(5) = 148 
new mk=196 86 242 23 148 177 57 187 (hex C4 56 F2 17 94 B1 39 BB)

13-hmk=68 68 68 68 68 68 68 68 68 68 
mk=196 86 242 23 148 177 57 187 
hmk(3) xor mk(5) ==> 208 ==> 2/6F xor mk(8) = 212 
new mk=196 86 242 23 148 177 57 212 (hex C4 56 F2 17 94 B1 39 D4)

14-hmk=68 68 68 68 68 68 68 68 68 68 
mk=196 86 242 23 148 177 57 212 
hmk(4) xor mk(8) ==> 144 ==> 2/CE xor mk(3) = 60 
new mk=196 86 60 23 148 177 57 212 (hex C4 56 3C 17 94 B1 39 D4)

15-hmk=68 68 68 68 68 68 68 68 68 68 
mk=196 86 60 23 148 177 57 212 
hmk(5) xor mk(3) ==> 120 ==> 2/3E xor mk(6) = 143 
new mk=196 86 60 23 148 143 57 212 (hex C4 56 3C 17 94 8F 39 D4)

16-hmk=68 68 68 68 68 68 68 68 68 68 
mk=196 86 60 23 148 143 57 212 
hmk(6) xor mk(6) ==> 203 ==> 2/24 xor mk(1) = 224 
new mk=224 86 60 23 148 143 57 212 (hex E0 56 3C 17 94 8F 39 D4)

17-hmk=68 68 68 68 68 68 68 68 68 68 
mk=224 86 60 23 148 143 57 212 
hmk(7) xor mk(1) ==> 164 ==> 2/7E xor mk(2) = 40 
new mk=224 40 60 23 148 143 57 212 (hex E0 28 3C 17 94 8F 39 D4)

18-hmk=68 68 68 68 68 68 68 68 68 68 
mk=224 40 60 23 148 143 57 212 
hmk(8) xor mk(2) ==> 108 ==> 2/EA xor mk(3) = 214 
new mk=224 40 214 23 148 143 57 212 (hex E0 28 D6 17 94 8F 39 D4)

19-hmk=68 68 68 68 68 68 68 68 68 68 
mk=224 40 214 23 148 143 57 212 
hmk(9) xor mk(3) ==> 146 ==> 2/A7 xor mk(4) = 176 
new mk=224 40 214 176 148 143 57 212 (hex E0 28 D6 B0 94 8F 39 D4)

20-hmk=68 68 68 68 68 68 68 68 68 68 
mk=224 40 214 176 148 143 57 212 
hmk(10) xor mk(4) ==> 244 ==> 2/04 xor mk(5) = 144 
new mk=224 40 214 176 144 143 57 212 (hex E0 28 D6 B0 90 8F 39 D4)

We rotate the HMK one bit toward the right.
This is the third HMK rotation.


21-hmk=34 34 34 34 34 34 34 34 34 34 
mk=224 40 214 176 144 143 57 212 
hmk(1) xor mk(5) ==> 178 ==> 2/0F xor mk(6) = 128 
new mk=224 40 214 176 144 128 57 212 (hex E0 28 D6 B0 90 80 39 D4)

22-hmk=34 34 34 34 34 34 34 34 34 34 
mk=224 40 214 176 144 128 57 212 
hmk(2) xor mk(6) ==> 162 ==> 2/17 xor mk(7) = 46 
new mk=224 40 214 176 144 128 46 212 (hex E0 28 D6 B0 90 80 2E D4)

23-hmk=34 34 34 34 34 34 34 34 34 34 
mk=224 40 214 176 144 128 46 212 
hmk(3) xor mk(7) ==> 12 ==> 2/22 xor mk(8) = 246 
new mk=224 40 214 176 144 128 46 246 (hex E0 28 D6 B0 90 80 2E F6)

24-hmk=34 34 34 34 34 34 34 34 34 34 
mk=224 40 214 176 144 128 46 246 
hmk(4) xor mk(8) ==> 212 ==> 2/41 xor mk(1) = 161 
new mk=161 40 214 176 144 128 46 246 (hex A1 28 D6 B0 90 80 2E F6)

25-hmk=34 34 34 34 34 34 34 34 34 34 
mk=161 40 214 176 144 128 46 246 
hmk(5) xor mk(1) ==> 131 ==> 2/A1 xor mk(4) = 17 
new mk=161 40 214 17 144 128 46 246 (hex A1 28 D6 11 90 80 2E F6)

26-hmk=34 34 34 34 34 34 34 34 34 34 
mk=161 40 214 17 144 128 46 246 
hmk(6) xor mk(4) ==> 51 ==> 2/E6 xor mk(7) = 200 
new mk=161 40 214 17 144 128 200 246 (hex A1 28 D6 11 90 80 C8 F6)

27-hmk=34 34 34 34 34 34 34 34 34 34 
mk=161 40 214 17 144 128 200 246 
hmk(7) xor mk(7) ==> 234 ==> 2/B5 xor mk(2) = 157 
new mk=161 157 214 17 144 128 200 246 (hex A1 9D D6 11 90 80 C8 F6)

28-hmk=34 34 34 34 34 34 34 34 34 34 
mk=161 157 214 17 144 128 200 246 
hmk(8) xor mk(2) ==> 191 ==> 2/D2 xor mk(5) = 66 
new mk=161 157 214 17 66 128 200 246 (hex A1 9D D6 11 42 80 C8 F6)

29-hmk=34 34 34 34 34 34 34 34 34 34 
mk=161 157 214 17 66 128 200 246 
hmk(9) xor mk(5) ==> 96 ==> 2/5F xor mk(8) = 169 
new mk=161 157 214 17 66 128 200 169 (hex A1 9D D6 11 42 80 C8 A9)

30-hmk=34 34 34 34 34 34 34 34 34 34 
mk=161 157 214 17 66 128 200 169 
hmk(10) xor mk(8) ==> 139 ==> 2/02 xor mk(3) = 212 
new mk=161 157 212 17 66 128 200 169 (hex A1 9D D4 11 42 80 C8 A9)

We rotate the HMK one bit toward the right.
This is the fourth HMK rotation.

31-hmk=17 17 17 17 17 17 17 17 17 17 
mk=161 157 212 17 66 128 200 169 
hmk(1) xor mk(3) == > 197 ==> 1/77 xor mk(6) = 247 

Note that we use random hash table 1 here
because the value of the HMK byte is odd. 

new mk=161 157 212 17 66 247 200 169 (hex A1 9D D4 11 42 F7 C8 A9)


32-hmk=17 17 17 17 17 17 17 17 17 17 
mk=161 157 212 17 66 247 200 169 
hmk(2) xor mk(6) ==> 230 ==> 1/C5 xor mk(1) = 100 
new mk=100 157 212 17 66 247 200 169 (hex 64 9D D4 11 42 F7 C8 A9)

33-hmk=17 17 17 17 17 17 17 17 17 17 
mk=100 157 212 17 66 247 200 169 
hmk(3) xor mk(1) ==> 117 ==> 1/98 xor mk(2) = 5 
new mk=100 5 212 17 66 247 200 169 (hex 64 05 D4 11 42 F7 C8 A9)

34-hmk=17 17 17 17 17 17 17 17 17 17 
mk=100 5 212 17 66 247 200 169 
hmk(4) xor mk(2) ==> 20 ==> 1/0A xor mk(3) = 222 
new mk=100 5 222 17 66 247 200 169 (hex 64 05 DE 11 42 F7 C8 A9)

35-hmk=17 17 17 17 17 17 17 17 17 17 
mk=100 5 222 17 66 247 200 169 
hmk(5) xor mk(3) ==> 207 ==> 1/C8 xor mk(4) = 217 
new mk=100 5 222 217 66 247 200 169 (hex 64 05 DE D9 42 F7 C8 A9)

36-hmk=17 17 17 17 17 17 17 17 17 17 
mk=100 5 222 217 66 247 200 169 
hmk(6) xor mk(4) ==> 200 ==> 1/FA xor mk(5) = 184 
new mk=100 5 222 217 184 247 200 169 (hex 64 05 DE D9 B8 F7 C8 A9)

37-hmk=17 17 17 17 17 17 17 17 17 17 
mk=100 5 222 217 184 247 200 169 
hmk(7) xor mk(5) ==> 169 ==> 1/B2 xor mk(6) = 69 
new mk=100 5 222 217 184 69 200 169 (hex 64 05 DE D9 B8 45 C8 A9)

38-hmk=17 17 17 17 17 17 17 17 17 17 
mk=100 5 222 217 184 69 200 169 
hmk(8) xor mk(6) ==> 84 ==> 1/56 xor mk(7) = 158 
new mk=100 5 222 217 184 69 158 169 (hex 64 05 DE D9 B8 45 9E A9)

39-hmk=17 17 17 17 17 17 17 17 17 17 
mk=100 5 222 217 184 69 158 169 
hmk(9) xor mk(7) ==> 143 ==> 1/D7 xor mk(8) = 126 
new mk=100 5 222 217 184 69 158 126 (hex 64 05 DE D9 B8 45 9E 7E)

40-hmk=17 17 17 17 17 17 17 17 17 17 
mk=100 5 222 217 184 69 158 126 
hmk(10) xor mk(8) ==> 111 ==> 1/7D xor mk(1) = 25 
new mk=25 5 222 217 184 69 158 126 (hex 19 05 DE D9 B8 45 9E 7E)

We rotate the HMK one bit toward the right.
This is the fifth HMK rotation.

41-hmk=136 136 136 136 136 136 136 136 136 136 
mk=25 5 222 217 184 69 158 126 
hmk(1) xor mk(1) ==> 145 ==> 2/6B xor mk(4) = 178 
new mk=25 5 222 178 184 69 158 126 (hex 19 05 DE B2 B8 45 9E 7E)

42-hmk=136 136 136 136 136 136 136 136 136 136 
mk=25 5 222 178 184 69 158 126 
hmk(2) xor mk(4) ==> 58 ==> 2/71 xor mk(7) = 239 
new mk=25 5 222 178 184 69 239 126 (hex 19 05 DE B2 B8 45 EF 7E)

43-hmk=136 136 136 136 136 136 136 136 136 136 
mk=25 5 222 178 184 69 239 126 
hmk(3) xor mk(7) ==> 103 ==> 2/EE xor mk(2) = 235 
new mk=25 235 222 178 184 69 239 126 (hex 19 EB DE B2 B8 45 EF 7E)

44-hmk=136 136 136 136 136 136 136 136 136 136 
mk=25 235 222 178 184 69 239 126 
hmk(4) xor mk(2) ==> 99 ==> 2/E4 xor mk(5) = 92 
new mk=25 235 222 178 92 69 239 126 (hex 19 EB DE B2 5C 45 EF 7E)

45-hmk=136 136 136 136 136 136 136 136 136 136 
mk=25 235 222 178 92 69 239 126 
hmk(5) xor mk(5) ==> 212 ==> 2/41 xor mk(8) = 63 
new mk=25 235 222 178 92 69 239 63 (hex 19 EB DE B2 5C 45 EF 3F)

46-hmk=136 136 136 136 136 136 136 136 136 136 
mk=25 235 222 178 92 69 239 63 
hmk(6) xor mk(8) ==> 183 ==> 2/20 xor mk(3) = 254 
new mk=25 235 254 178 92 69 239 63 (hex 19 EB FE B2 5C 45 EF 3F)

47-hmk=136 136 136 136 136 136 136 136 136 136 
mk=25 235 254 178 92 69 239 63 
hmk(7) xor mk(3) ==> 118 ==> 2/B9 xor mk(6) = 252 
new mk=25 235 254 178 92 252 239 63 (hex 19 EB FE B2 5C FC EF 3F)

48-hmk=136 136 136 136 136 136 136 136 136 136 
mk=25 235 254 178 92 252 239 63 
hmk(8) xor mk(6) ==> 116 ==> 2/C6 xor mk(1) = 223 
new mk=223 235 254 178 92 252 239 63 (hex DF EB FE B2 5C FC EF 3F)

49-hmk=136 136 136 136 136 136 136 136 136 136 
mk=223 235 254 178 92 252 239 63 
hmk(9) xor mk(1) ==> 87 ==> 2/CA xor mk(2) = 33 
new mk=223 33 254 178 92 252 239 63 (hex DF 21 FE B2 5C FC EF 3F)

50-hmk=136 136 136 136 136 136 136 136 136 136 
mk=223 33 254 178 92 252 239 63 
hmk(10) xor mk(2) ==> 169 ==> 2/D3 xor mk(3) = 45 
new mk=223 33 45 178 92 252 239 63 (hex DF 21 2D B2 5C FC EF 3F)

We rotate the HMK one bit toward the right.
This is the sixth HMK rotation.

51-hmk=68 68 68 68 68 68 68 68 68 68 
mk=223 33 45 178 92 252 239 63 
hmk(1) xor mk(3) ==> 105 ==> 2/CF xor mk(4) = 125 
new mk=223 33 45 125 92 252 239 63 (hex DF 21 2D 7D 5C FC EF 3F)

52-hmk=68 68 68 68 68 68 68 68 68 68 
mk=223 33 45 125 92 252 239 63 
hmk(2) xor mk(4) ==> 57 ==> 2/59 xor mk(5) = 5 
new mk=223 33 45 125 5 252 239 63 (hex DF 21 2D 7D 05 FC EF 3F)

53-hmk=68 68 68 68 68 68 68 68 68 68 
mk=223 33 45 125 5 252 239 63 
hmk(3) xor mk(5) ==> 65 ==> 2/C0 xor mk(6) = 60 
new mk=223 33 45 125 5 60 239 63 (hex DF 21 2D 7D 05 3C EF 3F)

54-hmk=68 68 68 68 68 68 68 68 68 68 
mk=223 33 45 125 5 60 239 63 
hmk(4) xor mk(6) ==> 120 ==> 2/3E xor mk(7) = 209 
new mk=223 33 45 125 5 60 209 63 (hex DF 21 2D 7D 05 3C D1 3F)

55-hmk=68 68 68 68 68 68 68 68 68 68 
mk=223 33 45 125 5 60 209 63 
hmk(5) xor mk(7) ==> 149 ==> 2/7B xor mk(8) = 68 
new mk=223 33 45 125 5 60 209 68 (hex DF 21 2D 7D 05 3C D1 44)

56-hmk=68 68 68 68 68 68 68 68 68 68 
mk=223 33 45 125 5 60 209 68 
hmk(6) xor mk(8) ==> 0 ==> 2/8E xor mk(1) = 81 
new mk=81 33 45 125 5 60 209 68 (hex 51 21 2D 7D 05 3C D1 44)

57-hmk=68 68 68 68 68 68 68 68 68 68 
mk=81 33 45 125 5 60 209 68 
hmk(7) xor mk(1) ==> 21 ==> 2/C5 xor mk(4) = 184 
new mk=81 33 45 184 5 60 209 68 (hex 51 21 2D B8 05 3C D1 44)

58-hmk=68 68 68 68 68 68 68 68 68 68 
mk=81 33 45 184 5 60 209 68 
hmk(8) xor mk(4) ==> 252 ==> 2/0E xor mk(7) = 223 
new mk=81 33 45 184 5 60 223 68 (hex 51 21 2D B8 05 3C DF 44)

59-hmk=68 68 68 68 68 68 68 68 68 68 
mk=81 33 45 184 5 60 223 68 
hmk(9) xor mk(7) ==> 155 ==> 2/F1 xor mk(2) = 208 
new mk=81 208 45 184 5 60 223 68 (hex 51 D0 2D B8 05 3C DF 44)

60-hmk=68 68 68 68 68 68 68 68 68 68 
mk=81 208 45 184 5 60 223 68 
hmk(10) xor mk(2) ==> 148 ==> 2/CD xor mk(5) = 200 
new mk=81 208 45 184 200 60 223 68 (hex 51 D0 2D B8 C8 3C DF 44)

We rotate the HMK one bit toward the right.
This is the seventh HMK rotation.

61-hmk=34 34 34 34 34 34 34 34 34 34 
mk=81 208 45 184 200 60 223 68 
hmk(1) xor mk(5) ==> 234 ==> 2/B5 xor mk(8) = 241 
new mk=81 208 45 184 200 60 223 241 (hex 51 D0 2D B8 C8 3C DF F1)

62-hmk=34 34 34 34 34 34 34 34 34 34 
mk=81 208 45 184 200 60 223 241 
hmk(2) xor mk(8) ==> 211 ==> 2/52 xor mk(3) = 127 
new mk=81 208 127 184 200 60 223 241 (hex 51 D0 7F B8 C8 3C DF F1)

63-hmk=34 34 34 34 34 34 34 34 34 34 
mk=81 208 127 184 200 60 223 241 
hmk(3) xor mk(3) ==> 93 ==> 2/BA xor mk(6) = 134 
new mk=81 208 127 184 200 134 223 241 (hex 51 D0 7F B8 C8 86 DF F1)

64-hmk=34 34 34 34 34 34 34 34 34 34 
mk=81 208 127 184 200 134 223 241 
hmk(4) xor mk(6) ==> 164 ==> 2/7E xor mk(1) = 47 
new mk=47 208 127 184 200 134 223 241 (hex 2F D0 7F B8 C8 86 DF F1)

65-hmk=34 34 34 34 34 34 34 34 34 34 
mk=47 208 127 184 200 134 223 241 
hmk(5) xor mk(1) ==> 13 ==> 2/E1 xor mk(2) = 49 
new mk=47 49 127 184 200 134 223 241 (hex 2F 31 7F B8 C8 86 DF F1)

66-hmk=34 34 34 34 34 34 34 34 34 34 
mk=47 49 127 184 200 134 223 241 
hmk(6) xor mk(2) ==> 19 ==> 2/57 xor mk(3) = 40 
new mk=47 49 40 184 200 134 223 241 (hex 2F 31 28 B8 C8 86 DF F1)

67-hmk=34 34 34 34 34 34 34 34 34 34 
mk=47 49 40 184 200 134 223 241 
hmk(7) xor mk(3) ==> 10 ==> 2/F3 xor mk(4) = 75 
new mk=47 49 40 75 200 134 223 241 (hex 2F 31 28 4B C8 86 DF F1)

68-hmk=34 34 34 34 34 34 34 34 34 34 
mk=47 49 40 75 200 134 223 241 
hmk(8) xor mk(4) ==> 105 ==> 2/CF xor mk(5) = 7 
new mk=47 49 40 75 7 134 223 241 (hex 2F 31 28 4B 07 86 DF F1)

69-hmk=34 34 34 34 34 34 34 34 34 34 
mk=47 49 40 75 7 134 223 241 
hmk(9) xor mk(5) ==> 37 ==> 2/EC xor mk(6) = 106 
new mk=47 49 40 75 7 106 223 241 (hex 2F 31 28 4B 07 6A DF F1)

70-hmk=34 34 34 34 34 34 34 34 34 34 
mk=47 49 40 75 7 106 223 241 
hmk(10) xor mk(6) ==> 72 ==> 2/9F xor mk(7) = 64 
new mk=47 49 40 75 7 106 64 241 (hex 2F 31 28 4B 07 6A 40 F1)

We rotate the HMK one bit toward the right.
This is the eighth HMK rotation.

71-hmk=17 17 17 17 17 17 17 17 17 17 
mk=47 49 40 75 7 106 64 241 
hmk(1) xor mk(7) ==> 81 ==> 1/E3 xor mk(8) = 18 
new mk=47 49 40 75 7 106 64 18 (hex 2F 31 28 4B 07 6A 40 12)

72-hmk=17 17 17 17 17 17 17 17 17 17 
mk=47 49 40 75 7 106 64 18 
hmk(2) xor mk(8) ==> 3 ==> 1/72 xor mk(1) = 93 
new mk=93 49 40 75 7 106 64 18 (hex 5D 31 28 4B 07 6A 40 12)

73-hmk=17 17 17 17 17 17 17 17 17 17 
mk=93 49 40 75 7 106 64 18 
hmk(3) xor mk(1) ==> 76 ==> 1/42 xor mk(4) = 9 
new mk=93 49 40 9 7 106 64 18 (hex 5D 31 28 09 07 6A 40 12)

74-hmk=17 17 17 17 17 17 17 17 17 17 
mk=93 49 40 9 7 106 64 18 
hmk(4) xor mk(4) ==> 24 ==> 1/61 xor mk(7) = 33 
new mk=93 49 40 9 7 106 33 18 (hex 5D 31 28 09 07 6A 21 12)

75-hmk=17 17 17 17 17 17 17 17 17 17 
mk=93 49 40 9 7 106 33 18 
hmk(5) xor mk(7) ==> 48 ==> 1/14 xor mk(2) = 37 
new mk=93 37 40 9 7 106 33 18 (hex 5D 25 28 09 07 6A 21 12)

76-hmk=17 17 17 17 17 17 17 17 17 17 
mk=93 37 40 9 7 106 33 18 
hmk(6) xor mk(2) ==> 52 ==> 1/D9 xor mk(5) = 222 
new mk=93 37 40 9 222 106 33 18 (hex 5D 25 28 09 DE 6A 21 12)

77-hmk=17 17 17 17 17 17 17 17 17 17 
mk=93 37 40 9 222 106 33 18 
hmk(7) xor mk(5) ==> 207 ==> 1/C8 xor mk(8) = 218 
new mk=93 37 40 9 222 106 33 218 (hex 5D 25 28 09 DE 6A 21 DA)

78-hmk=17 17 17 17 17 17 17 17 17 17 
mk=93 37 40 9 222 106 33 218 
hmk(8) xor mk(8) ==> 203 ==> 1/28 xor mk(3) = 0 
new mk=93 37 0 9 222 106 33 218 (hex 5D 25 00 09 DE 6A 21 DA)

79-hmk=17 17 17 17 17 17 17 17 17 17 
mk=93 37 0 9 222 106 33 218 
hmk(9) xor mk(3) ==> 17 ==> 1/86 xor mk(6) = 236 
new mk=93 37 0 9 222 236 33 218 (hex 5D 25 00 09 DE EC 21 DA)

80-hmk=17 17 17 17 17 17 17 17 17 17 
mk=93 37 0 9 222 236 33 218 
hmk(10) xor mk(6) ==> 253 ==> 1/48 xor mk(1) = 21 
new mk=21 37 0 9 222 236 33 218 (hex 15 25 00 09 DE EC 21 DA)

We rotate the HMK one bit toward the right.
This is the ninth HMK rotation.

81-hmk=136 136 136 136 136 136 136 136 136 136 
mk=21 37 0 9 222 236 33 218 
hmk(1) xor mk(1) ==> 157 ==> 2/B0 xor mk(2) = 149 
new mk=21 149 0 9 222 236 33 218 (hex 15 95 00 09 DE EC 21 DA)

82-hmk=136 136 136 136 136 136 136 136 136 136 
mk=21 149 0 9 222 236 33 218 
hmk(2) xor mk(2) ==> 29 ==> 2/B7 xor mk(3) = 183 
new mk=21 149 183 9 222 236 33 218 (hex 15 95 B7 09 DE EC 21 DA)

83-hmk=136 136 136 136 136 136 136 136 136 136 
mk=21 149 183 9 222 236 33 218 
hmk(3) xor mk(3) ==> 63 ==> 2/4D xor mk(4) = 68 
new mk=21 149 183 68 222 236 33 218 (hex 15 95 B7 44 DE EC 21 DA)

84-hmk=136 136 136 136 136 136 136 136 136 136 
mk=21 149 183 68 222 236 33 218 
hmk(4) xor mk(4) ==> 204 ==> 2/81 xor mk(5) = 95 
new mk=21 149 183 68 95 236 33 218 (hex 15 95 B7 44 5F EC 21 DA)

85-hmk=136 136 136 136 136 136 136 136 136 136 
mk=21 149 183 68 95 236 33 218 
hmk(5) xor mk(5) ==> 215 ==> 2/FB xor mk(6) = 23 
new mk=21 149 183 68 95 23 33 218 (hex 15 95 B7 44 5F 17 21 DA)

86-hmk=136 136 136 136 136 136 136 136 136 136 
mk=21 149 183 68 95 23 33 218 
hmk(6) xor mk(6) ==> 159 ==> 2/42 xor mk(7) = 99 
new mk=21 149 183 68 95 23 99 218 (hex 15 95 B7 44 5F 17 63 DA)

87-hmk=136 136 136 136 136 136 136 136 136 136 
mk=21 149 183 68 95 23 99 218 
hmk(7) xor mk(7) ==> 235 ==> 2/7D xor mk(8) = 167 
new mk=21 149 183 68 95 23 99 167 (hex 15 95 B7 44 5F 17 63 A7)

88-hmk=136 136 136 136 136 136 136 136 136 136 
mk=21 149 183 68 95 23 99 167 
hmk(8) xor mk(8) ==> 47 ==> 2/87 xor mk(1) = 146 
new mk=146 149 183 68 95 23 99 167 (hex 92 95 B7 44 5F 17 63 A7)

89-hmk=136 136 136 136 136 136 136 136 136 136 
mk=146 149 183 68 95 23 99 167 
hmk(9) xor mk(1) ==> 26 ==> 2/5A xor mk(4) = 30 
new mk=146 149 183 30 95 23 99 167 (hex 92 95 B7 1E 5F 17 63 A7)

90-hmk=136 136 136 136 136 136 136 136 136 136 
mk=146 149 183 30 95 23 99 167 
hmk(10) xor mk(4) ==> 150 ==> 2/A0 xor mk(7) = 195 
new mk=146 149 183 30 95 23 195 167 (hex 92 95 B7 1E 5F 17 C3 A7)

We rotate the HMK one bit toward the right.
This is the tenth HMK rotation.

91-hmk=68 68 68 68 68 68 68 68 68 68 
mk=146 149 183 30 95 23 195 167 
hmk(1) xor mk(7) ==> 135 ==> 2/5B xor mk(2) = 206 
new mk=146 206 183 30 95 23 195 167 (hex 92 CE B7 1E 5F 17 C3 A7)

92-hmk=68 68 68 68 68 68 68 68 68 68 
mk=146 206 183 30 95 23 195 167 
hmk(2) xor mk(2) ==> 138 ==> 2/4C xor mk(5) = 19 
new mk=146 206 183 30 19 23 195 167 (hex 92 CE B7 1E 13 17 C3 A7)

93-hmk=68 68 68 68 68 68 68 68 68 68 
mk=146 206 183 30 19 23 195 167 
hmk(3) xor mk(5) ==> 87 ==> 2/CA xor mk(8) = 109 
new mk=146 206 183 30 19 23 195 109 (hex 92 CE B7 1E 13 17 C3 6D)

94-hmk=68 68 68 68 68 68 68 68 68 68 
mk=146 206 183 30 19 23 195 109 
hmk(4) xor mk(8) ==> 41 ==> 2/1F xor mk(3) = 168 
new mk=146 206 168 30 19 23 195 109 (hex 92 CE A8 1E 13 17 C3 6D)

95-hmk=68 68 68 68 68 68 68 68 68 68 
mk=146 206 168 30 19 23 195 109 
hmk(5) xor mk(3) ==> 236 ==> 2/67 xor mk(6) = 112 
new mk=146 206 168 30 19 112 195 109 (hex 92 CE A8 1E 13 70 C3 6D)

96-hmk=68 68 68 68 68 68 68 68 68 68 
mk=146 206 168 30 19 112 195 109 
hmk(6) xor mk(6) ==> 52 ==> 2/4E xor mk(1) = 220 
new mk=220 206 168 30 19 112 195 109 (hex DC CE A8 1E 13 70 C3 6D)

97-hmk=68 68 68 68 68 68 68 68 68 68 
mk=220 206 168 30 19 112 195 109 
hmk(7) xor mk(1) ==> 152 ==> 2/09 xor mk(2) = 199 
new mk=220 199 168 30 19 112 195 109 (hex DC C7 A8 1E 13 70 C3 6D)

98-hmk=68 68 68 68 68 68 68 68 68 68 
mk=220 199 168 30 19 112 195 109 
hmk(8) xor mk(2) ==> 131 ==> 2/A1 xor mk(3) = 9 
new mk=220 199 9 30 19 112 195 109 (hex DC C7 09 1E 13 70 C3 6D)

99-hmk=68 68 68 68 68 68 68 68 68 68 
mk=220 199 9 30 19 112 195 109 
hmk(9) xor mk(3) ==> 77 ==> 2/9C xor mk(4) = 130 
new mk=220 199 9 130 19 112 195 109 (hex DC C7 09 82 13 70 C3 6D)

100-hmk=68 68 68 68 68 68 68 68 68 68 
mk=220 199 9 130 19 112 195 109 
hmk(10) xor mk(4) ==> 198 ==> 2/69 xor mk(5) = 122 
new mk=220 199 9 130 122 112 195 109 (hex DC C7 09 82 7A 70 C3 6D)

We rotate the HMK one bit toward the right.
This is the eleventh HMK rotation.

101-hmk=34 34 34 34 34 34 34 34 34 34 
mk=220 199 9 130 122 112 195 109 
hmk(1) xor mk(5) ==> 88 ==> 2/96 xor mk(6) = 230 
new mk=220 199 9 130 122 230 195 109 (hex DC C7 09 82 7A E6 C3 6D)

102-hmk=34 34 34 34 34 34 34 34 34 34 
mk=220 199 9 130 122 230 195 109 
hmk(2) xor mk(6) ==> 196 ==> 2/6E xor mk(7) = 173 
new mk=220 199 9 130 122 230 173 109 (hex DC C7 09 82 7A E6 AD 6D)

103-hmk=34 34 34 34 34 34 34 34 34 34 
mk=220 199 9 130 122 230 173 109 
hmk(3) xor mk(7) ==> 143 ==> 2/3B xor mk(8) = 86 
new mk=220 199 9 130 122 230 173 86 (hex DC C7 09 82 7A E6 AD 56)

104-hmk=34 34 34 34 34 34 34 34 34 34 
mk=220 199 9 130 122 230 173 86 
hmk(4) xor mk(8) ==> 116 ==> 2/C6 xor mk(1) = 26 
new mk=26 199 9 130 122 230 173 86 (hex 1A C7 09 82 7A E6 AD 56)

105-hmk=34 34 34 34 34 34 34 34 34 34 
mk=26 199 9 130 122 230 173 86 
hmk(5) xor mk(1) ==> 56 ==> 2/F7 xor mk(4) = 117 
new mk=26 199 9 117 122 230 173 86 (hex 1A C7 09 75 7A E6 AD 56)

106-hmk=34 34 34 34 34 34 34 34 34 34 
mk=26 199 9 117 122 230 173 86 
hmk(6) xor mk(4) ==> 87 ==> 2/CA xor mk(7) = 103 
new mk=26 199 9 117 122 230 103 86 (hex 1A C7 09 75 7A E6 67 56)

107-hmk=34 34 34 34 34 34 34 34 34 34 
mk=26 199 9 117 122 230 103 86 
hmk(7) xor mk(7) ==> 69 ==> 2/C4 xor mk(2) = 3 
new mk=26 3 9 117 122 230 103 86 (hex 1A 03 09 75 7A E6 67 56)

108-hmk=34 34 34 34 34 34 34 34 34 34 
mk=26 3 9 117 122 230 103 86 
hmk(8) xor mk(2) ==> 33 ==> 2/7A xor mk(5) = 0 
new mk=26 3 9 117 0 230 103 86 (hex 1A 03 09 75 00 E6 67 56)

109-hmk=34 34 34 34 34 34 34 34 34 34 
mk=26 3 9 117 0 230 103 86 
hmk(9) xor mk(5) ==> 34 ==> 2/1D xor mk(8) = 75 
new mk=26 3 9 117 0 230 103 75 (hex 1A 03 09 75 00 E6 67 4B)

110-hmk=34 34 34 34 34 34 34 34 34 34 
mk=26 3 9 117 0 230 103 75 
hmk(10) xor mk(8) ==> 105 ==> 2/CF xor mk(3) = 198 
new mk=26 3 198 117 0 230 103 75 (hex 1A 03 C6 75 00 E6 67 4B)

We rotate the HMK one bit toward the right.
This is the twelvth HMK rotation.

111-hmk=17 17 17 17 17 17 17 17 17 17 
mk=26 3 198 117 0 230 103 75 
hmk(1) xor mk(3) ==> 215 ==> 1/88 xor mk(6) = 110 
new mk=26 3 198 117 0 110 103 75 (hex 1A 03 C6 75 00 6E 67 4B)

112-hmk=17 17 17 17 17 17 17 17 17 17 
mk=26 3 198 117 0 110 103 75 
hmk(2) xor mk(6) ==> 127 ==> 1/9B xor mk(1) = 129 
new mk=129 3 198 117 0 110 103 75 (hex 81 03 C6 75 00 6E 67 4B)

113-hmk=17 17 17 17 17 17 17 17 17 17 
mk=129 3 198 117 0 110 103 75 
hmk(3) xor mk(1) ==> 144 ==> 1/17 xor mk(2) = 20 
new mk=129 20 198 117 0 110 103 75 (hex 81 14 C6 75 00 6E 67 4B)

114-hmk=17 17 17 17 17 17 17 17 17 17 
mk=129 20 198 117 0 110 103 75 
hmk(4) xor mk(2) ==> 5 ==> 1/52 xor mk(3) = 148 
new mk=129 20 148 117 0 110 103 75 (hex 81 14 94 75 00 6E 67 4B)

115-hmk=17 17 17 17 17 17 17 17 17 17 
mk=129 20 148 117 0 110 103 75 
hmk(5) xor mk(3) ==> 133 ==> 1/45 xor mk(4) = 48 
new mk=129 20 148 48 0 110 103 75 (hex 81 14 94 30 00 6E 67 4B)

116-hmk=17 17 17 17 17 17 17 17 17 17 
mk=129 20 148 48 0 110 103 75 
hmk(6) xor mk(4) ==> 33 ==> 1/FC xor mk(5) = 252 
new mk=129 20 148 48 252 110 103 75 (hex 81 14 94 30 FC 6E 67 4B)

117-hmk=17 17 17 17 17 17 17 17 17 17 
mk=129 20 148 48 252 110 103 75 
hmk(7) xor mk(5) ==> 237 ==> 1/18 xor mk(6) = 118 
new mk=129 20 148 48 252 118 103 75 (hex 81 14 94 30 FC 76 67 4B)

118-hmk=17 17 17 17 17 17 17 17 17 17 
mk=129 20 148 48 252 118 103 75 
hmk(8) xor mk(6) ==> 103 ==> 1/E0 xor mk(7) = 135 
new mk=129 20 148 48 252 118 135 75 (hex 81 14 94 30 FC 76 87 4B)

119-hmk=17 17 17 17 17 17 17 17 17 17 
mk=129 20 148 48 252 118 135 75 
hmk(9) xor mk(7) ==> 150 ==> 1/D4 xor mk(8) = 159 
new mk=129 20 148 48 252 118 135 159 (hex 81 14 94 30 FC 76 87 9F)

120-hmk=17 17 17 17 17 17 17 17 17 17 
mk=129 20 148 48 252 118 135 159 
hmk(10) xor mk(8) ==> 142 ==> 1/19 xor mk(1) = 152 
new mk=152 20 148 48 252 118 135 159 (hex 98 14 94 30 FC 76 87 9F)

We rotate the HMK one bit toward the right.
This is the thirteenth (and final) HMK rotation.

121-hmk=136 136 136 136 136 136 136 136 136 136 
mk=152 20 148 48 252 118 135 159 
hmk(1) xor mk(1) ==> 16 ==> 2/82 xor mk(4) = 178 
new mk=152 20 148 178 252 118 135 159 (hex 98 14 94 B2 FC 76 87 9F)

122-hmk=136 136 136 136 136 136 136 136 136 136 
mk=152 20 148 178 252 118 135 159 
hmk(2) xor mk(4) ==> 58 ==> 2/71 xor mk(7) = 246 
new mk=152 20 148 178 252 118 246 159 (hex 98 14 94 B2 FC 76 F6 9F)

123-hmk=136 136 136 136 136 136 136 136 136 136 
mk=152 20 148 178 252 118 246 159 
hmk(3) xor mk(7) ==> 126 ==> 2/D7 xor mk(2) = 195 
new mk=152 195 148 178 252 118 246 159 (hex 98 C3 94 B2 FC 76 F6 9F)

124-hmk=136 136 136 136 136 136 136 136 136 136 
mk=152 195 148 178 252 118 246 159 
hmk(4) xor mk(2) ==> 75 ==> 2/27 xor mk(5) = 219 
new mk=152 195 148 178 219 118 246 159 (hex 98 C3 94 B2 DB 76 F6 9F)

125-hmk=136 136 136 136 136 136 136 136 136 136 
mk=152 195 148 178 219 118 246 159 
hmk(5) xor mk(5) ==> 83 ==> 2/78 xor mk(8) = 231 
new mk=152 195 148 178 219 118 246 231 (hex 98 C3 94 B2 DB 76 F6 E7)

126-hmk=136 136 136 136 136 136 136 136 136 136 
mk=152 195 148 178 219 118 246 231 
hmk(6) xor mk(8) ==> 111 ==> 2/07 xor mk(3) = 147 
new mk=152 195 147 178 219 118 246 231 (hex 98 C3 93 B2 DB 76 F6 E7)

127-hmk=136 136 136 136 136 136 136 136 136 136 
mk=152 195 147 178 219 118 246 231 
hmk(7) xor mk(3) ==> 27 ==> 2/D6 xor mk(6) = 160 
new mk=152 195 147 178 219 160 246 231 (hex 98 C3 93 B2 DB A0 F6 E7)

128-hmk=136 136 136 136 136 136 136 136 136 136 
mk=152 195 147 178 219 160 246 231 
hmk(8) xor mk(6) ==> 40 ==> 2/2F xor mk(1) = 183 
new mk=183 195 147 178 219 160 246 231 (hex B7 C3 93 B2 DB A0 F6 E7) <- Plain Master Key !!

And we now have the result PMK : 
183 195 147 178 219 160 246 231 

And expressed in hexidecimal : 
B7 C3 93 B2 DB A0 F6 E7

**********************************************************************************
                A Quick Note On Encrypted Master Key Calculation
**********************************************************************************

Now we know how to produce a PMK from a known HMK and EMK.
What if we have a PMK and HMK, and would like to calculate the EMK?
Next, I will explain how to do this.

You will notice that during the PMK calculation, our HMK was rotated right a total of
13 times, and thus is not the same HMK we started with.
To perform the reverse of this algorithm, we need to start at the last step,
and follow through to the first.

Therefore we will begin by bitwise rotating the HMK 13 times to the right.
Then we perform the last step of the PMK algorithm with our rotated HMK.

128-hmk=136 136 136 136 136 136 136 136 136 136 
mk= 183 195 147 178 219 160 246 231 (hex B7 C3 93 B2 DB A0 F6 E7) <- Plain Master Key
hmk(8) xor mk(6) ==> 40 ==> 2/2F xor mk(1) = 183 
new mk=152 195 147 178 219 160 246 231 

Note that we use the same HMK and MK indexes that were used in the last step of the
PMK calculation.

From here, we follow 7 more steps of the PMK algorithm in reverse order until the HMK
needs to be rotated, only instead of the bitwise rotate right, we must rotate left for
the reverse calculation.

After the 8th step in the reverse direction, the HMK is bitwise rotated left every
tenth step, and the final HMK rotation restores it to it's original value.

The reverse direction is fairly straight foward when you have a grip of the PMK
calculation.

**********************************************************************************
            How Does Software Attempt to Brute Force Hex Master Keys
**********************************************************************************

Now that we can decrypt an EMK with a valid HMK, we may want to attempt a brute
force of a HMK if we have a valid EMK and PMK pair.

To attempt a brute force of the HMK, we simply decrypt the known EMK using any HMK,
and check to see if the result PMK was correct.
If the result PMK was not correct we try the calculation again using another HMK
and compare the result PMK again.

You should now understand how this continues.

**********************************************************************************
                           Irdeto Random Hash Tables
**********************************************************************************

* Note that in order to aquire a Random Hash Table element, begin counting from zero
 until the desired address is reached.


Random Hash Table1 : 

"DA 26 E8 72 11 52 3E 46" 
"32 FF 8C 1E A7 BE 2C 29" 
"5F 86 7E 75 0A 08 A5 21" 
"61 FB 7A 58 60 F7 81 4F"  (just a peice of trivia.. address 28 is the same value in both tables)
"E4 FC DF B1 BB 6A 02 B3" 
"0B 6E 5D 5C D5 CF CA 2A" 
"14 B7 90 F3 D9 37 3A 59" 
"44 69 C9 78 30 16 39 9A" 
"0D 05 1F 8B 5E EE 1B C4" 
"76 43 BD EB 42 EF F9 D0" 
"4D E3 F4 57 56 A3 0F A6" 
"50 FD DE D2 80 4C D3 CB" 
"F8 49 8F 22 71 84 33 E0" 
"47 C2 93 BC 7C 3B 9C 7D" 
"EC C3 F1 89 CE 98 A2 E1" 
"C1 F2 27 12 01 EA E5 9B" 
"25 87 96 7B 34 45 AD D1" 
"B5 DB 83 55 B0 9E 19 D7" 
"17 C6 35 D8 F0 AE D4 2B" 
"1D A0 99 8A 15 00 AF 2D" 
"09 A8 F5 6C A1 63 67 51" 
"3C B2 C0 ED 94 03 6F BA" 
"3F 4E 62 92 85 DD AB FE" 
"10 2E 68 65 E7 04 F6 0C" 
"20 1C A9 53 40 77 2F A4" 
"FA 6D 73 28 E2 CD 79 C8" 
"97 66 8E 82 74 06 C7 88" 
"1A 4A 6B CC 41 E9 9D B8" 
"23 9F 3D BF 8D 95 C5 13" 
"B9 24 5A DC 64 18 38 91" 
"7F 5B 70 54 07 B6 4B 0E" 
"36 AC 31 E6 D6 48 AA B4" 

Random Hash Table 2: 

"8E D5 32 53 4B 18 7F 95" 
"BE 30 F3 E0 22 E1 68 90" 
"82 C8 A8 57 21 C5 38 73" 
"61 5D 5A D6 60 B7 48 70" 
"2B 7A 1D D1 B1 EC 7C AA" 
"2F 1F 37 58 72 88 FF 87" 
"1C CB 00 E6 4E AB EB B3" 
"F7 59 71 6A 64 2A 55 4D" 
"FC C0 51 01 2D C4 54 E2" 
"9F 26 16 27 F2 9C 86 11" 
"05 29 A2 78 49 B2 A6 CA" 
"96 E5 33 3F 46 BA D0 BB" 
"5F 84 98 E4 F9 0A 62 EE" 
"F6 CF 94 F0 EA 1E BF 07" 
"9B D9 E9 74 C6 A4 B9 56" 
"3E DB C7 15 E3 80 D7 ED" 
"EF 13 AC A1 91 C2 89 5B" 
"08 0B 4C 02 3A 5C A9 3B" 
"CE 6B A7 E7 CD 7B A0 47" 
"09 6D F8 F1 8B B0 12 42" 
"4A 9A 17 B4 7E AD FE FD" 
"2C D3 F4 B6 A3 FA DF B8" 
"D4 DA 0F 50 93 66 6C 20" 
"D8 8A DD 31 1A 8C 06 D2" 
"44 E8 23 43 6E 10 69 36" 
"BC 19 8D 24 81 14 40 C9" 
"6F 2E 45 52 41 92 34 FB" 
"5E 0D F5 76 25 77 63 65" 
"AF 4F CC 03 9D 0C 28 39" 
"85 DE B5 7D 67 83 BD C3" 
"DC 3C AE 99 04 75 8F 97" 
"C1 A5 9E 35 0E 3D 1B 79"

End of file.
