NSS/ARGON2: Difference between revisions

From MozillaWiki
< NSS
Jump to navigation Jump to search
(Created page with "right|500px == Team == === Introduction === We are a team of four Junior Undergraduates at National Institute of Technology...")
 
(Edit fix)
 
(12 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 SHA3 function as well as the variable length functions (SHAKE)
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/

Latest revision as of 15:34, 3 January 2017

WinterOfSecurity logo light horizontal.png

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

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

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
  • 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
  • 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

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

References

  1. https://www.cryptolux.org/images/0/0d/Argon2.pdf
  2. https://blake2.net/