[Babel-users] [babel] rather than ripemd160...

Toke Høiland-Jørgensen toke at toke.dk
Mon Nov 26 13:24:07 GMT 2018


Juliusz Chroboczek <jch at irif.fr> writes:

>> Anyway, the default hash function is sha256 in the hmac-challenge
>> branch. I approve, there's hardware support for it, and if someone
>> breaks it, civilization collapses, so an alternate hmac is a "good to
>> have", and what's in that branch... is ripemd160.
>
> From a standardisation point of view:
>
>   - HMAC-SHA256 is Mandatory to Implement;
>   - implementation may implement other MAC algorithms, and since no
>     algorithm identifier is carried on the wire, doing that requires no
>     further standardisation action.
>
> From the point of view of the implementation, we need to clean up this
> code to remove the dependency on OpenSSL.  When we do that, we'll probably
> remove the HMAC-RIPEMD160 code, and leave just SHA256.  (Don't hold your
> breath, though -- it's exam season for both the girls and myself.)
>
> If we add another HMAC algorithm, we'll want to do it in agreement
> with Toke, so that both implementations implement the same set of HMAC
> algorithms.

Bird already supports HMAC using MD5, SHA1, SHA256, SHA384 and SHA512,
which is inherited by the Babel implementation. I am planning to add
blake2s to that when I get around to revising the HMAC patch (see
below).

>> Both blake and siphash seem like a superior choice for an alternate hmac
>> function to ripemd160. In particular blake is subject of its own RFC,
>> and comes in several clean highly optimized versions for x86 and arm
>> architectures.
>
> I hold no opinion on that at the current time, I'd need to consult my
> colleagues.

I happen to share Dave's concern about sha256. And basically all the
crypto people I've been talking to have been of the opinion that blake2s
is the way to go for low-powered devices. So I am definitely planning to
add an implementation of that to Bird, and may even make it the default
for Babel.

I'm not sure if we *can* make it MTI in the spec as well (does it need
to be defined by a standards track RFC for us to do that?), but if we
can, I think we should seriously consider it...

-Toke



More information about the Babel-users mailing list