func DeserializeCypher(data []byte) (*paillier.Cypher, error) {
	serializable := new(SerializableCypher)
	if err := bson.Unmarshal(data, serializable); err != nil {
		return nil, err
	}
	return toOriginalCypher(serializable), nil
}
Deserializes BSON to Cypher
package bson
import (
	"errors"
	"fmt"
	"math/big"
	"github.com/keep-network/paillier"
	"gopkg.in/mgo.v2/bson"
)
type SerializableCypher paillier.Cypher
func SerializeCypher(cypher *paillier.Cypher) ([]byte, error) {
	return bson.Marshal(toSerializableCypher(cypher))
}