[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/