On Tue, Jun 12, 2018 at 06:21:21PM +0200, Gilles Van Assche wrote: > Hi, > > On 10/06/18 00:49, brian m. carlson wrote: > > I imported the optimized 64-bit implementation of KangarooTwelve. The > > AVX2 implementation was not considered for licensing reasons (it's > > partially generated from external code, which falls foul of the GPL's > > "preferred form for modifications" rule). > > Indeed part of the AVX2 code in the Keccak code package is an extension > of the implementation in OpenSSL (written by Andy Polyakov). The > assembly code is generated by a Perl script, and we extended it to fit > in the KCP's internal API. > > Would it solve this licensing problem if we remap our extensions to the > Perl script, which would then become "the source"? The GPLv2 requires "the preferred form of the work for making modifications to it". If that form is the Perl script, then yes, that would be sufficient. If your code is dissimilar enough that editing it directly is better than editing the Perl script, then it might already meet the definition. I don't do assembly programming, so I don't know what forms one generally wants for editing assembly. Apparently OpenSSL wants a Perl script, but that is, I understand, less common. What would you use if you were going to improve it? > On 12/06/18 00:35, brian m. carlson wrote: > > While I think K12 is an interesting algorithm, I'm not sure we're > > going to get as good of performance out of it as we might want due to > > the lack of implementations. > > Implementation availability is indeed important. The effort to transform > an implementation of SHAKE128 into one of K12 is limited due to the > reuse of their main components (round function, sponge construction). So > the availability of SHA-3/Keccak implementations can benefit that of K12 > if there is sufficient interest. E.g., the SHA-3/Keccak instructions in > ARMv8.2 can speed up K12 as well. That's good to know. I wasn't aware that ARM was providing Keccak instructions, but it's good to see that new chips are providing them. -- brian m. carlson: Houston, Texas, US OpenPGP: https://keybase.io/bk2204