Общий вход: $ p$ и $ q$ - простые числа, $ a,b,c \in G_q$.

1) Первый шаг доказывающего. $ P$ выбирает наугад $ \mu, \rho, \sigma, \sigma_1, \sigma_2 \in Z_q$ и вычисляет $ m=g^\mu h^\sigma$, $ m_1=g^\rho h^{\sigma_1}$, $ m_2=g^\rho h^{\sigma_2}$. $ P$ отправляет $ m, m_1 ,m_2$ проверяющему.

2) Первый шаг проверяющего. $ V$ выбирает наугад $ r\in \{0,1\}$ и отправляет его доказывающему.

3) Второй шаг доказывающего. $ P$ вычисляет $ \eta=\mu+\beta r$, $ \kappa=\rho+\alpha r$, $ \varepsilon=\sigma+\beta_1 r$, $ \varepsilon_1 =\sigma_1 +\alpha_1 r$, $ \varepsilon_2 =\sigma_2 +(\gamma_1-\alpha\beta_1) r$ и отправляет их проверяющему.

4) Второй шаг проверяющего. $ V$ проверяет выполнение условий $ g^\eta h^\varepsilon=b^r m$, $ g^\kappa h^{\varepsilon_1}=a^r m_1$, $ b^\kappa h^\varepsilon_2=c^r m_2$. Если хотя бы одно не выполняется, $ V$ останавливает проверку и отвергает доказательство.

5) $ P$ и $ V$ повторяют шаги 1) - 4) $ n$ раз.

Проверяющий принимает доказательство, если он завершит $ n$ итераций шагов 1) - 4). В противном случае, отвергает.