On Wed, Mar 12, 2014 at 3:42 PM, Pavol Rusnak wrote: > On 03/12/2014 09:37 PM, William Yager wrote: > > (that group of people includes me), PBKDF2-HMAC-SHA512 is very easy to > > implement even on devices that only have a few kB of RAM, and even though > > our number of rounds is very aggressive (2^16 and 2^21), it will still > run > > in reasonable time even on very slow embedded ARM processors. > > To give you some numbers: TREZOR (120MHz ARM) does 1024 rounds of > PBKDF2-HMAC-SHA512 in around 1 second. > > So 2^16 is around one minute, 2^21 is around half an hour. > > Precisely. And since the target of this BIP is generally storage wallets (just like BIP 0038), we figured these were reasonable time scales for encryption/decryption on slow devices. Let's say you're implementing a Raspberry Pi based cold wallet printer. Having the user wait 10 seconds to several minutes is not unreasonable for a one-time activity, especially when at least this much time is used to generate entropy, print the wallet, etc. The same goes for phones. If you're importing a heavily encrypted wallet into your device, the user won't mind waiting a few seconds or even a few minutes. Plus, as an added bonus, the amount of time it will take to encrypt/decrypt is highly deterministic, so it's easy to add a nice progress bar to a UI. Will