<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://vaktibabat.github.io/</id><title>Vaktibabat</title><subtitle>Yoray Herzberg's Weblog</subtitle> <updated>2026-06-12T22:59:16+03:00</updated> <author> <name>Yoray Herzberg</name> <uri>https://vaktibabat.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://vaktibabat.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://vaktibabat.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Yoray Herzberg </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Implementing Schnorr's Protocol in Rust</title><link href="https://vaktibabat.github.io/posts/schnorr/" rel="alternate" type="text/html" title="Implementing Schnorr&amp;apos;s Protocol in Rust" /><published>2026-06-12T04:25:00+03:00</published> <updated>2026-06-12T04:25:00+03:00</updated> <id>https://vaktibabat.github.io/posts/schnorr/</id> <content src="https://vaktibabat.github.io/posts/schnorr/" /> <author> <name>Yoray Herzberg</name> </author> <category term="crypto" /> <category term="rust" /> <summary> Introduction In the Discrete Log Problem (DLP), we’re given a group (say, Z_p* for some large prime p), a generator g which produces a cyclic subgroup of large prime order q, and an element h of that subgroup. Our goal is to find an element x of Z_q such that g^x = h mod p; finding such an x is known to be quite hard, an assumption which multiple cryptosystems, such as Diffie-Hellman, rely on.... </summary> </entry> <entry><title>Fun With HyperLogLog and SIMD</title><link href="https://vaktibabat.github.io/posts/hyperloglog/" rel="alternate" type="text/html" title="Fun With HyperLogLog and SIMD" /><published>2025-10-04T04:25:00+03:00</published> <updated>2025-10-04T13:13:31+03:00</updated> <id>https://vaktibabat.github.io/posts/hyperloglog/</id> <content src="https://vaktibabat.github.io/posts/hyperloglog/" /> <author> <name>Yoray Herzberg</name> </author> <category term="algorithms" /> <category term="optimization" /> <category term="rust" /> <summary> Introduction Perhaps the most fundamental property of a set is its cardinality - the number of distinct elements. Computing this measure for an arbitrary list of items seems awfully simple: you read each item (not much wiggle room there), keep track of every distinct item you’ve seen, and at the end return the number of distinct items. You can even use something like a hash table to make lookup... </summary> </entry> <entry><title>Implementing Merkle Trees in Go</title><link href="https://vaktibabat.github.io/posts/merkletrees/" rel="alternate" type="text/html" title="Implementing Merkle Trees in Go" /><published>2025-07-25T04:25:00+03:00</published> <updated>2025-07-25T12:06:24+03:00</updated> <id>https://vaktibabat.github.io/posts/merkletrees/</id> <content src="https://vaktibabat.github.io/posts/merkletrees/" /> <author> <name>Yoray Herzberg</name> </author> <category term="golang" /> <category term="crypto" /> <summary> Introduction Say you and I have access to some source of truth where data is posted every once in a while – the classic example would be something like Bitcoin, where a new block containing 1000s of transactions is published to the chain every ~10 minutes. It would be useful if we could make backed-up statements about this public data: for example, I could prove to you that I paid 10 BTC to Al... </summary> </entry> <entry><title>Solving The Millionaires' Problem in Rust</title><link href="https://vaktibabat.github.io/posts/smpc_circuits/" rel="alternate" type="text/html" title="Solving The Millionaires&amp;apos; Problem in Rust" /><published>2025-02-22T03:25:00+02:00</published> <updated>2025-02-22T22:21:52+02:00</updated> <id>https://vaktibabat.github.io/posts/smpc_circuits/</id> <content src="https://vaktibabat.github.io/posts/smpc_circuits/" /> <author> <name>Yoray Herzberg</name> </author> <category term="rust" /> <category term="crypto" /> <summary> Introduction Can two millionaires, Alice and Bob, compare their wealth privately (i.e. without learning anything about each other’s wealth)? This is one of the most fundamental problems in the field of Secure Multi-Party Computation (SMPC), and though it might seem impossible at first glance, many solutions have been proposed to this problem since it was posed in 1982 by Andrew Yao in his semin... </summary> </entry> <entry><title>GPU-accelerated hash cracker with Rust and CUDA</title><link href="https://vaktibabat.github.io/posts/cudacracker/" rel="alternate" type="text/html" title="GPU-accelerated hash cracker with Rust and CUDA" /><published>2024-12-31T03:25:00+02:00</published> <updated>2024-12-31T15:18:47+02:00</updated> <id>https://vaktibabat.github.io/posts/cudacracker/</id> <content src="https://vaktibabat.github.io/posts/cudacracker/" /> <author> <name>Yoray Herzberg</name> </author> <category term="cuda" /> <category term="crypto" /> <category term="rust" /> <summary> Introduction In recent years, GPUs have become one of the most sought-after pieces of hardware in the world of computing. Originally designed for accelerating graphics-related computations, with applications such as video games, they now find applications in a wide variety of fields; most notably training AI models. The reason GPUs are so useful in such areas is that their design revolves arou... </summary> </entry> </feed>
