July 14th, 2024

Elligator: Elliptic-curve points indistinguishable from uniform random strings

The 2013 ACM SIGSAC conference paper discusses challenges faced by censorship-circumvention tools in avoiding detection by censors. It introduces high-security elliptic-curve systems to enhance privacy and security in communication networks.

Read original articleLink Icon
Elligator: Elliptic-curve points indistinguishable from uniform random strings

The paper "Elligator: elliptic-curve points indistinguishable from uniform random strings" presented at the 2013 ACM SIGSAC conference on Computer & Communications Security addresses the challenges faced by censorship-circumvention tools in evading detection by censors. These tools aim to match their traffic patterns with unblocked programs to avoid identification through traffic profiling. However, censors deploy sophisticated deep-packet inspection techniques to counter these efforts. The paper introduces high-security elliptic-curve systems where points are encoded to appear as random strings, enhancing privacy and security. It also introduces a bijection between strings and curve points, offering guidelines for constructing secure curves. The research aims to prevent censorship by making elliptic-curve cryptography patterns indistinguishable from random data, thus enhancing privacy and security in communication networks.

Link Icon 8 comments
By @FiloSottile - 9 months
Elligator is a bidirectional map from random bytes to elliptic curve points, which is mainly useful for censorship resistance. Its state-of-the-art protocol integration as far as I know is obfs4 (https://gitlab.com/yawning/obfs4), one of the Tor circumvention pluggable transports (https://tb-manual.torproject.org/circumvention/). The others rely on disguising as other protocols rather than looking random.

Elligator implementations have a history of subtle bugs, arguably because there was not a spec, only a paper, although it looks like there are some third-party test vectors now.

In general the "inverse map" from random bytes to point is used only for censorship-resistance use cases, but the "direct map" turning random bytes (like a CSPRNG output or a hash) into a point is useful for a number of purposes in cryptography, like VRFs. That led to the direct map being specified more rigorously, like in https://www.rfc-editor.org/rfc/rfc9496.html#name-element-der... and https://datatracker.ietf.org/doc/html/rfc9380.

IMHO a map from a fixed amount of random bytes should be part of the fundamental group abstraction, and that's what Ristretto provides. The CFRG approach is slightly different, providing full domain-separated hash "suites" that go straight into a curve point.

By @commandersaki - 9 months
This isn't meant to protect against real-time detection. For example GFW will block streams that appear high entropy from the get-go. This is more to conceal the fact a key exchange has occurred in captured traffic that is flagged for expert/human analysis.
By @jerry1979 - 9 months
Here's a mathy explanation of its use in the real world (for peer to peer communications): https://github.com/bitcoin-core/secp256k1/blob/master/doc/el...
By @NavinF - 9 months
By @ganzuul - 9 months
I have been thinking about local privacy preserving AI lately and stenography circumscribes much of the challenge. Having access to sensitive data means you have to limit access to a lot of tools. That’s how it would work in a privacy context but the same tools are neutral to being used in a censorship context.

It’s over 10 years since but it would be nice if important research like this at least touched on the egalitarian issues rather than presenting a partisan agenda. E.g. someone somewhere who has to deal with private data now also has to deal with even stricter restrictions, without any doubt.

Sometimes I worry about researchers working on important issues with apparently blinders on. If we don’t self-supervise we just outsource the work, and in this case that means we are back to square one.