C# 클래스 MpcLib.MpcProtocols.Bgw.ByzantineBgwProtocol

상속: BgwProtocol
파일 보기 프로젝트 열기: mahdiz/mpclib

보호된 프로퍼티들

프로퍼티 타입 설명
BadPlayers HashSet
CallerProtocol ByzantineBgwProtocol
MyInputShares IList

Private Properties

프로퍼티 타입 설명
ConstructRxPolynomial IList
CreateWantedPolynomials bool
GetMultStepCoeffsForCheaters IList
GetNumberOfComplaints int
IsMultStepPolynomialLegal bool
IsMultStepShareLegal bool
IsNewPublicDataContradictOld bool
IsPolynomialLegal bool
IsPublicDataContradictPrivate bool
IsRecvShareLegal bool
ReceiveVerifications void
RemoveCheaterPlayer void
SendVerifications void
ShareSimple void
ShareSimple void
UpdateRecvShare void

공개 메소드들

메소드 설명
ByzantineBgwProtocol ( AsyncParty e, Circuit circuit, ReadOnlyCollection playerIds, Zp playerInput, StateKey stateKey ) : System
ReductionRandomizationStep ( Zp a, Zp b, Zp ab ) : Zp

Implementation according to GRR.

Run ( ) : void
RunReductionRandomization ( Zp ab ) : void

Implementation according to Ran Canetti

보호된 메소드들

메소드 설명
CompareCoordianteList ( List f_iValues, IList g_jValues ) : IList
FilterPlayers ( IList players ) : void
GetRecombinedResult ( IList recvList, int prime ) : Zp
GetVerifShareMessages ( IList zPs, int playerToVerify, bool receivedGoodPoly ) : IList>
HandleDealer ( IList shareMySecrets, Zp recvSecretShare_i ) : void
HandleNotDealer ( bool isOrigPolyLegal, IList wrongCoordinatesList, int playerToVerify, Zp recvSecretShare_i, SecretPolynomials secretPoly_i ) : void
IsSecretPolynomialsLegal ( SecretPolynomials secretPolynomial ) : bool

Checks if the received polynomials are not null, from the right size and have no null elements */

비공개 메소드들

메소드 설명
ConstructRxPolynomial ( ShareDetails aSharesDetails, ShareDetails bSharesDetails, ShareDetails abSharesDetails, ShareDetails rSharesDetails ) : IList
CreateWantedPolynomials ( IList wantedPolysList, IList complaintesOnMe, IList shareMySecrets ) : bool
GetMultStepCoeffsForCheaters ( int j ) : IList
GetNumberOfComplaints ( IList complaints ) : int
IsMultStepPolynomialLegal ( MultStepVerificationPoly recvVerifcationPolynomial ) : bool
IsMultStepShareLegal ( MultStepBCaseShare recvShareFromPlayer_i, MultStepVerificationPoly recvVerifcationPolynomial ) : bool
IsNewPublicDataContradictOld ( IList oldPublicData, IList newPublicData ) : bool
IsPolynomialLegal ( IList polynomial, int polySize ) : bool
IsPublicDataContradictPrivate ( SecretPolynomials myRecvPolys, IList recvPublicPolysList, IList recvComplaintesList, Zp myRecvShare ) : bool
IsRecvShareLegal ( MultStepBCaseShare recvShareFromPlayer ) : bool
ReceiveVerifications ( List verifShares, List inputShares ) : void
RemoveCheaterPlayer ( int playerToVerify ) : void
SendVerifications ( IEnumerable recvShares ) : void
ShareSimple ( IList sharedSecrets, Stage targetStage ) : void
ShareSimple ( Zp sharedSecrets, Stage targetStage ) : void
UpdateRecvShare ( IList recvPublicPolysList, Zp recvSecretShare_i ) : void

메소드 상세

ByzantineBgwProtocol() 공개 메소드

public ByzantineBgwProtocol ( AsyncParty e, Circuit circuit, ReadOnlyCollection playerIds, Zp playerInput, StateKey stateKey ) : System
e AsyncParty
circuit MpcLib.Common.FiniteField.Circuits.Circuit
playerIds ReadOnlyCollection
playerInput Zp
stateKey StateKey
리턴 System

CompareCoordianteList() 보호된 메소드

protected CompareCoordianteList ( List f_iValues, IList g_jValues ) : IList
f_iValues List
g_jValues IList
리턴 IList

FilterPlayers() 보호된 메소드

protected FilterPlayers ( IList players ) : void
players IList
리턴 void

GetRecombinedResult() 보호된 메소드

protected GetRecombinedResult ( IList recvList, int prime ) : Zp
recvList IList
prime int
리턴 Zp

GetVerifShareMessages() 보호된 메소드

protected GetVerifShareMessages ( IList zPs, int playerToVerify, bool receivedGoodPoly ) : IList>
zPs IList
playerToVerify int
receivedGoodPoly bool
리턴 IList>

HandleDealer() 보호된 메소드

protected HandleDealer ( IList shareMySecrets, Zp recvSecretShare_i ) : void
shareMySecrets IList
recvSecretShare_i Zp
리턴 void

HandleNotDealer() 보호된 메소드

protected HandleNotDealer ( bool isOrigPolyLegal, IList wrongCoordinatesList, int playerToVerify, Zp recvSecretShare_i, SecretPolynomials secretPoly_i ) : void
isOrigPolyLegal bool
wrongCoordinatesList IList
playerToVerify int
recvSecretShare_i Zp
secretPoly_i MpcLib.MpcProtocols.Bgw.Vss.SecretPolynomials
리턴 void

IsSecretPolynomialsLegal() 보호된 메소드

Checks if the received polynomials are not null, from the right size and have no null elements */
protected IsSecretPolynomialsLegal ( SecretPolynomials secretPolynomial ) : bool
secretPolynomial MpcLib.MpcProtocols.Bgw.Vss.SecretPolynomials
리턴 bool

ReductionRandomizationStep() 공개 메소드

Implementation according to GRR.
public ReductionRandomizationStep ( Zp a, Zp b, Zp ab ) : Zp
a Zp
b Zp
ab Zp
리턴 Zp

Run() 공개 메소드

public Run ( ) : void
리턴 void

RunReductionRandomization() 공개 메소드

Implementation according to Ran Canetti
public RunReductionRandomization ( Zp ab ) : void
ab Zp
리턴 void

프로퍼티 상세

BadPlayers 보호되어 있는 프로퍼티

protected HashSet BadPlayers
리턴 HashSet

CallerProtocol 보호되어 있는 프로퍼티

protected ByzantineBgwProtocol,MpcLib.MpcProtocols.Bgw CallerProtocol
리턴 ByzantineBgwProtocol

MyInputShares 보호되어 있는 프로퍼티

Shares of my input that are calculated during the input stage.
protected IList MyInputShares
리턴 IList