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.