-
Data: 2019-01-08 18:56:37
Temat: Re: Prędkość funkcji SHA3-256
Od: Borneq <b...@a...hidden.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 08.01.2019 o 18:52, Borneq pisze:
> Zaimplementowałem według https://github.com/brainhub/SHA3IUF
> i okazuje się że SHA3-256 jest dwa razy wolniejsza niż SHA2-256...
> a myślałem że jest ona bardzo szybka, Visual Release x64
Czego się spodziewać, skoro nie dość że ma 24 rundy, to jeszcze w
każdej: są dwie pętle po 24 i 25 (na szczęście nie jedna w drugiej)
void TDCP_sha3::keccakf(uint64_t s[25])
{
int i, j, round;
uint64_t t, bc[5];
const int KECCAK_ROUNDS = 24;
for (round = 0; round < KECCAK_ROUNDS; round++)
{
/* Theta */
for (i = 0; i < 5; i++)
bc[i] = s[i] ^ s[i + 5] ^ s[i + 10] ^ s[i + 15] ^ s[i + 20];
for (i = 0; i < 5; i++) {
t = bc[(i + 4) % 5] ^ SHA3_ROTL64(bc[(i + 1) % 5], 1);
for (j = 0; j < 25; j += 5)
s[j + i] ^= t;
}
/* Rho Pi */
t = s[1];
for (i = 0; i < 24; i++) {
j = keccakf_piln[i];
bc[0] = s[j];
s[j] = SHA3_ROTL64(t, keccakf_rotc[i]);
t = bc[0];
}
/* Chi */
for (j = 0; j < 25; j += 5) {
for (i = 0; i < 5; i++)
bc[i] = s[j + i];
for (i = 0; i < 5; i++)
s[j + i] ^= (~bc[(i + 1) % 5]) & bc[(i + 2) % 5];
}
/* Iota */
s[0] ^= keccakf_rndc[round];
}
}
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
Najnowsze wątki
- 2024-05-03 Warszawa => Sprzedawca usług rekrutacyjnych <=
- 2024-05-03 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-03 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-03 Warszawa => Senior PHP Developer (Symfony) <=
- 2024-05-03 Rzeszów => UX/UI Designer <=
- 2024-05-03 Giertych przetarł szlak: byli członkowie zarządu Orlenu śledztwa prokuratorskie obserwują z zagranicy
- 2024-05-03 Warszawa => Senior Rust Software Engineer <=
- 2024-05-03 Kraków => UX/UI Designer <=
- 2024-05-03 Warszawa => International freight forwarder <=
- 2024-05-02 Silnik Stirlinga - energia mechaniczna wytwarzana z ciepła bez dostarczania paliwa!
- 2024-05-02 Kraków => Senior .Net Programmer <=
- 2024-05-02 Sprowadzenie pożaru zagrażającego mieniu w wielkich rozmiarch
- 2024-05-02 Zielona Góra => Spedytor międzynarodowy <=
- 2024-05-02 Katowice => Performance Analyst <=
- 2024-05-02 Gdańsk => Full Stack web developer (obszar .Net Core, Angular6+) <=