示例#1
0
 private void Output(CircuitBuilder builder, SecureWord word)
 {
     foreach (Wire wire in word.Wires)
     {
         builder.Output(wire);
     }
 }
        internal void GetSecureWords(GPoint pos, out string sec1, out string sec2)
        {
            sec1 = string.Empty; // after &x=...
            sec2 = string.Empty; // after &zoom=...
            int seclen = (int)((pos.X * 3) + pos.Y) % 8;

            sec2 = SecureWord.Substring(0, seclen);
            if (pos.Y >= 10000 && pos.Y < 100000)
            {
                sec1 = Sec1;
            }
        }
示例#3
0
        public SecureSetIntersection(SecureWord[] inputs, int numberOfCounterBits)
        {
            _intersection = SecureWord.And(inputs);
            SecureInteger counter = SecureInteger.Zero(_intersection.Builder);

            for (int i = 0; i < _intersection.Length; ++i)
            {
                counter = counter + SecureInteger.FromBoolean(_intersection.IsBitSet(i));
            }

            _counter = counter.OfFixedLength(numberOfCounterBits);
        }
示例#4
0
        public void Record(CircuitBuilder builder)
        {
            SecureWord[] inputs = new SecureWord[_numberOfParties];
            for (int i = 0; i < _numberOfParties; ++i)
            {
                inputs[i] = Input(builder, _numberOfElements);
            }

            SecureSetIntersection setIntersection = new SecureSetIntersection(inputs, _numberOfCounterBits);

            Output(builder, setIntersection.Intersection);
            Output(builder, setIntersection.Counter);
        }