Learned about various techniques to improve research paper comprehension, writing, and reading as well as different aspects/careers in research
Both RCR training and project selection have concluded
An outline was finished for our project website
Presented our week 1 project presentation
Note: Ensure the next presentation has separate reflections
Polished the website as per Dr. Sen's recommendations
Addition of separate blogs, a presentation tab, and a rough draft of the abstract
Read the assigned literature on Traditional Cryptography
Public key and conventional cryptography
PGP
Read some of the lightweight cryptography paper
Attended Mr. Kim's presentation on graduate research
Read/skimmed the chapters 5,11,13 on Traditional Cryptography
Different types of finite fields, hash functions, projective/affine space
Reread/took notes on what was chapter 1 and chapter 3 and 4 of the assigned Cryptography textbook (block ciphers/modes)
Read partway through the introduction of the lightweight cryptography paper
Attended meeting with Ph.D. mentor Miss. Damilola Alao
Read through the first two chapters of Intro to Cryptography
Probability theory, basic algorithms, elliptic curves
Elliptic curves and projective space is still be quite confusing, but Saman recommended some videos for me to watch
Going through the traditional crypto readings more slowly then I anticipated; I aim to get them finished by Saturday at the latest
In the process of rereading the project paper by Doctors Sen, Fletcher, and Madria (abstract and related works)
Attended morning meeting session to socialize with peers
Read through chapters 3 and 8 of Intro to Cryptography and chapters 5 and 6 of Cryptography
DES, AES(Rijndael), block ciphers(modes), stream ciphers, RSA
The finite field material is still fairly confusing, but I believe I am starting to understand more about these protocols
Read Dr. Sen's suggested articles on asymmetric and symmetric encryption
Completed half of the Week 2 slideshow with Saman (intend to reconvene and finish it Friday)
Updated website's abstract and about us section
Read chapter 11 and chapter 14 of Intro to Crypto
Really focused on RSA and DSA methodology and applications
Watched a few YouTube videos (Dr. Sen recommended Computerphile and Numberphile) to help with my comprehension
Worked on Week 2 presentation and expect to complete it during the weekend
Read the project paper's methodology and conclusion
Read more of the Lightweight Cryptography paper (section 1, 2, and 3 of the introduction)
Attended group presentations
Attended post-group-presentation meeting with Dr. Sen
Reread chapter 8 and chapter 11 of Intro to Crypto and chapters 5, 6, and 8 of Cryptography
First full skim through of the Lightweight Cryptography paper
Did a second read-through of the Lightweight Cryptography paper
Primarily focused on sections 1, 2, 3 (partially), and 6 (partially)
Met with Saman to discuss paper and divide the sections up appropriately
I took on 3.2.3-3.2.5, 3.3 and 6.3
Read through my sections and took notes
Met with Ph.D. student advisor Dami to implement old Java-based framework
We faced setbacks, but we intend to try and fix it on our own time by tomorrow
Followed Dami's instruction to setup MongoDB Community
The connection ran smoothly and was able to establish a connection with the framework
Meet with Saman
Discussed individual sections of the paper (My sections were related to Block ciphers, DAE schemes, and MACs)
Confirmed/determined the lightweight cryptography categories the paper was attempting to establish
Ultra lightweight
Ubiquitous
Based on my sections, I chose 3 lightweight protocols from each that best fit the constraints of our domain
i.e. Mysterion, Ascon, SEA, Helix , etc.
Started week 3 slides
Completed week 3 slideshow presentation (primarily focused on GIMLI)
Meet with Saman several times
Determined the lightweight algorithms we choose to study further
Followed Dami's direction to establish "proper" connection between the old Java-based framework and MongoDB
Successfully created a test database; however, only one of the two collections were presented within it
Addressed the issues with Dami and we are working to fix it
Week 3 presentations
Looked up papers specific to protocols in the lightweight cryptography paper
i.e. Ascon, Helix, etc.
Meet with Dr. Sen to discuss presentation and future directions for the week
Reprioritized list of useable ciphers based on ease of implementation and functionality (Just created the new list)
Familiarized myself with the old Java-based framework
Read about a fourth of the IoTServiceRecommendation java file from top to bottom
Finished "ease of implementation" search for all the algorithms listed in the lightweight cryptography paper
Included a few other cryptographic algorithms I found
Skimmed through IoT service provisioning paper by Dr. Sen and his colleagues
Understood more than I did the first time, but I intend to do a full read through Thursday
Fully read through the Java framework code
Wrote questions I had for Dami
Didn't understand why portions were commented out, but I understood the whole device node concept
Completely finished google sheet of possible lightweight algorithms to consider
Dami suggested descriptions for each and clarified the parameters of our search(will be added Thursday or Friday at the latest)
Met with Dami to discuss the flow of the Java-based framework and where they hope to take it in the future
Fully read through Dr. Sen's paper "A Secure User-Centric Framework for Dynamic Service Provisioning in IoT Environments"
Met with Saman
Started week 4 slideshow presentation
Discussed our list of usable protocols for the genetic algorithm simulator (Java-based framework)
Analyzed Dami's previous and new framework database excel files to help create presentation
Recreated a usable version of Dr.Sen's diagram from "A Secure User-Centric Framework for Dynamic Service Provisioning in IoT Environments"
Installed and replaced the .java files Dami sent for the genetic algorithm simulator
Reviewed the list of usable protocols, functionality of the genetic algorithm simulator, and Elliptic Curve Diffie-Hellman (ECDH) for our presentation on June 14
Presented week 5 presentation
Dr. Sen provided some immediate feedback for our presentation. From the feedback...
I brainstormed different structure user's could use to communicate the type of security they want
With Saman, I continued shortlisting our nearly finished list of protocols
Researched papers to create a more in-depth list and description section for the protocols within the shortlist
Applied for Mid-SURE symposium
Meet with Saman regarding our shortlist and how to approach the interconnectivity of our shortlisted protocols
Studied the genetic algorithm simulator (I feel like I have a fairly good understanding of the code aside from the section related to network selection)
Researched more papers related to our shortlisted protocols
Ensure our shortlist is the optimal choice given the knowledge we have researched
With Saman, I created a comprehensive Google Doc to help consolidate all of our thoughts, research, questions, final shortlist (including pro's and con's)
Brainstormed ideas for user preference quantification
Determine something other than the "0 to 3 scale" for preference
Read a few more papers in depth, considered removing PRESENT block cipher from shortlist of lightweight protocols
Met with Dami
Discussed machine learning simulator framework and overall functionality
Listened to a line by line walkthrough of the code and where Dami aims to take the simulator
Cleared questions related to specifics of the genetic algorithm simulator
Read through machine learning algorithm to try and understand myself
Brainstormed user preference quantification/methodology
Met with Saman to create Midterm presentation slides
Created outline and intend to nearly finish the slideshow before our meeting with Dr. Sen Friday
Meet with Dr. Sen
Discussed feedback from presentation Monday
Clarified points regarding the machine learning simulator
Gave us direction for protocol implementation moving forward
Divided the implementation of protocols between Saman and myself
Installed Anaconda Navigator and Tensorflow environment for machine learning simulator
Midterm presentation
Showcased our shortlist of protocols, initial structure for the security preference selection model
Presented plans moving forward (implementation of standalone protocols, functionality with the ML simulator, integration into CupCarbon simulator)
Met with Saman to refine our proposed security preference model
Met with Dami to work out issues with Anaconda installation
Downloaded Tensor Flow environment
Downloaded implementations of Trivium, Present, and GIMLI - hash
After extensive tweaking (since they ran older versions of python), I realized that the code was either incomplete (despite what the github commits said) or for educational purposes only
Spent time looking for other implementations of these codes
Found Trivium and Present but dropped GIMLI - hash (since Ascon could do the same things and there were no credible implementations)
Met with Saman
Updated each other on protocol implementation progress
Discussed security preference selection structure and how our protocols would tie into that
Met with Dami
Got presentation feedback
Helped with package management/download of the Tensor Flow environment and Saman with installation of the machine learning simulator
Received CupCarbon simulator to download before Sunday
Tweaked the Trivium code to create a version fully operational in python 3.x; however, I may roll back to 2.7 to remain truer to the creator's code
Attempted to structure PRESENT for python 2.7 and beyond, but I continue to get errors (while this is the most promising version of PRESENT, I may ditch it to find a more modern implementation of the cipher)
Attempted to create Trivium tests based on Dr. Sen's feedback for measuring protocol encryption and decryption speeds
Ran into issues with type compatibility and python 3.x encoding compared to python 2.x encoding
Met with Saman
Compiled a comprehensive test to assess decryption and encryption time for Trivium
Also took some notes from Saman's code/the creator of pyascon to measure package sizes pre-and post-encryption
Worked on week 6 presentation
Discussed other methods/protocols for implementation as well as what to do with the block cipher, PRESENT
Familiarized myself with the CupCarbon simulator code
Attempted to install the program; however I ran into to problems that we'll meet with Dami on Sunday to discuss
Presented Week 6 progress presentation
Fully installed CupCarbon simulator
Tried to work with the PRESENT code again (will ditch it if I cannot get it to work by Tuesday)
Sent the Present code to Saman in hopes that one of us could determine a solution for the errors
Sunday, June 27th:
Met with Dami and Saman to discuss the code implementation
Reworked our flowchart for our project explanation
Attempted to solve errors we encountered during the installation of CupCarbon
Familiarized myself with CupCarbon environment and it's capabilities
Did not learn too much. Saman and myself plan to meet with Dami for clarification
Reworked Present algorithm but I just decided to drop it since it was too much of a hassle for our timeframe
Tried different methods of encoding (to get as similar to the code from Python 2)
In total, read numerous pages of Python documentation on python 2 encoding and decoding
Met with Dr. Sen
Discussed Week 6 presentation
Need better graphical representation of encryption/decryption speeds
Discussed benchmarking parameters and how they will be comparable to traditional cryptographic algorithms
Received guidance on comparable graph/chart creation
Asked to create a comparable, commonly-used algorithms table for each lightweight protocol in consideration
Get specific with security level selection user interface and which protocols will be used for what levels
Met with Dami
Discussed CupCarbon simulator
Determined to meet Thursday July 1st (possibly with Dr. Sen) for full Cup Carbon walkthrough
Revisited Present algorithm and got it to run in Python 3!!!
Checked to see any deprecation in encryption/decryption speed, but there was only minimal
Reconfigured test code for Trivium help with traditional cryptography comparison
Rescheduled meeting with Dr. Sen and Dami to meet on Tuesday July 6th
Created encryption and decryption speed side-by-side bar graphs for the lightweight symmetric algorithms
Created Present algorithm test code
Sent Trivium and Present test code over to Saman for her to test on her computer
Met with Saman:
Created Week 7 presentation
Discussed security selection user interface and specifications for each level
Include the "Read More" for more info for more knowledgeable users
Each level's keys will be encrypted by NtruEncrypt
First level is Ascon-80pq
Second level is Ascon 128a + Ascon Hash
Third level is Present (either 80 or 128) (possibly paired with a version of Ascon)
Met with Saman to create graphical representation of the encryption/decryption speeds for week 7 presentation (moved to Thursday, July 8th)
Met with Dr. Sen, Dami, and Saman
CupCarbon functionality walkthrough from Dr. Sen as well as step by step explanation of the overall functionality
Discussed plans moving forward as well the goals/timetable for the coming week
Create protocol documentation for users
Change CupCarbon UI to fit the needs of our project
Implement the protocol's libraries into the CupCarbon simulator
Tried to run CupCarbon on my computer
Discussed updated user selection model with Saman (symmetric protocol aspect listed below):
Regular - Ascon 80pq
Strong - Ascon 128a with Ascon hash
Extra Strong - PRESENT
Attempted to run CupCarbon on computer again but had little success. Saman says she may have a way to fix it.
Gave our week 7 presentation
Met with Dami and Saman to discuss issues with the CupCarbon simulator
Determined how to change the UI of CupCarbon to suit our updated user security selection model
Added Minimum, Regular, Strong, and Extra Strong options
Read through certain portions of the code to better understand it's functionality
Determined possible ways to implement the "Read More" option into the overall UI
General documentation of each protocol with extensive detail on each protocols capabilities and specs
A clickable "read more" option that takes the user to the aforementioned documentation
Short, descriptive paragraphs of each protocol and their functionality
Used Saman's instructions to get my CupCarbon simulator running
Messed with the CupCarbon simulator
Attempted to get the simulation to run properly
Current issues:
User parameters aren't visibly updating in MongoDB (unsure if they are updating at all)
Simulation parameters are not visibly updating in MongoDB (are updated in the backend)
Brainstormed the final draft of the user's security selection model, highlighting the technical specifics of each security level
Met with Dami and Saman
Discussed issues we shared with the CupCarbon simulator. Attempted to resolve them together; however we were only able to fix one
Compared our CupCarbon-master with Dami's as she was having difficulty installing it onto her new computer
Dami provided a thorough explanation of Overleaf and how we will use it for our project report
Met with Saman
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
Saman asked Dr. Sen for clarification on our work. Once he provided his advice, we
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
Changed CupCarbon user interface to match our updated user security selection model
Minimum, Regular, Strong, and Extra Strong Security
Continued to search for buffer with the .java files
Researched and determined that Jython would be the best method to integrate our python implementations into CupCarbon's java-based framework
Installed Jython; however I am currently having difficulties with importing the class/methods into CupCarbon
Attempt to integrate Jython into CupCarbon simulator
Installed the Jython .jar file into the build path to fix import error
Read Jython documentation and attempted to create sample/test code
Continued to study CupCarbon's code to locate the data buffer and reconfigure the code for data encryption and decryption
Met with Dr. Sen, Dami, and Saman
Reworked our plan for the last week of the program
Moving forward:
Look through the senscript's abstraction and attempt to locate the buffer through there
Integrate the protocol(s) into CupCarbon (either using Jython or finding an existing Java implementations of our protocols)
Create protocol-specific encryption/decryption commands to be used for the senscript
Inject our commands before/after the aforementioned buffer and record the time of encryption and decryption
Once again, attempted to mock up test code for Jython before using it for protocol implementation
Continued to work with Jython and get it to work (in general)
Attempted to create abstraction methods ASCONENCRYPT and ASCONDECRYPT
Studied the other senscript files to determine how to make my own commands
Successfully created the initialization functions and continued to refresh myself on data abstraction
Studied the .csc files with Saman to determine where
Continued work with Jython, predominantly worked with the senscript commands
Read documentation, watched guides on implementation and utilization, and tried numerous different methods to get Jython working/create functioning senscript commands
Met with Dami
Updated her on our protocol implementation progress
Asked questions regarding our report and poster presentation
She sent her example posters from past conferences for us to use
Predominantly a working meeting (she assisted in finding more information on the .csc files and the language used for data abstraction)
Determined Jython was not going to work, so I opted to use a Java implementation of Ascon128/128a made by the same person who created the Python implementation
Changed the Java code to make the implementation usable for our needs
Attempted to create the senscript commands for Ascon encryption and decryption
(Unsure how to check if the newly-created senscript commands worked properly)
Finalized first draft of OU Conference poster and presentation
Met with Dr. Sen to finalize poster and presentation