SRTP

SRTP: Secure Real-time Transport Protocol

SRTP is a security profile for RTP that adds confidentiality, message authentication, and replay protection to that protocol. SRTP is ideal for protecting Voice over IP traffic because it has no effect on voice quality and payload overhead is only minimally affected.

SRTP Packet Structure

Secure variants include support for:
Authentication Algorithm Types: HMAC-SHA1 and MD5

Key Definition Schemes: PSK, MKI, and FT

Features List

  • Encryption Algorithm Types: AES – CM, AES – F8
  • Supports multiple SRTP and SRCTP streams with same or different peers simultaneously
  • Master key used to derive session keysza
  • SRTP (Secure RTP ) conform to IETF RFC 3711
  • eXpressDSP™ Algorithm Interoperability Standard  (xDIAS) Compliant

TERMINOLOGY

RTP – Real-time Transport Protocol

SRTP – Secure Real-time Transport Protocol

AES – Advanced Encryption Standard

AES CM – Advanced Encryption Standard counter mode

AES-f8 – AES in f8-mode, Universal Mobile Telecommunications System (UMTS) 3G mobile networks
use AES-f8.

Authentication Algorithm HMAC – Hashed message authentication code is characteristically used to authenticate that a message has not been changed during transit. Both parties to the message must have a shared secret key. The sender combines the key and the message into a string, produces a digest of the string by using an algorithm such as SHA-1 or MD5, and transmits the message and the digest. The receiver joins the shared key with the message, applies the appropriate algorithm, and runs a comparison between the digest thus obtained with that transmitted by the sender. If the digests are precisely the same, the message has not been tampered with.

Authentication Algorithm MD5 – Message Digest 5 is a widely used cryptographic hash function with a 128-bit hash value. As an Internet standard (RFC 1321), MD5 has been employed in a wide variety of security applications, and is also commonly used to check the integrity of files.

MKI – Master key identifier

Availability

Platforms
Arm ® Devices – Cortex-A8 / A9 / A15 || Legacy ARM9E/ARM11
Texas Instruments – TI TMS320C6000 C64x/C64x+/C66x, C674x, C62/C67 | TMS320C5000 C55x, C54x

ADT SRTP is available on the above Platforms: Other configurations are available upon request.

Specifications

NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.

↓  Click on links below to view specification tables. 

Note: All CPU usage given in MIPS (also known as MCPS or MHz)

ARM Cortex-A8/A9/A15/A17

CPU UTILIZATION
Payload SizeFrame Rate 102030
(Bytes/10 msec)(msec)AvgAvgAvg
10Encrypt0.61.11.2
Decrypt0.91.11.1
Encrypt + Auth131.81.8
Decrypt + Auth1.31.81.8
80Encrypt2.65.17.6
Decrypt2.65.27.6
Encrypt + Auth3.66.18.8
Decrypt + Auth3.56.18.9

     «    mobile scroll  left and right   »

MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
Memory TypeUsageAlignment
Shared Program45264N/A
Shared Data2240N/A
Per-Thread Scratch320N/A
Per-Channel Context Send8408 byte
Per-Channel Context Receive8648 byte

     «    mobile scroll  left and right   »

SRTP ARM9E / ARM11

CPU UTILIZATION
Payload SizeFrame Rate 102030
(Bytes/10 msec)(msec)AvgAvgAvg
10Encrypt0.61.21.1
Decrypt0.71.11.1
Encrypt + Auth1.21.71.7
Decrypt + Auth1.31.61.7
80Encrypt2.557.4
Decrypt2.757.4
Encrypt + Auth3.35.88.5
Decrypt + Auth3.35.88.5

     «    mobile scroll  left and right   »

MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
Memory TypeUsageAlignment
Shared Program43292N/A
Shared Data2192N/A
Per-Thread Scratch320N/A
Per-Channel Context Send8408 byte
Per-Channel Context Receive8648 byte

     «    mobile scroll  left and right   »

TI TMS320C6000

Note: All CPU usage given in MIPS (also known as MCPS or MHz)

SRTP C64x+ / C66x / C674x

CPU UTILIZATION
Payload Size (Bytes/10 msec)Frame Rate  (msec)10 Avg10 Peak20 Avg20 Peak30 Avg30 Peak
10Encrypt0.311.750.290.990.190.67
Decrypt .32 1.750.2910.20.67
Encrypt + Auth .972.410.611.320.420.89
Decrypt + Auth0.982.40.621.330.420.89
80Encrypt1.362.781.342.051.331.81
Decrypt1.382.81.352.061.341.81
Encrypt + Auth2.163.581.812.521.732.2
Decrypt + Auth2.183.591.822.521.742.21

     «    mobile scroll  left and right   »

MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
Memory TypeUsageAlignment
Shared Program32,00N/A
Shared Data870N/A
Per-Thread Scratch320N/A
Per-Channel Context Send8408 byte
Per-Channel Context Receive8648 byte

     «    mobile scroll  left and right   »

SRTP C64x

CPU UTILIZATION
Payload Size (Bytes/10 msec)Frame Rate  (msec)10 Avg10 Peak20 Avg20 Peak30 Avg30 Peak
10Encrypt0.331.820.3.1.040.20.7
Decrypt .34 1.800.31.030.210.69
Encrypt + Auth .992.480.631.370.420.92
Decrypt + Auth12.460.641.360.430.91
80Encrypt1.382.871.352.091.341.83
Decrypt1.42.851.362.11.341.83
Encrypt + Auth2.183.661.822.561.742.23
Decrypt + Auth2.23.651.832.551.752.23

     «    mobile scroll  left and right   »

MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
Memory TypeUsageAlignment
Shared Program38200N/A
Shared Data870N/A
Per-Thread Scratch320N/A
Per-Channel Context Send8408 byte
Per-Channel Context Receive8648 byte

TI TMS320C5000

SRTP C55x

CPU UTILIZATION

Payload Size (Bytes/10 msec)Frame Rate  (msec)10 Avg10 Peak20 Avg20 Peak30 Avg30 Peak
10Encrypt2.9815.572.949.221.966.15
Decrypt315.592.959.231.976.15
Encrypt + Auth4.1716.763.549.812.366.54
Decrypt + Auth4.216.623.559.832.376.55
80Encrypt14.5827.2414.5420.8114.5318.66
Decrypt14.627.0914.5520.8214.5418.73
Encrypt + Auth16.0428.5115.421.6615.2719.45
Decrypt + Auth16.0728.7115.421.6715.2819.46

     «    mobile scroll  left and right   »

MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
Memory TypeUsageAlignment
Shared Program16677N/A
Shared Data1696N/A
Per-Thread Scratch320N/A
Per-Channel Context Send13008 byte
Per-Channel Context Receive13248 byte

     «    mobile scroll  left and right   »

Description

SRTP, & SRTCP are not separate protocols but are profiles of RTP. When security is being used, the packet payloads are encrypted.

RTP is specifically designed to handle the play-out requirements of real-time media streams through the use of time stamps and jitter buffering.  Due to the real-time nature of the data streams, where requesting retransmissions is too costly in time, RTP is typically used in conjunction with UDP to provide low-overhead network communications between two end-points.
RFC 3550 identifies two components to the real-time transport: data transport and control. Data transport is handled by RTP while control is handled by Real Time Control Protocol (RTCP). RTCP, which can be used to help scale the network traffic to the available bandwidth, is optional.

An RTP packet identifies the media payload type (format) and its source. It also includes time stamps and sequence numbers that are used by the play-out side to handle lost or out of sequence packets. RTP provides for the use of multiple streams as in the case of a system that transmits both voice and video. The payload in an RTP payload contains the encoded voice or video information. The use of dynamically defined payload types  allows RTP packets to carry virtually any type of media format.

* Adaptive Digital currently does not support RTCP.

Translate »