SRTP and SRTCP use
Advanced Encryption Standard (AES) as the default
cipher. There are two
cipher modes defined which allow the AES
block cipher to be used as a
stream cipher: ; Segmented Integer Counter Mode: A typical
counter mode, which allows random access to any blocks, which is essential for RTP traffic running over unreliable network with possible loss of packets. In the general case, almost any function can be used in the role of
counter, assuming that this function does not repeat for a large number of iterations. But the standard for encryption of RTP data is just a usual integer incremental counter. AES running in this mode is the default encryption algorithm, with a default
key size of 128 bits and a default session
salt key length of 112 bits. ; f8-mode: A variation of
output feedback mode, enhanced to be seekable and with an altered initialization function. The default values of the encryption key and salt key are the same as for AES in counter mode. (AES running in this mode has been chosen to be used in
3G mobile networks.) Besides the AES cipher, SRTP allows the ability to disable encryption outright, using the so-called
null encryption cipher, which can be assumed as an alternate supported cipher. In fact, the null encryption cipher does not perform any encryption; the encryption algorithm functions as the
identity function, and copies the input stream to the output stream without any changes. It is mandatory for this cipher mode to be implemented in any SRTP-compatible system. As such, it can be used when the confidentiality guarantees ensured by SRTP are not required, while other SRTP features, such as authentication and message integrity, may be used. Though SRTP can easily accommodate new encryption algorithms, the SRTP standard states that new encryption algorithms may only be introduced through publication of a new companion
standard track RFC which must clearly define the new algorithm. == Authentication, integrity and replay protection ==