If you are wondering where the data of this site comes from, please visit GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

Bulat-Ziganshin/FastECC 258

Reed-Solomon coder computing one million parity blocks at 1 GB/s. O(N*log(N)) algo employing FFT.

Bulat-Ziganshin/FA 119


Bulat-Ziganshin/FARSH 44

Fast and Reliable (but not Secure) Hash

Bulat-Ziganshin/Compression-Research 28

This repository contains my experiments with compression-related algorithms

Bulat-Ziganshin/DataSmoke 21

Datatype detection in order to choose appropriate compression algorithm

Bulat-Ziganshin/magus 12

Portable high-level assembler with authentic C syntax

Bulat-Ziganshin/CELS 7

Framework and standard API for compression algorithms

Bulat-Ziganshin/brotli 4

Brotli compression format

Bulat-Ziganshin/GPU-Compression 3

Examples of data compression algorithms running on GPU

issue openedClickHouse/ClickHouse

Minor code style issues in CompressionCodecEncrypted.cpp

Я смотрю сегодняшнюю версию в master, возможно это уже поправлено

  1. Число 16 во многих местах может быть заменено на tag_size
  2. Для числа 12 я бы тоже ввёл константу nonce_size
  3. "\0...\0" тоже выглядит некрасиво, у меня нет опыта с constexpr, но может можно сделать так:

char default_nonce_buf[nonce_size] = {}; string default_nonce = {default_nonce_buf, nonce_size};

И ещё - в комментах упоминается IV. но поскольку IV является частным случаем nonce, возникают некоторые непонятки. я пока не заглянул в доку по aes_gcm_siv, не понимал о чём речь. Поэтому лучше вместо IV писать authentication tag - так будет понятней. Ну и вообще подчёркивать что это алгоритм шифрования И аутенфикации

created time in a day


started time in 2 days


started time in a month

issue commentskeeto/hash-prospector

[Q] Seeded integer hash functions

afair, crcN(uintN) is always reversible function, so author can include it in his list of reversible primitives

that said, half of his primitives are parameterized, so you can use any sequence of the primitives that employs enough entropy from the seed. but since crc and mul are better bit-mixers than other ops, crc(x*(seed|1)) still looks for me like the most efficient reversible hash function

and regarding quality, you can reuse the code to compute AVERAGE bias for random-generated operation parameters instead of searching for MINIMAL one, for various operation sequences

some seeds are going to create lousy permutations

they can't do it as far as each individual operation is reversible

I would use some scramble of the seed

it's useless except when you have extremally poor PRNG such as return n++. It may be useful only if you use seed more than once such as

x *= seed
x <<<= 17
x *= scramble(seed)

comment created time in 2 months

issue commentskeeto/hash-prospector

[Q] Seeded integer hash functions

the first idea that come to mind crc32(uint64(x)*seed), of course for seed!=0 and 32-bit x value


comment created time in 2 months


started time in 3 months