AVT Working Group                                              S. Yoon
Internet Draft                                                  J. Kim
Expires: December 15, 2009                                     H. Park
                                                              H. Jeong
                                                                Y. Won
                                     Korea Information Security Agency 
                                                         June 15, 2009 
 
                                      
      The SEED Cipher Algorithm and Its Use with the Secure Real-time 
                         Transport Protocol (SRTP) 
                        draft-ietf-avt-seed-srtp-14


Status of this Memo 

   This Internet-Draft is submitted to IETF in full conformance with the 
   provisions of BCP 78 and BCP 79. 

   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups. Note that other 
   groups may also distribute working documents as Internet-Drafts. 

   Internet-Drafts are draft documents valid for a maximum of six months 
   and may be updated, replaced, or obsoleted by other documents at any 
   time. It is inappropriate to use Internet-Drafts as reference 
   material or to cite them other than as "work in progress." 

   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/ietf/1id-abstracts.txt. 

   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html. 

   This Internet-Draft will expire on December 15, 2009. 

Copyright Notice 

   Copyright (c) 2009 IETF Trust and the persons identified as the 
   document authors.  All rights reserved. 

   This document is subject to BCP 78 and the IETF Trust's Legal 
   Provisions Relating to IETF Documents in effect on the date of 
   publication of this document (http://trustee.ietf.org/license-info).  
   Please review these documents carefully, as they describe your rights 
   and restrictions with respect to this document. 





 
 
Yoon, et al.          Expires December 15, 2009               [Page 1] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

Abstract 

   This document describes the use of the SEED block cipher algorithm in 
   the Secure Real-time Transport Protocol (SRTP) for providing 
   confidentiality for the Real-time Transport Protocol (RTP) traffic 
   and for the control traffic for RTP, the Real-time Transport Control 
   Protocol (RTCP). 

Table of Contents 

    
   1. Introduction..................................................3 
      1.1. SEED.....................................................3 
      1.2. Terminology..............................................3 
      1.3. Definitions..............................................3 
   2. Cryptographic Transforms......................................4 
      2.1. Counter..................................................4 
         2.1.1. Message Authentication/Integrity: HMAC-SHA1.........4 
      2.2. Counter with CBC-MAC (CCM)...............................4 
      2.3. Galois/Counter Mode (GCM)................................6 
   3. Nonce Format for CCM and GCM..................................6 
      3.1. Nonce for SRTP...........................................6 
      3.2. Nonce for SRTCP..........................................6 
   4. Key Derivation: SEED-CTR PRF..................................7 
   5. Mandatory-to-implement Transforms.............................7 
   6. Security Considerations.......................................7 
   7. IANA Considerations...........................................8 
   8. References....................................................8 
      8.1. Normative References.....................................8 
      8.2. Informative References...................................9 
   APPENDIX A: Test Vectors........................................10 
      A.1. SEED-CTR Test Vectors...................................10 
      A.2. SEED-CCM Test Vectors...................................11 
      A.3. SEED-GCM Test Vectors...................................12 
   Author's Addresses..............................................13 
 











 
 
Yoon, et al.          Expires December 15, 2009               [Page 2] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

1. Introduction 

   This document describes the use of the SEED [RFC4269] block cipher 
   algorithm in the Secure Real-time Transport Protocol (SRTP) [RFC3711] 
   for providing confidentiality for the Real-time Transport Protocol 
   (RTP) [RFC3550] traffic and for the control traffic for RTP, the 
   Real-time Transport Control Protocol (RTCP) [RFC3550]. 

1.1. SEED 

   SEED is a Korean National Industrial Association standard and is 
   widely used in South Korea for electronic commerce and financial 
   services that are operated on wired and wireless communications. 

   SEED is a 128-bit symmetric key block cipher that has been developed 
   by KISA (Korea Information Security Agency) and a group of experts 
   since 1998. The input/output block size of SEED is 128-bit and the 
   key length is also 128-bit. SEED has a 16-round Feistel structure.  

1.2. Terminology 

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in [RFC2119]. 

1.3. Definitions 

   ||   concatenation 
   XOR  exclusive or 


















 
 
Yoon, et al.          Expires December 15, 2009               [Page 3] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

2. Cryptographic Transforms 

   All symmetric block cipher algorithms share common characteristics 
   including mode, key size, weak keys, and block size. The following 
   sections contain descriptions of the relevant characteristics of  
   SEED. 

   SEED does not have any restrictions for modes of operation that are 
   used with this block cipher. We define three modes of running SEED, 
   (1) SEED in Counter Mode, (2) SEED in Counter with CBC-MAC (CCM) Mode 
   and (3) SEED in Galois/Counter Mode (GCM) Mode. 

2.1. Counter 

   Section 4.1.1 of [RFC3711] defines AES counter mode encryption, which 
   it refers to as AES-CM. SEED counter mode is defined in a similar 
   manner, and is denoted as SEED-CTR. The plaintext inputs to the block 
   cipher are formed as in AES-CM, and the block cipher outputs are 
   processed as in AES-CM. The only difference in the processing is that 
   SEED-CTR uses SEED as the underlying encryption primitive. When SEED-
   CTR is used, it MUST be used only in conjunction with an 
   authentication function. 

2.1.1. Message Authentication/Integrity: HMAC-SHA1 

   HMAC-SHA1 [RFC2104], as defined in section 4.2.1 of [RFC3711], SHALL 
   be the default message authentication code to be used with SEED-CTR. 
   The default session authentication key-length SHALL be 160 bits, the 
   default authentication tag length SHALL be 80 bits, and the 
   SRTP_PREFIX_LENGTH SHALL be zero for HMAC-SHA1. For SRTP, smaller 
   values are NOT RECOMMENDED, but MAY be used after careful 
   consideration of the issues in section 7.5 and 9.5 of [RFC3711].  

2.2. Counter with CBC-MAC (CCM) 

   CCM is a generic authenticate-and-encrypt block cipher mode  
   [RFC3610]. In this specification, CCM used with the SEED block  
   cipher is denoted as SEED-CCM. 

   Section 3.3 of [RFC3711] defines procedures to construct or to 
   authenticate and decrypt SRTP packets. For SEED-CCM however, the 
   sender performs Step 7 before Step 5 and the receiver performs the 
   second half of Step 5 (performs verification) after Step 6. This 
   means that authentication is performed on the plaintext rather than 
   the ciphertext. This applies equally to SRTCP. 

   All SRTP packets MUST be authenticated and encrypted. Unlike SRTP, 
   SRTCP packet encryption is optional (but authentication is  
 
 
Yoon, et al.          Expires December 15, 2009               [Page 4] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

   mandatory). A sender can select which packets to encrypt, and 
   indicates this choice with a 1-bit encryption flag (located in the 
   leftmost bit of the 32-bit word that contains the SRTCP index). 

   SEED-CCM has two parameters: 

      M   M indicates the size of the authentication tag. In SRTP, a 
          full 80-bit authentication-tag SHOULD be used and 
          implementation of this specification MUST support M values of 
          10 octets. 

      L   L indicates the size of the length field in octets. The number 
          of octets in the nonce MUST be 12, i.e., L is 3. 

   SEED-CCM has four inputs: 

      Key 

         A single key is used to calculate the authentication tag using 
         CBC-MAC and to perform payload encryption using counter mode. 
         SEED only supports a key size of 128 bits. 

      Nonce 

         The size of the nonce depends on the value selected for the 
         parameter L. It is 15-L octets. L equals 3 and hence the nonce 
         size equals 12 octets. 

      Plaintext 

         In case of SRTP, the payload of the RTP packet and the RTP 
         padding and RTP pad count field (if the latter two fields are 
         present). 

         In case of SRTCP, when the encryption flag is set to 1, the 
         Encrypted Portion described in Fig.2 of [RFC3711] is treated as 
         plaintext. When the encryption flag is set to 0, the plaintext 
         is zero-length. 









 
 
Yoon, et al.          Expires December 15, 2009               [Page 5] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

      Additional Authentication Data (AAD) 

         In case of SRTP, the header of the RTP packet including 
         contributing source (CSRC) identifier (if present) and the RTP 
         header extension (if present). 

         In case of SRTCP, when the encryption flag is set to 0, the 
         Authentication Portion described in Fig.2 of [RFC3711] is 
         treated as AAD. When the encryption flag is set to 1, the first 
         8-octets, the encryption flag and SRTCP index are treated as 
         AAD. 

   SEED-CCM accepts these four inputs and returns a ciphertext field. 

2.3. Galois/Counter Mode (GCM) 

   GCM is a block cipher mode of operation providing both 
   confidentiality and data origin authentication [GCM]. GCM used with 
   the SEED block cipher is denoted as SEED-GCM. 

   SEED-GCM has four inputs: a key, a plaintext, a nonce and the 
   additional authenticated data (AAD) all described in section 2.2. 

   The bit length of the tag, denoted t, is 12, and an authentication 
   tag with a length of 12 octets (96 bits) is used. 

3. Nonce Format for CCM and GCM 

3.1. Nonce for SRTP 

   The nonce for SRTP SHALL be formed in the following way: 

         Nonce = (16 bits of zeroes || SSRC || ROC || SEQ) XOR Salt 

   The 4-octet SSRC and the 2-octet SEQ SHALL be taken from the RTP 
   header. The 4-octet ROC is from the cryptographic context. The 12-
   octet Salt SHALL be produced by the SRTP Key Derivation Function. 

3.2. Nonce for SRTCP 

   The nonce for SRTCP SHALL be formed in the following way: 

         Nonce = (16 bits of zeroes || SSRC || 16 bits of zeroes || 
                  SRTCP index) XOR Salt 

   The 4-octet SSRC SHALL be taken from the RTCP header and The 31-bit 
   SRTCP index (packed zero-filled, right justified into a 4-octet 

 
 
Yoon, et al.          Expires December 15, 2009               [Page 6] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

   field) is from each packet. The 12-octet Salt SHALL be produced by 
   the SRTP Key Derivation Function. 

4. Key Derivation: SEED-CTR PRF 

   Section 4.3.3 of [RFC3711] defines the AES-128 counter mode key 
   derivation function, which it refers to as "AES-CM PRF". The SEED-CTR 
   PRF is defined in a similar manner, but with each invocation of AES 
   replaced with an invocation of SEED. 

   The currently defined PRF, keyed by the 128-bit master key, has input 
   block size m = 128 and can produce n-bit outputs for n up to 2^23. 
   SEED-PRF_n(k_master, x) SHALL be SEED in Counter Mode as described in 
   section 2.1, applied to key k_master, and IV equal to (x*2^16), and 
   with the output keystream truncated to the n first (left-most) bits. 

5. Mandatory-to-implement Transforms 

   "Mandatory-to-implement" means conformance to the specification, and 
   that Table 1 does not supersede a similar table in Section 5 of 
   [RFC3711]. An RTP implementation that supports SEED MUST implement 
   the modes listed in Table 1. 

                            mandatory-to-implement      optional 

   encryption                     SEED-CTR          SEED-CCM,SEED-GCM 
   message integrity              HMAC-SHA1         SEED-CCM,SEED-GCM 
   key derivation (PRF)           SEED-CTR                  - 

   Table 1: Mandatory-to-implement and optional transforms in SRTP and 
   SRTCP. 

6. Security Considerations 

   No security problem has been found on SEED. SEED is secure against 
   all known attacks including Differential cryptanalysis, linear 
   cryptanalysis, and related key attacks. The best known attack is only 
   an exhaustive search for the key. For further security  
   considerations, the reader is encouraged to read [SEED-EVAL]. 

   See [RFC3610] and [GCM] for security considerations regarding the CCM 
   and GCM Modes of Operation, respectively. In the context of SRTP, the 
   procedures in [RFC3711] ensure the critical property of non-reuse of 
   counter values. 




 
 
Yoon, et al.          Expires December 15, 2009               [Page 7] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

7. IANA Considerations 

   [RFC4568] defines SRTP "crypto suites". In order to allow SDP to 
   signal the use of the algorithms defined in this document, IANA will 
   register the following crypto suites into the subregistry for SRTP 
   crypto suites under the SRTP transport of the SDP Security 
   Descriptions: 

      srtp-crypto-suite-ext = "SEED_CTR_128_HMAC_SHA1_80"/
                              "SEED_128_CCM_80"/ 
                              "SEED_128_GCM_96"/ 
                              srtp-crypto-suite-ext 

8. References 

8.1. Normative References 

   [GCM]       Dworkin, M., "NIST Special Publication 800-38D: 
               Recommendation for Block Cipher Modes of Operation: 
               Galois/Counter Mode (GCM) and GMAC", U.S. National 
               Institute of Standards and Technology 
               http://csrc.nist.gov/publications/nistpubs/800-38D/SP-
               800-38D.pdf 

   [RFC2104]   Krawczyk, H.,Bellare, M. and R. Canetti, "HMAC: keyed-
               Hashing for Message Authentication", RFC 2104, February 
               1997. 

   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate 
               Requirement Levels", BCP 14, RFC 2119, March 1997. 

   [RFC3550]   Schulzrinne, H., Casner, S., Frederick, R. and V. 
               Jacobson, "RTP: A Transport Protocol for Real-time 
               Applications", RFC3550, July 2003 

   [RFC3610]   Whiting, D., Housley, R., and N. Ferguson, "Counter with 
               CBC-MAC (CCM)", RFC 3610, September 2003. 

   [RFC3711]   M. Baugher, D. McGrew, M. Naslund, E.Carrara, K. Norrman,        
               "The Secure Real-time Transport Protocol (SRTP)",            
               RFC 3711, March 2004. 

   [RFC4269]   H. Lee, S. Lee, J. Yoon, D. Cheon, J. Lee, "The SEED 
               Encryption Algorithm", RFC 4269, December 2005. 

   [RFC4568]   F. Andreasen, M. Baugher, D. Wing, "Session Description 
               Protocol (SDP) Security Descriptions for Media Streams", 
               RFC 4568, July 2006. 
 
 
Yoon, et al.          Expires December 15, 2009               [Page 8] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

8.2. Informative References 

   [SEED-EVAL] KISA, "Self Evaluation Report", 
               http://www.kisa.or.kr/kisa/seed/down/SEED_Evaluation_Repo
               rt_by_CRYPTREC.pdf 










































 
 
Yoon, et al.          Expires December 15, 2009               [Page 9] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

APPENDIX A: Test Vectors 

  All values are in hexadecimal. 

A.1. SEED-CTR Test Vectors 

   Session Key:               0c5ffd37a11edc42c325287fc0604f2e 

   Rollover Counter:          00000000 

   Sequence Number:           315e 

   SSRC:                      20e8f5eb 

   Session Salt:              cd3a7c42c671e0067a2a2639b43a 

   Initialization Vector:     cd3a7c42e69915ed7a2a263985640000 

   RTP Payload:               f57af5fd4ae19562976ec57a5a7ad55a                  
                              5af5c5e5c5fdf5c55ad57a4a7272d572                  
                              62e9729566ed66e97ac54a4a5a7ad5e1                  
                              5ae5fdd5fd5ac5d56ae56ad5c572d54a                  
                              e54ac55a956afd6aed5a4ac562957a95                  
                              16991691d572fd14e97ae962ed7a9f4a                  
                              955af572e162f57a956666e17ae1f54a                  
                              95f566d54a66e16e4afd6a9f7ae1c5c5                  
                              5ae5d56afde916c5e94a6ec56695e14a                  
                              fde1148416e94ad57ac5146ed59d1cc5 

   Encrypted RTP Payload:     df5a89291e7e383e9beff765e691a737                  
                              70d5b9319162589956544855ce99a71f                  
                              48c90e413272cbb576447855e691a78c                  
                              70c58101a9c56889666458ca7999a727                  
                              cf6ab98ec1f55036e1db78dade7e08f8                  
                              3cb96a4581ed5048e5fbdb7d5191ed27                  
                              bf7a89a6b5fd582699e754fec60a8727                  
                              bfd51a011ef94c32467c5880c60ab7a8                  
                              70c5a9bea976bb99e5cb5cdada7e9327                  
                              d7c168504276e7897644267169766ea8  

   Authentication Tag:        28b7a194b1e3df3c573d 






 
 
Yoon, et al.          Expires December 15, 2009              [Page 10] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

A.2. SEED-CCM Test Vectors 

   Key:                       974bee725d44fc3992267b284c3c6750 

   Rollover Counter:          00000000 

   Sequence Number:           315e 

   SSRC:                      20e8f5eb 

   Nonce:                     000020e8f5eb00000000315e 

   Payload:                   f57af5fd4ae19562976ec57a5a7ad55a                  
                              5af5c5e5c5fdf5c55ad57a4a7272d572                  
                              62e9729566ed66e97ac54a4a5a7ad5e1                  
                              5ae5fdd5fd5ac5d56ae56ad5c572d54a                  
                              e54ac55a956afd6aed5a4ac562957a95                  
                              16991691d572fd14e97ae962ed7a9f4a                  
                              955af572e162f57a956666e17ae1f54a                  
                              95f566d54a66e16e4afd6a9f7ae1c5c5                  
                              5ae5d56afde916c5e94a6ec56695e14a                  
                              fde1148416e94ad57ac5146ed59d1cc5 

   AAD:                       8008315ebf2e6fe020e8f5eb 

   Encrypted RTP Payload:     39b63931862d59ae5ba209b696b61996 
                              96390929093139099619b686bebe19be 
                              ae25be59aa21aa25b609868696b6192d 
                              9629311931960919a629a61909be1986 
                              2986099659a631a621968609ae59b659 
                              da55da5d19be31d825b625ae21b65386 
                              599639be2dae39b659aaaa2db62d3986 
                              5939aa1986aa2da28631a653b62d0909 
                              962919a63125da092586a209aa592d86 
                              312dd848da258619b609d8a21951d009 

   Authentication Tag:        1eb0e7008c838b19c8fc 










 
 
Yoon, et al.          Expires December 15, 2009              [Page 11] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

A.3. SEED-GCM Test Vectors 

   Key:                       e91e5e75da65554a48181f3846349562 

   Rollover Counter:          00000000 

   Sequence Number:           315e 

   SSRC:                      20e8f5eb 

   Nonce:                     000020e8f5eb00000000315e 

   Payload:                   f57af5fd4ae19562976ec57a5a7ad55a 
                              5af5c5e5c5fdf5c55ad57a4a7272d572 
                              62e9729566ed66e97ac54a4a5a7ad5e1  
                              5ae5fdd5fd5ac5d56ae56ad5c572d54a  
                              e54ac55a956afd6aed5a4ac562957a95 
                              16991691d572fd14e97ae962ed7a9f4a   
                              955af572e162f57a956666e17ae1f54a    
                              95f566d54a66e16e4afd6a9f7ae1c5c5   
                              5ae5d56afde916c5e94a6ec56695e14a     
                              fde1148416e94ad57ac5146ed59d1cc5 

   AAD:                       8008315ebf2e6fe020e8f5eb 

   Encrypted RTP Payload:     8a5363682c6b1bbf13c0b09cf747a551 
                              2543cb2f129b8bd0e92dfadf735cda8f 
                              88c4bbf90288f5e58d20c4f1bb0d5844 
                              6ea009103ee57ba99cdeabaaa18d4a9a 
                              05ddb46e7e5290a5a2284fe50b1f6fe9 
                              ad3f1348c354181e85b24f1a552a1193 
                              cf0e13eed5ab95ae854fb4f5b0edb2d3 
                              ee5eb238c8f4bfb136b2eb6cd7876042 
                              0680ce1879100014f140a15e07e70133 
                              ed9cbb6d57b75d574acb0087eefbac99 

   Authentication Tag:        36cd9ae602be3ee2cd8d5d9d 










 
 
Yoon, et al.          Expires December 15, 2009              [Page 12] 

Internet-Draft                SEED-SRTP                  June 15, 2009 
    

Author's Addresses 

   Seokung Yoon 
   Korea Information Security Agency 
   IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 
   Email: seokung@kisa.or.kr 
    

   Joongman Kim 
   Korea Information Security Agency 
   IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 
   Email: seopo@kisa.or.kr 
    

   Haeryong Park 
   Korea Information Security Agency 
   IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 
   Email: hrpark@kisa.or.kr 
    

   Hyuncheol Jeong 
   Korea Information Security Agency 
   IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 
   Email: hcjung@kisa.or.kr 
    

   Yoojae Won 
   Korea Information Security Agency 
   IT Venture Tower, Jungdaero 135, Songpa-gu, Seoul, Korea 138-950 
   Email: yjwon@kisa.or.kr 

















 
 
Yoon, et al.          Expires December 15, 2009              [Page 13] 

