idnits 2.17.1 draft-ietf-avt-seed-srtp-14.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? (You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Feb 2009 rather than one of the newer Notices. See https://trustee.ietf.org/license-info/.) Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to use 'NOT RECOMMENDED' as an RFC 2119 keyword, but does not include the phrase in its RFC 2119 key words list. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (June 15, 2009) is 5428 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Possible downref: Non-RFC (?) normative reference: ref. 'GCM' ** Downref: Normative reference to an Informational RFC: RFC 2104 ** Downref: Normative reference to an Informational RFC: RFC 3610 ** Downref: Normative reference to an Informational RFC: RFC 4269 Summary: 4 errors (**), 0 flaws (~~), 3 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 AVT Working Group S. Yoon 2 Internet Draft J. Kim 3 Expires: December 15, 2009 H. Park 4 H. Jeong 5 Y. Won 6 Korea Information Security Agency 7 June 15, 2009 9 The SEED Cipher Algorithm and Its Use with the Secure Real-time 10 Transport Protocol (SRTP) 11 draft-ietf-avt-seed-srtp-14 13 Status of this Memo 15 This Internet-Draft is submitted to IETF in full conformance with the 16 provisions of BCP 78 and BCP 79. 18 Internet-Drafts are working documents of the Internet Engineering 19 Task Force (IETF), its areas, and its working groups. Note that other 20 groups may also distribute working documents as Internet-Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six months 23 and may be updated, replaced, or obsoleted by other documents at any 24 time. It is inappropriate to use Internet-Drafts as reference 25 material or to cite them other than as "work in progress." 27 The list of current Internet-Drafts can be accessed at 28 http://www.ietf.org/ietf/1id-abstracts.txt. 30 The list of Internet-Draft Shadow Directories can be accessed at 31 http://www.ietf.org/shadow.html. 33 This Internet-Draft will expire on December 15, 2009. 35 Copyright Notice 37 Copyright (c) 2009 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents in effect on the date of 42 publication of this document (http://trustee.ietf.org/license-info). 43 Please review these documents carefully, as they describe your rights 44 and restrictions with respect to this document. 46 Abstract 48 This document describes the use of the SEED block cipher algorithm in 49 the Secure Real-time Transport Protocol (SRTP) for providing 50 confidentiality for the Real-time Transport Protocol (RTP) traffic 51 and for the control traffic for RTP, the Real-time Transport Control 52 Protocol (RTCP). 54 Table of Contents 56 1. Introduction..................................................3 57 1.1. SEED.....................................................3 58 1.2. Terminology..............................................3 59 1.3. Definitions..............................................3 60 2. Cryptographic Transforms......................................4 61 2.1. Counter..................................................4 62 2.1.1. Message Authentication/Integrity: HMAC-SHA1.........4 63 2.2. Counter with CBC-MAC (CCM)...............................4 64 2.3. Galois/Counter Mode (GCM)................................6 65 3. Nonce Format for CCM and GCM..................................6 66 3.1. Nonce for SRTP...........................................6 67 3.2. Nonce for SRTCP..........................................6 68 4. Key Derivation: SEED-CTR PRF..................................7 69 5. Mandatory-to-implement Transforms.............................7 70 6. Security Considerations.......................................7 71 7. IANA Considerations...........................................8 72 8. References....................................................8 73 8.1. Normative References.....................................8 74 8.2. Informative References...................................9 75 APPENDIX A: Test Vectors........................................10 76 A.1. SEED-CTR Test Vectors...................................10 77 A.2. SEED-CCM Test Vectors...................................11 78 A.3. SEED-GCM Test Vectors...................................12 79 Author's Addresses..............................................13 81 1. Introduction 83 This document describes the use of the SEED [RFC4269] block cipher 84 algorithm in the Secure Real-time Transport Protocol (SRTP) [RFC3711] 85 for providing confidentiality for the Real-time Transport Protocol 86 (RTP) [RFC3550] traffic and for the control traffic for RTP, the 87 Real-time Transport Control Protocol (RTCP) [RFC3550]. 89 1.1. SEED 91 SEED is a Korean National Industrial Association standard and is 92 widely used in South Korea for electronic commerce and financial 93 services that are operated on wired and wireless communications. 95 SEED is a 128-bit symmetric key block cipher that has been developed 96 by KISA (Korea Information Security Agency) and a group of experts 97 since 1998. The input/output block size of SEED is 128-bit and the 98 key length is also 128-bit. SEED has a 16-round Feistel structure. 100 1.2. Terminology 102 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 103 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 104 document are to be interpreted as described in [RFC2119]. 106 1.3. Definitions 108 || concatenation 109 XOR exclusive or 111 2. Cryptographic Transforms 113 All symmetric block cipher algorithms share common characteristics 114 including mode, key size, weak keys, and block size. The following 115 sections contain descriptions of the relevant characteristics of 116 SEED. 118 SEED does not have any restrictions for modes of operation that are 119 used with this block cipher. We define three modes of running SEED, 120 (1) SEED in Counter Mode, (2) SEED in Counter with CBC-MAC (CCM) Mode 121 and (3) SEED in Galois/Counter Mode (GCM) Mode. 123 2.1. Counter 125 Section 4.1.1 of [RFC3711] defines AES counter mode encryption, which 126 it refers to as AES-CM. SEED counter mode is defined in a similar 127 manner, and is denoted as SEED-CTR. The plaintext inputs to the block 128 cipher are formed as in AES-CM, and the block cipher outputs are 129 processed as in AES-CM. The only difference in the processing is that 130 SEED-CTR uses SEED as the underlying encryption primitive. When SEED- 131 CTR is used, it MUST be used only in conjunction with an 132 authentication function. 134 2.1.1. Message Authentication/Integrity: HMAC-SHA1 136 HMAC-SHA1 [RFC2104], as defined in section 4.2.1 of [RFC3711], SHALL 137 be the default message authentication code to be used with SEED-CTR. 138 The default session authentication key-length SHALL be 160 bits, the 139 default authentication tag length SHALL be 80 bits, and the 140 SRTP_PREFIX_LENGTH SHALL be zero for HMAC-SHA1. For SRTP, smaller 141 values are NOT RECOMMENDED, but MAY be used after careful 142 consideration of the issues in section 7.5 and 9.5 of [RFC3711]. 144 2.2. Counter with CBC-MAC (CCM) 146 CCM is a generic authenticate-and-encrypt block cipher mode 147 [RFC3610]. In this specification, CCM used with the SEED block 148 cipher is denoted as SEED-CCM. 150 Section 3.3 of [RFC3711] defines procedures to construct or to 151 authenticate and decrypt SRTP packets. For SEED-CCM however, the 152 sender performs Step 7 before Step 5 and the receiver performs the 153 second half of Step 5 (performs verification) after Step 6. This 154 means that authentication is performed on the plaintext rather than 155 the ciphertext. This applies equally to SRTCP. 157 All SRTP packets MUST be authenticated and encrypted. Unlike SRTP, 158 SRTCP packet encryption is optional (but authentication is 159 mandatory). A sender can select which packets to encrypt, and 160 indicates this choice with a 1-bit encryption flag (located in the 161 leftmost bit of the 32-bit word that contains the SRTCP index). 163 SEED-CCM has two parameters: 165 M M indicates the size of the authentication tag. In SRTP, a 166 full 80-bit authentication-tag SHOULD be used and 167 implementation of this specification MUST support M values of 168 10 octets. 170 L L indicates the size of the length field in octets. The number 171 of octets in the nonce MUST be 12, i.e., L is 3. 173 SEED-CCM has four inputs: 175 Key 177 A single key is used to calculate the authentication tag using 178 CBC-MAC and to perform payload encryption using counter mode. 179 SEED only supports a key size of 128 bits. 181 Nonce 183 The size of the nonce depends on the value selected for the 184 parameter L. It is 15-L octets. L equals 3 and hence the nonce 185 size equals 12 octets. 187 Plaintext 189 In case of SRTP, the payload of the RTP packet and the RTP 190 padding and RTP pad count field (if the latter two fields are 191 present). 193 In case of SRTCP, when the encryption flag is set to 1, the 194 Encrypted Portion described in Fig.2 of [RFC3711] is treated as 195 plaintext. When the encryption flag is set to 0, the plaintext 196 is zero-length. 198 Additional Authentication Data (AAD) 200 In case of SRTP, the header of the RTP packet including 201 contributing source (CSRC) identifier (if present) and the RTP 202 header extension (if present). 204 In case of SRTCP, when the encryption flag is set to 0, the 205 Authentication Portion described in Fig.2 of [RFC3711] is 206 treated as AAD. When the encryption flag is set to 1, the first 207 8-octets, the encryption flag and SRTCP index are treated as 208 AAD. 210 SEED-CCM accepts these four inputs and returns a ciphertext field. 212 2.3. Galois/Counter Mode (GCM) 214 GCM is a block cipher mode of operation providing both 215 confidentiality and data origin authentication [GCM]. GCM used with 216 the SEED block cipher is denoted as SEED-GCM. 218 SEED-GCM has four inputs: a key, a plaintext, a nonce and the 219 additional authenticated data (AAD) all described in section 2.2. 221 The bit length of the tag, denoted t, is 12, and an authentication 222 tag with a length of 12 octets (96 bits) is used. 224 3. Nonce Format for CCM and GCM 226 3.1. Nonce for SRTP 228 The nonce for SRTP SHALL be formed in the following way: 230 Nonce = (16 bits of zeroes || SSRC || ROC || SEQ) XOR Salt 232 The 4-octet SSRC and the 2-octet SEQ SHALL be taken from the RTP 233 header. The 4-octet ROC is from the cryptographic context. The 12- 234 octet Salt SHALL be produced by the SRTP Key Derivation Function. 236 3.2. Nonce for SRTCP 238 The nonce for SRTCP SHALL be formed in the following way: 240 Nonce = (16 bits of zeroes || SSRC || 16 bits of zeroes || 241 SRTCP index) XOR Salt 243 The 4-octet SSRC SHALL be taken from the RTCP header and The 31-bit 244 SRTCP index (packed zero-filled, right justified into a 4-octet 245 field) is from each packet. The 12-octet Salt SHALL be produced by 246 the SRTP Key Derivation Function. 248 4. Key Derivation: SEED-CTR PRF 250 Section 4.3.3 of [RFC3711] defines the AES-128 counter mode key 251 derivation function, which it refers to as "AES-CM PRF". The SEED-CTR 252 PRF is defined in a similar manner, but with each invocation of AES 253 replaced with an invocation of SEED. 255 The currently defined PRF, keyed by the 128-bit master key, has input 256 block size m = 128 and can produce n-bit outputs for n up to 2^23. 257 SEED-PRF_n(k_master, x) SHALL be SEED in Counter Mode as described in 258 section 2.1, applied to key k_master, and IV equal to (x*2^16), and 259 with the output keystream truncated to the n first (left-most) bits. 261 5. Mandatory-to-implement Transforms 263 "Mandatory-to-implement" means conformance to the specification, and 264 that Table 1 does not supersede a similar table in Section 5 of 265 [RFC3711]. An RTP implementation that supports SEED MUST implement 266 the modes listed in Table 1. 268 mandatory-to-implement optional 270 encryption SEED-CTR SEED-CCM,SEED-GCM 271 message integrity HMAC-SHA1 SEED-CCM,SEED-GCM 272 key derivation (PRF) SEED-CTR - 274 Table 1: Mandatory-to-implement and optional transforms in SRTP and 275 SRTCP. 277 6. Security Considerations 279 No security problem has been found on SEED. SEED is secure against 280 all known attacks including Differential cryptanalysis, linear 281 cryptanalysis, and related key attacks. The best known attack is only 282 an exhaustive search for the key. For further security 283 considerations, the reader is encouraged to read [SEED-EVAL]. 285 See [RFC3610] and [GCM] for security considerations regarding the CCM 286 and GCM Modes of Operation, respectively. In the context of SRTP, the 287 procedures in [RFC3711] ensure the critical property of non-reuse of 288 counter values. 290 7. IANA Considerations 292 [RFC4568] defines SRTP "crypto suites". In order to allow SDP to 293 signal the use of the algorithms defined in this document, IANA will 294 register the following crypto suites into the subregistry for SRTP 295 crypto suites under the SRTP transport of the SDP Security 296 Descriptions: 298 srtp-crypto-suite-ext = "SEED_CTR_128_HMAC_SHA1_80"/ 299 "SEED_128_CCM_80"/ 300 "SEED_128_GCM_96"/ 301 srtp-crypto-suite-ext 303 8. References 305 8.1. Normative References 307 [GCM] Dworkin, M., "NIST Special Publication 800-38D: 308 Recommendation for Block Cipher Modes of Operation: 309 Galois/Counter Mode (GCM) and GMAC", U.S. National 310 Institute of Standards and Technology 311 http://csrc.nist.gov/publications/nistpubs/800-38D/SP- 312 800-38D.pdf 314 [RFC2104] Krawczyk, H.,Bellare, M. and R. Canetti, "HMAC: keyed- 315 Hashing for Message Authentication", RFC 2104, February 316 1997. 318 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 319 Requirement Levels", BCP 14, RFC 2119, March 1997. 321 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R. and V. 322 Jacobson, "RTP: A Transport Protocol for Real-time 323 Applications", RFC3550, July 2003 325 [RFC3610] Whiting, D., Housley, R., and N. Ferguson, "Counter with 326 CBC-MAC (CCM)", RFC 3610, September 2003. 328 [RFC3711] M. Baugher, D. McGrew, M. Naslund, E.Carrara, K. Norrman, 329 "The Secure Real-time Transport Protocol (SRTP)", 330 RFC 3711, March 2004. 332 [RFC4269] H. Lee, S. Lee, J. Yoon, D. Cheon, J. Lee, "The SEED 333 Encryption Algorithm", RFC 4269, December 2005. 335 [RFC4568] F. Andreasen, M. Baugher, D. Wing, "Session Description 336 Protocol (SDP) Security Descriptions for Media Streams", 337 RFC 4568, July 2006. 339 8.2. Informative References 341 [SEED-EVAL] KISA, "Self Evaluation Report", 342 http://www.kisa.or.kr/kisa/seed/down/SEED_Evaluation_Repo 343 rt_by_CRYPTREC.pdf 345 APPENDIX A: Test Vectors 347 All values are in hexadecimal. 349 A.1. SEED-CTR Test Vectors 351 Session Key: 0c5ffd37a11edc42c325287fc0604f2e 353 Rollover Counter: 00000000 355 Sequence Number: 315e 357 SSRC: 20e8f5eb 359 Session Salt: cd3a7c42c671e0067a2a2639b43a 361 Initialization Vector: cd3a7c42e69915ed7a2a263985640000 363 RTP Payload: f57af5fd4ae19562976ec57a5a7ad55a 364 5af5c5e5c5fdf5c55ad57a4a7272d572 365 62e9729566ed66e97ac54a4a5a7ad5e1 366 5ae5fdd5fd5ac5d56ae56ad5c572d54a 367 e54ac55a956afd6aed5a4ac562957a95 368 16991691d572fd14e97ae962ed7a9f4a 369 955af572e162f57a956666e17ae1f54a 370 95f566d54a66e16e4afd6a9f7ae1c5c5 371 5ae5d56afde916c5e94a6ec56695e14a 372 fde1148416e94ad57ac5146ed59d1cc5 374 Encrypted RTP Payload: df5a89291e7e383e9beff765e691a737 375 70d5b9319162589956544855ce99a71f 376 48c90e413272cbb576447855e691a78c 377 70c58101a9c56889666458ca7999a727 378 cf6ab98ec1f55036e1db78dade7e08f8 379 3cb96a4581ed5048e5fbdb7d5191ed27 380 bf7a89a6b5fd582699e754fec60a8727 381 bfd51a011ef94c32467c5880c60ab7a8 382 70c5a9bea976bb99e5cb5cdada7e9327 383 d7c168504276e7897644267169766ea8 385 Authentication Tag: 28b7a194b1e3df3c573d 387 A.2. SEED-CCM Test Vectors 389 Key: 974bee725d44fc3992267b284c3c6750 391 Rollover Counter: 00000000 393 Sequence Number: 315e 395 SSRC: 20e8f5eb 397 Nonce: 000020e8f5eb00000000315e 399 Payload: f57af5fd4ae19562976ec57a5a7ad55a 400 5af5c5e5c5fdf5c55ad57a4a7272d572 401 62e9729566ed66e97ac54a4a5a7ad5e1 402 5ae5fdd5fd5ac5d56ae56ad5c572d54a 403 e54ac55a956afd6aed5a4ac562957a95 404 16991691d572fd14e97ae962ed7a9f4a 405 955af572e162f57a956666e17ae1f54a 406 95f566d54a66e16e4afd6a9f7ae1c5c5 407 5ae5d56afde916c5e94a6ec56695e14a 408 fde1148416e94ad57ac5146ed59d1cc5 410 AAD: 8008315ebf2e6fe020e8f5eb 412 Encrypted RTP Payload: 39b63931862d59ae5ba209b696b61996 413 96390929093139099619b686bebe19be 414 ae25be59aa21aa25b609868696b6192d 415 9629311931960919a629a61909be1986 416 2986099659a631a621968609ae59b659 417 da55da5d19be31d825b625ae21b65386 418 599639be2dae39b659aaaa2db62d3986 419 5939aa1986aa2da28631a653b62d0909 420 962919a63125da092586a209aa592d86 421 312dd848da258619b609d8a21951d009 423 Authentication Tag: 1eb0e7008c838b19c8fc 425 A.3. SEED-GCM Test Vectors 427 Key: e91e5e75da65554a48181f3846349562 429 Rollover Counter: 00000000 431 Sequence Number: 315e 433 SSRC: 20e8f5eb 435 Nonce: 000020e8f5eb00000000315e 437 Payload: f57af5fd4ae19562976ec57a5a7ad55a 438 5af5c5e5c5fdf5c55ad57a4a7272d572 439 62e9729566ed66e97ac54a4a5a7ad5e1 440 5ae5fdd5fd5ac5d56ae56ad5c572d54a 441 e54ac55a956afd6aed5a4ac562957a95 442 16991691d572fd14e97ae962ed7a9f4a 443 955af572e162f57a956666e17ae1f54a 444 95f566d54a66e16e4afd6a9f7ae1c5c5 445 5ae5d56afde916c5e94a6ec56695e14a 446 fde1148416e94ad57ac5146ed59d1cc5 448 AAD: 8008315ebf2e6fe020e8f5eb 450 Encrypted RTP Payload: 8a5363682c6b1bbf13c0b09cf747a551 451 2543cb2f129b8bd0e92dfadf735cda8f 452 88c4bbf90288f5e58d20c4f1bb0d5844 453 6ea009103ee57ba99cdeabaaa18d4a9a 454 05ddb46e7e5290a5a2284fe50b1f6fe9 455 ad3f1348c354181e85b24f1a552a1193 456 cf0e13eed5ab95ae854fb4f5b0edb2d3 457 ee5eb238c8f4bfb136b2eb6cd7876042 458 0680ce1879100014f140a15e07e70133 459 ed9cbb6d57b75d574acb0087eefbac99 461 Authentication Tag: 36cd9ae602be3ee2cd8d5d9d 463 Author's Addresses 465 Seokung Yoon 466 Korea Information Security Agency 467 IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 468 Email: seokung@kisa.or.kr 470 Joongman Kim 471 Korea Information Security Agency 472 IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 473 Email: seopo@kisa.or.kr 475 Haeryong Park 476 Korea Information Security Agency 477 IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 478 Email: hrpark@kisa.or.kr 480 Hyuncheol Jeong 481 Korea Information Security Agency 482 IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 483 Email: hcjung@kisa.or.kr 485 Yoojae Won 486 Korea Information Security Agency 487 IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 488 Email: yjwon@kisa.or.kr