Я провел серию экспериментов с переменными.
Из них следует, что объект такого длинного числа занимет в памяти 152 байта.
Однако, ctypes.string_at(id(pub_key), 152) - на вид ничего похожего не выдает.
А вот строку например, видно:
ctypes.string_at(id('mama mila ramu'), 100)
и int видно:
a = 1
print ctypes.string_at(id(a),12)
print struct.pack('i', a)
Из чего следует, что всетки long хранится там в каком-то ином виде.
А вот в каком именно…. видимо надо уже исходники питона подымать надо.