session_09_vpn__ipsec__and_tls_101908

Vpn ipsec ike v2 tls m mogollon 0108 46 the phash

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: tifying label and produces an output of arbitrary length. In the key_block formula above, the identifying label is “key expansion,” which is the ASCII string of “key expansion”. In order to make the PRF as secure as possible, it uses two hash algorithms in a way that should guarantee its security if at least one algorithm remains secure. 45 VPN, IPSec and TLS TLS – Pseudo Random Function Secret Label (Password) S1 S2 PRF(secret, label, seed) = P_MD5 (S1, label ║ seed) XOR P_SHA-1 (S2, label ║ seed) The PRF is created by splitting the secret key into two and using one half to generate data with P_MD5 and the other half to generate data with P_SHA-1. Then, the outputs of these two expansion functions together are XORed. • The label is an ASCII string. For example, the label "plano tx" would be processed by hashing the following bytes (hex): 70 6C 61 6E 6F 20 74 78. • The P_Hash data expansion function is used to create a pseudo random function (PRF). VPN IPsec IKE v2 TLS M. Mogollon – 01/08 - 46 • The P_hash data expansion function is used to create a pseudorandom function (PRF). TLS's PRF is created by splitting the secret in half and using one half to generate data with P_MD5 and the other half to generate data with P_SHA-1. Then, the outputs of these two expansion functions are XORed together. 46 VPN, IPSec and TLS TLS – P_hash (secret, seed) Seed Secret ║ HMAC A1 ║ HMAC Secret A2 Secret ║ HMAC A3 Secret HMAC(secret, A(1) ║ seed) HMAC(secret, A(2) ║ seed) HMAC HMAC(secret, A(3) ║ seed) P_hash(secret, seed) = HMAC_hash (secret, A(1) ║ seed) ║ HMAC_hash (secret, A(2) ║ seed) ║ HMAC_hash (secret, A(3) ║ seed) ║ ... VPN IPsec IKE v2 TLS M. Mogollon – 01/08 - 47 • The data expansion function, P_hash(secret, data) uses a single hash function to expand a secret and seed into an arbitrary quantity of output. The P_hash(secret, data) is calculated as follows: • P_hash(secret, seed) = HMAC_hash(secret, A(1) ║ seed) ║ HMAC_hash...
View Full Document

This note was uploaded on 05/26/2010 for the course TECH 6350 taught by Professor Mogollon during the Spring '10 term at University of Arkansas for Medical Sciences.

Ask a homework question - tutors are online