In my situation, I choose the password/passphrase and shared with the a
single user who will be using my encrypt/decrypt Python module I developed.
Which means, I get to set the passphrase to a very reasonable length. And
also I have control of how often the passphrase should be changed.

On Sun, Jan 12, 2025, 9:37 AM Robert Moskowitz <r...@htt-consult.com> wrote:

> I have a number of places to test KMAC in protocols.  Both as an HMAC and
> HKDF replacement.
>
> On 1/12/25 12:08, Sriram R wrote:
>
> While I'm unable to contribute as a developer due to time constraints, I
> certainly wouldn't mind volunteering for testing things before a GA
> release. Should there be a need for it.
>
> On Sun, Jan 12, 2025, 9:04 AM Alex Gaynor <alex.gay...@gmail.com> wrote:
>
>> There's a request for KMAC,
>> https://github.com/pyca/cryptography/issues/12141. Thus far no work
>> has happened on it. If you're interested in contributing, we're happy
>> to review a PR.
>>
>> Alex
>>
>> On Sun, Jan 12, 2025 at 12:02 PM Sriram R via Cryptography-dev
>> <cryptography-dev@python.org> wrote:
>> >
>> > Robert,
>> >
>> > Appreciate the links to the articles, read them and they are very
>> informative.
>> >
>> > RFC 5869 does have this phrase:
>> >
>> > One significant example is the derivation of cryptographic
>> >    keys from a source of low entropy, such as a user's password.  The
>> >    extract step in HKDF can concentrate existing entropy but cannot
>> >    amplify entropy.
>> >
>> > This statement sounds like keys derived from a user's password might be
>> weaker than keys derived from random input keying material. Is that not how
>> one should
>> > interpret this statement in the RFC?
>> >
>> > Based on the popularity of password-based KDF, I'm guessing this is not
>> a concern?
>> >
>> > To the pyca/cryptography team:
>> >
>> > Is the development of a KMAC module on the roadmap? And if so, kindly
>> requesting to share the timeline for planning purposes. My team has a
>> requirement to implement
>> >
>> > quantum-resistant algorithms when and where possible and since KMAC is
>> quantum-resistant we're very much interested in adopting it.
>> >
>> >
>> > Best,
>> >
>> > PE
>> >
>> >
>> > On Sat, Jan 11, 2025 at 4:57 PM Robert Moskowitz <r...@htt-consult.com>
>> wrote:
>> >>
>> >> read
>> >>
>> >> RFC 5869 HMAC-based Extract-and-Expand Key Derivation Function (HKDF).
>> H.
>> >>      Krawczyk, P. Eronen. May 2010. (Format: TXT, HTML) (Status:
>> >>      INFORMATIONAL) (DOI: 10.17487/RFC5869)
>> >>
>> >> On the proper way to use a keyed SHA2 hash as a KDF.
>> >>
>> >> Hash chains build off a secret key are considered not safe.
>> >>
>> >> For SHA3, KMAC (NIST SP800-185) is a proven KDF.
>> >>
>> >> See:
>> >>
>> >>
>> https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-108r1-upd1.pdf
>> >>
>> >> Sec 4.4.
>> >>
>> >> I have had the privilege of direct conversations with Dr. Krawczyk
>> even prior to his presentation on  keyed hash attacks in 1995 and the
>> reason for the HMAC (RFC2104) construct.
>> >>
>> >> And I have had the privilege of following along with Team Keccak on
>> the development of what is now SHA3 and its derivatives.  We are finally
>> seeing an uptick in replacing HMAC/HKDF with KMAC.
>> >>
>> >> On 1/10/25 17:00, Sriram R via Cryptography-dev wrote:
>> >>
>> >> Hello,
>> >>
>> >> I'm generating a key using Scrypt from a password supplied by the
>> user. I then use this key as follows. This works but my question to the
>> experts: is this an acceptable way to use the AESGCMSIV cipher? Am I doing
>> something that's fundamentally against best practices? In the examples on
>> the Cryptography site, the sample code snippet uses
>> AESGCMSIV.generate_key() method to generate the key instead. The
>> requirement I have is to generate the key that's based on a password.
>> >>
>> >> def gen_salt(size=32):
>> >>   return secrets.token_bytes(size)
>> >>
>> >> def der_key(salt, password):
>> >>   kdf = Scrypt(salt=salt, length=32, n=2**20, r=8, p=1)
>> >>   return kdf.derive(password.encode())
>> >>
>> >> def gen_symmkey(salt, password):
>> >>   symmkey = der_key(salt, password)
>> >>   return symmkey
>> >>
>> >>  key = gen_symmkey(salt, password)
>> >>  aesgcmsiv = AESGCMSIV(key)
>> >>
>> >> ct = aesgcmsiv.encrypt(nonce, file_data, aad)
>> >> with open(fname, "wb") as outfile:
>> >>      outfile.write(ct)
>> >>
>> >> Best,
>> >> PE
>> >>
>> >>
>> >> _______________________________________________
>> >> Cryptography-dev mailing list
>> >> Cryptography-dev@python.org
>> >> https://mail.python.org/mailman/listinfo/cryptography-dev
>> >>
>> >>
>> > _______________________________________________
>> > Cryptography-dev mailing list
>> > Cryptography-dev@python.org
>> > https://mail.python.org/mailman/listinfo/cryptography-dev
>>
>>
>>
>> --
>> All that is necessary for evil to succeed is for good people to do
>> nothing.
>>
>
>
_______________________________________________
Cryptography-dev mailing list
Cryptography-dev@python.org
https://mail.python.org/mailman/listinfo/cryptography-dev

Reply via email to