CSE208: Spring 2005 - Advanced cryptography: Symbolic methods for security analysis

Instructor: Daniele Micciancio

Time & Room: Tu/Th 12:30-1:50 (SSB 106)

Installing and running Murphi

This are some personal notes about installing Murphi3.1 on my own computer (Debian 3.0 / g++ 3.3). These are provided in case you use a symilar system or encouter similar problems. For general installation instruction see Murphi documentation / distribution files available from the Murphi webpage.

  1. Unpack "tar -xzf Murphi3.1.tar.Z"
  2. Precompiled version uses old libraries, so I needed to recompile the system. Recomple from src:

    Select "CPLUSPLUS = g++" in src/Makefile and run "cd src; make mu; make install; cd .."

    Change symbolic link bin/mu to the new binary: " cd bin; ln -sf mu. mu; cd .."

  3. In all ex/*/Makefile example directories add "CFLAGS = -DCATCH_DIV" (This is a required option to run the system on my computer. You need this only to test the examples.)
  4. In order to use "mu -c" option, change

    "friend hash_function;" into "friend class hash_function;"

    in include/statecl.h line 139. Why? I don't know. I guess somebody out there does not have anything better to do than keep changing the C++ syntax every year.

  5. Test: in ex/secur

    ./mu -c ns.m; make ns; ./ns -ndl

    This will test the Needham and Schroeder protocol. We will discuss how protocols are modeled in Murphi in class, but you may want to start looking at the ns.m file and see if you can make sense of it.