7 Network Working Group K. Raeburn
8 Request for Comments: 3962 MIT
9 Category: Standards Track February 2005
12 Advanced Encryption Standard (AES) Encryption for Kerberos 5
16 This document specifies an Internet standards track protocol for the
17 Internet community, and requests discussion and suggestions for
18 improvements. Please refer to the current edition of the "Internet
19 Official Protocol Standards" (STD 1) for the standardization state
20 and status of this protocol. Distribution of this memo is unlimited.
24 Copyright (C) The Internet Society (2005).
28 The United States National Institute of Standards and Technology
29 (NIST) has chosen a new Advanced Encryption Standard (AES), which is
30 significantly faster and (it is believed) more secure than the old
31 Data Encryption Standard (DES) algorithm. This document is a
32 specification for the addition of this algorithm to the Kerberos
37 This document defines encryption key and checksum types for Kerberos
38 5 using the AES algorithm recently chosen by NIST. These new types
39 support 128-bit block encryption and key sizes of 128 or 256 bits.
41 Using the "simplified profile" of [KCRYPTO], we can define a pair of
42 encryption and checksum schemes. AES is used with ciphertext
43 stealing to avoid message expansion, and SHA-1 [SHA1] is the
44 associated checksum function.
46 2. Conventions used in this Document
48 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
49 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
50 document are to be interpreted as described in BCP 14, RFC 2119
58 Raeburn Standards Track [Page 1]
60 RFC 3962 AES Encryption for Kerberos 5 February 2005
63 3. Protocol Key Representation
65 The profile in [KCRYPTO] treats keys and random octet strings as
66 conceptually different. But since the AES key space is dense, we can
67 use any bit string of appropriate length as a key. We use the byte
68 representation for the key described in [AES], where the first bit of
69 the bit string is the high bit of the first byte of the byte string
70 (octet string) representation.
72 4. Key Generation from Pass Phrases or Random Data
74 Given the above format for keys, we can generate keys from the
75 appropriate amounts of random data (128 or 256 bits) by simply
76 copying the input string.
78 To generate an encryption key from a pass phrase and salt string, we
79 use the PBKDF2 function from PKCS #5 v2.0 ([PKCS5]), with parameters
80 indicated below, to generate an intermediate key (of the same length
81 as the desired final key), which is then passed into the DK function
82 with the 8-octet ASCII string "kerberos" as is done for des3-cbc-
83 hmac-sha1-kd in [KCRYPTO]. (In [KCRYPTO] terms, the PBKDF2 function
84 produces a "random octet string", hence the application of the
85 random-to-key function even though it's effectively a simple identity
86 operation.) The resulting key is the user's long-term key for use
87 with the encryption algorithm in question.
89 tkey = random2key(PBKDF2(passphrase, salt, iter_count, keylength))
90 key = DK(tkey, "kerberos")
92 The pseudorandom function used by PBKDF2 will be a SHA-1 HMAC of the
93 passphrase and salt, as described in Appendix B.1 to PKCS#5.
95 The number of iterations is specified by the string-to-key parameters
96 supplied. The parameter string is four octets indicating an unsigned
97 number in big-endian order. This is the number of iterations to be
98 performed. If the value is 00 00 00 00, the number of iterations to
99 be performed is 4,294,967,296 (2**32). (Thus the minimum expressible
100 iteration count is 1.)
102 For environments where slower hardware is the norm, implementations
103 of protocols such as Kerberos may wish to limit the number of
104 iterations to prevent a spoofed response supplied by an attacker from
105 consuming lots of client-side CPU time; if such a limit is
106 implemented, it SHOULD be no less than 50,000. Even for environments
107 with fast hardware, 4 billion iterations is likely to take a fairly
108 long time; much larger bounds might still be enforced, and it might
109 be wise for implementations to permit interruption of this operation
110 by the user if the environment allows for it.
114 Raeburn Standards Track [Page 2]
116 RFC 3962 AES Encryption for Kerberos 5 February 2005
119 If the string-to-key parameters are not supplied, the value used is
120 00 00 10 00 (decimal 4,096, indicating 4,096 iterations).
122 Note that this is not a requirement, nor even a recommendation, for
123 this value to be used in "optimistic preauthentication" (e.g.,
124 attempting timestamp-based preauthentication using the user's long-
125 term key without having first communicated with the KDC) in the
126 absence of additional information, or as a default value for sites to
127 use for their principals' long-term keys in their Kerberos database.
128 It is simply the interpretation of the absence of the string-to-key
129 parameter field when the KDC has had an opportunity to provide it.
131 Sample test vectors are given in Appendix B.
133 5. Ciphertext Stealing
135 Cipher block chaining is used to encrypt messages, with the initial
136 vector stored in the cipher state. Unlike previous Kerberos
137 cryptosystems, we use ciphertext stealing to handle the possibly
138 partial final block of the message.
140 Ciphertext stealing is described on pages 195-196 of [AC], and
141 section 8 of [RC5]; it has the advantage that no message expansion is
142 done during encryption of messages of arbitrary sizes as is typically
143 done in CBC mode with padding. Some errata for [RC5] are listed in
144 Appendix A and are considered part of the ciphertext stealing
145 technique as used here.
147 Ciphertext stealing, as defined in [RC5], assumes that more than one
148 block of plain text is available. If exactly one block is to be
149 encrypted, that block is simply encrypted with AES (also known as ECB
150 mode). Input smaller than one block is padded at the end to one
151 block; the values of the padding bits are unspecified.
152 (Implementations MAY use all-zero padding, but protocols MUST NOT
153 rely on the result being deterministic. Implementations MAY use
154 random padding, but protocols MUST NOT rely on the result not being
155 deterministic. Note that in most cases, the Kerberos encryption
156 profile will add a random confounder independent of this padding.)
158 For consistency, ciphertext stealing is always used for the last two
159 blocks of the data to be encrypted, as in [RC5]. If the data length
160 is a multiple of the block size, this is equivalent to plain CBC mode
161 with the last two ciphertext blocks swapped.
163 A test vector is given in Appendix B.
170 Raeburn Standards Track [Page 3]
172 RFC 3962 AES Encryption for Kerberos 5 February 2005
175 The initial vector carried out from one encryption for use in a
176 subsequent encryption is the next-to-last block of the encryption
177 output; this is the encrypted form of the last plaintext block. When
178 decrypting, the next-to-last block of the supplied ciphertext is
179 carried forward as the next initial vector. If only one ciphertext
180 block is available (decrypting one block, or encrypting one block or
181 less), then that one block is carried out instead.
183 6. Kerberos Algorithm Profile Parameters
185 This is a summary of the parameters to be used with the simplified
186 algorithm profile described in [KCRYPTO]:
188 +--------------------------------------------------------------------+
189 | protocol key format 128- or 256-bit string |
191 | string-to-key function PBKDF2+DK with variable |
192 | iteration count (see |
195 | default string-to-key parameters 00 00 10 00 |
197 | key-generation seed length key size |
199 | random-to-key function identity function |
201 | hash function, H SHA-1 |
203 | HMAC output size, h 12 octets (96 bits) |
205 | message block size, m 1 octet |
207 | encryption/decryption functions, AES in CBC-CTS mode |
208 | E and D (cipher block size 16 |
209 | octets), with next-to- |
210 | last block (last block |
211 | if only one) as CBC-style |
213 +--------------------------------------------------------------------+
215 Using this profile with each key size gives us two each of encryption
216 and checksum algorithm definitions.
226 Raeburn Standards Track [Page 4]
228 RFC 3962 AES Encryption for Kerberos 5 February 2005
233 The following encryption type numbers are assigned:
235 +--------------------------------------------------------------------+
237 +--------------------------------------------------------------------+
238 | type name etype value key size |
239 +--------------------------------------------------------------------+
240 | aes128-cts-hmac-sha1-96 17 128 |
241 | aes256-cts-hmac-sha1-96 18 256 |
242 +--------------------------------------------------------------------+
244 The following checksum type numbers are assigned:
246 +--------------------------------------------------------------------+
248 +--------------------------------------------------------------------+
249 | type name sumtype value length |
250 +--------------------------------------------------------------------+
251 | hmac-sha1-96-aes128 15 96 |
252 | hmac-sha1-96-aes256 16 96 |
253 +--------------------------------------------------------------------+
255 These checksum types will be used with the corresponding encryption
258 8. Security Considerations
260 This new algorithm has not been around long enough to receive the
261 decades of intense analysis that DES has received. It is possible
262 that some weakness exists that has not been found by the
263 cryptographers analyzing these algorithms before and during the AES
266 The use of the HMAC function has drawbacks for certain pass phrase
267 lengths. For example, a pass phrase longer than the hash function
268 block size (64 bytes, for SHA-1) is hashed to a smaller size (20
269 bytes) before applying the main HMAC algorithm. However, entropy is
270 generally sparse in pass phrases, especially in long ones, so this
271 may not be a problem in the rare cases of users with long pass
274 Also, generating a 256-bit key from a pass phrase of any length may
275 be deceptive, as the effective entropy in pass-phrase-derived key
276 cannot be nearly that large given the properties of the string-to-key
277 function described here.
282 Raeburn Standards Track [Page 5]
284 RFC 3962 AES Encryption for Kerberos 5 February 2005
287 The iteration count in PBKDF2 appears to be useful primarily as a
288 constant multiplier for the amount of work required for an attacker
289 using brute-force methods. Unfortunately, it also multiplies, by the
290 same amount, the work needed by a legitimate user with a valid
291 password. Thus the work factor imposed on an attacker (who may have
292 many powerful workstations at his disposal) must be balanced against
293 the work factor imposed on the legitimate user (who may have a PDA or
294 cell phone); the available computing power on either side increases
295 as time goes on, as well. A better way to deal with the brute-force
296 attack is through preauthentication mechanisms that provide better
297 protection of the user's long-term key. Use of such mechanisms is
298 out of the scope of this document.
300 If a site does wish to use this means of protection against a brute-
301 force attack, the iteration count should be chosen based on the
302 facilities available to both attacker and legitimate user, and the
303 amount of work the attacker should be required to perform to acquire
308 The author's tests on a 2GHz Pentium 4 system indicated that in
309 one second, nearly 90,000 iterations could be done, producing a
310 256-bit key. This was using the SHA-1 assembly implementation
311 from OpenSSL, and a pre-release version of the PBKDF2 code for
312 MIT's Kerberos package, on a single system. No attempt was made
313 to do multiple hashes in parallel, so we assume an attacker doing
314 so can probably do at least 100,000 iterations per second --
315 rounded up to 2**17, for ease of calculation. For simplicity, we
316 also assume the final AES encryption step costs nothing.
318 Paul Leach estimates [LEACH] that a password-cracking dictionary
319 may have on the order of 2**21 entries, with capitalization,
320 punctuation, and other variations contributing perhaps a factor of
321 2**11, giving a ballpark estimate of 2**32.
323 Thus, for a known iteration count N and a known salt string, an
324 attacker with some number of computers comparable to the author's
325 would need roughly N*2**15 CPU seconds to convert the entire
326 dictionary plus variations into keys.
328 An attacker using a dozen such computers for a month would have
329 roughly 2**25 CPU seconds available. So using 2**12 (4,096)
330 iterations would mean an attacker with a dozen such computers
331 dedicated to a brute-force attack against a single key (actually,
332 any password-derived keys sharing the same salt and iteration
338 Raeburn Standards Track [Page 6]
340 RFC 3962 AES Encryption for Kerberos 5 February 2005
343 count) would process all the variations of the dictionary entries
344 in four months and, on average, would likely find the user's
345 password in two months.
347 Thus, if this form of attack is of concern, users should be
348 required to change their passwords every few months, and an
349 iteration count a few orders of magnitude higher should be chosen.
350 Perhaps several orders of magnitude, as many users will tend to
351 use the shorter and simpler passwords (to the extent they can,
352 given a site's password quality checks) that the attacker would
355 Since this estimate is based on currently available CPU power, the
356 iteration counts used for this mode of defense should be increased
357 over time, at perhaps 40%-60% each year or so.
359 Note that if the attacker has a large amount of storage available,
360 intermediate results could be cached, saving a lot of work for the
361 next attack with the same salt and a greater number of iterations
362 than had been run at the point where the intermediate results were
363 saved. Thus, it would be wise to generate a new random salt
364 string when passwords are changed. The default salt string,
365 derived from the principal name, only protects against the use of
366 one dictionary of keys against multiple users.
368 If the PBKDF2 iteration count can be spoofed by an intruder on the
369 network, and the limit on the accepted iteration count is very high,
370 the intruder may be able to introduce a form of denial of service
371 attack against the client by sending a very high iteration count,
372 causing the client to spend a great deal of CPU time computing an
375 An intruder spoofing the KDC reply, providing a low iteration count
376 and reading the client's reply from the network, may be able to
377 reduce the work needed in the brute-force attack outlined above.
378 Thus, implementations may seek to enforce lower bounds on the number
379 of iterations that will be used.
381 Since threat models and typical end-user equipment will vary widely
382 from site to site, allowing site-specific configuration of such
383 bounds is recommended.
385 Any benefit against other attacks specific to the HMAC or SHA-1
386 algorithms is probably achieved with a fairly small number of
394 Raeburn Standards Track [Page 7]
396 RFC 3962 AES Encryption for Kerberos 5 February 2005
399 In the "optimistic preauthentication" case mentioned in section 3,
400 the client may attempt to produce a key without first communicating
401 with the KDC. If the client has no additional information, it can
402 only guess as to the iteration count to be used. Even such
403 heuristics as "iteration count X was used to acquire tickets for the
404 same principal only N hours ago" can be wrong. Given the
405 recommendation above for increasing the iteration counts used over
406 time, it is impossible to recommend any specific default value for
407 this case; allowing site-local configuration is recommended. (If the
408 lower and upper bound checks described above are implemented, the
409 default count for optimistic preauthentication should be between
412 Ciphertext stealing mode, as it requires no additional padding in
413 most cases, will reveal the exact length of each message being
414 encrypted rather than merely bounding it to a small range of possible
415 lengths as in CBC mode. Such obfuscation should not be relied upon
416 at higher levels in any case; if the length must be obscured from an
417 outside observer, this should be done by intentionally varying the
418 length of the message to be encrypted.
420 9. IANA Considerations
422 Kerberos encryption and checksum type values used in section 7 were
423 previously reserved in [KCRYPTO] for the mechanisms defined in this
424 document. The registries have been updated to list this document as
429 Thanks to John Brezak, Gerardo Diaz Cuellar, Ken Hornstein, Paul
430 Leach, Marcus Watts, Larry Zhu, and others for feedback on earlier
431 versions of this document.
450 Raeburn Standards Track [Page 8]
452 RFC 3962 AES Encryption for Kerberos 5 February 2005
455 A. Errata for RFC 2040 Section 8
457 (Copied from the RFC Editor's errata web site on July 8, 2004.)
459 Reported By: Bob Baldwin; baldwin@plusfive.com
460 Date: Fri, 26 Mar 2004 06:49:02 -0800
462 In Section 8, Description of RC5-CTS, of the encryption method,
465 1. Exclusive-or Pn-1 with the previous ciphertext
466 block, Cn-2, to create Xn-1.
470 1. Exclusive-or Pn-1 with the previous ciphertext
471 block, Cn-2, to create Xn-1. For short messages where
472 Cn-2 does not exist, use IV.
474 Reported By: Bob Baldwin; baldwin@plusfive.com
475 Date: Mon, 22 Mar 2004 20:26:40 -0800
477 In Section 8, first paragraph, second sentence says:
479 This mode handles any length of plaintext and produces ciphertext
480 whose length matches the plaintext length.
482 In Section 8, first paragraph, second sentence should read:
484 This mode handles any length of plaintext longer than one
485 block and produces ciphertext whose length matches the
488 In Section 8, step 6 of the decryption method says:
490 6. Decrypt En to create Pn-1.
492 In Section 8, step 6 of the decryption method should read:
494 6. Decrypt En and exclusive-or with Cn-2 to create Pn-1.
495 For short messages where Cn-2 does not exist, use the IV.
506 Raeburn Standards Track [Page 9]
508 RFC 3962 AES Encryption for Kerberos 5 February 2005
511 B. Sample Test Vectors
513 Sample values for the PBKDF2 HMAC-SHA1 string-to-key function are
517 Pass phrase = "password"
518 Salt = "ATHENA.MIT.EDUraeburn"
519 128-bit PBKDF2 output:
520 cd ed b5 28 1b b2 f8 01 56 5a 11 22 b2 56 35 15
522 42 26 3c 6e 89 f4 fc 28 b8 df 68 ee 09 79 9f 15
523 256-bit PBKDF2 output:
524 cd ed b5 28 1b b2 f8 01 56 5a 11 22 b2 56 35 15
525 0a d1 f7 a0 4b b9 f3 a3 33 ec c0 e2 e1 f7 08 37
527 fe 69 7b 52 bc 0d 3c e1 44 32 ba 03 6a 92 e6 5b
528 bb 52 28 09 90 a2 fa 27 88 39 98 d7 2a f3 01 61
531 Pass phrase = "password"
532 Salt="ATHENA.MIT.EDUraeburn"
533 128-bit PBKDF2 output:
534 01 db ee 7f 4a 9e 24 3e 98 8b 62 c7 3c da 93 5d
536 c6 51 bf 29 e2 30 0a c2 7f a4 69 d6 93 bd da 13
537 256-bit PBKDF2 output:
538 01 db ee 7f 4a 9e 24 3e 98 8b 62 c7 3c da 93 5d
539 a0 53 78 b9 32 44 ec 8f 48 a9 9e 61 ad 79 9d 86
541 a2 e1 6d 16 b3 60 69 c1 35 d5 e9 d2 e2 5f 89 61
542 02 68 56 18 b9 59 14 b4 67 c6 76 22 22 58 24 ff
544 Iteration count = 1200
545 Pass phrase = "password"
546 Salt = "ATHENA.MIT.EDUraeburn"
547 128-bit PBKDF2 output:
548 5c 08 eb 61 fd f7 1e 4e 4e c3 cf 6b a1 f5 51 2b
550 4c 01 cd 46 d6 32 d0 1e 6d be 23 0a 01 ed 64 2a
551 256-bit PBKDF2 output:
552 5c 08 eb 61 fd f7 1e 4e 4e c3 cf 6b a1 f5 51 2b
553 a7 e5 2d db c5 e5 14 2f 70 8a 31 e2 e6 2b 1e 13
555 55 a6 ac 74 0a d1 7b 48 46 94 10 51 e1 e8 b0 a7
556 54 8d 93 b0 ab 30 a8 bc 3f f1 62 80 38 2b 8c 2a
562 Raeburn Standards Track [Page 10]
564 RFC 3962 AES Encryption for Kerberos 5 February 2005
568 Pass phrase = "password"
569 Salt=0x1234567878563412
570 128-bit PBKDF2 output:
571 d1 da a7 86 15 f2 87 e6 a1 c8 b1 20 d7 06 2a 49
573 e9 b2 3d 52 27 37 47 dd 5c 35 cb 55 be 61 9d 8e
574 256-bit PBKDF2 output:
575 d1 da a7 86 15 f2 87 e6 a1 c8 b1 20 d7 06 2a 49
576 3f 98 d2 03 e6 be 49 a6 ad f4 fa 57 4b 6e 64 ee
578 97 a4 e7 86 be 20 d8 1a 38 2d 5e bc 96 d5 90 9c
579 ab cd ad c8 7c a4 8f 57 45 04 15 9f 16 c3 6e 31
580 (This test is based on values given in [PECMS].)
582 Iteration count = 1200
583 Pass phrase = (64 characters)
584 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
585 Salt="pass phrase equals block size"
586 128-bit PBKDF2 output:
587 13 9c 30 c0 96 6b c3 2b a5 5f db f2 12 53 0a c9
589 59 d1 bb 78 9a 82 8b 1a a5 4e f9 c2 88 3f 69 ed
590 256-bit PBKDF2 output:
591 13 9c 30 c0 96 6b c3 2b a5 5f db f2 12 53 0a c9
592 c5 ec 59 f1 a4 52 f5 cc 9a d9 40 fe a0 59 8e d1
594 89 ad ee 36 08 db 8b c7 1f 1b fb fe 45 94 86 b0
595 56 18 b7 0c ba e2 20 92 53 4e 56 c5 53 ba 4b 34
597 Iteration count = 1200
598 Pass phrase = (65 characters)
599 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
600 Salt = "pass phrase exceeds block size"
601 128-bit PBKDF2 output:
602 9c ca d6 d4 68 77 0c d5 1b 10 e6 a6 87 21 be 61
604 cb 80 05 dc 5f 90 17 9a 7f 02 10 4c 00 18 75 1d
605 256-bit PBKDF2 output:
606 9c ca d6 d4 68 77 0c d5 1b 10 e6 a6 87 21 be 61
607 1a 8b 4d 28 26 01 db 3b 36 be 92 46 91 5e c8 2a
609 d7 8c 5c 9c b8 72 a8 c9 da d4 69 7f 0b b5 b2 d2
610 14 96 c8 2b eb 2c ae da 21 12 fc ee a0 57 40 1b
618 Raeburn Standards Track [Page 11]
620 RFC 3962 AES Encryption for Kerberos 5 February 2005
624 Pass phrase = g-clef (0xf09d849e)
625 Salt = "EXAMPLE.COMpianist"
626 128-bit PBKDF2 output:
627 6b 9c f2 6d 45 45 5a 43 a5 b8 bb 27 6a 40 3b 39
629 f1 49 c1 f2 e1 54 a7 34 52 d4 3e 7f e6 2a 56 e5
630 256-bit PBKDF2 output:
631 6b 9c f2 6d 45 45 5a 43 a5 b8 bb 27 6a 40 3b 39
632 e7 fe 37 a0 c4 1e 02 c2 81 ff 30 69 e1 e9 4f 52
634 4b 6d 98 39 f8 44 06 df 1f 09 cc 16 6d b4 b8 3c
635 57 18 48 b7 84 a3 d6 bd c3 46 58 9a 3e 39 3f 9e
637 Some test vectors for CBC with ciphertext stealing, using an initial
641 0000: 63 68 69 63 6b 65 6e 20 74 65 72 69 79 61 6b 69
644 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
646 0000: 49 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 68 65
649 0000: c6 35 35 68 f2 bf 8c b4 d8 a5 80 36 2d a7 ff 7f
652 0000: c6 35 35 68 f2 bf 8c b4 d8 a5 80 36 2d a7 ff 7f
655 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
657 0000: 49 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 68 65
658 0010: 20 47 65 6e 65 72 61 6c 20 47 61 75 27 73 20
660 0000: fc 00 78 3e 0e fd b2 c1 d4 45 d4 c8 ef f7 ed 22
661 0010: 97 68 72 68 d6 ec cc c0 c0 7b 25 e2 5e cf e5
663 0000: fc 00 78 3e 0e fd b2 c1 d4 45 d4 c8 ef f7 ed 22
674 Raeburn Standards Track [Page 12]
676 RFC 3962 AES Encryption for Kerberos 5 February 2005
680 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
682 0000: 49 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 68 65
683 0010: 20 47 65 6e 65 72 61 6c 20 47 61 75 27 73 20 43
685 0000: 39 31 25 23 a7 86 62 d5 be 7f cb cc 98 eb f5 a8
686 0010: 97 68 72 68 d6 ec cc c0 c0 7b 25 e2 5e cf e5 84
688 0000: 39 31 25 23 a7 86 62 d5 be 7f cb cc 98 eb f5 a8
691 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
693 0000: 49 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 68 65
694 0010: 20 47 65 6e 65 72 61 6c 20 47 61 75 27 73 20 43
695 0020: 68 69 63 6b 65 6e 2c 20 70 6c 65 61 73 65 2c
697 0000: 97 68 72 68 d6 ec cc c0 c0 7b 25 e2 5e cf e5 84
698 0010: b3 ff fd 94 0c 16 a1 8c 1b 55 49 d2 f8 38 02 9e
699 0020: 39 31 25 23 a7 86 62 d5 be 7f cb cc 98 eb f5
701 0000: b3 ff fd 94 0c 16 a1 8c 1b 55 49 d2 f8 38 02 9e
704 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
706 0000: 49 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 68 65
707 0010: 20 47 65 6e 65 72 61 6c 20 47 61 75 27 73 20 43
708 0020: 68 69 63 6b 65 6e 2c 20 70 6c 65 61 73 65 2c 20
710 0000: 97 68 72 68 d6 ec cc c0 c0 7b 25 e2 5e cf e5 84
711 0010: 9d ad 8b bb 96 c4 cd c0 3b c1 03 e1 a1 94 bb d8
712 0020: 39 31 25 23 a7 86 62 d5 be 7f cb cc 98 eb f5 a8
714 0000: 9d ad 8b bb 96 c4 cd c0 3b c1 03 e1 a1 94 bb d8
730 Raeburn Standards Track [Page 13]
732 RFC 3962 AES Encryption for Kerberos 5 February 2005
736 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
738 0000: 49 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 68 65
739 0010: 20 47 65 6e 65 72 61 6c 20 47 61 75 27 73 20 43
740 0020: 68 69 63 6b 65 6e 2c 20 70 6c 65 61 73 65 2c 20
741 0030: 61 6e 64 20 77 6f 6e 74 6f 6e 20 73 6f 75 70 2e
743 0000: 97 68 72 68 d6 ec cc c0 c0 7b 25 e2 5e cf e5 84
744 0010: 39 31 25 23 a7 86 62 d5 be 7f cb cc 98 eb f5 a8
745 0020: 48 07 ef e8 36 ee 89 a5 26 73 0d bc 2f 7b c8 40
746 0030: 9d ad 8b bb 96 c4 cd c0 3b c1 03 e1 a1 94 bb d8
748 0000: 48 07 ef e8 36 ee 89 a5 26 73 0d bc 2f 7b c8 40
752 [AC] Schneier, B., "Applied Cryptography", second edition, John
753 Wiley and Sons, New York, 1996.
755 [AES] National Institute of Standards and Technology, U.S.
756 Department of Commerce, "Advanced Encryption Standard",
757 Federal Information Processing Standards Publication 197,
758 Washington, DC, November 2001.
760 [KCRYPTO] Raeburn, K., "Encryption and Checksum Specifications for
761 Kerberos 5", RFC 3961, February 2005.
763 [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
764 Requirement Levels", BCP 14, RFC 2119, March 1997.
766 [PKCS5] Kaliski, B., "PKCS #5: Password-Based Cryptography
767 Specification Version 2.0", RFC 2898, September 2000.
769 [RC5] Baldwin, R. and R. Rivest, "The RC5, RC5-CBC, RC5-CBC-Pad,
770 and RC5-CTS Algorithms", RFC 2040, October 1996.
772 [SHA1] National Institute of Standards and Technology, U.S.
773 Department of Commerce, "Secure Hash Standard", Federal
774 Information Processing Standards Publication 180-1,
775 Washington, DC, April 1995.
786 Raeburn Standards Track [Page 14]
788 RFC 3962 AES Encryption for Kerberos 5 February 2005
791 Informative References
793 [LEACH] Leach, P., email to IETF Kerberos working group mailing
794 list, 5 May 2003, ftp://ftp.ietf.org/ietf-mail-
795 archive/krb-wg/2003-05.mail.
797 [PECMS] Gutmann, P., "Password-based Encryption for CMS", RFC
803 Massachusetts Institute of Technology
804 77 Massachusetts Avenue
807 EMail: raeburn@mit.edu
842 Raeburn Standards Track [Page 15]
844 RFC 3962 AES Encryption for Kerberos 5 February 2005
847 Full Copyright Statement
849 Copyright (C) The Internet Society (2005).
851 This document is subject to the rights, licenses and restrictions
852 contained in BCP 78, and except as set forth therein, the authors
853 retain all their rights.
855 This document and the information contained herein are provided on an
856 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
857 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
858 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
859 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
860 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
861 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
863 Intellectual Property
865 The IETF takes no position regarding the validity or scope of any
866 Intellectual Property Rights or other rights that might be claimed to
867 pertain to the implementation or use of the technology described in
868 this document or the extent to which any license under such rights
869 might or might not be available; nor does it represent that it has
870 made any independent effort to identify any such rights. Information
871 on the IETF's procedures with respect to rights in IETF Documents can
872 be found in BCP 78 and BCP 79.
874 Copies of IPR disclosures made to the IETF Secretariat and any
875 assurances of licenses to be made available, or the result of an
876 attempt made to obtain a general license or permission for the use of
877 such proprietary rights by implementers or users of this
878 specification can be obtained from the IETF on-line IPR repository at
879 http://www.ietf.org/ipr.
881 The IETF invites any interested party to bring to its attention any
882 copyrights, patents or patent applications, or other proprietary
883 rights that may cover technology that may be required to implement
884 this standard. Please address the information to the IETF at ietf-
889 Funding for the RFC Editor function is currently provided by the
898 Raeburn Standards Track [Page 16]