fredag den 25. november 2011

Frameworks and Languages for SMC


  • SMCL: J. Nielsen and M. Schwartzbach. A domain-specific programming language for secure multiparty computation. In PLAS ’07: Programming languages and analysis for security, pages 21–30. ACM, 2007.

  • PySMCL: S. Meldgaard, CACE project deliverable D4.5.

  • EDSL in Haskel: A domain-specific language for computing on encrypted data
    A.M. Bain, J.C. Mitchell, R. Sharma, D. Stefan and J. Zimmerman.

  • Fairplay: Dahlia Malkhi, Noam Nisan, Benny Pinkas, and Yaron Sella. Fairplay - Secure Two-Party Computation System. In USENIX Security Symposium, pages 287–302. USENIX, 2004.

  • FairplayMP: Assaf Ben-David, Noam Nisan, and Benny Pinkas. FairplayMP: a system for secure multi-party computation. In Peng Ning, Paul F. Syverson, and Somesh Jha, editors, ACM Conference on Computer and Communications Security, pages 257–266. ACM, 2008.

  • VIFF - The Virtual Ideal Functionality Framework. I. Damgaard, M. Geisler, M. Krøigaard, and J. B. Nielsen. Asynchronous multiparty computation: Theory and implementation. In Public Key Cryptography, pages 160–179, 2009.

  • Sharemind: D. Bogdanov, S. Laur, and J. Willemson. Sharemind: A framework for fast privacy-preserving computations. In ESORICS, pages 192–206, 2008.

  • SMCR: Peter Bogetoft, Ivan Damgaard, Thomas Jakobsen, Kurt Nielsen, Jakob Pagter, and Tomas Toft. Secure computing, economy, and trust: A generic solution for secure auctions with real-world applications. Technical Report RS-05-18, BRICS, June 2005. 37 pp.

  • FastGC: Y. Huang, D. Evans, J. Katz, L. Malka. Faster secure two-party computation using garbled circuits. In USENIX Security’11, pages 539–554. USENIX, 2011.

  • GMW protocol: S. G. Choi, K.-W. Hwang, J. Katz, T. Malkin, D. Rubenstein. Secure multi-party computation of Boolean circuits with applications to privacy in on-line marketplaces. In Cryptographers’ Track at the RSA Conference (CT-RSA’12), volume 7178 of LNCS, p. 416–432. Springer, 2012.

  • HEKM: Faster Secure Two-Party Computation Using Garbled Circuits, https://www.cs.umd.edu/~jkatz/papers/usenix2011.pdf

  • VMCrypt: Modular Software Architecture for Scalable Secure Computation, https://eprint.iacr.org/2010/584.pdf

  • SALUS: S. Kamara, P. Mohassel, and B. Riva. Salus: A sys- tem for server-aided secure function evaluation. In Proceedings of the ACM conference on Computer and communications security (CCS), 2012.


torsdag den 9. september 2010

Commiting only parts of a file in Mercurial

Let say you have a file and by accident changed two unrelated part of the file. Now it would be nice if one could commit each of the changes in their own changeset.

The solution for Mercurial is an extension called record.

You enable the extension in your hgrc file. You would properly want to do it in the ~/.hgrc file to make it system wide.
Just add:

hgext.record =


Then you just write:
hg record


You might also consider these other extensions:


hgext.fetch =
hgext.churn =
hgext.mq =
hgext.patchbomb =
hgext.graphlog =
hgext.highlight =
bfiles = ~/path_to_bfiles

onsdag den 8. september 2010

Installing ec2-ami-tools on AWS Ubuntu 10.04 image

I have just spend a disproportionate amount of time solving this simple question.

It is actually pretty easy: Enable the multiverse reposity, update, and install.

The multiverse repository is enable by editing /etc/apt/sources.list

sudo nano /etc/apt/sources.list


Change:

deb http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ lucid main universe
deb-src http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ lucid main universe
deb http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ lucid-updates main universe
deb-src http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ lucid-updates main universe
deb http://security.ubuntu.com/ubuntu lucid-security main universe
deb-src http://security.ubuntu.com/ubuntu lucid-security main universe


to:

deb http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ lucid main universe multiverse
deb-src http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ lucid main universe multiverse
deb http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ lucid-updates main universe multiverse
deb-src http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ lucid-updates main universe multiverse
deb http://security.ubuntu.com/ubuntu lucid-security main universe multiverse
deb-src http://security.ubuntu.com/ubuntu lucid-security main universe multiverse


Now run:
sudo apt-get update


and install:
sudo apt-get install ec2-ami-tools

fredag den 18. december 2009

Continious Integration

Today I have install my first system for continious integration (CI). Initially I thought that I would be using Cruise Control. Mainly because it is used on the Fortres project which I have been involved with, so I know that it works well. However I have never installed it myself, or configured it.

I downloaded Cruise Control and got it running the accompaning example within minutes. But trying to add my own java project in a mercurial project wasn't as easy as I would have liked. A colleage of mine suggested that I looked at a CI system called Hudson, and I liked what I saw. It prmissed Web interface for defining builds, easy setup, and easy integration with mercurial.

I downloaded Hudson, and within minutes I had it running my own java project from a mercurial repository. Building every 5 minutes and when changes where discovered in the repository.
It is as easy as java -jar hudson.war --httpPort=7000 to get it running on a non standard port (the default is 8080). Then go to http://localhost:7000 where you find the Hudson dashboard. From the dashboard you can easily create build jobs.

I am no expert on CI but Hudson seems like a great system and not only for Java. Also Hudson supports distributed builds.

All in all, I like what I see.

mandag den 4. maj 2009

Python setlocale on Windows XP

In a development project we had some problems with guessing the correct locale string on Windows XP, and there seems to be no copy'n'paste solution on the web, so here it is:


# Import sys packages.
import locale
import os


local = 'da_DK' # Danish locale unix: 'da_DK'
if os.name is "nt":
    local = "Danish_Denmark"
# Danish locale on Windows: "Danish_Denmark" or "Danish"




 

locale.setlocale(locale.LC_ALL, local)


See the following links for inspiration on how to guess your locale:

http://msdn.microsoft.com/en-us/library/hzz3tw78(VS.80).aspx 

http://msdn.microsoft.com/en-us/library/39cwe7zf(VS.80).aspx

søndag den 8. juni 2008

Java 5 Grammar for Sablecc 3.2 - Now with copyright

I have finally found the original author of the Java 5 grammar for SableCC that I posted here. I contacted author and the file has now been updated with appropriate author and license information.

Adding GPL or LGPL license information to a distribution is quite forward. There is a very straight forward howto: here at gnu.org.

Also I have added license information for my accompanying prettyprinter class. Both are available for download as tar-balls,
here and here.

tirsdag den 4. marts 2008

Sun certified Java Programmer

Yesterday I went to the Prometric testing site here in Austin to take my Sun certified Java Programmer Java SE 6.0 exam. After more than 3 hours of counting parenthesis and trying lure pitfalls and traps out of small pieces of Java code I hit the "end" button and a test report was printet. I went out of the testing room and was handed the test report which showed that I passed, hurray! :)

So now I am officially good at writing Java code. This might seem like a joke especially since I have spent quite some time studying programming language at large and written a substantial number of lines of Java code. Even so I must admit that I have learned quite a bit about Java during the preparation for the exam. This surprised my at first, but then I noticed that I only use a rather well defined subset of Java and didn't think that much about the rest of the language, because I didn't need that :) Well so I thought, but I have learnt some new stuff, and even some of it that I can put into good use when I write my next Java class. So studying for these kinds of exams can have some value. And then it is fun to dig out the corner cases and understand how the various parts fit together :)