Sergei Skorobogatov's student project suggestions for 2010/2011 academic year
Here are some ideas towards Part II and Diploma projects in
Computer Science. The descriptions provided are only vague ideas, not
ready-to-use proposals for a particular type of project.
I will take care after all of the hardware designs necessary for
the projects, so unless explicitly requested most of the projects will
involve only writing software (either for a PC or for an FPGA).
Dynamic reconfiguration of non-volatile FPGAs
Resources:
- FPGA development board with Actel ProASIC3 FPGA
- PC with free-licensed Libero software
Details:
Intellectual property (IP) protection is a major concern for modern
hardware systems. Since modern non-volatile FPGAs offer both low-cost and
security protection, it became popular to use such devices as a source of
affordable boost to system's security. On the other hand, the lack of
low-level documentation does not allow an easy way of changing the secret
keys and passwords within those FPGA chips. This puts the whole system
under a serious threat since an attacker can take full control over all
devices in the field by breaking just one of them. The solution is to embed
unique keys into each device and use strong challenge-response protocol.
However, as the key bits are the part of device configuration stream,
the process will require recompilation of the design for each device.
This is not desirable as it takes a lot of time and resources. The
solution to the problem is in partial reverse engineering of the device
configuration stream, so that the developer can easily reconfigure part
of the design responsible for the security. Since this does not require
full recompilation of the design, this process can be easily automated
and unique configuration stream can be produced for each device. This
will make cloning of the devices useless as each clone will have the
same ID which is easily detectable.
Current challenges:
- Learn the documentation on Actel ProASIC3 FPGAs and learn
development tools
- Develop an algorithm to find locations of any changes in the device
configuration
- Write program which will analyse the changes and build database
- Write program with user interface to allow serialisation or key
modification
Laser scanning with a motorised stage
Resources:
- Optical microscope with laser pointer (less than 5mW, classII)
- Motorised stage controlled via TCP/IP
- Digital oscilloscope with TCP/IP interface or digital multimeter with GPIB interface
- PC with Ethernet and GPIB card or USB-GPIB adapter
- Visual C++ and/or MatLab
Details:
Laser scanning is used in semiconductor failure analysis for various
applications from detecting p-n junctions to reading the transistors'
state. The project is aimed on buiding a laser scanning system that
moves the sample using a motorised stage so that the laser hit all the
points on the surface. The response should be acquired with either an
oscilloscope or a digital multimeter. Then the acquired data should be
downloaded and analysed in software. Finally, the result should be
presented in a suitable graphical form.
Current challenges:
- Learn the documentation for motion controller and implement
communication using provided drivers
- Learn the documentation for digital oscilloscope or digital
multimeter and implement data acquisition in software
- Build a control system which moves the stage and acquires the data
- Write user interface to display the result graphically either in
Visual C++ or in MatLab
Merging digital images
Resources:
- Mosaic images taken with a digital camera using a microscope
- Visual C++ and/or MatLab
Details:
High-resolution pictures of semiconductor chip surfaces are used in
semiconductor failure analysis for postproduction analysis and to locate
any failures. Once the surface of a semiconductor chip is photographed it
is necessary to combine all the images together into a single database.
Two approaches can be used: one is to cobine all the images into a single
graphic file which then can be navigated using a standard graphic editor,
for example GIMP; another is to build a user-friendly shell to navigate
over the database with many images and possibility to zoom in and out,
measuring distances between any objects and retracting relative coordinates
for any point. Maintaining several layers synchronised to each other will
be beneficial.
Current challenges:
- The images are taken with overlapping to prevent any possible loss
of information
- Combining the images taken with high magnification (>1000x) will result
in thousands of images to be merged into a single file. Such file will be
very difficult to manage
- When merging images, some image processing techniques should be used
to make the overlapping edges smooth
High-resolution data acquisition system
Resources:
- FPGA development kit with on-board ADC
- PC with Quartus II software
- Visual C++ and/or MatLab
Details:
Digital oscilloscopes normally have 8-bit resolution, but very fast
acquisition speed - gigasamples per second. For many aplications, for
example power analysis, higher resolution is essential while the
acquisition speed can be reduced to hundreds of megasamples per second.
Such systems can be implemented with a standard FPGA boards.
Current challenges:
- Knowledge of the FPGA development and Quartus II software and
Verilog programming is beneficial
- Learn the FPGA development kit
- Write a program in Verilog to acquire the data at specified speed
and required event
- Write user interface on a PC to transfer the acquired data from the
FPGA board to PC and display the data trace using Visual C++ or MatLab
Video signal enhancement
Resources:
- Camera with video output
- FPGA development board DE2 used in ECAD Labs
- PC with Quartus II software
Details:
When digital cameras are used in dark environment, the video signal become
noisy. This poses even a bigger problem to infrared microscopy imaging. To
reduce the noise level and enhance the image, some digital signal processing
techniques can be used. The simple one is signal averaging which can be
effectively used if the picture is stationary. Another techniques involve
various digital filtering methods which are also suitable for dynamic pictures.
Current challenges:
- Digital signal processing of the video signal in real time
- Knowledge of the FPGA development with Quartus II software and Verilog
programming is beneficial
- Learn the FPGA development kit and examples for video signal processing
- Knowledge of digital signal processing is beneficial
Sergei Skorobogatov
<Sergei.Skorobogatov (at) cl.cam.ac.uk>
created 06-10-2010 -- last modified 06-10-2010 -- http://www.cl.cam.ac.uk/~sps32/