Share via


4.4.3 MPPE Keys Generation

The MPPE keys generation is performed as per section 3.1.5.7. It requires both the IPMK and seed (S) as inputs. The IPMK generated by both client and server are as follows:

 3A 91 1C 25 54 73 E8 3E 9A 0C C3 33 AE 1F 8A 35 CD C7 41 63 E7 F6 0F 6C 65 EF 71 C2 64 42 AA AC A2 B6 F1 EB 4F 25 EC A3

Seed is the ASCII encoding of the string "Session Key Generating Function" appended with byte 0x00:

 Seed = 53 65 73 73 69 6F 6E 20 4B 65 79 20 47 65 6E 65 72 61 74 69 6E 67 20 46 75 6E 63 74 69 6F 6E 00

Because the length of the keys is 128 octets, it requires 7 iterations of PRF+ function to generate 128 octets of data. The data after each iteration is as follows:

 T1 =  6A   02   D7   82   20   1B   C7   13   8B   F8   EF   F7   33   B4   96   97   0D   7C   AB   30
 T2 =  0A   C9   57   72   78   E1   DD   D5   AE   F7   66   97   17   52   D4   E5   84   A1   C8   95
 T3 =  03   9B   4D   05   E3   BC   9A   84   84   DD   C2   AA   6E   2C   E1   62   76   5C   40   68
 T4 =  BF   F6   5A   45   10   E3   05   74   85   DB   98   B7   99   D8   6E   66   76   3C   64   D4
 T5 =  98   89   B4   DD   1B   27   3D   C8   A2   CA   73   D6   0D   11   AF   B2   2C   52   BA   AD
 T6 =  D3   51   E0   CB   7B   B2   E7   2C   7D   93   73   85   7E   03   C1   4A   32   C8   F7   E5
 T7 =  95   9F   46   68   0E   86   E6   5C   89   F8   80   C8   A6   DA   00   56   3A   FB   19   C0

Based on the above data, the keys on the server side are as follows:

 RecvKey =  6A 02 D7 82 20 1B C7 13 8B F8 EF F7 33 B4 96 97 0D 7C AB 30 0A C9 57 72 78 E1 DD D5 AE F7 66 97
 SendKey = 17 52 D4 E5 84 A1 C8 95 03 9B 4D 05 E3 BC 9A 84 84 DD C2 AA 6E 2C E1 62 76 5C 40 68 BF F6 5A 45
 Client RecvKey = server SendKey
 Client SendKey = server RecvKey
  

Only the most significant 64 octets are used though we generate 128 octets. The least significant 64 octets are reserved for future use.