This week, we learned about various techniques to improve research paper comprehension, writing, and reading as well as different aspects/careers in research. Both the RCR training and project selection concluded, and we have finished an outline for our project website.
Did Week 1 presentation. Next time we need to separate our reflections when we present.
Completed abstract
Updated website based on Dr.Sen's recommendations and published it.
Had meeting with Dr.Sen and met PhD mentors
Read ch 1-3 of Introduction to Cryptography text book
Learned about modular arithmetic and finite fields. Both subjects are still very complicated to me, but I got a general overview.
Learned about elliptic curves, partially from text book, but also through videos, as it was a very hard concept to simply read about.
Covered traditional ciphers (e.g., shift cipher, substitution cipher)
Went through chapters 8-11 of Intro to Cryptography (only the required portions)
Learned about block ciphers, more specifically DES and Rijndael.
Covered key agreement protocols for secret key distribution. Also learned about public key distribution algorithms like RSA.
Learned about the use and inner workings of hash functions.
Reviewed Dr.Sen's abstract and compared it to ours, establishing what is necessary in a research abstract
Attended talk about the REU experience by Mr. Kim (a former REU student) and got advice on how to navigate the program.
Finished up readings for Intro to Cryptography textbook
Read ch.14 and learned about key exchanges and signatures.
Reviewed older chapters that were a little confusing and watched videos on concepts I didn't understand (e.g., ElGamal encryption, Paillier encryption, Merkle-Damgard Construction, etc.)
Started writing summaries of the concepts in Crypto I learned.
Read/Skimmed second Crypto textbook, it was a lot more math oriented. I am still not confident when it comes to the specific math involved in a lot of these algorithms/schemes; however, I am getting the general concepts of how they work. I definitely need to brush up on my discrete math skills.
Attended first meeting with PhD mentor Damilola
Re-read/skimmed chapters and wrote summaries for ch. 1-9 of the Intro to Cryptography text book, focusing on the implementation of block ciphers like AES and DES.
Read the articles sent by Dr.Sen
Also watched some Computerphile videos (channel suggested by Dr.Sen), which helped clarify a few concepts
Met with Emily and created outline for presentation based off of the structure Dr.Sen sent us
Completed about half of my presentation slides for Tuesday
Updated website based off Dr.Sen's suggestions
Continued working on presentations slides
Read more articles related to symmetric encryption and secret key distribution as a way to review the content I was going to put into my slides
Found helpful diagrams for the implementation of specific protocols
Finished most of my slides. I need to finish the secret key distribution slides and then practice what I will say.
Re-read ch.10 of intro to traditional crypto, reviewing hash functions and message authentication codes - these two concepts i've recently been struggling with
Started reading through introduction to lightweight cryptography
Did week 2 presentation
Had meeting with Dr.Sen
Got feedback on our presentation
Discussed the plan for this week
Did a final review of the concepts I learned in traditional cryptography - specifically asymmetric encryption
Skim/read the lightweight cryptography reading, noting the major points of the paper
Skimmed lightweight crypto paper once more, and began thinking about an outline
Had a meeting with Emily to talk about outline of lightweight crypto paper. We separated the sections we were going to read in depth
Began reading my sections in depth taking notes about patterns/categories I noticed
Met with Dami and began implementing java simulator. There were a few problems connecting with mongoDB so we could not finish the install. Tried trouble shooting on my own
Got new instructions from Dami to install mongoDB Community and was able to run the program.
Met with Emily to discuss the sections we read. Deduced to main categories of the paper: lightweight cryptography and ubiquitous cryptography.
Confirmed with Dr.Sen if our categories were what he was looking for.
After receiving Dr.Sen's feedback we decided to look over our sections of the paper again and identify protocols which fit the requirements of our domain. Met again later that day to share what we found.
We each picked 1-3 protocols from our section which we felt fit well, as well as decided on the protocol which we were going to research in depth for our week 3 presentation
Began slides for week 3 presentation
Had meeting with Emily
Chose a protocol to talk about in our presentation - GIMLI
Found papers related to GIMLI to gain a better understanding of it
Finished our slides
Practiced presenting my slides
played around with simulator, still some problem with database, but will work with Dami to fix
Did week 3 presentation
Had meeting with Dr.Sen to review presentation and talk about goals for the week
Read 2 papers related to current IoT network security protocols
Emily made a list of all the protocols in google sheets - I added a few protocols and then began checking if there are implementations of them available on google.
Messaged Dami about meeting for Wednesday. Ran the simulator to make sure everything was working properly.
Divided list of protocols in half and searched for python/java implementations of them on google/git
Began researching the protocols that had proper implementation to see if any would fit into the parameters of our simulator
Found a promising asymmetric key protocol - ECDH
Played around with java simulator - went through each line of the code to see how it works - was pretty confused but am hoping Dami will clear some things up
Continued researching protocols to see if they would fit parameters of our simulator
Read research papers related to certain protocols (e.g. NtruEncrypt, ECDH, SKINNY, etc.)
Had weekly meeting with Dami
Walked us through the simulator - which was extremely helpful
Gave us feedback on our presentation
Helped clarify the parameters of our simulator, and answered questions we had about the protocols we were already looking into
Walked through the simulator code again after getting Dami's explanation, which made things a lot clearer
Re-Read Dr.Sen's research paper - A Secure User-Centric Framework for Dynamic Service Provisioning in IoT Environments, to get a comprehensive understanding of the project and the goals we were trying to achieve. The paper now makes a lot more sense given the knowledge we have gained in the past few weeks.
Had meeting with Emily
Discussed the protocols we were going to research more in depth
I asked a few questions I still had on the simulator, as well as about implementation goals of the project
Began working on week 4 slides
Had a short meeting with Dami to gain access to IEEE papers - was finally able to access the ECDH paper I wanted to read
Read through the ECDH paper that Dami got me access to,. I also watched computerphile videos related to the protocol.
Finished my portion of the slides
Received Dami's updates for the java simulator. First I compared and contrasted the different codes as Dami recommended, then I updated the simulator accordingly.
Did week 5 presentation
After receiving Dr.Sen's feedback, we continued to shortlist lightweight protocols
Began going more in depth with the protocols for which we had implementations for, reading through the code, making sure I understood how it worked and if it was feasible to actually integrate into our simulator.
Continued playing with java simulator, looking more closely at any code related to security preferences.
Analyzed implementations for ECDH and NtruEncrypt as they are both public key protocols that could be useful in our simulator
compared and contrasted the two in order to figure out how they could accommodate user preferences
Had meeting with Emily, discussed tasks we needed to do for this week and talked about things we were confused about.
Emily shared papers relating to IoT devices performing multiple security protocols simultaneously
Finalized the list of protocols we were comfortable with implementing
Registered for mid-SURE
Created detailed description of protocols we have decided to implement
I covered Ascon, ECDH, and NtruEncrypt
Created a rough draft of the user preference selection process
Had weekly meeting with Dami.
Discussed lingering questions on overall project and genetic simulator.
Walked through the machine learning simulator.
Had meeting with Emily
Discussed user preference selection process.
Messaged Dami about implementing ML simulator
Began working on our mid-term presentations, leaving a few slides empty until we get some more information from meeting with Dr.Sen on Friday
Read through ML framework on my own this time. Wrote down lingering questions.
Continued working on midterm presentation slides
Had meeting with Dr.Sen
He clarified how the different simulators connect to the overall project, as well as specified where we will be implementing the protocols that we selected
Helped us with our mid-term presentation slides
Gave us a rundown for the last few weeks of the program, re-assuring us that we were making good progress and giving us goals for next week
Implemented the environment for the ML simulator.
Did our Midterm presentation
Had meeting with Emily to talk about what protocols we were going to implement
Had a discussion on the structure for the user selection process- it will probably be a little different than what we had initially written down.
Worked on getting the ML simulator fully functioning on my laptop
Implemented Ascon in VSCode - Was able to encrypt and decrypt "hello world"
Code was pretty clean, so it was easy to follow and understand, they also had demos which was very helpful
Ascon also had three family members for encryption: Ascon-128, Ascon-128a, and Ascon-80pq. Each vary in key size, rate, and # of rounds. I ran all of them to see how the out put changed.
I attempted to implement ECDH however the code would not run, despite all my troubleshooting. I believe the error had something to do with the code being relatively old.
I found different code which I am hoping will run
Had meeting with Emily. Discussed our progress with the implementation, both of us are running into issues with some of our protocols.
I attempted to implement the new code for ECDH I found. Unfortunately, it also didn't work despite my trouble shooting, however, Emily found an implementation for NtruEncrypt, which is another lightweight public key protocol.
Had meeting with Dami
Got feedback on presentation
She helped us with ML simulator, familiarizing us with the environment and running our code
Dami also sent us the cup carbon simulator to try to implement before Sunday
Implemented the NtruEncrypt code. Despite a few difficulties it ended up running; however, there was a lot of code so it took some time to read through properly in order to understand what was going on.
There are several family members for encryption, each member prioritized different factors (ex. speed vs key size, block size vs. key size, speed vs. block size, etc.)
After receiving Dr.Sen's feedback I began testing the protocols (specifically Ascon and NtruEncrypt). I tested how long it took for key generation, encryption, and decryption (wherever it applied). I also checked for the size of output.
NtruEncrypt had some built in tests which was super helpful, as it automatically could tell me how long the different encryption algorithms needed to run.
I needed to make my own tests for Ascon to test for speed.
Created tests for Ascon, measuring encryption and decryption time.
Had meeting with Emily
Sent her my tests for Ascon
Worked on week 6 presentation
Discussed each others implementations and the results from our testing
Started implementing the cup carbon simulator
Sunday, June 27th:
Had a meeting with Dami to discuss cup carbon simulator/implementation - We were all essentially in the same place in terms of implementation
Completed installation process
Re-structured our process diagram
Finished up week 6 presentation with Emily.
Did week 6 presentation
Played around with cup carbon simulator - still not fully working on my laptop
Emily sent over the Present protocol code to see if it would work on my device
Was able to get cup carbon simulator fully working/installed
Played around/familiarized myself with the user interface, reading the instruction pdf it came with.
Attempted to run Present protocol on my laptop. It did not work.
Had meeting with Dr.Sen
Got feedback on our week 6 presentation
Discussed goals for the last couple of weeks - July 25th we must submit everything for mid-Sure workshop
Need to make graphical representations of our protocol results
Based on our results we need to adjust our user selection structure
Get familiar with cup carbon simulator, specifically the place where we need to inject our protocols/code
Had meeting with Dami
Discussed cup carbon simulator - decided to have a joint meeting Dr.Sen on Thursday with so that he could walk us through simulator.
Talked with Emily and decided that I would focus on the asymmetric protocols, while she focuses on symmetric.
Walked through NtruEncrypt code, and took in depth notes about the different modes of operation
There are 10 different versions of the algorithm
Wrote out tests for NtruEncrypt - tested the different algorithms
Compared NtruEncrypt with popular public key protocols (e.g. ECC, ECDH, RSA, etc.). Made a table of the results.
Had meeting with Dami - Dr.Sen couldn't make the meeting so we re-scheduled
Had meeting with Emily
Worked on week 7 slides
Updated user selection structure, discussing the specific protocols in each
NtruEncrypt will be used for symmetric key distribution on all the protocols, however the modes will change.
Began creating bar graphs for NtruEncrypt
Read papers related to NtruEncrypt to understand how the protocol works
Received Emilys protocols and ran tests on my computer
Met with Emily and completed bar graphs for week 7 presentation - presentation was moved to Thursday
Continued researching NtruEncrypt, and reading documentation of code to understand how it works.
Had meeting with Dr.Sen, Dami, and Emily
Dr.Sen explained the cup carbon simulator and pointed out the places we needed to focus and inject our code
Dr.Sen also gave us our goals/timeline for the final weeks
Tried running cup carbon simulator, and attempted fixing the issues with running the simulator
Updated user selection structure even further, specifying the modes of NtruEncrypt which will be used for each level.
Regular - APR2011_439_FAST
Strong - EES1499EP1_FAST
Extra Strong - EES1171EP1
Updated tabular graph for benchmarking asymmetric protocols, included it in week 7 presentation slides.
Read through some of the documentation of the cup carbon code to try and find the starting user interface
Did week 7 presentation
Had meeting with Dami and Emily
Dami was having some issues getting the simulator to run on her lap top so we tried trouble shooting with her
Emily and I read through the cup carbon code, and found the user interface section of the program. This will be our strating point in order to find the places we need to actually edit
Agreed to meet on Sunday again to talk about simulator
Began messing with the interface of Cup Carbon, still haven't gotten simulator to properly run however.
Tried getting simulator to run again
Read more of the documentation of the cup carbon code - Finally got simulator to properly run!
Trying to familiarize myself with the sen-script stuff, as that is where our security protocols are going to be implemented
Tried messing with the user interface to see what different things it does.
Began looking into the final project deliverables that Dr.Fu sent over to see how we need to format our posters/reports
Helped Emily and Dami get their simulators to run by sending them the instruction I used
Continued working with cup carbon simulator
Read cup carbon user guide and simulation document to learn about the sensor script code, as that is what we need to focus on editing in order to implement security -- I still can't seem to figure out where exactly we need to inject our protocols, as the code is extensive and not properly documented
Started the final draft of the user selection guide, specifying security level, general description/benefits, and detailed description of implementations, along with proof as to why its secure.
Had meeting with Emily and Dami
Discussed our experiences with the CupCarbon simulator. We were all getting the same message on the console, and are trying to figure out what it means. Dami will be messaging Dr.Sen about it
Dami showed us the Overleaf platform, which is where our paper will be written in IEEE format. She gave us a tutorial on how the platform worked, as well as a template for our paper.
Agreed to ask Dr.Sen for help as to where we should be implementing our protocols -- I messaged Dr.Sen on slack
Had meeting with Emily
Discussed her edits to the interface in order to get the correct options displayed based on our user selection structure
Talked about the location of the buffer of the data packets, there are a few places that we think it could be located, however its still a bit confusing
After receiving Dr.Sen's feedback I read Example 7 of the cup carbon user guide to understand how sending and receiving messages on the interface works.
Began searching for ".csc" file extensions in the code, as that is where the senscripts are loaded (a.k.a the buffer). This definitely narrowed down the location of where we will be implementing our code.
Finished final draft of user selection guide
Implemented Emily's edits to the cup carbon simulator - she was able to change the interface to display the proper security options
I did run into the problems with the simulator. Although I was able to change the interface, it now no longer runs properly.
Continued reading through Cup Carbon Code - Found a few places that could potentially be the location of sending and receiving messages.
Read through more of the Cup Carbon user guide to get an idea of how the simulation works
Began editing our final report on Overleaf - Added authors, title, abstract, key terms, and began introduction
Tried to fix my Cup Carbon Simulator, reverting it back to the older version and then adding the edits in again. Unfortunately, it still did not run, which is strange because Emily's simulator runs
Emily sent me her version of the simulator, so I deleted mine and installed hers. This fixed my problems.
Had a meeting with Dr.Sen
We showed him the progress we made when it came to editing the interface
We also showed him the locations where we believe the messages were being sent and received - which Dr.Sen told us were incorrect
Dr.Sen showed us the correct .csc files and explained the abstraction process
We will now be spending all our efforts into implementation
He gave us a timeline for the last couple of days of the internship
Spent weekend trying to figure out how the .csc files worked, tested out implementing the hash command in the senscript, as that is what would be most closely related to our encryption.
Created rough draft of poster based off the one Dami sent us
Began making rough draft of final presentation
Met with Emily
Finished up poster rough draft
Finished final presentation
Had meeting with Dr.Sen
He edited our poster - completed final draft for presenatation
Dr.Sen also edited our slides and gave us notes on what to emphasize during our presentation vs what to skim over given we only had 12 minutes to present
Discussed exit day plans and what we needed for our final deliverables
Did our final presentation - presented our poster as well
Worked on final report for Dr.Sen