NSS/ARGON2

From MozillaWiki
< NSS
Jump to: navigation, search
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/