We are working on an application in Android using Java. In our project, we used to generate EC key pairs (of size 384 bits) using SpongyCastle - an old Android version of Bouncy Castle.

The problem we face is users losing their phones or private keys. Since we are not the only ones facing this problem, I took to the Internet for some reading.

It turns out that (please correct me if I'm wrong) a lot of crypto currencies apparently use seed phrases/mnemonics (as described in BIP39) to generate a seed from which they in turn generate extended keys (as described in BIP32). The algorithms used will always generate the same extended keys for the same seed (which is, I'd guess, why they're called deterministic).

I managed to find some microlibraries by Nova Crypto. I am now able to generate seed phrases, seeds, and extended keys.

My question is threefold:

  1. Nova Crypto seems to be a guy like you and me. Since you should never write your own crypto, I probably should not use them.Are there peer-reviewed, secure libraries for the BIP-standards?

  2. If I can use the libraries, how can I derive EC 384 bit key pairs from my extended keys? Is there a way to do this, or is the concept entirely different?

  3. Are seed phrases secure (enough)? Are the keys generated out of these seeds as secure as the keys I generated using SpongyCastle?

  • $\begingroup$ 1) Not going to review Nove's random number generator. 2) HKDF-Expand will enough if 1. $\endgroup$ – kelalaka Jan 21 '20 at 10:25
  • $\begingroup$ I do not want you to review his code. I rephrased the question. Are there peer-reviewed implementations of the standard? What exactly do you mean in the last part by "will enough if 1."? $\endgroup$ – Marco7757 Jan 21 '20 at 10:45
  • $\begingroup$ As for 1: requests for libraries are off topic. For 2: that's an implementation question, unfortunately also off topic. And for 3, I'm sure we don't know: you set the requirements and we don't know how secure your spongy-generated keys are. $\endgroup$ – Maarten Bodewes Jan 21 '20 at 11:59
  • $\begingroup$ Stack Exchange to a T ... I'm gonna try somewhere else. $\endgroup$ – Marco7757 Jan 21 '20 at 12:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.