Miyamura High School (90)/Interim Report

Interim Report
http://mode.lanl.k12.nm.us/get_interim1112.php?team_id=90

Problem Definition:
The world is becoming increasingly electronic due to the growing influence of computers and the internet. Network security is essential to the government, to many companies, and is one of the things that makes common users want to use features like email and social networking. People desire to send information at speeds and in formats that only the internet makes possible, but no one wants to share all their information or let it be accessible to irresponsible people. Therein exists the importance of network security.

Problem Solution:
Many encryption algorithms and security methods exist already. We do not expect to create an equally advanced system, but we hope to provide a basis of encryption knowledge/security that allows us to potentially contribute to the field either through developing a practical new method or learning what is feasible and desirable in the future of cryptography.

Progress to Date:
We have sought out mentorship for python as well as a cryptography mentor and are looking in to another. Josh is currently learning python with the help of Alanna. We have had some problems with communication with our team member Jayden. He moved at the end of the first quarter to Phoenix and it has been very difficult to keep in good contact with him. We have been researching how sockets in python fit together as well as different ways of securely sending information utilizing public-key and symmetric ciphers. Also we have been researching methodology such as that used in Tor or onion software. We have looked at some digital signatures and hash functions. The specific method we wish to create has not yet been determined but we may use the onion method in it.

Expected Results:
We expect to create a series of programs that can be run simultaneously on multiple machines and securely send data from one node to a final node via a series of other nodes. Each passing node shall contain either public, private, or a combination of decryption keys which the final node will need to decrypt the message. We are also toying with the idea of splitting up key sequences, but we have yet to research the feasibility, speed, and practicality of doing so. Ideally, the message we send will have to collect information from a fixed number of nodes (probably three or four) before being able to decrypt at the final node. The challenge in this lies in maintaining the same high level of security at all transmissions of the message. Hopefully we will be able to discuss this with a cryptologist in upcoming weeks and be able to decide on a specific plan.

Citations:
Jesse Crawford, Python mentor John Donahue, cryptology mentor Tor Project: http://www.torproject.org/about/overview.html.en Cryptology and Python: http://www.python.org/workshops/1995-05/pct.html Cryptographic concepts: http://www.gnupg.org/gph/en/manual.html#CONCEPTS

Interim Comments
While this sounds like a fun and interesting project and you're making progress on learning crypto and Python (both useful things to know if you plan on a career in computer science), I really don't see how you are planning to use supercomputing in this project. Tor's main goal is to hide a source's real IP address from the destination by routing each packet through several nodes. Each node encapsulates the received packet in a new encrypted packet so that the next node only knows about the previous and next node in the path. It sounds like your plan is not to anonymize, but to encrypt multiple times as a defense-in-depth strategy so that data cannot be decrypted if a single node's private key is compromised. If that's so, there may be applications of this type of research in distributed computing projects where sensitive data is passed across the Internet. However, the process seems to be inherently serial (i.e., one node encrypts then passes it to the next node, and so on) so I'm not sure how you're going to use supercomputing to approach the problem. If you would like to see an already existing method for encrypting very large files using parallel processing (not quite the same as your idea, but an idea involving encryption and supercomputing), check out CudaCrypt. Perhaps this proposal may also be worth consideration as it has yet to be implemented or proven?

To alleviate the communication issues with Jayden, I would try to set up a good time to meet on a weekly basis to discuss tasks that need to be completed. If you cannot all work out a time to meet, try setting up a Google Group or Git repository to share code and ideas. Then, people can respond when they have time. Make sure to hold each other accountable for getting tasks completed on time and let each other know if you are struggling with something.

Feel free to email me if you have any questions.

--James Wernicke 08:44, 5 February 2012 (PST)