Neural networks as steganographic vehicles

Steganography is the art of hiding information. Whereas cryptography aims to prevent people understanding information once it has been found, the goal of steganography is to prevent the information from being discovered in the first place. Of course, for any practical covert communication you’re likely to want to combine the two, so that even if the message is discovered it cannot be understood. In this blog post we’ll see how neural networks can be used as a vehicle for covert communication.

Read more...

git rebase --root

It happens. You’ve just created a new repository, you’re a few commits in, and then you realise you messed up the initial commit. Maybe you used another repository as a template and forgot to replace the repository name somewhere.

Read more...

Private set intersection with Bloom filters

In the last post we saw how to build a private set intersection (PSI) protocol on top of elliptic curve Diffie-Hellman (ECDH). In this post we’ll introduce Bloom filters and see how they can be used to improve data transfer efficiency.

Read more...

Private set intersection with ECDH

In the last post we saw how elliptic curve point multiplication offers an alternative basis for key exchange in a Diffie-Hellman protocol. We saw previously how the standard Diffie-Hellman protocol can be used as the foundation for a private set intersection (PSI) technique. In this post, we’ll see how to do the same thing based on elliptic curve Diffie-Hellman (ECDH) instead.

Read more...

Elliptic curves and Diffie-Hellman

This post explains what elliptic curves are and how they can be used to build an alternative Diffie-Hellman key exchange system called ECDH (Elliptic Curve Diffie-Hellman). In a previous post we introduced the original Diffie-Hellman key exchange protocol based on modular arithmetic. We also saw how that protocol could be used as the basis of a PSI (private set intersection) protocol. We can also build a PSI protocol from ECDH, as we’ll see in a future post.

Read more...

Private set intersection with Diffie-Hellman

In the previous post we looked at the Diffie-Hellman key exchange protocol, which two parties can use to agree upon a secret key without an eavesdropper discovering what that key is. We saw previously how a private set intersection (PSI) protocol could be built on top of the Paillier cryptosystem. In this post, we’ll see how to do the same thing based on Diffie-Hellman instead.

Read more...

Diffie-Hellman Key Exchange

This post introduces the Diffie-Hellman key exchange protocol. In the previous post we saw how to build a private set intersection (PSI) protocol on top of the Paillier cryptosystem. We can also build a PSI protocol on top of the Diffie-Hellman key exchange protocol, as we’ll see next time.

Read more...

Private set intersection with the Paillier cryptosystem

In the previous post we looked at the Paillier cryptosystem, which is a partial homomorphic encryption scheme enabling the addition of two ciphertexts as well as the multiplication of a ciphertext by a plaintext. In this post we’ll see how a private set intersection protocol can be built using the Paillier cryptosystem.

Read more...

Paillier Cryptosystem

This post introduces the Paillier cryptosystem, which is a partial homomorphic encryption scheme. In a subsequent post we’ll see how this can be used as the basis for a private set intersection protocol.

Read more...

Configuring iTerm2

If you’re going to use the command line you need a command line interface. Mac OSX comes with the Terminal application, and for most purposes this is perfectly sufficient. There’s even a fair amount of customisation (colors etc) you can perform to make it suit you better than the default configuration.

Read more...