From 479e08bd6fb736dbcfeda6a736f7ea858eee8f83 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Bossuat Date: Fri, 1 Jul 2022 18:30:27 +0200 Subject: [PATCH] typo --- drlwe/drlwe_test.go | 8 ++++---- drlwe/keygen_relin.go | 12 ++++++------ drlwe/keygen_rot.go | 12 ++++++------ rgsw/encryptor.go | 4 ++-- rgsw/evaluator.go | 4 ++-- rgsw/lut/evaluator.go | 6 +++--- rgsw/lut/keys.go | 6 +++--- rlwe/evaluator_gadget_product.go | 4 ++-- rlwe/keys.go | 2 +- rlwe/params.go | 3 ++- rlwe/rlwe_test.go | 2 +- 11 files changed, 32 insertions(+), 31 deletions(-) diff --git a/drlwe/drlwe_test.go b/drlwe/drlwe_test.go index 853e48db..a769054c 100644 --- a/drlwe/drlwe_test.go +++ b/drlwe/drlwe_test.go @@ -278,7 +278,7 @@ func testRelinKeyGen(testCtx testContext, t *testing.T) { ringQP := params.RingQP() levelQ, levelP := params.QCount()-1, params.PCount()-1 - decompPW2 := params.DecompPW2(levelQ, levelP) + decompPw2 := params.DecompPw2(levelQ, levelP) t.Run(testString(params, "RelinKeyGen"), func(t *testing.T) { @@ -352,7 +352,7 @@ func testRelinKeyGen(testCtx testContext, t *testing.T) { } log2Bound := bits.Len64(uint64(params.N() * len(swk.Value) * len(swk.Value[0]) * (params.N()*3*int(math.Floor(rlwe.DefaultSigma*6)) + 2*3*int(math.Floor(rlwe.DefaultSigma*6)) + params.N()*3))) - for i := 0; i < decompPW2; i++ { + for i := 0; i < decompPw2; i++ { // P*s^i + sum(e) - P*s^i = sum(e) ringQ.Sub(swk.Value[0][i].Value[0].Q, skIn.Value.Q, swk.Value[0][i].Value[0].Q) @@ -385,7 +385,7 @@ func testRotKeyGen(testCtx testContext, t *testing.T) { ringQP := params.RingQP() levelQ, levelP := params.QCount()-1, params.PCount()-1 - decompPW2 := params.DecompPW2(levelQ, levelP) + decompPw2 := params.DecompPw2(levelQ, levelP) t.Run(testString(params, "RotKeyGen"), func(t *testing.T) { @@ -455,7 +455,7 @@ func testRotKeyGen(testCtx testContext, t *testing.T) { } log2Bound := bits.Len64(uint64(params.N() * len(swk.Value) * len(swk.Value[0]) * (params.N()*3*int(math.Floor(rlwe.DefaultSigma*6)) + 2*3*int(math.Floor(rlwe.DefaultSigma*6)) + params.N()*3))) - for i := 0; i < decompPW2; i++ { + for i := 0; i < decompPw2; i++ { // P*s^i + sum(e) - P*s^i = sum(e) ringQ.Sub(swk.Value[0][i].Value[0].Q, skIn.Value.Q, swk.Value[0][i].Value[0].Q) diff --git a/drlwe/keygen_relin.go b/drlwe/keygen_relin.go index fcb077c1..5db06240 100644 --- a/drlwe/keygen_relin.go +++ b/drlwe/keygen_relin.go @@ -83,15 +83,15 @@ func (ekg *RKGProtocol) AllocateShare() (ephSk *rlwe.SecretKey, r1 *RKGShare, r2 r1, r2 = new(RKGShare), new(RKGShare) decompRNS := params.DecompRNS(params.QCount()-1, params.PCount()-1) - decompPW2 := params.DecompPW2(params.QCount()-1, params.PCount()-1) + decompPw2 := params.DecompPw2(params.QCount()-1, params.PCount()-1) r1.Value = make([][][2]ringqp.Poly, decompRNS) r2.Value = make([][][2]ringqp.Poly, decompRNS) for i := 0; i < decompRNS; i++ { - r1.Value[i] = make([][2]ringqp.Poly, decompPW2) - r2.Value[i] = make([][2]ringqp.Poly, decompPW2) - for j := 0; j < decompPW2; j++ { + r1.Value[i] = make([][2]ringqp.Poly, decompPw2) + r2.Value[i] = make([][2]ringqp.Poly, decompPw2) + for j := 0; j < decompPw2; j++ { r1.Value[i][j][0] = ekg.params.RingQP().NewPoly() r1.Value[i][j][1] = ekg.params.RingQP().NewPoly() r2.Value[i][j][0] = ekg.params.RingQP().NewPoly() @@ -106,12 +106,12 @@ func (ekg *RKGProtocol) AllocateShare() (ephSk *rlwe.SecretKey, r1 *RKGShare, r2 func (ekg *RKGProtocol) SampleCRP(crs CRS) RKGCRP { params := ekg.params decompRNS := params.DecompRNS(params.QCount()-1, params.PCount()-1) - decompPW2 := params.DecompPW2(params.QCount()-1, params.PCount()-1) + decompPw2 := params.DecompPw2(params.QCount()-1, params.PCount()-1) crp := make([][]ringqp.Poly, decompRNS) us := ringqp.NewUniformSampler(crs, *params.RingQP()) for i := range crp { - crp[i] = make([]ringqp.Poly, decompPW2) + crp[i] = make([]ringqp.Poly, decompPw2) for j := range crp[i] { crp[i][j] = params.RingQP().NewPoly() us.Read(crp[i][j]) diff --git a/drlwe/keygen_rot.go b/drlwe/keygen_rot.go index a6966c4d..fab96d40 100644 --- a/drlwe/keygen_rot.go +++ b/drlwe/keygen_rot.go @@ -70,13 +70,13 @@ func (rtg *RTGProtocol) AllocateShare() (rtgShare *RTGShare) { params := rtg.params decompRNS := rtg.params.DecompRNS(params.QCount()-1, params.PCount()-1) - decompPW2 := rtg.params.DecompPW2(params.QCount()-1, params.PCount()-1) + decompPw2 := rtg.params.DecompPw2(params.QCount()-1, params.PCount()-1) rtgShare.Value = make([][]ringqp.Poly, decompRNS) for i := 0; i < decompRNS; i++ { - rtgShare.Value[i] = make([]ringqp.Poly, decompPW2) - for j := 0; j < decompPW2; j++ { + rtgShare.Value[i] = make([]ringqp.Poly, decompPw2) + for j := 0; j < decompPw2; j++ { rtgShare.Value[i][j] = rtg.params.RingQP().NewPoly() } } @@ -89,13 +89,13 @@ func (rtg *RTGProtocol) SampleCRP(crs CRS) RTGCRP { params := rtg.params decompRNS := rtg.params.DecompRNS(params.QCount()-1, params.PCount()-1) - decompPW2 := rtg.params.DecompPW2(params.QCount()-1, params.PCount()-1) + decompPw2 := rtg.params.DecompPw2(params.QCount()-1, params.PCount()-1) crp := make([][]ringqp.Poly, decompRNS) us := ringqp.NewUniformSampler(crs, *params.RingQP()) for i := 0; i < decompRNS; i++ { - crp[i] = make([]ringqp.Poly, decompPW2) - for j := 0; j < decompPW2; j++ { + crp[i] = make([]ringqp.Poly, decompPw2) + for j := 0; j < decompPw2; j++ { crp[i][j] = rtg.params.RingQP().NewPoly() us.Read(crp[i][j]) } diff --git a/rgsw/encryptor.go b/rgsw/encryptor.go index 232c4d6c..ed38a731 100644 --- a/rgsw/encryptor.go +++ b/rgsw/encryptor.go @@ -30,9 +30,9 @@ func (enc *Encryptor) Encrypt(pt *rlwe.Plaintext, ct interface{}) { levelP := rgswCt.LevelP() decompRNS := params.DecompRNS(levelQ, levelP) - decompPW2 := params.DecompPW2(levelQ, levelP) + decompPw2 := params.DecompPw2(levelQ, levelP) - for j := 0; j < decompPW2; j++ { + for j := 0; j < decompPw2; j++ { for i := 0; i < decompRNS; i++ { enc.EncryptZero(&rgswCt.Value[0].Value[i][j]) enc.EncryptZero(&rgswCt.Value[1].Value[i][j]) diff --git a/rgsw/evaluator.go b/rgsw/evaluator.go index 15c61ef9..b042585f 100644 --- a/rgsw/evaluator.go +++ b/rgsw/evaluator.go @@ -115,7 +115,7 @@ func (eval *Evaluator) externalProductInPlaceSinglePAndBitDecomp(ct0 *rlwe.Ciphe } decompRNS := eval.params.DecompRNS(levelQ, levelP) - decompPW2 := eval.params.DecompPW2(levelQ, levelP) + decompPw2 := eval.params.DecompPw2(levelQ, levelP) // (a, b) + (c0 * rgsw[k][0], c0 * rgsw[k][1]) for k, el := range rgsw.Value { @@ -123,7 +123,7 @@ func (eval *Evaluator) externalProductInPlaceSinglePAndBitDecomp(ct0 *rlwe.Ciphe cw := eval.BuffQP[0].Q.Coeffs[0] cwNTT := eval.BuffBitDecomp for i := 0; i < decompRNS; i++ { - for j := 0; j < decompPW2; j++ { + for j := 0; j < decompPw2; j++ { ring.MaskVec(eval.BuffInvNTT.Coeffs[i], cw, j*pw2, mask) if k == 0 && i == 0 && j == 0 { diff --git a/rgsw/lut/evaluator.go b/rgsw/lut/evaluator.go index 6829e71b..ef7b6868 100644 --- a/rgsw/lut/evaluator.go +++ b/rgsw/lut/evaluator.go @@ -120,11 +120,11 @@ func NewEvaluator(paramsLUT, paramsLWE rlwe.Parameters, rtks *rlwe.RotationKeySe levelQ := paramsLUT.QCount() - 1 levelP := paramsLUT.PCount() - 1 decompRNS := paramsLUT.DecompRNS(levelQ, levelP) - decompPW2 := paramsLUT.DecompPW2(levelQ, levelP) + decompPw2 := paramsLUT.DecompPw2(levelQ, levelP) ringQP := paramsLUT.RingQP() - eval.tmpRGSW = rgsw.NewCiphertext(levelQ, levelP, decompRNS, decompPW2, *ringQP) + eval.tmpRGSW = rgsw.NewCiphertext(levelQ, levelP, decompRNS, decompPw2, *ringQP) - eval.one = rgsw.NewPlaintext(uint64(1), levelQ, levelP, paramsLUT.Pow2Base(), decompPW2, *ringQP) + eval.one = rgsw.NewPlaintext(uint64(1), levelQ, levelP, paramsLUT.Pow2Base(), decompPw2, *ringQP) return } diff --git a/rgsw/lut/keys.go b/rgsw/lut/keys.go index a068e140..65f1e876 100644 --- a/rgsw/lut/keys.go +++ b/rgsw/lut/keys.go @@ -42,13 +42,13 @@ func GenEvaluationKey(paramsRLWE rlwe.Parameters, skRLWE *rlwe.SecretKey, params MinusOneMform := ring.MForm(Q-1, Q, ringQ.BredParams[0]) decompRNS := paramsRLWE.DecompRNS(levelQ, levelP) - decompPW2 := paramsRLWE.DecompPW2(levelQ, levelP) + decompPw2 := paramsRLWE.DecompPw2(levelQ, levelP) ringQP := *paramsRLWE.RingQP() for i, si := range skLWEInvNTT.Coeffs[0] { - skRGSWPos[i] = rgsw.NewCiphertext(levelQ, levelP, decompRNS, decompPW2, ringQP) - skRGSWNeg[i] = rgsw.NewCiphertext(levelQ, levelP, decompRNS, decompPW2, ringQP) + skRGSWPos[i] = rgsw.NewCiphertext(levelQ, levelP, decompRNS, decompPw2, ringQP) + skRGSWNeg[i] = rgsw.NewCiphertext(levelQ, levelP, decompRNS, decompPw2, ringQP) // sk_i = 1 -> [RGSW(1), RGSW(0)] if si == OneMForm { diff --git a/rlwe/evaluator_gadget_product.go b/rlwe/evaluator_gadget_product.go index e349f542..81decc9f 100644 --- a/rlwe/evaluator_gadget_product.go +++ b/rlwe/evaluator_gadget_product.go @@ -134,7 +134,7 @@ func (eval *Evaluator) GadgetProductSinglePAndBitDecompNoModDown(levelQ int, cx levelP := gadgetCt.LevelP() decompRNS := eval.params.DecompRNS(levelQ, levelP) - decompPW2 := eval.params.DecompPW2(levelQ, levelP) + decompPw2 := eval.params.DecompPw2(levelQ, levelP) pw2 := eval.params.pow2Base @@ -155,7 +155,7 @@ func (eval *Evaluator) GadgetProductSinglePAndBitDecompNoModDown(levelQ int, cx // Key switching with CRT decomposition for the Qi var reduce int for i := 0; i < decompRNS; i++ { - for j := 0; j < decompPW2; j++ { + for j := 0; j < decompPw2; j++ { ring.MaskVec(cxInvNTT.Coeffs[i], cw, j*pw2, mask) diff --git a/rlwe/keys.go b/rlwe/keys.go index ef0982ec..ede429c9 100644 --- a/rlwe/keys.go +++ b/rlwe/keys.go @@ -120,7 +120,7 @@ func NewSwitchingKey(params Parameters, levelQ, levelP int) *SwitchingKey { levelQ, levelP, params.DecompRNS(levelQ, levelP), - params.DecompPW2(levelQ, levelP), + params.DecompPw2(levelQ, levelP), *params.RingQP())} } diff --git a/rlwe/params.go b/rlwe/params.go index 44323e52..b0f8bf0c 100644 --- a/rlwe/params.go +++ b/rlwe/params.go @@ -344,7 +344,7 @@ func (p Parameters) MaxBit(levelQ, levelP int) (c int) { } // DecompPW2 returns ceil(p.MaxBitQ(levelQ, levelP)/bitDecomp). -func (p Parameters) DecompPW2(levelQ, levelP int) (c int) { +func (p Parameters) DecompPw2(levelQ, levelP int) (c int) { if p.pow2Base == 0 { return 1 } @@ -495,6 +495,7 @@ func (p Parameters) MarshalBinary() ([]byte, error) { // 1 byte : logN // 1 byte : #Q // 1 byte : #P + // 1 byte : pow2Base // 8 byte : H // 8 byte : sigma // 1 byte : ringType diff --git a/rlwe/rlwe_test.go b/rlwe/rlwe_test.go index 8408161c..3e73735f 100644 --- a/rlwe/rlwe_test.go +++ b/rlwe/rlwe_test.go @@ -212,7 +212,7 @@ func testSwitchKeyGen(kgen KeyGenerator, t *testing.T) { skIn := kgen.GenSecretKey() skOut := kgen.GenSecretKey() levelQ, levelP := params.QCount()-1, params.PCount()-1 - decompPW2 := params.DecompPW2(levelQ, levelP) + decompPW2 := params.DecompPw2(levelQ, levelP) // Generates Decomp([-asIn + w*P*sOut + e, a]) swk := NewSwitchingKey(params, params.QCount()-1, params.PCount()-1)