Embed
Email

Viewer - High Level Design

Document Sample

Categories
Tags
Stats
views:
1
posted:
11/4/2011
language:
English
pages:
8
High level design – The Viewer







Revision 3.0, 11/4/2011 12:15:00 AM



Author: Eran Samuni & Moshe Blank









High level design – The Viewer Page 1

High level design – The Viewer

Table of content

1. General ________________________________________________________ 3

1.1. Overview ______________________________________________________________________ 3

1.2. Document Scope ________________________________________________________________ 3

1.3. Revision history _________________________________________________________________ 3

1.4. Related documents _______________________________________________________________ 3

2. Requirements overview ___________________________________________ 4

2.1. Goals & Responsibility ___________________________________________________________ 4

2.2. System Environment _____________________________________________________________ 4

2.3. Users _________________________________________________________________________ 4

2.4. Assumptions & Dependencies ______________________________________________________ 4

2.5. Performance Requirements ________________________________________________________ 4

2.6. Environmental Constraints _________________________________________________________ 4

3. Functional Requirements _________________________________________ 5

4. System Overview ________________________________________________ 6

4.1. Program Static Structure __________________________________________________________ 6

4.2. Architecture diagram _____________________________________________________________ 6

4.3. Component Flow ________________________________________________________________ 6

5. Data Model _____________________________________________________ 7

5.1. Global data structure _____________________________________________________________ 7

5.2. Internal data structure_____________________________________________________________ 7

6. User interface ___________________________________________________ 7

7. Open Issues ____________________________________________________ 7

8. Algorithms _____________________________________________________ 7

9. Testing ________________________________________________________ 8

9.1. Classes of tests __________________________________________________________________ 8

9.2. Performance bounds ______________________________________________________________ 8

10. General comments & important notes ________ Error! Bookmark not defined.8









High level design – The Viewer Page 2

High level design – The Viewer

1. General

1.1. Overview

This document describes the design of the viewer application which is part of the workshop anonymous

communication.





1.2. Document Scope

This document contains an overview on how the application will be built, basic algorithms and data

structures, implementation details and GUI specification.





1.3. Revision history

Version Primary Description of Version Date

Author(s)



1.0 Eran Samuni First Draft 11.11.2002

Moshe Blank

2.0 Same same Design version 23.11.2002

3.0 Same same Reality Check 1.3.2002



1.4. Related documents

 Thwarting traffic analysis: Obscurant Networks for provable Anonymity. By Ron Berman,

Amos Fiat, Amnon Ta-shma.









High level design – The Viewer Page 3

High level design – The Viewer

2. Requirements overview

2.1. Goals & Responsibility

The goal of this application is to provide a mathematical analysis of efficiency of the anonymous

communication protocol in different test cases.



2.2. System Environment

The Viewer is a stand alone application independent of the other components in the workshop.





2.3. Users

Potation users of the application are anonymous communication system administrators and users wishing to

setup system parameters based on their assumptions on the adversary’s resources and their anonymity quality

requirements.



2.4. Assumptions & Dependencies

We assume proximity to uniform distribution as the anonymity quality measure.



More assumption will be made in order to simplified the mathematical algorithms and reduce the

computational complexity.





2.5. Performance Requirements

His application does not work online, therefore no strict time bounds are required.



Since the problem we are trying to compute is exponential there will be limitations on the system

variables (such as the number of nodes that participate in a single round of messages).





2.6. Environmental Constraints

 The application will run on any system that can run java applications (java virtual machine

installed).



 Since computations are cpu and memory consuming, we recommend running it on fast computers

with sufficient physical memory.









High level design – The Viewer Page 4

High level design – The Viewer

3. Functional Requirements

Following is the functionality provided by the application in order of the user actions:



 At start up general protocol parameters are chosen by the user – number of hopes for

message, number of active nodes in the case to be studied.

 User sets parameters for randomization of adversary’s nodes and edges. The application will

choose the adversary nodes and edges based on those parameters.

 The user will be shown a graph in which will be n layers (as the number of the hop) and in

each layer there will be m nodes (as the number of active nodes). In this graph a message is

sent from a node i in layer j to a node i in layer j+1 at time j. Adversary nodes will be tagged

in red. Node in layer I will be connected with a red edge to a node in layer i+1 if that edge is

controlled by adversary.

 The user will be able to manually assign value to edges and nodes (and override the random

values).



 At this point the relevant calculation will be haled.

 The result of the calculation will be displayed to the user. The user will be presented with the

following information:

1. Beside each layer the distance from the uniform distribution will be

shown.

2. Between every two adjacent layers the number of possible

permutation (adversary’s point of view) will be shown.

 The user is given an option to see the relevant graphs:

1. Graph of the distribution function in the last layer.

2. Distance from the uniform distribution as function of time.





 The user will be able to save the graph and the results of the calculations to a

file, and load saved graph back to the application.









High level design – The Viewer Page 5

High level design – The Viewer

4. System Overview

4.1. Program Static Structure

The program will consist of two main components – the first component in charge of mathematical

analysis, and the second is the utility component – in charge of interaction with user, graphical display

and other tasks not connected directly to the main mathematical algorithm.



4.2. Architecture diagram









Mathematical Core Component



Calculation Progress User break Calculation

Request reports Result









Controller

User Display

Actions Data







GUI



4.3. Component Flow

4.3.1. Main loop / Events

Program workflow is controlled by the controller component; the workflow is defined in

functional requirements





4.3.2. Threads and synchronization

The mathematical component will be running in a different thread, and will be giving feedback to

the utility during the calculations, using shared synchronized object. On the other hand, utility

will be able to control the calculations (user break) using another synchronized object.









High level design – The Viewer Page 6

High level design – The Viewer

5. Data Model

5.1. Global data structure

The only data structure is the graph structure of the test case that is passed from the utility

component to mathematical component as input for the calculations. The graph will be defined by the

values of its edges (0 for good edge, 1 for edge controlled by adversary). This will be passed as two-

dimensional array of bits.



Calculation results will be passed from math to utility in two arrays.



5.2. Internal data structure

In the utility components, the graph will contain the edge values as well as node values in additional

two-dimensional array of bits.



In the math component, there will be an array of floats that will hold the distribution of permutations after

each step. The size of this array will be O(n!).





6. User interface

As described in requirements







7. Open Issues

Performance of Java is a big unknown at this stage, time and space consuming mathematical

calculations can prove to be very expensive particularly in Java. The system was designed so that the

mathematical component is separate from other parts. This way there is a possibility to perform the

calculations in a separate program written in C, and then the math component will serve as an

abstraction level between the viewer and the C program.







8. Algorithms

The distance between current and the uniform distributions will be calculated by the following

formula:





DU ( P) 



| P( )  U ( ) |

S n



where P is the distribution function.

Computation algorithms:

At each iteration of the calculation we will do the following steps:



 Go over each of the red edges and reduce the group of possible permutations at that iteration (if

information went through the edge then only the permutations that use that edge are in potential,

otherwise only permutations that do not use the edge are in potential). This will be done using array

of bits, each bit representing a permutation, initialized with 1s. Each edge will cause some of the

permutations to be irrelevant for that iteration, so their value will go from 1 to 0. Each edge will

High level design – The Viewer Page 7

High level design – The Viewer

contain array of bits that will represent all permutations, each permutation has value of 1 if it uses

that edge, and 0 if it does not. If data is passed through that edge, the set of potential permutations

can be calculated by: S’ = S & A, where S’ is the new array of potential permutations, S is the

current array of potential permutations and A is the array that corresponds to the edge.

 Calculate the size of the group of potential edges that we calculated in the last step. Each

permutation in S has a probability of 1/|S|. At this stage we calculate the distribution function after

this iteration, using the following formula:



I S ( )

Pi 1 ( )  

, S n

Pi ( )

|S|

  



In order to fasten calculations we will study the possibility to use previously calculated multiplication

table for permutations.









9. Testing

9.1. Classes of tests

Testing of mathematical component will be made using simple predefined test cases.





9.2. Performance bounds

Performance that will be measured during the tests will affect the development. Our goal is

reasonable performance for n=7±2.









High level design – The Viewer Page 8

High level design – The Viewer



Related docs
Other docs by Stariya Js @ B...
Info pack - Level 1
Views: 0  |  Downloads: 0
f1098746053
Views: 0  |  Downloads: 0
file_116
Views: 3  |  Downloads: 0
Trade
Views: 0  |  Downloads: 0
McKenzie_Law.April
Views: 0  |  Downloads: 0
110208attachmentEndingtheUseofCoalCampaign
Views: 0  |  Downloads: 0
Titration Curve _CBL_ _AP_
Views: 0  |  Downloads: 0
FSSC cover note
Views: 0  |  Downloads: 0
link_130115
Views: 0  |  Downloads: 0
Index_of_Supplementary_Tables_and_Dataset
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!