Testing different implementation of SHA3

Using the I can now choose which implementation of algorithm we can use for a specific task and how efficient are the optimization provided The official keccak gives a list of several implementation (they can be found here https://keccak.team/software.html) The aim of...

Evaluation of std::chrono

If you have a look around in the web, a solution to correctly measure time is to use a new C++ package: std::chrono , which is part of the standard C++ library. So the aim of this article is to investigate if this solution can be used to have a very high resolution...

Shuffle in SSE

#include #include void test(int32_t *Y, int32_t *X) { __m128i *v1 __attribute__((aligned (16))); __m128i *v2 __attribute__((aligned (16))); __m128i v3 __attribute__((aligned (16))); __m128i v4 __attribute__((aligned (16))); int32_t * rslt; int64_t * rslt64; v1 =...

SHA3

Preimage attack on Keccak-512 reduced to 8 rounds, requiring 2511.5 time and 2508 memory[2] Zero-sum distinguishers exist for the full 24-round Keccak-f[1600], though they cannot be used to attack the hash function itself[3] SHA-3 (Secure Hash Algorithm 3) is the...

SSE usage Tutorial

Hi all, SSE usage is a bit tricky You have to see see registers as vectorial not a linear and their size is depending of the context. For instance xmm0 (a SSE 128 bytes register)can be seen as 2*64 bits register or 4*32 bits register or 8*16  bits register or 16*8...

Ethminer Optimization part 2

In the previous article we started  sha* functions optimizations, now as we previously seen a large bottleneck performance is in internal.c. /* This file is part of ethash. ethash is free software: you can redistribute it and/or modify it under the terms of the GNU...