Это называется rot13 encoding:
d = {}
for c in (65, 97):
for i in range(26):
d[chr(i+c)] = chr((i+13) % 26 + c)
Создает таблицу переводов, как в верхнем регистре (для чего это 65), так и в нижнем регистре (это то, что 97 для).
print "".join([d.get(c, c) for c in s])
Распечатывает переведенную строку.