It’s already week 9 and it seems as if time flew quickly! Just 2-3 weeks until the end of the project!
Expanding on what I worked on last time, I quickly went to work analyzing and attempting to fix the “0” output. After spending 1-2 days, I realized that it is because of a slight mistake in my implementation and the use of extremely large numbers. With that, I realized that we should not attempt to re-invent the wheel as using libraries can improve efficiency and security, as well as reduce time. I found a few different libraries, namely BouncyCastle, Tink (by Google), and Java’s native java.crypto classes. These are all grade/maven based libraries, and for ease of usage, I switched over to IntelliJ from Eclipse.
Discussing with my Mrs. Bhattacharya, we found out that there are some important factors that we must consider in this project. As this project deals with lots of P2P (peer to peer) networking protocols, all the server load is done on consumer machines, rather than servers in a far-away server rack. The problem there lies with two things: Data and Bandwidth usage for fast connections, and Battery Usage for laptops and especially mobile phones. These limitations are important to be highlighted as it shows that this solution and project has certain limitations in some use cases. As a developer and researcher, it is helpful to understand the strengths and weaknesses of each approach. However, this solution I am making is more of a proof of concept and with just local authentication, it is lightweight. Nevertheless, I plan to work on optimizations in the future, along with running exact tests and measurements.
I was also able to finish up some Visio diagrams. Below are some rough sketches of my application.