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:
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
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
The earlier conference version:
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
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
- CMake (version 3.4 or higher) for auto-generating a makefile
GraphAnon is built using CMake
. Create an out-of-source directory
(e.g., bin/
or debug/
) and then run cmake ../src
to generate a makefile.
Then run make
to build the executable. You can optionally run cmake
with the -DCMAKE_BUILD_TYPE=Debug
or -DCMAKE_BUILD_TYPE=Release
options to
compile explicitly in debug (for development) or release (for performance)
modes, respectively.
To clean the project, you can simply delete the out-of-source directory that
you created; e.g., rm -rf bin
.
The default input format is an adjacency list format. The first line gives the number of vertices in the file. Each subsequent line i includes a space-separated list of all nodes j for which the edge (i,j) exists, beginning with i=0. For example, the (undirected) Diamond Graph, with nodes numbered anti-clockwise starting from the bottom-most node, would be represented by the following adjacency list:
4
1 2 3
0 2
0 1 3
1 3
More examples can be found in the workloads/
directory.
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.
You can use this software, in part or in full, for any purpose.
This software suite may be updated and so you are encouraged to check
GraphAnon on GitHub 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.