Na troca de chaves Diffie-Hellman

O livro que estou lendo explica o algoritmo da seguinte maneira:

2 pessoas pensam em 2 números "neg" públicos que ambos conhecem.2 pessoas pensam em 2 números "xe" y "privados" que mantêm em segredo.

A troca acontece como ilustrado

Eu coloquei o seguinte código python para ver como isso funciona e .... isso não acontece. Por favor, ajude-me a entender o que estou perdendo:

 #!/usr/bin/python

 n=22 # publicly known 
 g=42 # publicly known

 x=13 # only Alice knows this 
 y=53 # only Bob knows this

 aliceSends = (g**x)%n 
 bobComputes = aliceSends**y 
 bobSends = (g**y)%n
 aliceComputes = bobSends**x


 print "Alice sends    ", aliceSends 
 print "Bob computes   ", bobComputes 
 print "Bob sends      ", bobSends 
 print "Alice computes ", aliceComputes

 print "In theory both should have ", (g**(x*y))%n

 ---

 Alice sends     14  
 Bob computes    5556302616191343498765890791686005349041729624255239232159744 
 Bob sends       14 
 Alice computes  793714773254144 

 In theory both should have  16

questionAnswers(3)

yourAnswerToTheQuestion