Project
Ideas
These projects are for the committed student who wishes to excel.
Remember these are just ideas. Most are not "thought out" in any
detail. Some of these ideas, if taken further, are suitable for postgraduate
research. I don't really mind if ideas are taken by more than one individual.
Suitable for all:-
- A busy restaurant has a
CCTV camera positioned vertically over every table. A computer
periodically (every minute or so) takes a still shot of every table and
then analyses it. The result of the analysis should be either YES the
diners have finished their course, or NO they haven't. Normally YES is
indicated by empty plates, and knives and forks laid
down on the plate in parallel. NO is indicated by full plates and knives
and forks crossed. Write an image processing program which can analyse
such a photograph and get the right answer 95% of the time.
- Write a "Bird-song
identifier" program for the PC. It should listen to birdsong via the
microphone, and identify the birds in real-time. Ideally it should
separate out and identify individual birds.
- Create an animation that
illustrates one or more aspects of the operation of any modern block
cipher, for example the effect of diffusion, the error propagation of
chaining modes, or the onset of avalanche. *
- AI Spam Killer.
Artificial Intelligence my arse as they like to say in Dublin - yes as far as AI is concerned I
am a confirmed skeptic. But surely if AI can
deliver anything useful it should be possible to create an AI-based Spam
identifier and killer. Again such a program could sit between the mail
client and the server. So prove me wrong and write one that really works.
It should even be feasible for such a program to "learn" what a
particular user considers as SPAM by observing differences between what
he/she accepts as genuine email, and that which they reject as Spam. Yeah
right.
- Write some example
programs for the winmips64 simulator http://www.computing.dcu.ie/~mike/winmips64.html
. For example the original computer
game Pong, or Space Invaders, or Conway’s
Game of Life http://en.wikipedia.org/wiki/Conway's_Game_of_Life *
Suitable for good CA4's and MSSF practicums:-
- The latest research in
Cryptography is regularly published at http://eprint.iacr.org/ . This is a
rich source of project ideas, many of which would be suitable for both
undergraduate and postgraduate research. For example see the papers
entitled "Timed-release Cryptography" and "Digitally
watermarking RSA moduli".
- Protection of software
in an open environment like the internet is difficult. One idea is to
randomly transform the program source code in a unique way for every
executable created and sold, in a way that does not effect its function.
Then encrypt the executable using a key "hidden" in the code.
See www.cloakware.com ,
also http://www.cloakware.com/pdfs/SAC2002-CW.pdf
. Implement a block cipher and "hide" the key in some effective
manner.
- Another method for
protecting source code is via "obfuscation". Basically the
source code is transformed to a form incomprehensible to a human, but
still compilable by a compiler. A simple
approach would be to give all the variables obscure names like A111$,
A112$ etc. Many ad-hoc schemes have been suggested. Make up your own, or
implement the method described in http://search.ieice.or.jp/2003/pdf/e86-a_1_176.pdf
- Write a program to solve
the generalized Pell equation. See http://hometown.aol.com/jpr2718/pell.pdf
for algorithms. Use the GMP library http://www.swox.com/gmp/
to handle the big numbers. Your function should be very fast, and should
return all solutions starting with the smallest up to some large limit. (I
have a cryptographic use for such a function). This project would suit a
Mathematics student. *
- Electronic voting. What
a bad idea. Democracy by its very nature should involve as many people as
possible, not machines and a handful of "experts". However it is
an interesting area of research, and cryptographers can make a
contribution. See the Caltech/MIT voting technology project at http://www.vote.caltech.edu/
and read http://www.vote.caltech.edu/Reports/workingpapers.html
. For lots of links on Electronic voting see http://www.tcs.hut.fi/~helger/crypto/link/protocols/voting.html
- Have a look at Ross
Anderson's paper "The Dancing Bear - A New Way of Composing Ciphers"
http://www.cl.cam.ac.uk/ftp/users/rja14/grizzle.pdf.
Use these ideas to implement novel protocols.*
New 2004/5 project ideas
- Implement a software
simulation of “Key Infection: Smart Trust for Smart Dust” http://www.cl.cam.ac.uk/users/rja14/Papers/key-infection.pdf
. Verify the conclusions and see can you think of a way of extending the
results.
- Investigate the
possibilities for “Time Release Cryptography” as described in http://eprint.iacr.org/2004/231/ and http://eprint.iacr.org/2004/211/. *
- Remembering a cryptographically secure password can be a problem,
so maybe it’s easier to remember a picture. A possible solution –
graphical passwords. See http://search.ieice.or.jp/2004/files/e000a10.htm#e87-a,10,2543.
You will need to get a (free) subscription
to the service before you can download the paper.
- Investigate the
possibilities for Visual Cryptography – see http://eprint.iacr.org/2004/287/
. Read the paper and track down the references, especially those by Naor & Shamir. *
- Write a simple email application as in www.coldmail.com. Note the use of a
CAPTCHA code to identify a human user… www.captcha.net.
Or, write an image processing program which can read CAPTCHAs.
See Yahoo mail for another example of the use of a CAPTCHA.
New 2005/6/7 ideas
- Investigate, implement and maybe extend this attack on GSM mobile
phone encryption http://cryptome.org/gsm-crack-bbk.pdf *
- Investigate, implement and maybe extend this idea - http://eprint.iacr.org/2005/428.
“Loud and Clear: Human-Verifiable
Authentication Based on Audio”. Nice idea. Have a look at their video http://www.ics.uci.edu/ccsp/lac *
- “They” say that
certain foreign governments routinely search through all transmitted
emails looking for certain keywords. Ever wonder if its true? Here is a
sure-fire way of finding out http://www.computerbytesman.com/privacy/emailsnooping.htm.
Clever isn’t it? A large scale experiment
based on this idea would make for a very interesting project..
- CPUZ is a very
useful program for windows – see www.cpuid.com/cpuz.php
. It tells you everything you need to know about your computer
architecture. Write a similar utility for Linux (or for an Apple Mac).
- Implement a
graphical simulation of a 3-D crane. The equations of motion can be found
here http://www.chochieh.com.tw/download/inteco/paper01.pdf
. This might form the basis of a game where the computer user has to pick
up objects from one place and drop them in another. Use standard numerical
integration algorithms for the simulation. *
- The IBM/Sony Cell
processor (as used in the playstation 3) has 8
co-processors with 128-bit registers. IBM allow access to free software
development tools. The AES (Advanced Encryption Standard) has a 128-bit
block size. How fast can the AES be implemented on this processor? *
- DCU, at some
expense, is about to launch a Research Assessment Exercise, to see how
good our research output really is. Implement a tool like publish or perish
that points at the staff list of a University
department and gives it an instant rating. Compare DCU with the rest and
show we are the best! *
- Recently
Cryptographers have broken the Keeloq system
used to protect the majority of car locks. See http://eprint.iacr.org/2007/062
and http://www.cosic.esat.kuleuven.be/keeloq/keeloq-rump.pdf and google
for latest developments. The claim
is that the secret key which opens the door can be found on some PCs in a
few hours. See can you replicate this attack. Do not steal any cars! *
- Mobile phone RSS
reader with compression. RSS feeds tend to be domain specific often
re-using keywords. This makes them suitable for batch block compression
which would speed up data transfer. Implement a client-server application
(using Java ME?) with a mobile RSS viewer that uses data compression
(maybe like LZW?). Idea from Neil Costigan.
- Implement some or
all of the new NIST recommended Cryptographically Secure Random Number
Generators. See http://csrc.nist.gov/publications/nistpubs/800-90/SP800-90revised_March2007.pdf *
- Want to use your Playstation 3 to break some cryptosystem? See http://computerworld.co.nz/news.nsf/scrt/C50D36EFEC2B482ACC2573A00070EF83
*
- There is still some
fun to be had breaking the wireless network security protocol WEP. See http://eprint.iacr.org/2007/471
New 2008 ideas
- Poor security on
laptops is all the news. But even good looking encryption software can be
bypassed. See http://www.freedom-to-tinker.com/?p=1257
and http://www.news.com/2300-1029_3-6230933-1.html.
It would make an interesting project to
implement this idea. (Thanks to Tommy Murphy who brought this to my
attention). *
- Create a Web-site
www.findmeahuman.com. You want to make a phone call to some utility. You
are sick of getting “Dial 1 for this, dial 2 for that”. You want to talk
to a human. This website uses Skype or somesuch
to place the call and automatically search through the call tree to find a
human. Use AI to tell a human from a recorded message. When it does
connect to a human, it rings you back. Your computer takes on their
computer on your behalf. *
- Write a program t
o use mobile phones and Bluetooth to make everyone’s life easier at
parties – implement “More Efficient Match-Making and Satisfiability:
The Five Card Trick.” Den Boer, Eurocrypt
1989 *. Google for details.
BTW if you are an ex-DCU graduate browsing (or anyone else for that
matter), and have a project idea, please let me know at mike@computing.dcu.ie
IP Policy
If as the result of taking on one of
these projects you, the student, come up with an idea constituting valuable
Intellectual Property (IP), then the resulting IP belongs entirely to you, the
student.
This policy is in line with the
School policy on IP as outlined here
http://www.computing.dcu.ie/news/newsitems/sem2_01/intellectual_property.htm
Just because I suggest an idea, does not mean that I am willing to
supervise it. I may be interested in
supervising projects marked with an asterix *.