NSS/ARGON2: Difference between revisions

4,003 bytes added ,  3 January 2017
Edit fix
No edit summary
(Edit fix)
 
(11 intermediate revisions by 3 users not shown)
Line 6: Line 6:


=== Members ===
=== Members ===
* Sachin Ashok
* A Sachin
* Soorya Narayan JM
* Soorya Narayan JM
* Suhith Rajesh
* Suhith Rajesh
Line 19: Line 19:
Argon2 is a memory hard function for password hashing and other applications. [https://www.cryptolux.org/images/0/0d/Argon2.pdf Argon2] is based on [https://blake2.net/ Blake2] and winner of the [https://password-hashing.net/ password hashing competition].
Argon2 is a memory hard function for password hashing and other applications. [https://www.cryptolux.org/images/0/0d/Argon2.pdf Argon2] is based on [https://blake2.net/ Blake2] and winner of the [https://password-hashing.net/ password hashing competition].
The goal of this project is to provide basic Blake2 support for NSS and base Argon2 on it.
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 ===
=== Scope ===
At present, it is limited to implementing the Blake2 functions as well as the password hashing function Argon2 on top of it.  
At present, it is limited to implementing the Blake2 functions as well as the password hashing function Argon2 on top of it.  
* Public Workpad : https://public.etherpad-mozilla.org/p/mwos-hashing


=== Goals ===
=== Goals ===
Line 32: Line 35:
* Good documentation
* Good documentation
* Performance comparison with other implementations
* Performance comparison with other implementations
=== Milestones ===


== Updates ==
== Updates ==
=== Present Status ===
=== 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
** Blake2b  : https://github.com/franziskuskiefer/Blake2b/pull/1
** Blake2s  : https://github.com/Spockuto/blake2s/pull/1
* Working on issues
** Performance testing
*** Blake2b  : https://github.com/Sachin-A/Blake2/issues/5
*** Blake2s  : https://github.com/Spockuto/blake2s/issues/7
** Known answer tests 
*** Blake2b  : https://github.com/Sachin-A/Blake2/issues/4
*** Blake2s  : https://github.com/Spockuto/blake2s/issues/6
** Review 0 fixes
*** Blake2b  : https://github.com/Sachin-A/Blake2/issues/1
=== 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


=== 2016-10-10 ===
=== 10-10-2016 ===
Kick off meeting: Oriented ourselves, discussed project outline, goals
* Meeting Summary
** Kick off meeting: Oriented ourselves, discussed project outline, goals
* Upcoming work:
** Read up on SHA-3 specifications and generate summary


=== <date> ===
=== <date> ===
* current work
* Meeting Summary
* blocking points
* Progress
* discussion points
* Potential points of discussion
* upcoming work
* Upcoming Work


== References ==
== References ==
# https://www.cryptolux.org/images/0/0d/Argon2.pdf
# https://www.cryptolux.org/images/0/0d/Argon2.pdf
# https://blake2.net/
# https://blake2.net/
9

edits