Project Ideas:
·
Secure Distributed File Storage:
In this
project, you will develop a solution such that it will be able to store a file
either locally or in a remote location (may be more than one remote location)
encrypted using CTR mode of encryption. Also the authenticity of each stored
file should be protected using HMAC algorithm (will be described in the class).
Each file should be encrypted with a
different key generated randomly and the key should be stored locally by
encrypting with a password provided by the user. For example, a user would like to store a
file named “file1” both in cs4.utdallas.edu and local directory. A sample
execution of the program (suppose, the name of the jave
bytecode file is “encfile” ) will look like this.
>
java encfile file1 local alice@cs4.utdallas/dir/
Once
the user Alice presses enter, the program will ask for the login password for
cs4.utdallas.edu. If more than one remote location is entered, program will ask
for the login password for each remote location. You can use ftp routines in the
java to enable storage to a remote site
It
will also ask for the password that will encrypt the key used for the
encryption and HMAC. You should make sure that the password that will be used
to protect the encryption key should be hard to predict. Also you should use a
good random source for key generation.
Once
the program is executed, it will encrypt the file using AES in CTR mode, create
a MAC using HMAC and based on the user preferences store the file either locally
or remotely. Program should try to take
measures against leaving the secret keys in the memory. Also it will save the file encryption key by
encrypting it with the user password. Also encrypted file will have “.enc”
suffix. For example, the above execution will create a “file1.enc” locally and “file1.enc”
in “cs4.utdallas/dir/”.
Your
program should be storing the each location where a given encrypted file could
be found and retrieve the file when it is needed. If the local version does not
exist or the authenticity of the file cannot be verified, program should
automatically retrieve a remote version.
Your
program should handle the case where a file is stored remotely only. For
example, it can be the case that
>
java encfile file1 alice@cs4.utdallas/dir/
By
running
>
java encfile file1.enc
The
program should automatically retrieve the file1 from a remote location.
·
Using Data Mining for Cryptanalysis:
It has
been shown that guessing the least significant bit of RSA algorithm
significantly better than random is equivalent to breaking RSA. In this project, given the RSA public key, (n,e), you will try to build Naïve Bayes
and Neural Network models that can predict the least significant bit of x, given only the and the public key . In
other words, you will try to build a machine learning model that can predict
the least significant bit of RSA using the public key. You should build two
machine learning models using WEKA
machine learning package for predicting the least significant bit of RSA
encrypted messages.
·
Solving
In this
project, you will implement a two party secure circuit evaluation with
semi-honest adversaries for solving