Alicja Bob Prywatne Publiczne Opis Prywatne Publiczne Opis m0, m1 Wiadomości, które mają być wysłane. d N, e Wygeneruj publiczny klucz RSA (N, e) i wyślij go do Boba. N, e Odbierz publiczny klucz RSA. x0, x1 Wygeneruj dwie losowe wartości. x0, x1 Odbierz losowe wiadomości. k, b Wybierz i wygeneruj losowe k. v v = (xb + ke) mod N Zaszyfruj k, dodaj je do xb (w celu uniemożliwienia rozczytania k) i wyślij do Alicji. k0 = (v – x0)d mod N, k1 = (v – x1)d mod N Jedno spośród k0 i k1 równa się k, ale Alicja nie jest w stanie stwierdzić, która to wartość. m0' = m0 + k0, m1' = m1 + k1 Wyślij dwie zmodyfikowane wiadomości do Boba. m0', m1' Odbierz obydwie zmodyfikowane wiadomości. mb = mb' -k Deszyfruj mb' (Bob wie, które spośród x0 i x1 wybrał).

Alicja ma dwie wiadomości m0, m1 i chce wysłać dokładnie jedną Bobowi, ale nie chce wiedzieć, którą z nich Bob otrzyma. Alicja generuje kod publiczny RSA (N, e) oraz kod prywatny (N, d). Generuje również dwie losowe liczby x0, x1 i wysyła je do Boba wraz z kluczem publicznym. Bob decyduje, czy b będzie równe 0 czy 1 i wybiera odpowiednie xb. Bob generuje losowe k i uniemożliwia odczytanie, którą spośród wartości x0 i x1 wybrał poprzez stworzenie wartości v = (xb + ke) mod N, którą wysyła Alicji. Alicja nie wie, którą wartość spośród x0 i x1 Bob wybrał.