Ищу алгоритм по хешам и шифрованию

DiMA

php.spb.ru
Команда форума
Ищу алгоритм по хешам, длительным вычислениям, криптографическим функциям, шифрованию симметричному или асимметричному.

Есть 2 стороны Алиса и Боб. Алиса должна придумать что-то легкое (строка случайных байт, типа 265 бит) и заставить Боба сильно и долго считать, что там задумано. Это простая задача. Например, Алиса генерит случайный приватный ключ 256 бит мгновенно, считает от него хеш любой функцией типа sha-265 (почти мгновенно) и сообщает хеш Бобу. Т.к. тот не сможет по хешу за разумное время сбрутфорсить приватный ключ из-за астрономически больших вычислений (много раз sha-256 гонять), то Алиса раскрывает большую часть приватного ключа, тем самым регулируя, сколько секунд одно ядро CPU Боба будет перебирать числа и считать хеши, пока не совпадет. Т.е. такой метод регулирует, сколько потратится CPU. Смысл в том, что Боб *должен* разгадать приватный ключ за разумное регулируемое время.

А теперь нужно заставить сделать Боба делать тоже самое, но чтобы для вычислений тому надо было оперировать блоками по 10-1000Мб, а не просто брутфорсить короткие строки 256 бит. При этом Алиса не располагает роскошью, чтобы самостоятельно сгенерировать 100Мб строку и посчитать хеш от такого длинного блока, т.к. у нее слабый проц и мало памяти. Как заставить Боба тратить много памяти во время брутфорса?

Тема, что можно распараллелить вычисления - понятна, но не важна, речь про условное одно ядро. И основная загвоздка, не как проц нагрузить, а как заставить кучу памяти для вычислений тратить, плюс регулируя эти затраты.

Алгоритм Argon2 вроде предназначен для этого. Но чтобы заставить Боба потратить 520Мб или больше на один хеш, нужно самим столько потратить предварительно.
 
Сверху