Documentation
¶
Index ¶
- func SolveGaussian(eqM [][]*big.Rat, printTriangularForm bool) (res [][]*big.Rat, err error)
- type ElgamalDeform
- func (ed *ElgamalDeform) Decrypt1(c1 *big.Int) (*big.Int, error)
- func (ed *ElgamalDeform) Decrypt2(c2 *big.Int, c1sk *big.Int) (*big.Int, error)
- func (ed *ElgamalDeform) Encrypt(m *big.Int) (*big.Int, *big.Int, error)
- func (ed *ElgamalDeform) Init(p *big.Int, g *big.Int) (*big.Int, *big.Int, error)
- func (ed *ElgamalDeform) SetPk(pk *big.Int) (*big.Int, error)
- type Polynomial
- func (p *Polynomial) Add(g *Polynomial) (*Polynomial, error)
- func (p *Polynomial) CalculatePolynomial(x *big.Int) (*big.Int, error)
- func (p *Polynomial) ChangeShare(c1s []*big.Int) ([]*big.Int, error)
- func (p *Polynomial) DecryptPolynomial(c1sk, c2s []*big.Int) (*Polynomial, error)
- func (p *Polynomial) EncryptPolynomial() error
- func (p *Polynomial) Mul(g *Polynomial) (*Polynomial, error)
- func (p *Polynomial) RandomPolynomial() (*Polynomial, error)
- func (p *Polynomial) SetPolynomial(attrs []*big.Int) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ElgamalDeform ¶
type ElgamalDeform struct { //阶 P *big.Int //生成元 G *big.Int //自己的私钥 SK *big.Int //自己的公钥 PK *big.Int //密钥交换得到的公钥 H *big.Int }
type Polynomial ¶
type Polynomial struct { IsEncrypted bool //k阶 Length int64 //加密前 MCoefficients []*big.Int //加密后 ECoefficients1 []*big.Int ECoefficients2 []*big.Int Ed *ElgamalDeform }
多项式
func CalGcdPolynomial ¶
func CalGcdPolynomial(fa, fb *Polynomial) (*Polynomial, error)
协议第三步和第四步,选取多项式r1r2,计算r1fa+r2fb
func (*Polynomial) CalculatePolynomial ¶
多项式求值
func (*Polynomial) ChangeShare ¶
协议第五步,交换各自对整合多项式的解密分享c1sk
func (*Polynomial) DecryptPolynomial ¶
func (p *Polynomial) DecryptPolynomial(c1sk, c2s []*big.Int) (*Polynomial, error)
协议第六步,最后解密出明文多项式
func (*Polynomial) EncryptPolynomial ¶
func (p *Polynomial) EncryptPolynomial() error
多项式加密系数,加密类中的系数,为协议第二步,加密多项式
func (*Polynomial) Mul ¶
func (p *Polynomial) Mul(g *Polynomial) (*Polynomial, error)
多项式乘法,f是加密后的,g是未加密的
func (*Polynomial) RandomPolynomial ¶
func (p *Polynomial) RandomPolynomial() (*Polynomial, error)
随机未加密多项式
func (*Polynomial) SetPolynomial ¶
func (p *Polynomial) SetPolynomial(attrs []*big.Int) error
多项式生成,使用高斯消元法得到系数
Click to show internal directories.
Click to hide internal directories.