Steiner zaproponował protokół STW dla protokołów wymiany kluczy P2P, a mianowicie IKA.1 [4]. Protokół z n uczestnikami działa w następujący sposób: niech G będzie grupą cykliczną o kolejności q, a α będzie generatorem G. Uczestnicy protokołu są ułożeni w formie pierścienia logicznego. N-ty członek grupy pełni wyznaczoną rolę kontrolera grupy. Protokół składa się z n – 1 rund wiadomości unicast, gromadzących informacje od członków grupy, po których następuje jedna runda wiadomości rozgłoszeniowych.
- Runda i (1 ≤ i <n)
Ui → U{i + 1}: {α(r(1)…. R (j)) / (r (j)} | j ∈ [1, i], αr 1)… R(i)}
- Round n
Un → All Ui: {α(r(1)… R(j))/(r(j)} | i ∈ [1, n)}
- Po otrzymaniu powyższego, każdy Ui oblicza: Kn = α ((r (1)… R(j))/(r(j)})/r(i) =
α(r (1)… r (n))
Klucz grupy jest obliczany jako αr(1). . . r(n), gdzie każdy r(i) jest krótkoterminowym wkładem każdego członka grupy. α jest generatorem cyklicznej grupy pierwszego rzędu q i r(i) Є Zq. Penetrator może obliczyć klucz sesji, jeśli posiada przynajmniej jeden z krótkoterminowych sekretów. Dlatego też, jeśli intruz zna krótkoterminowy sekret użytkownika z prawdopodobieństwem p, a jeśli jest n użytkowników, to prawdopodobieństwo, z jakim będzie mógł poznać klucz sesji, wynosi 1− (1 – p)n. Dlatego DPFS wynosi 1− (1 – p)n. Można zauważyć, że tylko jeden z tajnych kluczy uczestnika musi zostać naruszony, aby utracić poufność klucza sesyjnego.