<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi all,<br>
    <br>
    i've been brainstorming on the different way to apply a KDF in a
    "strong enough way" and i see that each approach has it's advantage
    and disadvantages in terms of speed, in terms of FPGA/ASIC
    protection, in terms of crypto primitives being used.<br>
    <br>
    I'm wondering if it's smart or stupid to think/apply a
    password-hashing system that apply multiple password-hashing schema
    based on different cryptographic primitives in sequence, as a way to
    force the attacker willing to FPGA/ASICize the bruteforcing process,
    to need to implement multiple cracking infrastructure.<br>
    <br>
    I don't have the cryptographic knowledge to design something on my
    own, but i'm asking if "this approach" make sense.<br>
    <br>
    Let's assume something like that, assuming that could take 10-20s on
    a modern computer:<br>
    <br>
    step0: 3s of scrypt<br>
    step1: 10.000 round of SHA256<br>
    step2: 10.000 round of SHA512<br>
    step3: 10.000 round of Whirpool (even if broken)<br>
    step4: 10.000 round of Blake2<br>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    step5  10.000 round of
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    Keccak (SHA3)<br>
    step7: 10.000 round of HKDF (In WebCrypto API)<br>
    step6: 10.000 round of PKDF2 (in WebCrypto API)<br>
    <br>
    Each single hashing algorithm and KDF functions provide a specific
    set of protection against specific set of attacks.<br>
    <br>
    An adversary that want to build ASIC or FPGA cluster, would really
    require to build many specialized clusters rather than one very
    focused cracking-cluster (ie: to attack SHA256).<br>
    <br>
    A "Meta KDF" function like that could bring much more complexity on
    the attacker side by requiring the attacker to employ multiple
    attack vectors to attack the cryptosystem.<br>
    <br>
    The approach previously described, from a real world attack scenario
    perspective, does make sense as a "on steroid key-stretching"
    approach?<br>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Fabio Pietrosanti (naif)
HERMES - Center for Transparency and Digital Human Rights
<a class="moz-txt-link-freetext" href="http://logioshermes.org">http://logioshermes.org</a> - <a class="moz-txt-link-freetext" href="https://globaleaks.org">https://globaleaks.org</a> - <a class="moz-txt-link-freetext" href="https://tor2web.org">https://tor2web.org</a> - <a class="moz-txt-link-freetext" href="https://ahmia.fi">https://ahmia.fi</a></pre>
  </body>
</html>