ESP中用於加密數據報的密碼算法無壹例外都使用對稱密鑰系統。公鑰密碼算法涉及大整數的模冪運算,計算量非常大,大整數的規模超過300位小數。對稱密碼算法主要使用初級運算(XOR、按位AND、位循環等。),而且無論是用軟件還是硬件實現都非常有效。因此,與公鑰密碼系統相比,對稱密鑰系統的加密和解密吞吐量要大得多。
ESP使用消息認證碼(MAC)提供認證服務。加密和身份驗證算法的選擇因IPSec的實現而異。但是,為了確保互操作性,ESP規範RFC2406指定了每個IPSec實現要強制執行的算法。在編寫本規範時,強制加密算法是DES CBC模式和空加密算法,而身份驗證算法是HMAC-MD5、HMAC-SHA-1和空身份驗證算法。空加密和空身份驗證算法分別是非加密和非身份驗證選項。null算法選項是必需的,因為ESP加密和身份驗證服務是可選的。但值得註意的是,空加密和空身份驗證算法不能同時使用。換句話說,如果采用ESP,將使用加密、身份驗證或兩者都使用。DES是壹種弱加密算法,在VPN解決方案中很少使用。希望在修訂RFC2406時,可以使用AES代替DES作為強制算法。其他常用的算法有CAST-128和IDEA。
ESP可以單獨使用或嵌套使用,也可以與AH結合使用。
ESP數據包格式ESP數據包由四個固定長度字段和三個可變長度字段組成。該協議的數據包格式如圖所示。該域的描述如下:
安全參數指數(SPI)的字段類似於AH的字段。序列號:與AH的情況類似,有效載荷數據:這是壹個可變長度的字段。如果使用機密性服務,它包含實際的有效負載數據(即數據報加密部分的密文)。無論所涉及的SA是否需要保密服務,該域都是必需的。如果所采用的加密算法需要初始化向量(IV),則它將在有效載荷域中傳輸,並且算法的規範應指示IV的長度及其在有效載荷數據域中的位置。IV在壹定的分組密碼模式下使用,以確保前壹部分相似的明文(如IP數據頭)生成不同的密文。有效負載數據字段的長度以位為單位,並且必須是8的整數倍。填充:該字段包含填充位(如果有),加密算法使用該字段或使用該字段將填充長度字段與4字節字中的第三個字節對齊。該字段的長度為0到255字節。填充長度:填充長度是8位字段,指示填充字段中填充位的長度。該字段的有效值為0到255之間的整數。下壹個報頭:這個8位字段指示有效載荷中封裝的數據類型。它可能是IPv6擴展報頭或傳輸層協議。例如,值6表示TCP數據封裝在有效負載中。認證數據:ICV存儲在這個可變長度字段中,它是為除認證數據字段之外的ESP數據包計算的。該域的實際長度取決於所使用的身份驗證算法;例如,如果使用HMAC-MD5,則身份驗證數據字段為128位;如果使用HMAC-SHA-1,則為160位。身份驗證數據字段是可選的,僅當指定的服務協議需要ESP身份驗證服務時才會包含該字段。