Skip to content

Commit

Permalink
Implemented algorithms and graph characteristics from the _Where's Wa…
Browse files Browse the repository at this point in the history
…ldo_ paper.
  • Loading branch information
sean-chester committed Nov 9, 2015
1 parent c1d68cb commit 2f570dd
Show file tree
Hide file tree
Showing 24 changed files with 1,898 additions and 790 deletions.
40 changes: 0 additions & 40 deletions LICENSE.md

This file was deleted.

142 changes: 106 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,127 @@

| GraphAnon, version 2.0 |
|:--------------------------------:|
| © 2015 Sean Chester |
| ([email protected]) |

AlphaProximity suite, version 1.0
------------------------------------

© 2015, Sean Chester
([email protected])
All rights reserved.

This is the AlphaProximity suite, version 1.0, with software for
transforming a vertex-labelled graph into a supergraph that is
resistance to neighbourhood attribute disclosure (NAD) attacks.
For more details about attribute disclosure attacks, you are
encouraged to read the short article:
### Table of Contents

S. Chester and G. Srivastava. 2011. "Social network privacy for
attribute disclosure attacks." In Proceedings of the 2011
International Conference on Advances in Social Networks Analysis
and Mining (ASONAM), pp. 445-449. doi: 10.1109/ASONAM.2011.105
* [Introduction](#introduction)
* [Requirements](#requirements)
* [Installation](#installation)
* [Documentation](#documentation)
* [License](#license)
* [Contact](#contact)


------------------------------------
### Introduction
<a name="introduction" ></a>

Licensing
---------
This is the GraphAnon software suite, version 2.0, with software for
transforming a graph into supergraphs that are
resistance to identity and attribute disclosure attacks.
For more details about _attribute disclosure attacks_, you are
encouraged to read the short article, which presents the material
implemented in the _attribute mode_ of this software:

You are free to use, modify, and redistribute this software as you
see fit. Consult the attached LICENSE.md for more details.
> S. Chester and G. Srivastava. 2011. "Social network privacy for
> attribute disclosure attacks." In: Proceedings of the 2011
> International Conference on Advances in Social Networks Analysis
> and Mining (ASONAM), pp. 445-449.
> doi: [10.1109/ASONAM.2011.105](https://dx.doi.org/10.1109/ASONAM.2011.105)
For more details about _identity disclosure attacks_, you are
encouraged to read either of the following articles (the
conference version or the expanded journal version), which presents
the material implemented in the _identity mode_ of this software:

> S. Chester et al. 2013. "Why Waldo befriended the dummy?
> k-Anonymization of social networks with pseudo-nodes."
> Social Network Analysis and Mining 3(3): 381-399. Springer Vienna.
> doi: [10.1007/s13278-012-0084-6](https://dx.doi.org/10.1007/s13278-012-0084-6)
Documentation
-------------
The earlier conference version:

The code has been documented for doxygen. If the doc/html/
directory is empty or stale, you can regenerate the documentation
by running the doxygen command without arguments from the
doc/ directory of this package. The doxygen settings are included
here in doc/Doxyfile.
> S. Chester et al. 2011. "k-Anonymization of social networks
> by vertex addition." In: Proceedings II of the 15th
> East-European Conference on Advances in Databases and
> Information Systems (ADBIS), pp. 107--116.
> url: http://ceur-ws.org/Vol-789/paper11.pdf

------------------------------------
### Requirements
<a name="requirements" ></a>

GraphAnon relies on the following packages/libraries:

* OpenMP for to parallelise the calculation of graph statistics
* C++ 11 for newer STL containers such as unordered_set


Installation
------------
------------------------------------
### Installation
<a name="installation" ></a>

To generate an executable, simply type "make all" from the root directory
of this package (the same directory in which you found this README file).
The makefile will generate the executable bin/alpha_proximity. If you
encounter difficulties, try first typing "make deepclean" and ensure that
the bin/ directory exists. You can run the executable from a terminal with
To generate an executable, simply type `make all` from the root directory
of this package (the same directory in which you found this `README.md` file).
The makefile will generate the executable `bin/graphAnon`. If you
encounter difficulties, try first typing `make deepclean` and ensure that
the `bin/` directory exists. You can run the executable from a terminal with
no command line arguments to get usage instructions.


Contact
-------

------------------------------------
### Documentation
<a name="documentation" ></a>

The code has been documented for `doxygen`. If the `doc/html/`
directory is empty or stale, you can regenerate the documentation
by running `doxygen Doxyfile` from within the `doc/` subdirectory.
The `doxygen` settings are included in `doc/Doxyfile` and can be
freely modified to suit your preferences.


------------------------------------
### License
<a name="license" ></a>

Copyright (c) 2015 Sean Chester

GraphAnon, version 2.0, is distributed freely under the *MIT License*:

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


------------------------------------
### Contact
<a name="contact"></a>

This software suite may be updated and so you are encouraged to check
https://github.com/sean-chester/anon to ensure this is the latest
version. Also, please do not hesitate to contact the author if you have
comments, questions, or bugs to report.
[GraphAnon on GitHub](https://github.com/sean-chester/graphAnon) to ensure
this is the latest version. Do not hesitate to contact the author
if you have comments, questions, or bugs to report, but please first
consult the documentation.

------------------------------------
Binary file added bin/graphAnon
Binary file not shown.
10 changes: 5 additions & 5 deletions doc/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,19 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME = "AlphaProximity"
PROJECT_NAME = "GraphAnon"

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 1.0
PROJECT_NUMBER = 2.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = "&alpha;-proximity: protection against attribute disclosure attacks"
PROJECT_BRIEF = "Protection against attribute and identity disclosure attacks"

# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
# the documentation. The maximum height of the logo should not exceed 55 pixels
Expand Down Expand Up @@ -753,7 +753,7 @@ WARN_LOGFILE =
# spaces.
# Note: If this tag is empty the current directory is searched.

INPUT = ../src/
INPUT = ../src/ ../README.md

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down Expand Up @@ -889,7 +889,7 @@ FILTER_SOURCE_PATTERNS =
# (index.html). This can be useful if you have a project on for instance GitHub
# and want to reuse the introduction page also for the doxygen output.

USE_MDFILE_AS_MAINPAGE =
USE_MDFILE_AS_MAINPAGE = README.md

#---------------------------------------------------------------------------
# Configuration options related to source browsing
Expand Down
42 changes: 42 additions & 0 deletions doc/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,45 @@ @InProceedings{asonam
pages = {445--449},
note = {{http://dx.doi.org/10.1109/ASONAM.2011.105}},
}

@Article{waldo,
author = {Chester, Sean and Kapron, Bruce M and Ramesh, Ganesh and Srivastava, Gautam and Thomo, Alex and Venkatesh, S},
title = {Why Waldo befriended the dummy? k-Anonymization of social networks with pseudo-nodes},
journal = {Social Network Analysis and Mining},
year = {2013},
month = {September},
pages = {381--399},
volume = {3},
number = {3},
publisher = {Springer Vienna},
issn = {1869-5469},
note = {{http://dx.doi.org/10.1007/s13278-012-0084-6}},
}

@InProceedings{vertex,
author = {Chester, Sean and Kapron, Bruce M and Ramesh, Ganesh and Srivastava, Gautam and Thomo, Alex and Venkatesh, S},
title = {k-Anonymization of Social Networks By Vertex Addition},
booktitle = {Proc. East-European Conference on Advances in Databases and Information Systems (ADBIS)},
year = {2011},
pages = {107-116},
publisher = {CEUR-WS.org},
note = {{http://ceur-ws.org/Vol-789/paper11.pdf}},
}

@InProceedings{ying,
author = {Ying, X and Pan, K and Wu, X and Guo, L},
title = {Comparisons of randomization and k-degree anonymization schemes for privacy preserving social network publishing},
booktitle = {Proceedings of 3rd workshop on social network mining and analysis (SNA-KDD)},
year = {2009},
pages = {10:1–-10:10},
publisher = {ACM},
address = {New York},
}

@InProceedings{terzi,
author = {Liu, K and Terzi, E},
title = {Towards identity anonymization on graphs},
booktitle = {Proceedings of ACM Special Interest Group on Management of Data (SIGMOD)},
year = {2008},
pages = {93--106},
}
17 changes: 9 additions & 8 deletions makefile
Original file line number Diff line number Diff line change
@@ -1,37 +1,38 @@
############################################################
# Makefile for AlphaProximity Suite #
# Makefile for GraphAnon Suite #
# #
# Copyright (c) 2015, Sean Chester #
# ([email protected]) #
# ([email protected]) #
############################################################

RM = rm -rf
MV = mv
CP = cp -rf
CC = g++

TARGET = $(OUT)/alpha_proximity
TARGET = $(OUT)/graphAnon

SRC = $(wildcard src/*.cpp)
SRC = $(wildcard src/*.cpp) $(wildcard src/labelled_graph/*.cpp) \
$(wildcard src/unlabelled_graph/*.cpp)

OBJ = $(addprefix $(OUT)/,$(notdir $(SRC:.cpp=.o)))

OUT = bin

LIB_DIR = # used as -L$(LIB_DIR)
INCLUDES = -I ./src/
INCLUDES = -I ./src/:./src/labelled_graph/:./src/unlabelled_graph/

LIB =

# Forces make to look these directories
VPATH = src:
VPATH = src:src/labelled_graph:src/unlabelled_graph

# By default compiling for performance (optimal)
CXXFLAGS = -O3 -m64 -march=native -mavx \
-Wno-deprecated -Wno-write-strings -nostdlib -Wpointer-arith \
-Wcast-qual -Wcast-align -std=c++0x
-Wcast-qual -Wcast-align -std=c++0x -fopenmp

LDFLAGS=-m64 #-lrt
LDFLAGS=-m64 -mavx -march=native -fopenmp #-lrt

# All Target
all: $(TARGET)
Expand Down
Loading

0 comments on commit 2f570dd

Please sign in to comment.