How I learned to stop worrying and love OT extensions
This post will serve as an introduction to the concept of OT extension. We’ll discuss why is it useful and present one of the most fundamental constructions of it, typically referred to as “IKNP”.
We’ll start with a quick reminder of what is an Oblivious-Transfer.
Oblivious Transfers Reminder
Oblivious-Transfer is a functionality which takes ...
RSA Cryptosystem
In this post we will see in detail the RSA cryptosystem which was one the first Assymetric Cryptosystem constructions also known as Public-Key Cryptosystem.
RSA is named after its three inventors: Ronald Rivest, Adi Shamir and Leonard Adleman who published in 1978 their paper titled: “A Method for Obtaining Digital Signatures and Public-Key Cr...
Oblivious Transfers
Introduction
In this post we’re going to get to know one of the most fundamental constructions in cryptography known as Oblivious Transfer or OT for short.
It has been used in wide spectrum of topics in cryptography, and as such I must admit that I’m very excited to finally to get write about it!
Let’s start with a real life scenario1!
Say we...
Why Are Reference Strings So Common?
Introduction
In this post I assume the reader is familiar with the term NIZK (Non-Interactive Zero-Knowledge), what people these days also call “zk-SNARKs”.
I’m by all means not an expert in ZK (Zero Knowledge) and as so you are not expected to be familiar with all the low level technical details used to construct such argument systems.
If you’...
HD Wallets and BIP-32
Motivation
Some cryptography based applications (such as cryptocurrencies) rely on the secure storage and usage of some secret, known as a cryptographic key.
With more and more applications these days that make use of cryptography (especially as part of permissionless blockchains), users are required to maintain an increasing number of keys.
St...
You Gotta Love Fast Fourier Transforms
Recently I’ve been working on an implementation of FFTs over finite fields for some purposes (which I’ll write about some day).
I was finding the algorithm and the problem neat and thought it would be nice to share what are FFTs, how are they computed and what can be done with them.
While reading please remember that FFTs are a gigantic topic w...
A Bug in Bitcoin
While implementing some code relating to Bitcoin’s P2P network security I’ve stumbled upon a long standing issue in Bitcoin caused by no other than Satoshi himself.
To better explain it we’ll first have to get acquainted a little bit deeper with Bitcoin’s transaction format.
So a bitcoin transaction has the following fields.
version.
witn...
Garbled Circuits - a Primer
In this post we will cover the most fundamental construction of MPC, known as garbled circuits. We construct this basic two-party-computation primitive in a trial-and-error approach, doing some mistakes along the way to grasp what are the major obstacles in designing general multi-party-computation constructions.
12 post articles, 2 pages.