NSS/ARGON2
From MozillaWiki
< NSS
Contents
Team
Introduction
We are a team of four Junior Undergraduates at National Institute of Technology, Trichy, majoring in Computer Science and Engineering. We have a wide range of overlapping and unique interests and we mostly tinker with stuff till it breaks. Works 70% of the time, all the time.
Members
- A Sachin
- Soorya Narayan JM
- Suhith Rajesh
- Venkkatesh Sekar
- Professor: Dr. Leela Velusamy
- Mozilla Advisors: Franziskus Kiefer, Tim Taubert
Project
Description
Argon2 is a memory hard function for password hashing and other applications. Argon2 is based on Blake2 and winner of the password hashing competition. The goal of this project is to provide basic Blake2 support for NSS and base Argon2 on it.
Resources
- Public Workpad : https://public.etherpad-mozilla.org/p/mwos-hashing
- Blake2 meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1310763
- Argon2 meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1310762
Scope
At present, it is limited to implementing the Blake2 functions as well as the password hashing function Argon2 on top of it.
Goals
- Blake2 implementation working on all platforms
- Argon2 implementation working on all platforms
- Functional tests
- Performance tests
- Good documentation
- Performance comparison with other implementations
Updates
Present Status
- Getting up to speed with the existing literature on Blake2 and Argon2
- Writeup on Blake2 : https://gist.github.com/SooryaN/8d1b2c19bf0b971c11366b0680908d4b
- Writeup on Argon2 : https://gist.github.com/Sachin-A/a3e89b13ee108c5dde7a6d34eb8b6abe
- Combined Repository
- Blake2 : https://github.com/Sachin-A/Blake2
- Working on basic implementations of Blake2b and Blake2s in C
- Basic blake2b implementation (work in progress) : https://github.com/Sachin-A/Blake2/blake2b
- Basic blake2s implementation (work in progress) : https://github.com/Sachin-A/Blake2/blake2s
- Preliminary reviews on basic code
- Working on issues
- Performance testing
- Known answer tests
- Review 0 fixes
28-12-2016
- Meeting Summary
- Discussed current status of project and further plans
- Decided on plans for integration with nss-try and development of Argon2 based on Blake2
- Next meeting on the 7th of Jan, 2017 (Woo! New year!)
- Progress
- Blake2b and Blake2s include known answer tests for keyed and unkeyed hashes
- NSS Phabricator and Try server level 1 access granted
- Potential points of discussion:
- Phabricator accounts
- Patches against the try server
- Code review
- Upcoming work
- Finish up performance testing for Blake2b and Blake2s
- Merge blake2b and 2s repositories
- Get into integrating with NSS-Try and start with Argon2
02-12-2016
- Meeting Summary
- A preliminary review on all of the blake2b code that has been written so far
- Discussed the changes suggested and touched upon code security
- Decided to stick strictly to usage of C standards C89 and certain features of C99
- Next meeting planned for the 20th of December, 2016
- Progress
- Blake2b working code : https://github.com/Sachin-A/Blake2b
- Blake2s working code : https://github.com/Spockuto/blake2s
- Review0 of Blake2b : https://github.com/franziskuskiefer/Blake2b/pull/1
- Review0 of Blake2b : https://github.com/Spockuto/blake2s/pull/1
- Potential points of discussion:
- Review related changes
- Safety features for the code
- C standards support
- Upcoming work
- Address blake2b/2s review0 changes
- Set up accounts(try server access)
- Unit testing using known-answer-tests provided in the official implementation
02-11-2016
- Meeting Summary
- Looked over the code repositories
- Discussed schedule for presenting working code
- A 4 week time-frame decided considering university examinations
- Progress
- Basic blake2b code : https://github.com/Sachin-A/Blake2b
- Potential points of discussion:
- Schedule for presenting code
- Upcoming work
- Basic implementation of Blake2s and Blake2b in C by 1st week of December
25-10-2016
- Meeting Summary
- Went over the summary for Blake2 and Argon2
- Made plans to split work on Blake2 implementation
- Progress
- Writeup on Blake2 : https://gist.github.com/SooryaN/8d1b2c19bf0b971c11366b0680908d4b
- Writeup on Argon2 : https://gist.github.com/Sachin-A/a3e89b13ee108c5dde7a6d34eb8b6abe
- Potential points of discussion:
- Division of work
- Roadmap
- Upcoming work
- Basic implementation of Blake2s and Blake2b in C
18-10-2016
- Meeting Summary
- Discussed changed objectives: Implementing BLAKE2 and ARGON2 instead of SHA-3
- Upcoming work:
- Read up on Blake2 and Argon2 specifications and generate summary
10-10-2016
- Meeting Summary
- Kick off meeting: Oriented ourselves, discussed project outline, goals
- Upcoming work:
- Read up on SHA-3 specifications and generate summary
<date>
- Meeting Summary
- Progress
- Potential points of discussion
- Upcoming Work