[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[freehaven-cvs] Add code for test 5D: Perfect padding with prior bac...



Update of /home/freehaven/cvsroot/doc/e2e-traffic/src
In directory moria.mit.edu:/tmp/cvs-serv585

Modified Files:
	PLAN.5 sim.cpp sim.h simmain.cpp trials.cpp trials.h 
Log Message:
Add code for test 5D: Perfect padding with prior background history

Index: PLAN.5
===================================================================
RCS file: /home/freehaven/cvsroot/doc/e2e-traffic/src/PLAN.5,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- PLAN.5	8 Apr 2004 22:03:09 -0000	1.2
+++ PLAN.5	11 Apr 2004 01:17:01 -0000	1.3
@@ -1,4 +1,8 @@
-A: Apr8, 17:50
+A: Apr8,  17:50
+B: Apr9,  01:00
+C: Apr9,  16:00
+D: Apr10, 03:10
+D: Apr10, 14:10
 
 New cases for preproceedings:
 
@@ -22,11 +26,27 @@
     5c.7: padding=4,smoothing=yes,pD=.1,L=1,4
     5c.8: padding=4,smoothing=yes,pD=.6,L=1,4
 
-    5c.1: cassandra: A: 0.0
-    5c.2: sekrit:    A: 0.0
-    5c.3: ariddoch:  A: 0.0
-    5c.4: borel:     A: 0.0
-    5c.5: poincare:  A: 0.0
-    5c.6: lebesgue:  A: 0.0
-    5c.7: noether:   A: 0.0
-    5c.8: totoro:    A: 0.0
+    5c.1: cassandra: DONE
+    5c.2: sekrit:    DONE
+    5c.3: ariddoch:  DONE
+    5c.4: cannabis:  9th,noon: 0.0 C:0.29  D:1.00
+    5c.5: cassandra: D: 0.0
+    5c.6: poincare:  D: 0.0
+    5c.7: noether:   D: 0.0
+    5c.8: totoro:    A: 0.0 B:0.97 C:1.64 D:2.70
+
+
+   5d: N=65536, nAlice=2,8,32,128 bgVol=125
+    padding=2 smoothing=yes
+    pDelay = .1, .6, .9
+    pathlen = 1, 4
+    pOnline = 1.0
+    Background is known.
+
+   5d.1: pDelay=.1
+   5d.3: pDelay=.3
+   5d.9: pDelay=.9
+
+   5d.1: impulse   E:0.0
+   5d.2: borel:    E:0.0
+   5d.3: lebesgue: E:0.0

Index: sim.cpp
===================================================================
RCS file: /home/freehaven/cvsroot/doc/e2e-traffic/src/sim.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- sim.cpp	8 Apr 2004 22:03:09 -0000	1.13
+++ sim.cpp	11 Apr 2004 01:17:01 -0000	1.14
@@ -246,6 +246,7 @@
 DelayMixAttacker::DelayMixAttacker(int nR, int mD, InvDist<int> *dDist)
   : nRecips(nR), maxDelay(mD), nAliceIdx(0), nAliceHist(mD, 0),
     nOtherHist(mD, 0),
+    knownBackground(0),
     background(nR, 0.0),
     observed(nR, 0.0),
     nObservedOther(0.0), nObservedAlice(0.0),
@@ -255,6 +256,12 @@
   // std::cout << "DMA : maxDelay = " << maxDelay << std::endl;
 }
 
+void
+DelayMixAttacker::setKnownBackground(vec<double> &bg)
+{
+  knownBackground = new vec<double>(bg);
+}
+
 double
 DelayMixAttacker::expectedAliceMsgs()
 {
@@ -339,10 +346,17 @@
 #endif
   if (!uTotal || !nObservedAlice)
     return false;
-  vec<double> u(background);
-  u *= (oTotal / exOtherInBackground);
-  res = observed - u;
-  res /= nObservedAlice;
+  if (knownBackground) {
+    vec<double> u(*knownBackground);
+    u *= (nObservedOther);
+    res = observed - u;
+    res /= nObservedAlice;
+  } else {
+    vec<double> u(background);
+    u *= (oTotal / exOtherInBackground);
+    res = observed - u;
+    res /= nObservedAlice;
+  }
 #ifndef QUIET
   std::cout << res << std::endl;
 #endif

Index: sim.h
===================================================================
RCS file: /home/freehaven/cvsroot/doc/e2e-traffic/src/sim.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- sim.h	8 Apr 2004 21:24:35 -0000	1.8
+++ sim.h	11 Apr 2004 01:17:01 -0000	1.9
@@ -227,6 +227,8 @@
   std::vector<int> nAliceHist;
   std::vector<int> nOtherHist;
 
+  vec<double> *knownBackground;
+
   vec<double> background;
   vec<double> observed;
   double nObservedOther;
@@ -251,12 +253,13 @@
 
 public:
   DelayMixAttacker(int nRecips, int maxDelay, InvDist<int> *delayDist);
+  void setKnownBackground(vec<double> &bg);
   void reset();
   void addRound(int nSentAlice, int nSentOther, const vec<int> &nReceived);
   bool guessAlice(vec<double> &nRecipients);
   void getRoundCounts(int &nObs, int &nAlice) {
     nObs = nRoundsObserved; nAlice = nRoundsMaybeAlice; }
-  ~DelayMixAttacker() { delete delayDist; }
+  ~DelayMixAttacker() { delete delayDist; delete knownBackground; }
 };
 
 

Index: simmain.cpp
===================================================================
RCS file: /home/freehaven/cvsroot/doc/e2e-traffic/src/simmain.cpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- simmain.cpp	8 Apr 2004 21:24:35 -0000	1.35
+++ simmain.cpp	11 Apr 2004 01:17:01 -0000	1.36
@@ -1229,6 +1229,69 @@
 }
 
 
+void trial5d_base(double pDelay, int pathLen, int nAlice)
+{
+  MixTrialSpec s;
+
+  s.setNRecipients(65536).setNAliceRecipients(nAlice)
+    .setPathLen(pathLen).setPadding(2).setSmoothPadding(true)
+    .setExpAlice(1)
+    .setPartial(false)
+    .setPOnline(1.0)
+    .setPDelay(pDelay)
+    .setPMessage(0.6)
+    .setBGVolMean(125).setBGVolDev(125/10.0)
+    .setPObserve(1.0)
+    .setPDummy(0.0)
+    .setKnownBackground(true);
+
+  s.setGranularity(10);
+
+  s.setCutoff(1000000);
+  int nBad = 0;
+  int nGood = 0;
+  for (int i = 1; i <= 100; ++i) {
+    s.write(std::cout);
+    std::cout << "\"" << i << "/" << 100 << "\"" << std::endl;
+    MixTrial trial(s);
+    TrialResult res = trial.attempt();
+    std::cout << res << std::endl << std::endl;
+    if (res.failed)
+      ++nBad;
+    else
+      ++nGood;
+    if (nBad >= 5 && nGood < nBad/2) {
+      break;
+    }
+  }
+}
+
+void trial5d_1()
+{
+  for (int nA = 2; nA <= 128; nA *= 4) {
+    for (int L = 1; L <= 4; L += 3) {
+      trial5d_base(.1, L, nA);
+    }
+  }
+}
+
+void trial5d_2()
+{
+  for (int nA = 2; nA <= 128; nA *= 4) {
+    for (int L = 1; L <= 4; L += 3) {
+      trial5d_base(.6, L, nA);
+    }
+  }
+}
+
+void trial5d_3()
+{
+  for (int nA = 2; nA <= 128; nA *= 4) {
+    for (int L = 1; L <= 4; L += 3) {
+      trial5d_base(.9, L, nA);
+    }
+  }
+}
 
 void trial6_base(double pDelay, double pObserve)
 {
@@ -1427,6 +1490,10 @@
   { "5c.7", trial5c_7 },
   { "5c.8", trial5c_8 },
 
+  { "5d.1", trial5d_1 },
+  { "5d.2", trial5d_2 },
+  { "5d.3", trial5d_3 },
+
   { "6.1",    trial6_1 },
   { "6.2",    trial6_2 },
   { "6.3",    trial6_3 },

Index: trials.cpp
===================================================================
RCS file: /home/freehaven/cvsroot/doc/e2e-traffic/src/trials.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- trials.cpp	8 Apr 2004 21:24:35 -0000	1.16
+++ trials.cpp	11 Apr 2004 01:17:01 -0000	1.17
@@ -321,7 +321,8 @@
 	       bool expAlice, double pMessage, double pDummy,
 	       double bgVolMean, double bgVolDev,
 	       double pOnline, int padding, bool smoothPadding,
-	       int g, bool partial, double pObserve, int c)
+	       int g, bool partial, double pObserve, int c,
+	       bool knownBackground)
 {
   assert(pathLen > 0);
 
@@ -358,13 +359,6 @@
 	    << std::endl;
 #endif
 
-  mixnet = new DelayMix(nR, maxDelay, delayDist);
-  attacker = new DelayMixAttacker(nR, maxDelay, delayDist);
-  if (partial)
-    attacker = new POAttacker(attacker, pObserve);
-
-  delete delayDist;
-
   //// Set up small world.
   InvDist<int> *aliceRecipDist = 0;
   InvDist<int> *backgroundTrafficDist = 0;
@@ -373,6 +367,22 @@
                         aliceRecipients,
                         nAR, nR, false, true);
 
+  //// Set up attacker and mixnet
+  mixnet = new DelayMix(nR, maxDelay, delayDist);
+  attacker = new DelayMixAttacker(nR, maxDelay, delayDist);
+  if (knownBackground) {
+    vec<double> bg(nR);
+    for (int i = 0; i < nR; ++i) {
+      bg[i] = backgroundTrafficDist->getP(i);
+    }
+    ((DelayMixAttacker*)attacker)->setKnownBackground(bg);
+  }
+
+  if (partial)
+    attacker = new POAttacker(attacker, pObserve);
+
+  delete delayDist;
+
   //// set up alice.
   GeometricDist aMsgsE(1.0-pMessage);
   GeometricDist aDummiesE(1.0-pDummy);

Index: trials.h
===================================================================
RCS file: /home/freehaven/cvsroot/doc/e2e-traffic/src/trials.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- trials.h	8 Apr 2004 21:24:35 -0000	1.10
+++ trials.h	11 Apr 2004 01:17:01 -0000	1.11
@@ -216,7 +216,7 @@
   friend class MixTrial;
  protected:
   int nRecipients, nAliceRecipients, pathLen, padding, granularity, cutoff;
-  bool expAlice, partial, ea_set, p_set, smoothPadding;
+  bool expAlice, partial, ea_set, p_set, smoothPadding, knownBackground;
   double pOnline, pDelay, pMessage, pDummy, bgVolMean, bgVolDev, pObserve;
  public:
   MixTrialSpec() {
@@ -226,6 +226,7 @@
     nRecipients = nAliceRecipients = pathLen = 0;
     ea_set = p_set = smoothPadding = false;
     pDelay = pMessage = pDummy = bgVolMean = bgVolDev = -1;
+    knownBackground = false;
   }
   MixTrialSpec &setNRecipients(int n) { nRecipients = n; return *this; }
   MixTrialSpec &setNAliceRecipients(int n) { nAliceRecipients = n; return *this; }
@@ -246,6 +247,7 @@
   MixTrialSpec &setBGVolDev(double d) { bgVolDev = d; return *this; }
   MixTrialSpec &setPObserve(double d) { pObserve = d; return *this; }
   MixTrialSpec &setPOnline(double d) { pOnline = d; return *this; }
+  MixTrialSpec &setKnownBackground(bool b) { knownBackground = b; return *this; }
 
   void assertFilled() const {
     assert(nRecipients && nAliceRecipients && pathLen);
@@ -279,7 +281,8 @@
 	    int granularity,
 	    bool partial,
 	    double pObserve,
-	    int cutoff
+	    int cutoff,
+	    bool knownBackground
 	    );
  public:
   MixTrial(const MixTrialSpec &s) : NonbatchTrial(s.nRecipients, s.granularity)
@@ -287,7 +290,7 @@
       init(s.nRecipients, s.nAliceRecipients, s.pathLen, s.pDelay,
 	   s.expAlice, s.pMessage, s.pDummy, s.bgVolMean, s.bgVolDev,
 	   s.pOnline, s.padding, s.smoothPadding,
-	   s.granularity, s.partial, s.pObserve, s.cutoff); }
+	   s.granularity, s.partial, s.pObserve, s.cutoff, s.knownBackground); }
   TrialResult attempt();
   ~MixTrial() {}
 };

***********************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe freehaven-cvs       in the body. http://freehaven.net/