xchain

package
v0.0.0-...-ebe581b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2024 License: Apache-2.0 Imports: 14 Imported by: 10

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type XchainCryptoClient

type XchainCryptoClient struct {
}

func (*XchainCryptoClient) CalculateSigmaI

func (xcc *XchainCryptoClient) CalculateSigmaI(content, index, randomV, randomU, privkey []byte, round int64) ([]byte, error)

CalculateSigmaI 为指定数据块生成证明辅助信息 - content 该数据块的内容 - index 数据块对于原始数据的的索引 - randomV 小于椭圆曲线阶order的随机数 - randomU 小于椭圆曲线阶order的随机数 - privkey 副本保持证明私钥

func (*XchainCryptoClient) GenPairingChallenge

func (xcc *XchainCryptoClient) GenPairingChallenge(indexList []int, round int64, privkey []byte) ([][]byte, [][]byte, []byte, error)

GenPairingChallenge 随机生成副本保持证明挑战信息 - indexList 为要验证的索引列表 - round 为挑战轮数 - privkey 为副本保持证明私钥

func (*XchainCryptoClient) GenPairingKeyPair

func (xcc *XchainCryptoClient) GenPairingKeyPair() ([]byte, []byte, error)

GenPairingKeyPair 随机生成基于双线性映射副本保持证明的公私钥对

func (*XchainCryptoClient) GenerateEntropy

func (xcc *XchainCryptoClient) GenerateEntropy(bitSize int) ([]byte, error)

GenerateEntropy 产生指定比特长度的随机熵

func (*XchainCryptoClient) GeneratePaillierPrivateKey

func (xcc *XchainCryptoClient) GeneratePaillierPrivateKey(primeLength int) (*paillier.PrivateKey, error)

GeneratePaillierPrivateKey 生成指定比特长度的paillier同态公私钥对

func (*XchainCryptoClient) GetMerkleRoot

func (xcc *XchainCryptoClient) GetMerkleRoot(objects [][]byte) []byte

GetMerkleRoot 计算梅克尔树根

func (*XchainCryptoClient) HashUsingSha256

func (xcc *XchainCryptoClient) HashUsingSha256(data []byte) []byte

HashUsingSha256 使用SHA256做单次哈希运算

func (*XchainCryptoClient) LinRegEvaluateModelSuperParamByCV

func (xcc *XchainCryptoClient) LinRegEvaluateModelSuperParamByCV(sourceDataSet *ml_common.DataSet, targetFeatureName string, alpha, amplitude float64, regMode int, regParam float64, cvMode int, cvParam int) float64

LinRegEvaluateModelSuperParamByCV 通过交叉验证计算指定正则参数对应的模型均方根误差 - sourceDataSet 原始样本数据 - targetFeatureName 目标特征名称 - alpha 训练学习率 - amplitude 训练目标值 - regMode 正则模式 - regParam 正则参数 - cvMode 交叉验证模式 - cvParam 交叉验证参数

func (*XchainCryptoClient) LinRegImportFeatures

func (xcc *XchainCryptoClient) LinRegImportFeatures(fileRows [][]string) ([]*ml_common.DataFeature, error)

LinRegImportFeatures 从文件导入用于多元线性回归的数据特征

func (*XchainCryptoClient) LinRegPreProcessDataSet

func (xcc *XchainCryptoClient) LinRegPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet, targetFeatureName string) *ml_common.TrainDataSet

LinRegPreProcessDataSet 预处理样本数据

func (*XchainCryptoClient) LinRegStandardizeDataSet

func (xcc *XchainCryptoClient) LinRegStandardizeDataSet(sourceDataSet *ml_common.DataSet) *ml_common.StandardizedDataSet

--- 多元线性回归 start --- LinRegStandardizeDataSet 标准化样本数据,每个特征对应的样本均值变为0,标准差变为1

func (*XchainCryptoClient) LinRegTrainModel

func (xcc *XchainCryptoClient) LinRegTrainModel(trainDataSet *ml_common.TrainDataSet, alpha float64, amplitude float64, regMode int, regParam float64) *ml_common.Model

LinRegTrainModel 多元线性回归模型训练 - trainDataSet 预处理过的训练数据 - alpha 训练学习率 - amplitude 训练目标值 - regMode 正则模式 - regParam 正则参数

func (*XchainCryptoClient) LinRegVLCalCost

func (xcc *XchainCryptoClient) LinRegVLCalCost(costMap map[int]float64) float64

LinRegVLCalCost 根据还原的损失信息计算损失值

func (*XchainCryptoClient) LinRegVLCalEncGradient

func (xcc *XchainCryptoClient) LinRegVLCalEncGradient(localPart *linear_vertical.RawLocalGradientPart, tagPart *linear_vertical.EncLocalGradientPart, trainSet [][]float64, featureIndex, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalGradient, error)

LinRegVLCalEncGradient 非标签方计算加密的梯度,用标签方的同态公钥加密 - localPart 非标签方本地的明文梯度数据 - tagPart 标签方的加密梯度数据 - trainSet 非标签方训练样本集合 - featureIndex 指定特征的索引 - accuracy 同态加解密精度 - publicKey 标签方同态公钥

func (*XchainCryptoClient) LinRegVLCalEncGradientTagPart

func (xcc *XchainCryptoClient) LinRegVLCalEncGradientTagPart(localPart *linear_vertical.RawLocalGradientPart, otherPart *linear_vertical.EncLocalGradientPart, trainSet [][]float64, featureIndex, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalGradient, error)

LinRegVLCalEncGradientTagPart 标签方计算加密的梯度,用非标签方的同态公钥加密 - localPart 标签方本地的明文梯度数据 - otherPart 非标签方的加密梯度数据 - trainSet 标签方训练样本集合 - featureIndex 指定特征的索引 - accuracy 同态加解密精度 - publicKey 非标签方同态公钥

func (*XchainCryptoClient) LinRegVLCalGradient

func (xcc *XchainCryptoClient) LinRegVLCalGradient(gradMap map[int]float64) float64

LinRegVLCalGradient 根据还原的明文梯度数据计算梯度值

func (*XchainCryptoClient) LinRegVLCalGradientWithReg

func (xcc *XchainCryptoClient) LinRegVLCalGradientWithReg(thetas []float64, gradMap map[int]float64, featureIndex int, regMode int, regParam float64) float64

LinRegVLCalGradient 根据还原的明文梯度数据计算梯度值

func (*XchainCryptoClient) LinRegVLCalLocalGradAndCost

func (xcc *XchainCryptoClient) LinRegVLCalLocalGradAndCost(thetas []float64, trainSet [][]float64, accuracy int, regMode int, regParam float64, publicKey *paillier.PublicKey) (*linear_vertical.LocalGradientPart, error)

LinRegVLCalLocalGradAndCost 非标签方计算本地的梯度和损失数据 - thetas 上一轮训练得到的模型参数 - trainSet 预处理过的训练数据 - accuracy 同态加解密精度 - regMode 正则模式 - regParam 正则参数 - publicKey 非标签方同态公钥

func (*XchainCryptoClient) LinRegVLCalLocalGradAndCostTagPart

func (xcc *XchainCryptoClient) LinRegVLCalLocalGradAndCostTagPart(thetas []float64, trainSet [][]float64, accuracy int, regMode int, regParam float64, publicKey *paillier.PublicKey) (*linear_vertical.LocalGradientPart, error)

LinRegVLCalLocalGradAndCostTagPart 标签方计算本地的梯度和损失数据 - thetas 上一轮训练得到的模型参数 - trainSet 预处理过的训练数据 - accuracy 同态加解密精度 - regMode 正则模式 - regParam 正则参数 - publicKey 标签方同态公钥

func (*XchainCryptoClient) LinRegVLDeStandardizeOutput

func (xcc *XchainCryptoClient) LinRegVLDeStandardizeOutput(ybar, sigma, output float64) float64

LinRegVLDeStandardizeOutput 逆标准化得到最终预测结果 - ybar 目标特征对应的样本均值 - sigma 目标特征对应的样本标准差 - output 标准化样本的预测结值

func (*XchainCryptoClient) LinRegVLDecryptCost

func (xcc *XchainCryptoClient) LinRegVLDecryptCost(encCostMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int

LinRegVLDecryptCost 为其他方解密带噪音的损失信息 - encCostMap 加密的损失信息 - privateKey 己方同态私钥

func (*XchainCryptoClient) LinRegVLDecryptGradient

func (xcc *XchainCryptoClient) LinRegVLDecryptGradient(encGradMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int

LinRegVLDecryptGradient 为其他方解密带噪音的梯度信息 - encGradMap 加密的梯度信息 - privateKey 己方同态私钥

func (*XchainCryptoClient) LinRegVLEvaluateEncCost

func (xcc *XchainCryptoClient) LinRegVLEvaluateEncCost(localPart *linear_vertical.RawLocalGradientPart, tagPart *linear_vertical.EncLocalGradientPart, trainSet [][]float64, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalCost, error)

LinRegVLEvaluateEncCost 非标签方计算加密的损失,用其他参与方的同态公钥加密 - localPart 本地的明文损失数据 - tagPart 标签方的加密损失数据 - trainSet 非标签方训练样本集合 - publicKey 标签方同态公钥

func (*XchainCryptoClient) LinRegVLEvaluateEncCostTagPart

func (xcc *XchainCryptoClient) LinRegVLEvaluateEncCostTagPart(localPart *linear_vertical.RawLocalGradientPart, otherPart *linear_vertical.EncLocalGradientPart, trainSet [][]float64, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalCost, error)

LinRegVLEvaluateEncCostTagPart 标签方计算加密的损失,用其他参与方的同态公钥加密 - localPart 本地的明文损失数据 - otherPart 非标签方的加密损失数据 - trainSet 标签方训练样本集合 - publicKey 非标签方同态公钥

func (*XchainCryptoClient) LinRegVLPreProcessDataSet

func (xcc *XchainCryptoClient) LinRegVLPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet) *ml_common.TrainDataSet

LinRegVLPreProcessDataSet 非标签方预处理样本数据

func (*XchainCryptoClient) LinRegVLPreProcessDataSetTagPart

func (xcc *XchainCryptoClient) LinRegVLPreProcessDataSetTagPart(sourceDataSet *ml_common.StandardizedDataSet, targetFeatureName string) *ml_common.TrainDataSet

LinRegVLPreProcessDataSetTagPart 标签方预处理样本数据

func (*XchainCryptoClient) LinRegVLPredictLocalPart

func (xcc *XchainCryptoClient) LinRegVLPredictLocalPart(thetas, standardizedInput map[string]float64) float64

LinRegVLPredictLocalPart 非标签方计算本地预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据

func (*XchainCryptoClient) LinRegVLPredictLocalTagPart

func (xcc *XchainCryptoClient) LinRegVLPredictLocalTagPart(thetas, standardizedInput map[string]float64) float64

LinRegVLPredictLocalTagPart 标签方计算本地预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据

func (*XchainCryptoClient) LinRegVLRetrieveRealCost

func (xcc *XchainCryptoClient) LinRegVLRetrieveRealCost(decCostMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64

LinRegVLRetrieveRealCost 还原真实的损失 - decCostMap 解密的损失信息 - accuracy 同态加解密精度 - randomInt 损失的噪音值

func (*XchainCryptoClient) LinRegVLRetrieveRealGradient

func (xcc *XchainCryptoClient) LinRegVLRetrieveRealGradient(decGradMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64

LinRegVLRetrieveRealGradient 还原真实的梯度数据 - decGradMap 解密的梯度信息 - accuracy 同态加解密精度 - randomInt 己方梯度的噪音值

func (*XchainCryptoClient) LinRegVLStandardizeDataSet

func (xcc *XchainCryptoClient) LinRegVLStandardizeDataSet(sourceDataSet *ml_common.DataSet) *ml_common.StandardizedDataSet

LinRegVLStandardizeDataSet 标准化样本数据,每个特征对应的样本均值变为0,标准差变为1

func (*XchainCryptoClient) LinRegVLStandardizeLocalInput

func (xcc *XchainCryptoClient) LinRegVLStandardizeLocalInput(xbars, sigmas, input map[string]float64) map[string]float64

LinRegVLStandardizeLocalInput 标准化样本数据 - xbars 特征对应的均值map - sigmas 特征对应的方差map - input 特征对应的样本值

func (*XchainCryptoClient) LogRegImportFeatures

func (xcc *XchainCryptoClient) LogRegImportFeatures(fileRows [][]string, label, labelName string) ([]*ml_common.DataFeature, error)

LogRegImportFeatures 从文件导入用于多元逻辑回归的数据特征 - fileRows 样本数据 - label 目标特征 - labelName 目标训练值

func (*XchainCryptoClient) LogRegPreProcessDataSet

func (xcc *XchainCryptoClient) LogRegPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet, labelName string) *ml_common.TrainDataSet

LogRegPreProcessDataSet 预处理样本数据

func (*XchainCryptoClient) LogRegPredictByLocalInput

func (xcc *XchainCryptoClient) LogRegPredictByLocalInput(thetas, standardizedInput map[string]float64) float64

LogRegPredictByLocalInput 计算预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据

func (*XchainCryptoClient) LogRegStandardizeDataSet

func (xcc *XchainCryptoClient) LogRegStandardizeDataSet(sourceDataSet *ml_common.DataSet, labelName string) *ml_common.StandardizedDataSet

--- 多元逻辑回归 start --- LogRegStandardizeDataSet 标准化样本数据,除目标特征,其余特征对应的样本数值均值变为0,标准差变为1

func (*XchainCryptoClient) LogRegStandardizeLocalInput

func (xcc *XchainCryptoClient) LogRegStandardizeLocalInput(xbars, sigmas, input map[string]float64) map[string]float64

LogRegStandardizeLocalInput 标准化样本数据 - xbars 特征对应的均值map - sigmas 特征对应的方差map - input 特征对应的样本值

func (*XchainCryptoClient) LogRegTrainModel

func (xcc *XchainCryptoClient) LogRegTrainModel(trainDataSet *ml_common.TrainDataSet, alpha float64, amplitude float64, regMode int, regParam float64) *ml_common.Model

LogRegTrainModel 多元逻辑回归模型训练 - trainDataSet 预处理过的训练数据 - alpha 训练学习率 - amplitude 训练目标值 - regMode 正则模式 - regParam 正则参数

func (*XchainCryptoClient) LogRegVLCalCost

func (xcc *XchainCryptoClient) LogRegVLCalCost(costMap map[int]float64) float64

LogRegVLCalCost 根据明文损失信息获取损失值

func (*XchainCryptoClient) LogRegVLCalEncGradient

func (xcc *XchainCryptoClient) LogRegVLCalEncGradient(localPart *logic_vertical.RawLocalGradAndCostPart, tagPart *logic_vertical.EncLocalGradAndCostPart, trainSet [][]float64, featureIndex, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalGradient, error)

LogRegVLCalEncGradient 非标签方计算加密的梯度,用其他参与方的同态公钥加密 - localPart 非标签方本地的明文梯度数据 - tagPart 标签方的加密梯度数据 - trainSet 非标签方训练样本集合 - featureIndex 指定特征的索引 - accuracy 同态加解密精度 - publicKey 标签方同态公钥

func (*XchainCryptoClient) LogRegVLCalEncGradientTagPart

func (xcc *XchainCryptoClient) LogRegVLCalEncGradientTagPart(localPart *logic_vertical.RawLocalGradAndCostPart, otherPart *logic_vertical.EncLocalGradAndCostPart, trainSet [][]float64, featureIndex, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalGradient, error)

LogRegVLCalEncGradientTagPart 标签方计算加密的梯度,用其他参与方的同态公钥加密 - localPart 标签方本地的明文梯度数据 - otherPart 非标签方的加密梯度数据 - trainSet 标签方训练样本集合 - featureIndex 指定特征的索引 - accuracy 同态加解密精度 - publicKey 非标签方同态公钥

func (*XchainCryptoClient) LogRegVLCalGradient

func (xcc *XchainCryptoClient) LogRegVLCalGradient(gradMap map[int]float64) float64

LogRegVLCalGradient 根据明文梯度信息获取梯度值

func (*XchainCryptoClient) LogRegVLCalGradientWithReg

func (xcc *XchainCryptoClient) LogRegVLCalGradientWithReg(thetas []float64, gradMap map[int]float64, featureIndex int, regMode int, regParam float64) float64

func (*XchainCryptoClient) LogRegVLCalLocalGradAndCost

func (xcc *XchainCryptoClient) LogRegVLCalLocalGradAndCost(thetas []float64, trainSet [][]float64, accuracy int, regMode int, regParam float64, publicKey *paillier.PublicKey) (*logic_vertical.LocalGradAndCostPart, error)

LogRegVLCalLocalGradAndCost 非标签方计算本地的梯度和损失数据 - thetas 上一轮训练得到的模型参数 - trainSet 预处理过的训练数据 - accuracy 同态加解密精确到小数点后的位数 - regMode 正则模式 - regParam 正则参数 - publicKey 非标签方同态公钥

func (*XchainCryptoClient) LogRegVLCalLocalGradAndCostTagPart

func (xcc *XchainCryptoClient) LogRegVLCalLocalGradAndCostTagPart(thetas []float64, trainSet [][]float64, accuracy int, regMode int, regParam float64, publicKey *paillier.PublicKey) (*logic_vertical.LocalGradAndCostPart, error)

LogRegVLCalLocalGradAndCostTagPart 标签方计算本地的梯度和损失数据 - thetas 上一轮训练得到的模型参数 - trainSet 预处理过的训练数据 - accuracy 同态加解密精确到小数点后的位数 - regMode 正则模式 - regParam 正则参数 - publicKey 标签方同态公钥

func (*XchainCryptoClient) LogRegVLDecryptCost

func (xcc *XchainCryptoClient) LogRegVLDecryptCost(encCostMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int

LogRegVLDecryptCost 为其他方解密带噪音的损失信息 - encCostMap 加密的损失信息 - privateKey 己方同态私钥

func (*XchainCryptoClient) LogRegVLDecryptGradient

func (xcc *XchainCryptoClient) LogRegVLDecryptGradient(encGradMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int

LogRegVLDecryptGradient 为其他方解密带噪音的梯度信息 - encGradMap 加密的梯度信息 - privateKey 己方同态私钥

func (*XchainCryptoClient) LogRegVLEvaluateEncCost

func (xcc *XchainCryptoClient) LogRegVLEvaluateEncCost(localPart *logic_vertical.RawLocalGradAndCostPart, tagPart *logic_vertical.EncLocalGradAndCostPart, trainSet [][]float64, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalCost, error)

LogRegVLEvaluateEncCost 非标签方计算加密的损失,用其他参与方的同态公钥加密 - localPart 本地的明文损失数据 - tagPart 标签方的加密损失数据 - trainSet 非标签方训练样本集合 - accuracy 同态加解密精度 - publicKey 标签方同态公钥

func (*XchainCryptoClient) LogRegVLEvaluateEncCostTagPart

func (xcc *XchainCryptoClient) LogRegVLEvaluateEncCostTagPart(localPart *logic_vertical.RawLocalGradAndCostPart, otherPart *logic_vertical.EncLocalGradAndCostPart, trainSet [][]float64, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalCost, error)

LogRegVLEvaluateEncCostTagPart 标签方计算加密的损失,用其他参与方的同态公钥加密 - localPart 本地的明文损失数据 - otherPart 非标签方的加密损失数据 - trainSet 标签方训练样本集合 - accuracy 同态加解密精度 - publicKey 非标签方同态公钥

func (*XchainCryptoClient) LogRegVLPreProcessDataSet

func (xcc *XchainCryptoClient) LogRegVLPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet) *ml_common.TrainDataSet

LogRegVLPreProcessDataSet 非标签方预处理样本数据

func (*XchainCryptoClient) LogRegVLPreProcessDataSetTagPart

func (xcc *XchainCryptoClient) LogRegVLPreProcessDataSetTagPart(sourceDataSet *ml_common.StandardizedDataSet, label string) *ml_common.TrainDataSet

LogRegVLPreProcessDataSetTagPart 标签方预处理样本数据

func (*XchainCryptoClient) LogRegVLPredictLocalPart

func (xcc *XchainCryptoClient) LogRegVLPredictLocalPart(thetas, standardizedInput map[string]float64) float64

LogRegVLPredictLocalPart 非标签方计算本地预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据

func (*XchainCryptoClient) LogRegVLPredictLocalTagPart

func (xcc *XchainCryptoClient) LogRegVLPredictLocalTagPart(thetas, standardizedInput map[string]float64) float64

LogRegVLPredictLocalTagPart 标签方计算本地预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据

func (*XchainCryptoClient) LogRegVLRetrieveRealCost

func (xcc *XchainCryptoClient) LogRegVLRetrieveRealCost(decCostMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64

LogRegVLRetrieveRealCost 还原真实的损失信息 - decCostMap 解密的损失信息 - accuracy 同态加解密精度 - randomInt 损失的噪音值

func (*XchainCryptoClient) LogRegVLRetrieveRealGradient

func (xcc *XchainCryptoClient) LogRegVLRetrieveRealGradient(decGradMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64

LogRegVLRetrieveRealGradient 还原真实的梯度信息 - decGradMap 解密的梯度信息 - accuracy 同态加解密精度 - randomInt 己方梯度的噪音值

func (*XchainCryptoClient) LogRegVLStandardizeDataSet

func (xcc *XchainCryptoClient) LogRegVLStandardizeDataSet(sourceDataSet *ml_common.DataSet, label string) *ml_common.StandardizedDataSet

LogRegVLStandardizeDataSet 标准化样本数据,除目标特征,其余特征对应的样本数值均值变为0,标准差变为1 - sourceDataSet 原始样本数据 - label 目标特征

func (*XchainCryptoClient) LogRegVLStandardizeLocalInput

func (xcc *XchainCryptoClient) LogRegVLStandardizeLocalInput(xbars, sigmas, input map[string]float64) map[string]float64

LogRegVLStandardizeLocalInput 标准化样本数据 - xbars 特征对应的均值map - sigmas 特征对应的方差map - input 特征对应的样本值

func (*XchainCryptoClient) PSIEncryptSampleIDSet

func (xcc *XchainCryptoClient) PSIEncryptSampleIDSet(sampleID []string, publicKey *ecdsa.PublicKey) *linear_vertical.EncSet

PSIEncryptSampleIDSet 利用同态公钥加密样本的ID列表 - sampleID 待加密的ID列表 - publicKey 同态公钥

func (*XchainCryptoClient) PSIReEncryptIDSet

func (xcc *XchainCryptoClient) PSIReEncryptIDSet(encSet *linear_vertical.EncSet, privateKey *ecdsa.PrivateKey) *linear_vertical.EncSet

PSIReEncryptIDSet 利用同态私钥二次加密样本ID列表 - encSet 一次加密后的ID列表 - privateKey 同态私钥

func (*XchainCryptoClient) PSIntersect

func (xcc *XchainCryptoClient) PSIntersect(sampleID []string, reEncSetLocal *linear_vertical.EncSet, reEncSetOthers []*linear_vertical.EncSet) []string

PSIntersect 计算多方加密ID列表的交集 - sampleID 原始ID列表 - reEncSetLocal 己方二次加密后的ID列表 - reEncSetOthers 其他方二次加密后的ID列表

func (*XchainCryptoClient) ProvePairingChallenge

func (xcc *XchainCryptoClient) ProvePairingChallenge(content, indices, randVs, sigmas [][]byte, rand []byte) ([]byte, []byte, error)

ProvePairingChallenge 生成挑战的应答信息 - content 要验证的数据块内容列表 - indices 要验证的索引列表 - randVs 调整生成的随机数列表 - sigmas 要验证的数据块对应的辅助证明信息列表

func (*XchainCryptoClient) RandomWithinPairingOrder

func (xcc *XchainCryptoClient) RandomWithinPairingOrder() ([]byte, error)

RandomWithinPairingOrder 生成小于椭圆曲线order的随机数

func (*XchainCryptoClient) SecretRetrieve

func (xcc *XchainCryptoClient) SecretRetrieve(shares map[int]*big.Int) ([]byte, error)

SecretRetrieve 利用碎片还原秘密值

func (*XchainCryptoClient) SecretSplit

func (xcc *XchainCryptoClient) SecretSplit(totalShareNumber, minimumShareNumber int, secret []byte) (shares map[int]*big.Int, err error)

SecretSplit 将秘密信息分割为指定数量的碎片 - totalShareNumber 需要分割的碎片数量 - minimumShareNumber 能够还原出原信息的最少碎片数量 - secret 待分割的秘密信息

func (*XchainCryptoClient) VerifyPairingProof

func (xcc *XchainCryptoClient) VerifyPairingProof(sigma, mu, randV, randU, pubkey []byte, indices, randVs [][]byte) (bool, error)

VerifyPairingProof 挑战验证信息 - sigma 证明生成的应答信息 - mu 证明生成的应答信息 - randV 验证者生成的随机数 - randU 验证者生成的随机数 - pubkey 验证者的副本保持证明公钥 - indices 要验证的索引列表 - randVs 调整生成的随机数列表

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL